diff --git a/assets/fancybox/fancybox.css b/assets/fancybox/fancybox.css new file mode 100644 index 0000000..d322b0f --- /dev/null +++ b/assets/fancybox/fancybox.css @@ -0,0 +1 @@ +:root{--f-spinner-width: 36px;--f-spinner-height: 36px;--f-spinner-color-1: rgba(0, 0, 0, 0.1);--f-spinner-color-2: rgba(17, 24, 28, 0.8);--f-spinner-stroke: 2.75}.f-spinner{margin:auto;padding:0;width:var(--f-spinner-width);height:var(--f-spinner-height)}.f-spinner svg{width:100%;height:100%;vertical-align:top;animation:f-spinner-rotate 2s linear infinite}.f-spinner svg *{stroke-width:var(--f-spinner-stroke);fill:none}.f-spinner svg *:first-child{stroke:var(--f-spinner-color-1)}.f-spinner svg *:last-child{stroke:var(--f-spinner-color-2);animation:f-spinner-dash 2s ease-in-out infinite}@keyframes f-spinner-rotate{100%{transform:rotate(360deg)}}@keyframes f-spinner-dash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}100%{stroke-dasharray:90,150;stroke-dashoffset:-124}}.f-zoomInUp{animation:.2s ease-out .1s both f-zoomInUp}.f-zoomOutDown{animation:.2s ease-out both f-zoomOutDown}@keyframes f-zoomInUp{from{transform:scale(0.975) translate3d(0, 16px, 0);opacity:0}to{transform:scale(1) translate3d(0, 0, 0);opacity:1}}@keyframes f-zoomOutDown{to{transform:scale(0.975) translate3d(0, 16px, 0);opacity:0}}.f-throwOutUp{animation:.175s ease-out both f-throwOutUp}.f-throwOutDown{animation:.175s ease-out both f-throwOutDown}@keyframes f-throwOutUp{to{transform:translate3d(0, -150px, 0);opacity:0}}@keyframes f-throwOutDown{to{transform:translate3d(0, 150px, 0);opacity:0}}.f-fadeIn{animation:.2s ease both f-fadeIn;z-index:2}.f-fadeOut{animation:.2s ease both f-fadeOut;z-index:1}@keyframes f-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes f-fadeOut{100%{opacity:0}}.f-fadeSlowIn{animation:.5s ease both f-fadeSlowIn;z-index:2}.f-fadeSlowOut{animation:.5s ease both f-fadeSlowOut;z-index:1}@keyframes f-fadeSlowIn{0%{opacity:0}100%{opacity:1}}@keyframes f-fadeSlowOut{100%{opacity:0}}.f-fadeFastIn{animation:.2s ease-out both f-fadeFastIn;z-index:2}.f-fadeFastOut{animation:.2s ease-out both f-fadeFastOut;z-index:2}@keyframes f-fadeFastIn{0%{opacity:.75}100%{opacity:1}}@keyframes f-fadeFastOut{100%{opacity:0}}.f-crossfadeIn{animation:.2s ease-out both f-crossfadeIn;z-index:2}.f-crossfadeOut{animation:.1s linear .1s both f-crossfadeOut;z-index:1}@keyframes f-crossfadeIn{0%{opacity:0}100%{opacity:1}}@keyframes f-crossfadeOut{100%{opacity:0}}.f-slideIn.from-next{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-slideInNext}.f-slideIn.from-prev{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-slideInPrev}.f-slideOut.to-next{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-slideOutNext}.f-slideOut.to-prev{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-slideOutPrev}@keyframes f-slideInPrev{0%{transform:translateX(100%)}100%{transform:translate3d(0, 0, 0)}}@keyframes f-slideInNext{0%{transform:translateX(-100%)}100%{transform:translate3d(0, 0, 0)}}@keyframes f-slideOutNext{100%{transform:translateX(-100%)}}@keyframes f-slideOutPrev{100%{transform:translateX(100%)}}.f-classicIn.from-next{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-classicInNext;z-index:2}.f-classicIn.from-prev{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-classicInPrev;z-index:2}.f-classicOut.to-next{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-classicOutNext;z-index:1}.f-classicOut.to-prev{animation:.85s cubic-bezier(0.16, 1, 0.3, 1) f-classicOutPrev;z-index:1}@keyframes f-classicInNext{0%{transform:translateX(-75px);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes f-classicInPrev{0%{transform:translateX(75px);opacity:0}100%{transform:translate3d(0, 0, 0);opacity:1}}@keyframes f-classicOutNext{100%{transform:translateX(-75px);opacity:0}}@keyframes f-classicOutPrev{100%{transform:translateX(75px);opacity:0}}:root{--f-button-width: 40px;--f-button-height: 40px;--f-button-border: 0;--f-button-border-radius: 0;--f-button-color: #374151;--f-button-bg: #f8f8f8;--f-button-hover-bg: #e0e0e0;--f-button-active-bg: #d0d0d0;--f-button-shadow: none;--f-button-transition: all 0.15s ease;--f-button-transform: none;--f-button-svg-width: 20px;--f-button-svg-height: 20px;--f-button-svg-stroke-width: 1.5;--f-button-svg-fill: none;--f-button-svg-filter: none;--f-button-svg-disabled-opacity: 0.65}.f-button{display:flex;justify-content:center;align-items:center;box-sizing:content-box;position:relative;margin:0;padding:0;width:var(--f-button-width);height:var(--f-button-height);border:var(--f-button-border);border-radius:var(--f-button-border-radius);color:var(--f-button-color);background:var(--f-button-bg);box-shadow:var(--f-button-shadow);pointer-events:all;cursor:pointer;transition:var(--f-button-transition)}@media(hover: hover){.f-button:hover:not([disabled]){color:var(--f-button-hover-color);background-color:var(--f-button-hover-bg)}}.f-button:active:not([disabled]){background-color:var(--f-button-active-bg)}.f-button:focus:not(:focus-visible){outline:none}.f-button:focus-visible{outline:none;box-shadow:inset 0 0 0 var(--f-button-outline, 2px) var(--f-button-outline-color, var(--f-button-color))}.f-button svg{width:var(--f-button-svg-width);height:var(--f-button-svg-height);fill:var(--f-button-svg-fill);stroke:currentColor;stroke-width:var(--f-button-svg-stroke-width);stroke-linecap:round;stroke-linejoin:round;transition:opacity .15s ease;transform:var(--f-button-transform);filter:var(--f-button-svg-filter);pointer-events:none}.f-button[disabled]{cursor:default}.f-button[disabled] svg{opacity:var(--f-button-svg-disabled-opacity)}.f-carousel__nav .f-button.is-prev,.f-carousel__nav .f-button.is-next,.fancybox__nav .f-button.is-prev,.fancybox__nav .f-button.is-next{position:absolute;z-index:1}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-next{top:50%;transform:translateY(-50%)}.is-horizontal .f-carousel__nav .f-button.is-prev,.is-horizontal .fancybox__nav .f-button.is-prev{left:var(--f-button-prev-pos)}.is-horizontal .f-carousel__nav .f-button.is-next,.is-horizontal .fancybox__nav .f-button.is-next{right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-prev,.is-horizontal.is-rtl .fancybox__nav .f-button.is-prev{left:auto;right:var(--f-button-next-pos)}.is-horizontal.is-rtl .f-carousel__nav .f-button.is-next,.is-horizontal.is-rtl .fancybox__nav .f-button.is-next{right:auto;left:var(--f-button-prev-pos)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-next{top:auto;left:50%;transform:translateX(-50%)}.is-vertical .f-carousel__nav .f-button.is-prev,.is-vertical .fancybox__nav .f-button.is-prev{top:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-next,.is-vertical .fancybox__nav .f-button.is-next{bottom:var(--f-button-next-pos)}.is-vertical .f-carousel__nav .f-button.is-prev svg,.is-vertical .f-carousel__nav .f-button.is-next svg,.is-vertical .fancybox__nav .f-button.is-prev svg,.is-vertical .fancybox__nav .f-button.is-next svg{transform:rotate(90deg)}html.with-fancybox{width:auto;overflow:visible;scroll-behavior:auto}html.with-fancybox body{touch-action:none}html.with-fancybox body.hide-scrollbar{width:auto;margin-right:calc(var(--fancybox-body-margin, 0px) + var(--fancybox-scrollbar-compensate, 0px));overflow:hidden !important;overscroll-behavior-y:none}.fancybox__container{--fancybox-color: #dbdbdb;--fancybox-hover-color: #fff;--fancybox-bg: rgba(24, 24, 27, 0.98);--fancybox-slide-gap: 10px;--f-spinner-width: 50px;--f-spinner-height: 50px;--f-spinner-color-1: rgba(255, 255, 255, 0.1);--f-spinner-color-2: #bbb;--f-spinner-stroke: 3.65;position:fixed;top:0;left:0;bottom:0;right:0;direction:ltr;display:flex;flex-direction:column;box-sizing:border-box;margin:0;padding:0;color:#f8f8f8;-webkit-tap-highlight-color:rgba(0,0,0,0);overflow:visible;z-index:1050;outline:none;transform-origin:top left;-webkit-text-size-adjust:100%;-moz-text-size-adjust:none;-ms-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior-y:contain}.fancybox__container *,.fancybox__container *::before,.fancybox__container *::after{box-sizing:inherit}.fancybox__backdrop{position:fixed;top:0;left:0;bottom:0;right:0;z-index:-1;background:var(--fancybox-bg);opacity:var(--fancybox-opacity, 1);will-change:opacity}.fancybox__carousel{position:relative;box-sizing:border-box;flex:1;min-height:0;z-index:10;overflow-y:visible;overflow-x:clip}.fancybox__viewport{width:100%;height:100%}.fancybox__track{display:flex;margin:0 auto;height:100%}.fancybox__slide{flex:0 0 auto;position:relative;display:flex;flex-direction:column;align-items:center;width:100%;height:100%;margin:0 var(--fancybox-slide-gap) 0 0;padding:4px;overflow:auto;transform:translate3d(0, 0, 0);backface-visibility:hidden}.fancybox__container:not(.is-compact) .fancybox__slide.has-close-btn{padding-top:40px}.fancybox__slide.has-iframe,.fancybox__slide.has-video,.fancybox__slide.has-html5video{overflow:hidden}.fancybox__slide.has-image{overflow:hidden}.fancybox__slide.has-image.is-animating,.fancybox__slide.has-image.is-selected{overflow:visible}.fancybox__slide::before,.fancybox__slide::after{content:"";flex:0 0 0;margin:auto}.fancybox__content{align-self:center;display:flex;flex-direction:column;position:relative;margin:0;padding:2rem;max-width:100%;color:var(--fancybox-content-color, #374151);background:var(--fancybox-content-bg, #fff);cursor:default;border-radius:0;z-index:20}.is-loading .fancybox__content{opacity:0}.is-draggable .fancybox__content{cursor:move;cursor:grab}.can-zoom_in .fancybox__content{cursor:zoom-in}.can-zoom_out .fancybox__content{cursor:zoom-out}.is-dragging .fancybox__content{cursor:move;cursor:grabbing}.fancybox__content [data-selectable],.fancybox__content [contenteditable]{cursor:auto}.fancybox__slide.has-image>.fancybox__content{padding:0;background:rgba(0,0,0,0);min-height:1px;background-repeat:no-repeat;background-size:contain;background-position:center center;transition:none;transform:translate3d(0, 0, 0);backface-visibility:hidden}.fancybox__slide.has-image>.fancybox__content>picture>img{width:100%;height:auto;max-height:100%}.is-zooming-in .fancybox__viewport:not(.is-dragging) .fancybox__slide:not(.is-selected) .fancybox__content,.is-zooming-out .fancybox__slide:not(.is-selected) .fancybox__content{visibility:hidden}.is-animating .fancybox__content,.is-dragging .fancybox__content{filter:blur(0px);will-change:transform,width,height}.fancybox-image{margin:auto;display:block;width:100%;height:100%;min-height:0;object-fit:contain;user-select:none}.fancybox__caption{align-self:center;max-width:100%;flex-shrink:0;margin:0;padding:14px 0 4px 0;overflow-wrap:anywhere;line-height:1.375;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);cursor:auto;visibility:visible}.is-loading .fancybox__caption,.is-closing .fancybox__caption{opacity:0;visibility:hidden}.is-compact .fancybox__caption{padding-bottom:0}.f-button.is-close-btn{--f-button-svg-stroke-width: 2;position:absolute;top:0;right:8px;z-index:40}.fancybox__content>.f-button.is-close-btn{--f-button-width: 34px;--f-button-height: 34px;--f-button-border-radius: 4px;--f-button-color: var(--fancybox-color, #fff);--f-button-hover-color: var(--fancybox-color, #fff);--f-button-bg: transparent;--f-button-hover-bg: transparent;--f-button-active-bg: transparent;--f-button-svg-width: 22px;--f-button-svg-height: 22px;position:absolute;top:-38px;right:0;opacity:.75}.is-loading .fancybox__content>.f-button.is-close-btn{visibility:hidden}.is-zooming-out .fancybox__content>.f-button.is-close-btn{visibility:hidden}.fancybox__content>.f-button.is-close-btn:hover{opacity:1}.fancybox__footer{padding:0;margin:0;position:relative}.fancybox__footer .fancybox__caption{width:100%;padding:24px;opacity:var(--fancybox-opacity, 1);transition:all .25s ease}.is-compact .fancybox__footer{position:absolute;bottom:0;left:0;right:0;z-index:20;background:rgba(24,24,27,.5)}.is-compact .fancybox__footer .fancybox__caption{padding:12px}.is-compact .fancybox__content>.f-button.is-close-btn{--f-button-border-radius: 50%;--f-button-color: #fff;--f-button-hover-color: #fff;--f-button-outline-color: #000;--f-button-bg: rgba(0, 0, 0, 0.6);--f-button-active-bg: rgba(0, 0, 0, 0.6);--f-button-hover-bg: rgba(0, 0, 0, 0.6);--f-button-svg-width: 18px;--f-button-svg-height: 18px;--f-button-svg-filter: none;top:5px;right:5px}.fancybox__nav{--f-button-width: 50px;--f-button-height: 50px;--f-button-border: 0;--f-button-border-radius: 50%;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: transparent;--f-button-hover-bg: rgba(24, 24, 27, 0.3);--f-button-active-bg: rgba(24, 24, 27, 0.5);--f-button-shadow: none;--f-button-transition: all 0.15s ease;--f-button-transform: none;--f-button-svg-width: 26px;--f-button-svg-height: 26px;--f-button-svg-stroke-width: 2.5;--f-button-svg-fill: none;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.5));--f-button-svg-disabled-opacity: 0.65;--f-button-next-pos: 1rem;--f-button-prev-pos: 1rem;opacity:var(--fancybox-opacity, 1)}.fancybox__nav .f-button:before{position:absolute;content:"";top:-30px;right:-20px;left:-20px;bottom:-30px;z-index:1}.is-idle .fancybox__nav{animation:.15s ease-out both f-fadeOut}.is-idle.is-compact .fancybox__footer{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__slide>.f-spinner{position:absolute;top:50%;left:50%;margin:var(--f-spinner-top, calc(var(--f-spinner-width) * -0.5)) 0 0 var(--f-spinner-left, calc(var(--f-spinner-height) * -0.5));z-index:30;cursor:pointer}.fancybox-protected{position:absolute;top:0;left:0;right:0;bottom:0;z-index:40;user-select:none}.fancybox-ghost{position:absolute;top:0;left:0;width:100%;height:100%;min-height:0;object-fit:contain;z-index:40;user-select:none;pointer-events:none}.fancybox-focus-guard{outline:none;opacity:0;position:fixed;pointer-events:none}.fancybox__container:not([aria-hidden]){opacity:0}.fancybox__container.is-animated[aria-hidden=false]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=false] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=false] .fancybox__slide>*:not(.fancybox__content){animation:.25s ease .1s backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=false] .fancybox__backdrop{animation:.35s ease backwards f-fadeIn}.fancybox__container.is-animated[aria-hidden=true]>*:not(.fancybox__backdrop,.fancybox__carousel),.fancybox__container.is-animated[aria-hidden=true] .fancybox__carousel>*:not(.fancybox__viewport),.fancybox__container.is-animated[aria-hidden=true] .fancybox__slide>*:not(.fancybox__content){animation:.15s ease forwards f-fadeOut}.fancybox__container.is-animated[aria-hidden=true] .fancybox__backdrop{animation:.35s ease forwards f-fadeOut}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{max-width:100%;flex-shrink:1;min-height:1px;overflow:visible}.has-iframe .fancybox__content,.has-map .fancybox__content,.has-pdf .fancybox__content{width:100%;height:100%}.fancybox__container:not(.is-compact) .has-iframe .fancybox__content,.fancybox__container:not(.is-compact) .has-map .fancybox__content,.fancybox__container:not(.is-compact) .has-pdf .fancybox__content{width:calc(100% - 120px);height:90%}.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{width:960px;height:540px;max-width:100%;max-height:100%}.has-map .fancybox__content,.has-pdf .fancybox__content,.has-youtube .fancybox__content,.has-vimeo .fancybox__content,.has-html5video .fancybox__content{padding:0;background:rgba(24,24,27,.9);color:#fff}.has-map .fancybox__content{background:#e5e3df}.fancybox__html5video,.fancybox__iframe{border:0;display:block;height:100%;width:100%;background:rgba(0,0,0,0)}.fancybox-placeholder{border:0 !important;clip:rect(1px, 1px, 1px, 1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;margin:-1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.f-carousel__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-outline: 0;--f-thumb-outline-color: #5eb0ef;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1;--f-thumb-border-radius: 2px;--f-thumb-offset: 0px;--f-button-next-pos: 0;--f-button-prev-pos: 0}.f-carousel__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: 0.5;--f-thumb-hover-opacity: 1;--f-thumb-selected-opacity: 1}.f-carousel__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 20px;--f-thumb-clip-width: 46px}.f-thumbs{position:relative;flex:0 0 auto;margin:0;overflow:hidden;-webkit-tap-highlight-color:rgba(0,0,0,0);user-select:none;perspective:1000px;transform:translateZ(0)}.f-thumbs .f-spinner{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:2px;background-image:linear-gradient(#ebeff2, #e2e8f0);z-index:-1}.f-thumbs .f-spinner svg{display:none}.f-thumbs.is-vertical{height:100%}.f-thumbs__viewport{width:100%;height:auto;overflow:hidden}.f-thumbs__track{display:flex;will-change:transform}.f-thumbs__slide{position:relative;flex:0 0 auto;box-sizing:content-box;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:var(--f-thumb-width);min-width:var(--f-thumb-width);height:var(--f-thumb-height);overflow:visible;cursor:pointer}.f-thumbs__slide.is-loading img{opacity:0}.is-classic .f-thumbs__viewport{height:100%}.is-modern .f-thumbs__track{width:max-content}.is-modern .f-thumbs__track::before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--left, 0)*1px);width:calc(100% - var(--width, 0)*1px);cursor:pointer}.is-modern .f-thumbs__slide{--clip-path: inset( 0 calc( (var(--f-thumb-width, 0) - var(--f-thumb-clip-width, 0)) * 0.5 * (1 - var(--progress, 0)) ) round var(--f-thumb-border-radius, 0) );transform:translate3d(calc(var(--shift, 0) * -1px), 0, 0);transition:none;pointer-events:none}.is-modern .f-thumbs__slide:focus-within:not(.is-selected){filter:drop-shadow(-1px 0px 0px var(--f-thumb-outline-color)) drop-shadow(2px 0px 0px var(--f-thumb-outline-color)) drop-shadow(0px -1px 0px var(--f-thumb-outline-color)) drop-shadow(0px 2px 0px var(--f-thumb-outline-color))}.is-modern .f-thumbs__slide>*{clip-path:var(--clip-path)}.is-modern.in-touch .f-thumbs__slide{filter:none}.is-modern.is-resting .f-thumbs__slide{transition:all .33s ease}.is-modern.is-resting .f-thumbs__slide>*{transition:all .33s ease}.f-thumbs__slide__button{appearance:none;width:100%;height:100%;margin:0;padding:0;border:0;position:relative;border-radius:var(--f-thumb-border-radius);overflow:hidden;background:rgba(0,0,0,0);outline:none;cursor:pointer;pointer-events:auto;touch-action:manipulation;opacity:var(--f-thumb-opacity);transition:opacity .2s ease}.f-thumbs__slide__button:hover{opacity:var(--f-thumb-hover-opacity)}.f-thumbs__slide__button:focus:not(:focus-visible){outline:none}.f-thumbs__slide__button:focus-visible{outline:none;opacity:var(--f-thumb-selected-opacity)}.is-nav-selected .f-thumbs__slide__button{opacity:var(--f-thumb-selected-opacity)}.is-nav-selected .f-thumbs__slide__button::after{content:"";position:absolute;top:0;left:0;right:0;height:auto;bottom:0;border:var(--f-thumb-outline, 0) solid var(--f-thumb-outline-color, transparent);border-radius:var(--f-thumb-border-radius);animation:f-fadeIn .2s ease-out;z-index:10}.f-thumbs__slide__img{position:absolute;overflow:hidden;top:0;right:0;bottom:0;left:0;width:100%;height:100%;padding:var(--f-thumb-offset);box-sizing:border-box;pointer-events:none;object-fit:cover}.f-thumbs.is-horizontal .f-thumbs__track{margin:0 auto;padding:8px 0 12px 0}.f-thumbs.is-horizontal .f-thumbs__slide{margin:0 var(--f-thumb-gap) 0 0}.f-thumbs.is-vertical .f-thumbs__track{flex-wrap:wrap;margin:auto 0;padding:0 8px}.f-thumbs.is-vertical .f-thumbs__slide{margin:0 0 var(--f-thumb-gap) 0}.fancybox__thumbs{--f-thumb-width: 96px;--f-thumb-height: 72px;--f-thumb-border-radius: 2px;--f-thumb-outline: 2px;--f-thumb-outline-color: #ededed;position:relative;opacity:var(--fancybox-opacity, 1);transition:max-height .35s cubic-bezier(0.23, 1, 0.32, 1)}.fancybox__thumbs.is-classic{--f-thumb-gap: 8px;--f-thumb-opacity: 0.5;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-classic .f-spinner{background-image:linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))}.fancybox__thumbs.is-modern{--f-thumb-gap: 4px;--f-thumb-extra-gap: 20px;--f-thumb-clip-width: 46px;--f-thumb-opacity: 1;--f-thumb-hover-opacity: 1}.fancybox__thumbs.is-modern .f-spinner{background-image:linear-gradient(rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))}.fancybox__thumbs.is-horizontal{padding:0 var(--f-thumb-gap)}.fancybox__thumbs.is-vertical{padding:var(--f-thumb-gap) 0}.is-compact .fancybox__thumbs{--f-thumb-width: 64px;--f-thumb-clip-width: 32px;--f-thumb-height: 48px;--f-thumb-extra-gap: 10px}.fancybox__thumbs.is-hidden{max-height:0px !important}.is-closing .fancybox__thumbs{transition:none !important}.fancybox__toolbar{--f-progress-color: var(--fancybox-color, rgba(255, 255, 255, 0.94));--f-button-width: 46px;--f-button-height: 46px;--f-button-color: var(--fancybox-color);--f-button-hover-color: var(--fancybox-hover-color);--f-button-bg: rgba(24, 24, 27, 0.65);--f-button-hover-bg: rgba(70, 70, 73, 0.65);--f-button-active-bg: rgba(90, 90, 93, 0.65);--f-button-border-radius: 0;--f-button-svg-width: 24px;--f-button-svg-height: 24px;--f-button-svg-stroke-width: 1.5;--f-button-svg-filter: drop-shadow(1px 1px 1px rgba(24, 24, 27, 0.15));--f-button-svg-fill: none;--f-button-svg-disabled-opacity: 0.65;display:flex;flex-direction:row;justify-content:space-between;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI Adjusted","Segoe UI","Liberation Sans",sans-serif;color:var(--fancybox-color, currentColor);opacity:var(--fancybox-opacity, 1);text-shadow:var(--fancybox-toolbar-text-shadow, 1px 1px 1px rgba(0, 0, 0, 0.5));pointer-events:none;z-index:20}.fancybox__toolbar :focus-visible{z-index:1}.fancybox__toolbar.is-absolute,.is-compact .fancybox__toolbar{position:absolute;top:0;left:0;right:0}.is-idle .fancybox__toolbar{pointer-events:none;animation:.15s ease-out both f-fadeOut}.fancybox__toolbar__column{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start}.fancybox__toolbar__column.is-left,.fancybox__toolbar__column.is-right{flex-grow:1;flex-basis:0}.fancybox__toolbar__column.is-right{display:flex;justify-content:flex-end;flex-wrap:nowrap}.fancybox__infobar{padding:0 5px;line-height:var(--f-button-height);text-align:center;font-size:17px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:subpixel-antialiased;cursor:default;user-select:none}.fancybox__infobar span{padding:0 5px}.fancybox__infobar:not(:first-child):not(:last-child){background:var(--f-button-bg)}[data-fancybox-toggle-slideshow]{position:relative}[data-fancybox-toggle-slideshow] .f-progress{height:100%;opacity:.3}[data-fancybox-toggle-slideshow] svg g:first-child{display:flex}[data-fancybox-toggle-slideshow] svg g:last-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:first-child{display:none}.has-slideshow [data-fancybox-toggle-slideshow] svg g:last-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:first-child{display:flex}[data-fancybox-toggle-fullscreen] svg g:last-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:first-child{display:none}:fullscreen [data-fancybox-toggle-fullscreen] svg g:last-child{display:flex}.f-progress{position:absolute;top:0;left:0;right:0;height:3px;transform:scaleX(0);transform-origin:0;transition-property:transform;transition-timing-function:linear;background:var(--f-progress-color, var(--f-carousel-theme-color, #0091ff));z-index:30;user-select:none;pointer-events:none} \ No newline at end of file diff --git a/assets/fancybox/fancybox.umd.js b/assets/fancybox/fancybox.umd.js new file mode 100644 index 0000000..966e19a --- /dev/null +++ b/assets/fancybox/fancybox.umd.js @@ -0,0 +1 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).window=t.window||{})}(this,(function(t){"use strict";const e=(t,e=1e4)=>(t=parseFloat(t+"")||0,Math.round((t+Number.EPSILON)*e)/e),i=function(t){if(!(t&&t instanceof Element&&t.offsetParent))return!1;const e=t.scrollHeight>t.clientHeight,i=window.getComputedStyle(t).overflowY,n=-1!==i.indexOf("hidden"),s=-1!==i.indexOf("visible");return e&&!n&&!s},n=function(t,e){return!(!t||t===document.body||e&&t===e)&&(i(t)?t:n(t.parentElement,e))},s=function(t){var e=(new DOMParser).parseFromString(t,"text/html").body;if(e.childElementCount>1){for(var i=document.createElement("div");e.firstChild;)i.appendChild(e.firstChild);return i}return e.firstChild},o=t=>`${t||""}`.split(" ").filter((t=>!!t)),a=(t,e,i)=>{o(e).forEach((e=>{t&&t.classList.toggle(e,i||!1)}))};class r{constructor(t){Object.defineProperty(this,"pageX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"pageY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientX",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"clientY",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"time",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"nativePointer",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.nativePointer=t,this.pageX=t.pageX,this.pageY=t.pageY,this.clientX=t.clientX,this.clientY=t.clientY,this.id=self.Touch&&t instanceof Touch?t.identifier:-1,this.time=Date.now()}}const l={passive:!1};class c{constructor(t,{start:e=(()=>!0),move:i=(()=>{}),end:n=(()=>{})}){Object.defineProperty(this,"element",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"startCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"moveCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"endCallback",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"currentPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"startPointers",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.element=t,this.startCallback=e,this.moveCallback=i,this.endCallback=n;for(const t of["onPointerStart","onTouchStart","onMove","onTouchEnd","onPointerEnd","onWindowBlur"])this[t]=this[t].bind(this);this.element.addEventListener("mousedown",this.onPointerStart,l),this.element.addEventListener("touchstart",this.onTouchStart,l),this.element.addEventListener("touchmove",this.onMove,l),this.element.addEventListener("touchend",this.onTouchEnd),this.element.addEventListener("touchcancel",this.onTouchEnd)}onPointerStart(t){if(!t.buttons||0!==t.button)return;const e=new r(t);this.currentPointers.some((t=>t.id===e.id))||this.triggerPointerStart(e,t)&&(window.addEventListener("mousemove",this.onMove),window.addEventListener("mouseup",this.onPointerEnd),window.addEventListener("blur",this.onWindowBlur))}onTouchStart(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerStart(new r(e),t);window.addEventListener("blur",this.onWindowBlur)}onMove(t){const e=this.currentPointers.slice(),i="changedTouches"in t?Array.from(t.changedTouches||[]).map((t=>new r(t))):[new r(t)],n=[];for(const t of i){const e=this.currentPointers.findIndex((e=>e.id===t.id));e<0||(n.push(t),this.currentPointers[e]=t)}n.length&&this.moveCallback(t,this.currentPointers.slice(),e)}onPointerEnd(t){t.buttons>0&&0!==t.button||(this.triggerPointerEnd(t,new r(t)),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur))}onTouchEnd(t){for(const e of Array.from(t.changedTouches||[]))this.triggerPointerEnd(t,new r(e))}triggerPointerStart(t,e){return!!this.startCallback(e,t,this.currentPointers.slice())&&(this.currentPointers.push(t),this.startPointers.push(t),!0)}triggerPointerEnd(t,e){const i=this.currentPointers.findIndex((t=>t.id===e.id));i<0||(this.currentPointers.splice(i,1),this.startPointers.splice(i,1),this.endCallback(t,e,this.currentPointers.slice()))}onWindowBlur(){this.clear()}clear(){for(;this.currentPointers.length;){const t=this.currentPointers[this.currentPointers.length-1];this.currentPointers.splice(this.currentPointers.length-1,1),this.startPointers.splice(this.currentPointers.length-1,1),this.endCallback(new Event("touchend",{bubbles:!0,cancelable:!0,clientX:t.clientX,clientY:t.clientY}),t,this.currentPointers.slice())}}stop(){this.element.removeEventListener("mousedown",this.onPointerStart,l),this.element.removeEventListener("touchstart",this.onTouchStart,l),this.element.removeEventListener("touchmove",this.onMove,l),this.element.removeEventListener("touchend",this.onTouchEnd),this.element.removeEventListener("touchcancel",this.onTouchEnd),window.removeEventListener("mousemove",this.onMove),window.removeEventListener("mouseup",this.onPointerEnd),window.removeEventListener("blur",this.onWindowBlur)}}function h(t,e){return e?Math.sqrt(Math.pow(e.clientX-t.clientX,2)+Math.pow(e.clientY-t.clientY,2)):0}function d(t,e){return e?{clientX:(t.clientX+e.clientX)/2,clientY:(t.clientY+e.clientY)/2}:t}const u=t=>"object"==typeof t&&null!==t&&t.constructor===Object&&"[object Object]"===Object.prototype.toString.call(t),p=(t,...e)=>{const i=e.length;for(let n=0;n{const n=Array.isArray(i)?[]:{};t[e]||Object.assign(t,{[e]:n}),u(i)?Object.assign(t[e],p(n,i)):Array.isArray(i)?Object.assign(t,{[e]:[...i]}):Object.assign(t,{[e]:i})}))}return t},f=function(t,e){return t.split(".").reduce(((t,e)=>"object"==typeof t?t[e]:void 0),e)};class m{constructor(t={}){Object.defineProperty(this,"options",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"events",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.setOptions(t);for(const t of Object.getOwnPropertyNames(Object.getPrototypeOf(this)))t.startsWith("on")&&"function"==typeof this[t]&&(this[t]=this[t].bind(this))}setOptions(t){this.options=t?p({},this.constructor.defaults,t):{};for(const[t,e]of Object.entries(this.option("on")||{}))this.on(t,e)}option(t,...e){let i=f(t,this.options);return i&&"function"==typeof i&&(i=i.call(this,this,...e)),i}optionFor(t,e,i,...n){let s=f(e,t);var o;"string"!=typeof(o=s)||isNaN(o)||isNaN(parseFloat(o))||(s=parseFloat(s)),"true"===s&&(s=!0),"false"===s&&(s=!1),s&&"function"==typeof s&&(s=s.call(this,this,t,...n));let a=f(e,this.options);return a&&"function"==typeof a?s=a.call(this,this,t,...n,s):void 0===s&&(s=a),void 0===s?i:s}cn(t){const e=this.options.classes;return e&&e[t]||""}localize(t,e=[]){t=String(t).replace(/\{\{(\w+).?(\w+)?\}\}/g,((t,e,i)=>{let n="";return i?n=this.option(`${e[0]+e.toLowerCase().substring(1)}.l10n.${i}`):e&&(n=this.option(`l10n.${e}`)),n||(n=t),n}));for(let i=0;ie))}on(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),this.events||(this.events=new Map),i.forEach((t=>{let i=this.events.get(t);i||(this.events.set(t,[]),i=[]),i.includes(e)||i.push(e),this.events.set(t,i)}))}off(t,e){let i=[];"string"==typeof t?i=t.split(" "):Array.isArray(t)&&(i=t),i.forEach((t=>{const i=this.events.get(t);if(Array.isArray(i)){const t=i.indexOf(e);t>-1&&i.splice(t,1)}}))}emit(t,...e){[...this.events.get(t)||[]].forEach((t=>t(this,...e))),"*"!==t&&this.emit("*",t,...e)}}Object.defineProperty(m,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.19"}),Object.defineProperty(m,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{}});class g extends m{constructor(t={}){super(t),Object.defineProperty(this,"plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}})}attachPlugins(t={}){const e=new Map;for(const[i,n]of Object.entries(t)){const t=this.option(i),s=this.plugins[i];s||!1===t?s&&!1===t&&(s.detach(),delete this.plugins[i]):e.set(i,new n(this,t||{}))}for(const[t,i]of e)this.plugins[t]=i,i.attach();this.emit("attachPlugins")}detachPlugins(t){t=t||Object.keys(this.plugins);for(const e of t){const t=this.plugins[e];t&&t.detach(),delete this.plugins[e]}return this.emit("detachPlugins"),this}}var b;!function(t){t[t.Init=0]="Init",t[t.Error=1]="Error",t[t.Ready=2]="Ready",t[t.Panning=3]="Panning",t[t.Mousemove=4]="Mousemove",t[t.Destroy=5]="Destroy"}(b||(b={}));const v=["a","b","c","d","e","f"],y={PANUP:"Move up",PANDOWN:"Move down",PANLEFT:"Move left",PANRIGHT:"Move right",ZOOMIN:"Zoom in",ZOOMOUT:"Zoom out",TOGGLEZOOM:"Toggle zoom level",TOGGLE1TO1:"Toggle zoom level",ITERATEZOOM:"Toggle zoom level",ROTATECCW:"Rotate counterclockwise",ROTATECW:"Rotate clockwise",FLIPX:"Flip horizontally",FLIPY:"Flip vertically",FITX:"Fit horizontally",FITY:"Fit vertically",RESET:"Reset",TOGGLEFS:"Toggle fullscreen"},w={content:null,width:"auto",height:"auto",panMode:"drag",touch:!0,dragMinThreshold:3,lockAxis:!1,mouseMoveFactor:1,mouseMoveFriction:.12,zoom:!0,pinchToZoom:!0,panOnlyZoomed:"auto",minScale:1,maxScale:2,friction:.25,dragFriction:.35,decelFriction:.05,click:"toggleZoom",dblClick:!1,wheel:"zoom",wheelLimit:7,spinner:!0,bounds:"auto",infinite:!1,rubberband:!0,bounce:!0,maxVelocity:75,transformParent:!1,classes:{content:"f-panzoom__content",isLoading:"is-loading",canZoomIn:"can-zoom_in",canZoomOut:"can-zoom_out",isDraggable:"is-draggable",isDragging:"is-dragging",inFullscreen:"in-fullscreen",htmlHasFullscreen:"with-panzoom-in-fullscreen"},l10n:y},x='
',S=t=>t&&null!==t&&t instanceof Element&&"nodeType"in t,E=(t,e)=>{t&&o(e).forEach((e=>{t.classList.remove(e)}))},P=(t,e)=>{t&&o(e).forEach((e=>{t.classList.add(e)}))},C={a:1,b:0,c:0,d:1,e:0,f:0},M=1e5,T=1e3,O="mousemove",A="drag",z="content";let L=null,R=null;class k extends g{get isTouchDevice(){return null===R&&(R=window.matchMedia("(hover: none)").matches),R}get isMobile(){return null===L&&(L=/iPhone|iPad|iPod|Android/i.test(navigator.userAgent)),L}get panMode(){return this.options.panMode!==O||this.isTouchDevice?A:O}get panOnlyZoomed(){const t=this.options.panOnlyZoomed;return"auto"===t?this.isTouchDevice:t}get isInfinite(){return this.option("infinite")}get angle(){return 180*Math.atan2(this.current.b,this.current.a)/Math.PI||0}get targetAngle(){return 180*Math.atan2(this.target.b,this.target.a)/Math.PI||0}get scale(){const{a:t,b:e}=this.current;return Math.sqrt(t*t+e*e)||1}get targetScale(){const{a:t,b:e}=this.target;return Math.sqrt(t*t+e*e)||1}get minScale(){return this.option("minScale")||1}get fullScale(){const{contentRect:t}=this;return t.fullWidth/t.fitWidth||1}get maxScale(){return this.fullScale*(this.option("maxScale")||1)||1}get coverScale(){const{containerRect:t,contentRect:e}=this,i=Math.max(t.height/e.fitHeight,t.width/e.fitWidth)||1;return Math.min(this.fullScale,i)}get isScaling(){return Math.abs(this.targetScale-this.scale)>1e-5&&!this.isResting}get isContentLoading(){const t=this.content;return!!(t&&t instanceof HTMLImageElement)&&!t.complete}get isResting(){if(this.isBouncingX||this.isBouncingY)return!1;for(const t of v){const e="e"==t||"f"===t?.001:1e-5;if(Math.abs(this.target[t]-this.current[t])>e)return!1}return!(!this.ignoreBounds&&!this.checkBounds().inBounds)}constructor(t,e={},i={}){var n;if(super(e),Object.defineProperty(this,"pointerTracker",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"resizeObserver",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"updateTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"rAF",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"isTicking",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"friction",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"ignoreBounds",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingX",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"isBouncingY",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"clicks",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"trackingPoints",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"cwd",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"pmme",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:b.Init}),Object.defineProperty(this,"isDragging",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"content",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"spinner",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"containerRect",{enumerable:!0,configurable:!0,writable:!0,value:{width:0,height:0,innerWidth:0,innerHeight:0}}),Object.defineProperty(this,"contentRect",{enumerable:!0,configurable:!0,writable:!0,value:{top:0,right:0,bottom:0,left:0,fullWidth:0,fullHeight:0,fitWidth:0,fitHeight:0,width:0,height:0}}),Object.defineProperty(this,"dragStart",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,top:0,left:0,time:0}}),Object.defineProperty(this,"dragOffset",{enumerable:!0,configurable:!0,writable:!0,value:{x:0,y:0,time:0}}),Object.defineProperty(this,"current",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},C)}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:Object.assign({},C)}),Object.defineProperty(this,"velocity",{enumerable:!0,configurable:!0,writable:!0,value:{a:0,b:0,c:0,d:0,e:0,f:0}}),Object.defineProperty(this,"lockedAxis",{enumerable:!0,configurable:!0,writable:!0,value:!1}),!t)throw new Error("Container Element Not Found");this.container=t,this.initContent(),this.attachPlugins(Object.assign(Object.assign({},k.Plugins),i)),this.emit("init");const o=this.content;if(o.addEventListener("load",this.onLoad),o.addEventListener("error",this.onError),this.isContentLoading){if(this.option("spinner")){t.classList.add(this.cn("isLoading"));const e=s(x);!t.contains(o)||o.parentElement instanceof HTMLPictureElement?this.spinner=t.appendChild(e):this.spinner=(null===(n=o.parentElement)||void 0===n?void 0:n.insertBefore(e,o))||null}this.emit("beforeLoad")}else queueMicrotask((()=>{this.enable()}))}initContent(){const{container:t}=this,e=this.cn(z);let i=this.option(z)||t.querySelector(`.${e}`);if(i||(i=t.querySelector("img,picture")||t.firstElementChild,i&&P(i,e)),i instanceof HTMLPictureElement&&(i=i.querySelector("img")),!i)throw new Error("No content found");this.content=i}onLoad(){this.spinner&&(this.spinner.remove(),this.spinner=null),this.option("spinner")&&this.container.classList.remove(this.cn("isLoading")),this.emit("afterLoad"),this.state===b.Init?this.enable():this.updateMetrics()}onError(){this.state!==b.Destroy&&(this.spinner&&(this.spinner.remove(),this.spinner=null),this.stop(),this.detachEvents(),this.state=b.Error,this.emit("error"))}attachObserver(){var t;const e=()=>Math.abs(this.containerRect.width-this.container.getBoundingClientRect().width)>.1||Math.abs(this.containerRect.height-this.container.getBoundingClientRect().height)>.1;this.resizeObserver||void 0===window.ResizeObserver||(this.resizeObserver=new ResizeObserver((()=>{this.updateTimer||(e()?(this.onResize(),this.isMobile&&(this.updateTimer=setTimeout((()=>{e()&&this.onResize(),this.updateTimer=null}),500))):this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null))}))),null===(t=this.resizeObserver)||void 0===t||t.observe(this.container)}detachObserver(){var t;null===(t=this.resizeObserver)||void 0===t||t.disconnect()}attachEvents(){const{container:t}=this;t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("wheel",this.onWheel,{passive:!1}),this.pointerTracker=new c(t,{start:this.onPointerDown,move:this.onPointerMove,end:this.onPointerUp}),document.addEventListener(O,this.onMouseMove)}detachEvents(){var t;const{container:e}=this;e.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),e.removeEventListener("wheel",this.onWheel,{passive:!1}),null===(t=this.pointerTracker)||void 0===t||t.stop(),this.pointerTracker=null,document.removeEventListener(O,this.onMouseMove),document.removeEventListener("keydown",this.onKeydown,!0),this.clickTimer&&(clearTimeout(this.clickTimer),this.clickTimer=null),this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null)}animate(){const t=this.friction;this.setTargetForce();const e=this.option("maxVelocity");for(const i of v)t?(this.velocity[i]*=1-t,e&&!this.isScaling&&(this.velocity[i]=Math.max(Math.min(this.velocity[i],e),-1*e)),this.current[i]+=this.velocity[i]):this.current[i]=this.target[i];this.setTransform(),this.setEdgeForce(),!this.isResting||this.isDragging?this.rAF=requestAnimationFrame((()=>this.animate())):this.stop("current")}setTargetForce(){for(const t of v)"e"===t&&this.isBouncingX||"f"===t&&this.isBouncingY||(this.velocity[t]=(1/(1-this.friction)-1)*(this.target[t]-this.current[t]))}checkBounds(t=0,e=0){const{current:i}=this,n=i.e+t,s=i.f+e,o=this.getBounds(),{x:a,y:r}=o,l=a.min,c=a.max,h=r.min,d=r.max;let u=0,p=0;return l!==1/0&&nc&&(u=c-n),h!==1/0&&sd&&(p=d-s),Math.abs(u)<.001&&(u=0),Math.abs(p)<.001&&(p=0),Object.assign(Object.assign({},o),{xDiff:u,yDiff:p,inBounds:!u&&!p})}clampTargetBounds(){const{target:t}=this,{x:e,y:i}=this.getBounds();e.min!==1/0&&(t.e=Math.max(t.e,e.min)),e.max!==1/0&&(t.e=Math.min(t.e,e.max)),i.min!==1/0&&(t.f=Math.max(t.f,i.min)),i.max!==1/0&&(t.f=Math.min(t.f,i.max))}calculateContentDim(t=this.current){const{content:e,contentRect:i}=this,{fitWidth:n,fitHeight:s,fullWidth:o,fullHeight:a}=i;let r=o,l=a;if(this.option("zoom")||0!==this.angle){const i=!(e instanceof HTMLImageElement)&&("none"===window.getComputedStyle(e).maxWidth||"none"===window.getComputedStyle(e).maxHeight),c=i?o:n,h=i?a:s,d=this.getMatrix(t),u=new DOMPoint(0,0).matrixTransform(d),p=new DOMPoint(0+c,0).matrixTransform(d),f=new DOMPoint(0+c,0+h).matrixTransform(d),m=new DOMPoint(0,0+h).matrixTransform(d),g=Math.abs(f.x-u.x),b=Math.abs(f.y-u.y),v=Math.abs(m.x-p.x),y=Math.abs(m.y-p.y);r=Math.max(g,v),l=Math.max(b,y)}return{contentWidth:r,contentHeight:l}}setEdgeForce(){if(this.ignoreBounds||this.isDragging||this.panMode===O||this.targetScale{const t=window.getSelection();return t&&"Range"===t.type})()&&!i.closest("button"))return;const n=i.closest("[data-panzoom-action]"),s=i.closest("[data-panzoom-change]"),o=n||s,a=o&&S(o)?o.dataset:null;if(a){const e=a.panzoomChange,i=a.panzoomAction;if((e||i)&&t.preventDefault(),e){let t={};try{t=JSON.parse(e)}catch(t){console&&console.warn("The given data was not valid JSON")}return void this.applyChange(t)}if(i)return void(this[i]&&this[i]())}if(Math.abs(this.dragOffset.x)>3||Math.abs(this.dragOffset.y)>3)return t.preventDefault(),void t.stopPropagation();const r=this.content.getBoundingClientRect();if(this.dragStart.time&&!this.canZoomOut()&&(Math.abs(r.x-this.dragStart.x)>2||Math.abs(r.y-this.dragStart.y)>2))return;this.dragStart.time=0;const l=e=>{this.option("zoom")&&e&&"string"==typeof e&&/(iterateZoom)|(toggle(Zoom|Full|Cover|Max)|(zoomTo(Fit|Cover|Max)))/.test(e)&&"function"==typeof this[e]&&(t.preventDefault(),this[e]({event:t}))},c=this.option("click",t),h=this.option("dblClick",t);h?(this.clicks++,1==this.clicks&&(this.clickTimer=setTimeout((()=>{1===this.clicks?(this.emit("click",t),!t.defaultPrevented&&c&&l(c)):(this.emit("dblClick",t),t.defaultPrevented||l(h)),this.clicks=0,this.clickTimer=null}),350))):(this.emit("click",t),!t.defaultPrevented&&c&&l(c))}addTrackingPoint(t){const e=this.trackingPoints.filter((t=>t.time>Date.now()-100));e.push(t),this.trackingPoints=e}onPointerDown(t,e,i){var n;this.pwt=0,this.dragOffset={x:0,y:0,time:0},this.trackingPoints=[];const s=this.content.getBoundingClientRect();if(this.dragStart={x:s.x,y:s.y,top:s.top,left:s.left,time:Date.now()},this.clickTimer)return!1;if(this.panMode===O&&this.targetScale>1)return t.preventDefault(),t.stopPropagation(),!1;if(!i.length){const e=t.composedPath()[0];if(["A","TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].includes(e.nodeName)||e.closest("[contenteditable]")||e.closest("[data-selectable]")||e.closest("[data-draggable]")||e.closest("[data-panzoom-change]")||e.closest("[data-panzoom-action]"))return!1;null===(n=window.getSelection())||void 0===n||n.removeAllRanges()}if("mousedown"===t.type)t.preventDefault();else if(Math.abs(this.velocity.a)>.3)return!1;return this.target.e=this.current.e,this.target.f=this.current.f,this.stop(),this.isDragging||(this.isDragging=!0,this.addTrackingPoint(e),this.emit("touchStart",t)),!0}onPointerMove(t,i,s){if(!1===this.option("touch",t))return;if(!this.isDragging)return;if(i.length<2&&this.panOnlyZoomed&&e(this.targetScale)<=e(this.minScale))return;if(this.emit("touchMove",t),t.defaultPrevented)return;this.addTrackingPoint(i[0]);const{content:o}=this,a=d(s[0],s[1]),r=d(i[0],i[1]);let l=0,c=0;if(i.length>1){const t=o.getBoundingClientRect();l=a.clientX-t.left-.5*t.width,c=a.clientY-t.top-.5*t.height}const u=h(s[0],s[1]),p=h(i[0],i[1]);let f=u?p/u:1,m=r.clientX-a.clientX,g=r.clientY-a.clientY;this.dragOffset.x+=m,this.dragOffset.y+=g,this.dragOffset.time=Date.now()-this.dragStart.time;let b=e(this.targetScale)===e(this.minScale)&&this.option("lockAxis");if(b&&!this.lockedAxis)if("xy"===b||"y"===b||"touchmove"===t.type){if(Math.abs(this.dragOffset.x)<6&&Math.abs(this.dragOffset.y)<6)return void t.preventDefault();const e=Math.abs(180*Math.atan2(this.dragOffset.y,this.dragOffset.x)/Math.PI);this.lockedAxis=e>45&&e<135?"y":"x",this.dragOffset.x=0,this.dragOffset.y=0,m=0,g=0}else this.lockedAxis=b;if(n(t.target,this.content)&&(b="x",this.dragOffset.y=0),b&&"xy"!==b&&this.lockedAxis!==b&&e(this.targetScale)===e(this.minScale))return;t.cancelable&&t.preventDefault(),this.container.classList.add(this.cn("isDragging"));const v=this.checkBounds(m,g);this.option("rubberband")?("x"!==this.isInfinite&&(v.xDiff>0&&m<0||v.xDiff<0&&m>0)&&(m*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitWidth*v.xDiff))),"y"!==this.isInfinite&&(v.yDiff>0&&g<0||v.yDiff<0&&g>0)&&(g*=Math.max(0,.5-Math.abs(.75/this.contentRect.fitHeight*v.yDiff)))):(v.xDiff&&(m=0),v.yDiff&&(g=0));const y=this.targetScale,w=this.minScale,x=this.maxScale;y<.5*w&&(f=Math.max(f,w)),y>1.5*x&&(f=Math.min(f,x)),"y"===this.lockedAxis&&e(y)===e(w)&&(m=0),"x"===this.lockedAxis&&e(y)===e(w)&&(g=0),this.applyChange({originX:l,originY:c,panX:m,panY:g,scale:f,friction:this.option("dragFriction"),ignoreBounds:!0})}onPointerUp(t,e,i){if(i.length)return this.dragOffset.x=0,this.dragOffset.y=0,void(this.trackingPoints=[]);this.container.classList.remove(this.cn("isDragging")),this.isDragging&&(this.addTrackingPoint(e),this.panOnlyZoomed&&this.contentRect.width-this.contentRect.fitWidth<1&&this.contentRect.height-this.contentRect.fitHeight<1&&(this.trackingPoints=[]),n(t.target,this.content)&&"y"===this.lockedAxis&&(this.trackingPoints=[]),this.emit("touchEnd",t),this.isDragging=!1,this.lockedAxis=!1,this.state!==b.Destroy&&(t.defaultPrevented||this.startDecelAnim()))}startDecelAnim(){var t;const i=this.isScaling;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const t of v)this.velocity[t]=0;this.target.e=this.current.e,this.target.f=this.current.f,E(this.container,"is-scaling"),E(this.container,"is-animating"),this.isTicking=!1;const{trackingPoints:n}=this,s=n[0],o=n[n.length-1];let a=0,r=0,l=0;o&&s&&(a=o.clientX-s.clientX,r=o.clientY-s.clientY,l=o.time-s.time);const c=(null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1;1!==c&&(a*=c,r*=c);let h=0,d=0,u=0,p=0,f=this.option("decelFriction");const m=this.targetScale;if(l>0){u=Math.abs(a)>3?a/(l/30):0,p=Math.abs(r)>3?r/(l/30):0;const t=this.option("maxVelocity");t&&(u=Math.max(Math.min(u,t),-1*t),p=Math.max(Math.min(p,t),-1*t))}u&&(h=u/(1/(1-f)-1)),p&&(d=p/(1/(1-f)-1)),("y"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"y"===this.lockedAxis&&e(m)===this.minScale)&&(h=u=0),("x"===this.option("lockAxis")||"xy"===this.option("lockAxis")&&"x"===this.lockedAxis&&e(m)===this.minScale)&&(d=p=0);const g=this.dragOffset.x,b=this.dragOffset.y,y=this.option("dragMinThreshold")||0;Math.abs(g)this.maxScale+1e-5||i&&!h&&!d)&&(f=.35),this.applyChange({panX:h,panY:d,friction:f}),this.emit("decel",u,p,g,b)}onWheel(t){var e=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const i=Math.max(-1,Math.min(1,e));if(this.emit("wheel",t,i),this.panMode===O)return;if(t.defaultPrevented)return;const n=this.option("wheel");"pan"===n?(t.preventDefault(),this.panOnlyZoomed&&!this.canZoomOut()||this.applyChange({panX:2*-t.deltaX,panY:2*-t.deltaY,bounce:!1})):"zoom"===n&&!1!==this.option("zoom")&&this.zoomWithWheel(t)}onMouseMove(t){this.panWithMouse(t)}onKeydown(t){"Escape"===t.key&&this.toggleFS()}onResize(){this.updateMetrics(),this.checkBounds().inBounds||this.requestTick()}setTransform(){this.emit("beforeTransform");const{current:t,target:i,content:n,contentRect:s}=this,o=Object.assign({},C);for(const n of v){const s="e"==n||"f"===n?T:M;o[n]=e(t[n],s),Math.abs(i[n]-t[n])<("e"==n||"f"===n?.51:.001)&&(t[n]=i[n])}let{a:a,b:r,c:l,d:c,e:h,f:d}=o,u=`matrix(${a}, ${r}, ${l}, ${c}, ${h}, ${d})`,p=n.parentElement instanceof HTMLPictureElement?n.parentElement:n;if(this.option("transformParent")&&(p=p.parentElement||p),p.style.transform===u)return;p.style.transform=u;const{contentWidth:f,contentHeight:m}=this.calculateContentDim();s.width=f,s.height=m,this.emit("afterTransform")}updateMetrics(t=!1){var i;if(!this||this.state===b.Destroy)return;if(this.isContentLoading)return;const n=Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1),{container:s,content:o}=this,a=o instanceof HTMLImageElement,r=s.getBoundingClientRect(),l=getComputedStyle(this.container);let c=r.width*n,h=r.height*n;const d=parseFloat(l.paddingTop)+parseFloat(l.paddingBottom),u=c-(parseFloat(l.paddingLeft)+parseFloat(l.paddingRight)),p=h-d;this.containerRect={width:c,height:h,innerWidth:u,innerHeight:p};let f=this.option("width")||"auto",m=this.option("height")||"auto";"auto"===f&&(f=parseFloat(o.dataset.width||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalWidth:t instanceof SVGElement?t.width.baseVal.value:Math.max(t.offsetWidth,t.scrollWidth),e||0})(o)),"auto"===m&&(m=parseFloat(o.dataset.height||"")||(t=>{let e=0;return e=t instanceof HTMLImageElement?t.naturalHeight:t instanceof SVGElement?t.height.baseVal.value:Math.max(t.offsetHeight,t.scrollHeight),e||0})(o));let g=o.parentElement instanceof HTMLPictureElement?o.parentElement:o;this.option("transformParent")&&(g=g.parentElement||g);const v=g.getAttribute("style")||"";g.style.setProperty("transform","none","important"),a&&(g.style.width="",g.style.height=""),g.offsetHeight;const y=o.getBoundingClientRect();let w=y.width*n,x=y.height*n,S=0,E=0;a&&(Math.abs(f-w)>1||Math.abs(m-x)>1)&&({width:w,height:x,top:S,left:E}=((t,e,i,n)=>{const s=i/n;return s>t/e?(i=t,n=t/s):(i=e*s,n=e),{width:i,height:n,top:.5*(e-n),left:.5*(t-i)}})(w,x,f,m)),this.contentRect=Object.assign(Object.assign({},this.contentRect),{top:y.top-r.top+S,bottom:r.bottom-y.bottom+S,left:y.left-r.left+E,right:r.right-y.right+E,fitWidth:w,fitHeight:x,width:w,height:x,fullWidth:f,fullHeight:m}),g.style.cssText=v,a&&(g.style.width=`${w}px`,g.style.height=`${x}px`),this.setTransform(),!0!==t&&this.emit("refresh"),this.ignoreBounds||(e(this.targetScale)this.maxScale?this.zoomTo(this.maxScale,{friction:0}):this.state===b.Init||this.checkBounds().inBounds||this.requestTick()),this.updateControls()}getBounds(){const t=this.option("bounds");if("auto"!==t)return t;const{contentWidth:i,contentHeight:n}=this.calculateContentDim(this.target);let s=0,o=0,a=0,r=0;const l=this.option("infinite");if(!0===l||this.lockedAxis&&l===this.lockedAxis)s=-1/0,a=1/0,o=-1/0,r=1/0;else{let{containerRect:t,contentRect:l}=this,c=e(this.contentRect.fitWidth*this.targetScale,T),h=e(this.contentRect.fitHeight*this.targetScale,T),{innerWidth:d,innerHeight:u}=t;if(this.containerRect.width===c&&(d=t.width),this.containerRect.width===h&&(u=t.height),i>d){a=.5*(i-d),s=-1*a;let t=.5*(l.right-l.left);s+=t,a+=t}if(this.contentRect.fitWidth>d&&iu){r=.5*(n-u),o=-1*r;let t=.5*(l.bottom-l.top);o+=t,r+=t}this.contentRect.fitHeight>u&&ne(s.fitWidth,1)||e(s.height,1)>e(s.fitHeight,1))&&(f=!0),e(s.width*r,1)e(r),g=!m&&!f&&p&&e(d)i&&(n=i/t)}g=g.scale(n)}g=g.translate(-o,-a).translate(-p,-f).multiply(m),s&&(g=g.rotate(s)),l&&(g=g.scale(-1,1)),c&&(g=g.scale(1,-1));for(const t of v)"e"!==t&&"f"!==t&&(g[t]>this.minScale+1e-5||g[t].1||this.panMode===O||!1===d)&&!h&&this.clampTargetBounds(),this.isResting||(this.state=b.Panning,this.requestTick())}stop(t=!1){if(this.state===b.Init||this.state===b.Destroy)return;const e=this.isTicking;this.rAF&&(cancelAnimationFrame(this.rAF),this.rAF=null),this.isBouncingX=!1,this.isBouncingY=!1;for(const e of v)this.velocity[e]=0,"current"===t?this.current[e]=this.target[e]:"target"===t&&(this.target[e]=this.current[e]);this.setTransform(),E(this.container,"is-scaling"),E(this.container,"is-animating"),this.isTicking=!1,this.state=b.Ready,e&&(this.emit("endAnimation"),this.updateControls())}requestTick(){this.isTicking||(this.emit("startAnimation"),this.updateControls(),P(this.container,"is-animating"),this.isScaling&&P(this.container,"is-scaling")),this.isTicking=!0,this.rAF||(this.rAF=requestAnimationFrame((()=>this.animate())))}panWithMouse(t,i=this.option("mouseMoveFriction")){if(this.pmme=t,this.panMode!==O||!t)return;if(e(this.targetScale)<=e(this.minScale))return;this.emit("mouseMove",t);const{container:n,containerRect:s,contentRect:o}=this,a=s.width,r=s.height,l=n.getBoundingClientRect(),c=(t.clientX||0)-l.left,h=(t.clientY||0)-l.top;let{contentWidth:d,contentHeight:u}=this.calculateContentDim(this.target);const p=this.option("mouseMoveFactor");p>1&&(d!==a&&(d*=p),u!==r&&(u*=p));let f=.5*(d-a)-c/a*100/100*(d-a);f+=.5*(o.right-o.left);let m=.5*(u-r)-h/r*100/100*(u-r);m+=.5*(o.bottom-o.top),this.applyChange({panX:f-this.target.e,panY:m-this.target.f,friction:i})}zoomWithWheel(t){if(this.state===b.Destroy||this.state===b.Init)return;const i=Date.now();if(i-this.pwt<45)return void t.preventDefault();this.pwt=i;var n=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t}));const s=Math.max(-1,Math.min(1,n)),{targetScale:o,maxScale:a,minScale:r}=this;let l=o*(100+45*s)/100;e(l)e(a)&&e(o)>=e(a)?(this.cwd+=Math.abs(s),l=a):(this.cwd=0,l=Math.max(Math.min(l,a),r)),this.cwd>this.option("wheelLimit")||(t.preventDefault(),e(l)!==e(o)&&this.zoomTo(l,{event:t}))}canZoomIn(){return this.option("zoom")&&(e(this.contentRect.width,1)e(this.minScale)}zoomIn(t=1.25,e){this.zoomTo(this.targetScale*t,e)}zoomOut(t=.8,e){this.zoomTo(this.targetScale*t,e)}zoomToFit(t){this.zoomTo("fit",t)}zoomToCover(t){this.zoomTo("cover",t)}zoomToFull(t){this.zoomTo("full",t)}zoomToMax(t){this.zoomTo("max",t)}toggleZoom(t){this.zoomTo(this.targetScale-this.minScale<.5*(this.fullScale-this.minScale)?"full":"fit",t)}toggleMax(t){this.zoomTo(this.targetScale-this.minScale<.5*(this.maxScale-this.minScale)?"max":"fit",t)}toggleCover(t){this.zoomTo(this.targetScale-this.minScale<.5*(this.coverScale-this.minScale)?"cover":"fit",t)}iterateZoom(t){this.zoomTo("next",t)}zoomTo(t=1,{friction:e="auto",originX:i=0,originY:n=0,event:s}={}){if(this.isContentLoading||this.state===b.Destroy)return;const{targetScale:o}=this;this.stop();let a=1;if(this.panMode===O&&(s=this.pmme||s),s){const t=this.content.getBoundingClientRect(),e=s.clientX||0,o=s.clientY||0;i=e-t.left-.5*t.width,n=o-t.top-.5*t.height}const r=this.fullScale,l=this.maxScale;let c=this.coverScale;"number"==typeof t?a=t/o:("next"===t&&(r-c<.2&&(c=r),t=o1?.15:.25:e,this.applyChange({scale:a,originX:i,originY:n,friction:e}),s&&this.panMode===O&&this.panWithMouse(s,e)}rotateCCW(){this.applyChange({angle:-90})}rotateCW(){this.applyChange({angle:90})}flipX(){this.applyChange({flipX:!0})}flipY(){this.applyChange({flipY:!0})}fitX(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.height-(e.top+.5*e.fitHeight)-i.f,scale:t.width/e.fitWidth/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}fitY(){this.stop("target");const{containerRect:t,contentRect:e,target:i}=this;this.applyChange({panX:.5*t.width-(e.left+.5*e.fitWidth)-i.e,panY:.5*t.innerHeight-(e.top+.5*e.fitHeight)-i.f,scale:t.height/e.fitHeight/this.targetScale,originX:0,originY:0,ignoreBounds:!0})}toggleFS(){const{container:t}=this,e=this.cn("inFullscreen"),i=this.cn("htmlHasFullscreen");t.classList.toggle(e);const n=t.classList.contains(e);n?(document.documentElement.classList.add(i),document.addEventListener("keydown",this.onKeydown,!0)):(document.documentElement.classList.remove(i),document.removeEventListener("keydown",this.onKeydown,!0)),this.updateMetrics(),this.emit(n?"enterFS":"exitFS")}getMatrix(t=this.current){const{a:e,b:i,c:n,d:s,e:o,f:a}=t;return new DOMMatrix([e,i,n,s,o,a])}reset(t){if(this.state!==b.Init&&this.state!==b.Destroy){this.stop("current");for(const t of v)this.target[t]=C[t];this.target.a=this.minScale,this.target.d=this.minScale,this.clampTargetBounds(),this.isResting||(this.friction=void 0===t?this.option("friction"):t,this.state=b.Panning,this.requestTick())}}destroy(){this.stop(),this.state=b.Destroy,this.detachEvents(),this.detachObserver();const{container:t,content:e}=this,i=this.option("classes")||{};for(const e of Object.values(i))t.classList.remove(e+"");e&&(e.removeEventListener("load",this.onLoad),e.removeEventListener("error",this.onError)),this.detachPlugins()}}Object.defineProperty(k,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:w}),Object.defineProperty(k,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:{}});const I=function(t,e){let i=!0;return(...n)=>{i&&(i=!1,t(...n),setTimeout((()=>{i=!0}),e))}},D=(t,e)=>{let i=[];return t.childNodes.forEach((t=>{t.nodeType!==Node.ELEMENT_NODE||e&&!t.matches(e)||i.push(t)})),i},F={viewport:null,track:null,enabled:!0,slides:[],axis:"x",transition:"fade",preload:1,slidesPerPage:"auto",initialPage:0,friction:.12,Panzoom:{decelFriction:.12},center:!0,infinite:!0,fill:!0,dragFree:!1,adaptiveHeight:!1,direction:"ltr",classes:{container:"f-carousel",viewport:"f-carousel__viewport",track:"f-carousel__track",slide:"f-carousel__slide",isLTR:"is-ltr",isRTL:"is-rtl",isHorizontal:"is-horizontal",isVertical:"is-vertical",inTransition:"in-transition",isSelected:"is-selected"},l10n:{NEXT:"Next slide",PREV:"Previous slide",GOTO:"Go to slide #%d"}};var j;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Destroy=2]="Destroy"}(j||(j={}));const H=t=>{if("string"==typeof t&&(t={html:t}),!(t instanceof String||t instanceof HTMLElement)){const e=t.thumb;void 0!==e&&("string"==typeof e&&(t.thumbSrc=e),e instanceof HTMLImageElement&&(t.thumbEl=e,t.thumbElSrc=e.src,t.thumbSrc=e.src),delete t.thumb)}return Object.assign({html:"",el:null,isDom:!1,class:"",index:-1,dim:0,gap:0,pos:0,transition:!1},t)},B=(t={})=>Object.assign({index:-1,slides:[],dim:0,pos:-1},t);class _ extends m{constructor(t,e){super(e),Object.defineProperty(this,"instance",{enumerable:!0,configurable:!0,writable:!0,value:t})}attach(){}detach(){}}const N={classes:{list:"f-carousel__dots",isDynamic:"is-dynamic",hasDots:"has-dots",dot:"f-carousel__dot",isBeforePrev:"is-before-prev",isPrev:"is-prev",isCurrent:"is-current",isNext:"is-next",isAfterNext:"is-after-next"},dotTpl:'',dynamicFrom:11,maxCount:1/0,minCount:2};class W extends _{constructor(){super(...arguments),Object.defineProperty(this,"isDynamic",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"list",{enumerable:!0,configurable:!0,writable:!0,value:null})}onRefresh(){this.refresh()}build(){let t=this.list;return t||(t=document.createElement("ul"),P(t,this.cn("list")),t.setAttribute("role","tablist"),this.instance.container.appendChild(t),P(this.instance.container,this.cn("hasDots")),this.list=t),t}refresh(){var t;const e=this.instance.pages.length,i=Math.min(2,this.option("minCount")),n=Math.max(2e3,this.option("maxCount")),s=this.option("dynamicFrom");if(en)return void this.cleanup();const o="number"==typeof s&&e>5&&e>=s,r=!this.list||this.isDynamic!==o||this.list.children.length!==e;r&&this.cleanup();const l=this.build();if(a(l,this.cn("isDynamic"),!!o),r)for(let t=0;t=e-1&&s.setAttribute($,"")))}createButton(t){const e=this.instance,i=document.createElement("button");i.setAttribute("tabindex","0"),i.setAttribute("title",e.localize(`{{${t.toUpperCase()}}}`)),P(i,this.cn("button")+" "+this.cn(t===X?"isNext":"isPrev"));const n=e.isRTL?t===X?Y:X:t;var s;return i.innerHTML=e.localize(this.option(`${n}Tpl`)),i.dataset[`carousel${s=t,s?s.match("^[a-z]")?s.charAt(0).toUpperCase()+s.substring(1):s:""}`]="true",i}build(){let t=this.container;t||(this.container=t=document.createElement("div"),P(t,this.cn("container")),this.instance.container.appendChild(t)),this.next||(this.next=t.appendChild(this.createButton(X))),this.prev||(this.prev=t.appendChild(this.createButton(Y)))}cleanup(){this.prev&&this.prev.remove(),this.next&&this.next.remove(),this.container&&this.container.remove(),this.prev=null,this.next=null,this.container=null}attach(){this.instance.on(["refresh","change"],this.onRefresh)}detach(){this.instance.off(["refresh","change"],this.onRefresh),this.cleanup()}}Object.defineProperty(q,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{classes:{container:"f-carousel__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"},nextTpl:'',prevTpl:''}});class V extends _{constructor(){super(...arguments),Object.defineProperty(this,"selectedIndex",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"target",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"nav",{enumerable:!0,configurable:!0,writable:!0,value:null})}addAsTargetFor(t){this.target=this.instance,this.nav=t,this.attachEvents()}addAsNavFor(t){this.nav=this.instance,this.target=t,this.attachEvents()}attachEvents(){this.nav&&this.target&&(this.nav.options.initialSlide=this.target.options.initialPage,this.nav.on("ready",this.onNavReady),this.nav.state===j.Ready&&this.onNavReady(this.nav),this.target.on("ready",this.onTargetReady),this.target.state===j.Ready&&this.onTargetReady(this.target))}onNavReady(t){t.on("createSlide",this.onNavCreateSlide),t.on("Panzoom.click",this.onNavClick),t.on("Panzoom.touchEnd",this.onNavTouch),this.onTargetChange()}onTargetReady(t){t.on("change",this.onTargetChange),t.on("Panzoom.refresh",this.onTargetChange),this.onTargetChange()}onNavClick(t,e,i){i.pointerType||this.onNavTouch(t,t.panzoom,i)}onNavTouch(t,e,i){var n,s;if(Math.abs(e.dragOffset.x)>3||Math.abs(e.dragOffset.y)>3)return;const o=i.target,{nav:a,target:r}=this;if(!a||!r||!o)return;const l=o.closest("[data-index]");if(i.stopPropagation(),i.preventDefault(),!l)return;const c=parseInt(l.dataset.index||"",10)||0,h=r.getPageForSlide(c),d=a.getPageForSlide(c);a.slideTo(d),r.slideTo(h,{friction:(null===(s=null===(n=this.nav)||void 0===n?void 0:n.plugins)||void 0===s?void 0:s.Sync.option("friction"))||0}),this.markSelectedSlide(c)}onNavCreateSlide(t,e){e.index===this.selectedIndex&&this.markSelectedSlide(e.index)}onTargetChange(){const{target:t,nav:e}=this;if(!t||!e)return;if(e.state!==j.Ready||t.state!==j.Ready)return;const i=t.pages[t.page].slides[0].index,n=e.getPageForSlide(i);this.markSelectedSlide(i),e.slideTo(n)}markSelectedSlide(t){const e=this.nav;e&&e.state===j.Ready&&(this.selectedIndex=t,[...e.slides].map((e=>{e.el&&e.el.classList[e.index===t?"add":"remove"]("is-nav-selected")})))}attach(){const t=this;let e=t.options.target,i=t.options.nav;e?t.addAsNavFor(e):i&&t.addAsTargetFor(i)}detach(){const t=this,e=t.nav,i=t.target;e&&(e.off("ready",t.onNavReady),e.off("createSlide",t.onNavCreateSlide),e.off("Panzoom.click",t.onNavClick),e.off("Panzoom.touchEnd",t.onNavTouch)),t.nav=null,i&&(i.off("ready",t.onTargetReady),i.off("refresh",t.onTargetChange),i.off("change",t.onTargetChange)),t.target=null}}Object.defineProperty(V,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{friction:.35}});const Z={Navigation:q,Dots:W,Sync:V};class G extends g{get axis(){return this.isHorizontal?"e":"f"}get isEnabled(){return this.state===j.Ready}get isInfinite(){let t=!1;const{contentDim:e,viewportDim:i,pages:n,slides:s}=this;return n.length>=2&&e+s[0].dim>=i&&(t=this.option("infinite")),t}get isRTL(){return"rtl"===this.option("direction")}get isHorizontal(){return"x"===this.option("axis")}constructor(t,e={},i={}){if(super(),Object.defineProperty(this,"userOptions",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"bp",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"lp",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:j.Init}),Object.defineProperty(this,"page",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"prevPage",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"viewport",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"slides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"pages",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"panzoom",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"inTransition",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),Object.defineProperty(this,"contentDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"viewportDim",{enumerable:!0,configurable:!0,writable:!0,value:0}),"string"==typeof t&&(t=document.querySelector(t)),!t||!S(t))throw new Error("No Element found");this.container=t,this.slideNext=I(this.slideNext.bind(this),150),this.slidePrev=I(this.slidePrev.bind(this),150),this.userOptions=e,this.userPlugins=i,queueMicrotask((()=>{this.processOptions()}))}processOptions(){const t=p({},G.defaults,this.userOptions);let e="";const i=t.breakpoints;if(i&&u(i))for(const[n,s]of Object.entries(i))window.matchMedia(n).matches&&u(s)&&(e+=n,p(t,s));e===this.bp&&this.state!==j.Init||(this.bp=e,this.state===j.Ready&&(t.initialSlide=this.pages[this.page].slides[0].index),this.state!==j.Init&&this.destroy(),super.setOptions(t),!1===this.option("enabled")?this.attachEvents():setTimeout((()=>{this.init()}),0))}init(){this.state=j.Init,this.emit("init"),this.attachPlugins(Object.assign(Object.assign({},G.Plugins),this.userPlugins)),this.initLayout(),this.initSlides(),this.updateMetrics(),this.setInitialPosition(),this.initPanzoom(),this.attachEvents(),this.state=j.Ready,this.emit("ready")}initLayout(){const{container:t}=this,e=this.option("classes");P(t,this.cn("container")),a(t,e.isLTR,!this.isRTL),a(t,e.isRTL,this.isRTL),a(t,e.isVertical,!this.isHorizontal),a(t,e.isHorizontal,this.isHorizontal);let i=this.option("viewport")||t.querySelector(`.${e.viewport}`);i||(i=document.createElement("div"),P(i,e.viewport),i.append(...D(t,`.${e.slide}`)),t.prepend(i));let n=this.option("track")||t.querySelector(`.${e.track}`);n||(n=document.createElement("div"),P(n,e.track),n.append(...Array.from(i.childNodes))),n.setAttribute("aria-live","polite"),i.contains(n)||i.prepend(n),this.viewport=i,this.track=n,this.emit("initLayout")}initSlides(){const{track:t}=this;if(t){this.slides=[],[...D(t,`.${this.cn("slide")}`)].forEach((t=>{if(S(t)){const e=H({el:t,isDom:!0,index:this.slides.length});this.slides.push(e),this.emit("initSlide",e,this.slides.length)}}));for(let t of this.option("slides",[])){const e=H(t);e.index=this.slides.length,this.slides.push(e),this.emit("initSlide",e,this.slides.length)}this.emit("initSlides")}}setInitialPage(){let t=0;const e=this.option("initialSlide");t="number"==typeof e?this.getPageForSlide(e):parseInt(this.option("initialPage",0)+"",10)||0,this.page=t}setInitialPosition(){if(!this.track||!this.pages.length)return;const t=this.isHorizontal;let e=this.page;this.pages[e]||(this.page=e=0);const i=this.pages[e].pos*(this.isRTL&&t?1:-1),n=t?`${i}px`:"0",s=t?"0":`${i}px`;this.track.style.transform=`translate3d(${n}, ${s}, 0) scale(1)`,this.option("adaptiveHeight")&&this.setViewportHeight()}initPanzoom(){this.panzoom&&(this.panzoom.destroy(),this.panzoom=null);const t=this.option("Panzoom")||{};this.panzoom=new k(this.viewport,p({},{content:this.track,zoom:!1,panOnlyZoomed:!1,lockAxis:this.isHorizontal?"x":"y",infinite:this.isInfinite,click:!1,dblClick:!1,touch:t=>!(this.pages.length<2&&!t.options.infinite),bounds:()=>this.getBounds(),maxVelocity:t=>Math.abs(t.target[this.axis]-t.current[this.axis])<2*this.viewportDim?100:0},t)),this.panzoom.on("*",((t,e,...i)=>{this.emit(`Panzoom.${e}`,t,...i)})),this.panzoom.on("decel",this.onDecel),this.panzoom.on("refresh",this.onRefresh),this.panzoom.on("beforeTransform",this.onBeforeTransform),this.panzoom.on("endAnimation",this.onEndAnimation)}attachEvents(){const t=this.container;t&&(t.addEventListener("click",this.onClick,{passive:!1,capture:!1}),t.addEventListener("slideTo",this.onSlideTo)),window.addEventListener("resize",this.onResize)}createPages(){let t=[];const{contentDim:e,viewportDim:i}=this;let n=this.option("slidesPerPage");("number"!=typeof n||e<=i)&&(n=1/0);let s=0,o=0,a=0;for(const e of this.slides)(!t.length||o+e.dim>i||a===n)&&(t.push(B()),s=t.length-1,o=0,a=0),t[s].slides.push(e),o+=e.dim+e.gap,a++;return t}processPages(){const t=this.pages,{contentDim:i,viewportDim:n}=this,s=this.option("center"),o=this.option("fill"),a=o&&s&&i>n&&!this.isInfinite;if(t.forEach(((t,e)=>{t.index=e,t.pos=t.slides[0].pos,t.dim=0;for(const[e,i]of t.slides.entries())t.dim+=i.dim,e=i-.5*n?t.pos=i-n:s&&(t.pos+=-.5*(n-t.dim))})),t.forEach(((t,s)=>{o&&!this.isInfinite&&i>n&&(t.pos=Math.max(t.pos,0),t.pos=Math.min(t.pos,i-n)),t.pos=e(t.pos,1e3),t.dim=e(t.dim,1e3),t.pos<.1&&t.pos>-.1&&(t.pos=0)})),this.isInfinite)return t;const r=[];let l;return t.forEach((t=>{const e=Object.assign({},t);l&&e.pos===l.pos?(l.dim+=e.dim,l.slides=[...l.slides,...e.slides]):(e.index=r.length,l=e,r.push(e))})),r}getPageFromIndex(t=0){const e=this.pages.length;let i;return t=parseInt((t||0).toString())||0,i=this.isInfinite?(t%e+e)%e:Math.max(Math.min(t,e-1),0),i}getSlideMetrics(t){var i;const n=this.isHorizontal?"width":"height";let s=0,o=0,a=t.el;if(a?s=parseFloat(a.dataset[n]||"")||0:(a=document.createElement("div"),a.style.visibility="hidden",P(a,this.cn("slide")+" "+t.class),(this.track||document.body).prepend(a)),s)a.style[n]=`${s}px`,a.style["width"===n?"height":"width"]="";else{const t=Math.max(1,(null===(i=window.visualViewport)||void 0===i?void 0:i.scale)||1);s=a.getBoundingClientRect()[n]*t}const r=getComputedStyle(a);return"content-box"===r.boxSizing&&(this.isHorizontal?(s+=parseFloat(r.paddingLeft)||0,s+=parseFloat(r.paddingRight)||0):(s+=parseFloat(r.paddingTop)||0,s+=parseFloat(r.paddingBottom)||0)),o=parseFloat(r[this.isHorizontal?"marginRight":"marginBottom"])||0,t.el||a.remove(),{dim:e(s,1e3),gap:e(o,1e3)}}getBounds(){const{isInfinite:t,isRTL:e,isHorizontal:i,pages:n}=this;let s={min:0,max:0};if(t)s={min:-1/0,max:1/0};else if(n.length){const t=n[0].pos,o=n[n.length-1].pos;s=e&&i?{min:t,max:o}:{min:-1*o,max:-1*t}}return{x:i?s:{min:0,max:0},y:i?{min:0,max:0}:s}}repositionSlides(){let t,{isHorizontal:i,isRTL:n,isInfinite:s,viewport:o,viewportDim:a,contentDim:r,page:l,pages:c,slides:h,panzoom:d}=this,u=0,p=0,f=0,m=0;d?m=-1*d.current[this.axis]:c[l]&&(m=c[l].pos||0),t=i?n?"right":"left":"top",n&&i&&(m*=-1);for(const i of h)i.el?("top"===t?(i.el.style.right="",i.el.style.left=""):i.el.style.top="",i.index!==u?i.el.style[t]=0===p?"":`${e(p,1e3)}px`:i.el.style[t]="",f+=i.dim+i.gap,u++):p+=i.dim+i.gap;if(s&&f&&o){let n=getComputedStyle(o),s="padding",l=i?"Right":"Bottom",c=parseFloat(n[s+(i?"Left":"Top")]);m-=c,a+=c,a+=parseFloat(n[s+l]);for(const i of h)i.el&&(e(i.pos)e(r-a)&&(i.el.style[t]=`${e(p+f,1e3)}px`),e(i.pos+i.gap)>=e(r-a)&&e(i.pos)>e(m+a)&&e(m)1&&(g=c[v[0]],b=c[v[1]]),g&&b){let i=0;for(const n of h)n.el?this.inTransition.has(n.index)&&g.slides.indexOf(n)<0&&(n.el.style[t]=`${e(i+(g.pos-b.pos),1e3)}px`):i+=n.dim+n.gap}}createSlideEl(t){const{track:e,slides:i}=this;if(!e||!t)return;if(t.el)return;const n=document.createElement("div");P(n,this.cn("slide")),P(n,t.class),P(n,t.customClass),t.html&&(n.innerHTML=t.html);const s=[];i.forEach(((t,e)=>{t.el&&s.push(e)}));const o=t.index;let a=null;if(s.length){a=i[s.reduce(((t,e)=>Math.abs(e-o)1)return!1;const a=t>this.page?1:-1,r=this.pages[o].pos*(this.isRTL?1:-1);if(this.page===o&&e(r,1e3)===e(s.target[this.axis],1e3))return!1;this.clearTransitions();const l=s.isResting;P(this.container,this.cn("inTransition"));const c=this.pages[this.page].slides[0],h=this.pages[o].slides[0];this.inTransition.add(h.index),this.createSlideEl(h);let d=c.el,u=h.el;l||"slide"===i||(i="fadeFast",d=null);const p=this.isRTL?"next":"prev",f=this.isRTL?"prev":"next";return d&&(this.inTransition.add(c.index),c.transition=i,d.addEventListener("animationend",this.onAnimationEnd),d.classList.add(`f-${i}Out`,`to-${a>0?f:p}`)),u&&(h.transition=i,u.addEventListener("animationend",this.onAnimationEnd),u.classList.add(`f-${i}In`,`from-${a>0?p:f}`)),s.panTo({x:this.isHorizontal?r:0,y:this.isHorizontal?0:r,friction:0}),this.onChange(o),!0}manageSlideVisiblity(){const t=new Set,e=new Set,i=this.getVisibleSlides(parseFloat(this.option("preload",0)+"")||0);for(const n of this.slides)i.has(n)?t.add(n):e.add(n);for(const e of this.inTransition)t.add(this.slides[e]);for(const e of t)this.createSlideEl(e),this.lazyLoadSlide(e);for(const i of e)t.has(i)||this.removeSlideEl(i);this.markSelectedSlides(),this.repositionSlides()}markSelectedSlides(){if(!this.pages[this.page]||!this.pages[this.page].slides)return;const t="aria-hidden";let e=this.cn("isSelected");if(e)for(const i of this.slides)i.el&&(i.el.dataset.index=`${i.index}`,this.pages[this.page].slides.includes(i)?(i.el.classList.contains(e)||(P(i.el,e),this.emit("selectSlide",i)),i.el.removeAttribute(t)):(i.el.classList.contains(e)&&(E(i.el,e),this.emit("unselectSlide",i)),i.el.setAttribute(t,"true")))}flipInfiniteTrack(){const t=this.panzoom;if(!t||!this.isInfinite)return;const e="x"===this.option("axis")?"e":"f",{viewportDim:i,contentDim:n}=this;let s=t.current[e],o=t.target[e]-s,a=0,r=.5*i,l=n;this.isRTL&&this.isHorizontal?(s<-r&&(a=-1,s+=l),s>l-r&&(a=1,s-=l)):(s>r&&(a=1,s-=l),s<-l+r&&(a=-1,s+=l)),a&&(t.current[e]=s,t.target[e]=s+o)}lazyLoadSlide(t){const e=this,i=t&&t.el;if(!i)return;const n=new Set,o="f-fadeIn";i.querySelectorAll("[data-lazy-srcset]").forEach((t=>{t instanceof HTMLImageElement&&n.add(t)}));let a=Array.from(i.querySelectorAll("[data-lazy-src]"));i.dataset.lazySrc&&a.push(i),a.map((t=>{t instanceof HTMLImageElement?n.add(t):S(t)&&(t.style.backgroundImage=`url('${t.dataset.lazySrc||""}')`,delete t.dataset.lazySrc)}));const r=(t,i,n)=>{n&&(n.remove(),n=null),i.complete&&(i.classList.add(o),setTimeout((()=>{i.classList.remove(o)}),350),i.style.display=""),this.option("adaptiveHeight")&&t.el&&this.pages[this.page].slides.indexOf(t)>-1&&(e.updateMetrics(),e.setViewportHeight()),this.emit("load",t)};for(const e of n){let i=null;e.src=e.dataset.lazySrcset||e.dataset.lazySrc||"",delete e.dataset.lazySrc,delete e.dataset.lazySrcset,e.style.display="none",e.addEventListener("error",(()=>{r(t,e,i)})),e.addEventListener("load",(()=>{r(t,e,i)})),setTimeout((()=>{e.parentNode&&t.el&&(e.complete?r(t,e,i):(i=s(x),e.parentNode.insertBefore(i,e)))}),300)}}onAnimationEnd(t){var e;const i=t.target,n=i?parseInt(i.dataset.index||"",10)||0:-1,s=this.slides[n],o=t.animationName;if(!i||!s||!o)return;const a=!!this.inTransition.has(n)&&s.transition;a&&o.substring(0,a.length+2)===`f-${a}`&&this.inTransition.delete(n),this.inTransition.size||this.clearTransitions(),n===this.page&&(null===(e=this.panzoom)||void 0===e?void 0:e.isResting)&&this.emit("settle")}onDecel(t,e=0,i=0,n=0,s=0){const{isRTL:o,isHorizontal:a,axis:r,pages:l}=this,c=l.length,h=Math.abs(Math.atan2(i,e)/(Math.PI/180));let d=0;if(d=h>45&&h<135?a?0:i:a?e:0,!c)return;const u=this.option("dragFree");let p=this.page,f=o&&a?1:-1;const m=t.target[r]*f,g=t.current[r]*f;let{pageIndex:b}=this.getPageFromPosition(m),{pageIndex:v}=this.getPageFromPosition(g);u?this.onChange(b):(Math.abs(d)>5?(l[p].dim.5&&(t.target[this.axis]=-1*this.pages[this.page].pos,t.current[this.axis]=-1*this.pages[this.page].pos,t.stop()),this.manageSlideVisiblity(),this.emit("refresh")}getProgress(t,i=!1){void 0===t&&(t=this.page);const n=this,s=n.panzoom,o=n.pages[t]||0;if(!o||!s)return 0;let a=-1*s.current.e,r=n.contentDim;var l=[e((a-o.pos)/(1*o.dim),1e3),e((a+r-o.pos)/(1*o.dim),1e3),e((a-r-o.pos)/(1*o.dim),1e3)].reduce((function(t,e){return Math.abs(e){t.el&&(s=Math.max(s,t.el.offsetHeight))}))),i.style.height=s?`${s}px`:""}getPageForSlide(t){for(const e of this.pages)for(const i of e.slides)if(i.index===t)return e.index;return-1}getVisibleSlides(t=0){var e;const i=new Set;let{contentDim:n,viewportDim:s,pages:o,page:a}=this;n=n+(null===(e=this.slides[this.slides.length-1])||void 0===e?void 0:e.gap)||0;let r=0;r=this.panzoom?-1*this.panzoom.current[this.axis]:o[a]&&o[a].pos||0,this.isInfinite&&(r-=Math.floor(r/n)*n),this.isRTL&&this.isHorizontal&&(r*=-1);const l=r-s*t,c=r+s*(t+1),h=this.isInfinite?[-1,0,1]:[0];for(const t of this.slides)for(const e of h){const s=t.pos+e*n,o=t.pos+t.dim+t.gap+e*n;sl&&i.add(t)}return i}getPageFromPosition(t){const{viewportDim:e,contentDim:i}=this,n=this.pages.length,s=this.slides.length,o=this.slides[s-1];let a=0,r=0,l=0;const c=this.option("center");c&&(t+=.5*e),this.isInfinite||(t=Math.max(this.slides[0].pos,Math.min(t,o.pos)));const h=i+o.gap;l=Math.floor(t/h)||0,t-=l*h;let d=o,u=this.slides.find((e=>{const i=t+(d&&!c?.5*d.dim:0);return d=e,e.pos<=i&&e.pos+e.dim+e.gap>i}));return u||(u=o),r=this.getPageForSlide(u.index),a=r+l*n,{page:a,pageIndex:r}}destroy(){if([j.Destroy].includes(this.state))return;this.state=j.Destroy;const{container:t,viewport:e,track:i,slides:n,panzoom:s}=this,o=this.option("classes");t.removeEventListener("click",this.onClick,{passive:!1,capture:!1}),t.removeEventListener("slideTo",this.onSlideTo),window.removeEventListener("resize",this.onResize),s&&(s.destroy(),this.panzoom=null),n&&n.forEach((t=>{this.removeSlideEl(t)})),this.detachPlugins(),e&&e.offsetParent&&i&&i.offsetParent&&e.replaceWith(...i.childNodes);for(const[e,i]of Object.entries(o))"container"!==e&&i&&t.classList.remove(i);this.track=null,this.viewport=null,this.page=0,this.slides=[];const a=this.events.get("ready");this.events=new Map,a&&this.events.set("ready",a)}}Object.defineProperty(G,"Panzoom",{enumerable:!0,configurable:!0,writable:!0,value:k}),Object.defineProperty(G,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:F}),Object.defineProperty(G,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:Z});const U=function(t){const e=window.pageYOffset,i=window.pageYOffset+window.innerHeight;if(!S(t))return 0;const n=t.getBoundingClientRect(),s=n.y+window.pageYOffset,o=n.y+n.height+window.pageYOffset;if(e>o||io)return 100;if(si)return 100;let a=n.height;si&&(a-=o-i);const r=a/window.innerHeight*100;return Math.round(r)},K=!("undefined"==typeof window||!window.document||!window.document.createElement);let J;const Q=["a[href]","area[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden]):not(.fancybox-focus-guard)","iframe","object","embed","video","audio","[contenteditable]",'[tabindex]:not([tabindex^="-"]):not([disabled]):not([aria-hidden])'].join(","),tt=t=>{if(t&&K){void 0===J&&document.createElement("div").focus({get preventScroll(){return J=!0,!1}});try{if(J)t.focus({preventScroll:!0});else{const e=window.pageXOffset||document.body.scrollTop,i=window.pageYOffset||document.body.scrollLeft;t.focus(),document.body.scrollTo({top:e,left:i,behavior:"auto"})}}catch(t){}}},et={dragToClose:!0,hideScrollbar:!0,Carousel:{classes:{container:"fancybox__carousel",viewport:"fancybox__viewport",track:"fancybox__track",slide:"fancybox__slide"}},contentClick:"toggleZoom",contentDblClick:!1,backdropClick:"close",animated:!0,idle:3500,showClass:"f-zoomInUp",hideClass:"f-fadeOut",commonCaption:!1,parentEl:null,startIndex:0,l10n:Object.assign(Object.assign({},y),{CLOSE:"Close",NEXT:"Next",PREV:"Previous",MODAL:"You can close this modal content with the ESC key",ERROR:"Something Went Wrong, Please Try Again Later",IMAGE_ERROR:"Image Not Found",ELEMENT_NOT_FOUND:"HTML Element Not Found",AJAX_NOT_FOUND:"Error Loading AJAX : Not Found",AJAX_FORBIDDEN:"Error Loading AJAX : Forbidden",IFRAME_ERROR:"Error Loading Page",TOGGLE_ZOOM:"Toggle zoom level",TOGGLE_THUMBS:"Toggle thumbnails",TOGGLE_SLIDESHOW:"Toggle slideshow",TOGGLE_FULLSCREEN:"Toggle full-screen mode",DOWNLOAD:"Download"}),tpl:{closeButton:'',main:''},groupAll:!1,groupAttr:"data-fancybox",defaultType:"image",defaultDisplay:"block",autoFocus:!0,trapFocus:!0,placeFocusBack:!0,closeButton:"auto",keyboard:{Escape:"close",Delete:"close",Backspace:"close",PageUp:"next",PageDown:"prev",ArrowUp:"prev",ArrowDown:"next",ArrowRight:"next",ArrowLeft:"prev"},Fullscreen:{autoStart:!1},compact:()=>window.matchMedia("(max-width: 578px), (max-height: 578px)").matches,wheel:"zoom"};var it,nt;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Closing=2]="Closing",t[t.CustomClosing=3]="CustomClosing",t[t.Destroy=4]="Destroy"}(it||(it={})),function(t){t[t.Loading=0]="Loading",t[t.Opening=1]="Opening",t[t.Ready=2]="Ready",t[t.Closing=3]="Closing"}(nt||(nt={}));const st=()=>{queueMicrotask((()=>{(()=>{const{slug:t,index:e}=ot.parseURL(),i=_t.getInstance();if(i&&!1!==i.option("Hash")){const n=i.carousel;if(t&&n){for(let e of n.slides)if(e.slug&&e.slug===t)return n.slideTo(e.index);if(t===i.option("slug"))return n.slideTo(e-1);const s=i.getSlide(),o=s&&s.triggerEl&&s.triggerEl.dataset;if(o&&o.fancybox===t)return n.slideTo(e-1)}ot.hasSilentClose=!0,i.close()}ot.startFromUrl()})()}))};class ot extends _{constructor(){super(...arguments),Object.defineProperty(this,"origHash",{enumerable:!0,configurable:!0,writable:!0,value:""}),Object.defineProperty(this,"timer",{enumerable:!0,configurable:!0,writable:!0,value:null})}onChange(){const t=this.instance,e=t.carousel;this.timer&&clearTimeout(this.timer);const i=t.getSlide();if(!e||!i)return;const n=t.isOpeningSlide(i),s=new URL(document.URL).hash;let o,a=i.slug||void 0,r=i.triggerEl||void 0;o=a||this.instance.option("slug"),!o&&r&&r.dataset&&(o=r.dataset.fancybox);let l="";o&&"true"!==o&&(l="#"+o+(!a&&e.slides.length>1?"-"+(i.index+1):"")),n&&(this.origHash=s!==l?s:""),l&&s!==l&&(this.timer=setTimeout((()=>{try{t.state===it.Ready&&window.history[n?"pushState":"replaceState"]({},document.title,window.location.pathname+window.location.search+l)}catch(t){}}),300))}onClose(){if(this.timer&&clearTimeout(this.timer),!0!==ot.hasSilentClose)try{window.history.replaceState({},document.title,window.location.pathname+window.location.search+(this.origHash||""))}catch(t){}}attach(){const t=this.instance;t.on("Carousel.ready",this.onChange),t.on("Carousel.change",this.onChange),t.on("close",this.onClose)}detach(){const t=this.instance;t.off("Carousel.ready",this.onChange),t.off("Carousel.change",this.onChange),t.off("close",this.onClose)}static parseURL(){const t=window.location.hash.slice(1),e=t.split("-"),i=e[e.length-1],n=i&&/^\+?\d+$/.test(i)&&parseInt(e.pop()||"1",10)||1;return{hash:t,slug:e.join("-"),index:n}}static startFromUrl(){if(ot.hasSilentClose=!1,_t.getInstance()||!1===_t.defaults.Hash)return;const{hash:t,slug:e,index:i}=ot.parseURL();if(!e)return;let n=document.querySelector(`[data-slug="${t}"]`);if(n&&n.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})),_t.getInstance())return;const s=document.querySelectorAll(`[data-fancybox="${e}"]`);s.length&&(n=s[i-1],n&&n.dispatchEvent(new CustomEvent("click",{bubbles:!0,cancelable:!0})))}static destroy(){window.removeEventListener("hashchange",st,!1)}}function at(){window.addEventListener("hashchange",st,!1),setTimeout((()=>{ot.startFromUrl()}),500)}Object.defineProperty(ot,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(ot,"hasSilentClose",{enumerable:!0,configurable:!0,writable:!0,value:!1}),K&&(/complete|interactive|loaded/.test(document.readyState)?at():document.addEventListener("DOMContentLoaded",at));class rt extends _{onCreateSlide(t,e,i){const n=this.instance.optionFor(i,"src")||"";i.el&&"image"===i.type&&"string"==typeof n&&this.setImage(i,n)}onRemoveSlide(t,e,i){i.panzoom&&i.panzoom.destroy(),i.panzoom=void 0,i.imageEl=void 0}onChange(t,e,i,n){for(const t of e.slides){const e=t.panzoom;e&&t.index!==i&&e.reset(.35)}}onClose(){var t;const e=this.instance,i=e.container,n=e.getSlide();if(!i||!i.parentElement||!n)return;const{el:s,contentEl:o,panzoom:a}=n,r=n.thumbElSrc;if(!s||!r||!o||!a||a.isContentLoading||a.state===b.Init||a.state===b.Destroy)return;a.updateMetrics();let l=this.getZoomInfo(n);if(!l)return;this.instance.state=it.CustomClosing,i.classList.remove("is-zooming-in"),i.classList.add("is-zooming-out"),o.style.backgroundImage=`url('${r}')`;const c=i.getBoundingClientRect();1===((null===(t=window.visualViewport)||void 0===t?void 0:t.scale)||1)&&Object.assign(i.style,{position:"absolute",top:`${window.pageYOffset}px`,left:`${window.pageXOffset}px`,bottom:"auto",right:"auto",width:`${c.width}px`,height:`${c.height}px`,overflow:"hidden"});const{x:h,y:d,scale:u,opacity:p}=l;if(p){const t=((t,e,i,n)=>{const s=e-t,o=n-i;return e=>i+((e-t)/s*o||0)})(a.scale,u,1,0);a.on("afterTransform",(()=>{o.style.opacity=t(a.scale)+""}))}a.on("endAnimation",(()=>{e.destroy()})),a.target.a=u,a.target.b=0,a.target.c=0,a.target.d=u,a.panTo({x:h,y:d,scale:u,friction:p?.2:.33,ignoreBounds:!0}),a.isResting&&e.destroy()}setImage(t,e){const i=this.instance;t.src=e,this.process(t,e).then((e=>{var n;const s=t.contentEl,o=t.imageEl,a=t.thumbElSrc;if(i.isClosing()||!s||!o)return;s.offsetHeight;const r=!!i.isOpeningSlide(t)&&this.getZoomInfo(t);if(this.option("protected")){null===(n=t.el)||void 0===n||n.addEventListener("contextmenu",(t=>{t.preventDefault()}));const e=document.createElement("div");P(e,"fancybox-protected"),s.appendChild(e)}if(a&&r){const n=e.contentRect,o=Math.max(n.fullWidth,n.fullHeight);let c=null;!r.opacity&&o>1200&&(c=document.createElement("img"),P(c,"fancybox-ghost"),c.src=a,s.appendChild(c));const h=()=>{c&&(P(c,"f-fadeFastOut"),setTimeout((()=>{c&&(c.remove(),c=null)}),200))};(l=a,new Promise(((t,e)=>{const i=new Image;i.onload=t,i.onerror=e,i.src=l}))).then((()=>{t.state=nt.Opening,this.instance.emit("reveal",t),this.zoomIn(t).then((()=>{h(),this.instance.done(t)}),(()=>{i.hideLoading(t)})),c&&setTimeout((()=>{h()}),o>2500?800:200)}),(()=>{i.hideLoading(t),i.revealContent(t)}))}else{const n=this.optionFor(t,"initialSize"),s=this.optionFor(t,"zoom"),o={event:i.prevMouseMoveEvent||i.options.event,friction:s?.12:0};let a=i.optionFor(t,"showClass")||void 0,r=!0;i.isOpeningSlide(t)&&("full"===n?e.zoomToFull(o):"cover"===n?e.zoomToCover(o):"max"===n?e.zoomToMax(o):r=!1,e.stop("current")),r&&a&&(a=e.isDragging?"f-fadeIn":""),i.revealContent(t,a)}var l}),(()=>{i.setError(t,"{{IMAGE_ERROR}}")}))}process(t,e){return new Promise(((i,n)=>{var o,a;const r=this.instance,l=t.el;r.clearContent(t),r.showLoading(t);let c=this.optionFor(t,"content");"string"==typeof c&&(c=s(c)),c&&S(c)||(c=document.createElement("img"),c instanceof HTMLImageElement&&(c.src=e||"",c.alt=(null===(o=t.caption)||void 0===o?void 0:o.replace(/<[^>]+>/gi,"").substring(0,1e3))||`Image ${t.index+1} of ${null===(a=r.carousel)||void 0===a?void 0:a.pages.length}`,c.draggable=!1,t.srcset&&c.setAttribute("srcset",t.srcset)),t.sizes&&c.setAttribute("sizes",t.sizes)),c.classList.add("fancybox-image"),t.imageEl=c,r.setContent(t,c,!1);t.panzoom=new k(l,p({},this.option("Panzoom")||{},{content:c,width:r.optionFor(t,"width","auto"),height:r.optionFor(t,"height","auto"),wheel:()=>{const t=r.option("wheel");return("zoom"===t||"pan"==t)&&t},click:(e,i)=>{var n,s;if(r.isCompact||r.isClosing())return!1;if(t.index!==(null===(n=r.getSlide())||void 0===n?void 0:n.index))return!1;let o=!i||i.target&&(null===(s=t.contentEl)||void 0===s?void 0:s.contains(i.target));return r.option(o?"contentClick":"backdropClick")||!1},dblClick:()=>r.isCompact?"toggleZoom":r.option("contentDblClick")||!1,spinner:!1,panOnlyZoomed:!0,wheelLimit:1/0,transformParent:!0,on:{ready:t=>{i(t)},error:()=>{n()},destroy:()=>{n()}}}))}))}zoomIn(t){return new Promise(((e,i)=>{const n=this.instance,s=n.container,{panzoom:o,contentEl:a,el:r}=t;o&&o.updateMetrics();const l=this.getZoomInfo(t);if(!(l&&r&&a&&o&&s))return void i();const{x:c,y:h,scale:d,opacity:u}=l,p=()=>{t.state!==nt.Closing&&(u&&(a.style.opacity=Math.max(Math.min(1,1-(1-o.scale)/(1-d)),0)+""),o.scale>=1&&o.scale>o.targetScale-.1&&e(o))},f=t=>{E(s,"is-zooming-in"),t.scale<.99||t.scale>1.01||(a.style.opacity="",t.off("endAnimation",f),t.off("touchStart",f),t.off("afterTransform",p),e(t))};o.on("endAnimation",f),o.on("touchStart",f),o.on("afterTransform",p),o.on(["error","destroy"],(()=>{i()})),o.panTo({x:c,y:h,scale:d,friction:0,ignoreBounds:!0}),o.stop("current");const m={event:"mousemove"===o.panMode?n.prevMouseMoveEvent||n.options.event:void 0},g=this.optionFor(t,"initialSize");P(s,"is-zooming-in"),n.hideLoading(t),"full"===g?o.zoomToFull(m):"cover"===g?o.zoomToCover(m):"max"===g?o.zoomToMax(m):o.reset(.172)}))}getZoomInfo(t){var e;const{el:i,imageEl:n,thumbEl:s,panzoom:o}=t;if(!i||!n||!s||!o||U(s)<3||!this.optionFor(t,"zoom")||this.instance.state===it.Destroy)return!1;if(1!==((null===(e=window.visualViewport)||void 0===e?void 0:e.scale)||1))return!1;let{top:a,left:r,width:l,height:c}=s.getBoundingClientRect(),{top:h,left:d,fitWidth:u,fitHeight:p}=o.contentRect;if(!(l&&c&&u&&p))return!1;const f=o.container.getBoundingClientRect();d+=f.left,h+=f.top;const m=-1*(d+.5*u-(r+.5*l)),g=-1*(h+.5*p-(a+.5*c)),b=l/u;let v=this.option("zoomOpacity")||!1;return"auto"===v&&(v=Math.abs(l/c-u/p)>.1),{x:m,y:g,scale:b,opacity:v}}attach(){const t=this,e=t.instance;e.on("Carousel.change",t.onChange),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.removeSlide",t.onRemoveSlide),e.on("close",t.onClose)}detach(){const t=this,e=t.instance;e.off("Carousel.change",t.onChange),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.removeSlide",t.onRemoveSlide),e.off("close",t.onClose)}}Object.defineProperty(rt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{initialSize:"fit",Panzoom:{maxScale:1},protected:!1,zoom:!0,zoomOpacity:"auto"}});const lt=(t,e={})=>{const i=new URL(t),n=new URLSearchParams(i.search),s=new URLSearchParams;for(const[t,i]of[...n,...Object.entries(e)]){let e=i.toString();"t"===t?s.set("start",parseInt(e).toString()):s.set(t,e)}let o=s.toString(),a=t.match(/#t=((.*)?\d+s)/);return a&&(o+=`#t=${a[1]}`),o},ct={ajax:null,autoSize:!0,iframeAttr:{allow:"autoplay; fullscreen",scrolling:"auto"},preload:!0,videoAutoplay:!0,videoRatio:16/9,videoTpl:'',videoFormat:"",vimeo:{byline:1,color:"00adef",controls:1,dnt:1,muted:0},youtube:{controls:1,enablejsapi:1,nocookie:1,rel:0,fs:1}},ht=["image","html","ajax","inline","clone","iframe","map","pdf","html5video","youtube","vimeo","video"];class dt extends _{onInitSlide(t,e,i){this.processType(i)}onCreateSlide(t,e,i){this.setContent(i)}onRemoveSlide(t,e,i){i.xhr&&(i.xhr.abort(),i.xhr=null);const n=i.iframeEl;n&&(n.onload=n.onerror=null,n.src="//about:blank",i.iframeEl=null);const s=i.contentEl,o=i.placeholderEl;if("inline"===i.type&&s&&o)s.classList.remove("fancybox__content"),"none"!==s.style.display&&(s.style.display="none"),o.parentNode&&o.parentNode.insertBefore(s,o),o.remove(),i.contentEl=void 0,i.placeholderEl=void 0;else for(;i.el&&i.el.firstChild;)i.el.removeChild(i.el.firstChild)}onSelectSlide(t,e,i){i.state===nt.Ready&&this.playVideo()}onUnselectSlide(t,e,i){var n,s;if("html5video"===i.type){try{null===(s=null===(n=i.el)||void 0===n?void 0:n.querySelector("video"))||void 0===s||s.pause()}catch(t){}return}let o;"vimeo"===i.type?o={method:"pause",value:"true"}:"youtube"===i.type&&(o={event:"command",func:"pauseVideo"}),o&&i.iframeEl&&i.iframeEl.contentWindow&&i.iframeEl.contentWindow.postMessage(JSON.stringify(o),"*"),i.poller&&clearTimeout(i.poller)}onDone(t,e){t.isCurrentSlide(e)&&!t.isClosing()&&this.playVideo()}onRefresh(t,e){e.slides.forEach((t=>{t.el&&(this.setAspectRatio(t),this.resizeIframe(t))}))}onMessage(t){try{let e=JSON.parse(t.data);if("https://player.vimeo.com"===t.origin){if("ready"===e.event)for(let e of Array.from(document.getElementsByClassName("fancybox__iframe")))e instanceof HTMLIFrameElement&&e.contentWindow===t.source&&(e.dataset.ready="true")}else if(t.origin.match(/^https:\/\/(www.)?youtube(-nocookie)?.com$/)&&"onReady"===e.event){const t=document.getElementById(e.id);t&&(t.dataset.ready="true")}}catch(t){}}loadAjaxContent(t){const e=this.instance.optionFor(t,"src")||"";this.instance.showLoading(t);const i=this.instance,n=new XMLHttpRequest;i.showLoading(t),n.onreadystatechange=function(){n.readyState===XMLHttpRequest.DONE&&i.state===it.Ready&&(i.hideLoading(t),200===n.status?i.setContent(t,n.responseText):i.setError(t,404===n.status?"{{AJAX_NOT_FOUND}}":"{{AJAX_FORBIDDEN}}"))};const s=t.ajax||null;n.open(s?"POST":"GET",e+""),n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(s),t.xhr=n}setInlineContent(t){let e=null;if(S(t.src))e=t.src;else if("string"==typeof t.src){const i=t.src.split("#",2).pop();e=i?document.getElementById(i):null}if(e){if("clone"===t.type||e.closest(".fancybox__slide")){e=e.cloneNode(!0);const i=e.dataset.animationName;i&&(e.classList.remove(i),delete e.dataset.animationName);let n=e.getAttribute("id");n=n?`${n}--clone`:`clone-${this.instance.id}-${t.index}`,e.setAttribute("id",n)}else if(e.parentNode){const i=document.createElement("div");i.classList.add("fancybox-placeholder"),e.parentNode.insertBefore(i,e),t.placeholderEl=i}this.instance.setContent(t,e)}else this.instance.setError(t,"{{ELEMENT_NOT_FOUND}}")}setIframeContent(t){const{src:e,el:i}=t;if(!e||"string"!=typeof e||!i)return;const n=this.instance,s=document.createElement("iframe");s.className="fancybox__iframe",s.setAttribute("id",`fancybox__iframe_${n.id}_${t.index}`);for(const[e,i]of Object.entries(this.optionFor(t,"iframeAttr")||{}))s.setAttribute(e,i);s.onerror=()=>{n.setError(t,"{{IFRAME_ERROR}}")},t.iframeEl=s;const o=this.optionFor(t,"preload");if(i.classList.add("is-loading"),"iframe"!==t.type||!1===o)return s.setAttribute("src",t.src+""),this.resizeIframe(t),void n.setContent(t,s);n.showLoading(t),s.onload=()=>{if(!s.src.length)return;const e="true"!==s.dataset.ready;s.dataset.ready="true",this.resizeIframe(t),e?n.revealContent(t):n.hideLoading(t)},s.setAttribute("src",e),n.setContent(t,s,!1)}resizeIframe(t){const e=t.iframeEl,i=null==e?void 0:e.parentElement;if(!e||!i)return;let n=t.autoSize,s=t.width||0,o=t.height||0;s&&o&&(n=!1);const a=i&&i.style;if(!1!==t.preload&&!1!==n&&a)try{const t=window.getComputedStyle(i),n=parseFloat(t.paddingLeft)+parseFloat(t.paddingRight),r=parseFloat(t.paddingTop)+parseFloat(t.paddingBottom),l=e.contentWindow;if(l){const t=l.document,e=t.getElementsByTagName("html")[0],i=t.body;a.width="",i.style.overflow="hidden",s=s||e.scrollWidth+n,a.width=`${s}px`,i.style.overflow="",a.flex="0 0 auto",a.height=`${i.scrollHeight}px`,o=e.scrollHeight+r}}catch(t){}if(s||o){const t={flex:"0 1 auto",width:"",height:""};s&&(t.width=`${s}px`),o&&(t.height=`${o}px`),Object.assign(a,t)}}playVideo(){const t=this.instance.getSlide();if(!t)return;const{el:e}=t;if(!e||!e.offsetParent)return;if(!this.optionFor(t,"videoAutoplay"))return;if("html5video"===t.type)try{const t=e.querySelector("video");if(t){const e=t.play();void 0!==e&&e.then((()=>{})).catch((e=>{t.muted=!0,t.play()}))}}catch(t){}if("youtube"!==t.type&&"vimeo"!==t.type)return;const i=()=>{if(t.iframeEl&&t.iframeEl.contentWindow){let e;if("true"===t.iframeEl.dataset.ready)return e="youtube"===t.type?{event:"command",func:"playVideo"}:{method:"play",value:"true"},e&&t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"),void(t.poller=void 0);"youtube"===t.type&&(e={event:"listening",id:t.iframeEl.getAttribute("id")},t.iframeEl.contentWindow.postMessage(JSON.stringify(e),"*"))}t.poller=setTimeout(i,250)};i()}processType(t){if(t.html)return t.type="html",t.src=t.html,void(t.html="");const e=this.instance.optionFor(t,"src","");if(!e||"string"!=typeof e)return;let i=t.type,n=null;if(n=e.match(/(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(?:watch\?(?:.*&)?v=|v\/|u\/|shorts\/|embed\/?)?(videoseries\?list=(?:.*)|[\w-]{11}|\?listType=(?:.*)&list=(?:.*))(?:.*)/i)){const s=this.optionFor(t,"youtube"),{nocookie:o}=s,a=function(t,e){var i={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var s=0;for(n=Object.getOwnPropertySymbols(t);s0?"svembed":"embed"}`,i="map"):(n=e.match(/(?:maps\.)?google\.([a-z]{2,3}(?:\.[a-z]{2})?)\/(?:maps\/search\/)(.*)/i))&&(t.src=`https://maps.google.${n[1]}/maps?q=${n[2].replace("query=","q=").replace("api=1","")}&output=embed`,i="map")),i=i||this.instance.option("defaultType"),t.type=i,"image"===i&&(t.thumbSrc=t.thumbSrc||t.src)}setContent(t){const e=this.instance.optionFor(t,"src")||"";if(t&&t.type&&e){switch(t.type){case"html":this.instance.setContent(t,e);break;case"html5video":const i=this.option("videoTpl");i&&this.instance.setContent(t,i.replace(/\{\{src\}\}/gi,e+"").replace(/\{\{format\}\}/gi,this.optionFor(t,"videoFormat")||"").replace(/\{\{poster\}\}/gi,t.poster||t.thumbSrc||""));break;case"inline":case"clone":this.setInlineContent(t);break;case"ajax":this.loadAjaxContent(t);break;case"pdf":case"map":case"youtube":case"vimeo":t.preload=!1;case"iframe":this.setIframeContent(t)}this.setAspectRatio(t)}}setAspectRatio(t){var e;const i=t.contentEl,n=this.optionFor(t,"videoRatio"),s=null===(e=t.el)||void 0===e?void 0:e.getBoundingClientRect();if(!(i&&s&&n&&1!==n&&t.type&&["video","youtube","vimeo","html5video"].includes(t.type)))return;const o=s.width,a=s.height;i.style.aspectRatio=n+"",i.style.width=o/a>n?"auto":"",i.style.height=o/a>n?"":"auto"}attach(){const t=this,e=t.instance;e.on("Carousel.initSlide",t.onInitSlide),e.on("Carousel.createSlide",t.onCreateSlide),e.on("Carousel.removeSlide",t.onRemoveSlide),e.on("Carousel.selectSlide",t.onSelectSlide),e.on("Carousel.unselectSlide",t.onUnselectSlide),e.on("Carousel.Panzoom.refresh",t.onRefresh),e.on("done",t.onDone),window.addEventListener("message",t.onMessage)}detach(){const t=this,e=t.instance;e.off("Carousel.initSlide",t.onInitSlide),e.off("Carousel.createSlide",t.onCreateSlide),e.off("Carousel.removeSlide",t.onRemoveSlide),e.off("Carousel.selectSlide",t.onSelectSlide),e.off("Carousel.unselectSlide",t.onUnselectSlide),e.off("Carousel.Panzoom.refresh",t.onRefresh),e.off("done",t.onDone),window.removeEventListener("message",t.onMessage)}}Object.defineProperty(dt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:ct});const ut="play",pt="pause",ft="ready";class mt extends _{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:ft}),Object.defineProperty(this,"inHover",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"timer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"progressBar",{enumerable:!0,configurable:!0,writable:!0,value:null})}get isActive(){return this.state!==ft}onReady(t){this.option("autoStart")&&(t.isInfinite||t.page{t.timer=null,t.inHover||t.onTimerEnd()}),i),t.emit("set")}clear(){const t=this;t.timer&&(clearTimeout(t.timer),t.timer=null),t.removeProgressBar()}start(){const t=this;if(t.set(),t.state!==ft){if(t.option("pauseOnHover")){const e=t.instance.container;e.addEventListener("mouseenter",t.onMouseEnter,!1),e.addEventListener("mouseleave",t.onMouseLeave,!1)}document.addEventListener("visibilitychange",t.onVisibilityChange,!1),t.emit("start")}}stop(){const t=this,e=t.state,i=t.instance.container;t.clear(),t.state=ft,i.removeEventListener("mouseenter",t.onMouseEnter,!1),i.removeEventListener("mouseleave",t.onMouseLeave,!1),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),E(i,"has-autoplay"),e!==ft&&t.emit("stop")}pause(){const t=this;t.state===ut&&(t.state=pt,t.clear(),t.emit(pt))}resume(){const t=this,e=t.instance;if(e.isInfinite||e.page!==e.pages.length-1)if(t.state!==ut){if(t.state===pt&&!t.inHover){const e=new Event("resume",{bubbles:!0,cancelable:!0});t.emit("resume",e),e.defaultPrevented||t.set()}}else t.set();else t.stop()}toggle(){this.state===ut||this.state===pt?this.stop():this.start()}attach(){const t=this,e=t.instance;e.on("ready",t.onReady),e.on("Panzoom.startAnimation",t.onChange),e.on("Panzoom.endAnimation",t.onSettle),e.on("Panzoom.touchMove",t.onChange)}detach(){const t=this,e=t.instance;e.off("ready",t.onReady),e.off("Panzoom.startAnimation",t.onChange),e.off("Panzoom.endAnimation",t.onSettle),e.off("Panzoom.touchMove",t.onChange),t.stop()}}Object.defineProperty(mt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{autoStart:!0,pauseOnHover:!0,progressParentEl:null,showProgress:!0,timeout:3e3}});class gt extends _{constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null})}onPrepare(t){const e=t.carousel;if(!e)return;const i=t.container;i&&(e.options.Autoplay=p({autoStart:!1},this.option("Autoplay")||{},{pauseOnHover:!1,timeout:this.option("timeout"),progressParentEl:()=>this.option("progressParentEl")||null,on:{start:()=>{t.emit("startSlideshow")},set:e=>{var n;i.classList.add("has-slideshow"),(null===(n=t.getSlide())||void 0===n?void 0:n.state)!==nt.Ready&&e.pause()},stop:()=>{i.classList.remove("has-slideshow"),t.isCompact||t.endIdle(),t.emit("endSlideshow")},resume:(e,i)=>{var n,s,o;!i||!i.cancelable||(null===(n=t.getSlide())||void 0===n?void 0:n.state)===nt.Ready&&(null===(o=null===(s=t.carousel)||void 0===s?void 0:s.panzoom)||void 0===o?void 0:o.isResting)||i.preventDefault()}}}),e.attachPlugins({Autoplay:mt}),this.ref=e.plugins.Autoplay)}onReady(t){const e=t.carousel,i=this.ref;e&&i&&this.option("playOnStart")&&(e.isInfinite||e.page{t.isCurrentSlide(e)&&i.stop()})),t.isCurrentSlide(e)&&i.resume()}onKeydown(t,e){var i;const n=this.ref;n&&e===this.option("key")&&"BUTTON"!==(null===(i=document.activeElement)||void 0===i?void 0:i.nodeName)&&n.toggle()}attach(){const t=this,e=t.instance;e.on("Carousel.init",t.onPrepare),e.on("Carousel.ready",t.onReady),e.on("done",t.onDone),e.on("keydown",t.onKeydown)}detach(){const t=this,e=t.instance;e.off("Carousel.init",t.onPrepare),e.off("Carousel.ready",t.onReady),e.off("done",t.onDone),e.off("keydown",t.onKeydown)}}Object.defineProperty(gt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:{key:" ",playOnStart:!1,progressParentEl:t=>{var e;return(null===(e=t.instance.container)||void 0===e?void 0:e.querySelector(".fancybox__toolbar [data-fancybox-toggle-slideshow]"))||t.instance.container},timeout:3e3}});const bt={classes:{container:"f-thumbs f-carousel__thumbs",viewport:"f-thumbs__viewport",track:"f-thumbs__track",slide:"f-thumbs__slide",isResting:"is-resting",isSelected:"is-selected",isLoading:"is-loading",hasThumbs:"has-thumbs"},minCount:2,parentEl:null,thumbTpl:'',type:"modern"};var vt;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Hidden=2]="Hidden",t[t.Disabled=3]="Disabled"}(vt||(vt={}));let yt=class extends _{constructor(){super(...arguments),Object.defineProperty(this,"type",{enumerable:!0,configurable:!0,writable:!0,value:"modern"}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"track",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"panzoom",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"thumbWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbClipWidth",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbHeight",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"thumbExtraGap",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"shouldCenter",{enumerable:!0,configurable:!0,writable:!0,value:!0}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:vt.Init})}formatThumb(t,e){return this.instance.localize(e,[["%i",t.index],["%d",t.index+1],["%s",t.thumbSrc||"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"]])}getSlides(){const t=[],e=this.option("thumbTpl")||"";if(e)for(const i of this.instance.slides||[]){let n="";i.type&&(n=`for-${i.type}`,i.type&&["video","youtube","vimeo","html5video"].includes(i.type)&&(n+=" for-video")),t.push({html:this.formatThumb(i,e),customClass:n})}return t}onInitSlide(t,e){const i=e.el;i&&(e.thumbSrc=i.dataset.thumbSrc||e.thumbSrc||"",e.thumbClipWidth=parseFloat(i.dataset.thumbClipWidth||"")||e.thumbClipWidth||0,e.thumbHeight=parseFloat(i.dataset.thumbHeight||"")||e.thumbHeight||0)}onInitSlides(){this.state===vt.Init&&this.build()}onRefreshM(){this.refreshModern()}onChangeM(){"modern"===this.type&&(this.shouldCenter=!0,this.centerModern())}onClickModern(t){t.preventDefault(),t.stopPropagation();const e=this.instance,i=e.page,n=t=>{if(t){const e=t.closest("[data-carousel-index]");if(e)return parseInt(e.dataset.carouselIndex||"",10)||0}return-1},s=(t,e)=>{const i=document.elementFromPoint(t,e);return i?n(i):-1};let o=n(t.target);o<0&&(o=s(t.clientX+this.thumbGap,t.clientY),o===i&&(o=i-1)),o<0&&(o=s(t.clientX-this.thumbGap,t.clientY),o===i&&(o=i+1)),o<0&&(o=(e=>{let n=s(t.clientX-e,t.clientY),a=s(t.clientX+e,t.clientY);return o<0&&n===i&&(o=i+1),o<0&&a===i&&(o=i-1),o})(this.thumbExtraGap)),o===i?this.centerModern():o>-1&&o{this.emit("ready")})),n.on("createSlide",((t,e)=>{this.emit("createSlide",e,e.el)}))}buildModern(){if("modern"!==this.type)return;const{container:t,track:e,instance:i}=this,n=this.option("thumbTpl")||"";if(!t||!e||!n)return;P(t,"is-horizontal"),this.updateModern();for(const t of i.slides||[]){const i=document.createElement("div");if(P(i,this.cn("slide")),t.type){let e=`for-${t.type}`;["video","youtube","vimeo","html5video"].includes(t.type)&&(e+=" for-video"),P(i,e)}i.appendChild(s(this.formatThumb(t,n))),this.emit("createSlide",t,i),t.thumbSlideEl=i,e.appendChild(i),this.resizeModernSlide(t)}const o=new i.constructor.Panzoom(t,{content:e,lockAxis:"x",zoom:!1,panOnlyZoomed:!1,bounds:()=>{let t=0,e=0,n=i.slides[0],s=i.slides[i.slides.length-1],o=i.slides[i.page];return n&&s&&o&&(e=-1*this.getModernThumbPos(0),0!==i.page&&(e+=.5*(n.thumbWidth||0)),t=-1*this.getModernThumbPos(i.slides.length-1),i.page!==i.slides.length-1&&(t+=(s.thumbWidth||0)-(o.thumbWidth||0)-.5*(s.thumbWidth||0))),{x:{min:t,max:e},y:{min:0,max:0}}}});o.on("touchStart",((t,e)=>{this.shouldCenter=!1})),o.on("click",((t,e)=>this.onClickModern(e))),o.on("ready",(()=>{this.centerModern(),this.emit("ready")})),o.on(["afterTransform","refresh"],(t=>{this.lazyLoadModern()})),this.panzoom=o,this.refreshModern()}updateModern(){if("modern"!==this.type)return;const{container:t}=this;t&&(this.thumbGap=parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-gap"))||0,this.thumbExtraGap=parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-extra-gap"))||0,this.thumbWidth=parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-width"))||40,this.thumbClipWidth=parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-clip-width"))||40,this.thumbHeight=parseFloat(getComputedStyle(t).getPropertyValue("--f-thumb-height"))||40)}refreshModern(){var t;if("modern"===this.type){this.updateModern();for(const t of this.instance.slides||[])this.resizeModernSlide(t);this.onTransformM(),null===(t=this.panzoom)||void 0===t||t.updateMetrics(!0),this.centerModern(0)}}centerModern(t){const i=this.instance,{container:n,panzoom:s}=this;if(!n||!s||s.state===b.Init)return;const o=i.page;let a=this.getModernThumbPos(o),r=a;for(let t=i.page-3;ti.pages.length-1||t===i.page)continue;const e=1-Math.abs(i.getProgress(t));e>0&&e<1&&(r+=e*(this.getModernThumbPos(t)-a))}let l=100;void 0===t&&(t=.2,i.inTransition.size>0&&(t=.12),Math.abs(-1*s.current.e-r)>s.containerRect.width&&(t=.5,l=0)),s.options.maxVelocity=l,s.applyChange({panX:e(-1*r-s.target.e,1e3),friction:null===i.prevPage?0:t})}lazyLoadModern(){const{instance:t,panzoom:e}=this;if(!e)return;const i=-1*e.current.e||0;let n=this.getModernThumbPos(t.page);if(e.state!==b.Init||0===n)for(const n of t.slides||[]){const t=n.thumbSlideEl;if(!t)continue;const o=t.querySelector("img[data-lazy-src]"),a=n.index,r=this.getModernThumbPos(a),l=i-.5*e.containerRect.innerWidth,c=l+e.containerRect.innerWidth;if(!o||rc)continue;let h=o.dataset.lazySrc;if(!h||!h.length)continue;if(delete o.dataset.lazySrc,o.src=h,o.complete)continue;P(t,this.cn("isLoading"));const d=s(x);t.appendChild(d),o.addEventListener("load",(()=>{t.offsetParent&&(t.classList.remove(this.cn("isLoading")),d.remove())}),!1)}}resizeModernSlide(t){if("modern"!==this.type)return;if(!t.thumbSlideEl)return;const e=t.thumbClipWidth&&t.thumbHeight?Math.round(this.thumbHeight*(t.thumbClipWidth/t.thumbHeight)):this.thumbWidth;t.thumbWidth=e}getModernThumbPos(t){const i=this.instance.slides[t],n=this.panzoom;if(!n||!n.contentRect.fitWidth)return 0;let s=n.containerRect.innerWidth,o=n.contentRect.width;2===this.instance.slides.length&&(t-=1,o=2*this.thumbClipWidth);let a=t*(this.thumbClipWidth+this.thumbGap)+this.thumbExtraGap+.5*(i.thumbWidth||0);return a-=o>s?.5*s:.5*o,e(a||0,1)}build(){const t=this.instance,e=t.container,i=this.option("minCount")||0;if(i){let e=0;for(const i of t.slides||[])i.thumbSrc&&e++;if(e{setTimeout((()=>{var e;null===(e=null==s?void 0:s.querySelector(`[data-carousel-index="${t.page}"]`))||void 0===e||e.focus()}),100)}))}cleanup(){this.carousel&&this.carousel.destroy(),this.carousel=null,this.panzoom&&this.panzoom.destroy(),this.panzoom=null,this.container&&this.container.remove(),this.container=null,this.track=null,this.state=vt.Init,E(this.instance.container,this.cn("hasThumbs"))}attach(){const t=this,e=t.instance;e.on("initSlide",t.onInitSlide),e.state===j.Init?e.on("initSlides",t.onInitSlides):t.onInitSlides(),e.on("Panzoom.afterTransform",t.onTransformM),e.on("Panzoom.refresh",t.onRefreshM),e.on("change",t.onChangeM)}detach(){const t=this,e=t.instance;e.off("initSlide",t.onInitSlide),e.off("initSlides",t.onInitSlides),e.off("Panzoom.afterTransform",t.onTransformM),e.off("Panzoom.refresh",t.onRefreshM),e.off("change",t.onChangeM),t.cleanup()}};Object.defineProperty(yt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:bt});const wt=Object.assign(Object.assign({},bt),{key:"t",showOnStart:!0,parentEl:null});class xt extends _{constructor(){super(...arguments),Object.defineProperty(this,"ref",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"hidden",{enumerable:!0,configurable:!0,writable:!0,value:!1})}get isEnabled(){const t=this.ref;return t&&t.state!==vt.Disabled}get isHidden(){return this.hidden}onInit(){var t;const e=this,i=e.instance,n=i.carousel;if(e.ref||!n)return;const s=e.option("parentEl")||i.footer||i.container;if(!s)return;const o=p({},e.options,{parentEl:s,classes:{container:"f-thumbs fancybox__thumbs"},Carousel:{Sync:{friction:i.option("Carousel.friction")||0}},on:{ready:t=>{const i=t.container;i&&this.hidden&&(e.refresh(),i.style.transition="none",e.hide(),i.offsetHeight,queueMicrotask((()=>{i.style.transition="",e.show()})))}}});o.Carousel=o.Carousel||{},o.Carousel.on=p((null===(t=e.options.Carousel)||void 0===t?void 0:t.on)||{},{click:(t,e)=>{e.stopPropagation()}}),n.options.Thumbs=o,n.attachPlugins({Thumbs:yt}),e.ref=n.plugins.Thumbs,e.option("showOnStart")||(e.ref.state=vt.Hidden,e.hidden=!0)}onResize(){var t;const e=null===(t=this.ref)||void 0===t?void 0:t.container;e&&(e.style.maxHeight="")}onKeydown(t,e){const i=this.option("key");i&&i===e&&this.toggle()}toggle(){const t=this.ref;t&&t.state!==vt.Disabled&&(t.state!==vt.Hidden?this.hidden?this.show():this.hide():t.build())}show(){const t=this.ref,e=t&&t.state!==vt.Disabled&&t.container;e&&(this.refresh(),e.offsetHeight,e.removeAttribute("aria-hidden"),e.classList.remove("is-hidden"),this.hidden=!1)}hide(){const t=this.ref,e=t&&t.container;e&&(this.refresh(),e.offsetHeight,e.classList.add("is-hidden"),e.setAttribute("aria-hidden","true")),this.hidden=!0}refresh(){const t=this.ref;if(!t||t.state===vt.Disabled)return;const e=t.container,i=(null==e?void 0:e.firstChild)||null;e&&i&&i.childNodes.length&&(e.style.maxHeight=`${i.getBoundingClientRect().height}px`)}attach(){const t=this,e=t.instance;e.state===it.Init?e.on("Carousel.init",t.onInit):t.onInit(),e.on("resize",t.onResize),e.on("keydown",t.onKeydown)}detach(){var t;const e=this,i=e.instance;i.off("Carousel.init",e.onInit),i.off("resize",e.onResize),i.off("keydown",e.onKeydown),null===(t=i.carousel)||void 0===t||t.detachPlugins(["Thumbs"]),e.ref=null}}Object.defineProperty(xt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:wt});const St={panLeft:{icon:'',change:{panX:-100}},panRight:{icon:'',change:{panX:100}},panUp:{icon:'',change:{panY:-100}},panDown:{icon:'',change:{panY:100}},zoomIn:{icon:'',action:"zoomIn"},zoomOut:{icon:'',action:"zoomOut"},toggle1to1:{icon:'',action:"toggleZoom"},toggleZoom:{icon:'',action:"toggleZoom"},iterateZoom:{icon:'',action:"iterateZoom"},rotateCCW:{icon:'',action:"rotateCCW"},rotateCW:{icon:'',action:"rotateCW"},flipX:{icon:'',action:"flipX"},flipY:{icon:'',action:"flipY"},fitX:{icon:'',action:"fitX"},fitY:{icon:'',action:"fitY"},reset:{icon:'',action:"reset"},toggleFS:{icon:'',action:"toggleFS"}};var Et;!function(t){t[t.Init=0]="Init",t[t.Ready=1]="Ready",t[t.Disabled=2]="Disabled"}(Et||(Et={}));const Pt={absolute:"auto",display:{left:["infobar"],middle:[],right:["iterateZoom","slideshow","fullscreen","thumbs","close"]},enabled:"auto",items:{infobar:{tpl:'
/
'},download:{tpl:''},prev:{tpl:''},next:{tpl:''},slideshow:{tpl:''},fullscreen:{tpl:''},thumbs:{tpl:''},close:{tpl:''}},parentEl:null},Ct={tabindex:"-1",width:"24",height:"24",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg"};class Mt extends _{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:Et.Init}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null})}onReady(t){var e;if(!t.carousel)return;let i=this.option("display"),n=this.option("absolute"),s=this.option("enabled");if("auto"===s){const t=this.instance.carousel;let e=0;if(t)for(const i of t.slides)(i.panzoom||"image"===i.type)&&e++;e||(s=!1)}s||(i=void 0);let o=0;const a={left:[],middle:[],right:[]};if(i)for(const t of["left","middle","right"])for(const n of i[t]){const i=this.createEl(n);i&&(null===(e=a[t])||void 0===e||e.push(i),o++)}let r=null;if(o&&(r=this.createContainer()),r){for(const[t,e]of Object.entries(a)){const i=document.createElement("div");P(i,"fancybox__toolbar__column is-"+t);for(const t of e)i.appendChild(t);"auto"!==n||"middle"!==t||e.length||(n=!0),r.appendChild(i)}!0===n&&P(r,"is-absolute"),this.state=Et.Ready,this.onRefresh()}else this.state=Et.Disabled}onClick(t){var e,i;const n=this.instance,s=n.getSlide(),o=null==s?void 0:s.panzoom,a=t.target,r=a&&S(a)?a.dataset:null;if(!r)return;if(void 0!==r.fancyboxToggleThumbs)return t.preventDefault(),t.stopPropagation(),void(null===(e=n.plugins.Thumbs)||void 0===e||e.toggle());if(void 0!==r.fancyboxToggleFullscreen)return t.preventDefault(),t.stopPropagation(),void this.instance.toggleFullscreen();if(void 0!==r.fancyboxToggleSlideshow){t.preventDefault(),t.stopPropagation();const e=null===(i=n.carousel)||void 0===i?void 0:i.plugins.Autoplay;let s=e.isActive;return o&&"mousemove"===o.panMode&&!s&&o.reset(),void(s?e.stop():e.start())}const l=r.panzoomAction,c=r.panzoomChange;if((c||l)&&(t.preventDefault(),t.stopPropagation()),c){let t={};try{t=JSON.parse(c)}catch(t){}o&&o.applyChange(t)}else l&&o&&o[l]&&o[l]()}onChange(){this.onRefresh()}onRefresh(){if(this.instance.isClosing())return;const t=this.container;if(!t)return;const e=this.instance.getSlide();if(!e||e.state!==nt.Ready)return;const i=e&&!e.error&&e.panzoom;for(const e of t.querySelectorAll("[data-panzoom-action]"))i?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));let n=i&&i.canZoomIn(),s=i&&i.canZoomOut();for(const e of t.querySelectorAll('[data-panzoom-action="zoomIn"]'))n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="zoomOut"]'))s?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));for(const e of t.querySelectorAll('[data-panzoom-action="toggleZoom"],[data-panzoom-action="iterateZoom"]')){s||n?(e.removeAttribute("disabled"),e.removeAttribute("tabindex")):(e.setAttribute("disabled",""),e.setAttribute("tabindex","-1"));const t=e.querySelector("g");t&&(t.style.display=n?"":"none")}}onDone(t,e){var i;null===(i=e.panzoom)||void 0===i||i.on("afterTransform",(()=>{this.instance.isCurrentSlide(e)&&this.onRefresh()})),this.instance.isCurrentSlide(e)&&this.onRefresh()}createContainer(){const t=this.instance.container;if(!t)return null;const e=this.option("parentEl")||t,i=document.createElement("div");return P(i,"fancybox__toolbar"),e.prepend(i),i.addEventListener("click",this.onClick,{passive:!1,capture:!0}),t&&P(t,"has-toolbar"),this.container=i,i}createEl(t){const e=this.instance,i=e.carousel;if(!i)return null;if("toggleFS"===t)return null;if("fullscreen"===t&&!e.fsAPI)return null;let n=null;const o=i.slides.length||0;let a=0,r=0;for(const t of i.slides)(t.panzoom||"image"===t.type)&&a++,("image"===t.type||t.downloadSrc)&&r++;if(o<2&&["infobar","prev","next"].includes(t))return n;if(void 0!==St[t]&&!a)return null;if("download"===t&&!r)return null;if("thumbs"===t){const t=e.plugins.Thumbs;if(!t||!t.isEnabled)return null}if("slideshow"===t){if(!i.plugins.Autoplay||o<2)return null}if(void 0!==St[t]){const e=St[t];n=document.createElement("button"),n.setAttribute("title",this.instance.localize(`{{${t.toUpperCase()}}}`)),P(n,"f-button"),e.action&&(n.dataset.panzoomAction=e.action),e.change&&(n.dataset.panzoomChange=JSON.stringify(e.change)),n.appendChild(s(this.instance.localize(e.icon)))}else{const e=(this.option("items")||[])[t];e&&(n=s(this.instance.localize(e.tpl)),"function"==typeof e.click&&n.addEventListener("click",(t=>{t.preventDefault(),t.stopPropagation(),"function"==typeof e.click&&e.click.call(this,this,t)})))}const l=null==n?void 0:n.querySelector("svg");if(l)for(const[t,e]of Object.entries(Ct))l.getAttribute(t)||l.setAttribute(t,String(e));return n}removeContainer(){const t=this.container;t&&t.remove(),this.container=null,this.state=Et.Disabled;const e=this.instance.container;e&&E(e,"has-toolbar")}attach(){const t=this,e=t.instance;e.on("Carousel.initSlides",t.onReady),e.on("done",t.onDone),e.on("reveal",t.onChange),e.on("Carousel.change",t.onChange),t.onReady(t.instance)}detach(){const t=this,e=t.instance;e.off("Carousel.initSlides",t.onReady),e.off("done",t.onDone),e.off("reveal",t.onChange),e.off("Carousel.change",t.onChange),t.removeContainer()}}Object.defineProperty(Mt,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:Pt});const Tt={Hash:ot,Html:dt,Images:rt,Slideshow:gt,Thumbs:xt,Toolbar:Mt},Ot="with-fancybox",At="hide-scrollbar",zt="--fancybox-scrollbar-compensate",Lt="--fancybox-body-margin",Rt="is-animated",kt="is-compact",It="is-loading",Dt=function(){var t=window.getSelection();return t&&"Range"===t.type};let Ft=null,jt=null;const Ht=new Map;let Bt=0;class _t extends g{get isIdle(){return this.idle}get isCompact(){return this.option("compact")}constructor(t=[],e={},i={}){super(e),Object.defineProperty(this,"userSlides",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"userPlugins",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"idle",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"idleTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"clickTimer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"pwt",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"ignoreFocusChange",{enumerable:!0,configurable:!0,writable:!0,value:!1}),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:it.Init}),Object.defineProperty(this,"id",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"container",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"footer",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"caption",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"carousel",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"lastFocus",{enumerable:!0,configurable:!0,writable:!0,value:null}),Object.defineProperty(this,"prevMouseMoveEvent",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"fsAPI",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.fsAPI=(()=>{let t,e="",i="",n="";return document.fullscreenEnabled?(e="requestFullscreen",i="exitFullscreen",n="fullscreenElement"):document.webkitFullscreenEnabled&&(e="webkitRequestFullscreen",i="webkitExitFullscreen",n="webkitFullscreenElement"),e&&(t={request:function(t){return"webkitRequestFullscreen"===e?t[e](Element.ALLOW_KEYBOARD_INPUT):t[e]()},exit:function(){return document[n]&&document[i]()},isFullscreen:function(){return document[n]}}),t})(),this.id=e.id||++Bt,Ht.set(this.id,this),this.userSlides=t,this.userPlugins=i,queueMicrotask((()=>{this.init()}))}init(){if(this.state===it.Destroy)return;this.state=it.Init,this.attachPlugins(Object.assign(Object.assign({},_t.Plugins),this.userPlugins)),this.emit("init"),!0===this.option("hideScrollbar")&&(()=>{if(!K)return;const t=document.body;if(t.classList.contains(At))return;let e=window.innerWidth-document.documentElement.getBoundingClientRect().width;e<0&&(e=0);const i=t.currentStyle||window.getComputedStyle(t),n=parseFloat(i.marginRight);document.documentElement.style.setProperty(zt,`${e}px`),n&&t.style.setProperty(Lt,`${n}px`),t.classList.add(At)})(),this.initLayout(),this.scale();const t=()=>{this.initCarousel(this.userSlides),this.state=it.Ready,this.attachEvents(),this.emit("ready"),setTimeout((()=>{this.container&&this.container.setAttribute("aria-hidden","false")}),16)},e=this.fsAPI;this.option("Fullscreen.autoStart")&&e&&!e.isFullscreen()?e.request(this.container).then((()=>t())).catch((()=>t())):t()}initLayout(){var t,e;const i=this.option("parentEl")||document.body,n=s(this.localize(this.option("tpl.main")||""));n&&(n.setAttribute("id",`fancybox-${this.id}`),n.setAttribute("aria-label",this.localize("{{MODAL}}")),n.classList.toggle(kt,this.isCompact),P(n,this.option("mainClass")||""),this.container=n,this.footer=n.querySelector(".fancybox__footer"),i.appendChild(n),P(document.documentElement,Ot),Ft&&jt||(Ft=document.createElement("span"),P(Ft,"fancybox-focus-guard"),Ft.setAttribute("tabindex","0"),Ft.setAttribute("aria-hidden","true"),Ft.setAttribute("aria-label","Focus guard"),jt=Ft.cloneNode(),null===(t=n.parentElement)||void 0===t||t.insertBefore(Ft,n),null===(e=n.parentElement)||void 0===e||e.append(jt)),this.option("animated")&&(P(n,Rt),setTimeout((()=>{this.isClosing()||E(n,Rt)}),350)),this.emit("initLayout"))}initCarousel(t){const e=this.container;if(!e)return;const n=e.querySelector(".fancybox__carousel");if(!n)return;const s=this.carousel=new G(n,p({},{slides:t,transition:"fade",Panzoom:{lockAxis:this.option("dragToClose")?"xy":"x",infinite:!!this.option("dragToClose")&&"y"},Dots:!1,Navigation:{classes:{container:"fancybox__nav",button:"f-button",isNext:"is-next",isPrev:"is-prev"}},initialPage:this.option("startIndex"),l10n:this.option("l10n")},this.option("Carousel")||{}));s.on("*",((t,e,...i)=>{this.emit(`Carousel.${e}`,t,...i)})),s.on(["ready","change"],(()=>{var t;const e=this.getSlide();e&&(null===(t=e.panzoom)||void 0===t||t.updateControls()),this.manageCaption(e)})),this.on("Carousel.removeSlide",((t,e,i)=>{i.contentEl&&(i.contentEl.remove(),i.contentEl=void 0);const n=i.el;n&&(E(n,"has-error"),E(n,"has-unknown"),E(n,`has-${i.type||"unknown"}`)),i.closeBtnEl&&i.closeBtnEl.remove(),i.closeBtnEl=void 0,i.captionEl&&i.captionEl.remove(),i.captionEl=void 0,i.spinnerEl&&i.spinnerEl.remove(),i.spinnerEl=void 0,i.state=void 0})),s.on("Panzoom.touchStart",(()=>{this.isCompact||this.endIdle()})),s.on("settle",(()=>{this.idleTimer||this.isCompact||!this.option("idle")||this.setIdle(),this.option("autoFocus")&&this.checkFocus()})),this.option("dragToClose")&&(s.on("Panzoom.afterTransform",((t,e)=>{const n=this.getSlide();if(n&&i(n.el))return;const s=this.container;if(s){const t=Math.abs(e.current.f),i=t<1?"":Math.max(.5,Math.min(1,1-t/e.contentRect.fitHeight*1.5));s.style.setProperty("--fancybox-ts",i?"0s":""),s.style.setProperty("--fancybox-opacity",i+"")}})),s.on("Panzoom.touchEnd",((t,e,n)=>{var s;const o=this.getSlide();if(o&&i(o.el))return;if(e.isMobile&&document.activeElement&&-1!==["TEXTAREA","INPUT"].indexOf(null===(s=document.activeElement)||void 0===s?void 0:s.nodeName))return;const a=Math.abs(e.dragOffset.y);"y"===e.lockedAxis&&(a>=200||a>=50&&e.dragOffset.time<300)&&(n&&n.cancelable&&n.preventDefault(),this.close(n,"f-throwOut"+(e.current.f<0?"Up":"Down")))}))),s.on("change",(t=>{var e;let i=null===(e=this.getSlide())||void 0===e?void 0:e.triggerEl;if(i){const e=new CustomEvent("slideTo",{bubbles:!0,cancelable:!0,detail:t.page});i.dispatchEvent(e)}})),s.on(["refresh","change"],(t=>{const e=this.container;if(!e)return;for(const i of e.querySelectorAll("[data-fancybox-current-index]"))i.innerHTML=t.page+1;for(const i of e.querySelectorAll("[data-fancybox-count]"))i.innerHTML=t.pages.length;if(!t.isInfinite){for(const i of e.querySelectorAll("[data-fancybox-next]"))t.page0?(i.removeAttribute("disabled"),i.removeAttribute("tabindex")):(i.setAttribute("disabled",""),i.setAttribute("tabindex","-1"))}const i=this.getSlide();if(!i)return;let n=i.downloadSrc||"";n||"image"!==i.type||i.error||"string"!=typeof i.src||(n=i.src);const s="disabled",o="tabindex",a="download",r="href";for(const t of e.querySelectorAll("[data-fancybox-download]")){const e=i.downloadFilename;n?(t.removeAttribute(s),t.removeAttribute(o),t.setAttribute(r,n),t.setAttribute(a,e||n),t.setAttribute("target","_blank")):(t.setAttribute(s,""),t.setAttribute(o,"-1"),t.removeAttribute(r),t.removeAttribute(a))}})),this.emit("initCarousel")}attachEvents(){const t=this,e=t.container;if(!e)return;e.addEventListener("click",t.onClick,{passive:!1,capture:!1}),e.addEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),document.addEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),document.addEventListener("visibilitychange",t.onVisibilityChange,!1),document.addEventListener("mousemove",t.onMousemove),t.option("trapFocus")&&document.addEventListener("focus",t.onFocus,!0),window.addEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.addEventListener("scroll",t.onResize),i.addEventListener("resize",t.onResize))}detachEvents(){const t=this,e=t.container;if(!e)return;document.removeEventListener("keydown",t.onKeydown,{passive:!1,capture:!0}),e.removeEventListener("wheel",t.onWheel,{passive:!1,capture:!1}),e.removeEventListener("click",t.onClick,{passive:!1,capture:!1}),document.removeEventListener("mousemove",t.onMousemove),window.removeEventListener("resize",t.onResize);const i=window.visualViewport;i&&(i.removeEventListener("resize",t.onResize),i.removeEventListener("scroll",t.onResize)),document.removeEventListener("visibilitychange",t.onVisibilityChange,!1),document.removeEventListener("focus",t.onFocus,!0)}scale(){const t=this.container;if(!t)return;const e=window.visualViewport,i=Math.max(1,(null==e?void 0:e.scale)||1);let n="",s="",o="";if(e&&i>1){let t=`${e.offsetLeft}px`,a=`${e.offsetTop}px`;n=e.width*i+"px",s=e.height*i+"px",o=`translate3d(${t}, ${a}, 0) scale(${1/i})`}t.style.transform=o,t.style.width=n,t.style.height=s}onClick(t){var e,i;const{container:n,isCompact:s}=this;if(!n||this.isClosing())return;!s&&this.option("idle")&&this.resetIdle();const o=document.activeElement;if(Dt()&&o&&n.contains(o))return;const a=t.composedPath()[0];if(a===(null===(e=this.carousel)||void 0===e?void 0:e.container))return;if(a.closest(".f-spinner")||a.closest("[data-fancybox-close]"))return t.preventDefault(),void this.close(t);if(a.closest("[data-fancybox-prev]"))return t.preventDefault(),void this.prev();if(a.closest("[data-fancybox-next]"))return t.preventDefault(),void this.next();if(s&&"image"===(null===(i=this.getSlide())||void 0===i?void 0:i.type))return void(this.clickTimer?(clearTimeout(this.clickTimer),this.clickTimer=null):this.clickTimer=setTimeout((()=>{this.toggleIdle(),this.clickTimer=null}),350));if(this.emit("click",t),t.defaultPrevented)return;let r=!1;if(a.closest(".fancybox__content")){if(o){if(o.closest("[contenteditable]"))return;a.matches(Q)||o.blur()}if(Dt())return;r=this.option("contentClick")}else a.closest(".fancybox__carousel")&&!a.matches(Q)&&(r=this.option("backdropClick"));"close"===r?(t.preventDefault(),this.close(t)):"next"===r?(t.preventDefault(),this.next()):"prev"===r&&(t.preventDefault(),this.prev())}onWheel(t){var e;let i=this.option("wheel",t);(null===(e=t.target)||void 0===e?void 0:e.closest(".fancybox__thumbs"))&&(i="slide");const n="slide"===i,s=[-t.deltaX||0,-t.deltaY||0,-t.detail||0].reduce((function(t,e){return Math.abs(e)>Math.abs(t)?e:t})),o=Math.max(-1,Math.min(1,s)),a=Date.now();this.pwt&&a-this.pwt<300?n&&t.preventDefault():(this.pwt=a,this.emit("wheel",t),t.defaultPrevented||("close"===i?(t.preventDefault(),this.close(t)):"slide"===i&&(t.preventDefault(),this[o>0?"prev":"next"]())))}onKeydown(t){if(!this.isTopmost())return;this.isCompact||!this.option("idle")||this.isClosing()||this.resetIdle();const e=t.key,i=this.option("keyboard");if(!i||t.ctrlKey||t.altKey||t.shiftKey)return;const n=t.composedPath()[0],s=document.activeElement&&document.activeElement.classList,o=s&&s.contains("f-button")||n.dataset.carouselPage||n.dataset.carouselIndex;if("Escape"!==e&&!o&&S(n)){if(n.isContentEditable||-1!==["TEXTAREA","OPTION","INPUT","SELECT","VIDEO"].indexOf(n.nodeName))return}this.emit("keydown",e,t);const a=i[e];"function"==typeof this[a]&&(t.preventDefault(),this[a]())}onResize(){const t=this.container;if(!t)return;const e=this.isCompact;t.classList.toggle("is-compact",e),this.manageCaption(this.getSlide()),this.isCompact?this.clearIdle():this.endIdle(),this.scale(),this.emit("resize")}onFocus(t){this.isTopmost()&&this.checkFocus(t)}onMousemove(t){this.prevMouseMoveEvent=t,!this.isCompact&&this.option("idle")&&this.resetIdle()}onVisibilityChange(){"visible"===document.visibilityState?this.checkFocus():this.endIdle()}manageCloseBtn(t){const e=this.optionFor(t,"closeButton")||!1;if("auto"===e){const t=this.plugins.Toolbar;if(t&&t.state===Et.Ready)return}if(!e)return;if(!t.contentEl||t.closeBtnEl)return;const i=this.option("tpl.closeButton");if(i){const e=s(this.localize(i));t.closeBtnEl=t.contentEl.appendChild(e),t.el&&P(t.el,"has-close-btn")}}manageCaption(t){var e,i;const n="fancybox__caption",s="has-caption",o=this.container;if(!o)return;const a=this.isCompact||this.option("commonCaption"),r=!a;if(this.caption&&this.stop(this.caption),r&&this.caption&&(this.caption.remove(),this.caption=null),a&&!this.caption)for(const t of(null===(e=this.carousel)||void 0===e?void 0:e.slides)||[])t.captionEl&&(t.captionEl.remove(),t.captionEl=void 0,E(t.el,s),null===(i=t.el)||void 0===i||i.removeAttribute("aria-labelledby"));if(t||(t=this.getSlide()),!t||a&&!this.isCurrentSlide(t))return;const l=t.el;let c=this.optionFor(t,"caption","");if("string"!=typeof c||!c.length)return void(a&&this.caption&&this.animate(this.caption,"f-fadeOut",(()=>{var t;null===(t=this.caption)||void 0===t||t.remove(),this.caption=null})));let h=null;if(r){if(h=t.captionEl||null,l&&!h){const e=`fancybox__caption_${this.id}_${t.index}`;h=document.createElement("div"),P(h,n),h.setAttribute("id",e),t.captionEl=l.appendChild(h),P(l,s),l.setAttribute("aria-labelledby",e)}}else{if(h=this.caption,h||(h=o.querySelector("."+n)),!h){h=document.createElement("div"),h.dataset.fancyboxCaption="",P(h,n),h.innerHTML=c;(this.footer||o).prepend(h)}P(o,s),this.caption=h}h&&(h.innerHTML=c)}checkFocus(t){var e;const i=document.activeElement||null;i&&(null===(e=this.container)||void 0===e?void 0:e.contains(i))||this.focus(t)}focus(t){var e;if(this.ignoreFocusChange)return;const i=document.activeElement||null,n=(null==t?void 0:t.target)||null,s=this.container,o=this.getSlide();if(!s||!(null===(e=this.carousel)||void 0===e?void 0:e.viewport))return;if(!t&&i&&s.contains(i))return;const a=o&&o.state===nt.Ready?o.el:null;if(!a||a.contains(i)||s===i)return;t&&t.cancelable&&t.preventDefault(),this.ignoreFocusChange=!0;const r=Array.from(s.querySelectorAll(Q));let l=[],c=null;for(let t of r){const e=!t.offsetParent||t.closest('[aria-hidden="true"]'),i=a&&a.contains(t),n=!this.carousel.viewport.contains(t);t===s||(i||n)&&!e?(l.push(t),void 0!==t.dataset.origTabindex&&(t.tabIndex=parseFloat(t.dataset.origTabindex)),t.removeAttribute("data-orig-tabindex"),!t.hasAttribute("autoFocus")&&c||(c=t)):(t.dataset.origTabindex=void 0===t.dataset.origTabindex?t.getAttribute("tabindex")||void 0:t.dataset.origTabindex,t.tabIndex=-1)}let h=null;t?(!n||l.indexOf(n)<0)&&(h=c||s,l.length&&(i===jt?h=l[0]:this.lastFocus!==s&&i!==Ft||(h=l[l.length-1]))):h=o&&"image"===o.type?s:c||s,h&&tt(h),this.lastFocus=document.activeElement,this.ignoreFocusChange=!1}next(){const t=this.carousel;t&&t.pages.length>1&&t.slideNext()}prev(){const t=this.carousel;t&&t.pages.length>1&&t.slidePrev()}jumpTo(...t){this.carousel&&this.carousel.slideTo(...t)}isTopmost(){var t;return(null===(t=_t.getInstance())||void 0===t?void 0:t.id)==this.id}animate(t=null,e="",i){if(!t||!e)return void(i&&i());this.stop(t);const n=s=>{s.target===t&&t.dataset.animationName&&(t.removeEventListener("animationend",n),delete t.dataset.animationName,i&&i(),E(t,e))};t.dataset.animationName=e,t.addEventListener("animationend",n),P(t,e)}stop(t){t&&t.dispatchEvent(new CustomEvent("animationend",{bubbles:!1,cancelable:!0,currentTarget:t}))}setContent(t,e="",i=!0){if(this.isClosing())return;const n=t.el;if(!n)return;let o=null;if(S(e)?o=e:(o=s(e+""),S(o)||(o=document.createElement("div"),o.innerHTML=e+"")),["img","picture","iframe","video","audio"].includes(o.nodeName.toLowerCase())){const t=document.createElement("div");t.appendChild(o),o=t}S(o)&&t.filter&&!t.error&&(o=o.querySelector(t.filter)),o&&S(o)?(P(o,"fancybox__content"),t.id&&o.setAttribute("id",t.id),"none"!==o.style.display&&"none"!==getComputedStyle(o).getPropertyValue("display")||(o.style.display=t.display||this.option("defaultDisplay")||"flex"),n.classList.add(`has-${t.error?"error":t.type||"unknown"}`),n.prepend(o),t.contentEl=o,i&&this.revealContent(t),this.manageCloseBtn(t),this.manageCaption(t)):this.setError(t,"{{ELEMENT_NOT_FOUND}}")}revealContent(t,e){const i=t.el,n=t.contentEl;i&&n&&(this.emit("reveal",t),this.hideLoading(t),t.state=nt.Opening,(e=this.isOpeningSlide(t)?void 0===e?this.optionFor(t,"showClass"):e:"f-fadeIn")?this.animate(n,e,(()=>{this.done(t)})):this.done(t))}done(t){this.isClosing()||(t.state=nt.Ready,this.emit("done",t),P(t.el,"is-done"),this.isCurrentSlide(t)&&this.option("autoFocus")&&queueMicrotask((()=>{this.option("autoFocus")&&(this.option("autoFocus")?this.focus():this.checkFocus())})),this.isOpeningSlide(t)&&!this.isCompact&&this.option("idle")&&this.setIdle())}isCurrentSlide(t){const e=this.getSlide();return!(!t||!e)&&e.index===t.index}isOpeningSlide(t){var e,i;return null===(null===(e=this.carousel)||void 0===e?void 0:e.prevPage)&&t.index===(null===(i=this.getSlide())||void 0===i?void 0:i.index)}showLoading(t){t.state=nt.Loading;const e=t.el;if(!e)return;P(e,It),this.emit("loading",t),t.spinnerEl||setTimeout((()=>{if(!this.isClosing()&&!t.spinnerEl&&t.state===nt.Loading){let i=s(x);t.spinnerEl=i,e.prepend(i),this.animate(i,"f-fadeIn")}}),250)}hideLoading(t){const e=t.el;if(!e)return;const i=t.spinnerEl;this.isClosing()?null==i||i.remove():(E(e,It),i&&this.animate(i,"f-fadeOut",(()=>{i.remove()})),t.state===nt.Loading&&(this.emit("loaded",t),t.state=nt.Ready))}setError(t,e){if(this.isClosing())return;const i=new Event("error",{bubbles:!0,cancelable:!0});if(this.emit("error",i,t),i.defaultPrevented)return;t.error=e,this.hideLoading(t),this.clearContent(t);const n=document.createElement("div");n.classList.add("fancybox-error"),n.innerHTML=this.localize(e||"

{{ERROR}}

"),this.setContent(t,n)}clearContent(t){var e;null===(e=this.carousel)||void 0===e||e.emit("removeSlide",t)}getSlide(){var t;const e=this.carousel;return(null===(t=null==e?void 0:e.pages[null==e?void 0:e.page])||void 0===t?void 0:t.slides[0])||void 0}close(t,e){if(this.isClosing())return;const i=new Event("shouldClose",{bubbles:!0,cancelable:!0});if(this.emit("shouldClose",i,t),i.defaultPrevented)return;t&&t.cancelable&&(t.preventDefault(),t.stopPropagation());const n=this.fsAPI,s=()=>{this.proceedClose(t,e)};n&&n.isFullscreen()?Promise.resolve(n.exit()).then((()=>s())):s()}clearIdle(){this.idleTimer&&clearTimeout(this.idleTimer),this.idleTimer=null}setIdle(t=!1){const e=()=>{this.clearIdle(),this.idle=!0,P(this.container,"is-idle"),this.emit("setIdle")};if(this.clearIdle(),!this.isClosing())if(t)e();else{const t=this.option("idle");t&&(this.idleTimer=setTimeout(e,t))}}endIdle(){this.clearIdle(),this.idle&&!this.isClosing()&&(this.idle=!1,E(this.container,"is-idle"),this.emit("endIdle"))}resetIdle(){this.endIdle(),this.setIdle()}toggleIdle(){this.idle?this.endIdle():this.setIdle(!0)}toggleFullscreen(){const t=this.fsAPI;t&&(t.isFullscreen()?t.exit():this.container&&t.request(this.container))}isClosing(){return[it.Closing,it.CustomClosing,it.Destroy].includes(this.state)}proceedClose(t,e){var i,n;this.state=it.Closing,this.clearIdle(),this.detachEvents();const s=this.container,o=this.carousel,a=this.getSlide(),r=a&&this.option("placeFocusBack")?a.triggerEl||this.option("triggerEl"):null;if(r&&(U(r)?tt(r):r.focus()),s&&(P(s,"is-closing"),s.setAttribute("aria-hidden","true"),this.option("animated")&&P(s,Rt),s.style.pointerEvents="none"),o){o.clearTransitions(),null===(i=o.panzoom)||void 0===i||i.destroy(),null===(n=o.plugins.Navigation)||void 0===n||n.detach();for(const t of o.slides){t.state=nt.Closing,this.hideLoading(t);const e=t.contentEl;e&&this.stop(e);const i=null==t?void 0:t.panzoom;i&&(i.stop(),i.detachEvents(),i.detachObserver()),this.isCurrentSlide(t)||o.emit("removeSlide",t)}}this.emit("close",t),this.state!==it.CustomClosing?(void 0===e&&a&&(e=this.optionFor(a,"hideClass")),e&&a?(this.animate(a.contentEl,e,(()=>{o&&o.emit("removeSlide",a)})),setTimeout((()=>{this.destroy()}),500)):this.destroy()):setTimeout((()=>{this.destroy()}),500)}destroy(){var t;if(this.state===it.Destroy)return;this.state=it.Destroy,null===(t=this.carousel)||void 0===t||t.destroy();const e=this.container;e&&e.remove(),Ht.delete(this.id);const i=_t.getInstance();i?i.focus():(Ft&&(Ft.remove(),Ft=null),jt&&(jt.remove(),jt=null),E(document.documentElement,Ot),(()=>{if(!K)return;const t=document,e=t.body;e.classList.remove(At),e.style.setProperty(Lt,""),t.documentElement.style.setProperty(zt,"")})(),this.emit("destroy"))}static bind(t,e,i){if(!K)return;let n,s="",o={};if(void 0===t?n=document.body:"string"==typeof t?(n=document.body,s=t,"object"==typeof e&&(o=e||{})):(n=t,"string"==typeof e&&(s=e),"object"==typeof i&&(o=i||{})),!n||!S(n))return;s=s||"[data-fancybox]";const a=_t.openers.get(n)||new Map;a.set(s,o),_t.openers.set(n,a),1===a.size&&n.addEventListener("click",_t.fromEvent)}static unbind(t,e){let i,n="";if("string"==typeof t?(i=document.body,n=t):(i=t,"string"==typeof e&&(n=e)),!i)return;const s=_t.openers.get(i);s&&n&&s.delete(n),n&&s||(_t.openers.delete(i),i.removeEventListener("click",_t.fromEvent))}static destroy(){let t;for(;t=_t.getInstance();)t.destroy();for(const t of _t.openers.keys())t.removeEventListener("click",_t.fromEvent);_t.openers=new Map}static fromEvent(t){if(t.defaultPrevented)return;if(t.button&&0!==t.button)return;if(t.ctrlKey||t.metaKey||t.shiftKey)return;let e=t.composedPath()[0];const i=e.closest("[data-fancybox-trigger]");if(i){const t=i.dataset.fancyboxTrigger||"",n=document.querySelectorAll(`[data-fancybox="${t}"]`),s=parseInt(i.dataset.fancyboxIndex||"",10)||0;e=n[s]||e}if(!(e&&e instanceof Element))return;let n,s,o,a;if([..._t.openers].reverse().find((([t,i])=>!(!t.contains(e)||![...i].reverse().find((([i,r])=>{let l=e.closest(i);return!!l&&(n=t,s=i,o=l,a=r,!0)}))))),!n||!s||!o)return;a=a||{},t.preventDefault(),e=o;let r=[],l=p({},et,a);l.event=t,l.triggerEl=e,l.delegate=i;const c=l.groupAll,h=l.groupAttr,d=h&&e?e.getAttribute(`${h}`):"";if((!e||d||c)&&(r=[].slice.call(n.querySelectorAll(s))),e&&!c&&(r=d?r.filter((t=>t.getAttribute(`${h}`)===d)):[e]),!r.length)return;const u=_t.getInstance();return u&&u.options.triggerEl&&r.indexOf(u.options.triggerEl)>-1?void 0:(e&&(l.startIndex=r.indexOf(e)),_t.fromNodes(r,l))}static fromSelector(t,e){let i=null,n="";if("string"==typeof t?(i=document.body,n=t):t instanceof HTMLElement&&"string"==typeof e&&(i=t,n=e),!i||!n)return!1;const s=_t.openers.get(i);if(!s)return!1;const o=s.get(n);return!!o&&_t.fromNodes(Array.from(i.querySelectorAll(n)),o)}static fromNodes(t,e){e=p({},et,e||{});const i=[];for(const n of t){const t=n.dataset||{},s=t.src||n.getAttribute("href")||n.getAttribute("currentSrc")||n.getAttribute("src")||void 0;let o;const a=e.delegate;let r;a&&i.length===e.startIndex&&(o=a instanceof HTMLImageElement?a:a.querySelector("img:not([aria-hidden])")),o||(o=n instanceof HTMLImageElement?n:n.querySelector("img:not([aria-hidden])")),o&&(r=o.currentSrc||o.src||void 0,!r&&o.dataset&&(r=o.dataset.lazySrc||o.dataset.src||void 0));const l={src:s,triggerEl:n,thumbEl:o,thumbElSrc:r,thumbSrc:r};for(const e in t)"fancybox"!==e&&(l[e]=t[e]+"");i.push(l)}return new _t(i,e)}static getInstance(t){if(t)return Ht.get(t);return Array.from(Ht.values()).reverse().find((t=>!t.isClosing()&&t))||null}static getSlide(){var t;return(null===(t=_t.getInstance())||void 0===t?void 0:t.getSlide())||null}static show(t=[],e={}){return new _t(t,e)}static next(){const t=_t.getInstance();t&&t.next()}static prev(){const t=_t.getInstance();t&&t.prev()}static close(t=!0,...e){if(t)for(const t of Ht.values())t.close(...e);else{const t=_t.getInstance();t&&t.close(...e)}}}Object.defineProperty(_t,"version",{enumerable:!0,configurable:!0,writable:!0,value:"5.0.19"}),Object.defineProperty(_t,"defaults",{enumerable:!0,configurable:!0,writable:!0,value:et}),Object.defineProperty(_t,"Plugins",{enumerable:!0,configurable:!0,writable:!0,value:Tt}),Object.defineProperty(_t,"openers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),t.Carousel=G,t.Fancybox=_t,t.Panzoom=k})); diff --git a/assets/gsap/CSSRulePlugin.min.js b/assets/gsap/CSSRulePlugin.min.js new file mode 100644 index 0000000..5bdb5ab --- /dev/null +++ b/assets/gsap/CSSRulePlugin.min.js @@ -0,0 +1,11 @@ +/*! + * CSSRulePlugin 3.11.2 + * https://greensock.com + * + * @license Copyright 2022, GreenSock. All rights reserved. + * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. + * @author: Jack Doyle, jack@greensock.com + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function h(){return"undefined"!=typeof window}function i(){return t||h()&&(t=window.gsap)&&t.registerPlugin&&t}function j(){return n||(s(),o||console.warn("Please gsap.registerPlugin(CSSPlugin, CSSRulePlugin)")),n}var t,n,c,o,s=function _initCore(e){t=e||i(),h()&&(c=document),t&&(o=t.plugins.css)&&(n=1)},r={version:"3.11.2",name:"cssRule",init:function init(e,t,n,i,s){if(!j()||void 0===e.cssText)return!1;var r=e._gsProxy=e._gsProxy||c.createElement("div");this.ss=e,this.style=r.style,r.style.cssText=e.cssText,o.prototype.init.call(this,r,t,n,i,s)},render:function render(e,t){for(var n,i=t._pt,s=t.style,r=t.ss;i;)i.r(e,i.d),i=i._next;for(n=s.length;-1<--n;)r[s[n]]=s[s[n]]},getRule:function getRule(e){j();var t,n,i,s,r=c.all?"rules":"cssRules",o=c.styleSheets,l=o.length,u=":"===e.charAt(0);for(e=(u?"":",")+e.split("::").join(":").toLowerCase()+",",u&&(s=[]);l--;){try{if(!(n=o[l][r]))continue;t=n.length}catch(e){console.warn(e);continue}for(;-1<--t;)if((i=n[t]).selectorText&&-1!==(","+i.selectorText.split("::").join(":").toLowerCase()+",").indexOf(e)){if(!u)return i.style;s.push(i.style)}}return s},register:s};i()&&t.registerPlugin(r),e.CSSRulePlugin=r,e.default=r;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}}); + diff --git a/assets/gsap/CSSRulePlugin.min.js.map b/assets/gsap/CSSRulePlugin.min.js.map new file mode 100644 index 0000000..779d1d1 --- /dev/null +++ b/assets/gsap/CSSRulePlugin.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CSSRulePlugin.min.js","sources":["../src/CSSRulePlugin.js"],"sourcesContent":["/*!\n * CSSRulePlugin 3.11.2\n * https://greensock.com\n *\n * @license Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nlet gsap, _coreInitted, _win, _doc, CSSPlugin,\n\t_windowExists = () => typeof(window) !== \"undefined\",\n\t_getGSAP = () => gsap || (_windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap),\n\t_checkRegister = () => {\n\t\tif (!_coreInitted) {\n\t\t\t_initCore();\n\t\t\tif (!CSSPlugin) {\n\t\t\t\tconsole.warn(\"Please gsap.registerPlugin(CSSPlugin, CSSRulePlugin)\");\n\t\t\t}\n\t\t}\n\t\treturn _coreInitted;\n\t},\n\t_initCore = core => {\n\t\tgsap = core || _getGSAP();\n\t\tif (_windowExists()) {\n\t\t\t_win = window;\n\t\t\t_doc = document;\n\t\t}\n\t\tif (gsap) {\n\t\t\tCSSPlugin = gsap.plugins.css;\n\t\t\tif (CSSPlugin) {\n\t\t\t\t_coreInitted = 1;\n\t\t\t}\n\t\t}\n\t};\n\n\nexport const CSSRulePlugin = {\n\tversion: \"3.11.2\",\n\tname: \"cssRule\",\n\tinit(target, value, tween, index, targets) {\n\t\tif (!_checkRegister() || typeof(target.cssText) === \"undefined\") {\n\t\t\treturn false;\n\t\t}\n\t\tlet div = target._gsProxy = target._gsProxy || _doc.createElement(\"div\");\n\t\tthis.ss = target;\n\t\tthis.style = div.style;\n\t\tdiv.style.cssText = target.cssText;\n\t\tCSSPlugin.prototype.init.call(this, div, value, tween, index, targets); //we just offload all the work to the regular CSSPlugin and then copy the cssText back over to the rule in the render() method. This allows us to have all of the updates to CSSPlugin automatically flow through to CSSRulePlugin instead of having to maintain both\n\t},\n\trender(ratio, data) {\n\t\tlet pt = data._pt,\n\t\t\tstyle = data.style,\n\t\t\tss = data.ss,\n\t\t\ti;\n\t\twhile (pt) {\n\t\t\tpt.r(ratio, pt.d);\n\t\t\tpt = pt._next;\n\t\t}\n\t\ti = style.length;\n\t\twhile (--i > -1) {\n\t\t\tss[style[i]] = style[style[i]];\n\t\t}\n\t},\n\tgetRule(selector) {\n\t\t_checkRegister();\n\t\tlet ruleProp = _doc.all ? \"rules\" : \"cssRules\",\n\t\t\tstyleSheets = _doc.styleSheets,\n\t\t\ti = styleSheets.length,\n\t\t\tpseudo = (selector.charAt(0) === \":\"),\n\t\t\tj, curSS, cs, a;\n\t\tselector = (pseudo ? \"\" : \",\") + selector.split(\"::\").join(\":\").toLowerCase() + \",\"; //note: old versions of IE report tag name selectors as upper case, so we just change everything to lowercase.\n\t\tif (pseudo) {\n\t\t\ta = [];\n\t\t}\n\t\twhile (i--) {\n\t\t\t//Firefox may throw insecure operation errors when css is loaded from other domains, so try/catch.\n\t\t\ttry {\n\t\t\t\tcurSS = styleSheets[i][ruleProp];\n\t\t\t\tif (!curSS) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tj = curSS.length;\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(e);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\twhile (--j > -1) {\n\t\t\t\tcs = curSS[j];\n\t\t\t\tif (cs.selectorText && (\",\" + cs.selectorText.split(\"::\").join(\":\").toLowerCase() + \",\").indexOf(selector) !== -1) { //note: IE adds an extra \":\" to pseudo selectors, so .myClass:after becomes .myClass::after, so we need to strip the extra one out.\n\t\t\t\t\tif (pseudo) {\n\t\t\t\t\t\ta.push(cs.style);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn cs.style;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn a;\n\t},\n\tregister: _initCore\n};\n\n_getGSAP() && gsap.registerPlugin(CSSRulePlugin);\n\nexport { CSSRulePlugin as default };"],"names":["_windowExists","window","_getGSAP","gsap","registerPlugin","_checkRegister","_coreInitted","_initCore","CSSPlugin","console","warn","_doc","core","document","plugins","css","CSSRulePlugin","version","name","init","target","value","tween","index","targets","cssText","div","_gsProxy","createElement","ss","style","prototype","call","this","render","ratio","data","i","pt","_pt","r","d","_next","length","getRule","selector","j","curSS","cs","a","ruleProp","all","styleSheets","pseudo","charAt","split","join","toLowerCase","e","selectorText","indexOf","push","register"],"mappings":";;;;;;;;;6MAYiB,SAAhBA,UAAyC,oBAAZC,OAClB,SAAXC,WAAiBC,GAASH,MAAoBG,EAAOF,OAAOE,OAASA,EAAKC,gBAAkBD,EAC3E,SAAjBE,WACMC,IACJC,IACKC,GACJC,QAAQC,KAAK,yDAGRJ,MAVLH,EAAMG,EAAoBK,EAAMH,EAYnCD,EAAY,SAAZA,UAAYK,GACXT,EAAOS,GAAQV,IACXF,MAEHW,EAAOE,UAEJV,IACHK,EAAYL,EAAKW,QAAQC,OAExBT,EAAe,IAMNU,EAAgB,CAC5BC,QAAS,SACTC,KAAM,UACNC,mBAAKC,EAAQC,EAAOC,EAAOC,EAAOC,OAC5BnB,UAA+C,IAApBe,EAAOK,eAC/B,MAEJC,EAAMN,EAAOO,SAAWP,EAAOO,UAAYhB,EAAKiB,cAAc,YAC7DC,GAAKT,OACLU,MAAQJ,EAAII,MACjBJ,EAAII,MAAML,QAAUL,EAAOK,QAC3BjB,EAAUuB,UAAUZ,KAAKa,KAAKC,KAAMP,EAAKL,EAAOC,EAAOC,EAAOC,IAE/DU,uBAAOC,EAAOC,WAIZC,EAHGC,EAAKF,EAAKG,IACbT,EAAQM,EAAKN,MACbD,EAAKO,EAAKP,GAEJS,GACNA,EAAGE,EAAEL,EAAOG,EAAGG,GACfH,EAAKA,EAAGI,UAETL,EAAIP,EAAMa,QACI,IAALN,GACRR,EAAGC,EAAMO,IAAMP,EAAMA,EAAMO,KAG7BO,yBAAQC,GACPxC,QAKCyC,EAAGC,EAAOC,EAAIC,EAJXC,EAAWvC,EAAKwC,IAAM,QAAU,WACnCC,EAAczC,EAAKyC,YACnBf,EAAIe,EAAYT,OAChBU,EAAiC,MAAvBR,EAASS,OAAO,OAE3BT,GAAYQ,EAAS,GAAK,KAAOR,EAASU,MAAM,MAAMC,KAAK,KAAKC,cAAgB,IAC5EJ,IACHJ,EAAI,IAEEZ,KAAK,UAGVU,EAAQK,EAAYf,GAAGa,aAIvBJ,EAAIC,EAAMJ,OACT,MAAOe,GACRjD,QAAQC,KAAKgD,kBAGA,IAALZ,OACRE,EAAKD,EAAMD,IACJa,eAAyG,KAAxF,IAAMX,EAAGW,aAAaJ,MAAM,MAAMC,KAAK,KAAKC,cAAgB,KAAKG,QAAQf,GAAkB,KAC9GQ,SAGIL,EAAGlB,MAFVmB,EAAEY,KAAKb,EAAGlB,eAOPmB,GAERa,SAAUvD,GAGXL,KAAcC,EAAKC,eAAeY"} \ No newline at end of file diff --git a/assets/gsap/CustomEase.min.js b/assets/gsap/CustomEase.min.js new file mode 100644 index 0000000..ab1f195 --- /dev/null +++ b/assets/gsap/CustomEase.min.js @@ -0,0 +1,11 @@ +/*! + * CustomEase 3.11.2 + * https://greensock.com + * + * @license Copyright 2022, GreenSock. All rights reserved. + * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. + * @author: Jack Doyle, jack@greensock.com + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function m(e){return Math.round(1e5*e)/1e5||0}var b=/[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,w=/[\+\-]?\d*\.?\d+e[\+\-]?\d+/gi,Y=Math.PI/180,k=Math.sin,B=Math.cos,F=Math.abs,J=Math.sqrt;function arcToSegment(e,t,n,s,a,r,i,o,h){if(e!==o||t!==h){n=F(n),s=F(s);var u=a%360*Y,f=B(u),c=k(u),l=Math.PI,g=2*l,x=(e-o)/2,d=(t-h)/2,m=f*x+c*d,p=-c*x+f*d,y=m*m,M=p*p,v=y/(n*n)+M/(s*s);1u.x||u.y!==h.y&&u.x===h.x||h===u)&&h.x<=1?(u.cx=h.x-u.x,u.cy=h.y-u.y,u.n=h,u.nx=h.x,p&&1f||r===u-1)&&(n.push(c,l),a=(h-l)/(o-c)),c=o,l=h;n="M"+n.join(",")}return y&&y.setAttribute("d",n),n},CustomEase);function CustomEase(e,t,n){a||q(),this.id=e,this.setData(t,n)}p()&&M.registerPlugin(n),n.version="3.11.2",e.CustomEase=n,e.default=n;if (typeof(window)==="undefined"||window!==e){Object.defineProperty(e,"__esModule",{value:!0})} else {delete e.default}}); + diff --git a/assets/gsap/CustomEase.min.js.map b/assets/gsap/CustomEase.min.js.map new file mode 100644 index 0000000..e6d6994 --- /dev/null +++ b/assets/gsap/CustomEase.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CustomEase.min.js","sources":["../src/utils/paths.js","../src/CustomEase.js"],"sourcesContent":["/*!\n * paths 3.11.2\n * https://greensock.com\n *\n * Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nlet _svgPathExp = /[achlmqstvz]|(-?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n\t_numbersExp = /(?:(-)?\\d*\\.?\\d*(?:e[\\-+]?\\d+)?)[0-9]/ig,\n\t_scientific = /[\\+\\-]?\\d*\\.?\\d+e[\\+\\-]?\\d+/ig,\n\t_selectorExp = /(^[#\\.][a-z]|[a-y][a-z])/i,\n\t_DEG2RAD = Math.PI / 180,\n\t_RAD2DEG = 180 / Math.PI,\n\t_sin = Math.sin,\n\t_cos = Math.cos,\n\t_abs = Math.abs,\n\t_sqrt = Math.sqrt,\n\t_atan2 = Math.atan2,\n\t_largeNum = 1e8,\n\t_isString = value => typeof(value) === \"string\",\n\t_isNumber = value => typeof(value) === \"number\",\n\t_isUndefined = value => typeof(value) === \"undefined\",\n\t_temp = {},\n\t_temp2 = {},\n\t_roundingNum = 1e5,\n\t_wrapProgress = progress => (Math.round((progress + _largeNum) % 1 * _roundingNum) / _roundingNum) || ((progress < 0) ? 0 : 1), //if progress lands on 1, the % will make it 0 which is why we || 1, but not if it's negative because it makes more sense for motion to end at 0 in that case.\n\t_round = value => (Math.round(value * _roundingNum) / _roundingNum) || 0,\n\t_roundPrecise = value => (Math.round(value * 1e10) / 1e10) || 0,\n\t_splitSegment = (rawPath, segIndex, i, t) => {\n\t\tlet segment = rawPath[segIndex],\n\t\t\tshift = t === 1 ? 6 : subdivideSegment(segment, i, t);\n\t\tif (shift && shift + i + 2 < segment.length) {\n\t\t\trawPath.splice(segIndex, 0, segment.slice(0, i + shift + 2));\n\t\t\tsegment.splice(0, i + shift);\n\t\t\treturn 1;\n\t\t}\n\t},\n\t_getSampleIndex = (samples, length, progress) => {\n\t\t// slightly slower way than doing this (when there's no lookup): segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0;\n\t\tlet l = samples.length,\n\t\t\ti = ~~(progress * l);\n\t\tif (samples[i] > length) {\n\t\t\twhile (--i && samples[i] > length) {}\n\t\t\ti < 0 && (i = 0);\n\t\t} else {\n\t\t\twhile (samples[++i] < length && i < l) {}\n\t\t}\n\t\treturn i < l ? i : l - 1;\n\t},\n\t_reverseRawPath = (rawPath, skipOuter) => {\n\t\tlet i = rawPath.length;\n\t\tskipOuter || rawPath.reverse();\n\t\twhile (i--) {\n\t\t\trawPath[i].reversed || reverseSegment(rawPath[i]);\n\t\t}\n\t},\n\t_copyMetaData = (source, copy) => {\n\t\tcopy.totalLength = source.totalLength;\n\t\tif (source.samples) { //segment\n\t\t\tcopy.samples = source.samples.slice(0);\n\t\t\tcopy.lookup = source.lookup.slice(0);\n\t\t\tcopy.minLength = source.minLength;\n\t\t\tcopy.resolution = source.resolution;\n\t\t} else if (source.totalPoints) { //rawPath\n\t\t\tcopy.totalPoints = source.totalPoints;\n\t\t}\n\t\treturn copy;\n\t},\n\t//pushes a new segment into a rawPath, but if its starting values match the ending values of the last segment, it'll merge it into that same segment (to reduce the number of segments)\n\t_appendOrMerge = (rawPath, segment) => {\n\t\tlet index = rawPath.length,\n\t\t\tprevSeg = rawPath[index - 1] || [],\n\t\t\tl = prevSeg.length;\n\t\tif (index && segment[0] === prevSeg[l-2] && segment[1] === prevSeg[l-1]) {\n\t\t\tsegment = prevSeg.concat(segment.slice(2));\n\t\t\tindex--;\n\t\t}\n\t\trawPath[index] = segment;\n\t},\n\t_bestDistance;\n\n/* TERMINOLOGY\n - RawPath - an array of arrays, one for each Segment. A single RawPath could have multiple \"M\" commands, defining Segments (paths aren't always connected).\n - Segment - an array containing a sequence of Cubic Bezier coordinates in alternating x, y, x, y format. Starting anchor, then control point 1, control point 2, and ending anchor, then the next control point 1, control point 2, anchor, etc. Uses less memory than an array with a bunch of {x, y} points.\n - Bezier - a single cubic Bezier with a starting anchor, two control points, and an ending anchor.\n - the variable \"t\" is typically the position along an individual Bezier path (time) and it's NOT linear, meaning it could accelerate/decelerate based on the control points whereas the \"p\" or \"progress\" value is linearly mapped to the whole path, so it shouldn't really accelerate/decelerate based on control points. So a progress of 0.2 would be almost exactly 20% along the path. \"t\" is ONLY in an individual Bezier piece.\n */\n\n//accepts basic selector text, a path instance, a RawPath instance, or a Segment and returns a RawPath (makes it easy to homogenize things). If an element or selector text is passed in, it'll also cache the value so that if it's queried again, it'll just take the path data from there instead of parsing it all over again (as long as the path data itself hasn't changed - it'll check).\nexport function getRawPath(value) {\n\tvalue = (_isString(value) && _selectorExp.test(value)) ? document.querySelector(value) || value : value;\n\tlet e = value.getAttribute ? value : 0,\n\t\trawPath;\n\tif (e && (value = value.getAttribute(\"d\"))) {\n\t\t//implements caching\n\t\tif (!e._gsPath) {\n\t\t\te._gsPath = {};\n\t\t}\n\t\trawPath = e._gsPath[value];\n\t\treturn (rawPath && !rawPath._dirty) ? rawPath : (e._gsPath[value] = stringToRawPath(value));\n\t}\n\treturn !value ? console.warn(\"Expecting a element or an SVG path data string\") : _isString(value) ? stringToRawPath(value) : (_isNumber(value[0])) ? [value] : value;\n}\n\n//copies a RawPath WITHOUT the length meta data (for speed)\nexport function copyRawPath(rawPath) {\n\tlet a = [],\n\t\ti = 0;\n\tfor (; i < rawPath.length; i++) {\n\t\ta[i] = _copyMetaData(rawPath[i], rawPath[i].slice(0));\n\t}\n\treturn _copyMetaData(rawPath, a);\n}\n\nexport function reverseSegment(segment) {\n\tlet i = 0,\n\t\ty;\n\tsegment.reverse(); //this will invert the order y, x, y, x so we must flip it back.\n\tfor (; i < segment.length; i += 2) {\n\t\ty = segment[i];\n\t\tsegment[i] = segment[i+1];\n\t\tsegment[i+1] = y;\n\t}\n\tsegment.reversed = !segment.reversed;\n}\n\n\n\nlet _createPath = (e, ignore) => {\n\t\tlet path = document.createElementNS(\"http://www.w3.org/2000/svg\", \"path\"),\n\t\t\tattr = [].slice.call(e.attributes),\n\t\t\ti = attr.length,\n\t\t\tname;\n\t\tignore = \",\" + ignore + \",\";\n\t\twhile (--i > -1) {\n\t\t\tname = attr[i].nodeName.toLowerCase(); //in Microsoft Edge, if you don't set the attribute with a lowercase name, it doesn't render correctly! Super weird.\n\t\t\tif (ignore.indexOf(\",\" + name + \",\") < 0) {\n\t\t\t\tpath.setAttributeNS(null, name, attr[i].nodeValue);\n\t\t\t}\n\t\t}\n\t\treturn path;\n\t},\n\t_typeAttrs = {\n\t\trect:\"rx,ry,x,y,width,height\",\n\t\tcircle:\"r,cx,cy\",\n\t\tellipse:\"rx,ry,cx,cy\",\n\t\tline:\"x1,x2,y1,y2\"\n\t},\n\t_attrToObj = (e, attrs) => {\n\t\tlet props = attrs ? attrs.split(\",\") : [],\n\t\t\tobj = {},\n\t\t\ti = props.length;\n\t\twhile (--i > -1) {\n\t\t\tobj[props[i]] = +e.getAttribute(props[i]) || 0;\n\t\t}\n\t\treturn obj;\n\t};\n\n//converts an SVG shape like , , , , , etc. to a , swapping it in and copying the attributes to match.\nexport function convertToPath(element, swap) {\n\tlet type = element.tagName.toLowerCase(),\n\t\tcirc = 0.552284749831,\n\t\tdata, x, y, r, ry, path, rcirc, rycirc, points, w, h, x2, x3, x4, x5, x6, y2, y3, y4, y5, y6, attr;\n\tif (type === \"path\" || !element.getBBox) {\n\t\treturn element;\n\t}\n\tpath = _createPath(element, \"x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points\");\n\tattr = _attrToObj(element, _typeAttrs[type]);\n\tif (type === \"rect\") {\n\t\tr = attr.rx;\n\t\try = attr.ry || r;\n\t\tx = attr.x;\n\t\ty = attr.y;\n\t\tw = attr.width - r * 2;\n\t\th = attr.height - ry * 2;\n\t\tif (r || ry) { //if there are rounded corners, render cubic beziers\n\t\t\tx2 = x + r * (1 - circ);\n\t\t\tx3 = x + r;\n\t\t\tx4 = x3 + w;\n\t\t\tx5 = x4 + r * circ;\n\t\t\tx6 = x4 + r;\n\t\t\ty2 = y + ry * (1 - circ);\n\t\t\ty3 = y + ry;\n\t\t\ty4 = y3 + h;\n\t\t\ty5 = y4 + ry * circ;\n\t\t\ty6 = y4 + ry;\n\t\t\tdata = \"M\" + x6 + \",\" + y3 + \" V\" + y4 + \" C\" + [x6, y5, x5, y6, x4, y6, x4 - (x4 - x3) / 3, y6, x3 + (x4 - x3) / 3, y6, x3, y6, x2, y6, x, y5, x, y4, x, y4 - (y4 - y3) / 3, x, y3 + (y4 - y3) / 3, x, y3, x, y2, x2, y, x3, y, x3 + (x4 - x3) / 3, y, x4 - (x4 - x3) / 3, y, x4, y, x5, y, x6, y2, x6, y3].join(\",\") + \"z\";\n\t\t} else {\n\t\t\tdata = \"M\" + (x + w) + \",\" + y + \" v\" + h + \" h\" + (-w) + \" v\" + (-h) + \" h\" + w + \"z\";\n\t\t}\n\n\t} else if (type === \"circle\" || type === \"ellipse\") {\n\t\tif (type === \"circle\") {\n\t\t\tr = ry = attr.r;\n\t\t\trycirc = r * circ;\n\t\t} else {\n\t\t\tr = attr.rx;\n\t\t\try = attr.ry;\n\t\t\trycirc = ry * circ;\n\t\t}\n\t\tx = attr.cx;\n\t\ty = attr.cy;\n\t\trcirc = r * circ;\n\t\tdata = \"M\" + (x+r) + \",\" + y + \" C\" + [x+r, y + rycirc, x + rcirc, y + ry, x, y + ry, x - rcirc, y + ry, x - r, y + rycirc, x - r, y, x - r, y - rycirc, x - rcirc, y - ry, x, y - ry, x + rcirc, y - ry, x + r, y - rycirc, x + r, y].join(\",\") + \"z\";\n\t} else if (type === \"line\") {\n\t\tdata = \"M\" + attr.x1 + \",\" + attr.y1 + \" L\" + attr.x2 + \",\" + attr.y2; //previously, we just converted to \"Mx,y Lx,y\" but Safari has bugs that cause that not to render properly when using a stroke-dasharray that's not fully visible! Using a cubic bezier fixes that issue.\n\t} else if (type === \"polyline\" || type === \"polygon\") {\n\t\tpoints = (element.getAttribute(\"points\") + \"\").match(_numbersExp) || [];\n\t\tx = points.shift();\n\t\ty = points.shift();\n\t\tdata = \"M\" + x + \",\" + y + \" L\" + points.join(\",\");\n\t\tif (type === \"polygon\") {\n\t\t\tdata += \",\" + x + \",\" + y + \"z\";\n\t\t}\n\t}\n\tpath.setAttribute(\"d\", rawPathToString(path._gsRawPath = stringToRawPath(data)));\n\tif (swap && element.parentNode) {\n\t\telement.parentNode.insertBefore(path, element);\n\t\telement.parentNode.removeChild(element);\n\t}\n\treturn path;\n}\n\n\n\n//returns the rotation (in degrees) at a particular progress on a rawPath (the slope of the tangent)\nexport function getRotationAtProgress(rawPath, progress) {\n\tlet d = getProgressData(rawPath, progress >= 1 ? 1 - 1e-9 : progress ? progress : 1e-9);\n\treturn getRotationAtBezierT(d.segment, d.i, d.t);\n}\n\nfunction getRotationAtBezierT(segment, i, t) {\n\tlet a = segment[i],\n\t\tb = segment[i+2],\n\t\tc = segment[i+4],\n\t\tx;\n\ta += (b - a) * t;\n\tb += (c - b) * t;\n\ta += (b - a) * t;\n\tx = b + ((c + (segment[i+6] - c) * t) - b) * t - a;\n\ta = segment[i+1];\n\tb = segment[i+3];\n\tc = segment[i+5];\n\ta += (b - a) * t;\n\tb += (c - b) * t;\n\ta += (b - a) * t;\n\treturn _round(_atan2(b + ((c + (segment[i+7] - c) * t) - b) * t - a, x) * _RAD2DEG);\n}\n\nexport function sliceRawPath(rawPath, start, end) {\n\tend = _isUndefined(end) ? 1 : _roundPrecise(end) || 0; // we must round to avoid issues like 4.15 / 8 = 0.8300000000000001 instead of 0.83 or 2.8 / 5 = 0.5599999999999999 instead of 0.56 and if someone is doing a loop like start: 2.8 / 0.5, end: 2.8 / 0.5 + 1.\n\tstart = _roundPrecise(start) || 0;\n\tlet loops = Math.max(0, ~~(_abs(end - start) - 1e-8)),\n\t\tpath = copyRawPath(rawPath);\n\tif (start > end) {\n\t\tstart = 1 - start;\n\t\tend = 1 - end;\n\t\t_reverseRawPath(path);\n\t\tpath.totalLength = 0;\n\t}\n\tif (start < 0 || end < 0) {\n\t\tlet offset = Math.abs(~~Math.min(start, end)) + 1;\n\t\tstart += offset;\n\t\tend += offset;\n\t}\n\tpath.totalLength || cacheRawPathMeasurements(path);\n\tlet wrap = (end > 1),\n\t\ts = getProgressData(path, start, _temp, true),\n\t\te = getProgressData(path, end, _temp2),\n\t\teSeg = e.segment,\n\t\tsSeg = s.segment,\n\t\teSegIndex = e.segIndex,\n\t\tsSegIndex = s.segIndex,\n\t\tei = e.i,\n\t\tsi = s.i,\n\t\tsameSegment = (sSegIndex === eSegIndex),\n\t\tsameBezier = (ei === si && sameSegment),\n\t\twrapsBehind, sShift, eShift, i, copy, totalSegments, l, j;\n\tif (wrap || loops) {\n\t\twrapsBehind = eSegIndex < sSegIndex || (sameSegment && ei < si) || (sameBezier && e.t < s.t);\n\t\tif (_splitSegment(path, sSegIndex, si, s.t)) {\n\t\t\tsSegIndex++;\n\t\t\tif (!wrapsBehind) {\n\t\t\t\teSegIndex++;\n\t\t\t\tif (sameBezier) {\n\t\t\t\t\te.t = (e.t - s.t) / (1 - s.t);\n\t\t\t\t\tei = 0;\n\t\t\t\t} else if (sameSegment) {\n\t\t\t\t\tei -= si;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (Math.abs(1 - (end - start)) < 1e-5) {\n\t\t\teSegIndex = sSegIndex - 1;\n\t\t} else if (!e.t && eSegIndex) {\n\t\t\teSegIndex--;\n\t\t} else if (_splitSegment(path, eSegIndex, ei, e.t) && wrapsBehind) {\n\t\t\tsSegIndex++;\n\t\t}\n\t\tif (s.t === 1) {\n\t\t\tsSegIndex = (sSegIndex + 1) % path.length;\n\t\t}\n\t\tcopy = [];\n\t\ttotalSegments = path.length;\n\t\tl = 1 + totalSegments * loops;\n\t\tj = sSegIndex;\n\t\tl += ((totalSegments - sSegIndex) + eSegIndex) % totalSegments;\n\t\tfor (i = 0; i < l; i++) {\n\t\t\t_appendOrMerge(copy, path[j++ % totalSegments]);\n\t\t}\n\t\tpath = copy;\n\t} else {\n\t\teShift = e.t === 1 ? 6 : subdivideSegment(eSeg, ei, e.t);\n\t\tif (start !== end) {\n\t\t\tsShift = subdivideSegment(sSeg, si, sameBezier ? s.t / e.t : s.t);\n\t\t\tsameSegment && (eShift += sShift);\n\t\t\teSeg.splice(ei + eShift + 2);\n\t\t\t(sShift || si) && sSeg.splice(0, si + sShift);\n\t\t\ti = path.length;\n\t\t\twhile (i--) {\n\t\t\t\t//chop off any extra segments\n\t\t\t\t(i < sSegIndex || i > eSegIndex) &&\tpath.splice(i, 1);\n\t\t\t}\n\t\t} else {\n\t\t\teSeg.angle = getRotationAtBezierT(eSeg, ei + eShift, 0); //record the value before we chop because it'll be impossible to determine the angle after its length is 0!\n\t\t\tei += eShift;\n\t\t\ts = eSeg[ei];\n\t\t\te = eSeg[ei+1];\n\t\t\teSeg.length = eSeg.totalLength = 0;\n\t\t\teSeg.totalPoints = path.totalPoints = 8;\n\t\t\teSeg.push(s, e, s, e, s, e, s, e);\n\t\t}\n\t}\n\tpath.totalLength = 0;\n\treturn path;\n}\n\n//measures a Segment according to its resolution (so if segment.resolution is 6, for example, it'll take 6 samples equally across each Bezier) and create/populate a \"samples\" Array that has the length up to each of those sample points (always increasing from the start) as well as a \"lookup\" array that's broken up according to the smallest distance between 2 samples. This gives us a very fast way of looking up a progress position rather than looping through all the points/Beziers. You can optionally have it only measure a subset, starting at startIndex and going for a specific number of beziers (remember, there are 3 x/y pairs each, for a total of 6 elements for each Bezier). It will also populate a \"totalLength\" property, but that's not generally super accurate because by default it'll only take 6 samples per Bezier. But for performance reasons, it's perfectly adequate for measuring progress values along the path. If you need a more accurate totalLength, either increase the resolution or use the more advanced bezierToPoints() method which keeps adding points until they don't deviate by more than a certain precision value.\nfunction measureSegment(segment, startIndex, bezierQty) {\n\tstartIndex = startIndex || 0;\n\tif (!segment.samples) {\n\t\tsegment.samples = [];\n\t\tsegment.lookup = [];\n\t}\n\tlet resolution = ~~segment.resolution || 12,\n\t\tinc = 1 / resolution,\n\t\tendIndex = bezierQty ? startIndex + bezierQty * 6 + 1 : segment.length,\n\t\tx1 = segment[startIndex],\n\t\ty1 = segment[startIndex + 1],\n\t\tsamplesIndex = startIndex ? (startIndex / 6) * resolution : 0,\n\t\tsamples = segment.samples,\n\t\tlookup = segment.lookup,\n\t\tmin = (startIndex ? segment.minLength : _largeNum) || _largeNum,\n\t\tprevLength = samples[samplesIndex + bezierQty * resolution - 1],\n\t\tlength = startIndex ? samples[samplesIndex-1] : 0,\n\t\ti, j, x4, x3, x2, xd, xd1, y4, y3, y2, yd, yd1, inv, t, lengthIndex, l, segLength;\n\tsamples.length = lookup.length = 0;\n\tfor (j = startIndex + 2; j < endIndex; j += 6) {\n\t\tx4 = segment[j + 4] - x1;\n\t\tx3 = segment[j + 2] - x1;\n\t\tx2 = segment[j] - x1;\n\t\ty4 = segment[j + 5] - y1;\n\t\ty3 = segment[j + 3] - y1;\n\t\ty2 = segment[j + 1] - y1;\n\t\txd = xd1 = yd = yd1 = 0;\n\t\tif (_abs(x4) < .01 && _abs(y4) < .01 && _abs(x2) + _abs(y2) < .01) { //dump points that are sufficiently close (basically right on top of each other, making a bezier super tiny or 0 length)\n\t\t\tif (segment.length > 8) {\n\t\t\t\tsegment.splice(j, 6);\n\t\t\t\tj -= 6;\n\t\t\t\tendIndex -= 6;\n\t\t\t}\n\t\t} else {\n\t\t\tfor (i = 1; i <= resolution; i++) {\n\t\t\t\tt = inc * i;\n\t\t\t\tinv = 1 - t;\n\t\t\t\txd = xd1 - (xd1 = (t * t * x4 + 3 * inv * (t * x3 + inv * x2)) * t);\n\t\t\t\tyd = yd1 - (yd1 = (t * t * y4 + 3 * inv * (t * y3 + inv * y2)) * t);\n\t\t\t\tl = _sqrt(yd * yd + xd * xd);\n\t\t\t\tif (l < min) {\n\t\t\t\t\tmin = l;\n\t\t\t\t}\n\t\t\t\tlength += l;\n\t\t\t\tsamples[samplesIndex++] = length;\n\t\t\t}\n\t\t}\n\t\tx1 += x4;\n\t\ty1 += y4;\n\t}\n\tif (prevLength) {\n\t\tprevLength -= length;\n\t\tfor (; samplesIndex < samples.length; samplesIndex++) {\n\t\t\tsamples[samplesIndex] += prevLength;\n\t\t}\n\t}\n\tif (samples.length && min) {\n\t\tsegment.totalLength = segLength = samples[samples.length-1] || 0;\n\t\tsegment.minLength = min;\n\t\tif (segLength / min < 9999) { // if the lookup would require too many values (memory problem), we skip this and instead we use a loop to lookup values directly in the samples Array\n\t\t\tl = lengthIndex = 0;\n\t\t\tfor (i = 0; i < segLength; i += min) {\n\t\t\t\tlookup[l++] = (samples[lengthIndex] < i) ? ++lengthIndex : lengthIndex;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tsegment.totalLength = samples[0] = 0;\n\t}\n\treturn startIndex ? length - samples[startIndex / 2 - 1] : length;\n}\n\nexport function cacheRawPathMeasurements(rawPath, resolution) {\n\tlet pathLength, points, i;\n\tfor (i = pathLength = points = 0; i < rawPath.length; i++) {\n\t\trawPath[i].resolution = ~~resolution || 12; //steps per Bezier curve (anchor, 2 control points, to anchor)\n\t\tpoints += rawPath[i].length;\n\t\tpathLength += measureSegment(rawPath[i]);\n\t}\n\trawPath.totalPoints = points;\n\trawPath.totalLength = pathLength;\n\treturn rawPath;\n}\n\n//divide segment[i] at position t (value between 0 and 1, progress along that particular cubic bezier segment that starts at segment[i]). Returns how many elements were spliced into the segment array (either 0 or 6)\nexport function subdivideSegment(segment, i, t) {\n\tif (t <= 0 || t >= 1) {\n\t\treturn 0;\n\t}\n\tlet ax = segment[i],\n\t\tay = segment[i+1],\n\t\tcp1x = segment[i+2],\n\t\tcp1y = segment[i+3],\n\t\tcp2x = segment[i+4],\n\t\tcp2y = segment[i+5],\n\t\tbx = segment[i+6],\n\t\tby = segment[i+7],\n\t\tx1a = ax + (cp1x - ax) * t,\n\t\tx2 = cp1x + (cp2x - cp1x) * t,\n\t\ty1a = ay + (cp1y - ay) * t,\n\t\ty2 = cp1y + (cp2y - cp1y) * t,\n\t\tx1 = x1a + (x2 - x1a) * t,\n\t\ty1 = y1a + (y2 - y1a) * t,\n\t\tx2a = cp2x + (bx - cp2x) * t,\n\t\ty2a = cp2y + (by - cp2y) * t;\n\tx2 += (x2a - x2) * t;\n\ty2 += (y2a - y2) * t;\n\tsegment.splice(i + 2, 4,\n\t\t_round(x1a), //first control point\n\t\t_round(y1a),\n\t\t_round(x1), //second control point\n\t\t_round(y1),\n\t\t_round(x1 + (x2 - x1) * t), //new fabricated anchor on line\n\t\t_round(y1 + (y2 - y1) * t),\n\t\t_round(x2), //third control point\n\t\t_round(y2),\n\t\t_round(x2a), //fourth control point\n\t\t_round(y2a)\n\t);\n\tsegment.samples && segment.samples.splice(((i / 6) * segment.resolution) | 0, 0, 0, 0, 0, 0, 0, 0);\n\treturn 6;\n}\n\n// returns an object {path, segment, segIndex, i, t}\nfunction getProgressData(rawPath, progress, decoratee, pushToNextIfAtEnd) {\n\tdecoratee = decoratee || {};\n\trawPath.totalLength || cacheRawPathMeasurements(rawPath);\n\tif (progress < 0 || progress > 1) {\n\t\tprogress = _wrapProgress(progress);\n\t}\n\tlet segIndex = 0,\n\t\tsegment = rawPath[0],\n\t\tsamples, resolution, length, min, max, i, t;\n\tif (!progress) {\n\t\tt = i = segIndex = 0;\n\t\tsegment = rawPath[0];\n\t} else if (progress === 1) {\n\t\tt = 1;\n\t\tsegIndex = rawPath.length - 1;\n\t\tsegment = rawPath[segIndex];\n\t\ti = segment.length - 8;\n\t} else {\n\t\tif (rawPath.length > 1) { //speed optimization: most of the time, there's only one segment so skip the recursion.\n\t\t\tlength = rawPath.totalLength * progress;\n\t\t\tmax = i = 0;\n\t\t\twhile ((max += rawPath[i++].totalLength) < length) {\n\t\t\t\tsegIndex = i;\n\t\t\t}\n\t\t\tsegment = rawPath[segIndex];\n\t\t\tmin = max - segment.totalLength;\n\t\t\tprogress = ((length - min) / (max - min)) || 0;\n\t\t}\n\t\tsamples = segment.samples;\n\t\tresolution = segment.resolution; //how many samples per cubic bezier chunk\n\t\tlength = segment.totalLength * progress;\n\t\ti = segment.lookup.length ? segment.lookup[~~(length / segment.minLength)] || 0 : _getSampleIndex(samples, length, progress);\n\t\tmin = i ? samples[i-1] : 0;\n\t\tmax = samples[i];\n\t\tif (max < length) {\n\t\t\tmin = max;\n\t\t\tmax = samples[++i];\n\t\t}\n\t\tt = (1 / resolution) * (((length - min) / (max - min)) + ((i % resolution)));\n\t\ti = ~~(i / resolution) * 6;\n\t\tif (pushToNextIfAtEnd && t === 1) {\n\t\t\tif (i + 6 < segment.length) {\n\t\t\t\ti += 6;\n\t\t\t\tt = 0;\n\t\t\t} else if (segIndex + 1 < rawPath.length) {\n\t\t\t\ti = t = 0;\n\t\t\t\tsegment = rawPath[++segIndex];\n\t\t\t}\n\t\t}\n\t}\n\tdecoratee.t = t;\n\tdecoratee.i = i;\n\tdecoratee.path = rawPath;\n\tdecoratee.segment = segment;\n\tdecoratee.segIndex = segIndex;\n\treturn decoratee;\n}\n\nexport function getPositionOnPath(rawPath, progress, includeAngle, point) {\n\tlet segment = rawPath[0],\n\t\tresult = point || {},\n\t\tsamples, resolution, length, min, max, i, t, a, inv;\n\tif (progress < 0 || progress > 1) {\n\t\tprogress = _wrapProgress(progress);\n\t}\n\tif (rawPath.length > 1) { //speed optimization: most of the time, there's only one segment so skip the recursion.\n\t\tlength = rawPath.totalLength * progress;\n\t\tmax = i = 0;\n\t\twhile ((max += rawPath[i++].totalLength) < length) {\n\t\t\tsegment = rawPath[i];\n\t\t}\n\t\tmin = max - segment.totalLength;\n\t\tprogress = ((length - min) / (max - min)) || 0;\n\t}\n\tsamples = segment.samples;\n\tresolution = segment.resolution;\n\tlength = segment.totalLength * progress;\n\ti = segment.lookup.length ? segment.lookup[progress < 1 ? ~~(length / segment.minLength) : segment.lookup.length - 1] || 0 : _getSampleIndex(samples, length, progress);\n\tmin = i ? samples[i-1] : 0;\n\tmax = samples[i];\n\tif (max < length) {\n\t\tmin = max;\n\t\tmax = samples[++i];\n\t}\n\tt = ((1 / resolution) * (((length - min) / (max - min)) + ((i % resolution)))) || 0;\n\tinv = 1 - t;\n\ti = ~~(i / resolution) * 6;\n\ta = segment[i];\n\tresult.x = _round((t * t * (segment[i + 6] - a) + 3 * inv * (t * (segment[i + 4] - a) + inv * (segment[i + 2] - a))) * t + a);\n\tresult.y = _round((t * t * (segment[i + 7] - (a = segment[i+1])) + 3 * inv * (t * (segment[i + 5] - a) + inv * (segment[i + 3] - a))) * t + a);\n\tif (includeAngle) {\n\t\tresult.angle = segment.totalLength ? getRotationAtBezierT(segment, i, t >= 1 ? 1 - 1e-9 : t ? t : 1e-9) : segment.angle || 0;\n\t}\n\treturn result;\n}\n\n\n\n//applies a matrix transform to RawPath (or a segment in a RawPath) and returns whatever was passed in (it transforms the values in the array(s), not a copy).\nexport function transformRawPath(rawPath, a, b, c, d, tx, ty) {\n\tlet j = rawPath.length,\n\t\tsegment, l, i, x, y;\n\twhile (--j > -1) {\n\t\tsegment = rawPath[j];\n\t\tl = segment.length;\n\t\tfor (i = 0; i < l; i += 2) {\n\t\t\tx = segment[i];\n\t\t\ty = segment[i+1];\n\t\t\tsegment[i] = x * a + y * c + tx;\n\t\t\tsegment[i+1] = x * b + y * d + ty;\n\t\t}\n\t}\n\trawPath._dirty = 1;\n\treturn rawPath;\n}\n\n\n\n// translates SVG arc data into a segment (cubic beziers). Angle is in degrees.\nfunction arcToSegment(lastX, lastY, rx, ry, angle, largeArcFlag, sweepFlag, x, y) {\n\tif (lastX === x && lastY === y) {\n\t\treturn;\n\t}\n\trx = _abs(rx);\n\try = _abs(ry);\n\tlet angleRad = (angle % 360) * _DEG2RAD,\n\t\tcosAngle = _cos(angleRad),\n\t\tsinAngle = _sin(angleRad),\n\t\tPI = Math.PI,\n\t\tTWOPI = PI * 2,\n\t\tdx2 = (lastX - x) / 2,\n\t\tdy2 = (lastY - y) / 2,\n\t\tx1 = (cosAngle * dx2 + sinAngle * dy2),\n\t\ty1 = (-sinAngle * dx2 + cosAngle * dy2),\n\t\tx1_sq = x1 * x1,\n\t\ty1_sq = y1 * y1,\n\t\tradiiCheck = x1_sq / (rx * rx) + y1_sq / (ry * ry);\n\tif (radiiCheck > 1) {\n\t\trx = _sqrt(radiiCheck) * rx;\n\t\try = _sqrt(radiiCheck) * ry;\n\t}\n\tlet rx_sq = rx * rx,\n\t\try_sq = ry * ry,\n\t\tsq = ((rx_sq * ry_sq) - (rx_sq * y1_sq) - (ry_sq * x1_sq)) / ((rx_sq * y1_sq) + (ry_sq * x1_sq));\n\tif (sq < 0) {\n\t\tsq = 0;\n\t}\n\tlet coef = ((largeArcFlag === sweepFlag) ? -1 : 1) * _sqrt(sq),\n\t\tcx1 = coef * ((rx * y1) / ry),\n\t\tcy1 = coef * -((ry * x1) / rx),\n\t\tsx2 = (lastX + x) / 2,\n\t\tsy2 = (lastY + y) / 2,\n\t\tcx = sx2 + (cosAngle * cx1 - sinAngle * cy1),\n\t\tcy = sy2 + (sinAngle * cx1 + cosAngle * cy1),\n\t\tux = (x1 - cx1) / rx,\n\t\tuy = (y1 - cy1) / ry,\n\t\tvx = (-x1 - cx1) / rx,\n\t\tvy = (-y1 - cy1) / ry,\n\t\ttemp = ux * ux + uy * uy,\n\t\tangleStart = ((uy < 0) ? -1 : 1) * Math.acos(ux / _sqrt(temp)),\n\t\tangleExtent = ((ux * vy - uy * vx < 0) ? -1 : 1) * Math.acos((ux * vx + uy * vy) / _sqrt(temp * (vx * vx + vy * vy)));\n\tisNaN(angleExtent) && (angleExtent = PI); //rare edge case. Math.cos(-1) is NaN.\n\tif (!sweepFlag && angleExtent > 0) {\n\t\tangleExtent -= TWOPI;\n\t} else if (sweepFlag && angleExtent < 0) {\n\t\tangleExtent += TWOPI;\n\t}\n\tangleStart %= TWOPI;\n\tangleExtent %= TWOPI;\n\tlet segments = Math.ceil(_abs(angleExtent) / (TWOPI / 4)),\n\t\trawPath = [],\n\t\tangleIncrement = angleExtent / segments,\n\t\tcontrolLength = 4 / 3 * _sin(angleIncrement / 2) / (1 + _cos(angleIncrement / 2)),\n\t\tma = cosAngle * rx,\n\t\tmb = sinAngle * rx,\n\t\tmc = sinAngle * -ry,\n\t\tmd = cosAngle * ry,\n\t\ti;\n\tfor (i = 0; i < segments; i++) {\n\t\tangle = angleStart + i * angleIncrement;\n\t\tx1 = _cos(angle);\n\t\ty1 = _sin(angle);\n\t\tux = _cos(angle += angleIncrement);\n\t\tuy = _sin(angle);\n\t\trawPath.push(x1 - controlLength * y1, y1 + controlLength * x1, ux + controlLength * uy, uy - controlLength * ux, ux, uy);\n\t}\n\t//now transform according to the actual size of the ellipse/arc (the beziers were noramlized, between 0 and 1 on a circle).\n\tfor (i = 0; i < rawPath.length; i+=2) {\n\t\tx1 = rawPath[i];\n\t\ty1 = rawPath[i+1];\n\t\trawPath[i] = x1 * ma + y1 * mc + cx;\n\t\trawPath[i+1] = x1 * mb + y1 * md + cy;\n\t}\n\trawPath[i-2] = x; //always set the end to exactly where it's supposed to be\n\trawPath[i-1] = y;\n\treturn rawPath;\n}\n\n//Spits back a RawPath with absolute coordinates. Each segment starts with a \"moveTo\" command (x coordinate, then y) and then 2 control points (x, y, x, y), then anchor. The goal is to minimize memory and maximize speed.\nexport function stringToRawPath(d) {\n\tlet a = (d + \"\").replace(_scientific, m => { let n = +m; return (n < 0.0001 && n > -0.0001) ? 0 : n; }).match(_svgPathExp) || [], //some authoring programs spit out very small numbers in scientific notation like \"1e-5\", so make sure we round that down to 0 first.\n\t\tpath = [],\n\t\trelativeX = 0,\n\t\trelativeY = 0,\n\t\ttwoThirds = 2 / 3,\n\t\telements = a.length,\n\t\tpoints = 0,\n\t\terrorMessage = \"ERROR: malformed path: \" + d,\n\t\ti, j, x, y, command, isRelative, segment, startX, startY, difX, difY, beziers, prevCommand, flag1, flag2,\n\t\tline = function(sx, sy, ex, ey) {\n\t\t\tdifX = (ex - sx) / 3;\n\t\t\tdifY = (ey - sy) / 3;\n\t\t\tsegment.push(sx + difX, sy + difY, ex - difX, ey - difY, ex, ey);\n\t\t};\n\tif (!d || !isNaN(a[0]) || isNaN(a[1])) {\n\t\tconsole.log(errorMessage);\n\t\treturn path;\n\t}\n\tfor (i = 0; i < elements; i++) {\n\t\tprevCommand = command;\n\t\tif (isNaN(a[i])) {\n\t\t\tcommand = a[i].toUpperCase();\n\t\t\tisRelative = (command !== a[i]); //lower case means relative\n\t\t} else { //commands like \"C\" can be strung together without any new command characters between.\n\t\t\ti--;\n\t\t}\n\t\tx = +a[i + 1];\n\t\ty = +a[i + 2];\n\t\tif (isRelative) {\n\t\t\tx += relativeX;\n\t\t\ty += relativeY;\n\t\t}\n\t\tif (!i) {\n\t\t\tstartX = x;\n\t\t\tstartY = y;\n\t\t}\n\n\t\t// \"M\" (move)\n\t\tif (command === \"M\") {\n\t\t\tif (segment) {\n\t\t\t\tif (segment.length < 8) { //if the path data was funky and just had a M with no actual drawing anywhere, skip it.\n\t\t\t\t\tpath.length -= 1;\n\t\t\t\t} else {\n\t\t\t\t\tpoints += segment.length;\n\t\t\t\t}\n\t\t\t}\n\t\t\trelativeX = startX = x;\n\t\t\trelativeY = startY = y;\n\t\t\tsegment = [x, y];\n\t\t\tpath.push(segment);\n\t\t\ti += 2;\n\t\t\tcommand = \"L\"; //an \"M\" with more than 2 values gets interpreted as \"lineTo\" commands (\"L\").\n\n\t\t// \"C\" (cubic bezier)\n\t\t} else if (command === \"C\") {\n\t\t\tif (!segment) {\n\t\t\t\tsegment = [0, 0];\n\t\t\t}\n\t\t\tif (!isRelative) {\n\t\t\t\trelativeX = relativeY = 0;\n\t\t\t}\n\t\t\t//note: \"*1\" is just a fast/short way to cast the value as a Number. WAAAY faster in Chrome, slightly slower in Firefox.\n\t\t\tsegment.push(x,\ty, relativeX + a[i + 3] * 1, relativeY + a[i + 4] * 1, (relativeX += a[i + 5] * 1),\t(relativeY += a[i + 6] * 1));\n\t\t\ti += 6;\n\n\t\t// \"S\" (continuation of cubic bezier)\n\t\t} else if (command === \"S\") {\n\t\t\tdifX = relativeX;\n\t\t\tdifY = relativeY;\n\t\t\tif (prevCommand === \"C\" || prevCommand === \"S\") {\n\t\t\t\tdifX += relativeX - segment[segment.length - 4];\n\t\t\t\tdifY += relativeY - segment[segment.length - 3];\n\t\t\t}\n\t\t\tif (!isRelative) {\n\t\t\t\trelativeX = relativeY = 0;\n\t\t\t}\n\t\t\tsegment.push(difX, difY, x,\ty, (relativeX += a[i + 3] * 1), (relativeY += a[i + 4] * 1));\n\t\t\ti += 4;\n\n\t\t// \"Q\" (quadratic bezier)\n\t\t} else if (command === \"Q\") {\n\t\t\tdifX = relativeX + (x - relativeX) * twoThirds;\n\t\t\tdifY = relativeY + (y - relativeY) * twoThirds;\n\t\t\tif (!isRelative) {\n\t\t\t\trelativeX = relativeY = 0;\n\t\t\t}\n\t\t\trelativeX += a[i + 3] * 1;\n\t\t\trelativeY += a[i + 4] * 1;\n\t\t\tsegment.push(difX, difY, relativeX + (x - relativeX) * twoThirds, relativeY + (y - relativeY) * twoThirds, relativeX, relativeY);\n\t\t\ti += 4;\n\n\t\t// \"T\" (continuation of quadratic bezier)\n\t\t} else if (command === \"T\") {\n\t\t\tdifX = relativeX - segment[segment.length - 4];\n\t\t\tdifY = relativeY - segment[segment.length - 3];\n\t\t\tsegment.push(relativeX + difX, relativeY + difY, x + ((relativeX + difX * 1.5) - x) * twoThirds, y + ((relativeY + difY * 1.5) - y) * twoThirds, (relativeX = x), (relativeY = y));\n\t\t\ti += 2;\n\n\t\t// \"H\" (horizontal line)\n\t\t} else if (command === \"H\") {\n\t\t\tline(relativeX, relativeY, (relativeX = x), relativeY);\n\t\t\ti += 1;\n\n\t\t// \"V\" (vertical line)\n\t\t} else if (command === \"V\") {\n\t\t\t//adjust values because the first (and only one) isn't x in this case, it's y.\n\t\t\tline(relativeX, relativeY, relativeX, (relativeY = x + (isRelative ? relativeY - relativeX : 0)));\n\t\t\ti += 1;\n\n\t\t// \"L\" (line) or \"Z\" (close)\n\t\t} else if (command === \"L\" || command === \"Z\") {\n\t\t\tif (command === \"Z\") {\n\t\t\t\tx = startX;\n\t\t\t\ty = startY;\n\t\t\t\tsegment.closed = true;\n\t\t\t}\n\t\t\tif (command === \"L\" || _abs(relativeX - x) > 0.5 || _abs(relativeY - y) > 0.5) {\n\t\t\t\tline(relativeX, relativeY, x, y);\n\t\t\t\tif (command === \"L\") {\n\t\t\t\t\ti += 2;\n\t\t\t\t}\n\t\t\t}\n\t\t\trelativeX = x;\n\t\t\trelativeY = y;\n\n\t\t// \"A\" (arc)\n\t\t} else if (command === \"A\") {\n\t\t\tflag1 = a[i+4];\n\t\t\tflag2 = a[i+5];\n\t\t\tdifX = a[i+6];\n\t\t\tdifY = a[i+7];\n\t\t\tj = 7;\n\t\t\tif (flag1.length > 1) { // for cases when the flags are merged, like \"a8 8 0 018 8\" (the 0 and 1 flags are WITH the x value of 8, but it could also be \"a8 8 0 01-8 8\" so it may include x or not)\n\t\t\t\tif (flag1.length < 3) {\n\t\t\t\t\tdifY = difX;\n\t\t\t\t\tdifX = flag2;\n\t\t\t\t\tj--;\n\t\t\t\t} else {\n\t\t\t\t\tdifY = flag2;\n\t\t\t\t\tdifX = flag1.substr(2);\n\t\t\t\t\tj-=2;\n\t\t\t\t}\n\t\t\t\tflag2 = flag1.charAt(1);\n\t\t\t\tflag1 = flag1.charAt(0);\n\t\t\t}\n\t\t\tbeziers = arcToSegment(relativeX, relativeY, +a[i+1], +a[i+2], +a[i+3], +flag1, +flag2, (isRelative ? relativeX : 0) + difX*1, (isRelative ? relativeY : 0) + difY*1);\n\t\t\ti += j;\n\t\t\tif (beziers) {\n\t\t\t\tfor (j = 0; j < beziers.length; j++) {\n\t\t\t\t\tsegment.push(beziers[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t\trelativeX = segment[segment.length-2];\n\t\t\trelativeY = segment[segment.length-1];\n\n\t\t} else {\n\t\t\tconsole.log(errorMessage);\n\t\t}\n\t}\n\ti = segment.length;\n\tif (i < 6) { //in case there's odd SVG like a M0,0 command at the very end.\n\t\tpath.pop();\n\t\ti = 0;\n\t} else if (segment[0] === segment[i-2] && segment[1] === segment[i-1]) {\n\t\tsegment.closed = true;\n\t}\n\tpath.totalPoints = points + i;\n\treturn path;\n}\n\n//populates the points array in alternating x/y values (like [x, y, x, y...] instead of individual point objects [{x, y}, {x, y}...] to conserve memory and stay in line with how we're handling segment arrays\nexport function bezierToPoints(x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n\tlet x12 = (x1 + x2) / 2,\n\t\ty12 = (y1 + y2) / 2,\n\t\tx23 = (x2 + x3) / 2,\n\t\ty23 = (y2 + y3) / 2,\n\t\tx34 = (x3 + x4) / 2,\n\t\ty34 = (y3 + y4) / 2,\n\t\tx123 = (x12 + x23) / 2,\n\t\ty123 = (y12 + y23) / 2,\n\t\tx234 = (x23 + x34) / 2,\n\t\ty234 = (y23 + y34) / 2,\n\t\tx1234 = (x123 + x234) / 2,\n\t\ty1234 = (y123 + y234) / 2,\n\t\tdx = x4 - x1,\n\t\tdy = y4 - y1,\n\t\td2 = _abs((x2 - x4) * dy - (y2 - y4) * dx),\n\t\td3 = _abs((x3 - x4) * dy - (y3 - y4) * dx),\n\t\tlength;\n\tif (!points) {\n\t\tpoints = [x1, y1, x4, y4];\n\t\tindex = 2;\n\t}\n\tpoints.splice(index || points.length - 2, 0, x1234, y1234);\n\tif ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n\t\tlength = points.length;\n\t\tbezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n\t\tbezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 2 + (points.length - length));\n\t}\n\treturn points;\n}\n\n/*\nfunction getAngleBetweenPoints(x0, y0, x1, y1, x2, y2) { //angle between 3 points in radians\n\tvar dx1 = x1 - x0,\n\t\tdy1 = y1 - y0,\n\t\tdx2 = x2 - x1,\n\t\tdy2 = y2 - y1,\n\t\tdx3 = x2 - x0,\n\t\tdy3 = y2 - y0,\n\t\ta = dx1 * dx1 + dy1 * dy1,\n\t\tb = dx2 * dx2 + dy2 * dy2,\n\t\tc = dx3 * dx3 + dy3 * dy3;\n\treturn Math.acos( (a + b - c) / _sqrt(4 * a * b) );\n},\n*/\n\n//pointsToSegment() doesn't handle flat coordinates (where y is always 0) the way we need (the resulting control points are always right on top of the anchors), so this function basically makes the control points go directly up and down, varying in length based on the curviness (more curvy, further control points)\nexport function flatPointsToSegment(points, curviness=1) {\n\tlet x = points[0],\n\t\ty = 0,\n\t\tsegment = [x, y],\n\t\ti = 2;\n\tfor (; i < points.length; i+=2) {\n\t\tsegment.push(\n\t\t\tx,\n\t\t\ty,\n\t\t\tpoints[i],\n\t\t\t(y = (points[i] - x) * curviness / 2),\n\t\t\t(x = points[i]),\n\t\t\t-y\n\t\t);\n\t}\n\treturn segment;\n}\n\n//points is an array of x/y points, like [x, y, x, y, x, y]\nexport function pointsToSegment(points, curviness) {\n\t//points = simplifyPoints(points, tolerance);\n\t_abs(points[0] - points[2]) < 1e-4 && _abs(points[1] - points[3]) < 1e-4 && (points = points.slice(2)); // if the first two points are super close, dump the first one.\n\tlet l = points.length-2,\n\t\tx = +points[0],\n\t\ty = +points[1],\n\t\tnextX = +points[2],\n\t\tnextY = +points[3],\n\t\tsegment = [x, y, x, y],\n\t\tdx2 = nextX - x,\n\t\tdy2 = nextY - y,\n\t\tclosed = Math.abs(points[l] - x) < 0.001 && Math.abs(points[l+1] - y) < 0.001,\n\t\tprevX, prevY, i, dx1, dy1, r1, r2, r3, tl, mx1, mx2, mxm, my1, my2, mym;\n\tif (closed) { // if the start and end points are basically on top of each other, close the segment by adding the 2nd point to the end, and the 2nd-to-last point to the beginning (we'll remove them at the end, but this allows the curvature to look perfect)\n\t\tpoints.push(nextX, nextY);\n\t\tnextX = x;\n\t\tnextY = y;\n\t\tx = points[l-2];\n\t\ty = points[l-1];\n\t\tpoints.unshift(x, y);\n\t\tl+=4;\n\t}\n\tcurviness = (curviness || curviness === 0) ? +curviness : 1;\n\tfor (i = 2; i < l; i+=2) {\n\t\tprevX = x;\n\t\tprevY = y;\n\t\tx = nextX;\n\t\ty = nextY;\n\t\tnextX = +points[i+2];\n\t\tnextY = +points[i+3];\n\t\tif (x === nextX && y === nextY) {\n\t\t\tcontinue;\n\t\t}\n\t\tdx1 = dx2;\n\t\tdy1 = dy2;\n\t\tdx2 = nextX - x;\n\t\tdy2 = nextY - y;\n\t\tr1 = _sqrt(dx1 * dx1 + dy1 * dy1); // r1, r2, and r3 correlate x and y (and z in the future). Basically 2D or 3D hypotenuse\n\t\tr2 = _sqrt(dx2 * dx2 + dy2 * dy2);\n\t\tr3 = _sqrt((dx2 / r2 + dx1 / r1) ** 2 + (dy2 / r2 + dy1 / r1) ** 2);\n\t\ttl = ((r1 + r2) * curviness * 0.25) / r3;\n\t\tmx1 = x - (x - prevX) * (r1 ? tl / r1 : 0);\n\t\tmx2 = x + (nextX - x) * (r2 ? tl / r2 : 0);\n\t\tmxm = x - (mx1 + (((mx2 - mx1) * ((r1 * 3 / (r1 + r2)) + 0.5) / 4) || 0));\n\t\tmy1 = y - (y - prevY) * (r1 ? tl / r1 : 0);\n\t\tmy2 = y + (nextY - y) * (r2 ? tl / r2 : 0);\n\t\tmym = y - (my1 + (((my2 - my1) * ((r1 * 3 / (r1 + r2)) + 0.5) / 4) || 0));\n\t\tif (x !== prevX || y !== prevY) {\n\t\t\tsegment.push(\n\t\t\t\t_round(mx1 + mxm), // first control point\n\t\t\t\t_round(my1 + mym),\n\t\t\t\t_round(x), // anchor\n\t\t\t\t_round(y),\n\t\t\t\t_round(mx2 + mxm), // second control point\n\t\t\t\t_round(my2 + mym)\n\t\t\t);\n\t\t}\n\t}\n\tx !== nextX || y !== nextY || segment.length < 4 ? segment.push(_round(nextX), _round(nextY), _round(nextX), _round(nextY)) : (segment.length -= 2);\n\tif (segment.length === 2) { // only one point!\n\t\tsegment.push(x, y, x, y, x, y);\n\t} else if (closed) {\n\t\tsegment.splice(0, 6);\n\t\tsegment.length = segment.length - 6;\n\t}\n\treturn segment;\n}\n\n//returns the squared distance between an x/y coordinate and a segment between x1/y1 and x2/y2\nfunction pointToSegDist(x, y, x1, y1, x2, y2) {\n\tlet dx = x2 - x1,\n\t\tdy = y2 - y1,\n\t\tt;\n\tif (dx || dy) {\n\t\tt = ((x - x1) * dx + (y - y1) * dy) / (dx * dx + dy * dy);\n\t\tif (t > 1) {\n\t\t\tx1 = x2;\n\t\t\ty1 = y2;\n\t\t} else if (t > 0) {\n\t\t\tx1 += dx * t;\n\t\t\ty1 += dy * t;\n\t\t}\n\t}\n\treturn (x - x1) ** 2 + (y - y1) ** 2;\n}\n\nfunction simplifyStep(points, first, last, tolerance, simplified) {\n\tlet maxSqDist = tolerance,\n\t\tfirstX = points[first],\n\t\tfirstY = points[first+1],\n\t\tlastX = points[last],\n\t\tlastY = points[last+1],\n\t\tindex, i, d;\n\tfor (i = first + 2; i < last; i += 2) {\n\t\td = pointToSegDist(points[i], points[i+1], firstX, firstY, lastX, lastY);\n\t\tif (d > maxSqDist) {\n\t\t\tindex = i;\n\t\t\tmaxSqDist = d;\n\t\t}\n\t}\n\tif (maxSqDist > tolerance) {\n\t\tindex - first > 2 && simplifyStep(points, first, index, tolerance, simplified);\n\t\tsimplified.push(points[index], points[index+1]);\n\t\tlast - index > 2 && simplifyStep(points, index, last, tolerance, simplified);\n\t}\n}\n\n//points is an array of x/y values like [x, y, x, y, x, y]\nexport function simplifyPoints(points, tolerance) {\n\tlet prevX = parseFloat(points[0]),\n\t\tprevY = parseFloat(points[1]),\n\t\ttemp = [prevX, prevY],\n\t\tl = points.length - 2,\n\t\ti, x, y, dx, dy, result, last;\n\ttolerance = (tolerance || 1) ** 2;\n\tfor (i = 2; i < l; i += 2) {\n\t\tx = parseFloat(points[i]);\n\t\ty = parseFloat(points[i+1]);\n\t\tdx = prevX - x;\n\t\tdy = prevY - y;\n\t\tif (dx * dx + dy * dy > tolerance) {\n\t\t\ttemp.push(x, y);\n\t\t\tprevX = x;\n\t\t\tprevY = y;\n\t\t}\n\t}\n\ttemp.push(parseFloat(points[l]), parseFloat(points[l+1]));\n\tlast = temp.length - 2;\n\tresult = [temp[0], temp[1]];\n\tsimplifyStep(temp, 0, last, tolerance, result);\n\tresult.push(temp[last], temp[last+1]);\n\treturn result;\n}\n\nfunction getClosestProgressOnBezier(iterations, px, py, start, end, slices, x0, y0, x1, y1, x2, y2, x3, y3) {\n\tlet inc = (end - start) / slices,\n\t\tbest = 0,\n\t\tt = start,\n\t\tx, y, d, dx, dy, inv;\n\t_bestDistance = _largeNum;\n\twhile (t <= end) {\n\t\tinv = 1 - t;\n\t\tx = inv * inv * inv * x0 + 3 * inv * inv * t * x1 + 3 * inv * t * t * x2 + t * t * t * x3;\n\t\ty = inv * inv * inv * y0 + 3 * inv * inv * t * y1 + 3 * inv * t * t * y2 + t * t * t * y3;\n\t\tdx = x - px;\n\t\tdy = y - py;\n\t\td = dx * dx + dy * dy;\n\t\tif (d < _bestDistance) {\n\t\t\t_bestDistance = d;\n\t\t\tbest = t;\n\t\t}\n\t\tt += inc;\n\t}\n\treturn (iterations > 1) ? getClosestProgressOnBezier(iterations - 1, px, py, Math.max(best - inc, 0), Math.min(best + inc, 1), slices, x0, y0, x1, y1, x2, y2, x3, y3) : best;\n}\n\nexport function getClosestData(rawPath, x, y, slices) { //returns an object with the closest j, i, and t (j is the segment index, i is the index of the point in that segment, and t is the time/progress along that bezier)\n\tlet closest = {j:0, i:0, t:0},\n\t\tbestDistance = _largeNum,\n\t\ti, j, t, segment;\n\tfor (j = 0; j < rawPath.length; j++) {\n\t\tsegment = rawPath[j];\n\t\tfor (i = 0; i < segment.length; i+=6) {\n\t\t\tt = getClosestProgressOnBezier(1, x, y, 0, 1, slices || 20, segment[i], segment[i+1], segment[i+2], segment[i+3], segment[i+4], segment[i+5], segment[i+6], segment[i+7]);\n\t\t\tif (bestDistance > _bestDistance) {\n\t\t\t\tbestDistance = _bestDistance;\n\t\t\t\tclosest.j = j;\n\t\t\t\tclosest.i = i;\n\t\t\t\tclosest.t = t;\n\t\t\t}\n\t\t}\n\t}\n\treturn closest;\n}\n\n//subdivide a Segment closest to a specific x,y coordinate\nexport function subdivideSegmentNear(x, y, segment, slices, iterations) {\n\tlet l = segment.length,\n\t\tbestDistance = _largeNum,\n\t\tbestT = 0,\n\t\tbestSegmentIndex = 0,\n\t\tt, i;\n\tslices = slices || 20;\n\titerations = iterations || 3;\n\tfor (i = 0; i < l; i += 6) {\n\t\tt = getClosestProgressOnBezier(1, x, y, 0, 1, slices, segment[i], segment[i+1], segment[i+2], segment[i+3], segment[i+4], segment[i+5], segment[i+6], segment[i+7]);\n\t\tif (bestDistance > _bestDistance) {\n\t\t\tbestDistance = _bestDistance;\n\t\t\tbestT = t;\n\t\t\tbestSegmentIndex = i;\n\t\t}\n\t}\n\tt = getClosestProgressOnBezier(iterations, x, y, bestT - 0.05, bestT + 0.05, slices, segment[bestSegmentIndex], segment[bestSegmentIndex+1], segment[bestSegmentIndex+2], segment[bestSegmentIndex+3], segment[bestSegmentIndex+4], segment[bestSegmentIndex+5], segment[bestSegmentIndex+6], segment[bestSegmentIndex+7]);\n\tsubdivideSegment(segment, bestSegmentIndex, t);\n\treturn bestSegmentIndex + 6;\n}\n\n/*\nTakes any of the following and converts it to an all Cubic Bezier SVG data string:\n- A data string like \"M0,0 L2,4 v20,15 H100\"\n- A RawPath, like [[x, y, x, y, x, y, x, y][[x, y, x, y, x, y, x, y]]\n- A Segment, like [x, y, x, y, x, y, x, y]\n\nNote: all numbers are rounded down to the closest 0.001 to minimize memory, maximize speed, and avoid odd numbers like 1e-13\n*/\nexport function rawPathToString(rawPath) {\n\tif (_isNumber(rawPath[0])) { //in case a segment is passed in instead\n\t\trawPath = [rawPath];\n\t}\n\tlet result = \"\",\n\t\tl = rawPath.length,\n\t\tsl, s, i, segment;\n\tfor (s = 0; s < l; s++) {\n\t\tsegment = rawPath[s];\n\t\tresult += \"M\" + _round(segment[0]) + \",\" + _round(segment[1]) + \" C\";\n\t\tsl = segment.length;\n\t\tfor (i = 2; i < sl; i++) {\n\t\t\tresult += _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i++]) + \" \" + _round(segment[i++]) + \",\" + _round(segment[i]) + \" \";\n\t\t}\n\t\tif (segment.closed) {\n\t\t\tresult += \"z\";\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\n// takes a segment with coordinates [x, y, x, y, ...] and converts the control points into angles and lengths [x, y, angle, length, angle, length, x, y, angle, length, ...] so that it animates more cleanly and avoids odd breaks/kinks. For example, if you animate from 1 o'clock to 6 o'clock, it'd just go directly/linearly rather than around. So the length would be very short in the middle of the tween.\nexport function cpCoordsToAngles(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tx, y, i;\n\tfor (i = 0; i < segment.length; i+=6) {\n\t\tx = segment[i+2] - segment[i];\n\t\ty = segment[i+3] - segment[i+1];\n\t\tresult[i+2] = Math.atan2(y, x);\n\t\tresult[i+3] = Math.sqrt(x * x + y * y);\n\t\tx = segment[i+6] - segment[i+4];\n\t\ty = segment[i+7] - segment[i+5];\n\t\tresult[i+4] = Math.atan2(y, x);\n\t\tresult[i+5] = Math.sqrt(x * x + y * y);\n\t}\n\treturn result;\n}\n\n// takes a segment that was converted with cpCoordsToAngles() to have angles and lengths instead of coordinates for the control points, and converts it BACK into coordinates.\nexport function cpAnglesToCoords(segment, copy) {\n\tvar result = copy ? segment.slice(0) : segment,\n\t\tlength = segment.length,\n\t\trnd = 1000,\n\t\tangle, l, i, j;\n\tfor (i = 0; i < length; i+=6) {\n\t\tangle = segment[i+2];\n\t\tl = segment[i+3]; //length\n\t\tresult[i+2] = (((segment[i] + Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+3] = (((segment[i+1] + Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t\tangle = segment[i+4];\n\t\tl = segment[i+5]; //length\n\t\tresult[i+4] = (((segment[i+6] - Math.cos(angle) * l) * rnd) | 0) / rnd;\n\t\tresult[i+5] = (((segment[i+7] - Math.sin(angle) * l) * rnd) | 0) / rnd;\n\t}\n\treturn result;\n}\n\n//adds an \"isSmooth\" array to each segment and populates it with a boolean value indicating whether or not it's smooth (the control points have basically the same slope). For any smooth control points, it converts the coordinates into angle (x, in radians) and length (y) and puts them into the same index value in a smoothData array.\nexport function populateSmoothData(rawPath) {\n\tlet j = rawPath.length,\n\t\tsmooth, segment, x, y, x2, y2, i, l, a, a2, isSmooth, smoothData;\n\twhile (--j > -1) {\n\t\tsegment = rawPath[j];\n\t\tisSmooth = segment.isSmooth = segment.isSmooth || [0, 0, 0, 0];\n\t\tsmoothData = segment.smoothData = segment.smoothData || [0, 0, 0, 0];\n\t\tisSmooth.length = 4;\n\t\tl = segment.length - 2;\n\t\tfor (i = 6; i < l; i += 6) {\n\t\t\tx = segment[i] - segment[i - 2];\n\t\t\ty = segment[i + 1] - segment[i - 1];\n\t\t\tx2 = segment[i + 2] - segment[i];\n\t\t\ty2 = segment[i + 3] - segment[i + 1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tsmooth = (Math.abs(a - a2) < 0.09);\n\t\t\tif (smooth) {\n\t\t\t\tsmoothData[i - 2] = a;\n\t\t\t\tsmoothData[i + 2] = a2;\n\t\t\t\tsmoothData[i - 1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[i + 3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t}\n\t\t\tisSmooth.push(smooth, smooth, 0, 0, smooth, smooth);\n\t\t}\n\t\t//if the first and last points are identical, check to see if there's a smooth transition. We must handle this a bit differently due to their positions in the array.\n\t\tif (segment[l] === segment[0] && segment[l+1] === segment[1]) {\n\t\t\tx = segment[0] - segment[l-2];\n\t\t\ty = segment[1] - segment[l-1];\n\t\t\tx2 = segment[2] - segment[0];\n\t\t\ty2 = segment[3] - segment[1];\n\t\t\ta = _atan2(y, x);\n\t\t\ta2 = _atan2(y2, x2);\n\t\t\tif (Math.abs(a - a2) < 0.09) {\n\t\t\t\tsmoothData[l-2] = a;\n\t\t\t\tsmoothData[2] = a2;\n\t\t\t\tsmoothData[l-1] = _sqrt(x * x + y * y);\n\t\t\t\tsmoothData[3] = _sqrt(x2 * x2 + y2 * y2);\n\t\t\t\tisSmooth[l-2] = isSmooth[l-1] = true; //don't change indexes 2 and 3 because we'll trigger everything from the END, and this will optimize file size a bit.\n\t\t\t}\n\t\t}\n\t}\n\treturn rawPath;\n}\nexport function pointToScreen(svgElement, point) {\n\tif (arguments.length < 2) { //by default, take the first set of coordinates in the path as the point\n\t\tlet rawPath = getRawPath(svgElement);\n\t\tpoint = svgElement.ownerSVGElement.createSVGPoint();\n\t\tpoint.x = rawPath[0][0];\n\t\tpoint.y = rawPath[0][1];\n\t}\n\treturn point.matrixTransform(svgElement.getScreenCTM());\n}\n\n*/","/*!\n * CustomEase 3.11.2\n * https://greensock.com\n *\n * @license Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nimport { stringToRawPath, rawPathToString, transformRawPath } from \"./utils/paths.js\";\n\nlet gsap, _coreInitted,\n\t_getGSAP = () => gsap || (typeof(window) !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap),\n\t_initCore = () => {\n\t\tgsap = _getGSAP();\n\t\tif (gsap) {\n\t\t\tgsap.registerEase(\"_CE\", CustomEase.create);\n\t\t\t_coreInitted = 1;\n\t\t} else {\n\t\t\tconsole.warn(\"Please gsap.registerPlugin(CustomEase)\");\n\t\t}\n\t},\n\t_bigNum = 1e20,\n\t_round = value => ~~(value * 1000 + (value < 0 ? -.5 : .5)) / 1000,\n\t_bonusValidated = 1, //CustomEase\n\t_numExp = /[-+=\\.]*\\d+[\\.e\\-\\+]*\\d*[e\\-\\+]*\\d*/gi, //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n\t_needsParsingExp = /[cLlsSaAhHvVtTqQ]/g,\n\t_findMinimum = values => {\n\t\tlet l = values.length,\n\t\t\tmin = _bigNum,\n\t\t\ti;\n\t\tfor (i = 1; i < l; i += 6) {\n\t\t\t+values[i] < min && (min = +values[i]);\n\t\t}\n\t\treturn min;\n\t},\n\t//takes all the points and translates/scales them so that the x starts at 0 and ends at 1.\n\t_normalize = (values, height, originY) => {\n\t\tif (!originY && originY !== 0) {\n\t\t\toriginY = Math.max(+values[values.length-1], +values[1]);\n\t\t}\n\t\tlet tx = +values[0] * -1,\n\t\t\tty = -originY,\n\t\t\tl = values.length,\n\t\t\tsx = 1 / (+values[l - 2] + tx),\n\t\t\tsy = -height || ((Math.abs(+values[l - 1] - +values[1]) < 0.01 * (+values[l - 2] - +values[0])) ? _findMinimum(values) + ty : +values[l - 1] + ty),\n\t\t\ti;\n\t\tif (sy) { //typically y ends at 1 (so that the end values are reached)\n\t\t\tsy = 1 / sy;\n\t\t} else { //in case the ease returns to its beginning value, scale everything proportionally\n\t\t\tsy = -sx;\n\t\t}\n\t\tfor (i = 0; i < l; i += 2) {\n\t\t\tvalues[i] = (+values[i] + tx) * sx;\n\t\t\tvalues[i + 1] = (+values[i + 1] + ty) * sy;\n\t\t}\n\t},\n\t//note that this function returns point objects like {x, y} rather than working with segments which are arrays with alternating x, y values as in the similar function in paths.js\n\t_bezierToPoints = function (x1, y1, x2, y2, x3, y3, x4, y4, threshold, points, index) {\n\t\tlet x12 = (x1 + x2) / 2,\n\t\t\ty12 = (y1 + y2) / 2,\n\t\t\tx23 = (x2 + x3) / 2,\n\t\t\ty23 = (y2 + y3) / 2,\n\t\t\tx34 = (x3 + x4) / 2,\n\t\t\ty34 = (y3 + y4) / 2,\n\t\t\tx123 = (x12 + x23) / 2,\n\t\t\ty123 = (y12 + y23) / 2,\n\t\t\tx234 = (x23 + x34) / 2,\n\t\t\ty234 = (y23 + y34) / 2,\n\t\t\tx1234 = (x123 + x234) / 2,\n\t\t\ty1234 = (y123 + y234) / 2,\n\t\t\tdx = x4 - x1,\n\t\t\tdy = y4 - y1,\n\t\t\td2 = Math.abs((x2 - x4) * dy - (y2 - y4) * dx),\n\t\t\td3 = Math.abs((x3 - x4) * dy - (y3 - y4) * dx),\n\t\t\tlength;\n\t\tif (!points) {\n\t\t\tpoints = [{x: x1, y: y1}, {x: x4, y: y4}];\n\t\t\tindex = 1;\n\t\t}\n\t\tpoints.splice(index || points.length - 1, 0, {x: x1234, y: y1234});\n\t\tif ((d2 + d3) * (d2 + d3) > threshold * (dx * dx + dy * dy)) {\n\t\t\tlength = points.length;\n\t\t\t_bezierToPoints(x1, y1, x12, y12, x123, y123, x1234, y1234, threshold, points, index);\n\t\t\t_bezierToPoints(x1234, y1234, x234, y234, x34, y34, x4, y4, threshold, points, index + 1 + (points.length - length));\n\t\t}\n\t\treturn points;\n\t};\n\nexport class CustomEase {\n\n\tconstructor(id, data, config) {\n\t\t_coreInitted || _initCore();\n\t\tthis.id = id;\n\t\t_bonusValidated && this.setData(data, config);\n\t}\n\n\tsetData(data, config) {\n\t\tconfig = config || {};\n\t\tdata = data || \"0,0,1,1\";\n\t\tlet values = data.match(_numExp),\n\t\t\tclosest = 1,\n\t\t\tpoints = [],\n\t\t\tlookup = [],\n\t\t\tprecision = config.precision || 1,\n\t\t\tfast = (precision <= 1),\n\t\t\tl, a1, a2, i, inc, j, point, prevPoint, p;\n\t\tthis.data = data;\n\t\tif (_needsParsingExp.test(data) || (~data.indexOf(\"M\") && data.indexOf(\"C\") < 0)) {\n\t\t\tvalues = stringToRawPath(data)[0];\n\t\t}\n\t\tl = values.length;\n\t\tif (l === 4) {\n\t\t\tvalues.unshift(0, 0);\n\t\t\tvalues.push(1, 1);\n\t\t\tl = 8;\n\t\t} else if ((l - 2) % 6) {\n\t\t\tthrow \"Invalid CustomEase\";\n\t\t}\n\t\tif (+values[0] !== 0 || +values[l - 2] !== 1) {\n\t\t\t_normalize(values, config.height, config.originY);\n\t\t}\n\t\tthis.segment = values;\n\t\tfor (i = 2; i < l; i += 6) {\n\t\t\ta1 = {x: +values[i - 2], y: +values[i - 1]};\n\t\t\ta2 = {x: +values[i + 4], y: +values[i + 5]};\n\t\t\tpoints.push(a1, a2);\n\t\t\t_bezierToPoints(a1.x, a1.y, +values[i], +values[i + 1], +values[i + 2], +values[i + 3], a2.x, a2.y, 1 / (precision * 200000), points, points.length - 1);\n\t\t}\n\t\tl = points.length;\n\t\tfor (i = 0; i < l; i++) {\n\t\t\tpoint = points[i];\n\t\t\tprevPoint = points[i - 1] || point;\n\t\t\tif ((point.x > prevPoint.x || (prevPoint.y !== point.y && prevPoint.x === point.x) || point === prevPoint) && point.x <= 1) { //if a point goes BACKWARD in time or is a duplicate, just drop it. Also it shouldn't go past 1 on the x axis, as could happen in a string like \"M0,0 C0,0 0.12,0.68 0.18,0.788 0.195,0.845 0.308,1 0.32,1 0.403,1.005 0.398,1 0.5,1 0.602,1 0.816,1.005 0.9,1 0.91,1 0.948,0.69 0.962,0.615 1.003,0.376 1,0 1,0\".\n\t\t\t\tprevPoint.cx = point.x - prevPoint.x; //change in x between this point and the next point (performance optimization)\n\t\t\t\tprevPoint.cy = point.y - prevPoint.y;\n\t\t\t\tprevPoint.n = point;\n\t\t\t\tprevPoint.nx = point.x; //next point's x value (performance optimization, making lookups faster in getRatio()). Remember, the lookup will always land on a spot where it's either this point or the very next one (never beyond that)\n\t\t\t\tif (fast && i > 1 && Math.abs(prevPoint.cy / prevPoint.cx - points[i - 2].cy / points[i - 2].cx) > 2) { //if there's a sudden change in direction, prioritize accuracy over speed. Like a bounce ease - you don't want to risk the sampling chunks landing on each side of the bounce anchor and having it clipped off.\n\t\t\t\t\tfast = 0;\n\t\t\t\t}\n\t\t\t\tif (prevPoint.cx < closest) {\n\t\t\t\t\tif (!prevPoint.cx) {\n\t\t\t\t\t\tprevPoint.cx = 0.001; //avoids math problems in getRatio() (dividing by zero)\n\t\t\t\t\t\tif (i === l - 1) { //in case the final segment goes vertical RIGHT at the end, make sure we end at the end.\n\t\t\t\t\t\t\tprevPoint.x -= 0.001;\n\t\t\t\t\t\t\tclosest = Math.min(closest, 0.001);\n\t\t\t\t\t\t\tfast = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclosest = prevPoint.cx;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpoints.splice(i--, 1);\n\t\t\t\tl--;\n\t\t\t}\n\t\t}\n\t\tl = (1 / closest + 1) | 0;\n\t\tinc = 1 / l;\n\t\tj = 0;\n\t\tpoint = points[0];\n\t\tif (fast) {\n\t\t\tfor (i = 0; i < l; i++) { //for fastest lookups, we just sample along the path at equal x (time) distance. Uses more memory and is slightly less accurate for anchors that don't land on the sampling points, but for the vast majority of eases it's excellent (and fast).\n\t\t\t\tp = i * inc;\n\t\t\t\tif (point.nx < p) {\n\t\t\t\t\tpoint = points[++j];\n\t\t\t\t}\n\t\t\t\ta1 = point.y + ((p - point.x) / point.cx) * point.cy;\n\t\t\t\tlookup[i] = {x: p, cx: inc, y: a1, cy: 0, nx: 9};\n\t\t\t\tif (i) {\n\t\t\t\t\tlookup[i - 1].cy = a1 - lookup[i - 1].y;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlookup[l - 1].cy = points[points.length - 1].y - a1;\n\t\t} else { //this option is more accurate, ensuring that EVERY anchor is hit perfectly. Clipping across a bounce, for example, would never happen.\n\t\t\tfor (i = 0; i < l; i++) { //build a lookup table based on the smallest distance so that we can instantly find the appropriate point (well, it'll either be that point or the very next one). We'll look up based on the linear progress. So it's it's 0.5 and the lookup table has 100 elements, it'd be like lookup[Math.floor(0.5 * 100)]\n\t\t\t\tif (point.nx < i * inc) {\n\t\t\t\t\tpoint = points[++j];\n\t\t\t\t}\n\t\t\t\tlookup[i] = point;\n\t\t\t}\n\n\t\t\tif (j < points.length - 1) {\n\t\t\t\tlookup[i-1] = points[points.length-2];\n\t\t\t}\n\t\t}\n\t\t//this._calcEnd = (points[points.length-1].y !== 1 || points[0].y !== 0); //ensures that we don't run into floating point errors. As long as we're starting at 0 and ending at 1, tell GSAP to skip the final calculation and use 0/1 as the factor.\n\n\t\tthis.ease = p => {\n\t\t\tlet point = lookup[(p * l) | 0] || lookup[l - 1];\n\t\t\tif (point.nx < p) {\n\t\t\t\tpoint = point.n;\n\t\t\t}\n\t\t\treturn point.y + ((p - point.x) / point.cx) * point.cy;\n\t\t};\n\n\t\tthis.ease.custom = this;\n\n\t\tthis.id && gsap && gsap.registerEase(this.id, this.ease);\n\n\t\treturn this;\n\t}\n\n\tgetSVGData(config) {\n\t\treturn CustomEase.getSVGData(this, config);\n\t}\n\n\tstatic create(id, data, config) {\n\t\treturn (new CustomEase(id, data, config)).ease;\n\t}\n\n\tstatic register(core) {\n\t\tgsap = core;\n\t\t_initCore();\n\t}\n\n\tstatic get(id) {\n\t\treturn gsap.parseEase(id);\n\t}\n\n\tstatic getSVGData(ease, config) {\n\t\tconfig = config || {};\n\t\tlet width = config.width || 100,\n\t\t\theight = config.height || 100,\n\t\t\tx = config.x || 0,\n\t\t\ty = (config.y || 0) + height,\n\t\t\te = gsap.utils.toArray(config.path)[0],\n\t\t\ta, slope, i, inc, tx, ty, precision, threshold, prevX, prevY;\n\t\tif (config.invert) {\n\t\t\theight = -height;\n\t\t\ty = 0;\n\t\t}\n\t\tif (typeof(ease) === \"string\") {\n\t\t\tease = gsap.parseEase(ease);\n\t\t}\n\t\tif (ease.custom) {\n\t\t\tease = ease.custom;\n\t\t}\n\t\tif (ease instanceof CustomEase) {\n\t\t\ta = rawPathToString(transformRawPath([ease.segment], width, 0, 0, -height, x, y));\n\t\t} else {\n\t\t\ta = [x, y];\n\t\t\tprecision = Math.max(5, (config.precision || 1) * 200);\n\t\t\tinc = 1 / precision;\n\t\t\tprecision += 2;\n\t\t\tthreshold = 5 / precision;\n\t\t\tprevX = _round(x + inc * width);\n\t\t\tprevY = _round(y + ease(inc) * -height);\n\t\t\tslope = (prevY - y) / (prevX - x);\n\t\t\tfor (i = 2; i < precision; i++) {\n\t\t\t\ttx = _round(x + i * inc * width);\n\t\t\t\tty = _round(y + ease(i * inc) * -height);\n\t\t\t\tif (Math.abs((ty - prevY) / (tx - prevX) - slope) > threshold || i === precision - 1) { //only add points when the slope changes beyond the threshold\n\t\t\t\t\ta.push(prevX, prevY);\n\t\t\t\t\tslope = (ty - prevY) / (tx - prevX);\n\t\t\t\t}\n\t\t\t\tprevX = tx;\n\t\t\t\tprevY = ty;\n\t\t\t}\n\t\t\ta = \"M\" + a.join(\",\");\n\t\t}\n\t\te && e.setAttribute(\"d\", a);\n\t\treturn a;\n\t}\n\n}\n\n_getGSAP() && gsap.registerPlugin(CustomEase);\n\nCustomEase.version = \"3.11.2\";\n\nexport { CustomEase as default };"],"names":["_round","value","Math","round","_svgPathExp","_scientific","_DEG2RAD","PI","_sin","sin","_cos","cos","_abs","abs","_sqrt","sqrt","arcToSegment","lastX","lastY","rx","ry","angle","largeArcFlag","sweepFlag","x","y","angleRad","cosAngle","sinAngle","TWOPI","dx2","dy2","x1","y1","x1_sq","y1_sq","radiiCheck","rx_sq","ry_sq","sq","coef","cx1","cy1","cx","cy","ux","uy","vx","vy","temp","angleStart","acos","angleExtent","isNaN","i","segments","ceil","rawPath","angleIncrement","controlLength","ma","mb","mc","md","push","length","stringToRawPath","d","line","sx","sy","ex","ey","difX","difY","segment","j","command","isRelative","startX","startY","beziers","prevCommand","flag1","flag2","a","replace","m","n","match","path","relativeX","relativeY","elements","points","errorMessage","console","log","toUpperCase","closed","substr","charAt","pop","totalPoints","_getGSAP","gsap","window","registerPlugin","_initCore","registerEase","CustomEase","create","_coreInitted","warn","_bezierToPoints","x2","y2","x3","y3","x4","y4","threshold","index","x12","y12","x23","y23","x34","y34","x123","y123","x234","y234","x1234","y1234","dx","dy","d2","d3","splice","_bonusValidated","_needsParsingExp","setData","data","config","l","a1","a2","inc","point","prevPoint","p","values","_numExp","closest","lookup","precision","fast","test","indexOf","unshift","_normalize","height","originY","max","tx","ty","_findMinimum","min","nx","ease","custom","this","id","getSVGData","register","core","get","parseEase","slope","prevX","prevY","width","e","utils","toArray","invert","rawPathToString","_isNumber","sl","s","result","transformRawPath","b","c","_dirty","join","setAttribute","version"],"mappings":"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"} \ No newline at end of file diff --git a/assets/gsap/Draggable.min.js b/assets/gsap/Draggable.min.js new file mode 100644 index 0000000..f531832 --- /dev/null +++ b/assets/gsap/Draggable.min.js @@ -0,0 +1,11 @@ +/*! + * Draggable 3.11.2 + * https://greensock.com + * + * @license Copyright 2022, GreenSock. All rights reserved. + * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. + * @author: Jack Doyle, jack@greensock.com + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).window=e.window||{})}(this,function(e){"use strict";function w(e,t){if(e.parentNode&&(h||T(e))){var n=L(e),o=n?n.getAttribute("xmlns")||"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",r=n?t?"rect":"g":"div",i=2!==t?0:100,a=3===t?100:0,l="position:absolute;display:block;pointer-events:none;margin:0;padding:0;",s=h.createElementNS?h.createElementNS(o.replace(/^https/,"http"),r):h.createElement(r);return t&&(n?(g=g||w(e),s.setAttribute("width",.01),s.setAttribute("height",.01),s.setAttribute("transform","translate("+i+","+a+")"),g.appendChild(s)):(f||((f=w(e)).style.cssText=l),s.style.cssText=l+"width:0.1px;height:0.1px;top:"+a+"px;left:"+i+"px",f.appendChild(s))),s}throw"Need document and parent."}function A(e,t,n,o,r,i,a){return e.a=t,e.b=n,e.c=o,e.d=r,e.e=i,e.f=a,e}var h,u,r,i,f,g,x,m,y,t,v="transform",b=v+"Origin",T=function _setDoc(e){var t=e.ownerDocument||e;!(v in e.style)&&"msTransform"in e.style&&(b=(v="msTransform")+"Origin");for(;t.parentNode&&(t=t.parentNode););if(u=window,x=new ge,t){r=(h=t).documentElement,i=t.body,(m=h.createElementNS("http://www.w3.org/2000/svg","g")).style.transform="none";var n=t.createElement("div"),o=t.createElement("div");i.appendChild(n),n.appendChild(o),n.style.position="static",n.style[v]="translate3d(0,0,1px)",y=o.offsetParent!==n,i.removeChild(n)}return t},D=function _forceNonZeroScale(e){for(var t,n;e&&e!==i;)(n=e._gsap)&&n.uncache&&n.get(e,"x"),n&&!n.scaleX&&!n.scaleY&&n.renderTransform&&(n.scaleX=n.scaleY=1e-4,n.renderTransform(1,n),t?t.push(n):t=[n]),e=e.parentNode;return t},E=[],M=[],S=function _getDocScrollTop(){return u.pageYOffset||h.scrollTop||r.scrollTop||i.scrollTop||0},N=function _getDocScrollLeft(){return u.pageXOffset||h.scrollLeft||r.scrollLeft||i.scrollLeft||0},L=function _svgOwner(e){return e.ownerSVGElement||("svg"===(e.tagName+"").toLowerCase()?e:null)},C=function _isFixed(e){return"fixed"===u.getComputedStyle(e).position||((e=e.parentNode)&&1===e.nodeType?_isFixed(e):void 0)},P=function _placeSiblings(e,t){var n,o,r,i,a,l,s=L(e),c=e===s,d=s?E:M,p=e.parentNode;if(e===u)return e;if(d.length||d.push(w(e,1),w(e,2),w(e,3)),n=s?g:f,s)c?(i=-(r=function _getCTM(e){var t,n=e.getCTM();return n||(t=e.style[v],e.style[v]="none",e.appendChild(m),n=m.getCTM(),e.removeChild(m),t?e.style[v]=t:e.style.removeProperty(v.replace(/([A-Z])/g,"-$1").toLowerCase())),n||x.clone()}(e)).e/r.a,a=-r.f/r.d,o=x):e.getBBox?(r=e.getBBox(),i=(o=(o=e.transform?e.transform.baseVal:{}).numberOfItems?1o.scrollHeight,a.removeChild(o),k=n,Ee=function(e){for(var t=e.split(","),n=(("onpointerdown"in s?"pointerdown,pointermove,pointerup,pointercancel":"onmspointerdown"in s?"MSPointerDown,MSPointerMove,MSPointerUp,MSPointerCancel":e).split(",")),o={},r=4;-1<--r;)o[t[r]]=n[r],o[n[r]]=t[r];try{ve.addEventListener("test",null,Object.defineProperty({},"passive",{get:function get(){d=1}}))}catch(e){}return o}("touchstart,touchmove,touchend,touchcancel"),xa(ye,"touchcancel",$),xa(me,"touchmove",$),l&&l.addEventListener("touchstart",$),xa(ye,"contextmenu",function(){for(var e in Ae)Ae[e].isPressed&&Ae[e].endDrag()}),xe=be=W()}var n,o,r,i,a;xe?(Se=xe.plugins.inertia,c=xe.utils.checkPrefix,_=c(_),Ce=c(Ce),Te=xe.utils.toArray,O=!!c("perspective")):e&&console.warn("Please gsap.registerPlugin(Draggable)")}var xe,me,ye,ve,l,s,we,be,c,Te,d,De,Ee,Me,Xe,Se,Ne,Le,O,k,n,Ye=0,_="transform",Ce="transformOrigin",Pe=Array.isArray,Oe=180/Math.PI,ke=1e20,a=new ge,_e=Date.now||function(){return(new Date).getTime()},Re=[],Ae={},Be=0,o=/^(?:a|input|textarea|button|select)$/i,Ie=0,Fe={},He={},ze=function _isRoot(e){return!(e&&e!==ve&&9!==e.nodeType&&e!==ye.body&&e!==me&&e.nodeType&&e.parentNode)},p={},We={},R=function _getElementBounds(e,t){t=Te(t)[0];var n,o,r,i,a,l,s,c,d,p,u,h,f,g=e.getBBox&&e.ownerSVGElement,x=e.ownerDocument||ye;if(e===me)r=Da(x),o=(n=Ea(x))+(x.documentElement.clientWidth||e.innerWidth||x.body.clientWidth||0),i=r+((e.innerHeight||0)-20d||l.rightp||l.bottom=l.width*l.height*n:o.width>n&&o.height>n))},Draggable);function Draggable(h,p){var e;e=Ge.call(this)||this,be||Za(1),h=Te(h)[0],Se=Se||xe.plugins.inertia,e.vars=p=pa(p||{}),e.target=h,e.x=e.y=e.rotation=0,e.dragResistance=parseFloat(p.dragResistance)||0,e.edgeResistance=isNaN(p.edgeResistance)?1:parseFloat(p.edgeResistance)||0,e.lockAxis=p.lockAxis,e.autoScroll=p.autoScroll||0,e.lockedAxis=null,e.allowEventDefault=!!p.allowEventDefault,xe.getProperty(h,"x");function Ng(e,t){return parseFloat(se.get(h,e,t))}function uh(e){return za(e),e.stopImmediatePropagation&&e.stopImmediatePropagation(),!1}function vh(e){if(q.autoScroll&&q.isDragging&&(te||P)){var t,n,o,r,i,a,l,s,c=h,d=15*q.autoScroll;for(te=!1,He.scrollTop=null!=me.pageYOffset?me.pageYOffset:null!=de.documentElement.scrollTop?de.documentElement.scrollTop:de.body.scrollTop,He.scrollLeft=null!=me.pageXOffset?me.pageXOffset:null!=de.documentElement.scrollLeft?de.documentElement.scrollLeft:de.body.scrollLeft,r=q.pointerX-He.scrollLeft,i=q.pointerY-He.scrollTop;c&&!n;)t=(n=ze(c.parentNode))?He:c.parentNode,o=n?{bottom:Math.max(ve.clientHeight,me.innerHeight||0),right:Math.max(ve.clientWidth,me.innerWidth||0),left:0,top:0}:t.getBoundingClientRect(),a=l=0,j&&((s=t._gsMaxScrollY-t.scrollTop)<0?l=s:i>o.bottom-re&&s?(te=!0,l=Math.min(s,d*(1-Math.max(0,o.bottom-i)/re)|0)):io.right-oe&&s?(te=!0,a=Math.min(s,d*(1-Math.max(0,o.right-r)/oe)|0)):rJ?(q.y=a,T+(D-a)*c):T):(R&&(s=e*R.a+t*R.c+R.e,t=e*R.b+t*R.d+R.f,e=s),(r=t-b)Math.abs(r)?"y":j?"x":null,s&&X(q.vars.onLockAxis)&&q.vars.onLockAxis.call(q,q.pointerEvent)),"y"===s?r=0:"x"===s&&(o=0)),i=ba(T+o*c),a=ba(D+r*c)),(O||k||_)&&(q.x!==i||q.y!==a&&!K)&&(_&&(Fe.x=i,Fe.y=a,s=_(Fe),i=ba(s.x),a=ba(s.y)),O&&(i=ba(O(i))),k&&(a=ba(k(a)))),E&&(Ma._gsMaxScrollY&&(a.scrollTop=a._gsMaxScrollY),$&&a.scrollLeft>a._gsMaxScrollX&&(a.scrollLeft=a._gsMaxScrollX),i=a;q.isThrowing&&(r||q.endX>M||q.endXN||q.endY {\n\t\tlet doc = element.ownerDocument || element;\n\t\tif (!(_transformProp in element.style) && \"msTransform\" in element.style) { //to improve compatibility with old Microsoft browsers\n\t\t\t_transformProp = \"msTransform\";\n\t\t\t_transformOriginProp = _transformProp + \"Origin\";\n\t\t}\n\t\twhile (doc.parentNode && (doc = doc.parentNode)) {\t}\n\t\t_win = window;\n\t\t_identityMatrix = new Matrix2D();\n\t\tif (doc) {\n\t\t\t_doc = doc;\n\t\t\t_docElement = doc.documentElement;\n\t\t\t_body = doc.body;\n\t\t\t_gEl = _doc.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n\t\t\t// prevent any existing CSS from transforming it\n\t\t\t_gEl.style.transform = \"none\";\n\t\t\t// now test for the offset reporting bug. Use feature detection instead of browser sniffing to make things more bulletproof and future-proof. Hopefully Safari will fix their bug soon but it's 2020 and it's still not fixed.\n\t\t\tlet d1 = doc.createElement(\"div\"),\n\t\t\t\td2 = doc.createElement(\"div\");\n\t\t\t_body.appendChild(d1);\n\t\t\td1.appendChild(d2);\n\t\t\td1.style.position = \"static\";\n\t\t\td1.style[_transformProp] = \"translate3d(0,0,1px)\";\n\t\t\t_hasOffsetBug = (d2.offsetParent !== d1);\n\t\t\t_body.removeChild(d1);\n\t\t}\n\t\treturn doc;\n\t},\n\t_forceNonZeroScale = e => { // walks up the element's ancestors and finds any that had their scale set to 0 via GSAP, and changes them to 0.0001 to ensure that measurements work. Firefox has a bug that causes it to incorrectly report getBoundingClientRect() when scale is 0.\n\t\tlet a, cache;\n\t\twhile (e && e !== _body) {\n\t\t\tcache = e._gsap;\n\t\t\tcache && cache.uncache && cache.get(e, \"x\"); // force re-parsing of transforms if necessary\n\t\t\tif (cache && !cache.scaleX && !cache.scaleY && cache.renderTransform) {\n\t\t\t\tcache.scaleX = cache.scaleY = 1e-4;\n\t\t\t\tcache.renderTransform(1, cache);\n\t\t\t\ta ? a.push(cache) : (a = [cache]);\n\t\t\t}\n\t\t\te = e.parentNode;\n\t\t}\n\t\treturn a;\n\t},\n\t// possible future addition: pass an element to _forceDisplay() and it'll walk up all its ancestors and make sure anything with display: none is set to display: block, and if there's no parentNode, it'll add it to the body. It returns an Array that you can then feed to _revertDisplay() to have it revert all the changes it made.\n\t// _forceDisplay = e => {\n\t// \tlet a = [],\n\t// \t\tparent;\n\t// \twhile (e && e !== _body) {\n\t// \t\tparent = e.parentNode;\n\t// \t\t(_win.getComputedStyle(e).display === \"none\" || !parent) && a.push(e, e.style.display, parent) && (e.style.display = \"block\");\n\t// \t\tparent || _body.appendChild(e);\n\t// \t\te = parent;\n\t// \t}\n\t// \treturn a;\n\t// },\n\t// _revertDisplay = a => {\n\t// \tfor (let i = 0; i < a.length; i+=3) {\n\t// \t\ta[i+1] ? (a[i].style.display = a[i+1]) : a[i].style.removeProperty(\"display\");\n\t// \t\ta[i+2] || a[i].parentNode.removeChild(a[i]);\n\t// \t}\n\t// },\n\t_svgTemps = [], //we create 3 elements for SVG, and 3 for other DOM elements and cache them for performance reasons. They get nested in _divContainer and _svgContainer so that just one element is added to the DOM on each successive attempt. Again, performance is key.\n\t_divTemps = [],\n\t_getDocScrollTop = () => _win.pageYOffset || _doc.scrollTop || _docElement.scrollTop || _body.scrollTop || 0,\n\t_getDocScrollLeft = () => _win.pageXOffset || _doc.scrollLeft || _docElement.scrollLeft || _body.scrollLeft || 0,\n\t_svgOwner = element => element.ownerSVGElement || ((element.tagName + \"\").toLowerCase() === \"svg\" ? element : null),\n\t_isFixed = element => {\n\t\tif (_win.getComputedStyle(element).position === \"fixed\") {\n\t\t\treturn true;\n\t\t}\n\t\telement = element.parentNode;\n\t\tif (element && element.nodeType === 1) { // avoid document fragments which will throw an error.\n\t\t\treturn _isFixed(element);\n\t\t}\n\t},\n\t_createSibling = (element, i) => {\n\t\tif (element.parentNode && (_doc || _setDoc(element))) {\n\t\t\tlet svg = _svgOwner(element),\n\t\t\t\tns = svg ? (svg.getAttribute(\"xmlns\") || \"http://www.w3.org/2000/svg\") : \"http://www.w3.org/1999/xhtml\",\n\t\t\t\ttype = svg ? (i ? \"rect\" : \"g\") : \"div\",\n\t\t\t\tx = i !== 2 ? 0 : 100,\n\t\t\t\ty = i === 3 ? 100 : 0,\n\t\t\t\tcss = \"position:absolute;display:block;pointer-events:none;margin:0;padding:0;\",\n\t\t\t\te = _doc.createElementNS ? _doc.createElementNS(ns.replace(/^https/, \"http\"), type) : _doc.createElement(type);\n\t\t\tif (i) {\n\t\t\t\tif (!svg) {\n\t\t\t\t\tif (!_divContainer) {\n\t\t\t\t\t\t_divContainer = _createSibling(element);\n\t\t\t\t\t\t_divContainer.style.cssText = css;\n\t\t\t\t\t}\n\t\t\t\t\te.style.cssText = css + \"width:0.1px;height:0.1px;top:\" + y + \"px;left:\" + x + \"px\";\n\t\t\t\t\t_divContainer.appendChild(e);\n\n\t\t\t\t} else {\n\t\t\t\t\t_svgContainer || (_svgContainer = _createSibling(element));\n\t\t\t\t\te.setAttribute(\"width\", 0.01);\n\t\t\t\t\te.setAttribute(\"height\", 0.01);\n\t\t\t\t\te.setAttribute(\"transform\", \"translate(\" + x + \",\" + y + \")\");\n\t\t\t\t\t_svgContainer.appendChild(e);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn e;\n\t\t}\n\t\tthrow \"Need document and parent.\";\n\t},\n\t_consolidate = m => { // replaces SVGTransformList.consolidate() because a bug in Firefox causes it to break pointer events. See https://greensock.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n\t\tlet c = new Matrix2D(),\n\t\t\ti = 0;\n\t\tfor (; i < m.numberOfItems; i++) {\n\t\t\tc.multiply(m.getItem(i).matrix);\n\t\t}\n\t\treturn c;\n\t},\n\t_getCTM = svg => {\n\t\tlet m = svg.getCTM(),\n\t\t\ttransform;\n\t\tif (!m) { // Firefox returns null for getCTM() on root elements, so this is a workaround using a that we temporarily append.\n\t\t\ttransform = svg.style[_transformProp];\n\t\t\tsvg.style[_transformProp] = \"none\"; // a bug in Firefox causes css transforms to contaminate the getCTM()\n\t\t\tsvg.appendChild(_gEl);\n\t\t\tm = _gEl.getCTM();\n\t\t\tsvg.removeChild(_gEl);\n\t\t\ttransform ? (svg.style[_transformProp] = transform) : svg.style.removeProperty(_transformProp.replace(/([A-Z])/g, \"-$1\").toLowerCase());\n\t\t}\n\t\treturn m || _identityMatrix.clone(); // Firefox will still return null if the has a width/height of 0 in the browser.\n\t},\n\t_placeSiblings = (element, adjustGOffset) => {\n\t\tlet svg = _svgOwner(element),\n\t\t\tisRootSVG = element === svg,\n\t\t\tsiblings = svg ? _svgTemps : _divTemps,\n\t\t\tparent = element.parentNode,\n\t\t\tcontainer, m, b, x, y, cs;\n\t\tif (element === _win) {\n\t\t\treturn element;\n\t\t}\n\t\tsiblings.length || siblings.push(_createSibling(element, 1), _createSibling(element, 2), _createSibling(element, 3));\n\t\tcontainer = svg ? _svgContainer : _divContainer;\n\t\tif (svg) {\n\t\t\tif (isRootSVG) {\n\t\t\t\tb = _getCTM(element);\n\t\t\t\tx = -b.e / b.a;\n\t\t\t\ty = -b.f / b.d;\n\t\t\t\tm = _identityMatrix;\n\t\t\t} else if (element.getBBox) {\n\t\t\t\tb = element.getBBox();\n\t\t\t\tm = element.transform ? element.transform.baseVal : {}; // IE11 doesn't follow the spec.\n\t\t\t\tm = !m.numberOfItems ? _identityMatrix : m.numberOfItems > 1 ? _consolidate(m) : m.getItem(0).matrix; // don't call m.consolidate().matrix because a bug in Firefox makes pointer events not work when consolidate() is called on the same tick as getBoundingClientRect()! See https://greensock.com/forums/topic/23248-touch-is-not-working-on-draggable-in-firefox-windows-v324/?tab=comments#comment-109800\n\t\t\t\tx = m.a * b.x + m.c * b.y;\n\t\t\t\ty = m.b * b.x + m.d * b.y;\n\t\t\t} else { // may be a which has no getBBox() so just use defaults instead of throwing errors.\n\t\t\t\tm = new Matrix2D();\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\tif (adjustGOffset && element.tagName.toLowerCase() === \"g\") {\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\t(isRootSVG ? svg : parent).appendChild(container);\n\t\t\tcontainer.setAttribute(\"transform\", \"matrix(\" + m.a + \",\" + m.b + \",\" + m.c + \",\" + m.d + \",\" + (m.e + x) + \",\" + (m.f + y) + \")\");\n\t\t} else {\n\t\t\tx = y = 0;\n\t\t\tif (_hasOffsetBug) { // some browsers (like Safari) have a bug that causes them to misreport offset values. When an ancestor element has a transform applied, it's supposed to treat it as if it's position: relative (new context). Safari botches this, so we need to find the closest ancestor (between the element and its offsetParent) that has a transform applied and if one is found, grab its offsetTop/Left and subtract them to compensate.\n\t\t\t\tm = element.offsetParent;\n\t\t\t\tb = element;\n\t\t\t\twhile (b && (b = b.parentNode) && b !== m && b.parentNode) {\n\t\t\t\t\tif ((_win.getComputedStyle(b)[_transformProp] + \"\").length > 4) {\n\t\t\t\t\t\tx = b.offsetLeft;\n\t\t\t\t\t\ty = b.offsetTop;\n\t\t\t\t\t\tb = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcs = _win.getComputedStyle(element);\n\t\t\tif (cs.position !== \"absolute\" && cs.position !== \"fixed\") {\n\t\t\t\tm = element.offsetParent;\n\t\t\t\twhile (parent && parent !== m) { // if there's an ancestor element between the element and its offsetParent that's scrolled, we must factor that in.\n\t\t\t\t\tx += parent.scrollLeft || 0;\n\t\t\t\t\ty += parent.scrollTop || 0;\n\t\t\t\t\tparent = parent.parentNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\tb = container.style;\n\t\t\tb.top = (element.offsetTop - y) + \"px\";\n\t\t\tb.left = (element.offsetLeft - x) + \"px\";\n\t\t\tb[_transformProp] = cs[_transformProp];\n\t\t\tb[_transformOriginProp] = cs[_transformOriginProp];\n\t\t\t// b.border = m.border;\n\t\t\t// b.borderLeftStyle = m.borderLeftStyle;\n\t\t\t// b.borderTopStyle = m.borderTopStyle;\n\t\t\t// b.borderLeftWidth = m.borderLeftWidth;\n\t\t\t// b.borderTopWidth = m.borderTopWidth;\n\t\t\tb.position = cs.position === \"fixed\" ? \"fixed\" : \"absolute\";\n\t\t\telement.parentNode.appendChild(container);\n\t\t}\n\t\treturn container;\n\t},\n\t_setMatrix = (m, a, b, c, d, e, f) => {\n\t\tm.a = a;\n\t\tm.b = b;\n\t\tm.c = c;\n\t\tm.d = d;\n\t\tm.e = e;\n\t\tm.f = f;\n\t\treturn m;\n\t};\n\nexport class Matrix2D {\n\tconstructor(a=1, b=0, c=0, d=1, e=0, f=0) {\n\t\t_setMatrix(this, a, b, c, d, e, f);\n\t}\n\n\tinverse() {\n\t\tlet {a, b, c, d, e, f} = this,\n\t\t\tdeterminant = (a * d - b * c) || 1e-10;\n\t\treturn _setMatrix(\n\t\t\tthis,\n\t\t\td / determinant,\n\t\t\t-b / determinant,\n\t\t\t-c / determinant,\n\t\t\ta / determinant,\n\t\t\t(c * f - d * e) / determinant,\n\t\t\t-(a * f - b * e) / determinant\n\t\t);\n\t}\n\n\tmultiply(matrix) {\n\t\tlet {a, b, c, d, e, f} = this,\n\t\t\ta2 = matrix.a,\n\t\t\tb2 = matrix.c,\n\t\t\tc2 = matrix.b,\n\t\t\td2 = matrix.d,\n\t\t\te2 = matrix.e,\n\t\t\tf2 = matrix.f;\n\t\treturn _setMatrix(this,\n\t\t\ta2 * a + c2 * c,\n\t\t\ta2 * b + c2 * d,\n\t\t\tb2 * a + d2 * c,\n\t\t\tb2 * b + d2 * d,\n\t\t\te + e2 * a + f2 * c,\n\t\t\tf + e2 * b + f2 * d);\n\t}\n\n\tclone() {\n\t\treturn new Matrix2D(this.a, this.b, this.c, this.d, this.e, this.f);\n\t}\n\n\tequals(matrix) {\n\t\tlet {a, b, c, d, e, f} = this;\n\t\treturn (a === matrix.a && b === matrix.b && c === matrix.c && d === matrix.d && e === matrix.e && f === matrix.f);\n\t}\n\n\tapply(point, decoratee={}) {\n\t\tlet {x, y} = point,\n\t\t\t{a, b, c, d, e, f} = this;\n\t\tdecoratee.x = (x * a + y * c + e) || 0;\n\t\tdecoratee.y = (x * b + y * d + f) || 0;\n\t\treturn decoratee;\n\t}\n\n}\n\n// Feed in an element and it'll return a 2D matrix (optionally inverted) so that you can translate between coordinate spaces.\n// Inverting lets you translate a global point into a local coordinate space. No inverting lets you go the other way.\n// We needed this to work around various browser bugs, like Firefox doesn't accurately report getScreenCTM() when there\n// are transforms applied to ancestor elements.\n// The matrix math to convert any x/y coordinate is as follows, which is wrapped in a convenient apply() method of Matrix2D above:\n// tx = m.a * x + m.c * y + m.e\n// ty = m.b * x + m.d * y + m.f\nexport function getGlobalMatrix(element, inverse, adjustGOffset, includeScrollInFixed) { // adjustGOffset is typically used only when grabbing an element's PARENT's global matrix, and it ignores the x/y offset of any SVG elements because they behave in a special way.\n\tif (!element || !element.parentNode || (_doc || _setDoc(element)).documentElement === element) {\n\t\treturn new Matrix2D();\n\t}\n\tlet zeroScales = _forceNonZeroScale(element),\n\t\tsvg = _svgOwner(element),\n\t\ttemps = svg ? _svgTemps : _divTemps,\n\t\tcontainer = _placeSiblings(element, adjustGOffset),\n\t\tb1 = temps[0].getBoundingClientRect(),\n\t\tb2 = temps[1].getBoundingClientRect(),\n\t\tb3 = temps[2].getBoundingClientRect(),\n\t\tparent = container.parentNode,\n\t\tisFixed = !includeScrollInFixed && _isFixed(element),\n\t\tm = new Matrix2D(\n\t\t\t(b2.left - b1.left) / 100,\n\t\t\t(b2.top - b1.top) / 100,\n\t\t\t(b3.left - b1.left) / 100,\n\t\t\t(b3.top - b1.top) / 100,\n\t\t\tb1.left + (isFixed ? 0 : _getDocScrollLeft()),\n\t\t\tb1.top + (isFixed ? 0 : _getDocScrollTop())\n\t\t);\n\tparent.removeChild(container);\n\tif (zeroScales) {\n\t\tb1 = zeroScales.length;\n\t\twhile (b1--) {\n\t\t\tb2 = zeroScales[b1];\n\t\t\tb2.scaleX = b2.scaleY = 0;\n\t\t\tb2.renderTransform(1, b2);\n\t\t}\n\t}\n\treturn inverse ? m.inverse() : m;\n}\n\nexport { _getDocScrollTop, _getDocScrollLeft, _setDoc, _isFixed, _getCTM };\n\n// export function getMatrix(element) {\n// \t_doc || _setDoc(element);\n// \tlet m = (_win.getComputedStyle(element)[_transformProp] + \"\").substr(7).match(/[-.]*\\d+[.e\\-+]*\\d*[e\\-\\+]*\\d*/g),\n// \t\tis2D = m && m.length === 6;\n// \treturn !m || m.length < 6 ? new Matrix2D() : new Matrix2D(+m[0], +m[1], +m[is2D ? 2 : 4], +m[is2D ? 3 : 5], +m[is2D ? 4 : 12], +m[is2D ? 5 : 13]);\n// }","/*!\n * Draggable 3.11.2\n * https://greensock.com\n *\n * @license Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n */\n/* eslint-disable */\n\nimport { getGlobalMatrix, Matrix2D } from \"./utils/matrix.js\";\n\nlet gsap, _win, _doc, _docElement, _body, _tempDiv, _placeholderDiv, _coreInitted, _checkPrefix, _toArray, _supportsPassive, _isTouchDevice, _touchEventLookup, _isMultiTouching, _isAndroid, InertiaPlugin, _defaultCursor, _supportsPointer,\n\t_dragCount = 0,\n\t_windowExists = () => typeof(window) !== \"undefined\",\n\t_getGSAP = () => gsap || (_windowExists() && (gsap = window.gsap) && gsap.registerPlugin && gsap),\n\t_isFunction = value => typeof(value) === \"function\",\n\t_isObject = value => typeof(value) === \"object\",\n\t_isUndefined = value => typeof(value) === \"undefined\",\n\t_emptyFunc = () => false,\n\t_transformProp = \"transform\",\n\t_transformOriginProp = \"transformOrigin\",\n\t_round = value => Math.round(value * 10000) / 10000,\n\t_isArray = Array.isArray,\n\t_createElement = (type, ns) => {\n\t\tlet e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\t\treturn e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://greensock.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n\t},\n\t_RAD2DEG = 180 / Math.PI,\n\t_bigNum = 1e20,\n\t_identityMatrix = new Matrix2D(),\n\t_getTime = Date.now || (() => new Date().getTime()),\n\t_renderQueue = [],\n\t_lookup = {}, //when a Draggable is created, the target gets a unique _gsDragID property that allows gets associated with the Draggable instance for quick lookups in Draggable.get(). This avoids circular references that could cause gc problems.\n\t_lookupCount = 0,\n\t_clickableTagExp = /^(?:a|input|textarea|button|select)$/i,\n\t_lastDragTime = 0,\n\t_temp1 = {}, // a simple object we reuse and populate (usually x/y properties) to conserve memory and improve performance.\n\t_windowProxy = {}, //memory/performance optimization - we reuse this object during autoScroll to store window-related bounds/offsets.\n\t_copy = (obj, factor) => {\n\t\tlet copy = {}, p;\n\t\tfor (p in obj) {\n\t\t\tcopy[p] = factor ? obj[p] * factor : obj[p];\n\t\t}\n\t\treturn copy;\n\t},\n\t_extend = (obj, defaults) => {\n\t\tfor (let p in defaults) {\n\t\t\tif (!(p in obj)) {\n\t\t\t\tobj[p] = defaults[p];\n\t\t\t}\n\t\t}\n\t\treturn obj;\n\t},\n\t_setTouchActionForAllDescendants = (elements, value) => {\n\t\tlet i = elements.length,\n\t\t\tchildren;\n\t\twhile (i--) {\n\t\t\tvalue ? (elements[i].style.touchAction = value) : elements[i].style.removeProperty(\"touch-action\");\n\t\t\tchildren = elements[i].children;\n\t\t\tchildren && children.length && _setTouchActionForAllDescendants(children, value);\n\t\t}\n\t},\n\t_renderQueueTick = () => _renderQueue.forEach(func => func()),\n\t_addToRenderQueue = func => {\n\t\t_renderQueue.push(func);\n\t\tif (_renderQueue.length === 1) {\n\t\t\tgsap.ticker.add(_renderQueueTick);\n\t\t}\n\t},\n\t_renderQueueTimeout = () => !_renderQueue.length && gsap.ticker.remove(_renderQueueTick),\n\t_removeFromRenderQueue = func => {\n\t\tlet i = _renderQueue.length;\n\t\twhile (i--) {\n\t\t\tif (_renderQueue[i] === func) {\n\t\t\t\t_renderQueue.splice(i, 1);\n\t\t\t}\n\t\t}\n\t\tgsap.to(_renderQueueTimeout, {overwrite:true, delay:15, duration:0, onComplete:_renderQueueTimeout, data:\"_draggable\"}); //remove the \"tick\" listener only after the render queue is empty for 15 seconds (to improve performance). Adding/removing it constantly for every click/touch wouldn't deliver optimal speed, and we also don't want the ticker to keep calling the render method when things are idle for long periods of time (we want to improve battery life on mobile devices).\n\t},\n\t_setDefaults = (obj, defaults) => {\n\t\tfor (let p in defaults) {\n\t\t\tif (!(p in obj)) {\n\t\t\t\tobj[p] = defaults[p];\n\t\t\t}\n\t\t}\n\t\treturn obj;\n\t},\n\t_addListener = (element, type, func, capture) => {\n\t\tif (element.addEventListener) {\n\t\t\tlet touchType = _touchEventLookup[type];\n\t\t\tcapture = capture || (_supportsPassive ? {passive: false} : null);\n\t\t\telement.addEventListener(touchType || type, func, capture);\n\t\t\t(touchType && type !== touchType) && element.addEventListener(type, func, capture);//some browsers actually support both, so must we. But pointer events cover all.\n\t\t}\n\t},\n\t_removeListener = (element, type, func) => {\n\t\tif (element.removeEventListener) {\n\t\t\tlet touchType = _touchEventLookup[type];\n\t\t\telement.removeEventListener(touchType || type, func);\n\t\t\t(touchType && type !== touchType) && element.removeEventListener(type, func);\n\t\t}\n\t},\n\t_preventDefault = event => {\n\t\tevent.preventDefault && event.preventDefault();\n\t\tevent.preventManipulation && event.preventManipulation(); //for some Microsoft browsers\n\t},\n\t_hasTouchID = (list, ID) => {\n\t\tlet i = list.length;\n\t\twhile (i--) {\n\t\t\tif (list[i].identifier === ID) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t},\n\t_onMultiTouchDocumentEnd = event => {\n\t\t_isMultiTouching = (event.touches && _dragCount < event.touches.length);\n\t\t_removeListener(event.target, \"touchend\", _onMultiTouchDocumentEnd);\n\t},\n\n\t_onMultiTouchDocument = event => {\n\t\t_isMultiTouching = (event.touches && _dragCount < event.touches.length);\n\t\t_addListener(event.target, \"touchend\", _onMultiTouchDocumentEnd);\n\t},\n\t_getDocScrollTop = doc => _win.pageYOffset || doc.scrollTop || doc.documentElement.scrollTop || doc.body.scrollTop || 0,\n\t_getDocScrollLeft = doc => _win.pageXOffset || doc.scrollLeft || doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,\n\t_addScrollListener = (e, callback) => {\n\t\t_addListener(e, \"scroll\", callback);\n\t\tif (!_isRoot(e.parentNode)) {\n\t\t\t_addScrollListener(e.parentNode, callback);\n\t\t}\n\t},\n\t_removeScrollListener = (e, callback) => {\n\t\t_removeListener(e, \"scroll\", callback);\n\t\tif (!_isRoot(e.parentNode)) {\n\t\t\t_removeScrollListener(e.parentNode, callback);\n\t\t}\n\t},\n\t_isRoot = e => !!(!e || e === _docElement || e.nodeType === 9 || e === _doc.body || e === _win || !e.nodeType || !e.parentNode),\n\t_getMaxScroll = (element, axis) => {\n\t\tlet dim = (axis === \"x\") ? \"Width\" : \"Height\",\n\t\t\tscroll = \"scroll\" + dim,\n\t\t\tclient = \"client\" + dim;\n\t\treturn Math.max(0, _isRoot(element) ? Math.max(_docElement[scroll], _body[scroll]) - (_win[\"inner\" + dim] || _docElement[client] || _body[client]) : element[scroll] - element[client]);\n\t},\n\t_recordMaxScrolls = (e, skipCurrent) => { //records _gsMaxScrollX and _gsMaxScrollY properties for the element and all ancestors up the chain so that we can cap it, otherwise dragging beyond the edges with autoScroll on can endlessly scroll.\n\t\tlet x = _getMaxScroll(e, \"x\"),\n\t\t\ty = _getMaxScroll(e, \"y\");\n\t\tif (_isRoot(e)) {\n\t\t\te = _windowProxy;\n\t\t} else {\n\t\t\t_recordMaxScrolls(e.parentNode, skipCurrent);\n\t\t}\n\t\te._gsMaxScrollX = x;\n\t\te._gsMaxScrollY = y;\n\t\tif (!skipCurrent) {\n\t\t\te._gsScrollX = e.scrollLeft || 0;\n\t\t\te._gsScrollY = e.scrollTop || 0;\n\t\t}\n\t},\n\t_setStyle = (element, property, value) => {\n\t\tlet style = element.style;\n\t\tif (!style) {\n\t\t\treturn;\n\t\t}\n\t\tif (_isUndefined(style[property])) {\n\t\t\tproperty = _checkPrefix(property, element) || property;\n\t\t}\n\t\tif (value == null) {\n\t\t\tstyle.removeProperty && style.removeProperty(property.replace(/([A-Z])/g, \"-$1\").toLowerCase());\n\t\t} else {\n\t\t\tstyle[property] = value;\n\t\t}\n\t},\n\t_getComputedStyle = element => _win.getComputedStyle((element instanceof Element) ? element : element.host || (element.parentNode || {}).host || element), //the \"host\" stuff helps to accommodate ShadowDom objects.\n\n\t_tempRect = {}, //reuse to reduce garbage collection tasks\n\t_parseRect = e => { //accepts a DOM element, a mouse event, or a rectangle object and returns the corresponding rectangle with left, right, width, height, top, and bottom properties\n\t\tif (e === _win) {\n\t\t\t_tempRect.left = _tempRect.top = 0;\n\t\t\t_tempRect.width = _tempRect.right = _docElement.clientWidth || e.innerWidth || _body.clientWidth || 0;\n\t\t\t_tempRect.height = _tempRect.bottom = ((e.innerHeight || 0) - 20 < _docElement.clientHeight) ? _docElement.clientHeight : e.innerHeight || _body.clientHeight || 0;\n\t\t\treturn _tempRect;\n\t\t}\n\t\tlet doc = e.ownerDocument || _doc,\n\t\t\tr = !_isUndefined(e.pageX) ? {left: e.pageX - _getDocScrollLeft(doc), top: e.pageY - _getDocScrollTop(doc), right: e.pageX - _getDocScrollLeft(doc) + 1, bottom: e.pageY - _getDocScrollTop(doc) + 1} : (!e.nodeType && !_isUndefined(e.left) && !_isUndefined(e.top)) ? e : _toArray(e)[0].getBoundingClientRect();\n\t\tif (_isUndefined(r.right) && !_isUndefined(r.width)) {\n\t\t\tr.right = r.left + r.width;\n\t\t\tr.bottom = r.top + r.height;\n\t\t} else if (_isUndefined(r.width)) { //some browsers don't include width and height properties. We can't just set them directly on r because some browsers throw errors, so create a new generic object.\n\t\t\tr = {width: r.right - r.left, height: r.bottom - r.top, right: r.right, left: r.left, bottom: r.bottom, top: r.top};\n\t\t}\n\t\treturn r;\n\t},\n\n\t_dispatchEvent = (target, type, callbackName) => {\n\t\tlet vars = target.vars,\n\t\t\tcallback = vars[callbackName],\n\t\t\tlisteners = target._listeners[type],\n\t\t\tresult;\n\t\tif (_isFunction(callback)) {\n\t\t\tresult = callback.apply(vars.callbackScope || target, vars[callbackName + \"Params\"] || [target.pointerEvent]);\n\t\t}\n\t\tif (listeners && target.dispatchEvent(type) === false) {\n\t\t\tresult = false;\n\t\t}\n\t\treturn result;\n\t},\n\t_getBounds = (target, context) => { //accepts any of the following: a DOM element, jQuery object, selector text, or an object defining bounds as {top, left, width, height} or {minX, maxX, minY, maxY}. Returns an object with left, top, width, and height properties.\n\t\tlet e = _toArray(target)[0],\n\t\t\ttop, left, offset;\n\t\tif (!e.nodeType && e !== _win) {\n\t\t\tif (!_isUndefined(target.left)) {\n\t\t\t\toffset = {x:0, y:0}; //_getOffsetTransformOrigin(context); //the bounds should be relative to the origin\n\t\t\t\treturn {left: target.left - offset.x, top: target.top - offset.y, width: target.width, height: target.height};\n\t\t\t}\n\t\t\tleft = target.min || target.minX || target.minRotation || 0;\n\t\t\ttop = target.min || target.minY || 0;\n\t\t\treturn {left:left, top:top, width:(target.max || target.maxX || target.maxRotation || 0) - left, height:(target.max || target.maxY || 0) - top};\n\t\t}\n\t\treturn _getElementBounds(e, context);\n\t},\n\t_point1 = {}, //we reuse to minimize garbage collection tasks.\n\t_getElementBounds = (element, context) => {\n\t\tcontext = _toArray(context)[0];\n\t\tlet isSVG = (element.getBBox && element.ownerSVGElement),\n\t\t\tdoc = element.ownerDocument || _doc,\n\t\t\tleft, right, top, bottom, matrix, p1, p2, p3, p4, bbox, width, height, cs;\n\t\tif (element === _win) {\n\t\t\ttop = _getDocScrollTop(doc);\n\t\t\tleft = _getDocScrollLeft(doc);\n\t\t\tright = left + (doc.documentElement.clientWidth || element.innerWidth || doc.body.clientWidth || 0);\n\t\t\tbottom = top + (((element.innerHeight || 0) - 20 < doc.documentElement.clientHeight) ? doc.documentElement.clientHeight : element.innerHeight || doc.body.clientHeight || 0); //some browsers (like Firefox) ignore absolutely positioned elements, and collapse the height of the documentElement, so it could be 8px, for example, if you have just an absolutely positioned div. In that case, we use the innerHeight to resolve this.\n\t\t} else if (context === _win || _isUndefined(context)) {\n\t\t\treturn element.getBoundingClientRect();\n\t\t} else {\n\t\t\tleft = top = 0;\n\t\t\tif (isSVG) {\n\t\t\t\tbbox = element.getBBox();\n\t\t\t\twidth = bbox.width;\n\t\t\t\theight = bbox.height;\n\t\t\t} else {\n\t\t\t\tif (element.viewBox && (bbox = element.viewBox.baseVal)) {\n\t\t\t\t\tleft = bbox.x || 0;\n\t\t\t\t\ttop = bbox.y || 0;\n\t\t\t\t\twidth = bbox.width;\n\t\t\t\t\theight = bbox.height;\n\t\t\t\t}\n\t\t\t\tif (!width) {\n\t\t\t\t\tcs = _getComputedStyle(element);\n\t\t\t\t\tbbox = cs.boxSizing === \"border-box\";\n\t\t\t\t\twidth = (parseFloat(cs.width) || element.clientWidth || 0) + (bbox ? 0 : parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth));\n\t\t\t\t\theight = (parseFloat(cs.height) || element.clientHeight || 0) + (bbox ? 0 : parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth));\n\t\t\t\t}\n\t\t\t}\n\t\t\tright = width;\n\t\t\tbottom = height;\n\t\t}\n\t\tif (element === context) {\n\t\t\treturn {left:left, top:top, width: right - left, height: bottom - top};\n\t\t}\n\t\tmatrix = getGlobalMatrix(context, true).multiply(getGlobalMatrix(element));\n\t\tp1 = matrix.apply({x:left, y:top});\n\t\tp2 = matrix.apply({x:right, y:top});\n\t\tp3 = matrix.apply({x:right, y:bottom});\n\t\tp4 = matrix.apply({x:left, y:bottom});\n\t\tleft = Math.min(p1.x, p2.x, p3.x, p4.x);\n\t\ttop = Math.min(p1.y, p2.y, p3.y, p4.y);\n\t\treturn {left: left, top: top, width: Math.max(p1.x, p2.x, p3.x, p4.x) - left, height: Math.max(p1.y, p2.y, p3.y, p4.y) - top};\n\t},\n\t_parseInertia = (draggable, snap, max, min, factor, forceZeroVelocity) => {\n\t\tlet vars = {},\n\t\t\ta, i, l;\n\t\tif (snap) {\n\t\t\tif (factor !== 1 && snap instanceof Array) { //some data must be altered to make sense, like if the user passes in an array of rotational values in degrees, we must convert it to radians. Or for scrollLeft and scrollTop, we invert the values.\n\t\t\t\tvars.end = a = [];\n\t\t\t\tl = snap.length;\n\t\t\t\tif (_isObject(snap[0])) { //if the array is populated with objects, like points ({x:100, y:200}), make copies before multiplying by the factor, otherwise we'll mess up the originals and the user may reuse it elsewhere.\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\ta[i] = _copy(snap[i], factor);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\t\ta[i] = snap[i] * factor;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmax += 1.1; //allow 1.1 pixels of wiggle room when snapping in order to work around some browser inconsistencies in the way bounds are reported which can make them roughly a pixel off. For example, if \"snap:[-$('#menu').width(), 0]\" was defined and #menu had a wrapper that was used as the bounds, some browsers would be one pixel off, making the minimum -752 for example when snap was [-753,0], thus instead of snapping to -753, it would snap to 0 since -753 was below the minimum.\n\t\t\t\tmin -= 1.1;\n\t\t\t} else if (_isFunction(snap)) {\n\t\t\t\tvars.end = value => {\n\t\t\t\t\tlet result = snap.call(draggable, value),\n\t\t\t\t\t\tcopy, p;\n\t\t\t\t\tif (factor !== 1) {\n\t\t\t\t\t\tif (_isObject(result)) {\n\t\t\t\t\t\t\tcopy = {};\n\t\t\t\t\t\t\tfor (p in result) {\n\t\t\t\t\t\t\t\tcopy[p] = result[p] * factor;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresult = copy;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult *= factor;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn result; //we need to ensure that we can scope the function call to the Draggable instance itself so that users can access important values like maxX, minX, maxY, minY, x, and y from within that function.\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tvars.end = snap;\n\t\t\t}\n\t\t}\n\t\tif (max || max === 0) {\n\t\t\tvars.max = max;\n\t\t}\n\t\tif (min || min === 0) {\n\t\t\tvars.min = min;\n\t\t}\n\t\tif (forceZeroVelocity) {\n\t\t\tvars.velocity = 0;\n\t\t}\n\t\treturn vars;\n\t},\n\t_isClickable = element => { //sometimes it's convenient to mark an element as clickable by adding a data-clickable=\"true\" attribute (in which case we won't preventDefault() the mouse/touch event). This method checks if the element is an , . Skip the vendor prefixed ones.\n\t\t\t\t\tif (!+p && !_prefixExp.test(p) && cs[p] && typeof style[p] === \"string\" && p !== \"0\") {\n\t\t\t\t\t\tstyle[p] = cs[p];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.top = top;\n\t\t\t\tstyle.left = left;\n\t\t\t} else {\n\t\t\t\tstyle.cssText = element._stOrig;\n\t\t\t}\n\t\t\tgsap.core.getCache(element).uncache = 1;\n\t\t\tparent.appendChild(element);\n\t\t}\n\t},\n\t// _mergeAnimations = animations => {\n\t// \tlet tl = gsap.timeline({smoothChildTiming: true}).startTime(Math.min(...animations.map(a => a.globalTime(0))));\n\t// \tanimations.forEach(a => {let time = a.totalTime(); tl.add(a); a.totalTime(time); });\n\t// \ttl.smoothChildTiming = false;\n\t// \treturn tl;\n\t// },\n\n\t// returns a function that can be used to tween the scroll position in the direction provided, and when doing so it'll add a .tween property to the FUNCTION itself, and remove it when the tween completes or gets killed. This gives us a way to have multiple ScrollTriggers use a central function for any given scroller and see if there's a scroll tween running (which would affect if/how things get updated)\n\t_getTweenCreator = (scroller, direction) => {\n\t\tlet getScroll = _getScrollFunc(scroller, direction),\n\t\t\tprop = \"_scroll\" + direction.p2, // add a tweenable property to the scroller that's a getter/setter function, like _scrollTop or _scrollLeft. This way, if someone does gsap.killTweensOf(scroller) it'll kill the scroll tween.\n\t\t\tlastScroll1, lastScroll2,\n\t\t\tgetTween = (scrollTo, vars, initialValue, change1, change2) => {\n\t\t\t\tlet tween = getTween.tween,\n\t\t\t\t\tonComplete = vars.onComplete,\n\t\t\t\t\tmodifiers = {};\n\t\t\t\tinitialValue = initialValue || getScroll();\n\t\t\t\tchange2 = (change1 && change2) || 0; // if change1 is 0, we set that to the difference and ignore change2. Otherwise, there would be a compound effect.\n\t\t\t\tchange1 = change1 || (scrollTo - initialValue);\n\t\t\t\ttween && tween.kill();\n\t\t\t\tlastScroll1 = Math.round(initialValue);\n\t\t\t\tvars[prop] = scrollTo;\n\t\t\t\tvars.modifiers = modifiers;\n\t\t\t\tmodifiers[prop] = value => {\n\t\t\t\t\tvalue = Math.round(getScroll()); // round because in some [very uncommon] Windows environments, it can get reported with decimals even though it was set without.\n\t\t\t\t\tif (value !== lastScroll1 && value !== lastScroll2 && Math.abs(value - lastScroll1) > 3 && Math.abs(value - lastScroll2) > 3) { // if the user scrolls, kill the tween. iOS Safari intermittently misreports the scroll position, it may be the most recently-set one or the one before that! When Safari is zoomed (CMD-+), it often misreports as 1 pixel off too! So if we set the scroll position to 125, for example, it'll actually report it as 124.\n\t\t\t\t\t\ttween.kill();\n\t\t\t\t\t\tgetTween.tween = 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = initialValue + change1 * tween.ratio + change2 * tween.ratio * tween.ratio;\n\t\t\t\t\t}\n\t\t\t\t\tlastScroll2 = lastScroll1;\n\t\t\t\t\treturn (lastScroll1 = Math.round(value));\n\t\t\t\t};\n\t\t\t\tvars.onComplete = () => {\n\t\t\t\t\tgetTween.tween = 0;\n\t\t\t\t\tonComplete && onComplete.call(tween);\n\t\t\t\t};\n\t\t\t\ttween = getTween.tween = gsap.to(scroller, vars);\n\t\t\t\treturn tween;\n\t\t\t};\n\t\tscroller[prop] = getScroll;\n\t\tgetScroll.wheelHandler = () => getTween.tween && getTween.tween.kill() && (getTween.tween = 0);\n\t\t_addListener(scroller, \"wheel\", getScroll.wheelHandler); // Windows machines handle mousewheel scrolling in chunks (like \"3 lines per scroll\") meaning the typical strategy for cancelling the scroll isn't as sensitive. It's much more likely to match one of the previous 2 scroll event positions. So we kill any snapping as soon as there's a wheel event.\n\t\treturn getTween;\n\t};\n\n\n\n\nexport class ScrollTrigger {\n\n\tconstructor(vars, animation) {\n\t\t_coreInitted || ScrollTrigger.register(gsap) || console.warn(\"Please gsap.registerPlugin(ScrollTrigger)\");\n\t\tthis.init(vars, animation);\n\t}\n\n\tinit(vars, animation) {\n\t\tthis.progress = this.start = 0;\n\t\tthis.vars && this.kill(true, true); // in case it's being initted again\n\t\tif (!_enabled) {\n\t\t\tthis.update = this.refresh = this.kill = _passThrough;\n\t\t\treturn;\n\t\t}\n\t\tvars = _setDefaults((_isString(vars) || _isNumber(vars) || vars.nodeType) ? {trigger: vars} : vars, _defaults);\n\t\tlet {onUpdate, toggleClass, id, onToggle, onRefresh, scrub, trigger, pin, pinSpacing, invalidateOnRefresh, anticipatePin, onScrubComplete, onSnapComplete, once, snap, pinReparent, pinSpacer, containerAnimation, fastScrollEnd, preventOverlaps} = vars,\n\t\t\tdirection = vars.horizontal || (vars.containerAnimation && vars.horizontal !== false) ? _horizontal : _vertical,\n\t\t\tisToggle = !scrub && scrub !== 0,\n\t\t\tscroller = _getTarget(vars.scroller || _win),\n\t\t\tscrollerCache = gsap.core.getCache(scroller),\n\t\t\tisViewport = _isViewport(scroller),\n\t\t\tuseFixedPosition = (\"pinType\" in vars ? vars.pinType : _getProxyProp(scroller, \"pinType\") || (isViewport && \"fixed\")) === \"fixed\",\n\t\t\tcallbacks = [vars.onEnter, vars.onLeave, vars.onEnterBack, vars.onLeaveBack],\n\t\t\ttoggleActions = isToggle && vars.toggleActions.split(\" \"),\n\t\t\tmarkers = \"markers\" in vars ? vars.markers : _defaults.markers,\n\t\t\tborderWidth = isViewport ? 0 : parseFloat(_getComputedStyle(scroller)[\"border\" + direction.p2 + _Width]) || 0,\n\t\t\tself = this,\n\t\t\tonRefreshInit = vars.onRefreshInit && (() => vars.onRefreshInit(self)),\n\t\t\tgetScrollerSize = _getSizeFunc(scroller, isViewport, direction),\n\t\t\tgetScrollerOffsets = _getOffsetsFunc(scroller, isViewport),\n\t\t\tlastSnap = 0,\n\t\t\tlastRefresh = 0,\n\t\t\tscrollFunc = _getScrollFunc(scroller, direction),\n\t\t\ttweenTo, pinCache, snapFunc, scroll1, scroll2, start, end, markerStart, markerEnd, markerStartTrigger, markerEndTrigger, markerVars,\n\t\t\tchange, pinOriginalState, pinActiveState, pinState, spacer, offset, pinGetter, pinSetter, pinStart, pinChange, spacingStart, spacerState, markerStartSetter,\n\t\t\tmarkerEndSetter, cs, snap1, snap2, scrubTween, scrubSmooth, snapDurClamp, snapDelayedCall, prevProgress, prevScroll, prevAnimProgress, caMarkerSetter, customRevertReturn;\n\n\t\t_context(self);\n\t\tself._dir = direction;\n\t\tanticipatePin *= 45;\n\t\tself.scroller = scroller;\n\t\tself.scroll = containerAnimation ? containerAnimation.time.bind(containerAnimation) : scrollFunc;\n\t\tscroll1 = scrollFunc();\n\t\tself.vars = vars;\n\t\tanimation = animation || vars.animation;\n\t\tif (\"refreshPriority\" in vars) {\n\t\t\t_sort = 1;\n\t\t\tvars.refreshPriority === -9999 && (_primary = self); // used by ScrollSmoother\n\t\t}\n\t\tscrollerCache.tweenScroll = scrollerCache.tweenScroll || {\n\t\t\ttop: _getTweenCreator(scroller, _vertical),\n\t\t\tleft: _getTweenCreator(scroller, _horizontal)\n\t\t};\n\t\tself.tweenTo = tweenTo = scrollerCache.tweenScroll[direction.p];\n\t\tself.scrubDuration = value => {\n\t\t\tscrubSmooth = _isNumber(value) && value;\n\t\t\tif (!scrubSmooth) {\n\t\t\t\tscrubTween && scrubTween.progress(1).kill();\n\t\t\t\tscrubTween = 0;\n\t\t\t} else {\n\t\t\t\tscrubTween ? scrubTween.duration(value) : (scrubTween = gsap.to(animation, {ease: \"expo\", totalProgress: \"+=0.001\", duration: scrubSmooth, paused: true, onComplete: () => onScrubComplete && onScrubComplete(self)}));\n\t\t\t}\n\t\t};\n\t\tif (animation) {\n\t\t\tanimation.vars.lazy = false;\n\t\t\tanimation._initted || (animation.vars.immediateRender !== false && vars.immediateRender !== false && animation.duration() && animation.render(0, true, true));\n\t\t\tself.animation = animation.pause();\n\t\t\tanimation.scrollTrigger = self;\n\t\t\tself.scrubDuration(scrub);\n\t\t\tsnap1 = 0;\n\t\t\tid || (id = animation.vars.id);\n\t\t}\n\t\t_triggers.push(self);\n\t\tif (snap) {\n\t\t\t// TODO: potential idea: use legitimate CSS scroll snapping by pushing invisible elements into the DOM that serve as snap positions, and toggle the document.scrollingElement.style.scrollSnapType onToggle. See https://codepen.io/GreenSock/pen/JjLrgWM for a quick proof of concept.\n\t\t\tif (!_isObject(snap) || snap.push) {\n\t\t\t\tsnap = {snapTo: snap};\n\t\t\t}\n\t\t\t(\"scrollBehavior\" in _body.style) && gsap.set(isViewport ? [_body, _docEl] : scroller, {scrollBehavior: \"auto\"}); // smooth scrolling doesn't work with snap.\n\t\t\tsnapFunc = _isFunction(snap.snapTo) ? snap.snapTo : snap.snapTo === \"labels\" ? _getClosestLabel(animation) : snap.snapTo === \"labelsDirectional\" ? _getLabelAtDirection(animation) : snap.directional !== false ? (value, st) => _snapDirectional(snap.snapTo)(value, _getTime() - lastRefresh < 500 ? 0 : st.direction) : gsap.utils.snap(snap.snapTo);\n\t\t\tsnapDurClamp = snap.duration || {min: 0.1, max: 2};\n\t\t\tsnapDurClamp = _isObject(snapDurClamp) ? _clamp(snapDurClamp.min, snapDurClamp.max) : _clamp(snapDurClamp, snapDurClamp);\n\t\t\tsnapDelayedCall = gsap.delayedCall(snap.delay || (scrubSmooth / 2) || 0.1, () => {\n\t\t\t\tlet scroll = scrollFunc(),\n\t\t\t\t\trefreshedRecently = _getTime() - lastRefresh < 500,\n\t\t\t\t\ttween = tweenTo.tween;\n\t\t\t\tif ((refreshedRecently || Math.abs(self.getVelocity()) < 10) && !tween && !_pointerIsDown && lastSnap !== scroll) {\n\t\t\t\t\tlet progress = (scroll - start) / change, // don't use self.progress because this might run between the refresh() and when the scroll position updates and self.progress is set properly in the update() method.\n\t\t\t\t\t\ttotalProgress = animation && !isToggle ? animation.totalProgress() : progress,\n\t\t\t\t\t\tvelocity = refreshedRecently ? 0 : ((totalProgress - snap2) / (_getTime() - _time2) * 1000) || 0,\n\t\t\t\t\t\tchange1 = gsap.utils.clamp(-progress, 1 - progress, _abs(velocity / 2) * velocity / 0.185),\n\t\t\t\t\t\tnaturalEnd = progress + (snap.inertia === false ? 0 : change1),\n\t\t\t\t\t\tendValue = _clamp(0, 1, snapFunc(naturalEnd, self)),\n\t\t\t\t\t\tendScroll = Math.round(start + endValue * change),\n\t\t\t\t\t\t{ onStart, onInterrupt, onComplete } = snap;\n\t\t\t\t\tif (scroll <= end && scroll >= start && endScroll !== scroll) {\n\t\t\t\t\t\tif (tween && !tween._initted && tween.data <= _abs(endScroll - scroll)) { // there's an overlapping snap! So we must figure out which one is closer and let that tween live.\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (snap.inertia === false) {\n\t\t\t\t\t\t\tchange1 = endValue - progress;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttweenTo(endScroll, {\n\t\t\t\t\t\t\tduration: snapDurClamp(_abs( (Math.max(_abs(naturalEnd - totalProgress), _abs(endValue - totalProgress)) * 0.185 / velocity / 0.05) || 0)),\n\t\t\t\t\t\t\tease: snap.ease || \"power3\",\n\t\t\t\t\t\t\tdata: _abs(endScroll - scroll), // record the distance so that if another snap tween occurs (conflict) we can prioritize the closest snap.\n\t\t\t\t\t\t\tonInterrupt: () => snapDelayedCall.restart(true) && onInterrupt && onInterrupt(self),\n\t\t\t\t\t\t\tonComplete: () => {\n\t\t\t\t\t\t\t\tself.update();\n\t\t\t\t\t\t\t\tlastSnap = scrollFunc();\n\t\t\t\t\t\t\t\tsnap1 = snap2 = animation && !isToggle ? animation.totalProgress() : self.progress;\n\t\t\t\t\t\t\t\tonSnapComplete && onSnapComplete(self);\n\t\t\t\t\t\t\t\tonComplete && onComplete(self);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, scroll, change1 * change, endScroll - scroll - change1 * change);\n\t\t\t\t\t\tonStart && onStart(self, tweenTo.tween);\n\t\t\t\t\t}\n\t\t\t\t} else if (self.isActive && lastSnap !== scroll) {\n\t\t\t\t\tsnapDelayedCall.restart(true);\n\t\t\t\t}\n\t\t\t}).pause();\n\t\t}\n\t\tid && (_ids[id] = self);\n\t\ttrigger = self.trigger = _getTarget(trigger || pin);\n\n\t\t// if a trigger has some kind of scroll-related effect applied that could contaminate the \"y\" or \"x\" position (like a ScrollSmoother effect), we needed a way to temporarily revert it, so we use the stRevert property of the gsCache. It can return another function that we'll call at the end so it can return to its normal state.\n\t\tcustomRevertReturn = trigger && trigger._gsap && trigger._gsap.stRevert;\n\t\tcustomRevertReturn && (customRevertReturn = customRevertReturn(self));\n\n\t\tpin = pin === true ? trigger : _getTarget(pin);\n\t\t_isString(toggleClass) && (toggleClass = {targets: trigger, className: toggleClass});\n\t\tif (pin) {\n\t\t\t(pinSpacing === false || pinSpacing === _margin) || (pinSpacing = !pinSpacing && _getComputedStyle(pin.parentNode).display === \"flex\" ? false : _padding); // if the parent is display: flex, don't apply pinSpacing by default.\n\t\t\tself.pin = pin;\n\t\t\tpinCache = gsap.core.getCache(pin);\n\t\t\tif (!pinCache.spacer) { // record the spacer and pinOriginalState on the cache in case someone tries pinning the same element with MULTIPLE ScrollTriggers - we don't want to have multiple spacers or record the \"original\" pin state after it has already been affected by another ScrollTrigger.\n\t\t\t\tif (pinSpacer) {\n\t\t\t\t\tpinSpacer = _getTarget(pinSpacer);\n\t\t\t\t\tpinSpacer && !pinSpacer.nodeType && (pinSpacer = pinSpacer.current || pinSpacer.nativeElement); // for React & Angular\n\t\t\t\t\tpinCache.spacerIsNative = !!pinSpacer;\n\t\t\t\t\tpinSpacer && (pinCache.spacerState = _getState(pinSpacer));\n\t\t\t\t}\n\t\t\t\tpinCache.spacer = spacer = pinSpacer || _doc.createElement(\"div\");\n\t\t\t\tspacer.classList.add(\"pin-spacer\");\n\t\t\t\tid && spacer.classList.add(\"pin-spacer-\" + id);\n\t\t\t\tpinCache.pinState = pinOriginalState = _getState(pin);\n\t\t\t} else {\n\t\t\t\tpinOriginalState = pinCache.pinState;\n\t\t\t}\n\t\t\tvars.force3D !== false && gsap.set(pin, {force3D: true});\n\t\t\tself.spacer = spacer = pinCache.spacer;\n\t\t\tcs = _getComputedStyle(pin);\n\t\t\tspacingStart = cs[pinSpacing + direction.os2];\n\t\t\tpinGetter = gsap.getProperty(pin);\n\t\t\tpinSetter = gsap.quickSetter(pin, direction.a, _px);\n\t\t\t// pin.firstChild && !_maxScroll(pin, direction) && (pin.style.overflow = \"hidden\"); // protects from collapsing margins, but can have unintended consequences as demonstrated here: https://codepen.io/GreenSock/pen/1e42c7a73bfa409d2cf1e184e7a4248d so it was removed in favor of just telling people to set up their CSS to avoid the collapsing margins (overflow: hidden | auto is just one option. Another is border-top: 1px solid transparent).\n\t\t\t_swapPinIn(pin, spacer, cs);\n\t\t\tpinState = _getState(pin);\n\t\t}\n\t\tif (markers) {\n\t\t\tmarkerVars = _isObject(markers) ? _setDefaults(markers, _markerDefaults) : _markerDefaults;\n\t\t\tmarkerStartTrigger = _createMarker(\"scroller-start\", id, scroller, direction, markerVars, 0);\n\t\t\tmarkerEndTrigger = _createMarker(\"scroller-end\", id, scroller, direction, markerVars, 0, markerStartTrigger);\n\t\t\toffset = markerStartTrigger[\"offset\" + direction.op.d2];\n\t\t\tlet content = _getTarget(_getProxyProp(scroller, \"content\") || scroller);\n\t\t\tmarkerStart = this.markerStart = _createMarker(\"start\", id, content, direction, markerVars, offset, 0, containerAnimation);\n\t\t\tmarkerEnd = this.markerEnd = _createMarker(\"end\", id, content, direction, markerVars, offset, 0, containerAnimation);\n\t\t\tcontainerAnimation && (caMarkerSetter = gsap.quickSetter([markerStart, markerEnd], direction.a, _px));\n\t\t\tif ((!useFixedPosition && !(_proxies.length && _getProxyProp(scroller, \"fixedMarkers\") === true))) {\n\t\t\t\t_makePositionable(isViewport ? _body : scroller);\n\t\t\t\tgsap.set([markerStartTrigger, markerEndTrigger], {force3D: true});\n\t\t\t\tmarkerStartSetter = gsap.quickSetter(markerStartTrigger, direction.a, _px);\n\t\t\t\tmarkerEndSetter = gsap.quickSetter(markerEndTrigger, direction.a, _px);\n\t\t\t}\n\t\t}\n\n\t\tif (containerAnimation) {\n\t\t\tlet oldOnUpdate = containerAnimation.vars.onUpdate,\n\t\t\t\toldParams = containerAnimation.vars.onUpdateParams;\n\t\t\tcontainerAnimation.eventCallback(\"onUpdate\", () => {\n\t\t\t\tself.update(0, 0, 1);\n\t\t\t\toldOnUpdate && oldOnUpdate.apply(oldParams || []);\n\t\t\t});\n\t\t}\n\n\t\tself.previous = () => _triggers[_triggers.indexOf(self) - 1];\n\t\tself.next = () => _triggers[_triggers.indexOf(self) + 1];\n\n\t\tself.revert = (revert, temp) => {\n\t\t\tif (!temp) { return self.kill(true); } // for compatibility with gsap.context() and gsap.matchMedia() which call revert()\n\t\t\tlet r = revert !== false || !self.enabled,\n\t\t\t\tprevRefreshing = _refreshing;\n\t\t\tif (r !== self.isReverted) {\n\t\t\t\tif (r) {\n\t\t\t\t\t// if (!self.scroll.rec && (_refreshing || _refreshingAll)) {\n\t\t\t\t\t// \tself.scroll.rec = scrollFunc();\n\t\t\t\t\t// \t_refreshingAll && scrollFunc(0);\n\t\t\t\t\t// }\n\t\t\t\t\tprevScroll = Math.max(scrollFunc(), self.scroll.rec || 0); // record the scroll so we can revert later (repositioning/pinning things can affect scroll position). In the static refresh() method, we first record all the scroll positions as a reference.\n\t\t\t\t\tprevProgress = self.progress;\n\t\t\t\t\tprevAnimProgress = animation && animation.progress();\n\t\t\t\t}\n\t\t\t\tmarkerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(m => m.style.display = r ? \"none\" : \"block\");\n\t\t\t\tr && (_refreshing = 1);\n\t\t\t\tself.update(r); // make sure the pin is back in its original position so that all the measurements are correct.\n\t\t\t\t_refreshing = prevRefreshing;\n\t\t\t\tpin && (r ? _swapPinOut(pin, spacer, pinOriginalState) : (!pinReparent || !self.isActive) && _swapPinIn(pin, spacer, _getComputedStyle(pin), spacerState));\n\t\t\t\tself.isReverted = r;\n\t\t\t}\n\t\t}\n\n\n\t\tself.refresh = (soft, force) => {\n\t\t\tif ((_refreshing || !self.enabled) && !force) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (pin && soft && _lastScrollTime) {\n\t\t\t\t_addListener(ScrollTrigger, \"scrollEnd\", _softRefresh);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t!_refreshingAll && onRefreshInit && onRefreshInit(self);\n\t\t\t_refreshing = 1;\n\t\t\tlastRefresh = _getTime();\n\t\t\tif (tweenTo.tween) {\n\t\t\t\ttweenTo.tween.kill();\n\t\t\t\ttweenTo.tween = 0;\n\t\t\t}\n\t\t\tscrubTween && scrubTween.pause();\n\t\t\tinvalidateOnRefresh && animation && animation.revert({kill: false}).invalidate();\n\t\t\tself.isReverted || self.revert(true, true);\n\t\t\tlet size = getScrollerSize(),\n\t\t\t\tscrollerBounds = getScrollerOffsets(),\n\t\t\t\tmax = containerAnimation ? containerAnimation.duration() : _maxScroll(scroller, direction),\n\t\t\t\toffset = 0,\n\t\t\t\totherPinOffset = 0,\n\t\t\t\tparsedEnd = vars.end,\n\t\t\t\tparsedEndTrigger = vars.endTrigger || trigger,\n\t\t\t\tparsedStart = vars.start || (vars.start === 0 || !trigger ? 0 : (pin ? \"0 0\" : \"0 100%\")),\n\t\t\t\tpinnedContainer = self.pinnedContainer = vars.pinnedContainer && _getTarget(vars.pinnedContainer),\n\t\t\t\ttriggerIndex = (trigger && Math.max(0, _triggers.indexOf(self))) || 0,\n\t\t\t\ti = triggerIndex,\n\t\t\t\tcs, bounds, scroll, isVertical, override, curTrigger, curPin, oppositeScroll, initted, revertedPins;\n\t\t\twhile (i--) { // user might try to pin the same element more than once, so we must find any prior triggers with the same pin, revert them, and determine how long they're pinning so that we can offset things appropriately. Make sure we revert from last to first so that things \"rewind\" properly.\n\t\t\t\tcurTrigger = _triggers[i];\n\t\t\t\tcurTrigger.end || curTrigger.refresh(0, 1) || (_refreshing = 1); // if it's a timeline-based trigger that hasn't been fully initialized yet because it's waiting for 1 tick, just force the refresh() here, otherwise if it contains a pin that's supposed to affect other ScrollTriggers further down the page, they won't be adjusted properly.\n\t\t\t\tcurPin = curTrigger.pin;\n\t\t\t\tif (curPin && (curPin === trigger || curPin === pin) && !curTrigger.isReverted) {\n\t\t\t\t\trevertedPins || (revertedPins = []);\n\t\t\t\t\trevertedPins.unshift(curTrigger); // we'll revert from first to last to make sure things reach their end state properly\n\t\t\t\t\tcurTrigger.revert(true, true);\n\t\t\t\t}\n\t\t\t\tif (curTrigger !== _triggers[i]) { // in case it got removed.\n\t\t\t\t\ttriggerIndex--;\n\t\t\t\t\ti--;\n\t\t\t\t}\n\t\t\t}\n\t\t\t_isFunction(parsedStart) && (parsedStart = parsedStart(self));\n\t\t\tstart = _parsePosition(parsedStart, trigger, size, direction, scrollFunc(), markerStart, markerStartTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation) || (pin ? -0.001 : 0);\n\t\t\t_isFunction(parsedEnd) && (parsedEnd = parsedEnd(self));\n\t\t\tif (_isString(parsedEnd) && !parsedEnd.indexOf(\"+=\")) {\n\t\t\t\tif (~parsedEnd.indexOf(\" \")) {\n\t\t\t\t\tparsedEnd = (_isString(parsedStart) ? parsedStart.split(\" \")[0] : \"\") + parsedEnd;\n\t\t\t\t} else {\n\t\t\t\t\toffset = _offsetToPx(parsedEnd.substr(2), size);\n\t\t\t\t\tparsedEnd = _isString(parsedStart) ? parsedStart : start + offset; // _parsePosition won't factor in the offset if the start is a number, so do it here.\n\t\t\t\t\tparsedEndTrigger = trigger;\n\t\t\t\t}\n\t\t\t}\n\t\t\tend = Math.max(start, _parsePosition(parsedEnd || (parsedEndTrigger ? \"100% 0\" : max), parsedEndTrigger, size, direction, scrollFunc() + offset, markerEnd, markerEndTrigger, self, scrollerBounds, borderWidth, useFixedPosition, max, containerAnimation)) || -0.001;\n\t\t\tchange = (end - start) || ((start -= 0.01) && 0.001);\n\n\t\t\toffset = 0;\n\t\t\ti = triggerIndex;\n\t\t\twhile (i--) {\n\t\t\t\tcurTrigger = _triggers[i];\n\t\t\t\tcurPin = curTrigger.pin;\n\t\t\t\tif (curPin && curTrigger.start - curTrigger._pinPush < start && !containerAnimation && curTrigger.end > 0) {\n\t\t\t\t\tcs = curTrigger.end - curTrigger.start;\n\t\t\t\t\tif ((curPin === trigger || curPin === pinnedContainer) && !_isNumber(parsedStart)) { // numeric start values shouldn't be offset at all - treat them as absolute\n\t\t\t\t\t\toffset += cs * (1 - curTrigger.progress);\n\t\t\t\t\t}\n\t\t\t\t\tcurPin === pin && (otherPinOffset += cs);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstart += offset;\n\t\t\tend += offset;\n\t\t\tself._pinPush = otherPinOffset;\n\t\t\tif (markerStart && offset) { // offset the markers if necessary\n\t\t\t\tcs = {};\n\t\t\t\tcs[direction.a] = \"+=\" + offset;\n\t\t\t\tpinnedContainer && (cs[direction.p] = \"-=\" + scrollFunc());\n\t\t\t\tgsap.set([markerStart, markerEnd], cs);\n\t\t\t}\n\n\t\t\tif (pin) {\n\t\t\t\tcs = _getComputedStyle(pin);\n\t\t\t\tisVertical = direction === _vertical;\n\t\t\t\tscroll = scrollFunc(); // recalculate because the triggers can affect the scroll\n\t\t\t\tpinStart = parseFloat(pinGetter(direction.a)) + otherPinOffset;\n\t\t\t\t!max && end > 1 && ((isViewport ? _body : scroller).style[\"overflow-\" + direction.a] = \"scroll\"); // makes sure the scroller has a scrollbar, otherwise if something has width: 100%, for example, it would be too big (exclude the scrollbar). See https://greensock.com/forums/topic/25182-scrolltrigger-width-of-page-increase-where-markers-are-set-to-false/\n\t\t\t\t_swapPinIn(pin, spacer, cs);\n\t\t\t\tpinState = _getState(pin);\n\t\t\t\t// transforms will interfere with the top/left/right/bottom placement, so remove them temporarily. getBoundingClientRect() factors in transforms.\n\t\t\t\tbounds = _getBounds(pin, true);\n\t\t\t\toppositeScroll = useFixedPosition && _getScrollFunc(scroller, isVertical ? _horizontal : _vertical)();\n\t\t\t\tif (pinSpacing) {\n\t\t\t\t\tspacerState = [pinSpacing + direction.os2, change + otherPinOffset + _px];\n\t\t\t\t\tspacerState.t = spacer;\n\t\t\t\t\ti = (pinSpacing === _padding) ? _getSize(pin, direction) + change + otherPinOffset : 0;\n\t\t\t\t\ti && spacerState.push(direction.d, i + _px); // for box-sizing: border-box (must include padding).\n\t\t\t\t\t_setState(spacerState);\n\t\t\t\t\tuseFixedPosition && scrollFunc(prevScroll);\n\t\t\t\t}\n\t\t\t\tif (useFixedPosition) {\n\t\t\t\t\toverride = {\n\t\t\t\t\t\ttop: (bounds.top + (isVertical ? scroll - start : oppositeScroll)) + _px,\n\t\t\t\t\t\tleft: (bounds.left + (isVertical ? oppositeScroll : scroll - start)) + _px,\n\t\t\t\t\t\tboxSizing: \"border-box\",\n\t\t\t\t\t\tposition: \"fixed\"\n\t\t\t\t\t};\n\t\t\t\t\toverride[_width] = override[\"max\" + _Width] = Math.ceil(bounds.width) + _px;\n\t\t\t\t\toverride[_height] = override[\"max\" + _Height] = Math.ceil(bounds.height) + _px;\n\t\t\t\t\toverride[_margin] = override[_margin + _Top] = override[_margin + _Right] = override[_margin + _Bottom] = override[_margin + _Left] = \"0\";\n\t\t\t\t\toverride[_padding] = cs[_padding];\n\t\t\t\t\toverride[_padding + _Top] = cs[_padding + _Top];\n\t\t\t\t\toverride[_padding + _Right] = cs[_padding + _Right];\n\t\t\t\t\toverride[_padding + _Bottom] = cs[_padding + _Bottom];\n\t\t\t\t\toverride[_padding + _Left] = cs[_padding + _Left];\n\t\t\t\t\tpinActiveState = _copyState(pinOriginalState, override, pinReparent);\n\t\t\t\t\t_refreshingAll && scrollFunc(0);\n\t\t\t\t}\n\t\t\t\tif (animation) { // the animation might be affecting the transform, so we must jump to the end, check the value, and compensate accordingly. Otherwise, when it becomes unpinned, the pinSetter() will get set to a value that doesn't include whatever the animation did.\n\t\t\t\t\tinitted = animation._initted; // if not, we must invalidate() after this step, otherwise it could lock in starting values prematurely.\n\t\t\t\t\t_suppressOverwrites(1);\n\t\t\t\t\tanimation.render(animation.duration(), true, true);\n\t\t\t\t\tpinChange = pinGetter(direction.a) - pinStart + change + otherPinOffset;\n\t\t\t\t\tchange !== pinChange && useFixedPosition && pinActiveState.splice(pinActiveState.length - 2, 2); // transform is the last property/value set in the state Array. Since the animation is controlling that, we should omit it.\n\t\t\t\t\tanimation.render(0, true, true);\n\t\t\t\t\tinitted || animation.invalidate(true);\n\t\t\t\t\tanimation.parent || animation.totalTime(animation.totalTime()); // if, for example, a toggleAction called play() and then refresh() happens and when we render(1) above, it would cause the animation to complete and get removed from its parent, so this makes sure it gets put back in.\n\t\t\t\t\t_suppressOverwrites(0);\n\t\t\t\t} else {\n\t\t\t\t\tpinChange = change\n\t\t\t\t}\n\t\t\t} else if (trigger && scrollFunc() && !containerAnimation) { // it may be INSIDE a pinned element, so walk up the tree and look for any elements with _pinOffset to compensate because anything with pinSpacing that's already scrolled would throw off the measurements in getBoundingClientRect()\n\t\t\t\tbounds = trigger.parentNode;\n\t\t\t\twhile (bounds && bounds !== _body) {\n\t\t\t\t\tif (bounds._pinOffset) {\n\t\t\t\t\t\tstart -= bounds._pinOffset;\n\t\t\t\t\t\tend -= bounds._pinOffset;\n\t\t\t\t\t}\n\t\t\t\t\tbounds = bounds.parentNode;\n\t\t\t\t}\n\t\t\t}\n\t\t\trevertedPins && revertedPins.forEach(t => t.revert(false, true));\n\t\t\tself.start = start;\n\t\t\tself.end = end;\n\t\t\tscroll1 = scroll2 = _refreshingAll ? prevScroll : scrollFunc(); // reset velocity\n\t\t\tif (!containerAnimation && !_refreshingAll) {\n\t\t\t\tscroll1 < prevScroll && scrollFunc(prevScroll);\n\t\t\t\tself.scroll.rec = 0;\n\t\t\t}\n\t\t\tself.revert(false, true);\n\t\t\tif (snapDelayedCall) {\n\t\t\t\tlastSnap = -1;\n\t\t\t\tself.isActive && scrollFunc(start + change * prevProgress); // just so snapping gets re-enabled, clear out any recorded last value\n\t\t\t\tsnapDelayedCall.restart(true);\n\t\t\t}\n\t\t\t_refreshing = 0;\n\t\t\tanimation && isToggle && (animation._initted || prevAnimProgress) && animation.progress() !== prevAnimProgress && animation.progress(prevAnimProgress, true).render(animation.time(), true, true); // must force a re-render because if saveStyles() was used on the target(s), the styles could have been wiped out during the refresh().\n\t\t\tif (prevProgress !== self.progress || containerAnimation) { // ensures that the direction is set properly (when refreshing, progress is set back to 0 initially, then back again to wherever it needs to be) and that callbacks are triggered.\n\t\t\t\tanimation && !isToggle && animation.totalProgress(prevProgress, true); // to avoid issues where animation callbacks like onStart aren't triggered.\n\t\t\t\tself.progress = (scroll1 - start) / change === prevProgress ? 0 : prevProgress;\n\t\t\t}\n\t\t\tpin && pinSpacing && (spacer._pinOffset = Math.round(self.progress * pinChange));\n//\t\t\tscrubTween && scrubTween.invalidate();\n\t\t\tonRefresh && onRefresh(self);\n\t\t};\n\n\t\tself.getVelocity = () => ((scrollFunc() - scroll2) / (_getTime() - _time2) * 1000) || 0;\n\n\t\tself.endAnimation = () => {\n\t\t\t_endAnimation(self.callbackAnimation);\n\t\t\tif (animation) {\n\t\t\t\tscrubTween ? scrubTween.progress(1) : (!animation.paused() ? _endAnimation(animation, animation.reversed()) : isToggle || _endAnimation(animation, self.direction < 0, 1));\n\t\t\t}\n\t\t};\n\n\t\tself.labelToScroll = label => animation && animation.labels && ((start || self.refresh() || start) + (animation.labels[label] / animation.duration()) * change) || 0;\n\n\t\tself.getTrailing = name => {\n\t\t\tlet i = _triggers.indexOf(self),\n\t\t\t\ta = self.direction > 0 ? _triggers.slice(0, i).reverse() : _triggers.slice(i+1);\n\t\t\treturn (_isString(name) ? a.filter(t => t.vars.preventOverlaps === name) : a).filter(t => self.direction > 0 ? t.end <= start : t.start >= end);\n\t\t};\n\n\n\t\tself.update = (reset, recordVelocity, forceFake) => {\n\t\t\tif (containerAnimation && !forceFake && !reset) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tlet scroll = _refreshingAll ? prevScroll : self.scroll(),\n\t\t\t\tp = reset ? 0 : (scroll - start) / change,\n\t\t\t\tclipped = p < 0 ? 0 : p > 1 ? 1 : p || 0,\n\t\t\t\tprevProgress = self.progress,\n\t\t\t\tisActive, wasActive, toggleState, action, stateChanged, toggled, isAtMax, isTakingAction;\n\t\t\tif (recordVelocity) {\n\t\t\t\tscroll2 = scroll1;\n\t\t\t\tscroll1 = containerAnimation ? scrollFunc() : scroll;\n\t\t\t\tif (snap) {\n\t\t\t\t\tsnap2 = snap1;\n\t\t\t\t\tsnap1 = animation && !isToggle ? animation.totalProgress() : clipped;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// anticipate the pinning a few ticks ahead of time based on velocity to avoid a visual glitch due to the fact that most browsers do scrolling on a separate thread (not synced with requestAnimationFrame).\n\t\t\t(anticipatePin && !clipped && pin && !_refreshing && !_startup && _lastScrollTime && start < scroll + ((scroll - scroll2) / (_getTime() - _time2)) * anticipatePin) && (clipped = 0.0001);\n\t\t\tif (clipped !== prevProgress && self.enabled) {\n\t\t\t\tisActive = self.isActive = !!clipped && clipped < 1;\n\t\t\t\twasActive = !!prevProgress && prevProgress < 1;\n\t\t\t\ttoggled = isActive !== wasActive;\n\t\t\t\tstateChanged = toggled || !!clipped !== !!prevProgress; // could go from start all the way to end, thus it didn't toggle but it did change state in a sense (may need to fire a callback)\n\t\t\t\tself.direction = clipped > prevProgress ? 1 : -1;\n\t\t\t\tself.progress = clipped;\n\n\t\t\t\tif (stateChanged && !_refreshing) {\n\t\t\t\t\ttoggleState = clipped && !prevProgress ? 0 : clipped === 1 ? 1 : prevProgress === 1 ? 2 : 3; // 0 = enter, 1 = leave, 2 = enterBack, 3 = leaveBack (we prioritize the FIRST encounter, thus if you scroll really fast past the onEnter and onLeave in one tick, it'd prioritize onEnter.\n\t\t\t\t\tif (isToggle) {\n\t\t\t\t\t\taction = (!toggled && toggleActions[toggleState + 1] !== \"none\" && toggleActions[toggleState + 1]) || toggleActions[toggleState]; // if it didn't toggle, that means it shot right past and since we prioritize the \"enter\" action, we should switch to the \"leave\" in this case (but only if one is defined)\n\t\t\t\t\t\tisTakingAction = animation && (action === \"complete\" || action === \"reset\" || action in animation);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tpreventOverlaps && (toggled || isTakingAction) && (isTakingAction || scrub || !animation) && (_isFunction(preventOverlaps) ? preventOverlaps(self) : self.getTrailing(preventOverlaps).forEach(t => t.endAnimation()));\n\n\t\t\t\tif (!isToggle) {\n\t\t\t\t\tif (scrubTween && !_refreshing && !_startup) {\n\t\t\t\t\t\t(containerAnimation || (_primary && _primary !== self)) && scrubTween.render(scrubTween._dp._time - scrubTween._start); // if there's a scrub on both the container animation and this one (or a ScrollSmoother), the update order would cause this one not to have rendered yet, so it wouldn't make any progress before we .restart() it heading toward the new progress so it'd appear stuck thus we force a render here.\n\t\t\t\t\t\tif (scrubTween.resetTo) {\n\t\t\t\t\t\t\tscrubTween.resetTo(\"totalProgress\", clipped, animation._tTime / animation._tDur);\n\t\t\t\t\t\t} else { // legacy support (courtesy), before 3.10.0\n\t\t\t\t\t\t\tscrubTween.vars.totalProgress = clipped;\n\t\t\t\t\t\t\tscrubTween.invalidate().restart();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (animation) {\n\t\t\t\t\t\tanimation.totalProgress(clipped, !!_refreshing);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pin) {\n\t\t\t\t\treset && pinSpacing && (spacer.style[pinSpacing + direction.os2] = spacingStart);\n\t\t\t\t\tif (!useFixedPosition) {\n\t\t\t\t\t\tpinSetter(_round(pinStart + pinChange * clipped));\n\t\t\t\t\t} else if (stateChanged) {\n\t\t\t\t\t\tisAtMax = !reset && clipped > prevProgress && end + 1 > scroll && scroll + 1 >= _maxScroll(scroller, direction); // if it's at the VERY end of the page, don't switch away from position: fixed because it's pointless and it could cause a brief flash when the user scrolls back up (when it gets pinned again)\n\t\t\t\t\t\tif (pinReparent) {\n\t\t\t\t\t\t\tif (!reset && (isActive || isAtMax)) {\n\t\t\t\t\t\t\t\tlet bounds = _getBounds(pin, true),\n\t\t\t\t\t\t\t\t\toffset = scroll - start;\n\t\t\t\t\t\t\t\t_reparent(pin, _body, (bounds.top + (direction === _vertical ? offset : 0)) + _px, (bounds.left + (direction === _vertical ? 0 : offset)) + _px);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t_reparent(pin, spacer);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_setState(isActive || isAtMax ? pinActiveState : pinState);\n\t\t\t\t\t\t(pinChange !== change && clipped < 1 && isActive) || pinSetter(pinStart + (clipped === 1 && !isAtMax ? pinChange : 0));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tsnap && !tweenTo.tween && !_refreshing && !_startup && snapDelayedCall.restart(true);\n\t\t\t\ttoggleClass && (toggled || (once && clipped && (clipped < 1 || !_limitCallbacks))) && _toArray(toggleClass.targets).forEach(el => el.classList[isActive || once ? \"add\" : \"remove\"](toggleClass.className)); // classes could affect positioning, so do it even if reset or refreshing is true.\n\t\t\t\tonUpdate && !isToggle && !reset && onUpdate(self);\n\t\t\t\tif (stateChanged && !_refreshing) {\n\t\t\t\t\tif (isToggle) {\n\t\t\t\t\t\tif (isTakingAction) {\n\t\t\t\t\t\t\tif (action === \"complete\") {\n\t\t\t\t\t\t\t\tanimation.pause().totalProgress(1);\n\t\t\t\t\t\t\t} else if (action === \"reset\") {\n\t\t\t\t\t\t\t\tanimation.restart(true).pause();\n\t\t\t\t\t\t\t} else if (action === \"restart\") {\n\t\t\t\t\t\t\t\tanimation.restart(true);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tanimation[action]();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonUpdate && onUpdate(self);\n\t\t\t\t\t}\n\t\t\t\t\tif (toggled || !_limitCallbacks) { // on startup, the page could be scrolled and we don't want to fire callbacks that didn't toggle. For example onEnter shouldn't fire if the ScrollTrigger isn't actually entered.\n\t\t\t\t\t\tonToggle && toggled && _callback(self, onToggle);\n\t\t\t\t\t\tcallbacks[toggleState] && _callback(self, callbacks[toggleState]);\n\t\t\t\t\t\tonce && (clipped === 1 ? self.kill(false, 1) : (callbacks[toggleState] = 0)); // a callback shouldn't be called again if once is true.\n\t\t\t\t\t\tif (!toggled) { // it's possible to go completely past, like from before the start to after the end (or vice-versa) in which case BOTH callbacks should be fired in that order\n\t\t\t\t\t\t\ttoggleState = clipped === 1 ? 1 : 3;\n\t\t\t\t\t\t\tcallbacks[toggleState] && _callback(self, callbacks[toggleState]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (fastScrollEnd && !isActive && Math.abs(self.getVelocity()) > (_isNumber(fastScrollEnd) ? fastScrollEnd : 2500)) {\n\t\t\t\t\t\t_endAnimation(self.callbackAnimation);\n\t\t\t\t\t\tscrubTween ? scrubTween.progress(1) : _endAnimation(animation, action === \"reverse\" ? 1 : !clipped, 1);\n\t\t\t\t\t}\n\t\t\t\t} else if (isToggle && onUpdate && !_refreshing) {\n\t\t\t\t\tonUpdate(self);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// update absolutely-positioned markers (only if the scroller isn't the viewport)\n\t\t\tif (markerEndSetter) {\n\t\t\t\tlet n = containerAnimation ? scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0) : scroll;\n\t\t\t\tmarkerStartSetter(n + (markerStartTrigger._isFlipped ? 1 : 0));\n\t\t\t\tmarkerEndSetter(n);\n\t\t\t}\n\t\t\tcaMarkerSetter && caMarkerSetter(-scroll / containerAnimation.duration() * (containerAnimation._caScrollDist || 0));\n\t\t};\n\n\t\tself.enable = (reset, refresh) => {\n\t\t\tif (!self.enabled) {\n\t\t\t\tself.enabled = true;\n\t\t\t\t_addListener(scroller, \"resize\", _onResize);\n\t\t\t\t_addListener(isViewport ? _doc : scroller, \"scroll\", _onScroll);\n\t\t\t\tonRefreshInit && _addListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\t\t\t\tif (reset !== false) {\n\t\t\t\t\tself.progress = prevProgress = 0;\n\t\t\t\t\tscroll1 = scroll2 = lastSnap = scrollFunc();\n\t\t\t\t}\n\t\t\t\trefresh !== false && self.refresh();\n\t\t\t}\n\t\t};\n\n\t\tself.getTween = snap => snap && tweenTo ? tweenTo.tween : scrubTween;\n\n\t\tself.setPositions = (newStart, newEnd) => { // doesn't persist after refresh()! Intended to be a way to override values that were set during refresh(), like you could set it in onRefresh()\n\t\t\tif (pin) {\n\t\t\t\tpinStart += newStart - start;\n\t\t\t\tpinChange += (newEnd - newStart) - change;\n\t\t\t}\n\t\t\tself.start = start = newStart;\n\t\t\tself.end = end = newEnd;\n\t\t\tchange = newEnd - newStart;\n\t\t\tself.update();\n\t\t}\n\n\t\tself.disable = (reset, allowAnimation) => {\n\t\t\tif (self.enabled) {\n\t\t\t\treset !== false && self.revert(true, true);\n\t\t\t\tself.enabled = self.isActive = false;\n\t\t\t\tallowAnimation || (scrubTween && scrubTween.pause());\n\t\t\t\tprevScroll = 0;\n\t\t\t\tpinCache && (pinCache.uncache = 1);\n\t\t\t\tonRefreshInit && _removeListener(ScrollTrigger, \"refreshInit\", onRefreshInit);\n\t\t\t\tif (snapDelayedCall) {\n\t\t\t\t\tsnapDelayedCall.pause();\n\t\t\t\t\ttweenTo.tween && tweenTo.tween.kill() && (tweenTo.tween = 0);\n\t\t\t\t}\n\t\t\t\tif (!isViewport) {\n\t\t\t\t\tlet i = _triggers.length;\n\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\tif (_triggers[i].scroller === scroller && _triggers[i] !== self) {\n\t\t\t\t\t\t\treturn; //don't remove the listeners if there are still other triggers referencing it.\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t_removeListener(scroller, \"resize\", _onResize);\n\t\t\t\t\t_removeListener(scroller, \"scroll\", _onScroll);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tself.kill = (revert, allowAnimation) => {\n\t\t\tself.disable(revert, allowAnimation);\n\t\t\tscrubTween && !allowAnimation && scrubTween.kill();\n\t\t\tid && (delete _ids[id]);\n\t\t\tlet i = _triggers.indexOf(self);\n\t\t\ti >= 0 && _triggers.splice(i, 1);\n\t\t\ti === _i && _direction > 0 && _i--; // if we're in the middle of a refresh() or update(), splicing would cause skips in the index, so adjust...\n\n\t\t\t// if no other ScrollTrigger instances of the same scroller are found, wipe out any recorded scroll position. Otherwise, in a single page application, for example, it could maintain scroll position when it really shouldn't.\n\t\t\ti = 0;\n\t\t\t_triggers.forEach(t => t.scroller === self.scroller && (i = 1));\n\t\t\ti || _refreshingAll || (self.scroll.rec = 0);\n\n\t\t\tif (animation) {\n\t\t\t\tanimation.scrollTrigger = null;\n\t\t\t\trevert && animation.revert({kill: false});\n\t\t\t\tallowAnimation || animation.kill();\n\t\t\t}\n\t\t\tmarkerStart && [markerStart, markerEnd, markerStartTrigger, markerEndTrigger].forEach(m => m.parentNode && m.parentNode.removeChild(m));\n\t\t\t_primary === self && (_primary = 0);\n\t\t\tif (pin) {\n\t\t\t\tpinCache && (pinCache.uncache = 1);\n\t\t\t\ti = 0;\n\t\t\t\t_triggers.forEach(t => t.pin === pin && i++);\n\t\t\t\ti || (pinCache.spacer = 0); // if there aren't any more ScrollTriggers with the same pin, remove the spacer, otherwise it could be contaminated with old/stale values if the user re-creates a ScrollTrigger for the same element.\n\t\t\t}\n\t\t\tvars.onKill && vars.onKill(self);\n\t\t};\n\n\t\tself.enable(false, false);\n\t\tcustomRevertReturn && customRevertReturn(self);\n\t\t!animation || !animation.add || change ? self.refresh() : gsap.delayedCall(0.01, () => start || end || self.refresh()) && (change = 0.01) && (start = end = 0); // if the animation is a timeline, it may not have been populated yet, so it wouldn't render at the proper place on the first refresh(), thus we should schedule one for the next tick. If \"change\" is defined, we know it must be re-enabling, thus we can refresh() right away.\n\t}\n\n\n\tstatic register(core) {\n\t\tif (!_coreInitted) {\n\t\t\tgsap = core || _getGSAP();\n\t\t\t_windowExists() && window.document && ScrollTrigger.enable();\n\t\t\t_coreInitted = _enabled;\n\t\t}\n\t\treturn _coreInitted;\n\t}\n\n\tstatic defaults(config) {\n\t\tif (config) {\n\t\t\tfor (let p in config) {\n\t\t\t\t_defaults[p] = config[p];\n\t\t\t}\n\t\t}\n\t\treturn _defaults;\n\t}\n\n\tstatic disable(reset, kill) {\n\t\t_enabled = 0;\n\t\t_triggers.forEach(trigger => trigger[kill ? \"kill\" : \"disable\"](reset));\n\t\t_removeListener(_win, \"wheel\", _onScroll);\n\t\t_removeListener(_doc, \"scroll\", _onScroll);\n\t\tclearInterval(_syncInterval);\n\t\t_removeListener(_doc, \"touchcancel\", _passThrough);\n\t\t_removeListener(_body, \"touchstart\", _passThrough);\n\t\t_multiListener(_removeListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\t\t_multiListener(_removeListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\t\t_resizeDelay.kill();\n\t\t_iterateAutoRefresh(_removeListener);\n\t\tfor (let i = 0; i < _scrollers.length; i+=3) {\n\t\t\t_wheelListener(_removeListener, _scrollers[i], _scrollers[i+1]);\n\t\t\t_wheelListener(_removeListener, _scrollers[i], _scrollers[i+2]);\n\t\t}\n\t}\n\n\tstatic enable() {\n\t\t_win = window;\n\t\t_doc = document;\n\t\t_docEl = _doc.documentElement;\n\t\t_body = _doc.body;\n\t\tif (gsap) {\n\t\t\t_toArray = gsap.utils.toArray;\n\t\t\t_clamp = gsap.utils.clamp;\n\t\t\t_context = gsap.core.context || _passThrough;\n\t\t\t_suppressOverwrites = gsap.core.suppressOverwrites || _passThrough;\n\t\t\t_scrollRestoration = _win.history.scrollRestoration || \"auto\";\n\t\t\tgsap.core.globals(\"ScrollTrigger\", ScrollTrigger); // must register the global manually because in Internet Explorer, functions (classes) don't have a \"name\" property.\n\t\t\tif (_body) {\n\t\t\t\t_enabled = 1;\n\t\t\t\tObserver.register(gsap);\n\t\t\t\t// isTouch is 0 if no touch, 1 if ONLY touch, and 2 if it can accommodate touch but also other types like mouse/pointer.\n\t\t\t\tScrollTrigger.isTouch = Observer.isTouch;\n\t\t\t\t_fixIOSBug = Observer.isTouch && /(iPad|iPhone|iPod|Mac)/g.test(navigator.userAgent); // since 2017, iOS has had a bug that causes event.clientX/Y to be inaccurate when a scroll occurs, thus we must alternate ignoring every other touchmove event to work around it. See https://bugs.webkit.org/show_bug.cgi?id=181954 and https://codepen.io/GreenSock/pen/ExbrPNa/087cef197dc35445a0951e8935c41503\n\t\t\t\t_addListener(_win, \"wheel\", _onScroll); // mostly for 3rd party smooth scrolling libraries.\n\t\t\t\t_root = [_win, _doc, _docEl, _body];\n\t\t\t\tif (gsap.matchMedia) {\n\t\t\t\t\tScrollTrigger.matchMedia = vars => {\n\t\t\t\t\t\tlet mm = gsap.matchMedia(),\n\t\t\t\t\t\t\tp;\n\t\t\t\t\t\tfor (p in vars) {\n\t\t\t\t\t\t\tmm.add(p, vars[p]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn mm;\n\t\t\t\t\t};\n\t\t\t\t\tgsap.addEventListener(\"matchMediaInit\", () => _revertAll());\n\t\t\t\t\tgsap.addEventListener(\"matchMediaRevert\", () => _revertRecorded());\n\t\t\t\t\tgsap.addEventListener(\"matchMedia\", () => {\n\t\t\t\t\t\t_refreshAll(0, 1);\n\t\t\t\t\t\t_dispatch(\"matchMedia\");\n\t\t\t\t\t});\n\t\t\t\t\tgsap.matchMedia(\"(orientation: portrait)\", () => { // when orientation changes, we should take new base measurements for the ignoreMobileResize feature.\n\t\t\t\t\t\t_setBaseDimensions();\n\t\t\t\t\t\treturn _setBaseDimensions;\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn(\"Requires GSAP 3.11.0 or later\");\n\t\t\t\t}\n\t\t\t\t_setBaseDimensions();\n\t\t\t\t_addListener(_doc, \"scroll\", _onScroll); // some browsers (like Chrome), the window stops dispatching scroll events on the window if you scroll really fast, but it's consistent on the document!\n\t\t\t\tlet bodyStyle = _body.style,\n\t\t\t\t\tborder = bodyStyle.borderTopStyle,\n\t\t\t\t\tAnimationProto = gsap.core.Animation.prototype,\n\t\t\t\t\tbounds, i;\n\t\t\t\tAnimationProto.revert || Object.defineProperty(AnimationProto, \"revert\", { value: function() { return this.time(-0.01, true); }}); // only for backwards compatibility (Animation.revert() was added after 3.10.4)\n\t\t\t\tbodyStyle.borderTopStyle = \"solid\"; // works around an issue where a margin of a child element could throw off the bounds of the _body, making it seem like there's a margin when there actually isn't. The border ensures that the bounds are accurate.\n\t\t\t\tbounds = _getBounds(_body);\n\t\t\t\t_vertical.m = Math.round(bounds.top + _vertical.sc()) || 0; // accommodate the offset of the caused by margins and/or padding\n\t\t\t\t_horizontal.m = Math.round(bounds.left + _horizontal.sc()) || 0;\n\t\t\t\tborder ? (bodyStyle.borderTopStyle = border) : bodyStyle.removeProperty(\"border-top-style\");\n\t\t\t\t// TODO: (?) maybe move to leveraging the velocity mechanism in Observer and skip intervals.\n\t\t\t\t_syncInterval = setInterval(_sync, 250);\n\t\t\t\tgsap.delayedCall(0.5, () => _startup = 0);\n\t\t\t\t_addListener(_doc, \"touchcancel\", _passThrough); // some older Android devices intermittently stop dispatching \"touchmove\" events if we don't listen for \"touchcancel\" on the document.\n\t\t\t\t_addListener(_body, \"touchstart\", _passThrough); //works around Safari bug: https://greensock.com/forums/topic/21450-draggable-in-iframe-on-mobile-is-buggy/\n\t\t\t\t_multiListener(_addListener, _doc, \"pointerdown,touchstart,mousedown\", _pointerDownHandler);\n\t\t\t\t_multiListener(_addListener, _doc, \"pointerup,touchend,mouseup\", _pointerUpHandler);\n\t\t\t\t_transformProp = gsap.utils.checkPrefix(\"transform\");\n\t\t\t\t_stateProps.push(_transformProp);\n\t\t\t\t_coreInitted = _getTime();\n\t\t\t\t_resizeDelay = gsap.delayedCall(0.2, _refreshAll).pause();\n\t\t\t\t_autoRefresh = [_doc, \"visibilitychange\", () => {\n\t\t\t\t\tlet w = _win.innerWidth,\n\t\t\t\t\t\th = _win.innerHeight;\n\t\t\t\t\tif (_doc.hidden) {\n\t\t\t\t\t\t_prevWidth = w;\n\t\t\t\t\t\t_prevHeight = h;\n\t\t\t\t\t} else if (_prevWidth !== w || _prevHeight !== h) {\n\t\t\t\t\t\t_onResize();\n\t\t\t\t\t}\n\t\t\t\t}, _doc, \"DOMContentLoaded\", _refreshAll, _win, \"load\", _refreshAll, _win, \"resize\", _onResize];\n\t\t\t\t_iterateAutoRefresh(_addListener);\n\t\t\t\t_triggers.forEach(trigger => trigger.enable(0, 1));\n\t\t\t\tfor (i = 0; i < _scrollers.length; i+=3) {\n\t\t\t\t\t_wheelListener(_removeListener, _scrollers[i], _scrollers[i+1]);\n\t\t\t\t\t_wheelListener(_removeListener, _scrollers[i], _scrollers[i+2]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic config(vars) {\n\t\t(\"limitCallbacks\" in vars) && (_limitCallbacks = !!vars.limitCallbacks);\n\t\tlet ms = vars.syncInterval;\n\t\tms && clearInterval(_syncInterval) || ((_syncInterval = ms) && setInterval(_sync, ms));\n\t\t(\"ignoreMobileResize\" in vars) && (_ignoreMobileResize = ScrollTrigger.isTouch === 1 && vars.ignoreMobileResize);\n\t\tif (\"autoRefreshEvents\" in vars) {\n\t\t\t_iterateAutoRefresh(_removeListener) || _iterateAutoRefresh(_addListener, vars.autoRefreshEvents || \"none\");\n\t\t\t_ignoreResize = (vars.autoRefreshEvents + \"\").indexOf(\"resize\") === -1;\n\t\t}\n\t}\n\n\tstatic scrollerProxy(target, vars) {\n\t\tlet t = _getTarget(target),\n\t\t\ti = _scrollers.indexOf(t),\n\t\t\tisViewport = _isViewport(t);\n\t\tif (~i) {\n\t\t\t_scrollers.splice(i, isViewport ? 6 : 2);\n\t\t}\n\t\tif (vars) {\n\t\t\tisViewport ? _proxies.unshift(_win, vars, _body, vars, _docEl, vars) : _proxies.unshift(t, vars);\n\t\t}\n\t}\n\n\tstatic clearMatchMedia(query) {\n\t\t_triggers.forEach(t => t._ctx && t._ctx.query === query && t._ctx.kill(true, true));\n\t}\n\n\tstatic isInViewport(element, ratio, horizontal) {\n\t\tlet bounds = (_isString(element) ? _getTarget(element) : element).getBoundingClientRect(),\n\t\t\toffset = bounds[horizontal ? _width : _height] * ratio || 0;\n\t\treturn horizontal ? bounds.right - offset > 0 && bounds.left + offset < _win.innerWidth : bounds.bottom - offset > 0 && bounds.top + offset < _win.innerHeight;\n\t}\n\n\tstatic positionInViewport(element, referencePoint, horizontal) {\n\t\t_isString(element) && (element = _getTarget(element));\n\t\tlet bounds = element.getBoundingClientRect(),\n\t\t\tsize = bounds[horizontal ? _width : _height],\n\t\t\toffset = referencePoint == null ? size / 2 : ((referencePoint in _keywords) ? _keywords[referencePoint] * size : ~referencePoint.indexOf(\"%\") ? parseFloat(referencePoint) * size / 100 : parseFloat(referencePoint) || 0);\n\t\treturn horizontal ? (bounds.left + offset) / _win.innerWidth : (bounds.top + offset) / _win.innerHeight;\n\t}\n\n\tstatic killAll(allowListeners) {\n\t\t_triggers.forEach(t => t.vars.id !== \"ScrollSmoother\" && t.kill());\n\t\tif (allowListeners !== true) {\n\t\t\tlet listeners = _listeners.killAll || [];\n\t\t\t_listeners = {};\n\t\t\tlisteners.forEach(f => f());\n\t\t}\n\t}\n\n}\n\nScrollTrigger.version = \"3.11.2\";\nScrollTrigger.saveStyles = targets => targets ? _toArray(targets).forEach(target => { // saved styles are recorded in a consecutive alternating Array, like [element, cssText, transform attribute, cache, matchMedia, ...]\n\tif (target && target.style) {\n\t\tlet i = _savedStyles.indexOf(target);\n\t\ti >= 0 && _savedStyles.splice(i, 5);\n\t\t_savedStyles.push(target, target.style.cssText, target.getBBox && target.getAttribute(\"transform\"), gsap.core.getCache(target), _context());\n\t}\n}) : _savedStyles;\nScrollTrigger.revert = (soft, media) => _revertAll(!soft, media);\nScrollTrigger.create = (vars, animation) => new ScrollTrigger(vars, animation);\nScrollTrigger.refresh = safe => safe ? _onResize() : (_coreInitted || ScrollTrigger.register()) && _refreshAll(true);\nScrollTrigger.update = _updateAll;\nScrollTrigger.clearScrollMemory = _clearScrollMemory;\nScrollTrigger.maxScroll = (element, horizontal) => _maxScroll(element, horizontal ? _horizontal : _vertical);\nScrollTrigger.getScrollFunc = (element, horizontal) => _getScrollFunc(_getTarget(element), horizontal ? _horizontal : _vertical);\nScrollTrigger.getById = id => _ids[id];\nScrollTrigger.getAll = () => _triggers.filter(t => t.vars.id !== \"ScrollSmoother\"); // it's common for people to ScrollTrigger.getAll(t => t.kill()) on page routes, for example, and we don't want it to ruin smooth scrolling by killing the main ScrollSmoother one.\nScrollTrigger.isScrolling = () => !!_lastScrollTime;\nScrollTrigger.snapDirectional = _snapDirectional;\nScrollTrigger.addEventListener = (type, callback) => {\n\tlet a = _listeners[type] || (_listeners[type] = []);\n\t~a.indexOf(callback) || a.push(callback);\n};\nScrollTrigger.removeEventListener = (type, callback) => {\n\tlet a = _listeners[type],\n\t\ti = a && a.indexOf(callback);\n\ti >= 0 && a.splice(i, 1);\n};\nScrollTrigger.batch = (targets, vars) => {\n\tlet result = [],\n\t\tvarsCopy = {},\n\t\tinterval = vars.interval || 0.016,\n\t\tbatchMax = vars.batchMax || 1e9,\n\t\tproxyCallback = (type, callback) => {\n\t\t\tlet elements = [],\n\t\t\t\ttriggers = [],\n\t\t\t\tdelay = gsap.delayedCall(interval, () => {callback(elements, triggers); elements = []; triggers = [];}).pause();\n\t\t\treturn self => {\n\t\t\t\telements.length || delay.restart(true);\n\t\t\t\telements.push(self.trigger);\n\t\t\t\ttriggers.push(self);\n\t\t\t\tbatchMax <= elements.length && delay.progress(1);\n\t\t\t};\n\t\t},\n\t\tp;\n\tfor (p in vars) {\n\t\tvarsCopy[p] = (p.substr(0, 2) === \"on\" && _isFunction(vars[p]) && p !== \"onRefreshInit\") ? proxyCallback(p, vars[p]) : vars[p];\n\t}\n\tif (_isFunction(batchMax)) {\n\t\tbatchMax = batchMax();\n\t\t_addListener(ScrollTrigger, \"refresh\", () => batchMax = vars.batchMax());\n\t}\n\t_toArray(targets).forEach(target => {\n\t\tlet config = {};\n\t\tfor (p in varsCopy) {\n\t\t\tconfig[p] = varsCopy[p];\n\t\t}\n\t\tconfig.trigger = target;\n\t\tresult.push(ScrollTrigger.create(config));\n\t});\n\treturn result;\n}\n\n\n// to reduce file size. clamps the scroll and also returns a duration multiplier so that if the scroll gets chopped shorter, the duration gets curtailed as well (otherwise if you're very close to the top of the page, for example, and swipe up really fast, it'll suddenly slow down and take a long time to reach the top).\nlet _clampScrollAndGetDurationMultiplier = (scrollFunc, current, end, max) => {\n\t\tcurrent > max ? scrollFunc(max) : current < 0 && scrollFunc(0);\n\t\treturn end > max ? (max - current) / (end - current) : end < 0 ? current / (current - end) : 1;\n\t},\n\t_allowNativePanning = (target, direction) => {\n\t\tif (direction === true) {\n\t\t\ttarget.style.removeProperty(\"touch-action\");\n\t\t} else {\n\t\t\ttarget.style.touchAction = direction === true ? \"auto\" : direction ? \"pan-\" + direction + (Observer.isTouch ? \" pinch-zoom\" : \"\") : \"none\"; // note: Firefox doesn't support it pinch-zoom properly, at least in addition to a pan-x or pan-y.\n\t\t}\n\t\ttarget === _docEl && _allowNativePanning(_body, direction);\n\t},\n\t_overflow = {auto: 1, scroll: 1},\n\t_nestedScroll = ({event, target, axis}) => {\n\t\tlet node = (event.changedTouches ? event.changedTouches[0] : event).target,\n\t\t\tcache = node._gsap || gsap.core.getCache(node),\n\t\t\ttime = _getTime(), cs;\n\t\tif (!cache._isScrollT || time - cache._isScrollT > 2000) { // cache for 2 seconds to improve performance.\n\t\t\twhile (node && node.scrollHeight <= node.clientHeight) node = node.parentNode;\n\t\t\tcache._isScroll = node && !_isViewport(node) && node !== target && (_overflow[(cs = _getComputedStyle(node)).overflowY] || _overflow[cs.overflowX]);\n\t\t\tcache._isScrollT = time;\n\t\t}\n\t\tif (cache._isScroll || axis === \"x\") {\n\t\t\tevent.stopPropagation();\n\t\t\tevent._gsapAllow = true\n\t\t}\n\t},\n\t// capture events on scrollable elements INSIDE the and allow those by calling stopPropagation() when we find a scrollable ancestor\n\t_inputObserver = (target, type, inputs, nested) => Observer.create({\n\t\ttarget: target,\n\t\tcapture: true,\n\t\tdebounce: false,\n\t\tlockAxis: true,\n\t\ttype: type,\n\t\tonWheel: (nested = nested && _nestedScroll),\n\t\tonPress: nested,\n\t\tonDrag: nested,\n\t\tonScroll: nested,\n\t\tonEnable: () => inputs && _addListener(_doc, Observer.eventTypes[0], _captureInputs, false, true),\n\t\tonDisable: () => _removeListener(_doc, Observer.eventTypes[0], _captureInputs, true)\n\t}),\n\t_inputExp = /(input|label|select|textarea)/i,\n\t_inputIsFocused,\n\t_captureInputs = e => {\n\t\tlet isInput = _inputExp.test(e.target.tagName);\n\t\tif (isInput || _inputIsFocused) {\n\t\t\te._gsapAllow = true;\n\t\t\t_inputIsFocused = isInput;\n\t\t}\n\t},\n\t_getScrollNormalizer = vars => {\n\t\t_isObject(vars) || (vars = {});\n\t\tvars.preventDefault = vars.isNormalizer = vars.allowClicks = true;\n\t\tvars.type || (vars.type = \"wheel,touch\");\n\t\tvars.debounce = !!vars.debounce;\n\t\tvars.id = vars.id || \"normalizer\";\n\t\tlet {normalizeScrollX, momentum, allowNestedScroll} = vars,\n\t\t\tself, maxY,\n\t\t\ttarget = _getTarget(vars.target) || _docEl,\n\t\t\tsmoother = gsap.core.globals().ScrollSmoother,\n\t\t\tsmootherInstance = smoother && smoother.get(),\n\t\t\tcontent = _fixIOSBug && ((vars.content && _getTarget(vars.content)) || (smootherInstance && vars.content !== false && !smootherInstance.smooth() && smootherInstance.content())),\n\t\t\tscrollFuncY = _getScrollFunc(target, _vertical),\n\t\t\tscrollFuncX = _getScrollFunc(target, _horizontal),\n\t\t\tscale = 1,\n\t\t\tinitialScale = (Observer.isTouch && _win.visualViewport ? _win.visualViewport.scale * _win.visualViewport.width : _win.outerWidth) / _win.innerWidth,\n\t\t\twheelRefresh = 0,\n\t\t\tresolveMomentumDuration = _isFunction(momentum) ? () => momentum(self) : () => momentum || 2.8,\n\t\t\tlastRefreshID, skipTouchMove,\n\t\t\tinputObserver = _inputObserver(target, vars.type, true, allowNestedScroll),\n\t\t\tresumeTouchMove = () => skipTouchMove = false,\n\t\t\tscrollClampX = _passThrough,\n\t\t\tscrollClampY = _passThrough,\n\t\t\tupdateClamps = () => {\n\t\t\t\tmaxY = _maxScroll(target, _vertical);\n\t\t\t\tscrollClampY = _clamp(_fixIOSBug ? 1 : 0, maxY);\n\t\t\t\tnormalizeScrollX && (scrollClampX = _clamp(0, _maxScroll(target, _horizontal)));\n\t\t\t\tlastRefreshID = _refreshID;\n\t\t\t},\n\t\t\tremoveContentOffset = () => {\n\t\t\t\tcontent._gsap.y = _round(parseFloat(content._gsap.y) + scrollFuncY.offset) + \"px\";\n\t\t\t\tcontent.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + parseFloat(content._gsap.y) + \", 0, 1)\";\n\t\t\t\tscrollFuncY.offset = scrollFuncY.cacheID = 0;\n\t\t\t},\n\t\t\tignoreDrag = () => {\n\t\t\t\tif (skipTouchMove) {\n\t\t\t\t\trequestAnimationFrame(resumeTouchMove);\n\t\t\t\t\tlet offset = _round(self.deltaY / 2),\n\t\t\t\t\t\tscroll = scrollClampY(scrollFuncY.v - offset);\n\t\t\t\t\tif (content && scroll !== scrollFuncY.v + scrollFuncY.offset) {\n\t\t\t\t\t\tscrollFuncY.offset = scroll - scrollFuncY.v;\n\t\t\t\t\t\tlet y = _round((parseFloat(content && content._gsap.y) || 0) - scrollFuncY.offset);\n\t\t\t\t\t\tcontent.style.transform = \"matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, \" + y + \", 0, 1)\";\n\t\t\t\t\t\tcontent._gsap.y = y + \"px\";\n\t\t\t\t\t\tscrollFuncY.cacheID = _scrollers.cache;\n\t\t\t\t\t\t_updateAll();\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tscrollFuncY.offset && removeContentOffset();\n\t\t\t\tskipTouchMove = true;\n\t\t\t},\n\t\t\ttween, startScrollX, startScrollY, onStopDelayedCall,\n\t\t\tonResize = () => { // if the window resizes, like on an iPhone which Apple FORCES the address bar to show/hide even if we event.preventDefault(), it may be scrolling too far now that the address bar is showing, so we must dynamically adjust the momentum tween.\n\t\t\t\tupdateClamps();\n\t\t\t\tif (tween.isActive() && tween.vars.scrollY > maxY) {\n\t\t\t\t\tscrollFuncY() > maxY ? tween.progress(1) && scrollFuncY(maxY) : tween.resetTo(\"scrollY\", maxY);\n\t\t\t\t}\n\t\t\t};\n\t\tcontent && gsap.set(content, {y: \"+=0\"}); // to ensure there's a cache (element._gsap)\n\t\tvars.ignoreCheck = e => (_fixIOSBug && e.type === \"touchmove\" && ignoreDrag(e)) || (scale > 1.05 && e.type !== \"touchstart\") || self.isGesturing || (e.touches && e.touches.length > 1);\n\t\tvars.onPress = () => {\n\t\t\tlet prevScale = scale;\n\t\t\tscale = _round(((_win.visualViewport && _win.visualViewport.scale) || 1) / initialScale);\n\t\t\ttween.pause();\n\t\t\tprevScale !== scale && _allowNativePanning(target, scale > 1.01 ? true : normalizeScrollX ? false : \"x\");\n\t\t\tstartScrollX = scrollFuncX();\n\t\t\tstartScrollY = scrollFuncY();\n\t\t\tupdateClamps();\n\t\t\tlastRefreshID = _refreshID;\n\t\t}\n\t\tvars.onRelease = vars.onGestureStart = (self, wasDragging) => {\n\t\t\tscrollFuncY.offset && removeContentOffset();\n\t\t\tif (!wasDragging) {\n\t\t\t\tonStopDelayedCall.restart(true);\n\t\t\t} else {\n\t\t\t\t_scrollers.cache++; // make sure we're pulling the non-cached value\n\t\t\t\t// alternate algorithm: durX = Math.min(6, Math.abs(self.velocityX / 800)),\tdur = Math.max(durX, Math.min(6, Math.abs(self.velocityY / 800))); dur = dur * (0.4 + (1 - _power4In(dur / 6)) * 0.6)) * (momentumSpeed || 1)\n\t\t\t\tlet dur = resolveMomentumDuration(),\n\t\t\t\t\tcurrentScroll, endScroll;\n\t\t\t\tif (normalizeScrollX) {\n\t\t\t\t\tcurrentScroll = scrollFuncX();\n\t\t\t\t\tendScroll = currentScroll + (dur * 0.05 * -self.velocityX) / 0.227; // the constant .227 is from power4(0.05). velocity is inverted because scrolling goes in the opposite direction.\n\t\t\t\t\tdur *= _clampScrollAndGetDurationMultiplier(scrollFuncX, currentScroll, endScroll, _maxScroll(target, _horizontal));\n\t\t\t\t\ttween.vars.scrollX = scrollClampX(endScroll);\n\t\t\t\t}\n\t\t\t\tcurrentScroll = scrollFuncY();\n\t\t\t\tendScroll = currentScroll + (dur * 0.05 * -self.velocityY) / 0.227; // the constant .227 is from power4(0.05)\n\t\t\t\tdur *= _clampScrollAndGetDurationMultiplier(scrollFuncY, currentScroll, endScroll, _maxScroll(target, _vertical));\n\t\t\t\ttween.vars.scrollY = scrollClampY(endScroll);\n\t\t\t\ttween.invalidate().duration(dur).play(0.01);\n\t\t\t\tif (_fixIOSBug && tween.vars.scrollY >= maxY || currentScroll >= maxY-1) { // iOS bug: it'll show the address bar but NOT fire the window \"resize\" event until the animation is done but we must protect against overshoot so we leverage an onUpdate to do so.\n\t\t\t\t\tgsap.to({}, {onUpdate: onResize, duration: dur});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tvars.onWheel = () => {\n\t\t\ttween._ts && tween.pause();\n\t\t\tif (_getTime() - wheelRefresh > 1000) { // after 1 second, refresh the clamps otherwise that'll only happen when ScrollTrigger.refresh() is called or for touch-scrolling.\n\t\t\t\tlastRefreshID = 0;\n\t\t\t\twheelRefresh = _getTime();\n\t\t\t}\n\t\t};\n\t\tvars.onChange = (self, dx, dy, xArray, yArray) => {\n\t\t\t_refreshID !== lastRefreshID && updateClamps();\n\t\t\tdx && normalizeScrollX && scrollFuncX(scrollClampX(xArray[2] === dx ? startScrollX + (self.startX - self.x) : scrollFuncX() + dx - xArray[1])); // for more precision, we track pointer/touch movement from the start, otherwise it'll drift.\n\t\t\tif (dy) {\n\t\t\t\tscrollFuncY.offset && removeContentOffset();\n\t\t\t\tlet isTouch = yArray[2] === dy,\n\t\t\t\t\ty = isTouch ? startScrollY + self.startY - self.y : scrollFuncY() + dy - yArray[1],\n\t\t\t\t\tyClamped = scrollClampY(y);\n\t\t\t\tisTouch && y !== yClamped && (startScrollY += yClamped - y);\n\t\t\t\tscrollFuncY(yClamped);\n\t\t\t}\n\t\t\t(dy || dx) && _updateAll();\n\t\t};\n\t\tvars.onEnable = () => {\n\t\t\t_allowNativePanning(target, normalizeScrollX ? false : \"x\");\n\t\t\tScrollTrigger.addEventListener(\"refresh\", onResize);\n\t\t\t_addListener(_win, \"resize\", onResize);\n\t\t\tif (scrollFuncY.smooth) {\n\t\t\t\tscrollFuncY.target.style.scrollBehavior = \"auto\";\n\t\t\t\tscrollFuncY.smooth = scrollFuncX.smooth = false;\n\t\t\t}\n\t\t\tinputObserver.enable();\n\t\t};\n\t\tvars.onDisable = () => {\n\t\t\t_allowNativePanning(target, true);\n\t\t\t_removeListener(_win, \"resize\", onResize);\n\t\t\tScrollTrigger.removeEventListener(\"refresh\", onResize);\n\t\t\tinputObserver.kill();\n\t\t};\n\t\tvars.lockAxis = vars.lockAxis !== false;\n\t\tself = new Observer(vars);\n\t\tself.iOS = _fixIOSBug; // used in the Observer getCachedScroll() function to work around an iOS bug that wreaks havoc with TouchEvent.clientY if we allow scroll to go all the way back to 0.\n\t\t_fixIOSBug && !scrollFuncY() && scrollFuncY(1); // iOS bug causes event.clientY values to freak out (wildly inaccurate) if the scroll position is exactly 0.\n\t\t_fixIOSBug && gsap.ticker.add(_passThrough); // prevent the ticker from sleeping\n\t\tonStopDelayedCall = self._dc;\n\t\ttween = gsap.to(self, {ease: \"power4\", paused: true, scrollX: normalizeScrollX ? \"+=0.1\" : \"+=0\", scrollY: \"+=0.1\", onComplete: onStopDelayedCall.vars.onComplete});\n\t\treturn self;\n\t};\n\nScrollTrigger.sort = func => _triggers.sort(func || ((a, b) => (a.vars.refreshPriority || 0) * -1e6 + a.start - (b.start + (b.vars.refreshPriority || 0) * -1e6)));\nScrollTrigger.observe = vars => new Observer(vars);\nScrollTrigger.normalizeScroll = vars => {\n\tif (typeof(vars) === \"undefined\") {\n\t\treturn _normalizer;\n\t}\n\tif (vars === true && _normalizer) {\n\t\treturn _normalizer.enable();\n\t}\n\tif (vars === false) {\n\t\treturn _normalizer && _normalizer.kill();\n\t}\n\tlet normalizer = vars instanceof Observer ? vars : _getScrollNormalizer(vars);\n\t_normalizer && _normalizer.target === normalizer.target && _normalizer.kill();\n\t_isViewport(normalizer.target) && (_normalizer = normalizer);\n\treturn normalizer;\n};\n\n\nScrollTrigger.core = { // smaller file size way to leverage in ScrollSmoother and Observer\n\t_getVelocityProp,\n\t_inputObserver,\n\t_scrollers,\n\t_proxies,\n\tbridge: {\n\t\t// when normalizeScroll sets the scroll position (ss = setScroll)\n\t\tss: () => {\n\t\t\t_lastScrollTime || _dispatch(\"scrollStart\");\n\t\t\t_lastScrollTime = _getTime();\n\t\t},\n\t\t// a way to get the _refreshing value in Observer\n\t\tref: () => _refreshing\n\t}\n};\n\n_getGSAP() && gsap.registerPlugin(ScrollTrigger);\n\nexport { ScrollTrigger as default };"],"names":["_getGSAP","gsap","window","registerPlugin","_getProxyProp","element","property","_proxies","indexOf","_isViewport","el","_root","_addListener","type","func","nonPassive","capture","addEventListener","passive","_removeListener","removeEventListener","_onScroll","_normalizer","isPressed","_scrollers","cache","_scrollCacheFunc","f","doNotCache","cachingFunc","value","_startup","_win","history","scrollRestoration","isNormalizing","v","Math","round","iOS","cacheID","_bridge","offset","_getTarget","t","utils","toArray","config","nullTargetWarn","console","warn","_getScrollFunc","s","sc","_doc","scrollingElement","_docEl","i","_vertical","push","prev","arguments","length","target","smooth","getProperty","_getVelocityProp","minTimeRefresh","useDelta","update","force","_getTime","min","t1","v2","v1","t2","dropToZeroTime","max","reset","getVelocity","latestValue","tOld","vOld","_getEvent","e","preventDefault","_gsapAllow","changedTouches","_getAbsoluteMax","a","abs","_setScrollTrigger","ScrollTrigger","core","globals","_integrate","data","bridge","scrollers","proxies","name","_initCore","document","body","documentElement","_body","clamp","_pointerType","_isTouch","Observer","isTouch","matchMedia","matches","navigator","maxTouchPoints","msMaxTouchPoints","_eventTypes","eventTypes","split","setTimeout","_coreInitted","_observers","Date","now","_scrollLeft","_scrollTop","_horizontal","p","p2","os","os2","d","d2","scrollTo","pageXOffset","op","pageYOffset","init","vars","tolerance","dragMinimum","lineHeight","debounce","onStop","onStopDelay","ignore","wheelSpeed","event","onDragStart","onDragEnd","onDrag","onPress","onRelease","onRight","onLeft","onUp","onDown","onChangeX","onChangeY","onChange","onToggleX","onToggleY","onHover","onHoverEnd","onMove","ignoreCheck","isNormalizer","onGestureStart","onGestureEnd","onWheel","onEnable","onDisable","onClick","scrollSpeed","allowClicks","lockAxis","onLockAxis","clickCapture","onClickTime","_ignoreCheck","isPointerOrTouch","self","limitToTouch","pointerType","dx","deltaX","dy","deltaY","changedX","changedY","prevDeltaX","prevDeltaY","moved","dragged","locked","wheeled","id","onDelta","x","y","index","_vx","_vy","requestAnimationFrame","onTouchOrPointerDelta","axis","_onDrag","clientX","clientY","isDragging","startX","startY","_onRelease","ownerDoc","wasDragging","eventData","delayedCall","defaultPrevented","click","createEvent","syntheticEvent","initMouseEvent","screenX","screenY","dispatchEvent","isGesturing","onStopDelayedCall","restart","_onGestureStart","touches","_onGestureEnd","onScroll","scrollFuncX","scrollFuncY","scrollX","scrollY","_onWheel","multiplier","deltaMode","innerHeight","_onMove","_onHover","_onHoverEnd","_onClick","parseFloat","getComputedStyle","this","isViewport","ownerDocument","_onPress","pause","_dc","onStopFunc","enable","isEnabled","disable","filter","o","kill","splice","version","create","register","getAll","slice","getById","_pointerDownHandler","_pointerIsDown","_pointerUpHandler","_passThrough","_round","_windowExists","_getBoundsFunc","_winOffsets","width","innerWidth","height","_getBounds","_maxScroll","_iterateAutoRefresh","events","_autoRefresh","_isString","_isFunction","_isNumber","_isObject","_endAnimation","animation","reversed","progress","_callback","enabled","result","totalTime","callbackAnimation","_getComputedStyle","_setDefaults","obj","defaults","_getSize","_getLabelRatioArray","timeline","labels","duration","_snapDirectional","snapIncrementOrArray","snap","Array","isArray","sort","b","direction","threshold","snapped","_multiListener","types","callback","forEach","_wheelListener","scrollFunc","wheelHandler","_offsetToPx","size","eqIndex","relative","charAt","substr","_keywords","_createMarker","container","matchWidthEl","containerAnimation","startColor","endColor","fontSize","indent","fontWeight","createElement","useFixedPosition","isScroller","parent","isStart","color","css","_right","_bottom","offsetWidth","_isStart","setAttribute","style","cssText","innerText","children","insertBefore","appendChild","_offset","_positionMarker","_sync","_lastScrollTime","_updateAll","clientWidth","_rafID","_dispatch","_setBaseDimensions","_baseScreenWidth","_baseScreenHeight","_onResize","_refreshing","_ignoreResize","fullscreenElement","webkitFullscreenElement","_ignoreMobileResize","_resizeDelay","_softRefresh","_refreshAll","_revertRecorded","media","_savedStyles","query","getBBox","uncache","_revertAll","trigger","_i","_triggers","_ctx","revert","_clearScrollMemory","_refreshingAll","rec","_scrollRestoration","_swapPinIn","pin","spacer","cs","spacerState","_gsap","swappedIn","_propNamesToCopy","spacerStyle","pinStyle","position","display","flexBasis","overflow","boxSizing","_width","_px","_height","_padding","_margin","_setState","parentNode","_getState","l","_stateProps","state","_parsePosition","scrollerSize","scroll","marker","markerScroller","scrollerBounds","borderWidth","scrollerMax","p1","time","seek","bounds","localOffset","globalOffset","offsets","left","top","removeProperty","m","_caScrollDist","_reparent","_stOrig","_prefixExp","test","getCache","_getTweenCreator","scroller","getTween","initialValue","change1","change2","tween","onComplete","modifiers","getScroll","lastScroll1","prop","lastScroll2","ratio","call","to","_toArray","_clamp","_time2","_syncInterval","_transformProp","_prevWidth","_prevHeight","_sort","_suppressOverwrites","_fixIOSBug","_context","_limitCallbacks","_primary","_time1","_enabled","_abs","_Right","_Left","_Top","_Bottom","_Width","_Height","withoutTransforms","xPercent","yPercent","rotation","rotationX","rotationY","scale","skewX","skewY","getBoundingClientRect","_markerDefaults","_defaults","toggleActions","anticipatePin","center","bottom","right","start","flipped","side","oppositeSide","_isFlipped","set","_ids","_listeners","_emptyArray","map","_refreshID","skipRevert","isRefreshing","refreshInits","scrollBehavior","refresh","end","setPositions","_dir","render","_lastScroll","_direction","isUpdating","recordVelocity","concat","_capsExp","replace","toLowerCase","tweenTo","pinCache","snapFunc","scroll1","scroll2","markerStart","markerEnd","markerStartTrigger","markerEndTrigger","markerVars","change","pinOriginalState","pinActiveState","pinState","pinGetter","pinSetter","pinStart","pinChange","spacingStart","markerStartSetter","markerEndSetter","snap1","snap2","scrubTween","scrubSmooth","snapDurClamp","snapDelayedCall","prevProgress","prevScroll","prevAnimProgress","caMarkerSetter","customRevertReturn","onUpdate","nodeType","toggleClass","onToggle","onRefresh","scrub","pinSpacing","invalidateOnRefresh","onScrubComplete","onSnapComplete","once","pinReparent","pinSpacer","fastScrollEnd","preventOverlaps","horizontal","isToggle","scrollerCache","pinType","callbacks","onEnter","onLeave","onEnterBack","onLeaveBack","markers","onRefreshInit","getScrollerSize","_getSizeFunc","getScrollerOffsets","_getOffsetsFunc","lastSnap","lastRefresh","bind","refreshPriority","tweenScroll","scrubDuration","ease","totalProgress","paused","lazy","_initted","immediateRender","scrollTrigger","snapTo","_getClosestLabel","_getLabelAtDirection","st","directional","delay","refreshedRecently","isActive","velocity","naturalEnd","inertia","endValue","endScroll","onStart","onInterrupt","stRevert","targets","className","current","nativeElement","spacerIsNative","classList","add","force3D","quickSetter","content","_makePositionable","oldOnUpdate","oldParams","onUpdateParams","eventCallback","apply","previous","next","temp","r","prevRefreshing","isReverted","_swapPinOut","removeChild","soft","invalidate","isVertical","override","curTrigger","curPin","oppositeScroll","initted","revertedPins","otherPinOffset","parsedEnd","parsedEndTrigger","endTrigger","parsedStart","pinnedContainer","triggerIndex","unshift","_pinPush","ceil","_copyState","omitOffsets","_pinOffset","endAnimation","labelToScroll","label","getTrailing","reverse","forceFake","toggleState","action","stateChanged","toggled","isAtMax","isTakingAction","clipped","_dp","_time","_start","resetTo","_tTime","_tDur","n","newStart","newEnd","allowAnimation","onKill","clearInterval","context","suppressOverwrites","userAgent","mm","bodyStyle","border","borderTopStyle","AnimationProto","Animation","prototype","Object","defineProperty","setInterval","checkPrefix","w","h","hidden","limitCallbacks","ms","syncInterval","ignoreMobileResize","autoRefreshEvents","scrollerProxy","clearMatchMedia","isInViewport","positionInViewport","referencePoint","killAll","allowListeners","listeners","saveStyles","getAttribute","safe","clearScrollMemory","maxScroll","getScrollFunc","isScrolling","snapDirectional","batch","proxyCallback","elements","triggers","interval","batchMax","varsCopy","_clampScrollAndGetDurationMultiplier","_allowNativePanning","touchAction","_nestedScroll","node","_isScrollT","scrollHeight","clientHeight","_isScroll","_overflow","overflowY","overflowX","stopPropagation","_inputObserver","inputs","nested","_captureInputs","_getScrollNormalizer","resumeTouchMove","skipTouchMove","updateClamps","maxY","scrollClampY","normalizeScrollX","scrollClampX","lastRefreshID","removeContentOffset","transform","onResize","startScrollX","startScrollY","momentum","allowNestedScroll","smoother","ScrollSmoother","smootherInstance","get","initialScale","visualViewport","outerWidth","wheelRefresh","resolveMomentumDuration","inputObserver","ignoreDrag","prevScale","currentScroll","dur","velocityX","velocityY","play","_ts","xArray","yArray","yClamped","ticker","_inputIsFocused","auto","_inputExp","isInput","tagName","observe","normalizeScroll","normalizer","ss","ref"],"mappings":"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"} \ No newline at end of file diff --git a/assets/gsap/TextPlugin.min.js b/assets/gsap/TextPlugin.min.js new file mode 100644 index 0000000..18677de --- /dev/null +++ b/assets/gsap/TextPlugin.min.js @@ -0,0 +1,11 @@ +/*! + * TextPlugin 3.11.2 + * https://greensock.com + * + * @license Copyright 2022, GreenSock. All rights reserved. + * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. + * @author: Jack Doyle, jack@greensock.com + */ + +!function(D,u){"object"==typeof exports&&"undefined"!=typeof module?u(exports):"function"==typeof define&&define.amd?define(["exports"],u):u((D=D||self).window=D.window||{})}(this,function(D){"use strict";var i=/(?:^\s+|\s+$)/g,r=/([\uD800-\uDBFF][\uDC00-\uDFFF](?:[\u200D\uFE0F][\uD800-\uDBFF][\uDC00-\uDFFF]){2,}|\uD83D\uDC69(?:\u200D(?:(?:\uD83D\uDC69\u200D)?\uD83D\uDC67|(?:\uD83D\uDC69\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]\uFE0F|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC6F\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3C-\uDD3E\uDDD6-\uDDDF])\u200D[\u2640\u2642]\uFE0F|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F\u200D[\u2640\u2642]|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642])\uFE0F|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC69\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708]))\uFE0F|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83D\uDC69\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\u200D(?:(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F)/;function splitInnerHTML(D,u,F,C){for(var E,e=D.firstChild,t=[];e;)3===e.nodeType?(E=(e.nodeValue+"").replace(/^\n+/g,""),C||(E=E.replace(/\s+/g," ")),t.push.apply(t,emojiSafeSplit(E,u,F,C))):"br"===(e.nodeName+"").toLowerCase()?t[t.length-1]+="
":t.push(e.outerHTML),e=e.nextSibling;for(E=t.length;E--;)"&"===t[E]&&t.splice(E,1,"&");return t}function emojiSafeSplit(D,u,F,C){if(D+="",F&&(D=D.trim?D.trim():D.replace(i,"")),u&&""!==u)return D.replace(/>/g,">").replace(/"===e?">":"<"===e?"<":!C||" "!==e||" "!==D.charAt(B-1)&&" "!==D.charAt(B+1)?e:" ");return t}var u,g,F={version:"3.11.2",name:"text",init:function init(D,u,F){"object"!=typeof u&&(u={value:u});var C,E,e,t,n,B,i,r,A=D.nodeName.toUpperCase(),s=this,l=u.newClass,o=u.oldClass,a=u.preserveSpaces,p=u.rtl,f=s.delimiter=u.delimiter||"",d=s.fillChar=u.fillChar||(u.padSpace?" ":"");if(s.svg=D.getBBox&&("TEXT"===A||"TSPAN"===A),!("innerHTML"in D||s.svg))return!1;if(s.target=D,"value"in u){for(e=splitInnerHTML(D,f,!1,a),(g=g||document.createElement("div")).innerHTML=u.value,E=splitInnerHTML(g,f,!1,a),s.from=F._from,!s.from&&!p||p&&s.from||(A=e,e=E,E=A),s.hasClass=!(!l&&!o),s.newClass=p?o:l,s.oldClass=p?l:o,C=(A=e.length-E.length)<0?e:E,A<0&&(A=-A);-1<--A;)C.push(d);if("diff"===u.type){for(n=[],B=[],i="",A=t=0;A":"")+e.slice(0,a).join(i)+(F?"":"")+(C?"":"")+i+s.slice(a).join(i)+(C?"":"")):e.slice(0,a).join(i)+i+s.slice(a).join(i),u.svg?r.textContent=E:r.innerHTML=" "===A&&~E.indexOf(" ")?E.split(" ").join("  "):E}};F.splitInnerHTML=splitInnerHTML,F.emojiSafeSplit=emojiSafeSplit,F.getText=function getText(D){var u=D.nodeType,F="";if(1===u||9===u||11===u){if("string"==typeof D.textContent)return D.textContent;for(D=D.firstChild;D;D=D.nextSibling)F+=getText(D)}else if(3===u||4===u)return D.nodeValue;return F},function _getGSAP(){return u||"undefined"!=typeof window&&(u=window.gsap)&&u.registerPlugin&&u}()&&u.registerPlugin(F),D.TextPlugin=F,D.default=F;if (typeof(window)==="undefined"||window!==D){Object.defineProperty(D,"__esModule",{value:!0})} else {delete D.default}}); + diff --git a/assets/gsap/TextPlugin.min.js.map b/assets/gsap/TextPlugin.min.js.map new file mode 100644 index 0000000..871baa2 --- /dev/null +++ b/assets/gsap/TextPlugin.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"TextPlugin.min.js","sources":["../src/utils/strings.js","../src/TextPlugin.js"],"sourcesContent":["/*!\n * strings: 3.11.2\n * https://greensock.com\n *\n * Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nlet _trimExp = /(?:^\\s+|\\s+$)/g;\n\nexport const emojiExp = /([\\uD800-\\uDBFF][\\uDC00-\\uDFFF](?:[\\u200D\\uFE0F][\\uD800-\\uDBFF][\\uDC00-\\uDFFF]){2,}|\\uD83D\\uDC69(?:\\u200D(?:(?:\\uD83D\\uDC69\\u200D)?\\uD83D\\uDC67|(?:\\uD83D\\uDC69\\u200D)?\\uD83D\\uDC66)|\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC69\\u200D)?\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC69\\u200D)?\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]\\uFE0F|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC6F\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3C-\\uDD3E\\uDDD6-\\uDDDF])\\u200D[\\u2640\\u2642]\\uFE0F|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF6\\uD83C\\uDDE6|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uFE0F\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642])\\uFE0F|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\uD83D\\uDC69\\u200D[\\u2695\\u2696\\u2708]|\\uD83D\\uDC68(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708]))\\uFE0F|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83D\\uDC69\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69]))|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D)?\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D)?\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92])|(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]))|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDD1-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83D\\uDC68(?:\\u200D(?:(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D)?\\uD83D\\uDC67|(?:(?:\\uD83D[\\uDC68\\uDC69])\\u200D)?\\uD83D\\uDC66)|\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC69\\uDC6E\\uDC70-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3D\\uDD3E\\uDDD1-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])?|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDEEB\\uDEEC\\uDEF4-\\uDEF8]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD4C\\uDD50-\\uDD6B\\uDD80-\\uDD97\\uDDC0\\uDDD0-\\uDDE6])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEF8]|\\uD83E[\\uDD10-\\uDD3A\\uDD3C-\\uDD3E\\uDD40-\\uDD45\\uDD47-\\uDD4C\\uDD50-\\uDD6B\\uDD80-\\uDD97\\uDDC0\\uDDD0-\\uDDE6])\\uFE0F)/;\n\nexport function getText(e) {\n\tlet type = e.nodeType,\n\t\tresult = \"\";\n\tif (type === 1 || type === 9 || type === 11) {\n\t\tif (typeof(e.textContent) === \"string\") {\n\t\t\treturn e.textContent;\n\t\t} else {\n\t\t\tfor (e = e.firstChild; e; e = e.nextSibling ) {\n\t\t\t\tresult += getText(e);\n\t\t\t}\n\t\t}\n\t} else if (type === 3 || type === 4) {\n\t\treturn e.nodeValue;\n\t}\n\treturn result;\n}\n\nexport function splitInnerHTML(element, delimiter, trim, preserveSpaces) {\n\tlet node = element.firstChild,\n\t\tresult = [], s;\n\twhile (node) {\n\t\tif (node.nodeType === 3) {\n\t\t\ts = (node.nodeValue + \"\").replace(/^\\n+/g, \"\");\n\t\t\tif (!preserveSpaces) {\n\t\t\t\ts = s.replace(/\\s+/g, \" \");\n\t\t\t}\n\t\t\tresult.push(...emojiSafeSplit(s, delimiter, trim, preserveSpaces));\n\t\t} else if ((node.nodeName + \"\").toLowerCase() === \"br\") {\n\t\t\tresult[result.length-1] += \"
\";\n\t\t} else {\n\t\t\tresult.push(node.outerHTML);\n\t\t}\n\t\tnode = node.nextSibling;\n\t}\n\ts = result.length;\n\twhile (s--) {\n\t\tresult[s] === \"&\" && result.splice(s, 1, \"&\");\n\t}\n\treturn result;\n}\n\n/*\n//smaller kb version that only handles the simpler emoji's, which is often perfectly adequate.\n\nlet _emoji = \"[\\uE000-\\uF8FF]|\\uD83C[\\uDC00-\\uDFFF]|\\uD83D[\\uDC00-\\uDFFF]|[\\u2694-\\u2697]|\\uD83E[\\uDD10-\\uDD5D]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]\",\n\t_emojiExp = new RegExp(_emoji),\n\t_emojiAndCharsExp = new RegExp(_emoji + \"|.\", \"g\"),\n\t_emojiSafeSplit = (text, delimiter, trim) => {\n\t\tif (trim) {\n\t\t\ttext = text.replace(_trimExp, \"\");\n\t\t}\n\t\treturn ((delimiter === \"\" || !delimiter) && _emojiExp.test(text)) ? text.match(_emojiAndCharsExp) : text.split(delimiter || \"\");\n\t};\n */\nexport function emojiSafeSplit(text, delimiter, trim, preserveSpaces) {\n\ttext += \"\"; // make sure it's cast as a string. Someone may pass in a number.\n\ttrim && (text = text.trim ? text.trim() : text.replace(_trimExp, \"\")); // IE9 and earlier compatibility\n\tif (delimiter && delimiter !== \"\") {\n\t\treturn text.replace(/>/g, \">\").replace(/= 0xD800 && character.charCodeAt(0) <= 0xDBFF) || (text.charCodeAt(i+1) >= 0xFE00 && text.charCodeAt(i+1) <= 0xFE0F)) { //special emoji characters use 2 or 4 unicode characters that we must keep together.\n\t\t\tj = ((text.substr(i, 12).split(emojiExp) || [])[1] || \"\").length || 2;\n\t\t\tcharacter = text.substr(i, j);\n\t\t\tresult.emoji = 1;\n\t\t\ti += j - 1;\n\t\t}\n\t\tresult.push(character === \">\" ? \">\" : (character === \"<\") ? \"<\" : preserveSpaces && character === \" \" && (text.charAt(i-1) === \" \" || text.charAt(i+1) === \" \") ? \" \" : character);\n\t}\n\treturn result;\n}","/*!\n * TextPlugin 3.11.2\n * https://greensock.com\n *\n * @license Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nimport { emojiSafeSplit, getText, splitInnerHTML } from \"./utils/strings.js\";\n\nlet gsap, _tempDiv,\n\t_getGSAP = () => gsap || (typeof(window) !== \"undefined\" && (gsap = window.gsap) && gsap.registerPlugin && gsap);\n\n\nexport const TextPlugin = {\n\tversion:\"3.11.2\",\n\tname:\"text\",\n\tinit(target, value, tween) {\n\t\ttypeof(value) !== \"object\" && (value = {value:value});\n\t\tlet i = target.nodeName.toUpperCase(),\n\t\t\tdata = this,\n\t\t\t{ newClass, oldClass, preserveSpaces, rtl } = value,\n\t\t\tdelimiter = data.delimiter = value.delimiter || \"\",\n\t\t\tfillChar = data.fillChar = value.fillChar || (value.padSpace ? \" \" : \"\"),\n\t\t\tshort, text, original, j, condensedText, condensedOriginal, aggregate, s;\n\t\tdata.svg = (target.getBBox && (i === \"TEXT\" || i === \"TSPAN\"));\n\t\tif (!(\"innerHTML\" in target) && !data.svg) {\n\t\t\treturn false;\n\t\t}\n\t\tdata.target = target;\n\t\tif (!(\"value\" in value)) {\n\t\t\tdata.text = data.original = [\"\"];\n\t\t\treturn;\n\t\t}\n\t\toriginal = splitInnerHTML(target, delimiter, false, preserveSpaces);\n\t\t_tempDiv || (_tempDiv = document.createElement(\"div\"));\n\t\t_tempDiv.innerHTML = value.value;\n\t\ttext = splitInnerHTML(_tempDiv, delimiter, false, preserveSpaces);\n\t\tdata.from = tween._from;\n\t\tif ((data.from || rtl) && !(rtl && data.from)) { // right-to-left or \"from()\" tweens should invert things (but if it's BOTH .from() and rtl, inverting twice equals not inverting at all :)\n\t\t\ti = original;\n\t\t\toriginal = text;\n\t\t\ttext = i;\n\t\t}\n\t\tdata.hasClass = !!(newClass || oldClass);\n\t\tdata.newClass = rtl ? oldClass : newClass;\n\t\tdata.oldClass = rtl ? newClass : oldClass;\n\t\ti = original.length - text.length;\n\t\tshort = i < 0 ? original : text;\n\t\tif (i < 0) {\n\t\t\ti = -i;\n\t\t}\n\t\twhile (--i > -1) {\n\t\t\tshort.push(fillChar);\n\t\t}\n\t\tif (value.type === \"diff\") {\n\t\t\tj = 0;\n\t\t\tcondensedText = [];\n\t\t\tcondensedOriginal = [];\n\t\t\taggregate = \"\";\n\t\t\tfor (i = 0; i < text.length; i++) {\n\t\t\t\ts = text[i];\n\t\t\t\tif (s === original[i]) {\n\t\t\t\t\taggregate += s;\n\t\t\t\t} else {\n\t\t\t\t\tcondensedText[j] = aggregate + s;\n\t\t\t\t\tcondensedOriginal[j++] = aggregate + original[i];\n\t\t\t\t\taggregate = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\ttext = condensedText;\n\t\t\toriginal = condensedOriginal;\n\t\t\tif (aggregate) {\n\t\t\t\ttext.push(aggregate);\n\t\t\t\toriginal.push(aggregate);\n\t\t\t}\n\t\t}\n\t\tvalue.speed && tween.duration(Math.min(0.05 / value.speed * short.length, value.maxDuration || 9999));\n\t\tdata.rtl = rtl;\n\t\tdata.original = original;\n\t\tdata.text = text;\n\t\tdata._props.push(\"text\");\n\t},\n\trender(ratio, data) {\n\t\tif (ratio > 1) {\n\t\t\tratio = 1;\n\t\t} else if (ratio < 0) {\n\t\t\tratio = 0;\n\t\t}\n\t\tif (data.from) {\n\t\t\tratio = 1 - ratio;\n\t\t}\n\t\tlet { text, hasClass, newClass, oldClass, delimiter, target, fillChar, original, rtl } = data,\n\t\t\tl = text.length,\n\t\t\ti = ((rtl ? 1 - ratio : ratio) * l + 0.5) | 0,\n\t\t\tapplyNew, applyOld, str;\n\t\tif (hasClass && ratio) {\n\t\t\tapplyNew = (newClass && i);\n\t\t\tapplyOld = (oldClass && i !== l);\n\t\t\tstr = (applyNew ? \"\" : \"\") + text.slice(0, i).join(delimiter) + (applyNew ? \"\" : \"\") + (applyOld ? \"\" : \"\") + delimiter + original.slice(i).join(delimiter) + (applyOld ? \"\" : \"\");\n\t\t} else {\n\t\t\tstr = text.slice(0, i).join(delimiter) + delimiter + original.slice(i).join(delimiter);\n\t\t}\n\t\tif (data.svg) { //SVG text elements don't have an \"innerHTML\" in Microsoft browsers.\n\t\t\ttarget.textContent = str;\n\t\t} else {\n\t\t\ttarget.innerHTML = (fillChar === \" \" && ~str.indexOf(\" \")) ? str.split(\" \").join(\"  \") : str;\n\t\t}\n\t}\n};\n\nTextPlugin.splitInnerHTML = splitInnerHTML;\nTextPlugin.emojiSafeSplit = emojiSafeSplit;\nTextPlugin.getText = getText;\n\n_getGSAP() && gsap.registerPlugin(TextPlugin);\n\nexport { TextPlugin as default };"],"names":["_trimExp","emojiExp","splitInnerHTML","element","delimiter","trim","preserveSpaces","s","node","firstChild","result","nodeType","nodeValue","replace","push","emojiSafeSplit","nodeName","toLowerCase","length","outerHTML","nextSibling","splice","text","split","j","character","l","i","charAt","charCodeAt","substr","emoji","gsap","_tempDiv","TextPlugin","version","name","init","target","value","tween","short","original","condensedText","condensedOriginal","aggregate","toUpperCase","data","this","newClass","oldClass","rtl","fillChar","padSpace","svg","getBBox","document","createElement","innerHTML","from","_from","hasClass","type","speed","duration","Math","min","maxDuration","_props","render","ratio","applyNew","applyOld","str","slice","join","textContent","indexOf","getText","e","_getGSAP","window","registerPlugin"],"mappings":"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"} \ No newline at end of file diff --git a/assets/gsap/gsap.min.js b/assets/gsap/gsap.min.js new file mode 100644 index 0000000..41ae3fa --- /dev/null +++ b/assets/gsap/gsap.min.js @@ -0,0 +1,11 @@ +/*! + * GSAP 3.11.2 + * https://greensock.com + * + * @license Copyright 2022, GreenSock. All rights reserved. + * Subject to the terms at https://greensock.com/standard-license or for Club GreenSock members, the agreement issued with that membership. + * @author: Jack Doyle, jack@greensock.com + */ + +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).window=t.window||{})}(this,function(e){"use strict";function _inheritsLoose(t,e){t.prototype=Object.create(e.prototype),(t.prototype.constructor=t).__proto__=e}function _assertThisInitialized(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function r(t){return"string"==typeof t}function s(t){return"function"==typeof t}function t(t){return"number"==typeof t}function u(t){return void 0===t}function v(t){return"object"==typeof t}function w(t){return!1!==t}function x(){return"undefined"!=typeof window}function y(t){return s(t)||r(t)}function P(t){return(i=yt(t,ot))&&Ce}function Q(t,e){return console.warn("Invalid property",t,"set to",e,"Missing plugin? gsap.registerPlugin()")}function R(t,e){return!e&&console.warn(t)}function S(t,e){return t&&(ot[t]=e)&&i&&(i[t]=e)||ot}function T(){return 0}function ea(t){var e,r,i=t[0];if(v(i)||s(i)||(t=[t]),!(e=(i._gsap||{}).harness)){for(r=gt.length;r--&&!gt[r].targetTest(i););e=gt[r]}for(r=t.length;r--;)t[r]&&(t[r]._gsap||(t[r]._gsap=new jt(t[r],e)))||t.splice(r,1);return t}function fa(t){return t._gsap||ea(Ot(t))[0]._gsap}function ga(t,e,r){return(r=t[e])&&s(r)?t[e]():u(r)&&t.getAttribute&&t.getAttribute(e)||r}function ha(t,e){return(t=t.split(",")).forEach(e)||t}function ia(t){return Math.round(1e5*t)/1e5||0}function ja(t){return Math.round(1e7*t)/1e7||0}function ka(t,e){var r=e.charAt(0),i=parseFloat(e.substr(2));return t=parseFloat(t),"+"===r?t+i:"-"===r?t-i:"*"===r?t*i:t/i}function la(t,e){for(var r=e.length,i=0;t.indexOf(e[i])<0&&++ia;)s=s._prev;return s?(e._next=s._next,s._next=e):(e._next=t[r],t[r]=e),e._next?e._next._prev=e:t[i]=e,e._prev=s,e.parent=e._dp=t,e}function ya(t,e,r,i){void 0===r&&(r="_first"),void 0===i&&(i="_last");var n=e._prev,a=e._next;n?n._next=a:t[r]===e&&(t[r]=a),a?a._prev=n:t[i]===e&&(t[i]=n),e._next=e._prev=e.parent=null}function za(t,e){!t.parent||e&&!t.parent.autoRemoveChildren||t.parent.remove(t),t._act=0}function Aa(t,e){if(t&&(!e||e._end>t._dur||e._start<0))for(var r=t;r;)r._dirty=1,r=r.parent;return t}function Ca(t,e,r,i){return t._startAt&&(B?t._startAt.revert(ht):t.vars.immediateRender&&!t.vars.autoRevert||t._startAt.render(e,!0,i))}function Ea(t){return t._repeat?Tt(t._tTime,t=t.duration()+t._rDelay)*t:0}function Ga(t,e){return(t-e._start)*e._ts+(0<=e._ts?0:e._dirty?e.totalDuration():e._tDur)}function Ha(t){return t._end=ja(t._start+(t._tDur/Math.abs(t._ts||t._rts||V)||0))}function Ia(t,e){var r=t._dp;return r&&r.smoothChildTiming&&t._ts&&(t._start=ja(r._time-(0V)&&e.render(r,!0)),Aa(t,e)._dp&&t._initted&&t._time>=t._dur&&t._ts){if(t._dur(n=Math.abs(n))&&(a=i,o=n);return a}function tb(t){return za(t),t.scrollTrigger&&t.scrollTrigger.kill(!!B),t.progress()<1&&Ct(t,"onInterrupt"),t}function yb(t,e,r){return(6*(t+=t<0?1:1>16,e>>8&At,e&At]:0:St.black;if(!p){if(","===e.substr(-1)&&(e=e.substr(0,e.length-1)),St[e])p=St[e];else if("#"===e.charAt(0)){if(e.length<6&&(e="#"+(n=e.charAt(1))+n+(a=e.charAt(2))+a+(s=e.charAt(3))+s+(5===e.length?e.charAt(4)+e.charAt(4):"")),9===e.length)return[(p=parseInt(e.substr(1,6),16))>>16,p>>8&At,p&At,parseInt(e.substr(7),16)/255];p=[(e=parseInt(e.substr(1),16))>>16,e>>8&At,e&At]}else if("hsl"===e.substr(0,3))if(p=d=e.match(tt),r){if(~e.indexOf("="))return p=e.match(et),i&&p.length<4&&(p[3]=1),p}else o=+p[0]%360/360,u=p[1]/100,n=2*(h=p[2]/100)-(a=h<=.5?h*(u+1):h+u-h*u),3=U?u.endTime(!1):t._dur;return r(e)&&(isNaN(e)||e in o)?(a=e.charAt(0),s="%"===e.substr(-1),n=e.indexOf("="),"<"===a||">"===a?(0<=n&&(e=e.replace(/=/,"")),("<"===a?u._start:u.endTime(0<=u._repeat))+(parseFloat(e.substr(1))||0)*(s?(n<0?u:i).totalDuration()/100:1)):n<0?(e in o||(o[e]=h),o[e]):(a=parseFloat(e.charAt(n-1)+e.substr(n+1)),s&&i&&(a=a/100*($(i)?i[0]:i).totalDuration()),1=r&&te)return i;i=i._next}else for(i=t._last;i&&i._start>=r;){if("isPause"===i.data&&i._start=n._start)&&n._ts&&h!==n){if(n.parent!==this)return this.render(t,e,r);if(n.render(0=this.totalDuration()||!v&&_)&&(f!==this._start&&Math.abs(l)===Math.abs(this._ts)||this._lock||(!t&&g||!(v===m&&0=i&&(a instanceof Gt?e&&n.push(a):(r&&n.push(a),t&&n.push.apply(n,a.getChildren(!0,e,r)))),a=a._next;return n},e.getById=function getById(t){for(var e=this.getChildren(1,1,1),r=e.length;r--;)if(e[r].vars.id===t)return e[r]},e.remove=function remove(t){return r(t)?this.removeLabel(t):s(t)?this.killTweensOf(t):(ya(this,t),t===this._recent&&(this._recent=this._last),Aa(this))},e.totalTime=function totalTime(t,e){return arguments.length?(this._forcing=1,!this._dp&&this._ts&&(this._start=ja(Et.time-(0r:!r||s.isActive())&&n.push(s):(i=s.getTweensOf(a,r)).length&&n.push.apply(n,i),s=s._next;return n},e.tweenTo=function tweenTo(t,e){e=e||{};var r,i=this,n=xt(i,t),a=e.startAt,s=e.onStart,o=e.onStartParams,u=e.immediateRender,h=Gt.to(i,qa({ease:e.ease||"none",lazy:!1,immediateRender:!1,time:n,overwrite:"auto",duration:e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale())||V,onStart:function onStart(){if(i.pause(),!r){var t=e.duration||Math.abs((n-(a&&"time"in a?a.time:i._time))/i.timeScale());h._dur!==t&&Ra(h,t,0,1).render(h._time,!0,!0),r=1}s&&s.apply(h,o||[])}},e));return u?h.render(0):h},e.tweenFromTo=function tweenFromTo(t,e,r){return this.tweenTo(e,qa({startAt:{time:xt(this,t)}},r))},e.recent=function recent(){return this._recent},e.nextLabel=function nextLabel(t){return void 0===t&&(t=this._time),rb(this,xt(this,t))},e.previousLabel=function previousLabel(t){return void 0===t&&(t=this._time),rb(this,xt(this,t),1)},e.currentLabel=function currentLabel(t){return arguments.length?this.seek(t,!0):this.previousLabel(this._time+V)},e.shiftChildren=function shiftChildren(t,e,r){void 0===r&&(r=0);for(var i,n=this._first,a=this.labels;n;)n._start>=r&&(n._start+=t,n._end+=t),n=n._next;if(e)for(i in a)a[i]>=r&&(a[i]+=t);return Aa(this)},e.invalidate=function invalidate(t){var e=this._first;for(this._lock=0;e;)e.invalidate(t),e=e._next;return i.prototype.invalidate.call(this,t)},e.clear=function clear(t){void 0===t&&(t=!0);for(var e,r=this._first;r;)e=r._next,this.remove(r),r=e;return this._dp&&(this._time=this._tTime=this._pTime=0),t&&(this.labels={}),Aa(this)},e.totalDuration=function totalDuration(t){var e,r,i,n=0,a=this,s=a._last,o=U;if(arguments.length)return a.timeScale((a._repeat<0?a.duration():a.totalDuration())/(a.reversed()?-t:t));if(a._dirty){for(i=a.parent;s;)e=s._prev,s._dirty&&s.totalDuration(),o<(r=s._start)&&a._sort&&s._ts&&!a._lock?(a._lock=1,Ka(a,s,r-s._delay,1)._lock=0):o=r,r<0&&s._ts&&(n-=r,(!i&&!a._dp||i&&i.smoothChildTiming)&&(a._start+=r/a._ts,a._time-=r,a._tTime-=r),a.shiftChildren(-r,!1,-Infinity),o=0),s._end>n&&s._ts&&(n=s._end),s=e;Ra(a,a===L&&a._time>n?a._time:n,1,1),a._dirty=0}return a._tDur},Timeline.updateRoot=function updateRoot(t){if(L._ts&&(na(L,Ga(t,L)),f=Et.frame),Et.frame>=mt){mt+=j.autoSleep||120;var e=L._first;if((!e||!e._ts)&&j.autoSleep&&Et._listeners.length<2){for(;e&&!e._ts;)e=e._next;e||Et.sleep()}}},Timeline}(qt);qa(Ut.prototype,{_lock:0,_hasPause:0,_forcing:0});function _b(t,e,i,n,a,o){var u,h,l,f;if(pt[t]&&!1!==(u=new pt[t]).init(a,u.rawVars?e[t]:function _processVars(t,e,i,n,a){if(s(t)&&(t=Qt(t,a,e,i,n)),!v(t)||t.style&&t.nodeType||$(t)||J(t))return r(t)?Qt(t,a,e,i,n):t;var o,u={};for(o in t)u[o]=Qt(t[o],a,e,i,n);return u}(e[t],n,a,o,i),i,n,o)&&(i._pt=h=new pe(i._pt,a,t,0,1,u.render,u,0,u.priority),i!==c))for(l=i._ptLookup[i._targets.indexOf(a)],f=u._props.length;f--;)l[u._props[f]]=h;return u}function fc(t,r,e,i){var n,a,s=r.ease||i||"power1.inOut";if($(r))a=e[t]||(e[t]=[]),r.forEach(function(t,e){return a.push({t:e/(r.length-1)*100,v:t,e:s})});else for(n in r)a=e[n]||(e[n]=[]),"ease"===n||a.push({t:parseFloat(t),v:r[n],e:s})}var Vt,Wt,Xt=function _addPropTween(t,e,i,n,a,o,u,h,l,f){s(n)&&(n=n(a||0,t,o));var c,d=t[e],p="get"!==i?i:s(d)?l?t[e.indexOf("set")||!s(t["get"+e.substr(3)])?e:"get"+e.substr(3)](l):t[e]():d,_=s(d)?l?ee:$t:Jt;if(r(n)&&(~n.indexOf("random(")&&(n=ob(n)),"="===n.charAt(1)&&(!(c=ka(p,n)+(Ya(p)||0))&&0!==c||(n=c))),!f||p!==n||Wt)return isNaN(p*n)||""===n?(d||e in t||Q(e,n),function _addComplexStringPropTween(t,e,r,i,n,a,s){var o,u,h,l,f,c,d,p,_=new pe(this._pt,t,e,0,1,se,null,n),m=0,g=0;for(_.b=r,_.e=i,r+="",(d=~(i+="").indexOf("random("))&&(i=ob(i)),a&&(a(p=[r,i],t,e),r=p[0],i=p[1]),u=r.match(it)||[];o=it.exec(i);)l=o[0],f=i.substring(m,o.index),h?h=(h+1)%5:"rgba("===f.substr(-5)&&(h=1),l!==u[g++]&&(c=parseFloat(u[g-1])||0,_._pt={_next:_._pt,p:f||1===g?f:",",s:c,c:"="===l.charAt(1)?ka(c,l)-c:parseFloat(l)-c,m:h&&h<4?Math.round:0},m=it.lastIndex);return _.c=m")}),s.duration();else{for(l in u={},x)"ease"===l||"easeEach"===l||fc(l,x[l],u,x.easeEach);for(l in u)for(A=u[l].sort(function(t,e){return t.t-e.t}),o=E=0;o=t._tDur||e<0)&&t.ratio===u&&(u&&za(t,1),r||B||(Ct(t,u?"onComplete":"onReverseComplete",!0),t._prom&&t._prom()))}else t._zTime||(t._zTime=e)}(this,t,e,r);return this},e.targets=function targets(){return this._targets},e.invalidate=function invalidate(t){return t&&this.vars.runBackwards||(this._startAt=0),this._pt=this._op=this._onUpdate=this._lazy=this.ratio=0,this._ptLookup=[],this.timeline&&this.timeline.invalidate(t),z.prototype.invalidate.call(this,t)},e.resetTo=function resetTo(t,e,r,i){d||Et.wake(),this._ts||this.play();var n,a=Math.min(this._dur,(this._dp._time-this._start)*this._ts);return this._initted||Ht(this,a),n=this._ease(a/this._dur),function _updatePropTweens(t,e,r,i,n,a,s){var o,u,h,l,f=(t._pt&&t._ptCache||(t._ptCache={}))[e];if(!f)for(f=t._ptCache[e]=[],h=t._ptLookup,l=t._targets.length;l--;){if((o=h[l][e])&&o.d&&o.d._pt)for(o=o.d._pt;o&&o.p!==e&&o.fp!==e;)o=o._next;if(!o)return Wt=1,t.vars[e]="+=0",Ht(t,s),Wt=0,1;f.push(o)}for(l=f.length;l--;)(o=(u=f[l])._pt||u).s=!i&&0!==i||n?o.s+(i||0)+a*o.c:i,o.c=r-o.s,u.e&&(u.e=ia(r)+Ya(u.e)),u.b&&(u.b=o.s+Ya(u.b))}(this,t,e,r,i,n,a)?this.resetTo(t,e,r,i):(Ia(this,0),this.parent||xa(this._dp,this,"_first","_last",this._dp._sort?"_start":0),this.render(0))},e.kill=function kill(t,e){if(void 0===e&&(e="all"),!(t||e&&"all"!==e))return this._lazy=this._pt=0,this.parent?tb(this):this;if(this.timeline){var i=this.timeline.totalDuration();return this.timeline.killTweensOf(t,e,Vt&&!0!==Vt.vars.overwrite)._first||tb(this),this.parent&&i!==this.timeline.totalDuration()&&Ra(this,this._dur*this.timeline._tDur/i,0,1),this}var n,a,s,o,u,h,l,f=this._targets,c=t?Ot(t):f,d=this._ptLookup,p=this._pt;if((!e||"all"===e)&&function _arraysMatch(t,e){for(var r=t.length,i=r===e.length;i&&r--&&t[r]===e[r];);return r<0}(f,c))return"all"===e&&(this._pt=0),tb(this);for(n=this._op=this._op||[],"all"!==e&&(r(e)&&(u={},ha(e,function(t){return u[t]=1}),e=u),e=function _addAliasesToVars(t,e){var r,i,n,a,s=t[0]?fa(t[0]).harness:0,o=s&&s.aliases;if(!o)return e;for(i in r=yt({},e),o)if(i in r)for(n=(a=o[i].split(",")).length;n--;)r[a[n]]=r[i];return r}(f,e)),l=f.length;l--;)if(~c.indexOf(f[l]))for(u in a=d[l],"all"===e?(n[l]=e,o=a,s={}):(s=n[l]=n[l]||{},o=e),o)(h=a&&a[u])&&("kill"in h.d&&!0!==h.d.kill(u)||ya(this,h,"_pt"),delete a[u]),"all"!==s&&(s[u]=1);return this._initted&&!this._pt&&p&&tb(this),this},Tween.to=function to(t,e,r){return new Tween(t,e,r)},Tween.from=function from(t,e){return Va(1,arguments)},Tween.delayedCall=function delayedCall(t,e,r,i){return new Tween(e,0,{immediateRender:!1,lazy:!1,overwrite:!1,delay:t,onComplete:e,onReverseComplete:e,onCompleteParams:r,onReverseCompleteParams:r,callbackScope:i})},Tween.fromTo=function fromTo(t,e,r){return Va(2,arguments)},Tween.set=function set(t,e){return e.duration=0,e.repeatDelay||(e.repeat=0),new Tween(t,e)},Tween.killTweensOf=function killTweensOf(t,e,r){return L.killTweensOf(t,e,r)},Tween}(qt);qa(Gt.prototype,{_targets:[],_lazy:0,_startAt:0,_op:0,_onInit:0}),ha("staggerTo,staggerFrom,staggerFromTo",function(r){Gt[r]=function(){var t=new Ut,e=Mt.call(arguments,0);return e.splice("staggerFromTo"===r?5:4,0,0),t[r].apply(t,e)}});function nc(t,e,r){return t.setAttribute(e,r)}function vc(t,e,r,i){i.mSet(t,e,i.m.call(i.tween,r,i.mt),i)}var Jt=function _setterPlain(t,e,r){return t[e]=r},$t=function _setterFunc(t,e,r){return t[e](r)},ee=function _setterFuncWithParam(t,e,r,i){return t[e](i.fp,r)},re=function _getSetter(t,e){return s(t[e])?$t:u(t[e])&&t.setAttribute?nc:Jt},ne=function _renderPlain(t,e){return e.set(e.t,e.p,Math.round(1e6*(e.s+e.c*t))/1e6,e)},ae=function _renderBoolean(t,e){return e.set(e.t,e.p,!!(e.s+e.c*t),e)},se=function _renderComplexString(t,e){var r=e._pt,i="";if(!t&&e.b)i=e.b;else if(1===t&&e.e)i=e.e;else{for(;r;)i=r.p+(r.m?r.m(r.s+r.c*t):Math.round(1e4*(r.s+r.c*t))/1e4)+i,r=r._next;i+=e.c}e.set(e.t,e.p,i,e)},oe=function _renderPropTweens(t,e){for(var r=e._pt;r;)r.r(t,r.d),r=r._next},le=function _addPluginModifier(t,e,r,i){for(var n,a=this._pt;a;)n=a._next,a.p===i&&a.modifier(t,e,r),a=n},fe=function _killPropTweensOf(t){for(var e,r,i=this._pt;i;)r=i._next,i.p===t&&!i.op||i.op===t?ya(this,i,"_pt"):i.dep||(e=1),i=r;return!e},de=function _sortPropTweensByPriority(t){for(var e,r,i,n,a=t._pt;a;){for(e=a._next,r=i;r&&r.pr>a.pr;)r=r._next;(a._prev=r?r._prev:n)?a._prev._next=a:i=a,(a._next=r)?r._prev=a:n=a,a=e}t._pt=i},pe=(PropTween.prototype.modifier=function modifier(t,e,r){this.mSet=this.mSet||this.set,this.set=vc,this.m=t,this.mt=r,this.tween=e},PropTween);function PropTween(t,e,r,i,n,a,s,o,u){this.t=e,this.s=i,this.c=n,this.p=r,this.r=a||ne,this.d=s||this,this.set=o||Jt,this.pr=u||0,(this._next=t)&&(t._prev=this)}ha(vt+"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger",function(t){return ft[t]=1}),ot.TweenMax=ot.TweenLite=Gt,ot.TimelineLite=ot.TimelineMax=Ut,L=new Ut({sortChildren:!1,defaults:q,autoRemoveChildren:!0,id:"root",smoothChildTiming:!0}),j.stringFilter=Eb;function Cc(t){return(Te[t]||we).map(function(t){return t()})}function Dc(){var t=Date.now(),o=[];2 typeof(value) === \"string\",\n\t_isFunction = value => typeof(value) === \"function\",\n\t_isNumber = value => typeof(value) === \"number\",\n\t_isUndefined = value => typeof(value) === \"undefined\",\n\t_isObject = value => typeof(value) === \"object\",\n\t_isNotFalse = value => value !== false,\n\t_windowExists = () => typeof(window) !== \"undefined\",\n\t_isFuncOrString = value => _isFunction(value) || _isString(value),\n\t_isTypedArray = (typeof ArrayBuffer === \"function\" && ArrayBuffer.isView) || function() {}, // note: IE10 has ArrayBuffer, but NOT ArrayBuffer.isView().\n\t_isArray = Array.isArray,\n\t_strictNumExp = /(?:-?\\.?\\d|\\.)+/gi, //only numbers (including negatives and decimals) but NOT relative values.\n\t_numExp = /[-+=.]*\\d+[.e\\-+]*\\d*[e\\-+]*\\d*/g, //finds any numbers, including ones that start with += or -=, negative numbers, and ones in scientific notation like 1e-8.\n\t_numWithUnitExp = /[-+=.]*\\d+[.e-]*\\d*[a-z%]*/g,\n\t_complexStringNumExp = /[-+=.]*\\d+\\.?\\d*(?:e-|e\\+)?\\d*/gi, //duplicate so that while we're looping through matches from exec(), it doesn't contaminate the lastIndex of _numExp which we use to search for colors too.\n\t_relExp = /[+-]=-?[.\\d]+/,\n\t_delimitedValueExp = /[^,'\"\\[\\]\\s]+/gi, // previously /[#\\-+.]*\\b[a-z\\d\\-=+%.]+/gi but didn't catch special characters.\n\t_unitExp = /^[+\\-=e\\s\\d]*\\d+[.\\d]*([a-z]*|%)\\s*$/i,\n\t_globalTimeline, _win, _coreInitted, _doc,\n\t_globals = {},\n\t_installScope = {},\n\t_coreReady,\n\t_install = scope => (_installScope = _merge(scope, _globals)) && gsap,\n\t_missingPlugin = (property, value) => console.warn(\"Invalid property\", property, \"set to\", value, \"Missing plugin? gsap.registerPlugin()\"),\n\t_warn = (message, suppress) => !suppress && console.warn(message),\n\t_addGlobal = (name, obj) => (name && (_globals[name] = obj) && (_installScope && (_installScope[name] = obj))) || _globals,\n\t_emptyFunc = () => 0,\n\t_startAtRevertConfig = {suppressEvents: true, isStart: true, kill: false},\n\t_revertConfigNoKill = {suppressEvents: true, kill: false},\n\t_revertConfig = {suppressEvents: true},\n\t_reservedProps = {},\n\t_lazyTweens = [],\n\t_lazyLookup = {},\n\t_lastRenderedFrame,\n\t_plugins = {},\n\t_effects = {},\n\t_nextGCFrame = 30,\n\t_harnessPlugins = [],\n\t_callbackNames = \"\",\n\t_harness = targets => {\n\t\tlet target = targets[0],\n\t\t\tharnessPlugin, i;\n\t\t_isObject(target) || _isFunction(target) || (targets = [targets]);\n\t\tif (!(harnessPlugin = (target._gsap || {}).harness)) { // find the first target with a harness. We assume targets passed into an animation will be of similar type, meaning the same kind of harness can be used for them all (performance optimization)\n\t\t\ti = _harnessPlugins.length;\n\t\t\twhile (i-- && !_harnessPlugins[i].targetTest(target)) {\t}\n\t\t\tharnessPlugin = _harnessPlugins[i];\n\t\t}\n\t\ti = targets.length;\n\t\twhile (i--) {\n\t\t\t(targets[i] && (targets[i]._gsap || (targets[i]._gsap = new GSCache(targets[i], harnessPlugin)))) || targets.splice(i, 1);\n\t\t}\n\t\treturn targets;\n\t},\n\t_getCache = target => target._gsap || _harness(toArray(target))[0]._gsap,\n\t_getProperty = (target, property, v) => (v = target[property]) && _isFunction(v) ? target[property]() : (_isUndefined(v) && target.getAttribute && target.getAttribute(property)) || v,\n\t_forEachName = (names, func) => ((names = names.split(\",\")).forEach(func)) || names, //split a comma-delimited list of names into an array, then run a forEach() function and return the split array (this is just a way to consolidate/shorten some code).\n\t_round = value => Math.round(value * 100000) / 100000 || 0,\n\t_roundPrecise = value => Math.round(value * 10000000) / 10000000 || 0, // increased precision mostly for timing values.\n\t_parseRelative = (start, value) => {\n\t\tlet operator = value.charAt(0),\n\t\t\tend = parseFloat(value.substr(2));\n\t\tstart = parseFloat(start);\n\t\treturn operator === \"+\" ? start + end : operator === \"-\" ? start - end : operator === \"*\" ? start * end : start / end;\n\t},\n\t_arrayContainsAny = (toSearch, toFind) => { //searches one array to find matches for any of the items in the toFind array. As soon as one is found, it returns true. It does NOT return all the matches; it's simply a boolean search.\n\t\tlet l = toFind.length,\n\t\t\ti = 0;\n\t\tfor (; toSearch.indexOf(toFind[i]) < 0 && ++i < l;) { }\n\t\treturn (i < l);\n\t},\n\t_lazyRender = () => {\n\t\tlet l = _lazyTweens.length,\n\t\t\ta = _lazyTweens.slice(0),\n\t\t\ti, tween;\n\t\t_lazyLookup = {};\n\t\t_lazyTweens.length = 0;\n\t\tfor (i = 0; i < l; i++) {\n\t\t\ttween = a[i];\n\t\t\ttween && tween._lazy && (tween.render(tween._lazy[0], tween._lazy[1], true)._lazy = 0);\n\t\t}\n\t},\n\t_lazySafeRender = (animation, time, suppressEvents, force) => {\n\t\t_lazyTweens.length && _lazyRender();\n\t\tanimation.render(time, suppressEvents, force || (_reverting && time < 0 && (animation._initted || animation._startAt)));\n\t\t_lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when someone calls seek() or time() or progress(), they expect an immediate render.\n\t},\n\t_numericIfPossible = value => {\n\t\tlet n = parseFloat(value);\n\t\treturn (n || n === 0) && (value + \"\").match(_delimitedValueExp).length < 2 ? n : _isString(value) ? value.trim() : value;\n\t},\n\t_passThrough = p => p,\n\t_setDefaults = (obj, defaults) => {\n\t\tfor (let p in defaults) {\n\t\t\t(p in obj) || (obj[p] = defaults[p]);\n\t\t}\n\t\treturn obj;\n\t},\n\t_setKeyframeDefaults = excludeDuration => (obj, defaults) => {\n\t\tfor (let p in defaults) {\n\t\t\t(p in obj) || (p === \"duration\" && excludeDuration) || p === \"ease\" || (obj[p] = defaults[p]);\n\t\t}\n\t},\n\t_merge = (base, toMerge) => {\n\t\tfor (let p in toMerge) {\n\t\t\tbase[p] = toMerge[p];\n\t\t}\n\t\treturn base;\n\t},\n\t_mergeDeep = (base, toMerge) => {\n\t\tfor (let p in toMerge) {\n\t\t\tp !== \"__proto__\" && p !== \"constructor\" && p !== \"prototype\" && (base[p] = _isObject(toMerge[p]) ? _mergeDeep(base[p] || (base[p] = {}), toMerge[p]) : toMerge[p]);\n\t\t}\n\t\treturn base;\n\t},\n\t_copyExcluding = (obj, excluding) => {\n\t\tlet copy = {},\n\t\t\tp;\n\t\tfor (p in obj) {\n\t\t\t(p in excluding) || (copy[p] = obj[p]);\n\t\t}\n\t\treturn copy;\n\t},\n\t_inheritDefaults = vars => {\n\t\tlet parent = vars.parent || _globalTimeline,\n\t\t\tfunc = vars.keyframes ? _setKeyframeDefaults(_isArray(vars.keyframes)) : _setDefaults;\n\t\tif (_isNotFalse(vars.inherit)) {\n\t\t\twhile (parent) {\n\t\t\t\tfunc(vars, parent.vars.defaults);\n\t\t\t\tparent = parent.parent || parent._dp;\n\t\t\t}\n\t\t}\n\t\treturn vars;\n\t},\n\t_arraysMatch = (a1, a2) => {\n\t\tlet i = a1.length,\n\t\t\tmatch = i === a2.length;\n\t\twhile (match && i-- && a1[i] === a2[i]) { }\n\t\treturn i < 0;\n\t},\n\t_addLinkedListItem = (parent, child, firstProp = \"_first\", lastProp = \"_last\", sortBy) => {\n\t\tlet prev = parent[lastProp],\n\t\t\tt;\n\t\tif (sortBy) {\n\t\t\tt = child[sortBy];\n\t\t\twhile (prev && prev[sortBy] > t) {\n\t\t\t\tprev = prev._prev;\n\t\t\t}\n\t\t}\n\t\tif (prev) {\n\t\t\tchild._next = prev._next;\n\t\t\tprev._next = child;\n\t\t} else {\n\t\t\tchild._next = parent[firstProp];\n\t\t\tparent[firstProp] = child;\n\t\t}\n\t\tif (child._next) {\n\t\t\tchild._next._prev = child;\n\t\t} else {\n\t\t\tparent[lastProp] = child;\n\t\t}\n\t\tchild._prev = prev;\n\t\tchild.parent = child._dp = parent;\n\t\treturn child;\n\t},\n\t_removeLinkedListItem = (parent, child, firstProp = \"_first\", lastProp = \"_last\") => {\n\t\tlet prev = child._prev,\n\t\t\tnext = child._next;\n\t\tif (prev) {\n\t\t\tprev._next = next;\n\t\t} else if (parent[firstProp] === child) {\n\t\t\tparent[firstProp] = next;\n\t\t}\n\t\tif (next) {\n\t\t\tnext._prev = prev;\n\t\t} else if (parent[lastProp] === child) {\n\t\t\tparent[lastProp] = prev;\n\t\t}\n\t\tchild._next = child._prev = child.parent = null; // don't delete the _dp just so we can revert if necessary. But parent should be null to indicate the item isn't in a linked list.\n\t},\n\t_removeFromParent = (child, onlyIfParentHasAutoRemove) => {\n\t\tchild.parent && (!onlyIfParentHasAutoRemove || child.parent.autoRemoveChildren) && child.parent.remove(child);\n\t\tchild._act = 0;\n\t},\n\t_uncache = (animation, child) => {\n\t\tif (animation && (!child || child._end > animation._dur || child._start < 0)) { // performance optimization: if a child animation is passed in we should only uncache if that child EXTENDS the animation (its end time is beyond the end)\n\t\t\tlet a = animation;\n\t\t\twhile (a) {\n\t\t\t\ta._dirty = 1;\n\t\t\t\ta = a.parent;\n\t\t\t}\n\t\t}\n\t\treturn animation;\n\t},\n\t_recacheAncestors = animation => {\n\t\tlet parent = animation.parent;\n\t\twhile (parent && parent.parent) { //sometimes we must force a re-sort of all children and update the duration/totalDuration of all ancestor timelines immediately in case, for example, in the middle of a render loop, one tween alters another tween's timeScale which shoves its startTime before 0, forcing the parent timeline to shift around and shiftChildren() which could affect that next tween's render (startTime). Doesn't matter for the root timeline though.\n\t\t\tparent._dirty = 1;\n\t\t\tparent.totalDuration();\n\t\t\tparent = parent.parent;\n\t\t}\n\t\treturn animation;\n\t},\n\t_rewindStartAt = (tween, totalTime, suppressEvents, force) => tween._startAt && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : (tween.vars.immediateRender && !tween.vars.autoRevert) || tween._startAt.render(totalTime, true, force)),\n\t_hasNoPausedAncestors = animation => !animation || (animation._ts && _hasNoPausedAncestors(animation.parent)),\n\t_elapsedCycleDuration = animation => animation._repeat ? _animationCycle(animation._tTime, (animation = animation.duration() + animation._rDelay)) * animation : 0,\n\t// feed in the totalTime and cycleDuration and it'll return the cycle (iteration minus 1) and if the playhead is exactly at the very END, it will NOT bump up to the next cycle.\n\t_animationCycle = (tTime, cycleDuration) => {\n\t\tlet whole = Math.floor(tTime /= cycleDuration);\n\t\treturn tTime && (whole === tTime) ? whole - 1 : whole;\n\t},\n\t_parentToChildTotalTime = (parentTime, child) => (parentTime - child._start) * child._ts + (child._ts >= 0 ? 0 : (child._dirty ? child.totalDuration() : child._tDur)),\n\t_setEnd = animation => (animation._end = _roundPrecise(animation._start + ((animation._tDur / Math.abs(animation._ts || animation._rts || _tinyNum)) || 0))),\n\t_alignPlayhead = (animation, totalTime) => { // adjusts the animation's _start and _end according to the provided totalTime (only if the parent's smoothChildTiming is true and the animation isn't paused). It doesn't do any rendering or forcing things back into parent timelines, etc. - that's what totalTime() is for.\n\t\tlet parent = animation._dp;\n\t\tif (parent && parent.smoothChildTiming && animation._ts) {\n\t\t\tanimation._start = _roundPrecise(parent._time - (animation._ts > 0 ? totalTime / animation._ts : ((animation._dirty ? animation.totalDuration() : animation._tDur) - totalTime) / -animation._ts));\n\t\t\t_setEnd(animation);\n\t\t\tparent._dirty || _uncache(parent, animation); //for performance improvement. If the parent's cache is already dirty, it already took care of marking the ancestors as dirty too, so skip the function call here.\n\t\t}\n\t\treturn animation;\n\t},\n\t/*\n\t_totalTimeToTime = (clampedTotalTime, duration, repeat, repeatDelay, yoyo) => {\n\t\tlet cycleDuration = duration + repeatDelay,\n\t\t\ttime = _round(clampedTotalTime % cycleDuration);\n\t\tif (time > duration) {\n\t\t\ttime = duration;\n\t\t}\n\t\treturn (yoyo && (~~(clampedTotalTime / cycleDuration) & 1)) ? duration - time : time;\n\t},\n\t*/\n\t_postAddChecks = (timeline, child) => {\n\t\tlet t;\n\t\tif (child._time || (child._initted && !child._dur)) { //in case, for example, the _start is moved on a tween that has already rendered. Imagine it's at its end state, then the startTime is moved WAY later (after the end of this timeline), it should render at its beginning.\n\t\t\tt = _parentToChildTotalTime(timeline.rawTime(), child);\n\t\t\tif (!child._dur || _clamp(0, child.totalDuration(), t) - child._tTime > _tinyNum) {\n\t\t\t\tchild.render(t, true);\n\t\t\t}\n\t\t}\n\t\t//if the timeline has already ended but the inserted tween/timeline extends the duration, we should enable this timeline again so that it renders properly. We should also align the playhead with the parent timeline's when appropriate.\n\t\tif (_uncache(timeline, child)._dp && timeline._initted && timeline._time >= timeline._dur && timeline._ts) {\n\t\t\t//in case any of the ancestors had completed but should now be enabled...\n\t\t\tif (timeline._dur < timeline.duration()) {\n\t\t\t\tt = timeline;\n\t\t\t\twhile (t._dp) {\n\t\t\t\t\t(t.rawTime() >= 0) && t.totalTime(t._tTime); //moves the timeline (shifts its startTime) if necessary, and also enables it. If it's currently zero, though, it may not be scheduled to render until later so there's no need to force it to align with the current playhead position. Only move to catch up with the playhead.\n\t\t\t\t\tt = t._dp;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttimeline._zTime = -_tinyNum; // helps ensure that the next render() will be forced (crossingStart = true in render()), even if the duration hasn't changed (we're adding a child which would need to get rendered). Definitely an edge case. Note: we MUST do this AFTER the loop above where the totalTime() might trigger a render() because this _addToTimeline() method gets called from the Animation constructor, BEFORE tweens even record their targets, etc. so we wouldn't want things to get triggered in the wrong order.\n\t\t}\n\t},\n\t_addToTimeline = (timeline, child, position, skipChecks) => {\n\t\tchild.parent && _removeFromParent(child);\n\t\tchild._start = _roundPrecise((_isNumber(position) ? position : position || timeline !== _globalTimeline ? _parsePosition(timeline, position, child) : timeline._time) + child._delay);\n\t\tchild._end = _roundPrecise(child._start + ((child.totalDuration() / Math.abs(child.timeScale())) || 0));\n\t\t_addLinkedListItem(timeline, child, \"_first\", \"_last\", timeline._sort ? \"_start\" : 0);\n\t\t_isFromOrFromStart(child) || (timeline._recent = child);\n\t\tskipChecks || _postAddChecks(timeline, child);\n\t\ttimeline._ts < 0 && _alignPlayhead(timeline, timeline._tTime); // if the timeline is reversed and the new child makes it longer, we may need to adjust the parent's _start (push it back)\n\t\treturn timeline;\n\t},\n\t_scrollTrigger = (animation, trigger) => (_globals.ScrollTrigger || _missingPlugin(\"scrollTrigger\", trigger)) && _globals.ScrollTrigger.create(trigger, animation),\n\t_attemptInitTween = (tween, time, force, suppressEvents, tTime) => {\n\t\t_initTween(tween, time, tTime);\n\t\tif (!tween._initted) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!force && tween._pt && !_reverting && ((tween._dur && tween.vars.lazy !== false) || (!tween._dur && tween.vars.lazy)) && _lastRenderedFrame !== _ticker.frame) {\n\t\t\t_lazyTweens.push(tween);\n\t\t\ttween._lazy = [tTime, suppressEvents];\n\t\t\treturn 1;\n\t\t}\n\t},\n\t_parentPlayheadIsBeforeStart = ({parent}) => parent && parent._ts && parent._initted && !parent._lock && (parent.rawTime() < 0 || _parentPlayheadIsBeforeStart(parent)), // check parent's _lock because when a timeline repeats/yoyos and does its artificial wrapping, we shouldn't force the ratio back to 0\n\t_isFromOrFromStart = ({data}) => data === \"isFromStart\" || data === \"isStart\",\n\t_renderZeroDurationTween = (tween, totalTime, suppressEvents, force) => {\n\t\tlet prevRatio = tween.ratio,\n\t\t\tratio = totalTime < 0 || (!totalTime && ((!tween._start && _parentPlayheadIsBeforeStart(tween) && !(!tween._initted && _isFromOrFromStart(tween))) || ((tween._ts < 0 || tween._dp._ts < 0) && !_isFromOrFromStart(tween)))) ? 0 : 1, // if the tween or its parent is reversed and the totalTime is 0, we should go to a ratio of 0. Edge case: if a from() or fromTo() stagger tween is placed later in a timeline, the \"startAt\" zero-duration tween could initially render at a time when the parent timeline's playhead is technically BEFORE where this tween is, so make sure that any \"from\" and \"fromTo\" startAt tweens are rendered the first time at a ratio of 1.\n\t\t\trepeatDelay = tween._rDelay,\n\t\t\ttTime = 0,\n\t\t\tpt, iteration, prevIteration;\n\t\tif (repeatDelay && tween._repeat) { // in case there's a zero-duration tween that has a repeat with a repeatDelay\n\t\t\ttTime = _clamp(0, tween._tDur, totalTime);\n\t\t\titeration = _animationCycle(tTime, repeatDelay);\n\t\t\ttween._yoyo && (iteration & 1) && (ratio = 1 - ratio);\n\t\t\tif (iteration !== _animationCycle(tween._tTime, repeatDelay)) { // if iteration changed\n\t\t\t\tprevRatio = 1 - ratio;\n\t\t\t\ttween.vars.repeatRefresh && tween._initted && tween.invalidate();\n\t\t\t}\n\t\t}\n\t\tif (ratio !== prevRatio || _reverting || force || tween._zTime === _tinyNum || (!totalTime && tween._zTime)) {\n\t\t\tif (!tween._initted && _attemptInitTween(tween, totalTime, force, suppressEvents, tTime)) { // if we render the very beginning (time == 0) of a fromTo(), we must force the render (normal tweens wouldn't need to render at a time of 0 when the prevTime was also 0). This is also mandatory to make sure overwriting kicks in immediately.\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tprevIteration = tween._zTime;\n\t\t\ttween._zTime = totalTime || (suppressEvents ? _tinyNum : 0); // when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration tween, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\t\t\tsuppressEvents || (suppressEvents = totalTime && !prevIteration); // if it was rendered previously at exactly 0 (_zTime) and now the playhead is moving away, DON'T fire callbacks otherwise they'll seem like duplicates.\n\t\t\ttween.ratio = ratio;\n\t\t\ttween._from && (ratio = 1 - ratio);\n\t\t\ttween._time = 0;\n\t\t\ttween._tTime = tTime;\n\t\t\tpt = tween._pt;\n\t\t\twhile (pt) {\n\t\t\t\tpt.r(ratio, pt.d);\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t\ttotalTime < 0 && _rewindStartAt(tween, totalTime, suppressEvents, true);\n\t\t\ttween._onUpdate && !suppressEvents && _callback(tween, \"onUpdate\");\n\t\t\ttTime && tween._repeat && !suppressEvents && tween.parent && _callback(tween, \"onRepeat\");\n\t\t\tif ((totalTime >= tween._tDur || totalTime < 0) && tween.ratio === ratio) {\n\t\t\t\tratio && _removeFromParent(tween, 1);\n\t\t\t\tif (!suppressEvents && !_reverting) {\n\t\t\t\t\t_callback(tween, (ratio ? \"onComplete\" : \"onReverseComplete\"), true);\n\t\t\t\t\ttween._prom && tween._prom();\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!tween._zTime) {\n\t\t\ttween._zTime = totalTime;\n\t\t}\n\t},\n\t_findNextPauseTween = (animation, prevTime, time) => {\n\t\tlet child;\n\t\tif (time > prevTime) {\n\t\t\tchild = animation._first;\n\t\t\twhile (child && child._start <= time) {\n\t\t\t\tif (child.data === \"isPause\" && child._start > prevTime) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t\tchild = child._next;\n\t\t\t}\n\t\t} else {\n\t\t\tchild = animation._last;\n\t\t\twhile (child && child._start >= time) {\n\t\t\t\tif (child.data === \"isPause\" && child._start < prevTime) {\n\t\t\t\t\treturn child;\n\t\t\t\t}\n\t\t\t\tchild = child._prev;\n\t\t\t}\n\t\t}\n\t},\n\t_setDuration = (animation, duration, skipUncache, leavePlayhead) => {\n\t\tlet repeat = animation._repeat,\n\t\t\tdur = _roundPrecise(duration) || 0,\n\t\t\ttotalProgress = animation._tTime / animation._tDur;\n\t\ttotalProgress && !leavePlayhead && (animation._time *= dur / animation._dur);\n\t\tanimation._dur = dur;\n\t\tanimation._tDur = !repeat ? dur : repeat < 0 ? 1e10 : _roundPrecise(dur * (repeat + 1) + (animation._rDelay * repeat));\n\t\ttotalProgress > 0 && !leavePlayhead && _alignPlayhead(animation, (animation._tTime = animation._tDur * totalProgress));\n\t\tanimation.parent && _setEnd(animation);\n\t\tskipUncache || _uncache(animation.parent, animation);\n\t\treturn animation;\n\t},\n\t_onUpdateTotalDuration = animation => (animation instanceof Timeline) ? _uncache(animation) : _setDuration(animation, animation._dur),\n\t_zeroPosition = {_start:0, endTime:_emptyFunc, totalDuration:_emptyFunc},\n\t_parsePosition = (animation, position, percentAnimation) => {\n\t\tlet labels = animation.labels,\n\t\t\trecent = animation._recent || _zeroPosition,\n\t\t\tclippedDuration = animation.duration() >= _bigNum ? recent.endTime(false) : animation._dur, //in case there's a child that infinitely repeats, users almost never intend for the insertion point of a new child to be based on a SUPER long value like that so we clip it and assume the most recently-added child's endTime should be used instead.\n\t\t\ti, offset, isPercent;\n\t\tif (_isString(position) && (isNaN(position) || (position in labels))) { //if the string is a number like \"1\", check to see if there's a label with that name, otherwise interpret it as a number (absolute value).\n\t\t\toffset = position.charAt(0);\n\t\t\tisPercent = position.substr(-1) === \"%\";\n\t\t\ti = position.indexOf(\"=\");\n\t\t\tif (offset === \"<\" || offset === \">\") {\n\t\t\t\ti >= 0 && (position = position.replace(/=/, \"\"));\n\t\t\t\treturn (offset === \"<\" ? recent._start : recent.endTime(recent._repeat >= 0)) + (parseFloat(position.substr(1)) || 0) * (isPercent ? (i < 0 ? recent : percentAnimation).totalDuration() / 100 : 1);\n\t\t\t}\n\t\t\tif (i < 0) {\n\t\t\t\t(position in labels) || (labels[position] = clippedDuration);\n\t\t\t\treturn labels[position];\n\t\t\t}\n\t\t\toffset = parseFloat(position.charAt(i-1) + position.substr(i+1));\n\t\t\tif (isPercent && percentAnimation) {\n\t\t\t\toffset = offset / 100 * (_isArray(percentAnimation) ? percentAnimation[0] : percentAnimation).totalDuration();\n\t\t\t}\n\t\t\treturn (i > 1) ? _parsePosition(animation, position.substr(0, i-1), percentAnimation) + offset : clippedDuration + offset;\n\t\t}\n\t\treturn (position == null) ? clippedDuration : +position;\n\t},\n\t_createTweenType = (type, params, timeline) => {\n\t\tlet isLegacy = _isNumber(params[1]),\n\t\t\tvarsIndex = (isLegacy ? 2 : 1) + (type < 2 ? 0 : 1),\n\t\t\tvars = params[varsIndex],\n\t\t\tirVars, parent;\n\t\tisLegacy && (vars.duration = params[1]);\n\t\tvars.parent = timeline;\n\t\tif (type) {\n\t\t\tirVars = vars;\n\t\t\tparent = timeline;\n\t\t\twhile (parent && !(\"immediateRender\" in irVars)) { // inheritance hasn't happened yet, but someone may have set a default in an ancestor timeline. We could do vars.immediateRender = _isNotFalse(_inheritDefaults(vars).immediateRender) but that'd exact a slight performance penalty because _inheritDefaults() also runs in the Tween constructor. We're paying a small kb price here to gain speed.\n\t\t\t\tirVars = parent.vars.defaults || {};\n\t\t\t\tparent = _isNotFalse(parent.vars.inherit) && parent.parent;\n\t\t\t}\n\t\t\tvars.immediateRender = _isNotFalse(irVars.immediateRender);\n\t\t\ttype < 2 ? (vars.runBackwards = 1) : (vars.startAt = params[varsIndex - 1]); // \"from\" vars\n\t\t}\n\t\treturn new Tween(params[0], vars, params[varsIndex + 1]);\n\t},\n\t_conditionalReturn = (value, func) => value || value === 0 ? func(value) : func,\n\t_clamp = (min, max, value) => value < min ? min : value > max ? max : value,\n\tgetUnit = (value, v) => !_isString(value) || !(v = _unitExp.exec(value)) ? \"\" : v[1], // note: protect against padded numbers as strings, like \"100.100\". That shouldn't return \"00\" as the unit. If it's numeric, return no unit.\n\tclamp = (min, max, value) => _conditionalReturn(value, v => _clamp(min, max, v)),\n\t_slice = [].slice,\n\t_isArrayLike = (value, nonEmpty) => value && (_isObject(value) && \"length\" in value && ((!nonEmpty && !value.length) || ((value.length - 1) in value && _isObject(value[0]))) && !value.nodeType && value !== _win),\n\t_flatten = (ar, leaveStrings, accumulator = []) => ar.forEach(value => (_isString(value) && !leaveStrings) || _isArrayLike(value, 1) ? accumulator.push(...toArray(value)) : accumulator.push(value)) || accumulator,\n\t//takes any value and returns an array. If it's a string (and leaveStrings isn't true), it'll use document.querySelectorAll() and convert that to an array. It'll also accept iterables like jQuery objects.\n\ttoArray = (value, scope, leaveStrings) => _context && !scope && _context.selector ? _context.selector(value) : _isString(value) && !leaveStrings && (_coreInitted || !_wake()) ? _slice.call((scope || _doc).querySelectorAll(value), 0) : _isArray(value) ? _flatten(value, leaveStrings) : _isArrayLike(value) ? _slice.call(value, 0) : value ? [value] : [],\n\tselector = value => {\n\t\tvalue = toArray(value)[0] || _warn(\"Invalid scope\") || {};\n\t\treturn v => {\n\t\t\tlet el = value.current || value.nativeElement || value;\n\t\t\treturn toArray(v, el.querySelectorAll ? el : el === value ? _warn(\"Invalid scope\") || _doc.createElement(\"div\") : value);\n\t\t};\n\t},\n\tshuffle = a => a.sort(() => .5 - Math.random()), // alternative that's a bit faster and more reliably diverse but bigger: for (let j, v, i = a.length; i; j = Math.floor(Math.random() * i), v = a[--i], a[i] = a[j], a[j] = v); return a;\n\t//for distributing values across an array. Can accept a number, a function or (most commonly) a function which can contain the following properties: {base, amount, from, ease, grid, axis, length, each}. Returns a function that expects the following parameters: index, target, array. Recognizes the following\n\tdistribute = v => {\n\t\tif (_isFunction(v)) {\n\t\t\treturn v;\n\t\t}\n\t\tlet vars = _isObject(v) ? v : {each:v}, //n:1 is just to indicate v was a number; we leverage that later to set v according to the length we get. If a number is passed in, we treat it like the old stagger value where 0.1, for example, would mean that things would be distributed with 0.1 between each element in the array rather than a total \"amount\" that's chunked out among them all.\n\t\t\tease = _parseEase(vars.ease),\n\t\t\tfrom = vars.from || 0,\n\t\t\tbase = parseFloat(vars.base) || 0,\n\t\t\tcache = {},\n\t\t\tisDecimal = (from > 0 && from < 1),\n\t\t\tratios = isNaN(from) || isDecimal,\n\t\t\taxis = vars.axis,\n\t\t\tratioX = from,\n\t\t\tratioY = from;\n\t\tif (_isString(from)) {\n\t\t\tratioX = ratioY = {center:.5, edges:.5, end:1}[from] || 0;\n\t\t} else if (!isDecimal && ratios) {\n\t\t\tratioX = from[0];\n\t\t\tratioY = from[1];\n\t\t}\n\t\treturn (i, target, a) => {\n\t\t\tlet l = (a || vars).length,\n\t\t\t\tdistances = cache[l],\n\t\t\t\toriginX, originY, x, y, d, j, max, min, wrapAt;\n\t\t\tif (!distances) {\n\t\t\t\twrapAt = (vars.grid === \"auto\") ? 0 : (vars.grid || [1, _bigNum])[1];\n\t\t\t\tif (!wrapAt) {\n\t\t\t\t\tmax = -_bigNum;\n\t\t\t\t\twhile (max < (max = a[wrapAt++].getBoundingClientRect().left) && wrapAt < l) { }\n\t\t\t\t\twrapAt--;\n\t\t\t\t}\n\t\t\t\tdistances = cache[l] = [];\n\t\t\t\toriginX = ratios ? (Math.min(wrapAt, l) * ratioX) - .5 : from % wrapAt;\n\t\t\t\toriginY = wrapAt === _bigNum ? 0 : ratios ? l * ratioY / wrapAt - .5 : (from / wrapAt) | 0;\n\t\t\t\tmax = 0;\n\t\t\t\tmin = _bigNum;\n\t\t\t\tfor (j = 0; j < l; j++) {\n\t\t\t\t\tx = (j % wrapAt) - originX;\n\t\t\t\t\ty = originY - ((j / wrapAt) | 0);\n\t\t\t\t\tdistances[j] = d = !axis ? _sqrt(x * x + y * y) : Math.abs((axis === \"y\") ? y : x);\n\t\t\t\t\t(d > max) && (max = d);\n\t\t\t\t\t(d < min) && (min = d);\n\t\t\t\t}\n\t\t\t\t(from === \"random\") && shuffle(distances);\n\t\t\t\tdistances.max = max - min;\n\t\t\t\tdistances.min = min;\n\t\t\t\tdistances.v = l = (parseFloat(vars.amount) || (parseFloat(vars.each) * (wrapAt > l ? l - 1 : !axis ? Math.max(wrapAt, l / wrapAt) : axis === \"y\" ? l / wrapAt : wrapAt)) || 0) * (from === \"edges\" ? -1 : 1);\n\t\t\t\tdistances.b = (l < 0) ? base - l : base;\n\t\t\t\tdistances.u = getUnit(vars.amount || vars.each) || 0; //unit\n\t\t\t\tease = (ease && l < 0) ? _invertEase(ease) : ease;\n\t\t\t}\n\t\t\tl = ((distances[i] - distances.min) / distances.max) || 0;\n\t\t\treturn _roundPrecise(distances.b + (ease ? ease(l) : l) * distances.v) + distances.u; //round in order to work around floating point errors\n\t\t};\n\t},\n\t_roundModifier = v => { //pass in 0.1 get a function that'll round to the nearest tenth, or 5 to round to the closest 5, or 0.001 to the closest 1000th, etc.\n\t\tlet p = Math.pow(10, ((v + \"\").split(\".\")[1] || \"\").length); //to avoid floating point math errors (like 24 * 0.1 == 2.4000000000000004), we chop off at a specific number of decimal places (much faster than toFixed())\n\t\treturn raw => {\n\t\t\tlet n = _roundPrecise(Math.round(parseFloat(raw) / v) * v * p);\n\t\t\treturn (n - n % 1) / p + (_isNumber(raw) ? 0 : getUnit(raw)); // n - n % 1 replaces Math.floor() in order to handle negative values properly. For example, Math.floor(-150.00000000000003) is 151!\n\t\t};\n\t},\n\tsnap = (snapTo, value) => {\n\t\tlet isArray = _isArray(snapTo),\n\t\t\tradius, is2D;\n\t\tif (!isArray && _isObject(snapTo)) {\n\t\t\tradius = isArray = snapTo.radius || _bigNum;\n\t\t\tif (snapTo.values) {\n\t\t\t\tsnapTo = toArray(snapTo.values);\n\t\t\t\tif ((is2D = !_isNumber(snapTo[0]))) {\n\t\t\t\t\tradius *= radius; //performance optimization so we don't have to Math.sqrt() in the loop.\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsnapTo = _roundModifier(snapTo.increment);\n\t\t\t}\n\t\t}\n\t\treturn _conditionalReturn(value, !isArray ? _roundModifier(snapTo) : _isFunction(snapTo) ? raw => {is2D = snapTo(raw); return Math.abs(is2D - raw) <= radius ? is2D : raw; } : raw => {\n\t\t\tlet x = parseFloat(is2D ? raw.x : raw),\n\t\t\t\ty = parseFloat(is2D ? raw.y : 0),\n\t\t\t\tmin = _bigNum,\n\t\t\t\tclosest = 0,\n\t\t\t\ti = snapTo.length,\n\t\t\t\tdx, dy;\n\t\t\twhile (i--) {\n\t\t\t\tif (is2D) {\n\t\t\t\t\tdx = snapTo[i].x - x;\n\t\t\t\t\tdy = snapTo[i].y - y;\n\t\t\t\t\tdx = dx * dx + dy * dy;\n\t\t\t\t} else {\n\t\t\t\t\tdx = Math.abs(snapTo[i] - x);\n\t\t\t\t}\n\t\t\t\tif (dx < min) {\n\t\t\t\t\tmin = dx;\n\t\t\t\t\tclosest = i;\n\t\t\t\t}\n\t\t\t}\n\t\t\tclosest = (!radius || min <= radius) ? snapTo[closest] : raw;\n\t\t\treturn (is2D || closest === raw || _isNumber(raw)) ? closest : closest + getUnit(raw);\n\t\t});\n\t},\n\trandom = (min, max, roundingIncrement, returnFunction) => _conditionalReturn(_isArray(min) ? !max : roundingIncrement === true ? !!(roundingIncrement = 0) : !returnFunction, () => _isArray(min) ? min[~~(Math.random() * min.length)] : (roundingIncrement = roundingIncrement || 1e-5) && (returnFunction = roundingIncrement < 1 ? 10 ** ((roundingIncrement + \"\").length - 2) : 1) && (Math.floor(Math.round((min - roundingIncrement / 2 + Math.random() * (max - min + roundingIncrement * .99)) / roundingIncrement) * roundingIncrement * returnFunction) / returnFunction)),\n\tpipe = (...functions) => value => functions.reduce((v, f) => f(v), value),\n\tunitize = (func, unit) => value => func(parseFloat(value)) + (unit || getUnit(value)),\n\tnormalize = (min, max, value) => mapRange(min, max, 0, 1, value),\n\t_wrapArray = (a, wrapper, value) => _conditionalReturn(value, index => a[~~wrapper(index)]),\n\twrap = function(min, max, value) { // NOTE: wrap() CANNOT be an arrow function! A very odd compiling bug causes problems (unrelated to GSAP).\n\t\tlet range = max - min;\n\t\treturn _isArray(min) ? _wrapArray(min, wrap(0, min.length), max) : _conditionalReturn(value, value => ((range + (value - min) % range) % range) + min);\n\t},\n\twrapYoyo = (min, max, value) => {\n\t\tlet range = max - min,\n\t\t\ttotal = range * 2;\n\t\treturn _isArray(min) ? _wrapArray(min, wrapYoyo(0, min.length - 1), max) : _conditionalReturn(value, value => {\n\t\t\tvalue = (total + (value - min) % total) % total || 0;\n\t\t\treturn min + ((value > range) ? (total - value) : value);\n\t\t});\n\t},\n\t_replaceRandom = value => { //replaces all occurrences of random(...) in a string with the calculated random value. can be a range like random(-100, 100, 5) or an array like random([0, 100, 500])\n\t\tlet prev = 0,\n\t\t\ts = \"\",\n\t\t\ti, nums, end, isArray;\n\t\twhile (~(i = value.indexOf(\"random(\", prev))) {\n\t\t\tend = value.indexOf(\")\", i);\n\t\t\tisArray = value.charAt(i + 7) === \"[\";\n\t\t\tnums = value.substr(i + 7, end - i - 7).match(isArray ? _delimitedValueExp : _strictNumExp);\n\t\t\ts += value.substr(prev, i - prev) + random(isArray ? nums : +nums[0], isArray ? 0 : +nums[1], +nums[2] || 1e-5);\n\t\t\tprev = end + 1;\n\t\t}\n\t\treturn s + value.substr(prev, value.length - prev);\n\t},\n\tmapRange = (inMin, inMax, outMin, outMax, value) => {\n\t\tlet inRange = inMax - inMin,\n\t\t\toutRange = outMax - outMin;\n\t\treturn _conditionalReturn(value, value => outMin + ((((value - inMin) / inRange) * outRange) || 0));\n\t},\n\tinterpolate = (start, end, progress, mutate) => {\n\t\tlet func = isNaN(start + end) ? 0 : p => (1 - p) * start + p * end;\n\t\tif (!func) {\n\t\t\tlet isString = _isString(start),\n\t\t\t\tmaster = {},\n\t\t\t\tp, i, interpolators, l, il;\n\t\t\tprogress === true && (mutate = 1) && (progress = null);\n\t\t\tif (isString) {\n\t\t\t\tstart = {p: start};\n\t\t\t\tend = {p: end};\n\n\t\t\t} else if (_isArray(start) && !_isArray(end)) {\n\t\t\t\tinterpolators = [];\n\t\t\t\tl = start.length;\n\t\t\t\til = l - 2;\n\t\t\t\tfor (i = 1; i < l; i++) {\n\t\t\t\t\tinterpolators.push(interpolate(start[i-1], start[i])); //build the interpolators up front as a performance optimization so that when the function is called many times, it can just reuse them.\n\t\t\t\t}\n\t\t\t\tl--;\n\t\t\t\tfunc = p => {\n\t\t\t\t\tp *= l;\n\t\t\t\t\tlet i = Math.min(il, ~~p);\n\t\t\t\t\treturn interpolators[i](p - i);\n\t\t\t\t};\n\t\t\t\tprogress = end;\n\t\t\t} else if (!mutate) {\n\t\t\t\tstart = _merge(_isArray(start) ? [] : {}, start);\n\t\t\t}\n\t\t\tif (!interpolators) {\n\t\t\t\tfor (p in end) {\n\t\t\t\t\t_addPropTween.call(master, start, p, \"get\", end[p]);\n\t\t\t\t}\n\t\t\t\tfunc = p => _renderPropTweens(p, master) || (isString ? start.p : start);\n\t\t\t}\n\t\t}\n\t\treturn _conditionalReturn(progress, func);\n\t},\n\t_getLabelInDirection = (timeline, fromTime, backward) => { //used for nextLabel() and previousLabel()\n\t\tlet labels = timeline.labels,\n\t\t\tmin = _bigNum,\n\t\t\tp, distance, label;\n\t\tfor (p in labels) {\n\t\t\tdistance = labels[p] - fromTime;\n\t\t\tif ((distance < 0) === !!backward && distance && min > (distance = Math.abs(distance))) {\n\t\t\t\tlabel = p;\n\t\t\t\tmin = distance;\n\t\t\t}\n\t\t}\n\t\treturn label;\n\t},\n\t_callback = (animation, type, executeLazyFirst) => {\n\t\tlet v = animation.vars,\n\t\t\tcallback = v[type],\n\t\t\tprevContext = _context,\n\t\t\tcontext = animation._ctx,\n\t\t\tparams, scope, result;\n\t\tif (!callback) {\n\t\t\treturn;\n\t\t}\n\t\tparams = v[type + \"Params\"];\n\t\tscope = v.callbackScope || animation;\n\t\texecuteLazyFirst && _lazyTweens.length && _lazyRender(); //in case rendering caused any tweens to lazy-init, we should render them because typically when a timeline finishes, users expect things to have rendered fully. Imagine an onUpdate on a timeline that reports/checks tweened values.\n\t\tcontext && (_context = context);\n\t\tresult = params ? callback.apply(scope, params) : callback.call(scope);\n\t\t_context = prevContext;\n\t\treturn result;\n\t},\n\t_interrupt = animation => {\n\t\t_removeFromParent(animation);\n\t\tanimation.scrollTrigger && animation.scrollTrigger.kill(!!_reverting);\n\t\tanimation.progress() < 1 && _callback(animation, \"onInterrupt\");\n\t\treturn animation;\n\t},\n\t_quickTween,\n\t_createPlugin = config => {\n\t\tconfig = !config.name && config.default || config; //UMD packaging wraps things oddly, so for example MotionPathHelper becomes {MotionPathHelper:MotionPathHelper, default:MotionPathHelper}.\n\t\tlet name = config.name,\n\t\t\tisFunc = _isFunction(config),\n\t\t\tPlugin = (name && !isFunc && config.init) ? function() { this._props = []; } : config, //in case someone passes in an object that's not a plugin, like CustomEase\n\t\t\tinstanceDefaults = {init:_emptyFunc, render:_renderPropTweens, add:_addPropTween, kill:_killPropTweensOf, modifier:_addPluginModifier, rawVars:0},\n\t\t\tstatics = {targetTest:0, get:0, getSetter:_getSetter, aliases:{}, register:0};\n\t\t_wake();\n\t\tif (config !== Plugin) {\n\t\t\tif (_plugins[name]) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t_setDefaults(Plugin, _setDefaults(_copyExcluding(config, instanceDefaults), statics)); //static methods\n\t\t\t_merge(Plugin.prototype, _merge(instanceDefaults, _copyExcluding(config, statics))); //instance methods\n\t\t\t_plugins[(Plugin.prop = name)] = Plugin;\n\t\t\tif (config.targetTest) {\n\t\t\t\t_harnessPlugins.push(Plugin);\n\t\t\t\t_reservedProps[name] = 1;\n\t\t\t}\n\t\t\tname = (name === \"css\" ? \"CSS\" : name.charAt(0).toUpperCase() + name.substr(1)) + \"Plugin\"; //for the global name. \"motionPath\" should become MotionPathPlugin\n\t\t}\n\t\t_addGlobal(name, Plugin);\n\t\tconfig.register && config.register(gsap, Plugin, PropTween);\n\t},\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * COLORS\n * --------------------------------------------------------------------------------------\n */\n\n\t_255 = 255,\n\t_colorLookup = {\n\t\taqua:[0,_255,_255],\n\t\tlime:[0,_255,0],\n\t\tsilver:[192,192,192],\n\t\tblack:[0,0,0],\n\t\tmaroon:[128,0,0],\n\t\tteal:[0,128,128],\n\t\tblue:[0,0,_255],\n\t\tnavy:[0,0,128],\n\t\twhite:[_255,_255,_255],\n\t\tolive:[128,128,0],\n\t\tyellow:[_255,_255,0],\n\t\torange:[_255,165,0],\n\t\tgray:[128,128,128],\n\t\tpurple:[128,0,128],\n\t\tgreen:[0,128,0],\n\t\tred:[_255,0,0],\n\t\tpink:[_255,192,203],\n\t\tcyan:[0,_255,_255],\n\t\ttransparent:[_255,_255,_255,0]\n\t},\n\t// possible future idea to replace the hard-coded color name values - put this in the ticker.wake() where we set the _doc:\n\t// let ctx = _doc.createElement(\"canvas\").getContext(\"2d\");\n\t// _forEachName(\"aqua,lime,silver,black,maroon,teal,blue,navy,white,olive,yellow,orange,gray,purple,green,red,pink,cyan\", color => {ctx.fillStyle = color; _colorLookup[color] = splitColor(ctx.fillStyle)});\n\t_hue = (h, m1, m2) => {\n\t\th += h < 0 ? 1 : h > 1 ? -1 : 0;\n\t\treturn ((((h * 6 < 1) ? m1 + (m2 - m1) * h * 6 : h < .5 ? m2 : (h * 3 < 2) ? m1 + (m2 - m1) * (2 / 3 - h) * 6 : m1) * _255) + .5) | 0;\n\t},\n\tsplitColor = (v, toHSL, forceAlpha) => {\n\t\tlet a = !v ? _colorLookup.black : _isNumber(v) ? [v >> 16, (v >> 8) & _255, v & _255] : 0,\n\t\t\tr, g, b, h, s, l, max, min, d, wasHSL;\n\t\tif (!a) {\n\t\t\tif (v.substr(-1) === \",\") { //sometimes a trailing comma is included and we should chop it off (typically from a comma-delimited list of values like a textShadow:\"2px 2px 2px blue, 5px 5px 5px rgb(255,0,0)\" - in this example \"blue,\" has a trailing comma. We could strip it out inside parseComplex() but we'd need to do it to the beginning and ending values plus it wouldn't provide protection from other potential scenarios like if the user passes in a similar value.\n\t\t\t\tv = v.substr(0, v.length - 1);\n\t\t\t}\n\t\t\tif (_colorLookup[v]) {\n\t\t\t\ta = _colorLookup[v];\n\t\t\t} else if (v.charAt(0) === \"#\") {\n\t\t\t\tif (v.length < 6) { //for shorthand like #9F0 or #9F0F (could have alpha)\n\t\t\t\t\tr = v.charAt(1);\n\t\t\t\t\tg = v.charAt(2);\n\t\t\t\t\tb = v.charAt(3);\n\t\t\t\t\tv = \"#\" + r + r + g + g + b + b + (v.length === 5 ? v.charAt(4) + v.charAt(4) : \"\");\n\t\t\t\t}\n\t\t\t\tif (v.length === 9) { // hex with alpha, like #fd5e53ff\n\t\t\t\t\ta = parseInt(v.substr(1, 6), 16);\n\t\t\t\t\treturn [a >> 16, (a >> 8) & _255, a & _255, parseInt(v.substr(7), 16) / 255];\n\t\t\t\t}\n\t\t\t\tv = parseInt(v.substr(1), 16);\n\t\t\t\ta = [v >> 16, (v >> 8) & _255, v & _255];\n\t\t\t} else if (v.substr(0, 3) === \"hsl\") {\n\t\t\t\ta = wasHSL = v.match(_strictNumExp);\n\t\t\t\tif (!toHSL) {\n\t\t\t\t\th = (+a[0] % 360) / 360;\n\t\t\t\t\ts = +a[1] / 100;\n\t\t\t\t\tl = +a[2] / 100;\n\t\t\t\t\tg = (l <= .5) ? l * (s + 1) : l + s - l * s;\n\t\t\t\t\tr = l * 2 - g;\n\t\t\t\t\ta.length > 3 && (a[3] *= 1); //cast as number\n\t\t\t\t\ta[0] = _hue(h + 1 / 3, r, g);\n\t\t\t\t\ta[1] = _hue(h, r, g);\n\t\t\t\t\ta[2] = _hue(h - 1 / 3, r, g);\n\t\t\t\t} else if (~v.indexOf(\"=\")) { //if relative values are found, just return the raw strings with the relative prefixes in place.\n\t\t\t\t\ta = v.match(_numExp);\n\t\t\t\t\tforceAlpha && a.length < 4 && (a[3] = 1);\n\t\t\t\t\treturn a;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ta = v.match(_strictNumExp) || _colorLookup.transparent;\n\t\t\t}\n\t\t\ta = a.map(Number);\n\t\t}\n\t\tif (toHSL && !wasHSL) {\n\t\t\tr = a[0] / _255;\n\t\t\tg = a[1] / _255;\n\t\t\tb = a[2] / _255;\n\t\t\tmax = Math.max(r, g, b);\n\t\t\tmin = Math.min(r, g, b);\n\t\t\tl = (max + min) / 2;\n\t\t\tif (max === min) {\n\t\t\t\th = s = 0;\n\t\t\t} else {\n\t\t\t\td = max - min;\n\t\t\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\t\t\th = max === r ? (g - b) / d + (g < b ? 6 : 0) : max === g ? (b - r) / d + 2 : (r - g) / d + 4;\n\t\t\t\th *= 60;\n\t\t\t}\n\t\t\ta[0] = ~~(h + .5);\n\t\t\ta[1] = ~~(s * 100 + .5);\n\t\t\ta[2] = ~~(l * 100 + .5);\n\t\t}\n\t\tforceAlpha && a.length < 4 && (a[3] = 1);\n\t\treturn a;\n\t},\n\t_colorOrderData = v => { // strips out the colors from the string, finds all the numeric slots (with units) and returns an array of those. The Array also has a \"c\" property which is an Array of the index values where the colors belong. This is to help work around issues where there's a mis-matched order of color/numeric data like drop-shadow(#f00 0px 1px 2px) and drop-shadow(0x 1px 2px #f00). This is basically a helper function used in _formatColors()\n\t\tlet values = [],\n\t\t\tc = [],\n\t\t\ti = -1;\n\t\tv.split(_colorExp).forEach(v => {\n\t\t\tlet a = v.match(_numWithUnitExp) || [];\n\t\t\tvalues.push(...a);\n\t\t\tc.push(i += a.length + 1);\n\t\t});\n\t\tvalues.c = c;\n\t\treturn values;\n\t},\n\t_formatColors = (s, toHSL, orderMatchData) => {\n\t\tlet result = \"\",\n\t\t\tcolors = (s + result).match(_colorExp),\n\t\t\ttype = toHSL ? \"hsla(\" : \"rgba(\",\n\t\t\ti = 0,\n\t\t\tc, shell, d, l;\n\t\tif (!colors) {\n\t\t\treturn s;\n\t\t}\n\t\tcolors = colors.map(color => (color = splitColor(color, toHSL, 1)) && type + (toHSL ? color[0] + \",\" + color[1] + \"%,\" + color[2] + \"%,\" + color[3] : color.join(\",\")) + \")\");\n\t\tif (orderMatchData) {\n\t\t\td = _colorOrderData(s);\n\t\t\tc = orderMatchData.c;\n\t\t\tif (c.join(result) !== d.c.join(result)) {\n\t\t\t\tshell = s.replace(_colorExp, \"1\").split(_numWithUnitExp);\n\t\t\t\tl = shell.length - 1;\n\t\t\t\tfor (; i < l; i++) {\n\t\t\t\t\tresult += shell[i] + (~c.indexOf(i) ? colors.shift() || type + \"0,0,0,0)\" : (d.length ? d : colors.length ? colors : orderMatchData).shift());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!shell) {\n\t\t\tshell = s.split(_colorExp);\n\t\t\tl = shell.length - 1;\n\t\t\tfor (; i < l; i++) {\n\t\t\t\tresult += shell[i] + colors[i];\n\t\t\t}\n\t\t}\n\t\treturn result + shell[l];\n\t},\n\t_colorExp = (function() {\n\t\tlet s = \"(?:\\\\b(?:(?:rgb|rgba|hsl|hsla)\\\\(.+?\\\\))|\\\\B#(?:[0-9a-f]{3,4}){1,2}\\\\b\", //we'll dynamically build this Regular Expression to conserve file size. After building it, it will be able to find rgb(), rgba(), # (hexadecimal), and named color values like red, blue, purple, etc.,\n\t\t\tp;\n\t\tfor (p in _colorLookup) {\n\t\t\ts += \"|\" + p + \"\\\\b\";\n\t\t}\n\t\treturn new RegExp(s + \")\", \"gi\");\n\t})(),\n\t_hslExp = /hsl[a]?\\(/,\n\t_colorStringFilter = a => {\n\t\tlet combined = a.join(\" \"),\n\t\t\ttoHSL;\n\t\t_colorExp.lastIndex = 0;\n\t\tif (_colorExp.test(combined)) {\n\t\t\ttoHSL = _hslExp.test(combined);\n\t\t\ta[1] = _formatColors(a[1], toHSL);\n\t\t\ta[0] = _formatColors(a[0], toHSL, _colorOrderData(a[1])); // make sure the order of numbers/colors match with the END value.\n\t\t\treturn true;\n\t\t}\n\t},\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * TICKER\n * --------------------------------------------------------------------------------------\n */\n\t_tickerActive,\n\t_ticker = (function() {\n\t\tlet _getTime = Date.now,\n\t\t\t_lagThreshold = 500,\n\t\t\t_adjustedLag = 33,\n\t\t\t_startTime = _getTime(),\n\t\t\t_lastUpdate = _startTime,\n\t\t\t_gap = 1000 / 240,\n\t\t\t_nextTime = _gap,\n\t\t\t_listeners = [],\n\t\t\t_id, _req, _raf, _self, _delta, _i,\n\t\t\t_tick = v => {\n\t\t\t\tlet elapsed = _getTime() - _lastUpdate,\n\t\t\t\t\tmanual = v === true,\n\t\t\t\t\toverlap, dispatch, time, frame;\n\t\t\t\telapsed > _lagThreshold && (_startTime += elapsed - _adjustedLag);\n\t\t\t\t_lastUpdate += elapsed;\n\t\t\t\ttime = _lastUpdate - _startTime;\n\t\t\t\toverlap = time - _nextTime;\n\t\t\t\tif (overlap > 0 || manual) {\n\t\t\t\t\tframe = ++_self.frame;\n\t\t\t\t\t_delta = time - _self.time * 1000;\n\t\t\t\t\t_self.time = time = time / 1000;\n\t\t\t\t\t_nextTime += overlap + (overlap >= _gap ? 4 : _gap - overlap);\n\t\t\t\t\tdispatch = 1;\n\t\t\t\t}\n\t\t\t\tmanual || (_id = _req(_tick)); //make sure the request is made before we dispatch the \"tick\" event so that timing is maintained. Otherwise, if processing the \"tick\" requires a bunch of time (like 15ms) and we're using a setTimeout() that's based on 16.7ms, it'd technically take 31.7ms between frames otherwise.\n\t\t\t\tif (dispatch) {\n\t\t\t\t\tfor (_i = 0; _i < _listeners.length; _i++) { // use _i and check _listeners.length instead of a variable because a listener could get removed during the loop, and if that happens to an element less than the current index, it'd throw things off in the loop.\n\t\t\t\t\t\t_listeners[_i](time, _delta, frame, v);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t_self = {\n\t\t\ttime:0,\n\t\t\tframe:0,\n\t\t\ttick() {\n\t\t\t\t_tick(true);\n\t\t\t},\n\t\t\tdeltaRatio(fps) {\n\t\t\t\treturn _delta / (1000 / (fps || 60));\n\t\t\t},\n\t\t\twake() {\n\t\t\t\tif (_coreReady) {\n\t\t\t\t\tif (!_coreInitted && _windowExists()) {\n\t\t\t\t\t\t_win = _coreInitted = window;\n\t\t\t\t\t\t_doc = _win.document || {};\n\t\t\t\t\t\t_globals.gsap = gsap;\n\t\t\t\t\t\t(_win.gsapVersions || (_win.gsapVersions = [])).push(gsap.version);\n\t\t\t\t\t\t_install(_installScope || _win.GreenSockGlobals || (!_win.gsap && _win) || {});\n\t\t\t\t\t\t_raf = _win.requestAnimationFrame;\n\t\t\t\t\t}\n\t\t\t\t\t_id && _self.sleep();\n\t\t\t\t\t_req = _raf || (f => setTimeout(f, (_nextTime - _self.time * 1000 + 1) | 0));\n\t\t\t\t\t_tickerActive = 1;\n\t\t\t\t\t_tick(2);\n\t\t\t\t}\n\t\t\t},\n\t\t\tsleep() {\n\t\t\t\t(_raf ? _win.cancelAnimationFrame : clearTimeout)(_id);\n\t\t\t\t_tickerActive = 0;\n\t\t\t\t_req = _emptyFunc;\n\t\t\t},\n\t\t\tlagSmoothing(threshold, adjustedLag) {\n\t\t\t\t_lagThreshold = threshold || (1 / _tinyNum); //zero should be interpreted as basically unlimited\n\t\t\t\t_adjustedLag = Math.min(adjustedLag, _lagThreshold, 0);\n\t\t\t},\n\t\t\tfps(fps) {\n\t\t\t\t_gap = 1000 / (fps || 240);\n\t\t\t\t_nextTime = _self.time * 1000 + _gap;\n\t\t\t},\n\t\t\tadd(callback, once, prioritize) {\n\t\t\t\tlet func = once ? (t, d, f, v) => {callback(t, d, f, v); _self.remove(func);} : callback;\n\t\t\t\t_self.remove(callback);\n\t\t\t\t_listeners[prioritize ? \"unshift\" : \"push\"](func);\n\t\t\t\t_wake();\n\t\t\t\treturn func;\n\t\t\t},\n\t\t\tremove(callback, i) {\n\t\t\t\t~(i = _listeners.indexOf(callback)) && _listeners.splice(i, 1) && _i >= i && _i--;\n\t\t\t},\n\t\t\t_listeners:_listeners\n\t\t};\n\t\treturn _self;\n\t})(),\n\t_wake = () => !_tickerActive && _ticker.wake(), //also ensures the core classes are initialized.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n* -------------------------------------------------\n* EASING\n* -------------------------------------------------\n*/\n\t_easeMap = {},\n\t_customEaseExp = /^[\\d.\\-M][\\d.\\-,\\s]/,\n\t_quotesExp = /[\"']/g,\n\t_parseObjectInString = value => { //takes a string like \"{wiggles:10, type:anticipate})\" and turns it into a real object. Notice it ends in \")\" and includes the {} wrappers. This is because we only use this function for parsing ease configs and prioritized optimization rather than reusability.\n\t\tlet obj = {},\n\t\t\tsplit = value.substr(1, value.length-3).split(\":\"),\n\t\t\tkey = split[0],\n\t\t\ti = 1,\n\t\t\tl = split.length,\n\t\t\tindex, val, parsedVal;\n\t\tfor (; i < l; i++) {\n\t\t\tval = split[i];\n\t\t\tindex = i !== l-1 ? val.lastIndexOf(\",\") : val.length;\n\t\t\tparsedVal = val.substr(0, index);\n\t\t\tobj[key] = isNaN(parsedVal) ? parsedVal.replace(_quotesExp, \"\").trim() : +parsedVal;\n\t\t\tkey = val.substr(index+1).trim();\n\t\t}\n\t\treturn obj;\n\t},\n\t_valueInParentheses = value => {\n\t\tlet open = value.indexOf(\"(\") + 1,\n\t\t\tclose = value.indexOf(\")\"),\n\t\t\tnested = value.indexOf(\"(\", open);\n\t\treturn value.substring(open, ~nested && nested < close ? value.indexOf(\")\", close + 1) : close);\n\t},\n\t_configEaseFromString = name => { //name can be a string like \"elastic.out(1,0.5)\", and pass in _easeMap as obj and it'll parse it out and call the actual function like _easeMap.Elastic.easeOut.config(1,0.5). It will also parse custom ease strings as long as CustomEase is loaded and registered (internally as _easeMap._CE).\n\t\tlet split = (name + \"\").split(\"(\"),\n\t\t\tease = _easeMap[split[0]];\n\t\treturn (ease && split.length > 1 && ease.config) ? ease.config.apply(null, ~name.indexOf(\"{\") ? [_parseObjectInString(split[1])] : _valueInParentheses(name).split(\",\").map(_numericIfPossible)) : (_easeMap._CE && _customEaseExp.test(name)) ? _easeMap._CE(\"\", name) : ease;\n\t},\n\t_invertEase = ease => p => 1 - ease(1 - p),\n\t// allow yoyoEase to be set in children and have those affected when the parent/ancestor timeline yoyos.\n\t_propagateYoyoEase = (timeline, isYoyo) => {\n\t\tlet child = timeline._first, ease;\n\t\twhile (child) {\n\t\t\tif (child instanceof Timeline) {\n\t\t\t\t_propagateYoyoEase(child, isYoyo);\n\t\t\t} else if (child.vars.yoyoEase && (!child._yoyo || !child._repeat) && child._yoyo !== isYoyo) {\n\t\t\t\tif (child.timeline) {\n\t\t\t\t\t_propagateYoyoEase(child.timeline, isYoyo);\n\t\t\t\t} else {\n\t\t\t\t\tease = child._ease;\n\t\t\t\t\tchild._ease = child._yEase;\n\t\t\t\t\tchild._yEase = ease;\n\t\t\t\t\tchild._yoyo = isYoyo;\n\t\t\t\t}\n\t\t\t}\n\t\t\tchild = child._next;\n\t\t}\n\t},\n\t_parseEase = (ease, defaultEase) => !ease ? defaultEase : (_isFunction(ease) ? ease : _easeMap[ease] || _configEaseFromString(ease)) || defaultEase,\n\t_insertEase = (names, easeIn, easeOut = p => 1 - easeIn(1 - p), easeInOut = (p => p < .5 ? easeIn(p * 2) / 2 : 1 - easeIn((1 - p) * 2) / 2)) => {\n\t\tlet ease = {easeIn, easeOut, easeInOut},\n\t\t\tlowercaseName;\n\t\t_forEachName(names, name => {\n\t\t\t_easeMap[name] = _globals[name] = ease;\n\t\t\t_easeMap[(lowercaseName = name.toLowerCase())] = easeOut;\n\t\t\tfor (let p in ease) {\n\t\t\t\t_easeMap[lowercaseName + (p === \"easeIn\" ? \".in\" : p === \"easeOut\" ? \".out\" : \".inOut\")] = _easeMap[name + \".\" + p] = ease[p];\n\t\t\t}\n\t\t});\n\t\treturn ease;\n\t},\n\t_easeInOutFromOut = easeOut => (p => p < .5 ? (1 - easeOut(1 - (p * 2))) / 2 : .5 + easeOut((p - .5) * 2) / 2),\n\t_configElastic = (type, amplitude, period) => {\n\t\tlet p1 = (amplitude >= 1) ? amplitude : 1, //note: if amplitude is < 1, we simply adjust the period for a more natural feel. Otherwise the math doesn't work right and the curve starts at 1.\n\t\t\tp2 = (period || (type ? .3 : .45)) / (amplitude < 1 ? amplitude : 1),\n\t\t\tp3 = p2 / _2PI * (Math.asin(1 / p1) || 0),\n\t\t\teaseOut = p => p === 1 ? 1 : p1 * (2 ** (-10 * p)) * _sin((p - p3) * p2) + 1,\n\t\t\tease = (type === \"out\") ? easeOut : (type === \"in\") ? p => 1 - easeOut(1 - p) : _easeInOutFromOut(easeOut);\n\t\tp2 = _2PI / p2; //precalculate to optimize\n\t\tease.config = (amplitude, period) => _configElastic(type, amplitude, period);\n\t\treturn ease;\n\t},\n\t_configBack = (type, overshoot = 1.70158) => {\n\t\tlet easeOut = p => p ? ((--p) * p * ((overshoot + 1) * p + overshoot) + 1) : 0,\n\t\t\tease = type === \"out\" ? easeOut : type === \"in\" ? p => 1 - easeOut(1 - p) : _easeInOutFromOut(easeOut);\n\t\tease.config = overshoot => _configBack(type, overshoot);\n\t\treturn ease;\n\t};\n\t// a cheaper (kb and cpu) but more mild way to get a parameterized weighted ease by feeding in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n\t// _weightedEase = ratio => {\n\t// \tlet y = 0.5 + ratio / 2;\n\t// \treturn p => (2 * (1 - p) * p * y + p * p);\n\t// },\n\t// a stronger (but more expensive kb/cpu) parameterized weighted ease that lets you feed in a value between -1 (easeIn) and 1 (easeOut) where 0 is linear.\n\t// _weightedEaseStrong = ratio => {\n\t// \tratio = .5 + ratio / 2;\n\t// \tlet o = 1 / 3 * (ratio < .5 ? ratio : 1 - ratio),\n\t// \t\tb = ratio - o,\n\t// \t\tc = ratio + o;\n\t// \treturn p => p === 1 ? p : 3 * b * (1 - p) * (1 - p) * p + 3 * c * (1 - p) * p * p + p * p * p;\n\t// };\n\n_forEachName(\"Linear,Quad,Cubic,Quart,Quint,Strong\", (name, i) => {\n\tlet power = i < 5 ? i + 1 : i;\n\t_insertEase(name + \",Power\" + (power - 1), i ? p => p ** power : p => p, p => 1 - (1 - p) ** power, p => p < .5 ? (p * 2) ** power / 2 : 1 - ((1 - p) * 2) ** power / 2);\n});\n_easeMap.Linear.easeNone = _easeMap.none = _easeMap.Linear.easeIn;\n_insertEase(\"Elastic\", _configElastic(\"in\"), _configElastic(\"out\"), _configElastic());\n((n, c) => {\n\tlet n1 = 1 / c,\n\t\tn2 = 2 * n1,\n\t\tn3 = 2.5 * n1,\n\t\teaseOut = p => (p < n1) ? n * p * p : (p < n2) ? n * (p - 1.5 / c) ** 2 + .75 : (p < n3) ? n * (p -= 2.25 / c) * p + .9375 : n * (p - 2.625 / c) ** 2 + .984375;\n\t_insertEase(\"Bounce\", p => 1 - easeOut(1 - p), easeOut);\n})(7.5625, 2.75);\n_insertEase(\"Expo\", p => p ? 2 ** (10 * (p - 1)) : 0);\n_insertEase(\"Circ\", p => -(_sqrt(1 - (p * p)) - 1));\n_insertEase(\"Sine\", p => p === 1 ? 1 : -_cos(p * _HALF_PI) + 1);\n_insertEase(\"Back\", _configBack(\"in\"), _configBack(\"out\"), _configBack());\n_easeMap.SteppedEase = _easeMap.steps = _globals.SteppedEase = {\n\tconfig(steps = 1, immediateStart) {\n\t\tlet p1 = 1 / steps,\n\t\t\tp2 = steps + (immediateStart ? 0 : 1),\n\t\t\tp3 = immediateStart ? 1 : 0,\n\t\t\tmax = 1 - _tinyNum;\n\t\treturn p => (((p2 * _clamp(0, max, p)) | 0) + p3) * p1;\n\t}\n};\n_defaults.ease = _easeMap[\"quad.out\"];\n\n\n_forEachName(\"onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt\", name => _callbackNames += name + \",\" + name + \"Params,\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * CACHE\n * --------------------------------------------------------------------------------------\n */\nexport class GSCache {\n\n\tconstructor(target, harness) {\n\t\tthis.id = _gsID++;\n\t\ttarget._gsap = this;\n\t\tthis.target = target;\n\t\tthis.harness = harness;\n\t\tthis.get = harness ? harness.get : _getProperty;\n\t\tthis.set = harness ? harness.getSetter : _getSetter;\n\t}\n\n}\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * ANIMATION\n * --------------------------------------------------------------------------------------\n */\n\nexport class Animation {\n\n\tconstructor(vars) {\n\t\tthis.vars = vars;\n\t\tthis._delay = +vars.delay || 0;\n\t\tif ((this._repeat = vars.repeat === Infinity ? -2 : vars.repeat || 0)) { // TODO: repeat: Infinity on a timeline's children must flag that timeline internally and affect its totalDuration, otherwise it'll stop in the negative direction when reaching the start.\n\t\t\tthis._rDelay = vars.repeatDelay || 0;\n\t\t\tthis._yoyo = !!vars.yoyo || !!vars.yoyoEase;\n\t\t}\n\t\tthis._ts = 1;\n\t\t_setDuration(this, +vars.duration, 1, 1);\n\t\tthis.data = vars.data;\n\t\tif (_context) {\n\t\t\tthis._ctx = _context;\n\t\t\t_context.data.push(this);\n\t\t}\n\t\t_tickerActive || _ticker.wake();\n\t}\n\n\tdelay(value) {\n\t\tif (value || value === 0) {\n\t\t\tthis.parent && this.parent.smoothChildTiming && (this.startTime(this._start + value - this._delay));\n\t\t\tthis._delay = value;\n\t\t\treturn this;\n\t\t}\n\t\treturn this._delay;\n\t}\n\n\tduration(value) {\n\t\treturn arguments.length ? this.totalDuration(this._repeat > 0 ? value + (value + this._rDelay) * this._repeat : value) : this.totalDuration() && this._dur;\n\t}\n\n\ttotalDuration(value) {\n\t\tif (!arguments.length) {\n\t\t\treturn this._tDur;\n\t\t}\n\t\tthis._dirty = 0;\n\t\treturn _setDuration(this, this._repeat < 0 ? value : (value - (this._repeat * this._rDelay)) / (this._repeat + 1));\n\t}\n\n\ttotalTime(totalTime, suppressEvents) {\n\t\t_wake();\n\t\tif (!arguments.length) {\n\t\t\treturn this._tTime;\n\t\t}\n\t\tlet parent = this._dp;\n\t\tif (parent && parent.smoothChildTiming && this._ts) {\n\t\t\t_alignPlayhead(this, totalTime);\n\t\t\t!parent._dp || parent.parent || _postAddChecks(parent, this); // edge case: if this is a child of a timeline that already completed, for example, we must re-activate the parent.\n\t\t\t//in case any of the ancestor timelines had completed but should now be enabled, we should reset their totalTime() which will also ensure that they're lined up properly and enabled. Skip for animations that are on the root (wasteful). Example: a TimelineLite.exportRoot() is performed when there's a paused tween on the root, the export will not complete until that tween is unpaused, but imagine a child gets restarted later, after all [unpaused] tweens have completed. The start of that child would get pushed out, but one of the ancestors may have completed.\n\t\t\twhile (parent && parent.parent) {\n\t\t\t\tif (parent.parent._time !== parent._start + (parent._ts >= 0 ? parent._tTime / parent._ts : (parent.totalDuration() - parent._tTime) / -parent._ts)) {\n\t\t\t\t\tparent.totalTime(parent._tTime, true);\n\t\t\t\t}\n\t\t\t\tparent = parent.parent;\n\t\t\t}\n\t\t\tif (!this.parent && this._dp.autoRemoveChildren && ((this._ts > 0 && totalTime < this._tDur) || (this._ts < 0 && totalTime > 0) || (!this._tDur && !totalTime) )) { //if the animation doesn't have a parent, put it back into its last parent (recorded as _dp for exactly cases like this). Limit to parents with autoRemoveChildren (like globalTimeline) so that if the user manually removes an animation from a timeline and then alters its playhead, it doesn't get added back in.\n\t\t\t\t_addToTimeline(this._dp, this, this._start - this._delay);\n\t\t\t}\n\t\t}\n if (this._tTime !== totalTime || (!this._dur && !suppressEvents) || (this._initted && Math.abs(this._zTime) === _tinyNum) || (!totalTime && !this._initted && (this.add || this._ptLookup))) { // check for _ptLookup on a Tween instance to ensure it has actually finished being instantiated, otherwise if this.reverse() gets called in the Animation constructor, it could trigger a render() here even though the _targets weren't populated, thus when _init() is called there won't be any PropTweens (it'll act like the tween is non-functional)\n \tthis._ts || (this._pTime = totalTime); // otherwise, if an animation is paused, then the playhead is moved back to zero, then resumed, it'd revert back to the original time at the pause\n\t //if (!this._lock) { // avoid endless recursion (not sure we need this yet or if it's worth the performance hit)\n\t\t // this._lock = 1;\n\t\t _lazySafeRender(this, totalTime, suppressEvents);\n\t\t // this._lock = 0;\n\t //}\n\t\t}\n\t\treturn this;\n\t}\n\n\ttime(value, suppressEvents) {\n\t\treturn arguments.length ? this.totalTime((Math.min(this.totalDuration(), value + _elapsedCycleDuration(this)) % (this._dur + this._rDelay)) || (value ? this._dur : 0), suppressEvents) : this._time; // note: if the modulus results in 0, the playhead could be exactly at the end or the beginning, and we always defer to the END with a non-zero value, otherwise if you set the time() to the very end (duration()), it would render at the START!\n\t}\n\n\ttotalProgress(value, suppressEvents) {\n\t\treturn arguments.length ? this.totalTime( this.totalDuration() * value, suppressEvents) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio;\n\t}\n\n\tprogress(value, suppressEvents) {\n\t\treturn arguments.length ? this.totalTime( this.duration() * (this._yoyo && !(this.iteration() & 1) ? 1 - value : value) + _elapsedCycleDuration(this), suppressEvents) : (this.duration() ? Math.min(1, this._time / this._dur) : this.ratio);\n\t}\n\n\titeration(value, suppressEvents) {\n\t\tlet cycleDuration = this.duration() + this._rDelay;\n\t\treturn arguments.length ? this.totalTime(this._time + (value - 1) * cycleDuration, suppressEvents) : this._repeat ? _animationCycle(this._tTime, cycleDuration) + 1 : 1;\n\t}\n\n\t// potential future addition:\n\t// isPlayingBackwards() {\n\t// \tlet animation = this,\n\t// \t\torientation = 1; // 1 = forward, -1 = backward\n\t// \twhile (animation) {\n\t// \t\torientation *= animation.reversed() || (animation.repeat() && !(animation.iteration() & 1)) ? -1 : 1;\n\t// \t\tanimation = animation.parent;\n\t// \t}\n\t// \treturn orientation < 0;\n\t// }\n\n\ttimeScale(value) {\n\t\tif (!arguments.length) {\n\t\t\treturn this._rts === -_tinyNum ? 0 : this._rts; // recorded timeScale. Special case: if someone calls reverse() on an animation with timeScale of 0, we assign it -_tinyNum to remember it's reversed.\n\t\t}\n\t\tif (this._rts === value) {\n\t\t\treturn this;\n\t\t}\n\t\tlet tTime = this.parent && this._ts ? _parentToChildTotalTime(this.parent._time, this) : this._tTime; // make sure to do the parentToChildTotalTime() BEFORE setting the new _ts because the old one must be used in that calculation.\n\n\t\t// future addition? Up side: fast and minimal file size. Down side: only works on this animation; if a timeline is reversed, for example, its childrens' onReverse wouldn't get called.\n\t\t//(+value < 0 && this._rts >= 0) && _callback(this, \"onReverse\", true);\n\n\t\t// prioritize rendering where the parent's playhead lines up instead of this._tTime because there could be a tween that's animating another tween's timeScale in the same rendering loop (same parent), thus if the timeScale tween renders first, it would alter _start BEFORE _tTime was set on that tick (in the rendering loop), effectively freezing it until the timeScale tween finishes.\n\t\tthis._rts = +value || 0;\n\t\tthis._ts = (this._ps || value === -_tinyNum) ? 0 : this._rts; // _ts is the functional timeScale which would be 0 if the animation is paused.\n\t\tthis.totalTime(_clamp(-this._delay, this._tDur, tTime), true);\n\t\t_setEnd(this); // if parent.smoothChildTiming was false, the end time didn't get updated in the _alignPlayhead() method, so do it here.\n\t\treturn _recacheAncestors(this);\n\t}\n\n\tpaused(value) {\n\t\tif (!arguments.length) {\n\t\t\treturn this._ps;\n\t\t}\n\t\tif (this._ps !== value) {\n\t\t\tthis._ps = value;\n\t\t\tif (value) {\n\t\t\t\tthis._pTime = this._tTime || Math.max(-this._delay, this.rawTime()); // if the pause occurs during the delay phase, make sure that's factored in when resuming.\n\t\t\t\tthis._ts = this._act = 0; // _ts is the functional timeScale, so a paused tween would effectively have a timeScale of 0. We record the \"real\" timeScale as _rts (recorded time scale)\n\t\t\t} else {\n\t\t\t\t_wake();\n\t\t\t\tthis._ts = this._rts;\n\t\t\t\t//only defer to _pTime (pauseTime) if tTime is zero. Remember, someone could pause() an animation, then scrub the playhead and resume(). If the parent doesn't have smoothChildTiming, we render at the rawTime() because the startTime won't get updated.\n\t\t\t\tthis.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, (this.progress() === 1) && Math.abs(this._zTime) !== _tinyNum && (this._tTime -= _tinyNum)); // edge case: animation.progress(1).pause().play() wouldn't render again because the playhead is already at the end, but the call to totalTime() below will add it back to its parent...and not remove it again (since removing only happens upon rendering at a new time). Offsetting the _tTime slightly is done simply to cause the final render in totalTime() that'll pop it off its timeline (if autoRemoveChildren is true, of course). Check to make sure _zTime isn't -_tinyNum to avoid an edge case where the playhead is pushed to the end but INSIDE a tween/callback, the timeline itself is paused thus halting rendering and leaving a few unrendered. When resuming, it wouldn't render those otherwise.\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tstartTime(value) {\n\t\tif (arguments.length) {\n\t\t\tthis._start = value;\n\t\t\tlet parent = this.parent || this._dp;\n\t\t\tparent && (parent._sort || !this.parent) && _addToTimeline(parent, this, value - this._delay);\n\t\t\treturn this;\n\t\t}\n\t\treturn this._start;\n\t}\n\n\tendTime(includeRepeats) {\n\t\treturn this._start + (_isNotFalse(includeRepeats) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1);\n\t}\n\n\trawTime(wrapRepeats) {\n\t\tlet parent = this.parent || this._dp; // _dp = detached parent\n\t\treturn !parent ? this._tTime : (wrapRepeats && (!this._ts || (this._repeat && this._time && this.totalProgress() < 1))) ? this._tTime % (this._dur + this._rDelay) : !this._ts ? this._tTime : _parentToChildTotalTime(parent.rawTime(wrapRepeats), this);\n\t}\n\n\trevert(config= _revertConfig) {\n\t\tlet prevIsReverting = _reverting;\n\t\t_reverting = config;\n\t\tif (this._initted || this._startAt) {\n\t\t\tthis.timeline && this.timeline.revert(config);\n\t\t\tthis.totalTime(-0.01, config.suppressEvents);\n\t\t}\n\t\tthis.data !== \"nested\" && config.kill !== false && this.kill();\n\t\t_reverting = prevIsReverting;\n\t\treturn this;\n\t}\n\n\tglobalTime(rawTime) {\n\t\tlet animation = this,\n\t\t\ttime = arguments.length ? rawTime : animation.rawTime();\n\t\twhile (animation) {\n\t\t\ttime = animation._start + time / (animation._ts || 1);\n\t\t\tanimation = animation._dp;\n\t\t}\n\t\treturn !this.parent && this.vars.immediateRender ? -1 : time; // the _startAt tweens for .fromTo() and .from() that have immediateRender should always be FIRST in the timeline (important for Recording.revert())\n\t}\n\n\trepeat(value) {\n\t\tif (arguments.length) {\n\t\t\tthis._repeat = value === Infinity ? -2 : value;\n\t\t\treturn _onUpdateTotalDuration(this);\n\t\t}\n\t\treturn this._repeat === -2 ? Infinity : this._repeat;\n\t}\n\n\trepeatDelay(value) {\n\t\tif (arguments.length) {\n\t\t\tlet time = this._time;\n\t\t\tthis._rDelay = value;\n\t\t\t_onUpdateTotalDuration(this);\n\t\t\treturn time ? this.time(time) : this;\n\t\t}\n\t\treturn this._rDelay;\n\t}\n\n\tyoyo(value) {\n\t\tif (arguments.length) {\n\t\t\tthis._yoyo = value;\n\t\t\treturn this;\n\t\t}\n\t\treturn this._yoyo;\n\t}\n\n\tseek(position, suppressEvents) {\n\t\treturn this.totalTime(_parsePosition(this, position), _isNotFalse(suppressEvents));\n\t}\n\n\trestart(includeDelay, suppressEvents) {\n\t\treturn this.play().totalTime(includeDelay ? -this._delay : 0, _isNotFalse(suppressEvents));\n\t}\n\n\tplay(from, suppressEvents) {\n\t\tfrom != null && this.seek(from, suppressEvents);\n\t\treturn this.reversed(false).paused(false);\n\t}\n\n\treverse(from, suppressEvents) {\n\t\tfrom != null && this.seek(from || this.totalDuration(), suppressEvents);\n\t\treturn this.reversed(true).paused(false);\n\t}\n\n\tpause(atTime, suppressEvents) {\n\t\tatTime != null && this.seek(atTime, suppressEvents);\n\t\treturn this.paused(true);\n\t}\n\n\tresume() {\n\t\treturn this.paused(false);\n\t}\n\n\treversed(value) {\n\t\tif (arguments.length) {\n\t\t\t!!value !== this.reversed() && this.timeScale(-this._rts || (value ? -_tinyNum : 0)); // in case timeScale is zero, reversing would have no effect so we use _tinyNum.\n\t\t\treturn this;\n\t\t}\n\t\treturn this._rts < 0;\n\t}\n\n\tinvalidate() {\n\t\tthis._initted = this._act = 0;\n\t\tthis._zTime = -_tinyNum;\n\t\treturn this;\n\t}\n\n\tisActive() {\n\t\tlet parent = this.parent || this._dp,\n\t\t\tstart = this._start,\n\t\t\trawTime;\n\t\treturn !!(!parent || (this._ts && this._initted && parent.isActive() && (rawTime = parent.rawTime(true)) >= start && rawTime < this.endTime(true) - _tinyNum));\n\t}\n\n\teventCallback(type, callback, params) {\n\t\tlet vars = this.vars;\n\t\tif (arguments.length > 1) {\n\t\t\tif (!callback) {\n\t\t\t\tdelete vars[type];\n\t\t\t} else {\n\t\t\t\tvars[type] = callback;\n\t\t\t\tparams && (vars[type + \"Params\"] = params);\n\t\t\t\ttype === \"onUpdate\" && (this._onUpdate = callback);\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\treturn vars[type];\n\t}\n\n\tthen(onFulfilled) {\n\t\tlet self = this;\n\t\treturn new Promise(resolve => {\n\t\t\tlet f = _isFunction(onFulfilled) ? onFulfilled : _passThrough,\n\t\t\t\t_resolve = () => {\n\t\t\t\t\tlet _then = self.then;\n\t\t\t\t\tself.then = null; // temporarily null the then() method to avoid an infinite loop (see https://github.com/greensock/GSAP/issues/322)\n\t\t\t\t\t_isFunction(f) && (f = f(self)) && (f.then || f === self) && (self.then = _then);\n\t\t\t\t\tresolve(f);\n\t\t\t\t\tself.then = _then;\n\t\t\t\t};\n\t\t\tif (self._initted && (self.totalProgress() === 1 && self._ts >= 0) || (!self._tTime && self._ts < 0)) {\n\t\t\t\t_resolve();\n\t\t\t} else {\n\t\t\t\tself._prom = _resolve;\n\t\t\t}\n\t\t});\n\t}\n\n\tkill() {\n\t\t_interrupt(this);\n\t}\n\n}\n\n_setDefaults(Animation.prototype, {_time:0, _start:0, _end:0, _tTime:0, _tDur:0, _dirty:0, _repeat:0, _yoyo:false, parent:null, _initted:false, _rDelay:0, _ts:1, _dp:0, ratio:0, _zTime:-_tinyNum, _prom:0, _ps:false, _rts:1});\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * -------------------------------------------------\n * TIMELINE\n * -------------------------------------------------\n */\n\nexport class Timeline extends Animation {\n\n\tconstructor(vars = {}, position) {\n\t\tsuper(vars);\n\t\tthis.labels = {};\n\t\tthis.smoothChildTiming = !!vars.smoothChildTiming;\n\t\tthis.autoRemoveChildren = !!vars.autoRemoveChildren;\n\t\tthis._sort = _isNotFalse(vars.sortChildren);\n\t\t_globalTimeline && _addToTimeline(vars.parent || _globalTimeline, this, position);\n\t\tvars.reversed && this.reverse();\n\t\tvars.paused && this.paused(true);\n\t\tvars.scrollTrigger && _scrollTrigger(this, vars.scrollTrigger);\n\t}\n\n\tto(targets, vars, position) {\n\t\t_createTweenType(0, arguments, this);\n\t\treturn this;\n\t}\n\n\tfrom(targets, vars, position) {\n\t\t_createTweenType(1, arguments, this);\n\t\treturn this;\n\t}\n\n\tfromTo(targets, fromVars, toVars, position) {\n\t\t_createTweenType(2, arguments, this);\n\t\treturn this;\n\t}\n\n\tset(targets, vars, position) {\n\t\tvars.duration = 0;\n\t\tvars.parent = this;\n\t\t_inheritDefaults(vars).repeatDelay || (vars.repeat = 0);\n\t\tvars.immediateRender = !!vars.immediateRender;\n\t\tnew Tween(targets, vars, _parsePosition(this, position), 1);\n\t\treturn this;\n\t}\n\n\tcall(callback, params, position) {\n\t\treturn _addToTimeline(this, Tween.delayedCall(0, callback, params), position);\n\t}\n\n\t//ONLY for backward compatibility! Maybe delete?\n\tstaggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n\t\tvars.duration = duration;\n\t\tvars.stagger = vars.stagger || stagger;\n\t\tvars.onComplete = onCompleteAll;\n\t\tvars.onCompleteParams = onCompleteAllParams;\n\t\tvars.parent = this;\n\t\tnew Tween(targets, vars, _parsePosition(this, position));\n\t\treturn this;\n\t}\n\n\tstaggerFrom(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams) {\n\t\tvars.runBackwards = 1;\n\t\t_inheritDefaults(vars).immediateRender = _isNotFalse(vars.immediateRender);\n\t\treturn this.staggerTo(targets, duration, vars, stagger, position, onCompleteAll, onCompleteAllParams);\n\t}\n\n\tstaggerFromTo(targets, duration, fromVars, toVars, stagger, position, onCompleteAll, onCompleteAllParams) {\n\t\ttoVars.startAt = fromVars;\n\t\t_inheritDefaults(toVars).immediateRender = _isNotFalse(toVars.immediateRender);\n\t\treturn this.staggerTo(targets, duration, toVars, stagger, position, onCompleteAll, onCompleteAllParams);\n\t}\n\n\trender(totalTime, suppressEvents, force) {\n\t\tlet prevTime = this._time,\n\t\t\ttDur = this._dirty ? this.totalDuration() : this._tDur,\n\t\t\tdur = this._dur,\n\t\t\ttTime = totalTime <= 0 ? 0 : _roundPrecise(totalTime), // if a paused timeline is resumed (or its _start is updated for another reason...which rounds it), that could result in the playhead shifting a **tiny** amount and a zero-duration child at that spot may get rendered at a different ratio, like its totalTime in render() may be 1e-17 instead of 0, for example.\n\t\t\tcrossingStart = (this._zTime < 0) !== (totalTime < 0) && (this._initted || !dur),\n\t\t\ttime, child, next, iteration, cycleDuration, prevPaused, pauseTween, timeScale, prevStart, prevIteration, yoyo, isYoyo;\n\t\tthis !== _globalTimeline && tTime > tDur && totalTime >= 0 && (tTime = tDur);\n\t\tif (tTime !== this._tTime || force || crossingStart) {\n\t\t\tif (prevTime !== this._time && dur) { //if totalDuration() finds a child with a negative startTime and smoothChildTiming is true, things get shifted around internally so we need to adjust the time accordingly. For example, if a tween starts at -30 we must shift EVERYTHING forward 30 seconds and move this timeline's startTime backward by 30 seconds so that things align with the playhead (no jump).\n\t\t\t\ttTime += this._time - prevTime;\n\t\t\t\ttotalTime += this._time - prevTime;\n\t\t\t}\n\t\t\ttime = tTime;\n\t\t\tprevStart = this._start;\n\t\t\ttimeScale = this._ts;\n\t\t\tprevPaused = !timeScale;\n\t\t\tif (crossingStart) {\n\t\t\t\tdur || (prevTime = this._zTime);\n\t\t\t\t //when the playhead arrives at EXACTLY time 0 (right on top) of a zero-duration timeline, we need to discern if events are suppressed so that when the playhead moves again (next time), it'll trigger the callback. If events are NOT suppressed, obviously the callback would be triggered in this render. Basically, the callback should fire either when the playhead ARRIVES or LEAVES this exact spot, not both. Imagine doing a timeline.seek(0) and there's a callback that sits at 0. Since events are suppressed on that seek() by default, nothing will fire, but when the playhead moves off of that position, the callback should fire. This behavior is what people intuitively expect.\n\t\t\t\t(totalTime || !suppressEvents) && (this._zTime = totalTime);\n\t\t\t}\n\t\t\tif (this._repeat) { //adjust the time for repeats and yoyos\n\t\t\t\tyoyo = this._yoyo;\n\t\t\t\tcycleDuration = dur + this._rDelay;\n\t\t\t\tif (this._repeat < -1 && totalTime < 0) {\n\t\t\t\t\treturn this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n\t\t\t\t}\n\t\t\t\ttime = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\t\t\t\tif (tTime === tDur) { // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n\t\t\t\t\titeration = this._repeat;\n\t\t\t\t\ttime = dur;\n\t\t\t\t} else {\n\t\t\t\t\titeration = ~~(tTime / cycleDuration);\n\t\t\t\t\tif (iteration && iteration === tTime / cycleDuration) {\n\t\t\t\t\t\ttime = dur;\n\t\t\t\t\t\titeration--;\n\t\t\t\t\t}\n\t\t\t\t\ttime > dur && (time = dur);\n\t\t\t\t}\n\t\t\t\tprevIteration = _animationCycle(this._tTime, cycleDuration);\n\t\t\t\t!prevTime && this._tTime && prevIteration !== iteration && (prevIteration = iteration); // edge case - if someone does addPause() at the very beginning of a repeating timeline, that pause is technically at the same spot as the end which causes this._time to get set to 0 when the totalTime would normally place the playhead at the end. See https://greensock.com/forums/topic/23823-closing-nav-animation-not-working-on-ie-and-iphone-6-maybe-other-older-browser/?tab=comments#comment-113005\n\t\t\t\tif (yoyo && (iteration & 1)) {\n\t\t\t\t\ttime = dur - time;\n\t\t\t\t\tisYoyo = 1;\n\t\t\t\t}\n\t\t\t\t/*\n\t\t\t\tmake sure children at the end/beginning of the timeline are rendered properly. If, for example,\n\t\t\t\ta 3-second long timeline rendered at 2.9 seconds previously, and now renders at 3.2 seconds (which\n\t\t\t\twould get translated to 2.8 seconds if the timeline yoyos or 0.2 seconds if it just repeats), there\n\t\t\t\tcould be a callback or a short tween that's at 2.95 or 3 seconds in which wouldn't render. So\n\t\t\t\twe need to push the timeline to the end (and/or beginning depending on its yoyo value). Also we must\n\t\t\t\tensure that zero-duration tweens at the very beginning or end of the Timeline work.\n\t\t\t\t*/\n\t\t\t\tif (iteration !== prevIteration && !this._lock) {\n\t\t\t\t\tlet rewinding = (yoyo && (prevIteration & 1)),\n\t\t\t\t\t\tdoesWrap = (rewinding === (yoyo && (iteration & 1)));\n\t\t\t\t\titeration < prevIteration && (rewinding = !rewinding);\n\t\t\t\t\tprevTime = rewinding ? 0 : dur;\n\t\t\t\t\tthis._lock = 1;\n\t\t\t\t\tthis.render(prevTime || (isYoyo ? 0 : _roundPrecise(iteration * cycleDuration)), suppressEvents, !dur)._lock = 0;\n\t\t\t\t\tthis._tTime = tTime; // if a user gets the iteration() inside the onRepeat, for example, it should be accurate.\n\t\t\t\t\t!suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\t\t\t\t\tthis.vars.repeatRefresh && !isYoyo && (this.invalidate()._lock = 1);\n\t\t\t\t\tif ((prevTime && prevTime !== this._time) || prevPaused !== !this._ts || (this.vars.onRepeat && !this.parent && !this._act)) { // if prevTime is 0 and we render at the very end, _time will be the end, thus won't match. So in this edge case, prevTime won't match _time but that's okay. If it gets killed in the onRepeat, eject as well.\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t\tdur = this._dur; // in case the duration changed in the onRepeat\n\t\t\t\t\ttDur = this._tDur;\n\t\t\t\t\tif (doesWrap) {\n\t\t\t\t\t\tthis._lock = 2;\n\t\t\t\t\t\tprevTime = rewinding ? dur : -0.0001;\n\t\t\t\t\t\tthis.render(prevTime, true);\n\t\t\t\t\t\tthis.vars.repeatRefresh && !isYoyo && this.invalidate();\n\t\t\t\t\t}\n\t\t\t\t\tthis._lock = 0;\n\t\t\t\t\tif (!this._ts && !prevPaused) {\n\t\t\t\t\t\treturn this;\n\t\t\t\t\t}\n\t\t\t\t\t//in order for yoyoEase to work properly when there's a stagger, we must swap out the ease in each sub-tween.\n\t\t\t\t\t_propagateYoyoEase(this, isYoyo);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (this._hasPause && !this._forcing && this._lock < 2) {\n\t\t\t\tpauseTween = _findNextPauseTween(this, _roundPrecise(prevTime), _roundPrecise(time));\n\t\t\t\tif (pauseTween) {\n\t\t\t\t\ttTime -= time - (time = pauseTween._start);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._tTime = tTime;\n\t\t\tthis._time = time;\n\t\t\tthis._act = !timeScale; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\n\t\t\tif (!this._initted) {\n\t\t\t\tthis._onUpdate = this.vars.onUpdate;\n\t\t\t\tthis._initted = 1;\n\t\t\t\tthis._zTime = totalTime;\n\t\t\t\tprevTime = 0; // upon init, the playhead should always go forward; someone could invalidate() a completed timeline and then if they restart(), that would make child tweens render in reverse order which could lock in the wrong starting values if they build on each other, like tl.to(obj, {x: 100}).to(obj, {x: 0}).\n\t\t\t}\n\t\t\tif (!prevTime && time && !suppressEvents) {\n\t\t\t\t_callback(this, \"onStart\");\n\t\t\t\tif (this._tTime !== tTime) { // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (time >= prevTime && totalTime >= 0) {\n\t\t\t\tchild = this._first;\n\t\t\t\twhile (child) {\n\t\t\t\t\tnext = child._next;\n\t\t\t\t\tif ((child._act || time >= child._start) && child._ts && pauseTween !== child) {\n\t\t\t\t\t\tif (child.parent !== this) { // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n\t\t\t\t\t\t\treturn this.render(totalTime, suppressEvents, force);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchild.render(child._ts > 0 ? (time - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (time - child._start) * child._ts, suppressEvents, force);\n\t\t\t\t\t\tif (time !== this._time || (!this._ts && !prevPaused)) { //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n\t\t\t\t\t\t\tpauseTween = 0;\n\t\t\t\t\t\t\tnext && (tTime += (this._zTime = -_tinyNum)); // it didn't finish rendering, so flag zTime as negative so that so that the next time render() is called it'll be forced (to render any remaining children)\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tchild = next;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tchild = this._last;\n\t\t\t\tlet adjustedTime = totalTime < 0 ? totalTime : time; //when the playhead goes backward beyond the start of this timeline, we must pass that information down to the child animations so that zero-duration tweens know whether to render their starting or ending values.\n\t\t\t\twhile (child) {\n\t\t\t\t\tnext = child._prev;\n\t\t\t\t\tif ((child._act || adjustedTime <= child._end) && child._ts && pauseTween !== child) {\n\t\t\t\t\t\tif (child.parent !== this) { // an extreme edge case - the child's render could do something like kill() the \"next\" one in the linked list, or reparent it. In that case we must re-initiate the whole render to be safe.\n\t\t\t\t\t\t\treturn this.render(totalTime, suppressEvents, force);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tchild.render(child._ts > 0 ? (adjustedTime - child._start) * child._ts : (child._dirty ? child.totalDuration() : child._tDur) + (adjustedTime - child._start) * child._ts, suppressEvents, force || (_reverting && (child._initted || child._startAt))); // if reverting, we should always force renders of initted tweens (but remember that .fromTo() or .from() may have a _startAt but not _initted yet). If, for example, a .fromTo() tween with a stagger (which creates an internal timeline) gets reverted BEFORE some of its child tweens render for the first time, it may not properly trigger them to revert.\n\t\t\t\t\t\tif (time !== this._time || (!this._ts && !prevPaused)) { //in case a tween pauses or seeks the timeline when rendering, like inside of an onUpdate/onComplete\n\t\t\t\t\t\t\tpauseTween = 0;\n\t\t\t\t\t\t\tnext && (tTime += (this._zTime = adjustedTime ? -_tinyNum : _tinyNum)); // it didn't finish rendering, so adjust zTime so that so that the next time render() is called it'll be forced (to render any remaining children)\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tchild = next;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pauseTween && !suppressEvents) {\n\t\t\t\tthis.pause();\n\t\t\t\tpauseTween.render(time >= prevTime ? 0 : -_tinyNum)._zTime = time >= prevTime ? 1 : -1;\n\t\t\t\tif (this._ts) { //the callback resumed playback! So since we may have held back the playhead due to where the pause is positioned, go ahead and jump to where it's SUPPOSED to be (if no pause happened).\n\t\t\t\t\tthis._start = prevStart; //if the pause was at an earlier time and the user resumed in the callback, it could reposition the timeline (changing its startTime), throwing things off slightly, so we make sure the _start doesn't shift.\n\t\t\t\t\t_setEnd(this);\n\t\t\t\t\treturn this.render(totalTime, suppressEvents, force);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._onUpdate && !suppressEvents && _callback(this, \"onUpdate\", true);\n\t\t\tif ((tTime === tDur && this._tTime >= this.totalDuration()) || (!tTime && prevTime)) if (prevStart === this._start || Math.abs(timeScale) !== Math.abs(this._ts)) if (!this._lock) { // remember, a child's callback may alter this timeline's playhead or timeScale which is why we need to add some of these checks.\n\t\t\t\t(totalTime || !dur) && ((tTime === tDur && this._ts > 0) || (!tTime && this._ts < 0)) && _removeFromParent(this, 1); // don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\t\t\t\tif (!suppressEvents && !(totalTime < 0 && !prevTime) && (tTime || prevTime || !tDur)) {\n\t\t\t\t\t_callback(this, (tTime === tDur && totalTime >= 0 ? \"onComplete\" : \"onReverseComplete\"), true);\n\t\t\t\t\tthis._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tadd(child, position) {\n\t\t_isNumber(position) || (position = _parsePosition(this, position, child));\n\t\tif (!(child instanceof Animation)) {\n\t\t\tif (_isArray(child)) {\n\t\t\t\tchild.forEach(obj => this.add(obj, position));\n\t\t\t\treturn this;\n\t\t\t}\n\t\t\tif (_isString(child)) {\n\t\t\t\treturn this.addLabel(child, position);\n\t\t\t}\n\t\t\tif (_isFunction(child)) {\n\t\t\t\tchild = Tween.delayedCall(0, child);\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\treturn this !== child ? _addToTimeline(this, child, position) : this; //don't allow a timeline to be added to itself as a child!\n\t}\n\n\tgetChildren(nested = true, tweens = true, timelines = true, ignoreBeforeTime = -_bigNum) {\n\t\tlet a = [],\n\t\t\tchild = this._first;\n\t\twhile (child) {\n\t\t\tif (child._start >= ignoreBeforeTime) {\n\t\t\t\tif (child instanceof Tween) {\n\t\t\t\t\ttweens && a.push(child);\n\t\t\t\t} else {\n\t\t\t\t\ttimelines && a.push(child);\n\t\t\t\t\tnested && a.push(...child.getChildren(true, tweens, timelines));\n\t\t\t\t}\n\t\t\t}\n\t\t\tchild = child._next;\n\t\t}\n\t\treturn a;\n\t}\n\n\tgetById(id) {\n\t\tlet animations = this.getChildren(1, 1, 1),\n\t\t\ti = animations.length;\n\t\twhile(i--) {\n\t\t\tif (animations[i].vars.id === id) {\n\t\t\t\treturn animations[i];\n\t\t\t}\n\t\t}\n\t}\n\n\tremove(child) {\n\t\tif (_isString(child)) {\n\t\t\treturn this.removeLabel(child);\n\t\t}\n\t\tif (_isFunction(child)) {\n\t\t\treturn this.killTweensOf(child);\n\t\t}\n\t\t_removeLinkedListItem(this, child);\n\t\tif (child === this._recent) {\n\t\t\tthis._recent = this._last;\n\t\t}\n\t\treturn _uncache(this);\n\t}\n\n\ttotalTime(totalTime, suppressEvents) {\n\t\tif (!arguments.length) {\n\t\t\treturn this._tTime;\n\t\t}\n\t\tthis._forcing = 1;\n\t\tif (!this._dp && this._ts) { //special case for the global timeline (or any other that has no parent or detached parent).\n\t\t\tthis._start = _roundPrecise(_ticker.time - (this._ts > 0 ? totalTime / this._ts : (this.totalDuration() - totalTime) / -this._ts));\n\t\t}\n\t\tsuper.totalTime(totalTime, suppressEvents);\n\t\tthis._forcing = 0;\n\t\treturn this;\n\t}\n\n\taddLabel(label, position) {\n\t\tthis.labels[label] = _parsePosition(this, position);\n\t\treturn this;\n\t}\n\n\tremoveLabel(label) {\n\t\tdelete this.labels[label];\n\t\treturn this;\n\t}\n\n\taddPause(position, callback, params) {\n\t\tlet t = Tween.delayedCall(0, callback || _emptyFunc, params);\n\t\tt.data = \"isPause\";\n\t\tthis._hasPause = 1;\n\t\treturn _addToTimeline(this, t, _parsePosition(this, position));\n\t}\n\n\tremovePause(position) {\n\t\tlet child = this._first;\n\t\tposition = _parsePosition(this, position);\n\t\twhile (child) {\n\t\t\tif (child._start === position && child.data === \"isPause\") {\n\t\t\t\t_removeFromParent(child);\n\t\t\t}\n\t\t\tchild = child._next;\n\t\t}\n\t}\n\n\tkillTweensOf(targets, props, onlyActive) {\n\t\tlet tweens = this.getTweensOf(targets, onlyActive),\n\t\t\ti = tweens.length;\n\t\twhile (i--) {\n\t\t\t(_overwritingTween !== tweens[i]) && tweens[i].kill(targets, props);\n\t\t}\n\t\treturn this;\n\t}\n\n\tgetTweensOf(targets, onlyActive) {\n\t\tlet a = [],\n\t\t\tparsedTargets = toArray(targets),\n\t\t\tchild = this._first,\n\t\t\tisGlobalTime = _isNumber(onlyActive), // a number is interpreted as a global time. If the animation spans\n\t\t\tchildren;\n\t\twhile (child) {\n\t\t\tif (child instanceof Tween) {\n\t\t\t\tif (_arrayContainsAny(child._targets, parsedTargets) && (isGlobalTime ? (!_overwritingTween || (child._initted && child._ts)) && child.globalTime(0) <= onlyActive && child.globalTime(child.totalDuration()) > onlyActive : !onlyActive || child.isActive())) { // note: if this is for overwriting, it should only be for tweens that aren't paused and are initted.\n\t\t\t\t\ta.push(child);\n\t\t\t\t}\n\t\t\t} else if ((children = child.getTweensOf(parsedTargets, onlyActive)).length) {\n\t\t\t\ta.push(...children);\n\t\t\t}\n\t\t\tchild = child._next;\n\t\t}\n\t\treturn a;\n\t}\n\n\t// potential future feature - targets() on timelines\n\t// targets() {\n\t// \tlet result = [];\n\t// \tthis.getChildren(true, true, false).forEach(t => result.push(...t.targets()));\n\t// \treturn result.filter((v, i) => result.indexOf(v) === i);\n\t// }\n\n\ttweenTo(position, vars) {\n\t\tvars = vars || {};\n\t\tlet tl = this,\n\t\t\tendTime = _parsePosition(tl, position),\n\t\t\t{ startAt, onStart, onStartParams, immediateRender } = vars,\n\t\t\tinitted,\n\t\t\ttween = Tween.to(tl, _setDefaults({\n\t\t\t\tease: vars.ease || \"none\",\n\t\t\t\tlazy: false,\n\t\t\t\timmediateRender: false,\n\t\t\t\ttime: endTime,\n\t\t\t\toverwrite: \"auto\",\n\t\t\t\tduration: vars.duration || (Math.abs((endTime - ((startAt && \"time\" in startAt) ? startAt.time : tl._time)) / tl.timeScale())) || _tinyNum,\n\t\t\t\tonStart: () => {\n\t\t\t\t\ttl.pause();\n\t\t\t\t\tif (!initted) {\n\t\t\t\t\t\tlet duration = vars.duration || Math.abs((endTime - ((startAt && \"time\" in startAt) ? startAt.time : tl._time)) / tl.timeScale());\n\t\t\t\t\t\t(tween._dur !== duration) && _setDuration(tween, duration, 0, 1).render(tween._time, true, true);\n\t\t\t\t\t\tinitted = 1;\n\t\t\t\t\t}\n\t\t\t\t\tonStart && onStart.apply(tween, onStartParams || []); //in case the user had an onStart in the vars - we don't want to overwrite it.\n\t\t\t\t}\n\t\t\t}, vars));\n\t\treturn immediateRender ? tween.render(0) : tween;\n\t}\n\n\ttweenFromTo(fromPosition, toPosition, vars) {\n\t\treturn this.tweenTo(toPosition, _setDefaults({startAt:{time:_parsePosition(this, fromPosition)}}, vars));\n\t}\n\n\trecent() {\n\t\treturn this._recent;\n\t}\n\n\tnextLabel(afterTime = this._time) {\n\t\treturn _getLabelInDirection(this, _parsePosition(this, afterTime));\n\t}\n\n\tpreviousLabel(beforeTime = this._time) {\n\t\treturn _getLabelInDirection(this, _parsePosition(this, beforeTime), 1);\n\t}\n\n\tcurrentLabel(value) {\n\t\treturn arguments.length ? this.seek(value, true) : this.previousLabel(this._time + _tinyNum);\n\t}\n\n\tshiftChildren(amount, adjustLabels, ignoreBeforeTime = 0) {\n\t\tlet child = this._first,\n\t\t\tlabels = this.labels,\n\t\t\tp;\n\t\twhile (child) {\n\t\t\tif (child._start >= ignoreBeforeTime) {\n\t\t\t\tchild._start += amount;\n\t\t\t\tchild._end += amount;\n\t\t\t}\n\t\t\tchild = child._next;\n\t\t}\n\t\tif (adjustLabels) {\n\t\t\tfor (p in labels) {\n\t\t\t\tif (labels[p] >= ignoreBeforeTime) {\n\t\t\t\t\tlabels[p] += amount;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn _uncache(this);\n\t}\n\n\tinvalidate(soft) {\n\t\tlet child = this._first;\n\t\tthis._lock = 0;\n\t\twhile (child) {\n\t\t\tchild.invalidate(soft);\n\t\t\tchild = child._next;\n\t\t}\n\t\treturn super.invalidate(soft);\n\t}\n\n\tclear(includeLabels = true) {\n\t\tlet child = this._first,\n\t\t\tnext;\n\t\twhile (child) {\n\t\t\tnext = child._next;\n\t\t\tthis.remove(child);\n\t\t\tchild = next;\n\t\t}\n\t\tthis._dp && (this._time = this._tTime = this._pTime = 0);\n\t\tincludeLabels && (this.labels = {});\n\t\treturn _uncache(this);\n\t}\n\n\ttotalDuration(value) {\n\t\tlet max = 0,\n\t\t\tself = this,\n\t\t\tchild = self._last,\n\t\t\tprevStart = _bigNum,\n\t\t\tprev, start, parent;\n\t\tif (arguments.length) {\n\t\t\treturn self.timeScale((self._repeat < 0 ? self.duration() : self.totalDuration()) / (self.reversed() ? -value : value));\n\t\t}\n\t\tif (self._dirty) {\n\t\t\tparent = self.parent;\n\t\t\twhile (child) {\n\t\t\t\tprev = child._prev; //record it here in case the tween changes position in the sequence...\n\t\t\t\tchild._dirty && child.totalDuration(); //could change the tween._startTime, so make sure the animation's cache is clean before analyzing it.\n\t\t\t\tstart = child._start;\n\t\t\t\tif (start > prevStart && self._sort && child._ts && !self._lock) { //in case one of the tweens shifted out of order, it needs to be re-inserted into the correct position in the sequence\n\t\t\t\t\tself._lock = 1; //prevent endless recursive calls - there are methods that get triggered that check duration/totalDuration when we add().\n\t\t\t\t\t_addToTimeline(self, child, start - child._delay, 1)._lock = 0;\n\t\t\t\t} else {\n\t\t\t\t\tprevStart = start;\n\t\t\t\t}\n\t\t\t\tif (start < 0 && child._ts) { //children aren't allowed to have negative startTimes unless smoothChildTiming is true, so adjust here if one is found.\n\t\t\t\t\tmax -= start;\n\t\t\t\t\tif ((!parent && !self._dp) || (parent && parent.smoothChildTiming)) {\n\t\t\t\t\t\tself._start += start / self._ts;\n\t\t\t\t\t\tself._time -= start;\n\t\t\t\t\t\tself._tTime -= start;\n\t\t\t\t\t}\n\t\t\t\t\tself.shiftChildren(-start, false, -1e999);\n\t\t\t\t\tprevStart = 0;\n\t\t\t\t}\n\t\t\t\tchild._end > max && child._ts && (max = child._end);\n\t\t\t\tchild = prev;\n\t\t\t}\n\t\t\t_setDuration(self, (self === _globalTimeline && self._time > max) ? self._time : max, 1, 1);\n\t\t\tself._dirty = 0;\n\t\t}\n\t\treturn self._tDur;\n\t}\n\n\tstatic updateRoot(time) {\n\t\tif (_globalTimeline._ts) {\n\t\t\t_lazySafeRender(_globalTimeline, _parentToChildTotalTime(time, _globalTimeline));\n\t\t\t_lastRenderedFrame = _ticker.frame;\n\t\t}\n\t\tif (_ticker.frame >= _nextGCFrame) {\n\t\t\t_nextGCFrame += _config.autoSleep || 120;\n\t\t\tlet child = _globalTimeline._first;\n\t\t\tif (!child || !child._ts) if (_config.autoSleep && _ticker._listeners.length < 2) {\n\t\t\t\twhile (child && !child._ts) {\n\t\t\t\t\tchild = child._next;\n\t\t\t\t}\n\t\t\t\tchild || _ticker.sleep();\n\t\t\t}\n\t\t}\n\t}\n\n}\n\n_setDefaults(Timeline.prototype, {_lock:0, _hasPause:0, _forcing:0});\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet _addComplexStringPropTween = function(target, prop, start, end, setter, stringFilter, funcParam) { //note: we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\t\tlet pt = new PropTween(this._pt, target, prop, 0, 1, _renderComplexString, null, setter),\n\t\t\tindex = 0,\n\t\t\tmatchIndex = 0,\n\t\t\tresult,\tstartNums, color, endNum, chunk, startNum, hasRandom, a;\n\t\tpt.b = start;\n\t\tpt.e = end;\n\t\tstart += \"\"; //ensure values are strings\n\t\tend += \"\";\n\t\tif ((hasRandom = ~end.indexOf(\"random(\"))) {\n\t\t\tend = _replaceRandom(end);\n\t\t}\n\t\tif (stringFilter) {\n\t\t\ta = [start, end];\n\t\t\tstringFilter(a, target, prop); //pass an array with the starting and ending values and let the filter do whatever it needs to the values.\n\t\t\tstart = a[0];\n\t\t\tend = a[1];\n\t\t}\n\t\tstartNums = start.match(_complexStringNumExp) || [];\n\t\twhile ((result = _complexStringNumExp.exec(end))) {\n\t\t\tendNum = result[0];\n\t\t\tchunk = end.substring(index, result.index);\n\t\t\tif (color) {\n\t\t\t\tcolor = (color + 1) % 5;\n\t\t\t} else if (chunk.substr(-5) === \"rgba(\") {\n\t\t\t\tcolor = 1;\n\t\t\t}\n\t\t\tif (endNum !== startNums[matchIndex++]) {\n\t\t\t\tstartNum = parseFloat(startNums[matchIndex-1]) || 0;\n\t\t\t\t//these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\t\t\t\tpt._pt = {\n\t\t\t\t\t_next: pt._pt,\n\t\t\t\t\tp: (chunk || matchIndex === 1) ? chunk : \",\", //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n\t\t\t\t\ts: startNum,\n\t\t\t\t\tc: endNum.charAt(1) === \"=\" ? _parseRelative(startNum, endNum) - startNum : parseFloat(endNum) - startNum,\n\t\t\t\t\tm: (color && color < 4) ? Math.round : 0\n\t\t\t\t};\n\t\t\t\tindex = _complexStringNumExp.lastIndex;\n\t\t\t}\n\t\t}\n\t\tpt.c = (index < end.length) ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\t\tpt.fp = funcParam;\n\t\tif (_relExp.test(end) || hasRandom) {\n\t\t\tpt.e = 0; //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\t\t}\n\t\tthis._pt = pt; //start the linked list with this new PropTween. Remember, we call _addComplexStringPropTween.call(tweenInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\t\treturn pt;\n\t},\n\t_addPropTween = function(target, prop, start, end, index, targets, modifier, stringFilter, funcParam, optional) {\n\t\t_isFunction(end) && (end = end(index || 0, target, targets));\n\t\tlet currentValue = target[prop],\n\t\t\tparsedStart = (start !== \"get\") ? start : !_isFunction(currentValue) ? currentValue : (funcParam ? target[(prop.indexOf(\"set\") || !_isFunction(target[\"get\" + prop.substr(3)])) ? prop : \"get\" + prop.substr(3)](funcParam) : target[prop]()),\n\t\t\tsetter = !_isFunction(currentValue) ? _setterPlain : funcParam ? _setterFuncWithParam : _setterFunc,\n\t\t\tpt;\n\t\tif (_isString(end)) {\n\t\t\tif (~end.indexOf(\"random(\")) {\n\t\t\t\tend = _replaceRandom(end);\n\t\t\t}\n\t\t\tif (end.charAt(1) === \"=\") {\n\t\t\t\tpt = _parseRelative(parsedStart, end) + (getUnit(parsedStart) || 0);\n\t\t\t\tif (pt || pt === 0) { // to avoid isNaN, like if someone passes in a value like \"!= whatever\"\n\t\t\t\t\tend = pt;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!optional || parsedStart !== end || _forceAllPropTweens) {\n\t\t\tif (!isNaN(parsedStart * end) && end !== \"\") { // fun fact: any number multiplied by \"\" is evaluated as the number 0!\n\t\t\t\tpt = new PropTween(this._pt, target, prop, +parsedStart || 0, end - (parsedStart || 0), typeof(currentValue) === \"boolean\" ? _renderBoolean : _renderPlain, 0, setter);\n\t\t\t\tfuncParam && (pt.fp = funcParam);\n\t\t\t\tmodifier && pt.modifier(modifier, this, target);\n\t\t\t\treturn (this._pt = pt);\n\t\t\t}\n\t\t\t!currentValue && !(prop in target) && _missingPlugin(prop, end);\n\t\t\treturn _addComplexStringPropTween.call(this, target, prop, parsedStart, end, setter, stringFilter || _config.stringFilter, funcParam);\n\t\t}\n\t},\n\t//creates a copy of the vars object and processes any function-based values (putting the resulting values directly into the copy) as well as strings with \"random()\" in them. It does NOT process relative values.\n\t_processVars = (vars, index, target, targets, tween) => {\n\t\t_isFunction(vars) && (vars = _parseFuncOrString(vars, tween, index, target, targets));\n\t\tif (!_isObject(vars) || (vars.style && vars.nodeType) || _isArray(vars) || _isTypedArray(vars)) {\n\t\t\treturn _isString(vars) ? _parseFuncOrString(vars, tween, index, target, targets) : vars;\n\t\t}\n\t\tlet copy = {},\n\t\t\tp;\n\t\tfor (p in vars) {\n\t\t\tcopy[p] = _parseFuncOrString(vars[p], tween, index, target, targets);\n\t\t}\n\t\treturn copy;\n\t},\n\t_checkPlugin = (property, vars, tween, index, target, targets) => {\n\t\tlet plugin, pt, ptLookup, i;\n\t\tif (_plugins[property] && (plugin = new _plugins[property]()).init(target, plugin.rawVars ? vars[property] : _processVars(vars[property], index, target, targets, tween), tween, index, targets) !== false) {\n\t\t\ttween._pt = pt = new PropTween(tween._pt, target, property, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\t\t\tif (tween !== _quickTween) {\n\t\t\t\tptLookup = tween._ptLookup[tween._targets.indexOf(target)]; //note: we can't use tween._ptLookup[index] because for staggered tweens, the index from the fullTargets array won't match what it is in each individual tween that spawns from the stagger.\n\t\t\t\ti = plugin._props.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tptLookup[plugin._props[i]] = pt;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn plugin;\n\t},\n\t_overwritingTween, //store a reference temporarily so we can avoid overwriting itself.\n\t_forceAllPropTweens,\n\t_initTween = (tween, time, tTime) => {\n\t\tlet vars = tween.vars,\n\t\t\t{ ease, startAt, immediateRender, lazy, onUpdate, onUpdateParams, callbackScope, runBackwards, yoyoEase, keyframes, autoRevert } = vars,\n\t\t\tdur = tween._dur,\n\t\t\tprevStartAt = tween._startAt,\n\t\t\ttargets = tween._targets,\n\t\t\tparent = tween.parent,\n\t\t\t//when a stagger (or function-based duration/delay) is on a Tween instance, we create a nested timeline which means that the \"targets\" of that tween don't reflect the parent. This function allows us to discern when it's a nested tween and in that case, return the full targets array so that function-based values get calculated properly. Also remember that if the tween has a stagger AND keyframes, it could be multiple levels deep which is why we store the targets Array in the vars of the timeline.\n\t\t\tfullTargets = (parent && parent.data === \"nested\") ? parent.vars.targets : targets,\n\t\t\tautoOverwrite = (tween._overwrite === \"auto\") && !_suppressOverwrites,\n\t\t\ttl = tween.timeline,\n\t\t\tcleanVars, i, p, pt, target, hasPriority, gsData, harness, plugin, ptLookup, index, harnessVars, overwritten;\n\t\ttl && (!keyframes || !ease) && (ease = \"none\");\n\t\ttween._ease = _parseEase(ease, _defaults.ease);\n\t\ttween._yEase = yoyoEase ? _invertEase(_parseEase(yoyoEase === true ? ease : yoyoEase, _defaults.ease)) : 0;\n\t\tif (yoyoEase && tween._yoyo && !tween._repeat) { //there must have been a parent timeline with yoyo:true that is currently in its yoyo phase, so flip the eases.\n\t\t\tyoyoEase = tween._yEase;\n\t\t\ttween._yEase = tween._ease;\n\t\t\ttween._ease = yoyoEase;\n\t\t}\n\t\ttween._from = !tl && !!vars.runBackwards; //nested timelines should never run backwards - the backwards-ness is in the child tweens.\n\t\tif (!tl || (keyframes && !vars.stagger)) { //if there's an internal timeline, skip all the parsing because we passed that task down the chain.\n\t\t\tharness = targets[0] ? _getCache(targets[0]).harness : 0;\n\t\t\tharnessVars = harness && vars[harness.prop]; //someone may need to specify CSS-specific values AND non-CSS values, like if the element has an \"x\" property plus it's a standard DOM element. We allow people to distinguish by wrapping plugin-specific stuff in a css:{} object for example.\n\t\t\tcleanVars = _copyExcluding(vars, _reservedProps);\n\t\t\tif (prevStartAt) {\n\t\t\t\tprevStartAt._zTime < 0 && prevStartAt.progress(1); // in case it's a lazy startAt that hasn't rendered yet.\n\t\t\t\t(time < 0 && runBackwards && immediateRender && !autoRevert) ? prevStartAt.render(-1, true) : prevStartAt.revert(runBackwards && dur ? _revertConfigNoKill : _startAtRevertConfig); // if it's a \"startAt\" (not \"from()\" or runBackwards: true), we only need to do a shallow revert (keep transforms cached in CSSPlugin)\n\t\t\t\t// don't just _removeFromParent(prevStartAt.render(-1, true)) because that'll leave inline styles. We're creating a new _startAt for \"startAt\" tweens that re-capture things to ensure that if the pre-tween values changed since the tween was created, they're recorded.\n\t\t\t\tprevStartAt._lazy = 0;\n\t\t\t}\n\t\t\tif (startAt) {\n\t\t\t\t_removeFromParent(tween._startAt = Tween.set(targets, _setDefaults({data: \"isStart\", overwrite: false, parent: parent, immediateRender: true, lazy: _isNotFalse(lazy), startAt: null, delay: 0, onUpdate: onUpdate, onUpdateParams: onUpdateParams, callbackScope: callbackScope, stagger: 0}, startAt))); //copy the properties/values into a new object to avoid collisions, like var to = {x:0}, from = {x:500}; timeline.fromTo(e, from, to).fromTo(e, to, from);\n\n\t\t\t\t(time < 0 && (_reverting || (!immediateRender && !autoRevert))) && tween._startAt.revert(_revertConfigNoKill); // rare edge case, like if a render is forced in the negative direction of a non-initted tween.\n\t\t\t\tif (immediateRender) {\n\t\t\t\t\tif (dur && time <= 0 && tTime <= 0) { // check tTime here because in the case of a yoyo tween whose playhead gets pushed to the end like tween.progress(1), we should allow it through so that the onComplete gets fired properly.\n\t\t\t\t\t\ttime && (tween._zTime = time);\n\t\t\t\t\t\treturn; //we skip initialization here so that overwriting doesn't occur until the tween actually begins. Otherwise, if you create several immediateRender:true tweens of the same target/properties to drop into a Timeline, the last one created would overwrite the first ones because they didn't get placed into the timeline yet before the first render occurs and kicks in overwriting.\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (runBackwards && dur) {\n\t\t\t\t//from() tweens must be handled uniquely: their beginning values must be rendered but we don't want overwriting to occur yet (when time is still 0). Wait until the tween actually begins before doing all the routines like overwriting. At that time, we should render at the END of the tween to ensure that things initialize correctly (remember, from() tweens go backwards)\n\t\t\t\tif (!prevStartAt) {\n\t\t\t\t\ttime && (immediateRender = false); //in rare cases (like if a from() tween runs and then is invalidate()-ed), immediateRender could be true but the initial forced-render gets skipped, so there's no need to force the render in this context when the _time is greater than 0\n\t\t\t\t\tp = _setDefaults({\n\t\t\t\t\t\toverwrite: false,\n\t\t\t\t\t\tdata: \"isFromStart\", //we tag the tween with as \"isFromStart\" so that if [inside a plugin] we need to only do something at the very END of a tween, we have a way of identifying this tween as merely the one that's setting the beginning values for a \"from()\" tween. For example, clearProps in CSSPlugin should only get applied at the very END of a tween and without this tag, from(...{height:100, clearProps:\"height\", delay:1}) would wipe the height at the beginning of the tween and after 1 second, it'd kick back in.\n\t\t\t\t\t\tlazy: immediateRender && _isNotFalse(lazy),\n\t\t\t\t\t\timmediateRender: immediateRender, //zero-duration tweens render immediately by default, but if we're not specifically instructed to render this tween immediately, we should skip this and merely _init() to record the starting values (rendering them immediately would push them to completion which is wasteful in that case - we'd have to render(-1) immediately after)\n\t\t\t\t\t\tstagger: 0,\n\t\t\t\t\t\tparent: parent //ensures that nested tweens that had a stagger are handled properly, like gsap.from(\".class\", {y:gsap.utils.wrap([-100,100])})\n\t\t\t\t\t}, cleanVars);\n\t\t\t\t\tharnessVars && (p[harness.prop] = harnessVars); // in case someone does something like .from(..., {css:{}})\n\t\t\t\t\t_removeFromParent(tween._startAt = Tween.set(targets, p));\n\t\t\t\t\t(time < 0) && (_reverting ? tween._startAt.revert(_revertConfigNoKill) : tween._startAt.render(-1, true));\n\t\t\t\t\ttween._zTime = time;\n\t\t\t\t\tif (!immediateRender) {\n\t\t\t\t\t\t_initTween(tween._startAt, _tinyNum, _tinyNum); //ensures that the initial values are recorded\n\t\t\t\t\t} else if (!time) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\ttween._pt = tween._ptCache = 0;\n\t\t\tlazy = (dur && _isNotFalse(lazy)) || (lazy && !dur);\n\t\t\tfor (i = 0; i < targets.length; i++) {\n\t\t\t\ttarget = targets[i];\n\t\t\t\tgsData = target._gsap || _harness(targets)[i]._gsap;\n\t\t\t\ttween._ptLookup[i] = ptLookup = {};\n\t\t\t\t_lazyLookup[gsData.id] && _lazyTweens.length && _lazyRender(); //if other tweens of the same target have recently initted but haven't rendered yet, we've got to force the render so that the starting values are correct (imagine populating a timeline with a bunch of sequential tweens and then jumping to the end)\n\t\t\t\tindex = fullTargets === targets ? i : fullTargets.indexOf(target);\n\t\t\t\tif (harness && (plugin = new harness()).init(target, harnessVars || cleanVars, tween, index, fullTargets) !== false) {\n\t\t\t\t\ttween._pt = pt = new PropTween(tween._pt, target, plugin.name, 0, 1, plugin.render, plugin, 0, plugin.priority);\n\t\t\t\t\tplugin._props.forEach(name => {ptLookup[name] = pt;});\n\t\t\t\t\tplugin.priority && (hasPriority = 1);\n\t\t\t\t}\n\t\t\t\tif (!harness || harnessVars) {\n\t\t\t\t\tfor (p in cleanVars) {\n\t\t\t\t\t\tif (_plugins[p] && (plugin = _checkPlugin(p, cleanVars, tween, index, target, fullTargets))) {\n\t\t\t\t\t\t\tplugin.priority && (hasPriority = 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tptLookup[p] = pt = _addPropTween.call(tween, target, p, \"get\", cleanVars[p], index, fullTargets, 0, vars.stringFilter);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttween._op && tween._op[i] && tween.kill(target, tween._op[i]);\n\t\t\t\tif (autoOverwrite && tween._pt) {\n\t\t\t\t\t_overwritingTween = tween;\n\t\t\t\t\t_globalTimeline.killTweensOf(target, ptLookup, tween.globalTime(time)); // make sure the overwriting doesn't overwrite THIS tween!!!\n\t\t\t\t\toverwritten = !tween.parent;\n\t\t\t\t\t_overwritingTween = 0;\n\t\t\t\t}\n\t\t\t\ttween._pt && lazy && (_lazyLookup[gsData.id] = 1);\n\t\t\t}\n\t\t\thasPriority && _sortPropTweensByPriority(tween);\n\t\t\ttween._onInit && tween._onInit(tween); //plugins like RoundProps must wait until ALL of the PropTweens are instantiated. In the plugin's init() function, it sets the _onInit on the tween instance. May not be pretty/intuitive, but it's fast and keeps file size down.\n\t\t}\n\t\ttween._onUpdate = onUpdate;\n\t\ttween._initted = (!tween._op || tween._pt) && !overwritten; // if overwrittenProps resulted in the entire tween being killed, do NOT flag it as initted or else it may render for one tick.\n\t\t(keyframes && time <= 0) && tl.render(_bigNum, true, true); // if there's a 0% keyframe, it'll render in the \"before\" state for any staggered/delayed animations thus when the following tween initializes, it'll use the \"before\" state instead of the \"after\" state as the initial values.\n\t},\n\t_updatePropTweens = (tween, property, value, start, startIsRelative, ratio, time) => {\n\t\tlet ptCache = ((tween._pt && tween._ptCache) || (tween._ptCache = {}))[property],\n\t\t\tpt, rootPT, lookup, i;\n\t\tif (!ptCache) {\n\t\t\tptCache = tween._ptCache[property] = [];\n\t\t\tlookup = tween._ptLookup;\n\t\t\ti = tween._targets.length;\n\t\t\twhile (i--) {\n\t\t\t\tpt = lookup[i][property];\n\t\t\t\tif (pt && pt.d && pt.d._pt) { // it's a plugin, so find the nested PropTween\n\t\t\t\t\tpt = pt.d._pt;\n\t\t\t\t\twhile (pt && pt.p !== property && pt.fp !== property) { // \"fp\" is functionParam for things like setting CSS variables which require .setProperty(\"--var-name\", value)\n\t\t\t\t\t\tpt = pt._next;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!pt) { // there is no PropTween associated with that property, so we must FORCE one to be created and ditch out of this\n\t\t\t\t\t// if the tween has other properties that already rendered at new positions, we'd normally have to rewind to put them back like tween.render(0, true) before forcing an _initTween(), but that can create another edge case like tweening a timeline's progress would trigger onUpdates to fire which could move other things around. It's better to just inform users that .resetTo() should ONLY be used for tweens that already have that property. For example, you can't gsap.to(...{ y: 0 }) and then tween.restTo(\"x\", 200) for example.\n\t\t\t\t\t_forceAllPropTweens = 1; // otherwise, when we _addPropTween() and it finds no change between the start and end values, it skips creating a PropTween (for efficiency...why tween when there's no difference?) but in this case we NEED that PropTween created so we can edit it.\n\t\t\t\t\ttween.vars[property] = \"+=0\";\n\t\t\t\t\t_initTween(tween, time);\n\t\t\t\t\t_forceAllPropTweens = 0;\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\tptCache.push(pt);\n\t\t\t}\n\t\t}\n\t\ti = ptCache.length;\n\t\twhile (i--) {\n\t\t\trootPT = ptCache[i];\n\t\t\tpt = rootPT._pt || rootPT; // complex values may have nested PropTweens. We only accommodate the FIRST value.\n\t\t\tpt.s = (start || start === 0) && !startIsRelative ? start : pt.s + (start || 0) + ratio * pt.c;\n\t\t\tpt.c = value - pt.s;\n\t\t\trootPT.e && (rootPT.e = _round(value) + getUnit(rootPT.e)); // mainly for CSSPlugin (end value)\n\t\t\trootPT.b && (rootPT.b = pt.s + getUnit(rootPT.b)); // (beginning value)\n\t\t}\n\t},\n\t_addAliasesToVars = (targets, vars) => {\n\t\tlet harness = targets[0] ? _getCache(targets[0]).harness : 0,\n\t\t\tpropertyAliases = (harness && harness.aliases),\n\t\t\tcopy, p, i, aliases;\n\t\tif (!propertyAliases) {\n\t\t\treturn vars;\n\t\t}\n\t\tcopy = _merge({}, vars);\n\t\tfor (p in propertyAliases) {\n\t\t\tif (p in copy) {\n\t\t\t\taliases = propertyAliases[p].split(\",\");\n\t\t\t\ti = aliases.length;\n\t\t\t\twhile(i--) {\n\t\t\t\t\tcopy[aliases[i]] = copy[p];\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn copy;\n\t},\n\t// parses multiple formats, like {\"0%\": {x: 100}, {\"50%\": {x: -20}} and { x: {\"0%\": 100, \"50%\": -20} }, and an \"ease\" can be set on any object. We populate an \"allProps\" object with an Array for each property, like {x: [{}, {}], y:[{}, {}]} with data for each property tween. The objects have a \"t\" (time), \"v\", (value), and \"e\" (ease) property. This allows us to piece together a timeline later.\n\t_parseKeyframe = (prop, obj, allProps, easeEach) => {\n\t\tlet ease = obj.ease || easeEach || \"power1.inOut\",\n\t\t\tp, a;\n\t\tif (_isArray(obj)) {\n\t\t\ta = allProps[prop] || (allProps[prop] = []);\n\t\t\t// t = time (out of 100), v = value, e = ease\n\t\t\tobj.forEach((value, i) => a.push({t: i / (obj.length - 1) * 100, v: value, e: ease}));\n\t\t} else {\n\t\t\tfor (p in obj) {\n\t\t\t\ta = allProps[p] || (allProps[p] = []);\n\t\t\t\tp === \"ease\" || a.push({t: parseFloat(prop), v: obj[p], e: ease});\n\t\t\t}\n\t\t}\n\t},\n\t_parseFuncOrString = (value, tween, i, target, targets) => (_isFunction(value) ? value.call(tween, i, target, targets) : (_isString(value) && ~value.indexOf(\"random(\")) ? _replaceRandom(value) : value),\n\t_staggerTweenProps = _callbackNames + \"repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase,autoRevert\",\n\t_staggerPropsToSkip = {};\n_forEachName(_staggerTweenProps + \",id,stagger,delay,duration,paused,scrollTrigger\", name => _staggerPropsToSkip[name] = 1);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * TWEEN\n * --------------------------------------------------------------------------------------\n */\n\nexport class Tween extends Animation {\n\n\tconstructor(targets, vars, position, skipInherit) {\n\t\tif (typeof(vars) === \"number\") {\n\t\t\tposition.duration = vars;\n\t\t\tvars = position;\n\t\t\tposition = null;\n\t\t}\n\t\tsuper(skipInherit ? vars : _inheritDefaults(vars));\n\t\tlet { duration, delay, immediateRender, stagger, overwrite, keyframes, defaults, scrollTrigger, yoyoEase } = this.vars,\n\t\t\tparent = vars.parent || _globalTimeline,\n\t\t\tparsedTargets = (_isArray(targets) || _isTypedArray(targets) ? _isNumber(targets[0]) : (\"length\" in vars)) ? [targets] : toArray(targets), // edge case: someone might try animating the \"length\" of an object with a \"length\" property that's initially set to 0 so don't interpret that as an empty Array-like object.\n\t\t\ttl, i, copy, l, p, curTarget, staggerFunc, staggerVarsToMerge;\n\t\tthis._targets = parsedTargets.length ? _harness(parsedTargets) : _warn(\"GSAP target \" + targets + \" not found. https://greensock.com\", !_config.nullTargetWarn) || [];\n\t\tthis._ptLookup = []; //PropTween lookup. An array containing an object for each target, having keys for each tweening property\n\t\tthis._overwrite = overwrite;\n\t\tif (keyframes || stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n\t\t\tvars = this.vars;\n\t\t\ttl = this.timeline = new Timeline({data: \"nested\", defaults: defaults || {}, targets: parent && parent.data === \"nested\" ? parent.vars.targets : parsedTargets}); // we need to store the targets because for staggers and keyframes, we end up creating an individual tween for each but function-based values need to know the index and the whole Array of targets.\n\t\t\ttl.kill();\n\t\t\ttl.parent = tl._dp = this;\n\t\t\ttl._start = 0;\n\t\t\tif (stagger || _isFuncOrString(duration) || _isFuncOrString(delay)) {\n\t\t\t\tl = parsedTargets.length;\n\t\t\t\tstaggerFunc = stagger && distribute(stagger);\n\t\t\t\tif (_isObject(stagger)) { //users can pass in callbacks like onStart/onComplete in the stagger object. These should fire with each individual tween.\n\t\t\t\t\tfor (p in stagger) {\n\t\t\t\t\t\tif (~_staggerTweenProps.indexOf(p)) {\n\t\t\t\t\t\t\tstaggerVarsToMerge || (staggerVarsToMerge = {});\n\t\t\t\t\t\t\tstaggerVarsToMerge[p] = stagger[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tfor (i = 0; i < l; i++) {\n\t\t\t\t\tcopy = _copyExcluding(vars, _staggerPropsToSkip);\n\t\t\t\t\tcopy.stagger = 0;\n\t\t\t\t\tyoyoEase && (copy.yoyoEase = yoyoEase);\n\t\t\t\t\tstaggerVarsToMerge && _merge(copy, staggerVarsToMerge);\n\t\t\t\t\tcurTarget = parsedTargets[i];\n\t\t\t\t\t//don't just copy duration or delay because if they're a string or function, we'd end up in an infinite loop because _isFuncOrString() would evaluate as true in the child tweens, entering this loop, etc. So we parse the value straight from vars and default to 0.\n\t\t\t\t\tcopy.duration = +_parseFuncOrString(duration, this, i, curTarget, parsedTargets);\n\t\t\t\t\tcopy.delay = (+_parseFuncOrString(delay, this, i, curTarget, parsedTargets) || 0) - this._delay;\n\t\t\t\t\tif (!stagger && l === 1 && copy.delay) { // if someone does delay:\"random(1, 5)\", repeat:-1, for example, the delay shouldn't be inside the repeat.\n\t\t\t\t\t\tthis._delay = delay = copy.delay;\n\t\t\t\t\t\tthis._start += delay;\n\t\t\t\t\t\tcopy.delay = 0;\n\t\t\t\t\t}\n\t\t\t\t\ttl.to(curTarget, copy, staggerFunc ? staggerFunc(i, curTarget, parsedTargets) : 0);\n\t\t\t\t\ttl._ease = _easeMap.none;\n\t\t\t\t}\n\t\t\t\ttl.duration() ? (duration = delay = 0) : (this.timeline = 0); // if the timeline's duration is 0, we don't need a timeline internally!\n\t\t\t} else if (keyframes) {\n\t\t\t\t_inheritDefaults(_setDefaults(tl.vars.defaults, {ease:\"none\"}));\n\t\t\t\ttl._ease = _parseEase(keyframes.ease || vars.ease || \"none\");\n\t\t\t\tlet time = 0,\n\t\t\t\t\ta, kf, v;\n\t\t\t\tif (_isArray(keyframes)) {\n\t\t\t\t\tkeyframes.forEach(frame => tl.to(parsedTargets, frame, \">\"));\n\t\t\t\t\ttl.duration(); // to ensure tl._dur is cached because we tap into it for performance purposes in the render() method.\n\t\t\t\t} else {\n\t\t\t\t\tcopy = {};\n\t\t\t\t\tfor (p in keyframes) {\n\t\t\t\t\t\tp === \"ease\" || p === \"easeEach\" || _parseKeyframe(p, keyframes[p], copy, keyframes.easeEach);\n\t\t\t\t\t}\n\t\t\t\t\tfor (p in copy) {\n\t\t\t\t\t\ta = copy[p].sort((a, b) => a.t - b.t);\n\t\t\t\t\t\ttime = 0;\n\t\t\t\t\t\tfor (i = 0; i < a.length; i++) {\n\t\t\t\t\t\t\tkf = a[i];\n\t\t\t\t\t\t\tv = {ease: kf.e, duration: (kf.t - (i ? a[i - 1].t : 0)) / 100 * duration};\n\t\t\t\t\t\t\tv[p] = kf.v;\n\t\t\t\t\t\t\ttl.to(parsedTargets, v, time);\n\t\t\t\t\t\t\ttime += v.duration;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\ttl.duration() < duration && tl.to({}, {duration: duration - tl.duration()}); // in case keyframes didn't go to 100%\n\t\t\t\t}\n\t\t\t}\n\t\t\tduration || this.duration((duration = tl.duration()));\n\n\t\t} else {\n\t\t\tthis.timeline = 0; //speed optimization, faster lookups (no going up the prototype chain)\n\t\t}\n\n\t\tif (overwrite === true && !_suppressOverwrites) {\n\t\t\t_overwritingTween = this;\n\t\t\t_globalTimeline.killTweensOf(parsedTargets);\n\t\t\t_overwritingTween = 0;\n\t\t}\n\t\t_addToTimeline(parent, this, position);\n\t\tvars.reversed && this.reverse();\n\t\tvars.paused && this.paused(true);\n\t\tif (immediateRender || (!duration && !keyframes && this._start === _roundPrecise(parent._time) && _isNotFalse(immediateRender) && _hasNoPausedAncestors(this) && parent.data !== \"nested\")) {\n\t\t\tthis._tTime = -_tinyNum; //forces a render without having to set the render() \"force\" parameter to true because we want to allow lazying by default (using the \"force\" parameter always forces an immediate full render)\n\t\t\tthis.render(Math.max(0, -delay) || 0); //in case delay is negative\n\t\t}\n\t\tscrollTrigger && _scrollTrigger(this, scrollTrigger);\n\t}\n\n\trender(totalTime, suppressEvents, force) {\n\t\tlet prevTime = this._time,\n\t\t\ttDur = this._tDur,\n\t\t\tdur = this._dur,\n\t\t\tisNegative = totalTime < 0,\n\t\t\ttTime = (totalTime > tDur - _tinyNum && !isNegative) ? tDur : (totalTime < _tinyNum) ? 0 : totalTime,\n\t\t\ttime, pt, iteration, cycleDuration, prevIteration, isYoyo, ratio, timeline, yoyoEase;\n\t\tif (!dur) {\n\t\t\t_renderZeroDurationTween(this, totalTime, suppressEvents, force);\n\t\t} else if (tTime !== this._tTime || !totalTime || force || (!this._initted && this._tTime) || (this._startAt && (this._zTime < 0) !== isNegative)) { //this senses if we're crossing over the start time, in which case we must record _zTime and force the render, but we do it in this lengthy conditional way for performance reasons (usually we can skip the calculations): this._initted && (this._zTime < 0) !== (totalTime < 0)\n\t\t\ttime = tTime;\n\t\t\ttimeline = this.timeline;\n\t\t\tif (this._repeat) { //adjust the time for repeats and yoyos\n\t\t\t\tcycleDuration = dur + this._rDelay;\n\t\t\t\tif (this._repeat < -1 && isNegative) {\n\t\t\t\t\treturn this.totalTime(cycleDuration * 100 + totalTime, suppressEvents, force);\n\t\t\t\t}\n\t\t\t\ttime = _roundPrecise(tTime % cycleDuration); //round to avoid floating point errors. (4 % 0.8 should be 0 but some browsers report it as 0.79999999!)\n\t\t\t\tif (tTime === tDur) { // the tDur === tTime is for edge cases where there's a lengthy decimal on the duration and it may reach the very end but the time is rendered as not-quite-there (remember, tDur is rounded to 4 decimals whereas dur isn't)\n\t\t\t\t\titeration = this._repeat;\n\t\t\t\t\ttime = dur;\n\t\t\t\t} else {\n\t\t\t\t\titeration = ~~(tTime / cycleDuration);\n\t\t\t\t\tif (iteration && iteration === tTime / cycleDuration) {\n\t\t\t\t\t\ttime = dur;\n\t\t\t\t\t\titeration--;\n\t\t\t\t\t}\n\t\t\t\t\ttime > dur && (time = dur);\n\t\t\t\t}\n\t\t\t\tisYoyo = this._yoyo && (iteration & 1);\n\t\t\t\tif (isYoyo) {\n\t\t\t\t\tyoyoEase = this._yEase;\n\t\t\t\t\ttime = dur - time;\n\t\t\t\t}\n\t\t\t\tprevIteration = _animationCycle(this._tTime, cycleDuration);\n\t\t\t\tif (time === prevTime && !force && this._initted) {\n\t\t\t\t\t//could be during the repeatDelay part. No need to render and fire callbacks.\n\t\t\t\t\tthis._tTime = tTime;\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tif (iteration !== prevIteration) {\n\t\t\t\t\ttimeline && this._yEase && _propagateYoyoEase(timeline, isYoyo);\n\t\t\t\t\t//repeatRefresh functionality\n\t\t\t\t\tif (this.vars.repeatRefresh && !isYoyo && !this._lock) {\n\t\t\t\t\t\tthis._lock = force = 1; //force, otherwise if lazy is true, the _attemptInitTween() will return and we'll jump out and get caught bouncing on each tick.\n\t\t\t\t\t\tthis.render(_roundPrecise(cycleDuration * iteration), true).invalidate()._lock = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!this._initted) {\n\t\t\t\tif (_attemptInitTween(this, isNegative ? totalTime : time, force, suppressEvents, tTime)) {\n\t\t\t\t\tthis._tTime = 0; // in constructor if immediateRender is true, we set _tTime to -_tinyNum to have the playhead cross the starting point but we can't leave _tTime as a negative number.\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tif (prevTime !== this._time) { // rare edge case - during initialization, an onUpdate in the _startAt (.fromTo()) might force this tween to render at a different spot in which case we should ditch this render() call so that it doesn't revert the values.\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tif (dur !== this._dur) { // while initting, a plugin like InertiaPlugin might alter the duration, so rerun from the start to ensure everything renders as it should.\n\t\t\t\t\treturn this.render(totalTime, suppressEvents, force);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis._tTime = tTime;\n\t\t\tthis._time = time;\n\n\t\t\tif (!this._act && this._ts) {\n\t\t\t\tthis._act = 1; //as long as it's not paused, force it to be active so that if the user renders independent of the parent timeline, it'll be forced to re-render on the next tick.\n\t\t\t\tthis._lazy = 0;\n\t\t\t}\n\n\t\t\tthis.ratio = ratio = (yoyoEase || this._ease)(time / dur);\n\t\t\tif (this._from) {\n\t\t\t\tthis.ratio = ratio = 1 - ratio;\n\t\t\t}\n\n\t\t\tif (time && !prevTime && !suppressEvents) {\n\t\t\t\t_callback(this, \"onStart\");\n\t\t\t\tif (this._tTime !== tTime) { // in case the onStart triggered a render at a different spot, eject. Like if someone did animation.pause(0.5) or something inside the onStart.\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpt = this._pt;\n\t\t\twhile (pt) {\n\t\t\t\tpt.r(ratio, pt.d);\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t\t(timeline && timeline.render(totalTime < 0 ? totalTime : !time && isYoyo ? -_tinyNum : timeline._dur * timeline._ease(time / this._dur), suppressEvents, force)) || (this._startAt && (this._zTime = totalTime));\n\n\t\t\tif (this._onUpdate && !suppressEvents) {\n\t\t\t\tisNegative && _rewindStartAt(this, totalTime, suppressEvents, force); //note: for performance reasons, we tuck this conditional logic inside less traveled areas (most tweens don't have an onUpdate). We'd just have it at the end before the onComplete, but the values should be updated before any onUpdate is called, so we ALSO put it here and then if it's not called, we do so later near the onComplete.\n\t\t\t\t_callback(this, \"onUpdate\");\n\t\t\t}\n\n\t\t\tthis._repeat && iteration !== prevIteration && this.vars.onRepeat && !suppressEvents && this.parent && _callback(this, \"onRepeat\");\n\n\t\t\tif ((tTime === this._tDur || !tTime) && this._tTime === tTime) {\n\t\t\t\tisNegative && !this._onUpdate && _rewindStartAt(this, totalTime, true, true);\n\t\t\t\t(totalTime || !dur) && ((tTime === this._tDur && this._ts > 0) || (!tTime && this._ts < 0)) && _removeFromParent(this, 1); // don't remove if we're rendering at exactly a time of 0, as there could be autoRevert values that should get set on the next tick (if the playhead goes backward beyond the startTime, negative totalTime). Don't remove if the timeline is reversed and the playhead isn't at 0, otherwise tl.progress(1).reverse() won't work. Only remove if the playhead is at the end and timeScale is positive, or if the playhead is at 0 and the timeScale is negative.\n\t\t\t if (!suppressEvents && !(isNegative && !prevTime) && (tTime || prevTime || isYoyo)) { // if prevTime and tTime are zero, we shouldn't fire the onReverseComplete. This could happen if you gsap.to(... {paused:true}).play();\n\t\t\t\t\t_callback(this, (tTime === tDur ? \"onComplete\" : \"onReverseComplete\"), true);\n\t\t\t\t\tthis._prom && !(tTime < tDur && this.timeScale() > 0) && this._prom();\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\treturn this;\n\t}\n\n\ttargets() {\n\t\treturn this._targets;\n\t}\n\n\tinvalidate(soft) { // \"soft\" gives us a way to clear out everything EXCEPT the recorded pre-\"from\" portion of from() tweens. Otherwise, for example, if you tween.progress(1).render(0, true true).invalidate(), the \"from\" values would persist and then on the next render, the from() tweens would initialize and the current value would match the \"from\" values, thus animate from the same value to the same value (no animation). We tap into this in ScrollTrigger's refresh() where we must push a tween to completion and then back again but honor its init state in case the tween is dependent on another tween further up on the page.\n\t\t(!soft || !this.vars.runBackwards) && (this._startAt = 0)\n\t\tthis._pt = this._op = this._onUpdate = this._lazy = this.ratio = 0;\n\t\tthis._ptLookup = [];\n\t\tthis.timeline && this.timeline.invalidate(soft);\n\t\treturn super.invalidate(soft);\n\t}\n\n\tresetTo(property, value, start, startIsRelative) {\n\t\t_tickerActive || _ticker.wake();\n\t\tthis._ts || this.play();\n\t\tlet time = Math.min(this._dur, (this._dp._time - this._start) * this._ts),\n\t\t\tratio;\n\t\tthis._initted || _initTween(this, time);\n\t\tratio = this._ease(time / this._dur); // don't just get tween.ratio because it may not have rendered yet.\n\t\t// possible future addition to allow an object with multiple values to update, like tween.resetTo({x: 100, y: 200}); At this point, it doesn't seem worth the added kb given the fact that most users will likely opt for the convenient gsap.quickTo() way of interacting with this method.\n\t\t// if (_isObject(property)) { // performance optimization\n\t\t// \tfor (p in property) {\n\t\t// \t\tif (_updatePropTweens(this, p, property[p], value ? value[p] : null, start, ratio, time)) {\n\t\t// \t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n\t\t// \t\t}\n\t\t// \t}\n\t\t// } else {\n\t\t\tif (_updatePropTweens(this, property, value, start, startIsRelative, ratio, time)) {\n\t\t\t\treturn this.resetTo(property, value, start, startIsRelative); // if a PropTween wasn't found for the property, it'll get forced with a re-initialization so we need to jump out and start over again.\n\t\t\t}\n\t\t//}\n\t\t_alignPlayhead(this, 0);\n\t\tthis.parent || _addLinkedListItem(this._dp, this, \"_first\", \"_last\", this._dp._sort ? \"_start\" : 0);\n\t\treturn this.render(0);\n\t}\n\n\tkill(targets, vars = \"all\") {\n\t\tif (!targets && (!vars || vars === \"all\")) {\n\t\t\tthis._lazy = this._pt = 0;\n\t\t\treturn this.parent ? _interrupt(this) : this;\n\t\t}\n\t\tif (this.timeline) {\n\t\t\tlet tDur = this.timeline.totalDuration();\n\t\t\tthis.timeline.killTweensOf(targets, vars, _overwritingTween && _overwritingTween.vars.overwrite !== true)._first || _interrupt(this); // if nothing is left tweening, interrupt.\n\t\t\tthis.parent && tDur !== this.timeline.totalDuration() && _setDuration(this, this._dur * this.timeline._tDur / tDur, 0, 1); // if a nested tween is killed that changes the duration, it should affect this tween's duration. We must use the ratio, though, because sometimes the internal timeline is stretched like for keyframes where they don't all add up to whatever the parent tween's duration was set to.\n\t\t\treturn this;\n\t\t}\n\t\tlet parsedTargets = this._targets,\n\t\t\tkillingTargets = targets ? toArray(targets) : parsedTargets,\n\t\t\tpropTweenLookup = this._ptLookup,\n\t\t\tfirstPT = this._pt,\n\t\t\toverwrittenProps, curLookup, curOverwriteProps, props, p, pt, i;\n\t\tif ((!vars || vars === \"all\") && _arraysMatch(parsedTargets, killingTargets)) {\n\t\t\tvars === \"all\" && (this._pt = 0);\n\t\t\treturn _interrupt(this);\n\t\t}\n\t\toverwrittenProps = this._op = this._op || [];\n\t\tif (vars !== \"all\") { //so people can pass in a comma-delimited list of property names\n\t\t\tif (_isString(vars)) {\n\t\t\t\tp = {};\n\t\t\t\t_forEachName(vars, name => p[name] = 1);\n\t\t\t\tvars = p;\n\t\t\t}\n\t\t\tvars = _addAliasesToVars(parsedTargets, vars);\n\t\t}\n\t\ti = parsedTargets.length;\n\t\twhile (i--) {\n\t\t\tif (~killingTargets.indexOf(parsedTargets[i])) {\n\t\t\t\tcurLookup = propTweenLookup[i];\n\t\t\t\tif (vars === \"all\") {\n\t\t\t\t\toverwrittenProps[i] = vars;\n\t\t\t\t\tprops = curLookup;\n\t\t\t\t\tcurOverwriteProps = {};\n\t\t\t\t} else {\n\t\t\t\t\tcurOverwriteProps = overwrittenProps[i] = overwrittenProps[i] || {};\n\t\t\t\t\tprops = vars;\n\t\t\t\t}\n\t\t\t\tfor (p in props) {\n\t\t\t\t\tpt = curLookup && curLookup[p];\n\t\t\t\t\tif (pt) {\n\t\t\t\t\t\tif (!(\"kill\" in pt.d) || pt.d.kill(p) === true) {\n\t\t\t\t\t\t\t_removeLinkedListItem(this, pt, \"_pt\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdelete curLookup[p];\n\t\t\t\t\t}\n\t\t\t\t\tif (curOverwriteProps !== \"all\") {\n\t\t\t\t\t\tcurOverwriteProps[p] = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._initted && !this._pt && firstPT && _interrupt(this); //if all tweening properties are killed, kill the tween. Without this line, if there's a tween with multiple targets and then you killTweensOf() each target individually, the tween would technically still remain active and fire its onComplete even though there aren't any more properties tweening.\n\t\treturn this;\n\t}\n\n\n\tstatic to(targets, vars) {\n\t\treturn new Tween(targets, vars, arguments[2]);\n\t}\n\n\tstatic from(targets, vars) {\n\t\treturn _createTweenType(1, arguments);\n\t}\n\n\tstatic delayedCall(delay, callback, params, scope) {\n\t\treturn new Tween(callback, 0, {immediateRender:false, lazy:false, overwrite:false, delay:delay, onComplete:callback, onReverseComplete:callback, onCompleteParams:params, onReverseCompleteParams:params, callbackScope:scope}); // we must use onReverseComplete too for things like timeline.add(() => {...}) which should be triggered in BOTH directions (forward and reverse)\n\t}\n\n\tstatic fromTo(targets, fromVars, toVars) {\n\t\treturn _createTweenType(2, arguments);\n\t}\n\n\tstatic set(targets, vars) {\n\t\tvars.duration = 0;\n\t\tvars.repeatDelay || (vars.repeat = 0);\n\t\treturn new Tween(targets, vars);\n\t}\n\n\tstatic killTweensOf(targets, props, onlyActive) {\n\t\treturn _globalTimeline.killTweensOf(targets, props, onlyActive);\n\t}\n}\n\n_setDefaults(Tween.prototype, {_targets:[], _lazy:0, _startAt:0, _op:0, _onInit:0});\n\n//add the pertinent timeline methods to Tween instances so that users can chain conveniently and create a timeline automatically. (removed due to concerns that it'd ultimately add to more confusion especially for beginners)\n// _forEachName(\"to,from,fromTo,set,call,add,addLabel,addPause\", name => {\n// \tTween.prototype[name] = function() {\n// \t\tlet tl = new Timeline();\n// \t\treturn _addToTimeline(tl, this)[name].apply(tl, toArray(arguments));\n// \t}\n// });\n\n//for backward compatibility. Leverage the timeline calls.\n_forEachName(\"staggerTo,staggerFrom,staggerFromTo\", name => {\n\tTween[name] = function() {\n\t\tlet tl = new Timeline(),\n\t\t\tparams = _slice.call(arguments, 0);\n\t\tparams.splice(name === \"staggerFromTo\" ? 5 : 4, 0, 0);\n\t\treturn tl[name].apply(tl, params);\n\t}\n});\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * PROPTWEEN\n * --------------------------------------------------------------------------------------\n */\nlet _setterPlain = (target, property, value) => target[property] = value,\n\t_setterFunc = (target, property, value) => target[property](value),\n\t_setterFuncWithParam = (target, property, value, data) => target[property](data.fp, value),\n\t_setterAttribute = (target, property, value) => target.setAttribute(property, value),\n\t_getSetter = (target, property) => _isFunction(target[property]) ? _setterFunc : _isUndefined(target[property]) && target.setAttribute ? _setterAttribute : _setterPlain,\n\t_renderPlain = (ratio, data) => data.set(data.t, data.p, Math.round((data.s + data.c * ratio) * 1000000) / 1000000, data),\n\t_renderBoolean = (ratio, data) => data.set(data.t, data.p, !!(data.s + data.c * ratio), data),\n\t_renderComplexString = function(ratio, data) {\n\t\tlet pt = data._pt,\n\t\t\ts = \"\";\n\t\tif (!ratio && data.b) { //b = beginning string\n\t\t\ts = data.b;\n\t\t} else if (ratio === 1 && data.e) { //e = ending string\n\t\t\ts = data.e;\n\t\t} else {\n\t\t\twhile (pt) {\n\t\t\t\ts = pt.p + (pt.m ? pt.m(pt.s + pt.c * ratio) : (Math.round((pt.s + pt.c * ratio) * 10000) / 10000)) + s; //we use the \"p\" property for the text inbetween (like a suffix). And in the context of a complex string, the modifier (m) is typically just Math.round(), like for RGB colors.\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t\ts += data.c; //we use the \"c\" of the PropTween to store the final chunk of non-numeric text.\n\t\t}\n\t\tdata.set(data.t, data.p, s, data);\n\t},\n\t_renderPropTweens = function(ratio, data) {\n\t\tlet pt = data._pt;\n\t\twhile (pt) {\n\t\t\tpt.r(ratio, pt.d);\n\t\t\tpt = pt._next;\n\t\t}\n\t},\n\t_addPluginModifier = function(modifier, tween, target, property) {\n\t\tlet pt = this._pt,\n\t\t\tnext;\n\t\twhile (pt) {\n\t\t\tnext = pt._next;\n\t\t\tpt.p === property && pt.modifier(modifier, tween, target);\n\t\t\tpt = next;\n\t\t}\n\t},\n\t_killPropTweensOf = function(property) {\n\t\tlet pt = this._pt,\n\t\t\thasNonDependentRemaining, next;\n\t\twhile (pt) {\n\t\t\tnext = pt._next;\n\t\t\tif ((pt.p === property && !pt.op) || pt.op === property) {\n\t\t\t\t_removeLinkedListItem(this, pt, \"_pt\");\n\t\t\t} else if (!pt.dep) {\n\t\t\t\thasNonDependentRemaining = 1;\n\t\t\t}\n\t\t\tpt = next;\n\t\t}\n\t\treturn !hasNonDependentRemaining;\n\t},\n\t_setterWithModifier = (target, property, value, data) => {\n\t\tdata.mSet(target, property, data.m.call(data.tween, value, data.mt), data);\n\t},\n\t_sortPropTweensByPriority = parent => {\n\t\tlet pt = parent._pt,\n\t\t\tnext, pt2, first, last;\n\t\t//sorts the PropTween linked list in order of priority because some plugins need to do their work after ALL of the PropTweens were created (like RoundPropsPlugin and ModifiersPlugin)\n\t\twhile (pt) {\n\t\t\tnext = pt._next;\n\t\t\tpt2 = first;\n\t\t\twhile (pt2 && pt2.pr > pt.pr) {\n\t\t\t\tpt2 = pt2._next;\n\t\t\t}\n\t\t\tif ((pt._prev = pt2 ? pt2._prev : last)) {\n\t\t\t\tpt._prev._next = pt;\n\t\t\t} else {\n\t\t\t\tfirst = pt;\n\t\t\t}\n\t\t\tif ((pt._next = pt2)) {\n\t\t\t\tpt2._prev = pt;\n\t\t\t} else {\n\t\t\t\tlast = pt;\n\t\t\t}\n\t\t\tpt = next;\n\t\t}\n\t\tparent._pt = first;\n\t};\n\n//PropTween key: t = target, p = prop, r = renderer, d = data, s = start, c = change, op = overwriteProperty (ONLY populated when it's different than p), pr = priority, _next/_prev for the linked list siblings, set = setter, m = modifier, mSet = modifierSetter (the original setter, before a modifier was added)\nexport class PropTween {\n\n\tconstructor(next, target, prop, start, change, renderer, data, setter, priority) {\n\t\tthis.t = target;\n\t\tthis.s = start;\n\t\tthis.c = change;\n\t\tthis.p = prop;\n\t\tthis.r = renderer || _renderPlain;\n\t\tthis.d = data || this;\n\t\tthis.set = setter || _setterPlain;\n\t\tthis.pr = priority || 0;\n\t\tthis._next = next;\n\t\tif (next) {\n\t\t\tnext._prev = this;\n\t\t}\n\t}\n\n\tmodifier(func, tween, target) {\n\t\tthis.mSet = this.mSet || this.set; //in case it was already set (a PropTween can only have one modifier)\n\t\tthis.set = _setterWithModifier;\n\t\tthis.m = func;\n\t\tthis.mt = target; //modifier target\n\t\tthis.tween = tween;\n\t}\n}\n\n\n\n//Initialization tasks\n_forEachName(_callbackNames + \"parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger\", name => _reservedProps[name] = 1);\n_globals.TweenMax = _globals.TweenLite = Tween;\n_globals.TimelineLite = _globals.TimelineMax = Timeline;\n_globalTimeline = new Timeline({sortChildren: false, defaults: _defaults, autoRemoveChildren: true, id:\"root\", smoothChildTiming: true});\n_config.stringFilter = _colorStringFilter;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nlet _media = [],\n\t_listeners = {},\n\t_emptyArray = [],\n\t_lastMediaTime = 0,\n\t_dispatch = type => (_listeners[type] || _emptyArray).map(f => f()),\n\t_onMediaChange = () => {\n\t\tlet time = Date.now(),\n\t\t\tmatches = [];\n\t\tif (time - _lastMediaTime > 2) {\n\t\t\t_dispatch(\"matchMediaInit\");\n\t\t\t_media.forEach(c => {\n\t\t\t\tlet queries = c.queries,\n\t\t\t\t\tconditions = c.conditions,\n\t\t\t\t\tmatch, p, anyMatch, toggled;\n\t\t\t\tfor (p in queries) {\n\t\t\t\t\tmatch = _win.matchMedia(queries[p]).matches; // Firefox doesn't update the \"matches\" property of the MediaQueryList object correctly - it only does so as it calls its change handler - so we must re-create a media query here to ensure it's accurate.\n\t\t\t\t\tmatch && (anyMatch = 1);\n\t\t\t\t\tif (match !== conditions[p]) {\n\t\t\t\t\t\tconditions[p] = match;\n\t\t\t\t\t\ttoggled = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (toggled) {\n\t\t\t\t\tc.revert();\n\t\t\t\t\tanyMatch && matches.push(c);\n\t\t\t\t}\n\t\t\t});\n\t\t\t_dispatch(\"matchMediaRevert\");\n\t\t\tmatches.forEach(c => c.onMatch(c));\n\t\t\t_lastMediaTime = time;\n\t\t\t_dispatch(\"matchMedia\");\n\t\t}\n\t};\n\nclass Context {\n\tconstructor(func, scope) {\n\t\tthis.selector = scope && selector(scope);\n\t\tthis.data = [];\n\t\tthis._r = []; // returned/cleanup functions\n\t\tthis.isReverted = false;\n\t\tfunc && this.add(func);\n\t}\n\tadd(name, func, scope) {\n\t\tif (_isFunction(name)) {\n\t\t\tscope = func;\n\t\t\tfunc = name;\n\t\t\tname = _isFunction;\n\t\t}\n\t\tlet self = this,\n\t\t\tf = function() {\n\t\t\t\tlet prev = _context,\n\t\t\t\t\tprevSelector = self.selector,\n\t\t\t\t\tresult;\n\t\t\t\tprev && prev !== self && prev.data.push(self);\n\t\t\t\tscope && (self.selector = selector(scope));\n\t\t\t\t_context = self;\n\t\t\t\tresult = func.apply(self, arguments);\n\t\t\t\t_isFunction(result) && self._r.push(result);\n\t\t\t\t_context = prev;\n\t\t\t\tself.selector = prevSelector;\n\t\t\t\tself.isReverted = false;\n\t\t\t\treturn result;\n\t\t\t};\n\t\tself.last = f;\n\t\treturn name === _isFunction ? f(self) : name ? (self[name] = f) : f;\n\t}\n\tignore(func) {\n\t\tlet prev = _context;\n\t\t_context = null;\n\t\tfunc(this);\n\t\t_context = prev;\n\t}\n\tgetTweens() {\n\t\tlet a = [];\n\t\tthis.data.forEach(e => (e instanceof Context) ? a.push(...e.getTweens()) : (e instanceof Tween) && !(e.parent && e.parent.data === \"nested\") && a.push(e));\n\t\treturn a;\n\t}\n\tclear() {\n\t\tthis._r.length = this.data.length = 0;\n\t}\n\tkill(revert, matchMedia) {\n\t\tif (revert) {\n\t\t\tlet tweens = this.getTweens();\n\t\t\tthis.data.forEach(t => { // Flip plugin tweens are very different in that they should actually be pushed to their end. The plugin replaces the timeline's .revert() method to do exactly that. But we also need to remove any of those nested tweens inside the flip timeline so that they don't get individually reverted.\n\t\t\t\tif (t.data === \"isFlip\") {\n\t\t\t\t\tt.revert();\n\t\t\t\t\tt.getChildren(true, true, false).forEach(tween => tweens.splice(tweens.indexOf(tween), 1));\n\t\t\t\t}\n\t\t\t});\n\t\t\t// save as an object so that we can cache the globalTime for each tween to optimize performance during the sort\n\t\t\ttweens.map(t => { return {g: t.globalTime(0), t}}).sort((a, b) => b.g - a.g || -1).forEach(o => o.t.revert(revert)); // note: all of the _startAt tweens should be reverted in reverse order that thy were created, and they'll all have the same globalTime (-1) so the \" || -1\" in the sort keeps the order properly.\n\t\t\tthis.data.forEach(e => !(e instanceof Animation) && e.revert && e.revert(revert));\n\t\t\tthis._r.forEach(f => f(revert, this));\n\t\t\tthis.isReverted = true;\n\t\t} else {\n\t\t\tthis.data.forEach(e => e.kill && e.kill());\n\t\t}\n\t\tthis.clear();\n\t\tif (matchMedia) {\n\t\t\tlet i = _media.indexOf(this);\n\t\t\t!!~i && _media.splice(i, 1);\n\t\t}\n\t}\n\trevert(config) {\n\t\tthis.kill(config || {});\n\t}\n}\n\n\n\n\nclass MatchMedia {\n\tconstructor(scope) {\n\t\tthis.contexts = [];\n\t\tthis.scope = scope;\n\t}\n\tadd(conditions, func, scope) {\n\t\t_isObject(conditions) || (conditions = {matches: conditions});\n\t\tlet context = new Context(0, scope || this.scope),\n\t\t\tcond = context.conditions = {},\n\t\t\tmq, p, active;\n\t\tthis.contexts.push(context);\n\t\tfunc = context.add(\"onMatch\", func);\n\t\tcontext.queries = conditions;\n\t\tfor (p in conditions) {\n\t\t\tif (p === \"all\") {\n\t\t\t\tactive = 1;\n\t\t\t} else {\n\t\t\t\tmq = _win.matchMedia(conditions[p]);\n\t\t\t\tif (mq) {\n\t\t\t\t\t_media.indexOf(context) < 0 && _media.push(context);\n\t\t\t\t\t(cond[p] = mq.matches) && (active = 1);\n\t\t\t\t\tmq.addListener ? mq.addListener(_onMediaChange) : mq.addEventListener(\"change\", _onMediaChange);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tactive && func(context);\n\t\treturn this;\n\t}\n\t// refresh() {\n\t// \tlet time = _lastMediaTime,\n\t// \t\tmedia = _media;\n\t// \t_lastMediaTime = -1;\n\t// \t_media = this.contexts;\n\t// \t_onMediaChange();\n\t// \t_lastMediaTime = time;\n\t// \t_media = media;\n\t// }\n\trevert(config) {\n\t\tthis.kill(config || {});\n\t}\n\tkill(revert) {\n\t\tthis.contexts.forEach(c => c.kill(revert, true));\n\t}\n}\n\n\n\n/*\n * --------------------------------------------------------------------------------------\n * GSAP\n * --------------------------------------------------------------------------------------\n */\nconst _gsap = {\n\tregisterPlugin(...args) {\n\t\targs.forEach(config => _createPlugin(config));\n\t},\n\ttimeline(vars) {\n\t\treturn new Timeline(vars);\n\t},\n\tgetTweensOf(targets, onlyActive) {\n\t\treturn _globalTimeline.getTweensOf(targets, onlyActive);\n\t},\n\tgetProperty(target, property, unit, uncache) {\n\t\t_isString(target) && (target = toArray(target)[0]); //in case selector text or an array is passed in\n\t\tlet getter = _getCache(target || {}).get,\n\t\t\tformat = unit ? _passThrough : _numericIfPossible;\n\t\tunit === \"native\" && (unit = \"\");\n\t\treturn !target ? target : !property ? (property, unit, uncache) => format(((_plugins[property] && _plugins[property].get) || getter)(target, property, unit, uncache)) : format(((_plugins[property] && _plugins[property].get) || getter)(target, property, unit, uncache));\n\t},\n\tquickSetter(target, property, unit) {\n\t\ttarget = toArray(target);\n\t\tif (target.length > 1) {\n\t\t\tlet setters = target.map(t => gsap.quickSetter(t, property, unit)),\n\t\t\t\tl = setters.length;\n\t\t\treturn value => {\n\t\t\t\tlet i = l;\n\t\t\t\twhile(i--) {\n\t\t\t\t\tsetters[i](value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ttarget = target[0] || {};\n\t\tlet Plugin = _plugins[property],\n\t\t\tcache = _getCache(target),\n\t\t\tp = (cache.harness && (cache.harness.aliases || {})[property]) || property, // in case it's an alias, like \"rotate\" for \"rotation\".\n\t\t\tsetter = Plugin ? value => {\n\t\t\t\tlet p = new Plugin();\n\t\t\t\t_quickTween._pt = 0;\n\t\t\t\tp.init(target, unit ? value + unit : value, _quickTween, 0, [target]);\n\t\t\t\tp.render(1, p);\n\t\t\t\t_quickTween._pt && _renderPropTweens(1, _quickTween);\n\t\t\t} : cache.set(target, p);\n\t\treturn Plugin ? setter : value => setter(target, p, unit ? value + unit : value, cache, 1);\n\t},\n\tquickTo(target, property, vars) {\n\t\tlet tween = gsap.to(target, _merge({[property]: \"+=0.1\", paused: true}, vars || {})),\n\t\t\tfunc = (value, start, startIsRelative) => tween.resetTo(property, value, start, startIsRelative);\n\t\tfunc.tween = tween;\n\t\treturn func;\n\t},\n\tisTweening(targets) {\n\t\treturn _globalTimeline.getTweensOf(targets, true).length > 0;\n\t},\n\tdefaults(value) {\n\t\tvalue && value.ease && (value.ease = _parseEase(value.ease, _defaults.ease));\n\t\treturn _mergeDeep(_defaults, value || {});\n\t},\n\tconfig(value) {\n\t\treturn _mergeDeep(_config, value || {});\n\t},\n\tregisterEffect({name, effect, plugins, defaults, extendTimeline}) {\n\t\t(plugins || \"\").split(\",\").forEach(pluginName => pluginName && !_plugins[pluginName] && !_globals[pluginName] && _warn(name + \" effect requires \" + pluginName + \" plugin.\"));\n\t\t_effects[name] = (targets, vars, tl) => effect(toArray(targets), _setDefaults(vars || {}, defaults), tl);\n\t\tif (extendTimeline) {\n\t\t\tTimeline.prototype[name] = function(targets, vars, position) {\n\t\t\t\treturn this.add(_effects[name](targets, _isObject(vars) ? vars : (position = vars) && {}, this), position);\n\t\t\t};\n\t\t}\n\t},\n\tregisterEase(name, ease) {\n\t\t_easeMap[name] = _parseEase(ease);\n\t},\n\tparseEase(ease, defaultEase) {\n\t\treturn arguments.length ? _parseEase(ease, defaultEase) : _easeMap;\n\t},\n\tgetById(id) {\n\t\treturn _globalTimeline.getById(id);\n\t},\n\texportRoot(vars = {}, includeDelayedCalls) {\n\t\tlet tl = new Timeline(vars),\n\t\t\tchild, next;\n\t\ttl.smoothChildTiming = _isNotFalse(vars.smoothChildTiming);\n\t\t_globalTimeline.remove(tl);\n\t\ttl._dp = 0; //otherwise it'll get re-activated when adding children and be re-introduced into _globalTimeline's linked list (then added to itself).\n\t\ttl._time = tl._tTime = _globalTimeline._time;\n\t\tchild = _globalTimeline._first;\n\t\twhile (child) {\n\t\t\tnext = child._next;\n\t\t\tif (includeDelayedCalls || !(!child._dur && child instanceof Tween && child.vars.onComplete === child._targets[0])) {\n\t\t\t\t_addToTimeline(tl, child, child._start - child._delay);\n\t\t\t}\n\t\t\tchild = next;\n\t\t}\n\t\t_addToTimeline(_globalTimeline, tl, 0);\n\t\treturn tl;\n\t},\n\tcontext: (func, scope) => func ? new Context(func, scope) : _context,\n\tmatchMedia: scope => new MatchMedia(scope),\n\tmatchMediaRefresh: () => _media.forEach(c => {\n\t\tlet cond = c.conditions,\n\t\t\tfound, p;\n\t\tfor (p in cond) {\n\t\t\tif (cond[p]) {\n\t\t\t\tcond[p] = false;\n\t\t\t\tfound = 1;\n\t\t\t}\n\t\t}\n\t\tfound && c.revert();\n\t}) || _onMediaChange(),\n\taddEventListener(type, callback) {\n\t\tlet a = _listeners[type] || (_listeners[type] = []);\n\t\t~a.indexOf(callback) || a.push(callback);\n\t},\n\tremoveEventListener(type, callback) {\n\t\tlet a = _listeners[type],\n\t\t\ti = a && a.indexOf(callback);\n\t\ti >= 0 && a.splice(i, 1);\n\t},\n\tutils: { wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle },\n\tinstall: _install,\n\teffects: _effects,\n\tticker: _ticker,\n\tupdateRoot: Timeline.updateRoot,\n\tplugins: _plugins,\n\tglobalTimeline: _globalTimeline,\n\tcore: {PropTween, globals: _addGlobal, Tween, Timeline, Animation, getCache: _getCache, _removeLinkedListItem, reverting: () => _reverting, context: toAdd => {if (toAdd && _context) { _context.data.push(toAdd); toAdd._ctx = _context} return _context; }, suppressOverwrites: value => _suppressOverwrites = value}\n};\n\n_forEachName(\"to,from,fromTo,delayedCall,set,killTweensOf\", name => _gsap[name] = Tween[name]);\n_ticker.add(Timeline.updateRoot);\n_quickTween = _gsap.to({}, {duration:0});\n\n\n\n\n// ---- EXTRA PLUGINS --------------------------------------------------------\n\n\nlet _getPluginPropTween = (plugin, prop) => {\n\t\tlet pt = plugin._pt;\n\t\twhile (pt && pt.p !== prop && pt.op !== prop && pt.fp !== prop) {\n\t\t\tpt = pt._next;\n\t\t}\n\t\treturn pt;\n\t},\n\t_addModifiers = (tween, modifiers) => {\n\t\t\tlet\ttargets = tween._targets,\n\t\t\t\tp, i, pt;\n\t\t\tfor (p in modifiers) {\n\t\t\t\ti = targets.length;\n\t\t\t\twhile (i--) {\n\t\t\t\t\tpt = tween._ptLookup[i][p];\n\t\t\t\t\tif (pt && (pt = pt.d)) {\n\t\t\t\t\t\tif (pt._pt) { // is a plugin\n\t\t\t\t\t\t\tpt = _getPluginPropTween(pt, p);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpt && pt.modifier && pt.modifier(modifiers[p], tween, targets[i], p);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t},\n\t_buildModifierPlugin = (name, modifier) => {\n\t\treturn {\n\t\t\tname: name,\n\t\t\trawVars: 1, //don't pre-process function-based values or \"random()\" strings.\n\t\t\tinit(target, vars, tween) {\n\t\t\t\ttween._onInit = tween => {\n\t\t\t\t\tlet temp, p;\n\t\t\t\t\tif (_isString(vars)) {\n\t\t\t\t\t\ttemp = {};\n\t\t\t\t\t\t_forEachName(vars, name => temp[name] = 1); //if the user passes in a comma-delimited list of property names to roundProps, like \"x,y\", we round to whole numbers.\n\t\t\t\t\t\tvars = temp;\n\t\t\t\t\t}\n\t\t\t\t\tif (modifier) {\n\t\t\t\t\t\ttemp = {};\n\t\t\t\t\t\tfor (p in vars) {\n\t\t\t\t\t\t\ttemp[p] = modifier(vars[p]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvars = temp;\n\t\t\t\t\t}\n\t\t\t\t\t_addModifiers(tween, vars);\n\t\t\t\t};\n\t\t\t}\n\t\t};\n\t};\n\n//register core plugins\nexport const gsap = _gsap.registerPlugin({\n\t\tname:\"attr\",\n\t\tinit(target, vars, tween, index, targets) {\n\t\t\tlet p, pt, v;\n\t\t\tthis.tween = tween;\n\t\t\tfor (p in vars) {\n\t\t\t\tv = target.getAttribute(p) || \"\";\n\t\t\t\tpt = this.add(target, \"setAttribute\", (v || 0) + \"\", vars[p], index, targets, 0, 0, p);\n\t\t\t\tpt.op = p;\n\t\t\t\tpt.b = v; // record the beginning value so we can revert()\n\t\t\t\tthis._props.push(p);\n\t\t\t}\n\t\t},\n\t\trender(ratio, data) {\n\t\t\tlet pt = data._pt;\n\t\t\twhile (pt) {\n\t\t\t\t_reverting ? pt.set(pt.t, pt.p, pt.b, pt) : pt.r(ratio, pt.d); // if reverting, go back to the original (pt.b)\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t}\n\t}, {\n\t\tname:\"endArray\",\n\t\tinit(target, value) {\n\t\t\tlet i = value.length;\n\t\t\twhile (i--) {\n\t\t\t\tthis.add(target, i, target[i] || 0, value[i], 0, 0, 0, 0, 0, 1);\n\t\t\t}\n\t\t}\n\t},\n\t_buildModifierPlugin(\"roundProps\", _roundModifier),\n\t_buildModifierPlugin(\"modifiers\"),\n\t_buildModifierPlugin(\"snap\", snap)\n) || _gsap; //to prevent the core plugins from being dropped via aggressive tree shaking, we must include them in the variable declaration in this way.\n\nTween.version = Timeline.version = gsap.version = \"3.11.2\";\n_coreReady = 1;\n_windowExists() && _wake();\n\nexport const { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ } = _easeMap;\nexport { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle };\n//export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it.\nexport { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative }","/*!\n * CSSPlugin 3.11.2\n * https://greensock.com\n *\n * Copyright 2008-2022, GreenSock. All rights reserved.\n * Subject to the terms at https://greensock.com/standard-license or for\n * Club GreenSock members, the agreement issued with that membership.\n * @author: Jack Doyle, jack@greensock.com\n*/\n/* eslint-disable */\n\nimport {gsap, _getProperty, _numExp, _numWithUnitExp, getUnit, _isString, _isUndefined, _renderComplexString, _relExp, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _checkPlugin, _replaceRandom, _plugins, GSCache, PropTween, _config, _ticker, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative,\n\t_setDefaults, _removeLinkedListItem //for the commented-out className feature.\n} from \"./gsap-core.js\";\n\nlet _win, _doc, _docElement, _pluginInitted, _tempDiv, _tempDivStyler, _recentSetterPlugin, _reverting,\n\t_windowExists = () => typeof(window) !== \"undefined\",\n\t_transformProps = {},\n\t_RAD2DEG = 180 / Math.PI,\n\t_DEG2RAD = Math.PI / 180,\n\t_atan2 = Math.atan2,\n\t_bigNum = 1e8,\n\t_capsExp = /([A-Z])/g,\n\t_horizontalExp = /(left|right|width|margin|padding|x)/i,\n\t_complexExp = /[\\s,\\(]\\S/,\n\t_propertyAliases = {autoAlpha:\"opacity,visibility\", scale:\"scaleX,scaleY\", alpha:\"opacity\"},\n\t_renderCSSProp = (ratio, data) => data.set(data.t, data.p, (Math.round((data.s + data.c * ratio) * 10000) / 10000) + data.u, data),\n\t_renderPropWithEnd = (ratio, data) => data.set(data.t, data.p, ratio === 1 ? data.e : (Math.round((data.s + data.c * ratio) * 10000) / 10000) + data.u, data),\n\t_renderCSSPropWithBeginning = (ratio, data) => data.set(data.t, data.p, ratio ? (Math.round((data.s + data.c * ratio) * 10000) / 10000) + data.u : data.b, data), //if units change, we need a way to render the original unit/value when the tween goes all the way back to the beginning (ratio:0)\n\t_renderRoundedCSSProp = (ratio, data) => {\n\t\tlet value = data.s + data.c * ratio;\n\t\tdata.set(data.t, data.p, ~~(value + (value < 0 ? -.5 : .5)) + data.u, data);\n\t},\n\t_renderNonTweeningValue = (ratio, data) => data.set(data.t, data.p, ratio ? data.e : data.b, data),\n\t_renderNonTweeningValueOnlyAtEnd = (ratio, data) => data.set(data.t, data.p, ratio !== 1 ? data.b : data.e, data),\n\t_setterCSSStyle = (target, property, value) => target.style[property] = value,\n\t_setterCSSProp = (target, property, value) => target.style.setProperty(property, value),\n\t_setterTransform = (target, property, value) => target._gsap[property] = value,\n\t_setterScale = (target, property, value) => target._gsap.scaleX = target._gsap.scaleY = value,\n\t_setterScaleWithRender = (target, property, value, data, ratio) => {\n\t\tlet cache = target._gsap;\n\t\tcache.scaleX = cache.scaleY = value;\n\t\tcache.renderTransform(ratio, cache);\n\t},\n\t_setterTransformWithRender = (target, property, value, data, ratio) => {\n\t\tlet cache = target._gsap;\n\t\tcache[property] = value;\n\t\tcache.renderTransform(ratio, cache);\n\t},\n\t_transformProp = \"transform\",\n\t_transformOriginProp = _transformProp + \"Origin\",\n\t_saveStyle = function(property, isNotCSS) {\n\t\tlet target = this.target,\n\t\t\tstyle = target.style;\n\t\tif (property in _transformProps) {\n\t\t\tthis.tfm = this.tfm || {};\n\t\t\tif (property !== \"transform\") {\n\t\t\t\tproperty = _propertyAliases[property] || property;\n\t\t\t\t~property.indexOf(\",\") ? property.split(\",\").forEach(a => this.tfm[a] = _get(target, a)) : (this.tfm[property] = target._gsap.x ? target._gsap[property] : _get(target, property)); // note: scale would map to \"scaleX,scaleY\", thus we loop and apply them both.\n\t\t\t}\n\t\t\tif (this.props.indexOf(_transformProp) >= 0) { return; }\n\t\t\tif (target._gsap.svg) {\n\t\t\t\tthis.svgo = target.getAttribute(\"data-svg-origin\");\n\t\t\t\tthis.props.push(_transformOriginProp, isNotCSS, \"\");\n\t\t\t}\n\t\t\tproperty = _transformProp;\n\t\t}\n\t\t(style || isNotCSS) && this.props.push(property, isNotCSS, style[property]);\n\t},\n\t_removeIndependentTransforms = style => {\n\t\tif (style.translate) {\n\t\t\tstyle.removeProperty(\"translate\");\n\t\t\tstyle.removeProperty(\"scale\");\n\t\t\tstyle.removeProperty(\"rotate\");\n\t\t}\n\t},\n\t_revertStyle = function() {\n\t\tlet props = this.props,\n\t\t\ttarget = this.target,\n\t\t\tstyle = target.style,\n\t\t\tcache = target._gsap,\n\t\t\ti, p;\n\t\tfor (i = 0; i < props.length; i+=3) { // stored like this: property, isNotCSS, value\n\t\t\tprops[i+1] ? target[props[i]] = props[i+2] : props[i+2] ? (style[props[i]] = props[i+2]) : style.removeProperty(props[i].replace(_capsExp, \"-$1\").toLowerCase());\n\t\t}\n\t\tif (this.tfm) {\n\t\t\tfor (p in this.tfm) {\n\t\t\t\tcache[p] = this.tfm[p];\n\t\t\t}\n\t\t\tif (cache.svg) {\n\t\t\t\tcache.renderTransform();\n\t\t\t\ttarget.setAttribute(\"data-svg-origin\", this.svgo || \"\");\n\t\t\t}\n\t\t\ti = _reverting();\n\t\t\tif (i && !i.isStart && !style[_transformProp]) {\n\t\t\t\t_removeIndependentTransforms(style);\n\t\t\t\tcache.uncache = 1; // if it's a startAt that's being reverted in the _initTween() of the core, we don't need to uncache transforms. This is purely a performance optimization.\n\t\t\t}\n\t\t}\n\t},\n\t_getStyleSaver = (target, properties) => {\n\t\tlet saver = {\n\t\t\ttarget,\n\t\t\tprops: [],\n\t\t\trevert: _revertStyle,\n\t\t\tsave: _saveStyle\n\t\t};\n\t\tproperties && properties.split(\",\").forEach(p => saver.save(p));\n\t\treturn saver;\n\t},\n\t_supports3D,\n\t_createElement = (type, ns) => {\n\t\tlet e = _doc.createElementNS ? _doc.createElementNS((ns || \"http://www.w3.org/1999/xhtml\").replace(/^https/, \"http\"), type) : _doc.createElement(type); //some servers swap in https for http in the namespace which can break things, making \"style\" inaccessible.\n\t\treturn e.style ? e : _doc.createElement(type); //some environments won't allow access to the element's style when created with a namespace in which case we default to the standard createElement() to work around the issue. Also note that when GSAP is embedded directly inside an SVG file, createElement() won't allow access to the style object in Firefox (see https://greensock.com/forums/topic/20215-problem-using-tweenmax-in-standalone-self-containing-svg-file-err-cannot-set-property-csstext-of-undefined/).\n\t},\n\t_getComputedProperty = (target, property, skipPrefixFallback) => {\n\t\tlet cs = getComputedStyle(target);\n\t\treturn cs[property] || cs.getPropertyValue(property.replace(_capsExp, \"-$1\").toLowerCase()) || cs.getPropertyValue(property) || (!skipPrefixFallback && _getComputedProperty(target, _checkPropPrefix(property) || property, 1)) || \"\"; //css variables may not need caps swapped out for dashes and lowercase.\n\t},\n\t_prefixes = \"O,Moz,ms,Ms,Webkit\".split(\",\"),\n\t_checkPropPrefix = (property, element, preferPrefix) => {\n\t\tlet e = element || _tempDiv,\n\t\t\ts = e.style,\n\t\t\ti = 5;\n\t\tif (property in s && !preferPrefix) {\n\t\t\treturn property;\n\t\t}\n\t\tproperty = property.charAt(0).toUpperCase() + property.substr(1);\n\t\twhile (i-- && !((_prefixes[i]+property) in s)) { }\n\t\treturn (i < 0) ? null : ((i === 3) ? \"ms\" : (i >= 0) ? _prefixes[i] : \"\") + property;\n\t},\n\t_initCore = () => {\n\t\tif (_windowExists() && window.document) {\n\t\t\t_win = window;\n\t\t\t_doc = _win.document;\n\t\t\t_docElement = _doc.documentElement;\n\t\t\t_tempDiv = _createElement(\"div\") || {style:{}};\n\t\t\t_tempDivStyler = _createElement(\"div\");\n\t\t\t_transformProp = _checkPropPrefix(_transformProp);\n\t\t\t_transformOriginProp = _transformProp + \"Origin\";\n\t\t\t_tempDiv.style.cssText = \"border-width:0;line-height:0;position:absolute;padding:0\"; //make sure to override certain properties that may contaminate measurements, in case the user has overreaching style sheets.\n\t\t\t_supports3D = !!_checkPropPrefix(\"perspective\");\n\t\t\t_reverting = gsap.core.reverting;\n\t\t\t_pluginInitted = 1;\n\t\t}\n\t},\n\t_getBBoxHack = function(swapIfPossible) { //works around issues in some browsers (like Firefox) that don't correctly report getBBox() on SVG elements inside a element and/or . We try creating an SVG, adding it to the documentElement and toss the element in there so that it's definitely part of the rendering tree, then grab the bbox and if it works, we actually swap out the original getBBox() method for our own that does these extra steps whenever getBBox is needed. This helps ensure that performance is optimal (only do all these extra steps when absolutely necessary...most elements don't need it).\n\t\tlet svg = _createElement(\"svg\", (this.ownerSVGElement && this.ownerSVGElement.getAttribute(\"xmlns\")) || \"http://www.w3.org/2000/svg\"),\n\t\t\toldParent = this.parentNode,\n\t\t\toldSibling = this.nextSibling,\n\t\t\toldCSS = this.style.cssText,\n\t\t\tbbox;\n\t\t_docElement.appendChild(svg);\n\t\tsvg.appendChild(this);\n\t\tthis.style.display = \"block\";\n\t\tif (swapIfPossible) {\n\t\t\ttry {\n\t\t\t\tbbox = this.getBBox();\n\t\t\t\tthis._gsapBBox = this.getBBox; //store the original\n\t\t\t\tthis.getBBox = _getBBoxHack;\n\t\t\t} catch (e) { }\n\t\t} else if (this._gsapBBox) {\n\t\t\tbbox = this._gsapBBox();\n\t\t}\n\t\tif (oldParent) {\n\t\t\tif (oldSibling) {\n\t\t\t\toldParent.insertBefore(this, oldSibling);\n\t\t\t} else {\n\t\t\t\toldParent.appendChild(this);\n\t\t\t}\n\t\t}\n\t\t_docElement.removeChild(svg);\n\t\tthis.style.cssText = oldCSS;\n\t\treturn bbox;\n\t},\n\t_getAttributeFallbacks = (target, attributesArray) => {\n\t\tlet i = attributesArray.length;\n\t\twhile (i--) {\n\t\t\tif (target.hasAttribute(attributesArray[i])) {\n\t\t\t\treturn target.getAttribute(attributesArray[i]);\n\t\t\t}\n\t\t}\n\t},\n\t_getBBox = target => {\n\t\tlet bounds;\n\t\ttry {\n\t\t\tbounds = target.getBBox(); //Firefox throws errors if you try calling getBBox() on an SVG element that's not rendered (like in a or ). https://bugzilla.mozilla.org/show_bug.cgi?id=612118\n\t\t} catch (error) {\n\t\t\tbounds = _getBBoxHack.call(target, true);\n\t\t}\n\t\t(bounds && (bounds.width || bounds.height)) || target.getBBox === _getBBoxHack || (bounds = _getBBoxHack.call(target, true));\n\t\t//some browsers (like Firefox) misreport the bounds if the element has zero width and height (it just assumes it's at x:0, y:0), thus we need to manually grab the position in that case.\n\t\treturn (bounds && !bounds.width && !bounds.x && !bounds.y) ? {x: +_getAttributeFallbacks(target, [\"x\",\"cx\",\"x1\"]) || 0, y:+_getAttributeFallbacks(target, [\"y\",\"cy\",\"y1\"]) || 0, width:0, height:0} : bounds;\n\t},\n\t_isSVG = e => !!(e.getCTM && (!e.parentNode || e.ownerSVGElement) && _getBBox(e)), //reports if the element is an SVG on which getBBox() actually works\n\t_removeProperty = (target, property) => {\n\t\tif (property) {\n\t\t\tlet style = target.style;\n\t\t\tif (property in _transformProps && property !== _transformOriginProp) {\n\t\t\t\tproperty = _transformProp;\n\t\t\t}\n\t\t\tif (style.removeProperty) {\n\t\t\t\tif (property.substr(0,2) === \"ms\" || property.substr(0,6) === \"webkit\") { //Microsoft and some Webkit browsers don't conform to the standard of capitalizing the first prefix character, so we adjust so that when we prefix the caps with a dash, it's correct (otherwise it'd be \"ms-transform\" instead of \"-ms-transform\" for IE9, for example)\n\t\t\t\t\tproperty = \"-\" + property;\n\t\t\t\t}\n\t\t\t\tstyle.removeProperty(property.replace(_capsExp, \"-$1\").toLowerCase());\n\t\t\t} else { //note: old versions of IE use \"removeAttribute()\" instead of \"removeProperty()\"\n\t\t\t\tstyle.removeAttribute(property);\n\t\t\t}\n\t\t}\n\t},\n\t_addNonTweeningPT = (plugin, target, property, beginning, end, onlySetAtEnd) => {\n\t\tlet pt = new PropTween(plugin._pt, target, property, 0, 1, onlySetAtEnd ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue);\n\t\tplugin._pt = pt;\n\t\tpt.b = beginning;\n\t\tpt.e = end;\n\t\tplugin._props.push(property);\n\t\treturn pt;\n\t},\n\t_nonConvertibleUnits = {deg:1, rad:1, turn:1},\n\t_nonStandardLayouts = {grid:1, flex:1},\n\t//takes a single value like 20px and converts it to the unit specified, like \"%\", returning only the numeric amount.\n\t_convertToUnit = (target, property, value, unit) => {\n\t\tlet curValue = parseFloat(value) || 0,\n\t\t\tcurUnit = (value + \"\").trim().substr((curValue + \"\").length) || \"px\", // some browsers leave extra whitespace at the beginning of CSS variables, hence the need to trim()\n\t\t\tstyle = _tempDiv.style,\n\t\t\thorizontal = _horizontalExp.test(property),\n\t\t\tisRootSVG = target.tagName.toLowerCase() === \"svg\",\n\t\t\tmeasureProperty = (isRootSVG ? \"client\" : \"offset\") + (horizontal ? \"Width\" : \"Height\"),\n\t\t\tamount = 100,\n\t\t\ttoPixels = unit === \"px\",\n\t\t\ttoPercent = unit === \"%\",\n\t\t\tpx, parent, cache, isSVG;\n\t\tif (unit === curUnit || !curValue || _nonConvertibleUnits[unit] || _nonConvertibleUnits[curUnit]) {\n\t\t\treturn curValue;\n\t\t}\n\t\t(curUnit !== \"px\" && !toPixels) && (curValue = _convertToUnit(target, property, value, \"px\"));\n\t\tisSVG = target.getCTM && _isSVG(target);\n\t\tif ((toPercent || curUnit === \"%\") && (_transformProps[property] || ~property.indexOf(\"adius\"))) {\n\t\t\tpx = isSVG ? target.getBBox()[horizontal ? \"width\" : \"height\"] : target[measureProperty];\n\t\t\treturn _round(toPercent ? curValue / px * amount : curValue / 100 * px);\n\t\t}\n\t\tstyle[horizontal ? \"width\" : \"height\"] = amount + (toPixels ? curUnit : unit);\n\t\tparent = (~property.indexOf(\"adius\") || (unit === \"em\" && target.appendChild && !isRootSVG)) ? target : target.parentNode;\n\t\tif (isSVG) {\n\t\t\tparent = (target.ownerSVGElement || {}).parentNode;\n\t\t}\n\t\tif (!parent || parent === _doc || !parent.appendChild) {\n\t\t\tparent = _doc.body;\n\t\t}\n\t\tcache = parent._gsap;\n\t\tif (cache && toPercent && cache.width && horizontal && cache.time === _ticker.time && !cache.uncache) {\n\t\t\treturn _round(curValue / cache.width * amount);\n\t\t} else {\n\t\t\t(toPercent || curUnit === \"%\") && !_nonStandardLayouts[_getComputedProperty(parent, \"display\")] && (style.position = _getComputedProperty(target, \"position\"));\n\t\t\t(parent === target) && (style.position = \"static\"); // like for borderRadius, if it's a % we must have it relative to the target itself but that may not have position: relative or position: absolute in which case it'd go up the chain until it finds its offsetParent (bad). position: static protects against that.\n\t\t\tparent.appendChild(_tempDiv);\n\t\t\tpx = _tempDiv[measureProperty];\n\t\t\tparent.removeChild(_tempDiv);\n\t\t\tstyle.position = \"absolute\";\n\t\t\tif (horizontal && toPercent) {\n\t\t\t\tcache = _getCache(parent);\n\t\t\t\tcache.time = _ticker.time;\n\t\t\t\tcache.width = parent[measureProperty];\n\t\t\t}\n\t\t}\n\t\treturn _round(toPixels ? px * curValue / amount : px && curValue ? amount / px * curValue : 0);\n\t},\n\t_get = (target, property, unit, uncache) => {\n\t\tlet value;\n\t\t_pluginInitted || _initCore();\n\t\tif ((property in _propertyAliases) && property !== \"transform\") {\n\t\t\tproperty = _propertyAliases[property];\n\t\t\tif (~property.indexOf(\",\")) {\n\t\t\t\tproperty = property.split(\",\")[0];\n\t\t\t}\n\t\t}\n\t\tif (_transformProps[property] && property !== \"transform\") {\n\t\t\tvalue = _parseTransform(target, uncache);\n\t\t\tvalue = (property !== \"transformOrigin\") ? value[property] : value.svg ? value.origin : _firstTwoOnly(_getComputedProperty(target, _transformOriginProp)) + \" \" + value.zOrigin + \"px\";\n\t\t} else {\n\t\t\tvalue = target.style[property];\n\t\t\tif (!value || value === \"auto\" || uncache || ~(value + \"\").indexOf(\"calc(\")) {\n\t\t\t\tvalue = (_specialProps[property] && _specialProps[property](target, property, unit)) || _getComputedProperty(target, property) || _getProperty(target, property) || (property === \"opacity\" ? 1 : 0); // note: some browsers, like Firefox, don't report borderRadius correctly! Instead, it only reports every corner like borderTopLeftRadius\n\t\t\t}\n\t\t}\n\t\treturn unit && !~(value + \"\").trim().indexOf(\" \") ? _convertToUnit(target, property, value, unit) + unit : value;\n\n\t},\n\t_tweenComplexCSSString = function(target, prop, start, end) { // note: we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within a plugin too, thus \"this\" would refer to the plugin.\n\t\tif (!start || start === \"none\") { // some browsers like Safari actually PREFER the prefixed property and mis-report the unprefixed value like clipPath (BUG). In other words, even though clipPath exists in the style (\"clipPath\" in target.style) and it's set in the CSS properly (along with -webkit-clip-path), Safari reports clipPath as \"none\" whereas WebkitClipPath reports accurately like \"ellipse(100% 0% at 50% 0%)\", so in this case we must SWITCH to using the prefixed property instead. See https://greensock.com/forums/topic/18310-clippath-doesnt-work-on-ios/\n\t\t\tlet p = _checkPropPrefix(prop, target, 1),\n\t\t\t\ts = p && _getComputedProperty(target, p, 1);\n\t\t\tif (s && s !== start) {\n\t\t\t\tprop = p;\n\t\t\t\tstart = s;\n\t\t\t} else if (prop === \"borderColor\") {\n\t\t\t\tstart = _getComputedProperty(target, \"borderTopColor\"); // Firefox bug: always reports \"borderColor\" as \"\", so we must fall back to borderTopColor. See https://greensock.com/forums/topic/24583-how-to-return-colors-that-i-had-after-reverse/\n\t\t\t}\n\t\t}\n\t\tlet pt = new PropTween(this._pt, target.style, prop, 0, 1, _renderComplexString),\n\t\t\tindex = 0,\n\t\t\tmatchIndex = 0,\n\t\t\ta, result,\tstartValues, startNum, color, startValue, endValue, endNum, chunk, endUnit, startUnit, endValues;\n\t\tpt.b = start;\n\t\tpt.e = end;\n\t\tstart += \"\"; // ensure values are strings\n\t\tend += \"\";\n\t\tif (end === \"auto\") {\n\t\t\ttarget.style[prop] = end;\n\t\t\tend = _getComputedProperty(target, prop) || end;\n\t\t\ttarget.style[prop] = start;\n\t\t}\n\t\ta = [start, end];\n\t\t_colorStringFilter(a); // pass an array with the starting and ending values and let the filter do whatever it needs to the values. If colors are found, it returns true and then we must match where the color shows up order-wise because for things like boxShadow, sometimes the browser provides the computed values with the color FIRST, but the user provides it with the color LAST, so flip them if necessary. Same for drop-shadow().\n\t\tstart = a[0];\n\t\tend = a[1];\n\t\tstartValues = start.match(_numWithUnitExp) || [];\n\t\tendValues = end.match(_numWithUnitExp) || [];\n\t\tif (endValues.length) {\n\t\t\twhile ((result = _numWithUnitExp.exec(end))) {\n\t\t\t\tendValue = result[0];\n\t\t\t\tchunk = end.substring(index, result.index);\n\t\t\t\tif (color) {\n\t\t\t\t\tcolor = (color + 1) % 5;\n\t\t\t\t} else if (chunk.substr(-5) === \"rgba(\" || chunk.substr(-5) === \"hsla(\") {\n\t\t\t\t\tcolor = 1;\n\t\t\t\t}\n\t\t\t\tif (endValue !== (startValue = startValues[matchIndex++] || \"\")) {\n\t\t\t\t\tstartNum = parseFloat(startValue) || 0;\n\t\t\t\t\tstartUnit = startValue.substr((startNum + \"\").length);\n\t\t\t\t\t(endValue.charAt(1) === \"=\") && (endValue = _parseRelative(startNum, endValue) + startUnit);\n\t\t\t\t\tendNum = parseFloat(endValue);\n\t\t\t\t\tendUnit = endValue.substr((endNum + \"\").length);\n\t\t\t\t\tindex = _numWithUnitExp.lastIndex - endUnit.length;\n\t\t\t\t\tif (!endUnit) { //if something like \"perspective:300\" is passed in and we must add a unit to the end\n\t\t\t\t\t\tendUnit = endUnit || _config.units[prop] || startUnit;\n\t\t\t\t\t\tif (index === end.length) {\n\t\t\t\t\t\t\tend += endUnit;\n\t\t\t\t\t\t\tpt.e += endUnit;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (startUnit !== endUnit) {\n\t\t\t\t\t\tstartNum = _convertToUnit(target, prop, startValue, endUnit) || 0;\n\t\t\t\t\t}\n\t\t\t\t\t// these nested PropTweens are handled in a special way - we'll never actually call a render or setter method on them. We'll just loop through them in the parent complex string PropTween's render method.\n\t\t\t\t\tpt._pt = {\n\t\t\t\t\t\t_next: pt._pt,\n\t\t\t\t\t\tp: (chunk || (matchIndex === 1)) ? chunk : \",\", //note: SVG spec allows omission of comma/space when a negative sign is wedged between two numbers, like 2.5-5.3 instead of 2.5,-5.3 but when tweening, the negative value may switch to positive, so we insert the comma just in case.\n\t\t\t\t\t\ts: startNum,\n\t\t\t\t\t\tc: endNum - startNum,\n\t\t\t\t\t\tm: (color && color < 4) || prop === \"zIndex\" ? Math.round : 0\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tpt.c = (index < end.length) ? end.substring(index, end.length) : \"\"; //we use the \"c\" of the PropTween to store the final part of the string (after the last number)\n\t\t} else {\n\t\t\tpt.r = prop === \"display\" && end === \"none\" ? _renderNonTweeningValueOnlyAtEnd : _renderNonTweeningValue;\n\t\t}\n\t\t_relExp.test(end) && (pt.e = 0); //if the end string contains relative values or dynamic random(...) values, delete the end it so that on the final render we don't actually set it to the string with += or -= characters (forces it to use the calculated value).\n\t\tthis._pt = pt; //start the linked list with this new PropTween. Remember, we call _tweenComplexCSSString.call(pluginInstance...) to ensure that it's scoped properly. We may call it from within another plugin too, thus \"this\" would refer to the plugin.\n\t\treturn pt;\n\t},\n\t_keywordToPercent = {top:\"0%\", bottom:\"100%\", left:\"0%\", right:\"100%\", center:\"50%\"},\n\t_convertKeywordsToPercentages = value => {\n\t\tlet split = value.split(\" \"),\n\t\t\tx = split[0],\n\t\t\ty = split[1] || \"50%\";\n\t\tif (x === \"top\" || x === \"bottom\" || y === \"left\" || y === \"right\") { //the user provided them in the wrong order, so flip them\n\t\t\tvalue = x;\n\t\t\tx = y;\n\t\t\ty = value;\n\t\t}\n\t\tsplit[0] = _keywordToPercent[x] || x;\n\t\tsplit[1] = _keywordToPercent[y] || y;\n\t\treturn split.join(\" \");\n\t},\n\t_renderClearProps = (ratio, data) => {\n\t\tif (data.tween && data.tween._time === data.tween._dur) {\n\t\t\tlet target = data.t,\n\t\t\t\tstyle = target.style,\n\t\t\t\tprops = data.u,\n\t\t\t\tcache = target._gsap,\n\t\t\t\tprop, clearTransforms, i;\n\t\t\tif (props === \"all\" || props === true) {\n\t\t\t\tstyle.cssText = \"\";\n\t\t\t\tclearTransforms = 1;\n\t\t\t} else {\n\t\t\t\tprops = props.split(\",\");\n\t\t\t\ti = props.length;\n\t\t\t\twhile (--i > -1) {\n\t\t\t\t\tprop = props[i];\n\t\t\t\t\tif (_transformProps[prop]) {\n\t\t\t\t\t\tclearTransforms = 1;\n\t\t\t\t\t\tprop = (prop === \"transformOrigin\") ? _transformOriginProp : _transformProp;\n\t\t\t\t\t}\n\t\t\t\t\t_removeProperty(target, prop);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (clearTransforms) {\n\t\t\t\t_removeProperty(target, _transformProp);\n\t\t\t\tif (cache) {\n\t\t\t\t\tcache.svg && target.removeAttribute(\"transform\");\n\t\t\t\t\t_parseTransform(target, 1); // force all the cached values back to \"normal\"/identity, otherwise if there's another tween that's already set to render transforms on this element, it could display the wrong values.\n\t\t\t\t\tcache.uncache = 1;\n\t\t\t\t\t_removeIndependentTransforms(style);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t// note: specialProps should return 1 if (and only if) they have a non-zero priority. It indicates we need to sort the linked list.\n\t_specialProps = {\n\t\tclearProps(plugin, target, property, endValue, tween) {\n\t\t\tif (tween.data !== \"isFromStart\") {\n\t\t\t\tlet pt = plugin._pt = new PropTween(plugin._pt, target, property, 0, 0, _renderClearProps);\n\t\t\t\tpt.u = endValue;\n\t\t\t\tpt.pr = -10;\n\t\t\t\tpt.tween = tween;\n\t\t\t\tplugin._props.push(property);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\t\t/* className feature (about 0.4kb gzipped).\n\t\t, className(plugin, target, property, endValue, tween) {\n\t\t\tlet _renderClassName = (ratio, data) => {\n\t\t\t\t\tdata.css.render(ratio, data.css);\n\t\t\t\t\tif (!ratio || ratio === 1) {\n\t\t\t\t\t\tlet inline = data.rmv,\n\t\t\t\t\t\t\ttarget = data.t,\n\t\t\t\t\t\t\tp;\n\t\t\t\t\t\ttarget.setAttribute(\"class\", ratio ? data.e : data.b);\n\t\t\t\t\t\tfor (p in inline) {\n\t\t\t\t\t\t\t_removeProperty(target, p);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t_getAllStyles = (target) => {\n\t\t\t\t\tlet styles = {},\n\t\t\t\t\t\tcomputed = getComputedStyle(target),\n\t\t\t\t\t\tp;\n\t\t\t\t\tfor (p in computed) {\n\t\t\t\t\t\tif (isNaN(p) && p !== \"cssText\" && p !== \"length\") {\n\t\t\t\t\t\t\tstyles[p] = computed[p];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t_setDefaults(styles, _parseTransform(target, 1));\n\t\t\t\t\treturn styles;\n\t\t\t\t},\n\t\t\t\tstartClassList = target.getAttribute(\"class\"),\n\t\t\t\tstyle = target.style,\n\t\t\t\tcssText = style.cssText,\n\t\t\t\tcache = target._gsap,\n\t\t\t\tclassPT = cache.classPT,\n\t\t\t\tinlineToRemoveAtEnd = {},\n\t\t\t\tdata = {t:target, plugin:plugin, rmv:inlineToRemoveAtEnd, b:startClassList, e:(endValue.charAt(1) !== \"=\") ? endValue : startClassList.replace(new RegExp(\"(?:\\\\s|^)\" + endValue.substr(2) + \"(?![\\\\w-])\"), \"\") + ((endValue.charAt(0) === \"+\") ? \" \" + endValue.substr(2) : \"\")},\n\t\t\t\tchangingVars = {},\n\t\t\t\tstartVars = _getAllStyles(target),\n\t\t\t\ttransformRelated = /(transform|perspective)/i,\n\t\t\t\tendVars, p;\n\t\t\tif (classPT) {\n\t\t\t\tclassPT.r(1, classPT.d);\n\t\t\t\t_removeLinkedListItem(classPT.d.plugin, classPT, \"_pt\");\n\t\t\t}\n\t\t\ttarget.setAttribute(\"class\", data.e);\n\t\t\tendVars = _getAllStyles(target, true);\n\t\t\ttarget.setAttribute(\"class\", startClassList);\n\t\t\tfor (p in endVars) {\n\t\t\t\tif (endVars[p] !== startVars[p] && !transformRelated.test(p)) {\n\t\t\t\t\tchangingVars[p] = endVars[p];\n\t\t\t\t\tif (!style[p] && style[p] !== \"0\") {\n\t\t\t\t\t\tinlineToRemoveAtEnd[p] = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tcache.classPT = plugin._pt = new PropTween(plugin._pt, target, \"className\", 0, 0, _renderClassName, data, 0, -11);\n\t\t\tif (style.cssText !== cssText) { //only apply if things change. Otherwise, in cases like a background-image that's pulled dynamically, it could cause a refresh. See https://greensock.com/forums/topic/20368-possible-gsap-bug-switching-classnames-in-chrome/.\n\t\t\t\tstyle.cssText = cssText; //we recorded cssText before we swapped classes and ran _getAllStyles() because in cases when a className tween is overwritten, we remove all the related tweening properties from that class change (otherwise class-specific stuff can't override properties we've directly set on the target's style object due to specificity).\n\t\t\t}\n\t\t\t_parseTransform(target, true); //to clear the caching of transforms\n\t\t\tdata.css = new gsap.plugins.css();\n\t\t\tdata.css.init(target, changingVars, tween);\n\t\t\tplugin._props.push(...data.css._props);\n\t\t\treturn 1;\n\t\t}\n\t\t*/\n\t},\n\n\n\n\n\n\t/*\n\t * --------------------------------------------------------------------------------------\n\t * TRANSFORMS\n\t * --------------------------------------------------------------------------------------\n\t */\n\t_identity2DMatrix = [1,0,0,1,0,0],\n\t_rotationalProperties = {},\n\t_isNullTransform = value => (value === \"matrix(1, 0, 0, 1, 0, 0)\" || value === \"none\" || !value),\n\t_getComputedTransformMatrixAsArray = target => {\n\t\tlet matrixString = _getComputedProperty(target, _transformProp);\n\t\treturn _isNullTransform(matrixString) ? _identity2DMatrix : matrixString.substr(7).match(_numExp).map(_round);\n\t},\n\t_getMatrix = (target, force2D) => {\n\t\tlet cache = target._gsap || _getCache(target),\n\t\t\tstyle = target.style,\n\t\t\tmatrix = _getComputedTransformMatrixAsArray(target),\n\t\t\tparent, nextSibling, temp, addedToDOM;\n\t\tif (cache.svg && target.getAttribute(\"transform\")) {\n\t\t\ttemp = target.transform.baseVal.consolidate().matrix; //ensures that even complex values like \"translate(50,60) rotate(135,0,0)\" are parsed because it mashes it into a matrix.\n\t\t\tmatrix = [temp.a, temp.b, temp.c, temp.d, temp.e, temp.f];\n\t\t\treturn (matrix.join(\",\") === \"1,0,0,1,0,0\") ? _identity2DMatrix : matrix;\n\t\t} else if (matrix === _identity2DMatrix && !target.offsetParent && target !== _docElement && !cache.svg) { //note: if offsetParent is null, that means the element isn't in the normal document flow, like if it has display:none or one of its ancestors has display:none). Firefox returns null for getComputedStyle() if the element is in an iframe that has display:none. https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n\t\t\t//browsers don't report transforms accurately unless the element is in the DOM and has a display value that's not \"none\". Firefox and Microsoft browsers have a partial bug where they'll report transforms even if display:none BUT not any percentage-based values like translate(-50%, 8px) will be reported as if it's translate(0, 8px).\n\t\t\ttemp = style.display;\n\t\t\tstyle.display = \"block\";\n\t\t\tparent = target.parentNode;\n\t\t\tif (!parent || !target.offsetParent) { // note: in 3.3.0 we switched target.offsetParent to _doc.body.contains(target) to avoid [sometimes unnecessary] MutationObserver calls but that wasn't adequate because there are edge cases where nested position: fixed elements need to get reparented to accurately sense transforms. See https://github.com/greensock/GSAP/issues/388 and https://github.com/greensock/GSAP/issues/375\n\t\t\t\taddedToDOM = 1; //flag\n\t\t\t\tnextSibling = target.nextElementSibling;\n\t\t\t\t_docElement.appendChild(target); //we must add it to the DOM in order to get values properly\n\t\t\t}\n\t\t\tmatrix = _getComputedTransformMatrixAsArray(target);\n\t\t\ttemp ? (style.display = temp) : _removeProperty(target, \"display\");\n\t\t\tif (addedToDOM) {\n\t\t\t\tnextSibling ? parent.insertBefore(target, nextSibling) : parent ? parent.appendChild(target) : _docElement.removeChild(target);\n\t\t\t}\n\t\t}\n\t\treturn (force2D && matrix.length > 6) ? [matrix[0], matrix[1], matrix[4], matrix[5], matrix[12], matrix[13]] : matrix;\n\t},\n\t_applySVGOrigin = (target, origin, originIsAbsolute, smooth, matrixArray, pluginToAddPropTweensTo) => {\n\t\tlet cache = target._gsap,\n\t\t\tmatrix = matrixArray || _getMatrix(target, true),\n\t\t\txOriginOld = cache.xOrigin || 0,\n\t\t\tyOriginOld = cache.yOrigin || 0,\n\t\t\txOffsetOld = cache.xOffset || 0,\n\t\t\tyOffsetOld = cache.yOffset || 0,\n\t\t\ta = matrix[0],\n\t\t\tb = matrix[1],\n\t\t\tc = matrix[2],\n\t\t\td = matrix[3],\n\t\t\ttx = matrix[4],\n\t\t\tty = matrix[5],\n\t\t\toriginSplit = origin.split(\" \"),\n\t\t\txOrigin = parseFloat(originSplit[0]) || 0,\n\t\t\tyOrigin = parseFloat(originSplit[1]) || 0,\n\t\t\tbounds, determinant, x, y;\n\t\tif (!originIsAbsolute) {\n\t\t\tbounds = _getBBox(target);\n\t\t\txOrigin = bounds.x + (~originSplit[0].indexOf(\"%\") ? xOrigin / 100 * bounds.width : xOrigin);\n\t\t\tyOrigin = bounds.y + (~((originSplit[1] || originSplit[0]).indexOf(\"%\")) ? yOrigin / 100 * bounds.height : yOrigin);\n\t\t} else if (matrix !== _identity2DMatrix && (determinant = (a * d - b * c))) { //if it's zero (like if scaleX and scaleY are zero), skip it to avoid errors with dividing by zero.\n\t\t\tx = xOrigin * (d / determinant) + yOrigin * (-c / determinant) + ((c * ty - d * tx) / determinant);\n\t\t\ty = xOrigin * (-b / determinant) + yOrigin * (a / determinant) - ((a * ty - b * tx) / determinant);\n\t\t\txOrigin = x;\n\t\t\tyOrigin = y;\n\t\t}\n\t\tif (smooth || (smooth !== false && cache.smooth)) {\n\t\t\ttx = xOrigin - xOriginOld;\n\t\t\tty = yOrigin - yOriginOld;\n\t\t\tcache.xOffset = xOffsetOld + (tx * a + ty * c) - tx;\n\t\t\tcache.yOffset = yOffsetOld + (tx * b + ty * d) - ty;\n\t\t} else {\n\t\t\tcache.xOffset = cache.yOffset = 0;\n\t\t}\n\t\tcache.xOrigin = xOrigin;\n\t\tcache.yOrigin = yOrigin;\n\t\tcache.smooth = !!smooth;\n\t\tcache.origin = origin;\n\t\tcache.originIsAbsolute = !!originIsAbsolute;\n\t\ttarget.style[_transformOriginProp] = \"0px 0px\"; //otherwise, if someone sets an origin via CSS, it will likely interfere with the SVG transform attribute ones (because remember, we're baking the origin into the matrix() value).\n\t\tif (pluginToAddPropTweensTo) {\n\t\t\t_addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOrigin\", xOriginOld, xOrigin);\n\t\t\t_addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOrigin\", yOriginOld, yOrigin);\n\t\t\t_addNonTweeningPT(pluginToAddPropTweensTo, cache, \"xOffset\", xOffsetOld, cache.xOffset);\n\t\t\t_addNonTweeningPT(pluginToAddPropTweensTo, cache, \"yOffset\", yOffsetOld, cache.yOffset);\n\t\t}\n\t\ttarget.setAttribute(\"data-svg-origin\", xOrigin + \" \" + yOrigin);\n\t},\n\t_parseTransform = (target, uncache) => {\n\t\tlet cache = target._gsap || new GSCache(target);\n\t\tif (\"x\" in cache && !uncache && !cache.uncache) {\n\t\t\treturn cache;\n\t\t}\n\t\tlet style = target.style,\n\t\t\tinvertedScaleX = cache.scaleX < 0,\n\t\t\tpx = \"px\",\n\t\t\tdeg = \"deg\",\n\t\t\tcs = getComputedStyle(target),\n\t\t\torigin = _getComputedProperty(target, _transformOriginProp) || \"0\",\n\t\t\tx, y, z, scaleX, scaleY, rotation, rotationX, rotationY, skewX, skewY, perspective, xOrigin, yOrigin,\n\t\t\tmatrix, angle, cos, sin, a, b, c, d, a12, a22, t1, t2, t3, a13, a23, a33, a42, a43, a32;\n\t\tx = y = z = rotation = rotationX = rotationY = skewX = skewY = perspective = 0;\n\t\tscaleX = scaleY = 1;\n\t\tcache.svg = !!(target.getCTM && _isSVG(target));\n\n\t\tif (cs.translate) { // accommodate independent transforms by combining them into normal ones.\n\t\t\tif (cs.translate !== \"none\" || cs.scale !== \"none\" || cs.rotate !== \"none\") {\n\t\t\t\tstyle[_transformProp] = (cs.translate !== \"none\" ? \"translate3d(\" + (cs.translate + \" 0 0\").split(\" \").slice(0, 3).join(\", \") + \") \" : \"\") + (cs.rotate !== \"none\" ? \"rotate(\" + cs.rotate + \") \" : \"\") + (cs.scale !== \"none\" ? \"scale(\" + cs.scale.split(\" \").join(\",\") + \") \" : \"\") + (cs[_transformProp] !== \"none\" ? cs[_transformProp] : \"\");\n\t\t\t}\n\t\t\tstyle.scale = style.rotate = style.translate = \"none\";\n\t\t}\n\n\t\tmatrix = _getMatrix(target, cache.svg);\n\t\tif (cache.svg) {\n\t\t\tif (cache.uncache) { // if cache.uncache is true (and maybe if origin is 0,0), we need to set element.style.transformOrigin = (cache.xOrigin - bbox.x) + \"px \" + (cache.yOrigin - bbox.y) + \"px\". Previously we let the data-svg-origin stay instead, but when introducing revert(), it complicated things.\n\t\t\t\tt2 = target.getBBox();\n\t\t\t\torigin = (cache.xOrigin - t2.x) + \"px \" + (cache.yOrigin - t2.y) + \"px\";\n\t\t\t\tt1 = \"\";\n\t\t\t} else {\n\t\t\t\tt1 = !uncache && target.getAttribute(\"data-svg-origin\"); // Remember, to work around browser inconsistencies we always force SVG elements' transformOrigin to 0,0 and offset the translation accordingly.\n\t\t\t}\n\t\t\t_applySVGOrigin(target, t1 || origin, !!t1 || cache.originIsAbsolute, cache.smooth !== false, matrix);\n\t\t}\n\t\txOrigin = cache.xOrigin || 0;\n\t\tyOrigin = cache.yOrigin || 0;\n\t\tif (matrix !== _identity2DMatrix) {\n\t\t\ta = matrix[0]; //a11\n\t\t\tb = matrix[1]; //a21\n\t\t\tc = matrix[2]; //a31\n\t\t\td = matrix[3]; //a41\n\t\t\tx = a12 = matrix[4];\n\t\t\ty = a22 = matrix[5];\n\n\t\t\t//2D matrix\n\t\t\tif (matrix.length === 6) {\n\t\t\t\tscaleX = Math.sqrt(a * a + b * b);\n\t\t\t\tscaleY = Math.sqrt(d * d + c * c);\n\t\t\t\trotation = (a || b) ? _atan2(b, a) * _RAD2DEG : 0; //note: if scaleX is 0, we cannot accurately measure rotation. Same for skewX with a scaleY of 0. Therefore, we default to the previously recorded value (or zero if that doesn't exist).\n\t\t\t\tskewX = (c || d) ? _atan2(c, d) * _RAD2DEG + rotation : 0;\n\t\t\t\tskewX && (scaleY *= Math.abs(Math.cos(skewX * _DEG2RAD)));\n\t\t\t\tif (cache.svg) {\n\t\t\t\t\tx -= xOrigin - (xOrigin * a + yOrigin * c);\n\t\t\t\t\ty -= yOrigin - (xOrigin * b + yOrigin * d);\n\t\t\t\t}\n\n\t\t\t//3D matrix\n\t\t\t} else {\n\t\t\t\ta32 = matrix[6];\n\t\t\t\ta42 = matrix[7];\n\t\t\t\ta13 = matrix[8];\n\t\t\t\ta23 = matrix[9];\n\t\t\t\ta33 = matrix[10];\n\t\t\t\ta43 = matrix[11];\n\t\t\t\tx = matrix[12];\n\t\t\t\ty = matrix[13];\n\t\t\t\tz = matrix[14];\n\n\t\t\t\tangle = _atan2(a32, a33);\n\t\t\t\trotationX = angle * _RAD2DEG;\n\t\t\t\t//rotationX\n\t\t\t\tif (angle) {\n\t\t\t\t\tcos = Math.cos(-angle);\n\t\t\t\t\tsin = Math.sin(-angle);\n\t\t\t\t\tt1 = a12*cos+a13*sin;\n\t\t\t\t\tt2 = a22*cos+a23*sin;\n\t\t\t\t\tt3 = a32*cos+a33*sin;\n\t\t\t\t\ta13 = a12*-sin+a13*cos;\n\t\t\t\t\ta23 = a22*-sin+a23*cos;\n\t\t\t\t\ta33 = a32*-sin+a33*cos;\n\t\t\t\t\ta43 = a42*-sin+a43*cos;\n\t\t\t\t\ta12 = t1;\n\t\t\t\t\ta22 = t2;\n\t\t\t\t\ta32 = t3;\n\t\t\t\t}\n\t\t\t\t//rotationY\n\t\t\t\tangle = _atan2(-c, a33);\n\t\t\t\trotationY = angle * _RAD2DEG;\n\t\t\t\tif (angle) {\n\t\t\t\t\tcos = Math.cos(-angle);\n\t\t\t\t\tsin = Math.sin(-angle);\n\t\t\t\t\tt1 = a*cos-a13*sin;\n\t\t\t\t\tt2 = b*cos-a23*sin;\n\t\t\t\t\tt3 = c*cos-a33*sin;\n\t\t\t\t\ta43 = d*sin+a43*cos;\n\t\t\t\t\ta = t1;\n\t\t\t\t\tb = t2;\n\t\t\t\t\tc = t3;\n\t\t\t\t}\n\t\t\t\t//rotationZ\n\t\t\t\tangle = _atan2(b, a);\n\t\t\t\trotation = angle * _RAD2DEG;\n\t\t\t\tif (angle) {\n\t\t\t\t\tcos = Math.cos(angle);\n\t\t\t\t\tsin = Math.sin(angle);\n\t\t\t\t\tt1 = a*cos+b*sin;\n\t\t\t\t\tt2 = a12*cos+a22*sin;\n\t\t\t\t\tb = b*cos-a*sin;\n\t\t\t\t\ta22 = a22*cos-a12*sin;\n\t\t\t\t\ta = t1;\n\t\t\t\t\ta12 = t2;\n\t\t\t\t}\n\n\t\t\t\tif (rotationX && Math.abs(rotationX) + Math.abs(rotation) > 359.9) { //when rotationY is set, it will often be parsed as 180 degrees different than it should be, and rotationX and rotation both being 180 (it looks the same), so we adjust for that here.\n\t\t\t\t\trotationX = rotation = 0;\n\t\t\t\t\trotationY = 180 - rotationY;\n\t\t\t\t}\n\t\t\t\tscaleX = _round(Math.sqrt(a * a + b * b + c * c));\n\t\t\t\tscaleY = _round(Math.sqrt(a22 * a22 + a32 * a32));\n\t\t\t\tangle = _atan2(a12, a22);\n\t\t\t\tskewX = (Math.abs(angle) > 0.0002) ? angle * _RAD2DEG : 0;\n\t\t\t\tperspective = a43 ? 1 / ((a43 < 0) ? -a43 : a43) : 0;\n\t\t\t}\n\n\t\t\tif (cache.svg) { //sense if there are CSS transforms applied on an SVG element in which case we must overwrite them when rendering. The transform attribute is more reliable cross-browser, but we can't just remove the CSS ones because they may be applied in a CSS rule somewhere (not just inline).\n\t\t\t\tt1 = target.getAttribute(\"transform\");\n\t\t\t\tcache.forceCSS = target.setAttribute(\"transform\", \"\") || (!_isNullTransform(_getComputedProperty(target, _transformProp)));\n\t\t\t\tt1 && target.setAttribute(\"transform\", t1);\n\t\t\t}\n\t\t}\n\n\t\tif (Math.abs(skewX) > 90 && Math.abs(skewX) < 270) {\n\t\t\tif (invertedScaleX) {\n\t\t\t\tscaleX *= -1;\n\t\t\t\tskewX += (rotation <= 0) ? 180 : -180;\n\t\t\t\trotation += (rotation <= 0) ? 180 : -180;\n\t\t\t} else {\n\t\t\t\tscaleY *= -1;\n\t\t\t\tskewX += (skewX <= 0) ? 180 : -180;\n\t\t\t}\n\t\t}\n\t\tuncache = uncache || cache.uncache;\n\t\tcache.x = x - ((cache.xPercent = x && ((!uncache && cache.xPercent) || (Math.round(target.offsetWidth / 2) === Math.round(-x) ? -50 : 0))) ? target.offsetWidth * cache.xPercent / 100 : 0) + px;\n\t\tcache.y = y - ((cache.yPercent = y && ((!uncache && cache.yPercent) || (Math.round(target.offsetHeight / 2) === Math.round(-y) ? -50 : 0))) ? target.offsetHeight * cache.yPercent / 100 : 0) + px;\n\t\tcache.z = z + px;\n\t\tcache.scaleX = _round(scaleX);\n\t\tcache.scaleY = _round(scaleY);\n\t\tcache.rotation = _round(rotation) + deg;\n\t\tcache.rotationX = _round(rotationX) + deg;\n\t\tcache.rotationY = _round(rotationY) + deg;\n\t\tcache.skewX = skewX + deg;\n\t\tcache.skewY = skewY + deg;\n\t\tcache.transformPerspective = perspective + px;\n\t\tif ((cache.zOrigin = parseFloat(origin.split(\" \")[2]) || 0)) {\n\t\t\tstyle[_transformOriginProp] = _firstTwoOnly(origin);\n\t\t}\n\t\tcache.xOffset = cache.yOffset = 0;\n\t\tcache.force3D = _config.force3D;\n\t\tcache.renderTransform = cache.svg ? _renderSVGTransforms : _supports3D ? _renderCSSTransforms : _renderNon3DTransforms;\n\t\tcache.uncache = 0;\n\t\treturn cache;\n\t},\n\t_firstTwoOnly = value => (value = value.split(\" \"))[0] + \" \" + value[1], //for handling transformOrigin values, stripping out the 3rd dimension\n\t_addPxTranslate = (target, start, value) => {\n\t\tlet unit = getUnit(start);\n\t\treturn _round(parseFloat(start) + parseFloat(_convertToUnit(target, \"x\", value + \"px\", unit))) + unit;\n\t},\n\t_renderNon3DTransforms = (ratio, cache) => {\n\t\tcache.z = \"0px\";\n\t\tcache.rotationY = cache.rotationX = \"0deg\";\n\t\tcache.force3D = 0;\n\t\t_renderCSSTransforms(ratio, cache);\n\t},\n\t_zeroDeg = \"0deg\",\n\t_zeroPx = \"0px\",\n\t_endParenthesis = \") \",\n\t_renderCSSTransforms = function(ratio, cache) {\n\t\tlet {xPercent, yPercent, x, y, z, rotation, rotationY, rotationX, skewX, skewY, scaleX, scaleY, transformPerspective, force3D, target, zOrigin} = cache || this,\n\t\t\ttransforms = \"\",\n\t\t\tuse3D = (force3D === \"auto\" && ratio && ratio !== 1) || force3D === true;\n\n\t\t// Safari has a bug that causes it not to render 3D transform-origin values properly, so we force the z origin to 0, record it in the cache, and then do the math here to offset the translate values accordingly (basically do the 3D transform-origin part manually)\n\t\tif (zOrigin && (rotationX !== _zeroDeg || rotationY !== _zeroDeg)) {\n\t\t\tlet angle = parseFloat(rotationY) * _DEG2RAD,\n\t\t\t\ta13 = Math.sin(angle),\n\t\t\t\ta33 = Math.cos(angle),\n\t\t\t\tcos;\n\t\t\tangle = parseFloat(rotationX) * _DEG2RAD;\n\t\t\tcos = Math.cos(angle);\n\t\t\tx = _addPxTranslate(target, x, a13 * cos * -zOrigin);\n\t\t\ty = _addPxTranslate(target, y, -Math.sin(angle) * -zOrigin);\n\t\t\tz = _addPxTranslate(target, z, a33 * cos * -zOrigin + zOrigin);\n\t\t}\n\n\t\tif (transformPerspective !== _zeroPx) {\n\t\t\ttransforms += \"perspective(\" + transformPerspective + _endParenthesis;\n\t\t}\n\t\tif (xPercent || yPercent) {\n\t\t\ttransforms += \"translate(\" + xPercent + \"%, \" + yPercent + \"%) \";\n\t\t}\n\t\tif (use3D || x !== _zeroPx || y !== _zeroPx || z !== _zeroPx) {\n\t\t\ttransforms += (z !== _zeroPx || use3D) ? \"translate3d(\" + x + \", \" + y + \", \" + z + \") \" : \"translate(\" + x + \", \" + y + _endParenthesis;\n\t\t}\n\t\tif (rotation !== _zeroDeg) {\n\t\t\ttransforms += \"rotate(\" + rotation + _endParenthesis;\n\t\t}\n\t\tif (rotationY !== _zeroDeg) {\n\t\t\ttransforms += \"rotateY(\" + rotationY + _endParenthesis;\n\t\t}\n\t\tif (rotationX !== _zeroDeg) {\n\t\t\ttransforms += \"rotateX(\" + rotationX + _endParenthesis;\n\t\t}\n\t\tif (skewX !== _zeroDeg || skewY !== _zeroDeg) {\n\t\t\ttransforms += \"skew(\" + skewX + \", \" + skewY + _endParenthesis;\n\t\t}\n\t\tif (scaleX !== 1 || scaleY !== 1) {\n\t\t\ttransforms += \"scale(\" + scaleX + \", \" + scaleY + _endParenthesis;\n\t\t}\n\t\ttarget.style[_transformProp] = transforms || \"translate(0, 0)\";\n\t},\n\t_renderSVGTransforms = function(ratio, cache) {\n\t\tlet {xPercent, yPercent, x, y, rotation, skewX, skewY, scaleX, scaleY, target, xOrigin, yOrigin, xOffset, yOffset, forceCSS} = cache || this,\n\t\t\ttx = parseFloat(x),\n\t\t\tty = parseFloat(y),\n\t\t\ta11, a21, a12, a22, temp;\n\t\trotation = parseFloat(rotation);\n\t\tskewX = parseFloat(skewX);\n\t\tskewY = parseFloat(skewY);\n\t\tif (skewY) { //for performance reasons, we combine all skewing into the skewX and rotation values. Remember, a skewY of 10 degrees looks the same as a rotation of 10 degrees plus a skewX of 10 degrees.\n\t\t\tskewY = parseFloat(skewY);\n\t\t\tskewX += skewY;\n\t\t\trotation += skewY;\n\t\t}\n\t\tif (rotation || skewX) {\n\t\t\trotation *= _DEG2RAD;\n\t\t\tskewX *= _DEG2RAD;\n\t\t\ta11 = Math.cos(rotation) * scaleX;\n\t\t\ta21 = Math.sin(rotation) * scaleX;\n\t\t\ta12 = Math.sin(rotation - skewX) * -scaleY;\n\t\t\ta22 = Math.cos(rotation - skewX) * scaleY;\n\t\t\tif (skewX) {\n\t\t\t\tskewY *= _DEG2RAD;\n\t\t\t\ttemp = Math.tan(skewX - skewY);\n\t\t\t\ttemp = Math.sqrt(1 + temp * temp);\n\t\t\t\ta12 *= temp;\n\t\t\t\ta22 *= temp;\n\t\t\t\tif (skewY) {\n\t\t\t\t\ttemp = Math.tan(skewY);\n\t\t\t\t\ttemp = Math.sqrt(1 + temp * temp);\n\t\t\t\t\ta11 *= temp;\n\t\t\t\t\ta21 *= temp;\n\t\t\t\t}\n\t\t\t}\n\t\t\ta11 = _round(a11);\n\t\t\ta21 = _round(a21);\n\t\t\ta12 = _round(a12);\n\t\t\ta22 = _round(a22);\n\t\t} else {\n\t\t\ta11 = scaleX;\n\t\t\ta22 = scaleY;\n\t\t\ta21 = a12 = 0;\n\t\t}\n\t\tif ((tx && !~(x + \"\").indexOf(\"px\")) || (ty && !~(y + \"\").indexOf(\"px\"))) {\n\t\t\ttx = _convertToUnit(target, \"x\", x, \"px\");\n\t\t\tty = _convertToUnit(target, \"y\", y, \"px\");\n\t\t}\n\t\tif (xOrigin || yOrigin || xOffset || yOffset) {\n\t\t\ttx = _round(tx + xOrigin - (xOrigin * a11 + yOrigin * a12) + xOffset);\n\t\t\tty = _round(ty + yOrigin - (xOrigin * a21 + yOrigin * a22) + yOffset);\n\t\t}\n\t\tif (xPercent || yPercent) {\n\t\t\t//The SVG spec doesn't support percentage-based translation in the \"transform\" attribute, so we merge it into the translation to simulate it.\n\t\t\ttemp = target.getBBox();\n\t\t\ttx = _round(tx + xPercent / 100 * temp.width);\n\t\t\tty = _round(ty + yPercent / 100 * temp.height);\n\t\t}\n\t\ttemp = \"matrix(\" + a11 + \",\" + a21 + \",\" + a12 + \",\" + a22 + \",\" + tx + \",\" + ty + \")\";\n\t\ttarget.setAttribute(\"transform\", temp);\n\t\tforceCSS && (target.style[_transformProp] = temp); //some browsers prioritize CSS transforms over the transform attribute. When we sense that the user has CSS transforms applied, we must overwrite them this way (otherwise some browser simply won't render the transform attribute changes!)\n\t},\n\t_addRotationalPropTween = function(plugin, target, property, startNum, endValue) {\n\t\tlet cap = 360,\n\t\t\tisString = _isString(endValue),\n\t\t\tendNum = parseFloat(endValue) * ((isString && ~endValue.indexOf(\"rad\")) ? _RAD2DEG : 1),\n\t\t\tchange = endNum - startNum,\n\t\t\tfinalValue = (startNum + change) + \"deg\",\n\t\t\tdirection, pt;\n\t\tif (isString) {\n\t\t\tdirection = endValue.split(\"_\")[1];\n\t\t\tif (direction === \"short\") {\n\t\t\t\tchange %= cap;\n\t\t\t\tif (change !== change % (cap / 2)) {\n\t\t\t\t\tchange += (change < 0) ? cap : -cap;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (direction === \"cw\" && change < 0) {\n\t\t\t\tchange = ((change + cap * _bigNum) % cap) - ~~(change / cap) * cap;\n\t\t\t} else if (direction === \"ccw\" && change > 0) {\n\t\t\t\tchange = ((change - cap * _bigNum) % cap) - ~~(change / cap) * cap;\n\t\t\t}\n\t\t}\n\t\tplugin._pt = pt = new PropTween(plugin._pt, target, property, startNum, change, _renderPropWithEnd);\n\t\tpt.e = finalValue;\n\t\tpt.u = \"deg\";\n\t\tplugin._props.push(property);\n\t\treturn pt;\n\t},\n\t_assign = (target, source) => { // Internet Explorer doesn't have Object.assign(), so we recreate it here.\n\t\tfor (let p in source) {\n\t\t\ttarget[p] = source[p];\n\t\t}\n\t\treturn target;\n\t},\n\t_addRawTransformPTs = (plugin, transforms, target) => { //for handling cases where someone passes in a whole transform string, like transform: \"scale(2, 3) rotate(20deg) translateY(30em)\"\n\t\tlet startCache = _assign({}, target._gsap),\n\t\t\texclude = \"perspective,force3D,transformOrigin,svgOrigin\",\n\t\t\tstyle = target.style,\n\t\t\tendCache, p, startValue, endValue, startNum, endNum, startUnit, endUnit;\n\t\tif (startCache.svg) {\n\t\t\tstartValue = target.getAttribute(\"transform\");\n\t\t\ttarget.setAttribute(\"transform\", \"\");\n\t\t\tstyle[_transformProp] = transforms;\n\t\t\tendCache = _parseTransform(target, 1);\n\t\t\t_removeProperty(target, _transformProp);\n\t\t\ttarget.setAttribute(\"transform\", startValue);\n\t\t} else {\n\t\t\tstartValue = getComputedStyle(target)[_transformProp];\n\t\t\tstyle[_transformProp] = transforms;\n\t\t\tendCache = _parseTransform(target, 1);\n\t\t\tstyle[_transformProp] = startValue;\n\t\t}\n\t\tfor (p in _transformProps) {\n\t\t\tstartValue = startCache[p];\n\t\t\tendValue = endCache[p];\n\t\t\tif (startValue !== endValue && exclude.indexOf(p) < 0) { //tweening to no perspective gives very unintuitive results - just keep the same perspective in that case.\n\t\t\t\tstartUnit = getUnit(startValue);\n\t\t\t\tendUnit = getUnit(endValue);\n\t\t\t\tstartNum = (startUnit !== endUnit) ? _convertToUnit(target, p, startValue, endUnit) : parseFloat(startValue);\n\t\t\t\tendNum = parseFloat(endValue);\n\t\t\t\tplugin._pt = new PropTween(plugin._pt, endCache, p, startNum, endNum - startNum, _renderCSSProp);\n\t\t\t\tplugin._pt.u = endUnit || 0;\n\t\t\t\tplugin._props.push(p);\n\t\t\t}\n\t\t}\n\t\t_assign(endCache, startCache);\n\t};\n\n// handle splitting apart padding, margin, borderWidth, and borderRadius into their 4 components. Firefox, for example, won't report borderRadius correctly - it will only do borderTopLeftRadius and the other corners. We also want to handle paddingTop, marginLeft, borderRightWidth, etc.\n_forEachName(\"padding,margin,Width,Radius\", (name, index) => {\n\tlet t = \"Top\",\n\t\tr = \"Right\",\n\t\tb = \"Bottom\",\n\t\tl = \"Left\",\n\t\tprops = (index < 3 ? [t,r,b,l] : [t+l, t+r, b+r, b+l]).map(side => index < 2 ? name + side : \"border\" + side + name);\n\t_specialProps[(index > 1 ? \"border\" + name : name)] = function(plugin, target, property, endValue, tween) {\n\t\tlet a, vars;\n\t\tif (arguments.length < 4) { // getter, passed target, property, and unit (from _get())\n\t\t\ta = props.map(prop => _get(plugin, prop, property));\n\t\t\tvars = a.join(\" \");\n\t\t\treturn vars.split(a[0]).length === 5 ? a[0] : vars;\n\t\t}\n\t\ta = (endValue + \"\").split(\" \");\n\t\tvars = {};\n\t\tprops.forEach((prop, i) => vars[prop] = a[i] = a[i] || a[(((i - 1) / 2) | 0)]);\n\t\tplugin.init(target, vars, tween);\n\t}\n});\n\n\nexport const CSSPlugin = {\n\tname: \"css\",\n\tregister: _initCore,\n\ttargetTest(target) {\n\t\treturn target.style && target.nodeType;\n\t},\n\tinit(target, vars, tween, index, targets) {\n\t\tlet props = this._props,\n\t\t\tstyle = target.style,\n\t\t\tstartAt = tween.vars.startAt,\n\t\t\tstartValue, endValue, endNum, startNum, type, specialProp, p, startUnit, endUnit, relative, isTransformRelated, transformPropTween, cache, smooth, hasPriority, inlineProps;\n\t\t_pluginInitted || _initCore();\n\t\t// we may call init() multiple times on the same plugin instance, like when adding special properties, so make sure we don't overwrite the revert data or inlineProps\n\t\tthis.styles = this.styles || _getStyleSaver(target);\n\t\tinlineProps = this.styles.props;\n\t\tthis.tween = tween;\n\t\tfor (p in vars) {\n\t\t\tif (p === \"autoRound\") {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tendValue = vars[p];\n\t\t\tif (_plugins[p] && _checkPlugin(p, vars, tween, index, target, targets)) { // plugins\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\ttype = typeof(endValue);\n\t\t\tspecialProp = _specialProps[p];\n\t\t\tif (type === \"function\") {\n\t\t\t\tendValue = endValue.call(tween, index, target, targets);\n\t\t\t\ttype = typeof(endValue);\n\t\t\t}\n\t\t\tif (type === \"string\" && ~endValue.indexOf(\"random(\")) {\n\t\t\t\tendValue = _replaceRandom(endValue);\n\t\t\t}\n\t\t\tif (specialProp) {\n\t\t\t\tspecialProp(this, target, p, endValue, tween) && (hasPriority = 1);\n\t\t\t} else if (p.substr(0,2) === \"--\") { //CSS variable\n\t\t\t\tstartValue = (getComputedStyle(target).getPropertyValue(p) + \"\").trim();\n\t\t\t\tendValue += \"\";\n\t\t\t\t_colorExp.lastIndex = 0;\n\t\t\t\tif (!_colorExp.test(startValue)) { // colors don't have units\n\t\t\t\t\tstartUnit = getUnit(startValue);\n\t\t\t\t\tendUnit = getUnit(endValue);\n\t\t\t\t}\n\t\t\t\tendUnit ? startUnit !== endUnit && (startValue = _convertToUnit(target, p, startValue, endUnit) + endUnit) : startUnit && (endValue += startUnit);\n\t\t\t\tthis.add(style, \"setProperty\", startValue, endValue, index, targets, 0, 0, p);\n\t\t\t\tprops.push(p);\n\t\t\t\tinlineProps.push(p, 0, style[p]);\n\t\t\t} else if (type !== \"undefined\") {\n\t\t\t\tif (startAt && p in startAt) { // in case someone hard-codes a complex value as the start, like top: \"calc(2vh / 2)\". Without this, it'd use the computed value (always in px)\n\t\t\t\t\tstartValue = typeof(startAt[p]) === \"function\" ? startAt[p].call(tween, index, target, targets) : startAt[p];\n\t\t\t\t\t_isString(startValue) && ~startValue.indexOf(\"random(\") && (startValue = _replaceRandom(startValue));\n\t\t\t\t\tgetUnit(startValue + \"\") || (startValue += _config.units[p] || getUnit(_get(target, p)) || \"\"); // for cases when someone passes in a unitless value like {x: 100}; if we try setting translate(100, 0px) it won't work.\n\t\t\t\t\t(startValue + \"\").charAt(1) === \"=\" && (startValue = _get(target, p)); // can't work with relative values\n\t\t\t\t} else {\n\t\t\t\t\tstartValue = _get(target, p);\n\t\t\t\t}\n\t\t\t\tstartNum = parseFloat(startValue);\n\t\t\t\trelative = (type === \"string\" && endValue.charAt(1) === \"=\") && endValue.substr(0, 2);\n\t\t\t\trelative && (endValue = endValue.substr(2));\n\t\t\t\tendNum = parseFloat(endValue);\n\t\t\t\tif (p in _propertyAliases) {\n\t\t\t\t\tif (p === \"autoAlpha\") { //special case where we control the visibility along with opacity. We still allow the opacity value to pass through and get tweened.\n\t\t\t\t\t\tif (startNum === 1 && _get(target, \"visibility\") === \"hidden\" && endNum) { //if visibility is initially set to \"hidden\", we should interpret that as intent to make opacity 0 (a convenience)\n\t\t\t\t\t\t\tstartNum = 0;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tinlineProps.push(\"visibility\", 0, style.visibility);\n\t\t\t\t\t\t_addNonTweeningPT(this, style, \"visibility\", startNum ? \"inherit\" : \"hidden\", endNum ? \"inherit\" : \"hidden\", !endNum);\n\t\t\t\t\t}\n\t\t\t\t\tif (p !== \"scale\" && p !== \"transform\") {\n\t\t\t\t\t\tp = _propertyAliases[p];\n\t\t\t\t\t\t~p.indexOf(\",\") && (p = p.split(\",\")[0]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tisTransformRelated = (p in _transformProps);\n\n\t\t\t\t//--- TRANSFORM-RELATED ---\n\t\t\t\tif (isTransformRelated) {\n\t\t\t\t\tthis.styles.save(p);\n\t\t\t\t\tif (!transformPropTween) {\n\t\t\t\t\t\tcache = target._gsap;\n\t\t\t\t\t\t(cache.renderTransform && !vars.parseTransform) || _parseTransform(target, vars.parseTransform); // if, for example, gsap.set(... {transform:\"translateX(50vw)\"}), the _get() call doesn't parse the transform, thus cache.renderTransform won't be set yet so force the parsing of the transform here.\n\t\t\t\t\t\tsmooth = (vars.smoothOrigin !== false && cache.smooth);\n\t\t\t\t\t\ttransformPropTween = this._pt = new PropTween(this._pt, style, _transformProp, 0, 1, cache.renderTransform, cache, 0, -1); //the first time through, create the rendering PropTween so that it runs LAST (in the linked list, we keep adding to the beginning)\n\t\t\t\t\t\ttransformPropTween.dep = 1; //flag it as dependent so that if things get killed/overwritten and this is the only PropTween left, we can safely kill the whole tween.\n\t\t\t\t\t}\n\t\t\t\t\tif (p === \"scale\") {\n\t\t\t\t\t\tthis._pt = new PropTween(this._pt, cache, \"scaleY\", startNum, ((relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum) || 0, _renderCSSProp);\n\t\t\t\t\t\tthis._pt.u = 0;\n\t\t\t\t\t\tprops.push(\"scaleY\", p);\n\t\t\t\t\t\tp += \"X\";\n\t\t\t\t\t} else if (p === \"transformOrigin\") {\n\t\t\t\t\t\tinlineProps.push(_transformOriginProp, 0, style[_transformOriginProp]);\n\t\t\t\t\t\tendValue = _convertKeywordsToPercentages(endValue); //in case something like \"left top\" or \"bottom right\" is passed in. Convert to percentages.\n\t\t\t\t\t\tif (cache.svg) {\n\t\t\t\t\t\t\t_applySVGOrigin(target, endValue, 0, smooth, 0, this);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tendUnit = parseFloat(endValue.split(\" \")[2]) || 0; //handle the zOrigin separately!\n\t\t\t\t\t\t\tendUnit !== cache.zOrigin && _addNonTweeningPT(this, cache, \"zOrigin\", cache.zOrigin, endUnit);\n\t\t\t\t\t\t\t_addNonTweeningPT(this, style, p, _firstTwoOnly(startValue), _firstTwoOnly(endValue));\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (p === \"svgOrigin\") {\n\t\t\t\t\t\t_applySVGOrigin(target, endValue, 1, smooth, 0, this);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (p in _rotationalProperties) {\n\t\t\t\t\t\t_addRotationalPropTween(this, cache, p, startNum, relative ? _parseRelative(startNum, relative + endValue) : endValue);\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t} else if (p === \"smoothOrigin\") {\n\t\t\t\t\t\t_addNonTweeningPT(this, cache, \"smooth\", cache.smooth, endValue);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (p === \"force3D\") {\n\t\t\t\t\t\tcache[p] = endValue;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (p === \"transform\") {\n\t\t\t\t\t\t_addRawTransformPTs(this, endValue, target);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (!(p in style)) {\n\t\t\t\t\tp = _checkPropPrefix(p) || p;\n\t\t\t\t}\n\n\t\t\t\tif (isTransformRelated || ((endNum || endNum === 0) && (startNum || startNum === 0) && !_complexExp.test(endValue) && (p in style))) {\n\t\t\t\t\tstartUnit = (startValue + \"\").substr((startNum + \"\").length);\n\t\t\t\t\tendNum || (endNum = 0); // protect against NaN\n\t\t\t\t\tendUnit = getUnit(endValue) || ((p in _config.units) ? _config.units[p] : startUnit);\n\t\t\t\t\tstartUnit !== endUnit && (startNum = _convertToUnit(target, p, startValue, endUnit));\n\t\t\t\t\tthis._pt = new PropTween(this._pt, isTransformRelated ? cache : style, p, startNum, (relative ? _parseRelative(startNum, relative + endNum) : endNum) - startNum, (!isTransformRelated && (endUnit === \"px\" || p === \"zIndex\") && vars.autoRound !== false) ? _renderRoundedCSSProp : _renderCSSProp);\n\t\t\t\t\tthis._pt.u = endUnit || 0;\n\t\t\t\t\tif (startUnit !== endUnit && endUnit !== \"%\") { //when the tween goes all the way back to the beginning, we need to revert it to the OLD/ORIGINAL value (with those units). We record that as a \"b\" (beginning) property and point to a render method that handles that. (performance optimization)\n\t\t\t\t\t\tthis._pt.b = startValue;\n\t\t\t\t\t\tthis._pt.r = _renderCSSPropWithBeginning;\n\t\t\t\t\t}\n\t\t\t\t} else if (!(p in style)) {\n\t\t\t\t\tif (p in target) { //maybe it's not a style - it could be a property added directly to an element in which case we'll try to animate that.\n\t\t\t\t\t\tthis.add(target, p, startValue || target[p], relative ? relative + endValue : endValue, index, targets);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t_missingPlugin(p, endValue);\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t_tweenComplexCSSString.call(this, target, p, startValue, relative ? relative + endValue : endValue);\n\t\t\t\t}\n\t\t\t\tisTransformRelated || (p in style ? inlineProps.push(p, 0, style[p]) : inlineProps.push(p, 1, startValue || target[p]));\n\t\t\t\tprops.push(p);\n\t\t\t}\n\t\t}\n\t\thasPriority && _sortPropTweensByPriority(this);\n\n\t},\n\trender(ratio, data) {\n\t\tif (data.tween._time || !_reverting()) {\n\t\t\tlet pt = data._pt;\n\t\t\twhile (pt) {\n\t\t\t\tpt.r(ratio, pt.d);\n\t\t\t\tpt = pt._next;\n\t\t\t}\n\t\t} else {\n\t\t\tdata.styles.revert();\n\t\t}\n\t},\n\tget: _get,\n\taliases: _propertyAliases,\n\tgetSetter(target, property, plugin) { //returns a setter function that accepts target, property, value and applies it accordingly. Remember, properties like \"x\" aren't as simple as target.style.property = value because they've got to be applied to a proxy object and then merged into a transform string in a renderer.\n\t\tlet p = _propertyAliases[property];\n\t\t(p && p.indexOf(\",\") < 0) && (property = p);\n\t\treturn (property in _transformProps && property !== _transformOriginProp && (target._gsap.x || _get(target, \"x\"))) ? (plugin && _recentSetterPlugin === plugin ? (property === \"scale\" ? _setterScale : _setterTransform) : (_recentSetterPlugin = plugin || {}) && (property === \"scale\" ? _setterScaleWithRender : _setterTransformWithRender)) : target.style && !_isUndefined(target.style[property]) ? _setterCSSStyle : ~property.indexOf(\"-\") ? _setterCSSProp : _getSetter(target, property);\n\t},\n\tcore: { _removeProperty, _getMatrix }\n\n};\n\ngsap.utils.checkPrefix = _checkPropPrefix;\ngsap.core.getStyleSaver = _getStyleSaver;\n(function(positionAndScale, rotation, others, aliases) {\n\tlet all = _forEachName(positionAndScale + \",\" + rotation + \",\" + others, name => {_transformProps[name] = 1});\n\t_forEachName(rotation, name => {_config.units[name] = \"deg\"; _rotationalProperties[name] = 1});\n\t_propertyAliases[all[13]] = positionAndScale + \",\" + rotation;\n\t_forEachName(aliases, name => {\n\t\tlet split = name.split(\":\");\n\t\t_propertyAliases[split[1]] = all[split[0]];\n\t});\n})(\"x,y,z,scale,scaleX,scaleY,xPercent,yPercent\", \"rotation,rotationX,rotationY,skewX,skewY\", \"transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective\", \"0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY\");\n_forEachName(\"x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective\", name => {_config.units[name] = \"px\"});\n\ngsap.registerPlugin(CSSPlugin);\n\nexport { CSSPlugin as default, _getBBox, _createElement, _checkPropPrefix as checkPrefix };","import { gsap, Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ, TweenLite, TimelineLite, TimelineMax } from \"./gsap-core.js\";\nimport { CSSPlugin } from \"./CSSPlugin.js\";\n\nconst gsapWithCSS = gsap.registerPlugin(CSSPlugin) || gsap, // to protect from tree shaking\n\tTweenMaxWithCSS = gsapWithCSS.core.Tween;\n\nexport {\n\tgsapWithCSS as gsap,\n\tgsapWithCSS as default,\n\tCSSPlugin,\n\tTweenMaxWithCSS as TweenMax,\n\tTweenLite,\n\tTimelineMax,\n\tTimelineLite,\n\tPower0,\n\tPower1,\n\tPower2,\n\tPower3,\n\tPower4,\n\tLinear,\n\tQuad,\n\tCubic,\n\tQuart,\n\tQuint,\n\tStrong,\n\tElastic,\n\tBack,\n\tSteppedEase,\n\tBounce,\n\tSine,\n\tExpo,\n\tCirc\n};"],"names":["_isString","value","_isFunction","_isNumber","_isUndefined","_isObject","_isNotFalse","_windowExists","window","_isFuncOrString","_install","scope","_installScope","_merge","_globals","gsap","_missingPlugin","property","console","warn","_warn","message","suppress","_addGlobal","name","obj","_emptyFunc","_harness","targets","harnessPlugin","i","target","_gsap","harness","_harnessPlugins","length","targetTest","GSCache","splice","_getCache","toArray","_getProperty","v","getAttribute","_forEachName","names","func","split","forEach","_round","Math","round","_roundPrecise","_parseRelative","start","operator","charAt","end","parseFloat","substr","_arrayContainsAny","toSearch","toFind","l","indexOf","_lazyRender","tween","_lazyTweens","a","slice","_lazyLookup","_lazy","render","_lazySafeRender","animation","time","suppressEvents","force","_reverting","_initted","_startAt","_numericIfPossible","n","match","_delimitedValueExp","trim","_passThrough","p","_setDefaults","defaults","_mergeDeep","base","toMerge","_copyExcluding","excluding","copy","_inheritDefaults","vars","parent","_globalTimeline","keyframes","_setKeyframeDefaults","excludeDuration","_isArray","inherit","_dp","_addLinkedListItem","child","firstProp","lastProp","sortBy","t","prev","_prev","_next","_removeLinkedListItem","next","_removeFromParent","onlyIfParentHasAutoRemove","autoRemoveChildren","remove","_act","_uncache","_end","_dur","_start","_dirty","_rewindStartAt","totalTime","revert","_revertConfigNoKill","immediateRender","autoRevert","_elapsedCycleDuration","_repeat","_animationCycle","_tTime","duration","_rDelay","_parentToChildTotalTime","parentTime","_ts","totalDuration","_tDur","_setEnd","abs","_rts","_tinyNum","_alignPlayhead","smoothChildTiming","_time","_postAddChecks","timeline","rawTime","_clamp","_zTime","_addToTimeline","position","skipChecks","_parsePosition","_delay","timeScale","_sort","_isFromOrFromStart","_recent","_scrollTrigger","trigger","ScrollTrigger","create","_attemptInitTween","tTime","_initTween","_pt","lazy","_lastRenderedFrame","_ticker","frame","push","_setDuration","skipUncache","leavePlayhead","repeat","dur","totalProgress","_onUpdateTotalDuration","Timeline","_createTweenType","type","params","irVars","isLegacy","varsIndex","runBackwards","startAt","Tween","_conditionalReturn","getUnit","_unitExp","exec","_isArrayLike","nonEmpty","nodeType","_win","selector","el","current","nativeElement","querySelectorAll","_doc","createElement","shuffle","sort","random","distribute","each","ease","_parseEase","from","cache","isDecimal","ratios","isNaN","axis","ratioX","ratioY","center","edges","originX","originY","x","y","d","j","max","min","wrapAt","distances","grid","_bigNum","getBoundingClientRect","left","_sqrt","amount","b","u","_invertEase","_roundModifier","pow","raw","snap","snapTo","radius","is2D","isArray","values","increment","dx","dy","closest","roundingIncrement","returnFunction","floor","_wrapArray","wrapper","index","_replaceRandom","nums","s","_strictNumExp","_getLabelInDirection","fromTime","backward","distance","label","labels","_interrupt","scrollTrigger","kill","progress","_callback","_hue","h","m1","m2","_255","splitColor","toHSL","forceAlpha","r","g","wasHSL","_colorLookup","black","parseInt","_numExp","transparent","map","Number","_colorOrderData","c","_colorExp","_numWithUnitExp","_formatColors","orderMatchData","shell","result","colors","color","join","replace","shift","_colorStringFilter","combined","lastIndex","test","_hslExp","_configEaseFromString","_easeMap","config","apply","_parseObjectInString","val","parsedVal","key","lastIndexOf","_quotesExp","_valueInParentheses","open","close","nested","substring","_CE","_customEaseExp","_propagateYoyoEase","isYoyo","_first","yoyoEase","_yoyo","_ease","_yEase","_insertEase","easeIn","easeOut","easeInOut","lowercaseName","toLowerCase","_easeInOutFromOut","_configElastic","amplitude","period","p1","_sin","p3","p2","_2PI","asin","_configBack","overshoot","_suppressOverwrites","_context","_coreInitted","_coreReady","_quickTween","_tickerActive","_id","_req","_raf","_self","_delta","_i","_getTime","_lagThreshold","_adjustedLag","_startTime","_lastUpdate","_gap","_nextTime","_listeners","n1","_config","autoSleep","force3D","nullTargetWarn","units","lineHeight","_defaults","overwrite","delay","PI","_HALF_PI","_gsID","sqrt","_cos","cos","sin","_isTypedArray","ArrayBuffer","isView","Array","_complexStringNumExp","_relExp","_startAtRevertConfig","isStart","_revertConfig","_reservedProps","_plugins","_effects","_nextGCFrame","_callbackNames","cycleDuration","whole","data","_zeroPosition","endTime","percentAnimation","offset","isPercent","recent","clippedDuration","_slice","leaveStrings","_wake","_flatten","ar","accumulator","call","mapRange","inMin","inMax","outMin","outMax","inRange","outRange","executeLazyFirst","callback","prevContext","context","_ctx","callbackScope","aqua","lime","silver","maroon","teal","blue","navy","white","olive","yellow","orange","gray","purple","green","red","pink","cyan","RegExp","Date","now","tick","_tick","deltaRatio","fps","wake","document","gsapVersions","version","GreenSockGlobals","requestAnimationFrame","sleep","f","setTimeout","cancelAnimationFrame","clearTimeout","lagSmoothing","threshold","adjustedLag","add","once","prioritize","defaultEase","overlap","dispatch","elapsed","manual","power","Linear","easeNone","none","SteppedEase","steps","immediateStart","id","this","get","set","getSetter","_getSetter","Animation","startTime","arguments","_ptLookup","_pTime","ratio","iteration","_ps","_recacheAncestors","paused","includeRepeats","wrapRepeats","prevIsReverting","globalTime","Infinity","repeatDelay","yoyo","seek","restart","includeDelay","play","reversed","reverse","pause","atTime","resume","invalidate","isActive","eventCallback","_onUpdate","then","onFulfilled","self","Promise","resolve","_resolve","_then","_prom","prototype","sortChildren","_this","to","fromTo","fromVars","toVars","delayedCall","staggerTo","stagger","onCompleteAll","onCompleteAllParams","onComplete","onCompleteParams","staggerFrom","staggerFromTo","prevPaused","pauseTween","prevStart","prevIteration","prevTime","tDur","crossingStart","_lock","rewinding","doesWrap","repeatRefresh","onRepeat","_hasPause","_forcing","_findNextPauseTween","_last","onUpdate","adjustedTime","_this2","addLabel","getChildren","tweens","timelines","ignoreBeforeTime","getById","animations","removeLabel","killTweensOf","addPause","removePause","props","onlyActive","getTweensOf","_overwritingTween","children","parsedTargets","isGlobalTime","_targets","tweenTo","initted","tl","onStart","onStartParams","tweenFromTo","fromPosition","toPosition","nextLabel","afterTime","previousLabel","beforeTime","currentLabel","shiftChildren","adjustLabels","soft","clear","includeLabels","updateRoot","_checkPlugin","plugin","pt","ptLookup","init","rawVars","_processVars","_parseFuncOrString","style","PropTween","priority","_props","_parseKeyframe","prop","allProps","easeEach","e","_forceAllPropTweens","_addPropTween","modifier","stringFilter","funcParam","optional","currentValue","parsedStart","setter","_setterFuncWithParam","_setterFunc","_setterPlain","_addComplexStringPropTween","startNums","endNum","chunk","startNum","hasRandom","_renderComplexString","matchIndex","m","fp","_renderBoolean","_renderPlain","cleanVars","hasPriority","gsData","harnessVars","overwritten","onUpdateParams","prevStartAt","fullTargets","autoOverwrite","_overwrite","_from","_ptCache","_op","_sortPropTweensByPriority","_onInit","_staggerTweenProps","_staggerPropsToSkip","skipInherit","curTarget","staggerFunc","staggerVarsToMerge","_this3","kf","_hasNoPausedAncestors","isNegative","_renderZeroDurationTween","prevRatio","_parentPlayheadIsBeforeStart","resetTo","startIsRelative","_updatePropTweens","rootPT","lookup","ptCache","overwrittenProps","curLookup","curOverwriteProps","killingTargets","propTweenLookup","firstPT","_arraysMatch","a1","a2","_addAliasesToVars","aliases","propertyAliases","onReverseComplete","onReverseCompleteParams","_setterAttribute","setAttribute","_setterWithModifier","mSet","mt","_renderPropTweens","_addPluginModifier","_killPropTweensOf","hasNonDependentRemaining","op","dep","pt2","first","last","pr","change","renderer","TweenMax","TweenLite","TimelineLite","TimelineMax","_dispatch","_emptyArray","_onMediaChange","matches","_lastMediaTime","_media","anyMatch","toggled","queries","conditions","matchMedia","onMatch","Context","prevSelector","_r","isReverted","ignore","getTweens","o","_this4","MatchMedia","mq","active","cond","contexts","addListener","addEventListener","registerPlugin","args","_createPlugin","isFunc","Plugin","instanceDefaults","statics","register","toUpperCase","getProperty","unit","uncache","getter","format","quickSetter","setters","quickTo","isTweening","registerEffect","effect","plugins","extendTimeline","pluginName","registerEase","parseEase","exportRoot","includeDelayedCalls","matchMediaRefresh","found","removeEventListener","utils","wrap","range","wrapYoyo","total","normalize","clamp","pipe","functions","reduce","unitize","interpolate","mutate","interpolators","il","isString","master","install","effects","ticker","globalTimeline","core","globals","getCache","reverting","toAdd","suppressOverwrites","_getPluginPropTween","_buildModifierPlugin","temp","_addModifiers","modifiers","_renderCSSProp","_renderPropWithEnd","_renderCSSPropWithBeginning","_renderRoundedCSSProp","_renderNonTweeningValue","_renderNonTweeningValueOnlyAtEnd","_setterCSSStyle","_setterCSSProp","setProperty","_setterTransform","_setterScale","scaleX","scaleY","_setterScaleWithRender","renderTransform","_setterTransformWithRender","_saveStyle","isNotCSS","_transformProps","tfm","_propertyAliases","_get","_transformProp","svg","svgo","_transformOriginProp","_removeIndependentTransforms","translate","removeProperty","_revertStyle","_capsExp","_getStyleSaver","properties","saver","save","_createElement","ns","createElementNS","_getComputedProperty","skipPrefixFallback","cs","getComputedStyle","getPropertyValue","_checkPropPrefix","_initCore","_docElement","documentElement","_tempDiv","cssText","_supports3D","_pluginInitted","_getBBoxHack","swapIfPossible","bbox","ownerSVGElement","oldParent","parentNode","oldSibling","nextSibling","oldCSS","appendChild","display","getBBox","_gsapBBox","insertBefore","removeChild","_getAttributeFallbacks","attributesArray","hasAttribute","_getBBox","bounds","error","width","height","_isSVG","getCTM","_removeProperty","removeAttribute","_addNonTweeningPT","beginning","onlySetAtEnd","_convertToUnit","px","isSVG","curValue","curUnit","horizontal","_horizontalExp","isRootSVG","tagName","measureProperty","toPixels","toPercent","_nonConvertibleUnits","body","_nonStandardLayouts","_tweenComplexCSSString","startValues","startValue","endValue","endUnit","startUnit","_convertKeywordsToPercentages","_keywordToPercent","_renderClearProps","clearTransforms","_parseTransform","_isNullTransform","_getComputedTransformMatrixAsArray","matrixString","_identity2DMatrix","_getMatrix","force2D","addedToDOM","matrix","transform","baseVal","consolidate","offsetParent","nextElementSibling","_applySVGOrigin","origin","originIsAbsolute","smooth","matrixArray","pluginToAddPropTweensTo","determinant","xOriginOld","xOrigin","yOriginOld","yOrigin","xOffsetOld","xOffset","yOffsetOld","yOffset","tx","ty","originSplit","_addPxTranslate","_addRotationalPropTween","direction","cap","_RAD2DEG","finalValue","_assign","source","_addRawTransformPTs","transforms","endCache","startCache","_recentSetterPlugin","Power0","Power1","Power2","Power3","Power4","Quad","Cubic","Quart","Quint","Strong","Elastic","Back","Bounce","Sine","Expo","Circ","_DEG2RAD","_atan2","atan2","_complexExp","autoAlpha","scale","alpha","_prefixes","element","preferPrefix","deg","rad","turn","flex","_firstTwoOnly","zOrigin","_specialProps","top","bottom","right","clearProps","_rotationalProperties","z","rotation","rotationX","rotationY","skewX","skewY","perspective","angle","a12","a22","t1","t2","t3","a13","a23","a33","a42","a43","a32","invertedScaleX","rotate","forceCSS","xPercent","offsetWidth","yPercent","offsetHeight","transformPerspective","_renderSVGTransforms","_renderCSSTransforms","_renderNon3DTransforms","_zeroDeg","_zeroPx","_endParenthesis","use3D","a11","a21","tan","side","positionAndScale","all","CSSPlugin","specialProp","relative","isTransformRelated","transformPropTween","inlineProps","styles","visibility","parseTransform","smoothOrigin","autoRound","checkPrefix","getStyleSaver","gsapWithCSS","TweenMaxWithCSS"],"mappings":"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"} \ No newline at end of file diff --git a/assets/swiper/swiper-bundle.js.map b/assets/swiper/swiper-bundle.js.map new file mode 100644 index 0000000..8acbbf4 --- /dev/null +++ b/assets/swiper/swiper-bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"swiper-bundle.js.map","sources":["../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../src/shared/dom.js","../src/shared/utils.js","../src/shared/get-support.js","../src/shared/get-device.js","../src/shared/get-browser.js","../src/core/modules/resize/resize.js","../src/core/modules/observer/observer.js","../src/core/events-emitter.js","../src/core/update/updateSize.js","../src/core/update/updateSlides.js","../src/core/update/updateAutoHeight.js","../src/core/update/updateSlidesOffset.js","../src/core/update/updateSlidesProgress.js","../src/core/update/updateProgress.js","../src/core/update/updateSlidesClasses.js","../src/core/update/updateActiveIndex.js","../src/core/update/updateClickedSlide.js","../src/core/update/index.js","../src/core/translate/getTranslate.js","../src/core/translate/setTranslate.js","../src/core/translate/minTranslate.js","../src/core/translate/maxTranslate.js","../src/core/translate/translateTo.js","../src/core/translate/index.js","../src/core/transition/setTransition.js","../src/core/transition/transitionEmit.js","../src/core/transition/transitionStart.js","../src/core/transition/transitionEnd.js","../src/core/transition/index.js","../src/core/slide/slideTo.js","../src/core/slide/slideToLoop.js","../src/core/slide/slideNext.js","../src/core/slide/slidePrev.js","../src/core/slide/slideReset.js","../src/core/slide/slideToClosest.js","../src/core/slide/slideToClickedSlide.js","../src/core/slide/index.js","../src/core/loop/loopCreate.js","../src/core/loop/loopFix.js","../src/core/loop/loopDestroy.js","../src/core/loop/index.js","../src/core/grab-cursor/setGrabCursor.js","../src/core/grab-cursor/unsetGrabCursor.js","../src/core/grab-cursor/index.js","../src/core/events/onTouchStart.js","../src/core/events/onTouchMove.js","../src/core/events/onTouchEnd.js","../src/core/events/onResize.js","../src/core/events/onClick.js","../src/core/events/onScroll.js","../src/core/events/index.js","../src/core/breakpoints/setBreakpoint.js","../src/core/breakpoints/getBreakpoint.js","../src/core/breakpoints/index.js","../src/core/classes/addClasses.js","../src/core/classes/removeClasses.js","../src/core/classes/index.js","../src/core/images/loadImage.js","../src/core/images/preloadImages.js","../src/core/images/index.js","../src/core/check-overflow/index.js","../src/core/defaults.js","../src/core/moduleExtendParams.js","../src/core/core.js","../src/modules/virtual/virtual.js","../src/modules/keyboard/keyboard.js","../src/modules/mousewheel/mousewheel.js","../src/shared/create-element-if-not-defined.js","../src/modules/navigation/navigation.js","../src/shared/classes-to-selector.js","../src/modules/pagination/pagination.js","../src/modules/scrollbar/scrollbar.js","../src/modules/parallax/parallax.js","../src/modules/zoom/zoom.js","../src/modules/lazy/lazy.js","../src/modules/controller/controller.js","../src/modules/a11y/a11y.js","../src/modules/history/history.js","../src/modules/hash-navigation/hash-navigation.js","../src/modules/autoplay/autoplay.js","../src/modules/thumbs/thumbs.js","../src/modules/free-mode/free-mode.js","../src/modules/grid/grid.js","../src/modules/manipulation/methods/appendSlide.js","../src/modules/manipulation/methods/prependSlide.js","../src/modules/manipulation/methods/addSlide.js","../src/modules/manipulation/methods/removeSlide.js","../src/modules/manipulation/methods/removeAllSlides.js","../src/modules/manipulation/manipulation.js","../src/shared/effect-init.js","../src/shared/effect-target.js","../src/shared/effect-virtual-transition-end.js","../src/modules/effect-fade/effect-fade.js","../src/modules/effect-cube/effect-cube.js","../src/shared/create-shadow.js","../src/modules/effect-flip/effect-flip.js","../src/modules/effect-coverflow/effect-coverflow.js","../src/modules/effect-creative/effect-creative.js","../src/modules/effect-cards/effect-cards.js","../src/swiper.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import {\r\n $,\r\n addClass,\r\n removeClass,\r\n hasClass,\r\n toggleClass,\r\n attr,\r\n removeAttr,\r\n transform,\r\n transition,\r\n on,\r\n off,\r\n trigger,\r\n transitionEnd,\r\n outerWidth,\r\n outerHeight,\r\n styles,\r\n offset,\r\n css,\r\n each,\r\n html,\r\n text,\r\n is,\r\n index,\r\n eq,\r\n append,\r\n prepend,\r\n next,\r\n nextAll,\r\n prev,\r\n prevAll,\r\n parent,\r\n parents,\r\n closest,\r\n find,\r\n children,\r\n filter,\r\n remove,\r\n} from 'dom7';\r\n\r\nconst Methods = {\r\n addClass,\r\n removeClass,\r\n hasClass,\r\n toggleClass,\r\n attr,\r\n removeAttr,\r\n transform,\r\n transition,\r\n on,\r\n off,\r\n trigger,\r\n transitionEnd,\r\n outerWidth,\r\n outerHeight,\r\n styles,\r\n offset,\r\n css,\r\n each,\r\n html,\r\n text,\r\n is,\r\n index,\r\n eq,\r\n append,\r\n prepend,\r\n next,\r\n nextAll,\r\n prev,\r\n prevAll,\r\n parent,\r\n parents,\r\n closest,\r\n find,\r\n children,\r\n filter,\r\n remove,\r\n};\r\n\r\nObject.keys(Methods).forEach((methodName) => {\r\n Object.defineProperty($.fn, methodName, { value: Methods[methodName], writable: true });\r\n});\r\n\r\nexport default $;\r\n","import { getWindow } from 'ssr-window';\r\n\r\nfunction deleteProps(obj) {\r\n const object = obj;\r\n Object.keys(object).forEach((key) => {\r\n try {\r\n object[key] = null;\r\n } catch (e) {\r\n // no getter for object\r\n }\r\n try {\r\n delete object[key];\r\n } catch (e) {\r\n // something got wrong\r\n }\r\n });\r\n}\r\nfunction nextTick(callback, delay = 0) {\r\n return setTimeout(callback, delay);\r\n}\r\nfunction now() {\r\n return Date.now();\r\n}\r\nfunction getComputedStyle(el) {\r\n const window = getWindow();\r\n let style;\r\n if (window.getComputedStyle) {\r\n style = window.getComputedStyle(el, null);\r\n }\r\n if (!style && el.currentStyle) {\r\n style = el.currentStyle;\r\n }\r\n if (!style) {\r\n style = el.style;\r\n }\r\n\r\n return style;\r\n}\r\nfunction getTranslate(el, axis = 'x') {\r\n const window = getWindow();\r\n let matrix;\r\n let curTransform;\r\n let transformMatrix;\r\n\r\n const curStyle = getComputedStyle(el, null);\r\n\r\n if (window.WebKitCSSMatrix) {\r\n curTransform = curStyle.transform || curStyle.webkitTransform;\r\n if (curTransform.split(',').length > 6) {\r\n curTransform = curTransform\r\n .split(', ')\r\n .map((a) => a.replace(',', '.'))\r\n .join(', ');\r\n }\r\n // Some old versions of Webkit choke when 'none' is passed; pass\r\n // empty string instead in this case\r\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\r\n } else {\r\n transformMatrix =\r\n curStyle.MozTransform ||\r\n curStyle.OTransform ||\r\n curStyle.MsTransform ||\r\n curStyle.msTransform ||\r\n curStyle.transform ||\r\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\r\n matrix = transformMatrix.toString().split(',');\r\n }\r\n\r\n if (axis === 'x') {\r\n // Latest Chrome and webkits Fix\r\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\r\n // Crazy IE10 Matrix\r\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\r\n // Normal Browsers\r\n else curTransform = parseFloat(matrix[4]);\r\n }\r\n if (axis === 'y') {\r\n // Latest Chrome and webkits Fix\r\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\r\n // Crazy IE10 Matrix\r\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\r\n // Normal Browsers\r\n else curTransform = parseFloat(matrix[5]);\r\n }\r\n return curTransform || 0;\r\n}\r\nfunction isObject(o) {\r\n return (\r\n typeof o === 'object' &&\r\n o !== null &&\r\n o.constructor &&\r\n Object.prototype.toString.call(o).slice(8, -1) === 'Object'\r\n );\r\n}\r\nfunction isNode(node) {\r\n // eslint-disable-next-line\r\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\r\n return node instanceof HTMLElement;\r\n }\r\n return node && (node.nodeType === 1 || node.nodeType === 11);\r\n}\r\nfunction extend(...args) {\r\n const to = Object(args[0]);\r\n const noExtend = ['__proto__', 'constructor', 'prototype'];\r\n for (let i = 1; i < args.length; i += 1) {\r\n const nextSource = args[i];\r\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\r\n const keysArray = Object.keys(Object(nextSource)).filter((key) => noExtend.indexOf(key) < 0);\r\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\r\n const nextKey = keysArray[nextIndex];\r\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n if (desc !== undefined && desc.enumerable) {\r\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\r\n if (nextSource[nextKey].__swiper__) {\r\n to[nextKey] = nextSource[nextKey];\r\n } else {\r\n extend(to[nextKey], nextSource[nextKey]);\r\n }\r\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\r\n to[nextKey] = {};\r\n if (nextSource[nextKey].__swiper__) {\r\n to[nextKey] = nextSource[nextKey];\r\n } else {\r\n extend(to[nextKey], nextSource[nextKey]);\r\n }\r\n } else {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n}\r\n\r\nfunction setCSSProperty(el, varName, varValue) {\r\n el.style.setProperty(varName, varValue);\r\n}\r\n\r\nfunction animateCSSModeScroll({ swiper, targetPosition, side }) {\r\n const window = getWindow();\r\n const startPosition = -swiper.translate;\r\n let startTime = null;\r\n let time;\r\n const duration = swiper.params.speed;\r\n\r\n swiper.wrapperEl.style.scrollSnapType = 'none';\r\n window.cancelAnimationFrame(swiper.cssModeFrameID);\r\n\r\n const dir = targetPosition > startPosition ? 'next' : 'prev';\r\n\r\n const isOutOfBound = (current, target) => {\r\n return (dir === 'next' && current >= target) || (dir === 'prev' && current <= target);\r\n };\r\n\r\n const animate = () => {\r\n time = new Date().getTime();\r\n if (startTime === null) {\r\n startTime = time;\r\n }\r\n\r\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\r\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\r\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\r\n\r\n if (isOutOfBound(currentPosition, targetPosition)) {\r\n currentPosition = targetPosition;\r\n }\r\n swiper.wrapperEl.scrollTo({\r\n [side]: currentPosition,\r\n });\r\n if (isOutOfBound(currentPosition, targetPosition)) {\r\n swiper.wrapperEl.style.overflow = 'hidden';\r\n swiper.wrapperEl.style.scrollSnapType = '';\r\n setTimeout(() => {\r\n swiper.wrapperEl.style.overflow = '';\r\n swiper.wrapperEl.scrollTo({\r\n [side]: currentPosition,\r\n });\r\n });\r\n window.cancelAnimationFrame(swiper.cssModeFrameID);\r\n return;\r\n }\r\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\r\n };\r\n animate();\r\n}\r\n\r\nexport {\r\n animateCSSModeScroll,\r\n deleteProps,\r\n nextTick,\r\n now,\r\n getTranslate,\r\n isObject,\r\n extend,\r\n getComputedStyle,\r\n setCSSProperty,\r\n};\r\n","import { getWindow, getDocument } from 'ssr-window';\r\n\r\nlet support;\r\n\r\nfunction calcSupport() {\r\n const window = getWindow();\r\n const document = getDocument();\r\n\r\n return {\r\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\r\n\r\n touch: !!(\r\n 'ontouchstart' in window ||\r\n (window.DocumentTouch && document instanceof window.DocumentTouch)\r\n ),\r\n\r\n passiveListener: (function checkPassiveListener() {\r\n let supportsPassive = false;\r\n try {\r\n const opts = Object.defineProperty({}, 'passive', {\r\n // eslint-disable-next-line\r\n get() {\r\n supportsPassive = true;\r\n },\r\n });\r\n window.addEventListener('testPassiveListener', null, opts);\r\n } catch (e) {\r\n // No support\r\n }\r\n return supportsPassive;\r\n })(),\r\n\r\n gestures: (function checkGestures() {\r\n return 'ongesturestart' in window;\r\n })(),\r\n };\r\n}\r\n\r\nfunction getSupport() {\r\n if (!support) {\r\n support = calcSupport();\r\n }\r\n return support;\r\n}\r\n\r\nexport { getSupport };\r\n","import { getWindow } from 'ssr-window';\r\nimport { getSupport } from './get-support.js';\r\n\r\nlet deviceCached;\r\n\r\nfunction calcDevice({ userAgent } = {}) {\r\n const support = getSupport();\r\n const window = getWindow();\r\n const platform = window.navigator.platform;\r\n const ua = userAgent || window.navigator.userAgent;\r\n\r\n const device = {\r\n ios: false,\r\n android: false,\r\n };\r\n\r\n const screenWidth = window.screen.width;\r\n const screenHeight = window.screen.height;\r\n\r\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n const windows = platform === 'Win32';\r\n let macos = platform === 'MacIntel';\r\n\r\n // iPadOs 13 fix\r\n const iPadScreens = [\r\n '1024x1366',\r\n '1366x1024',\r\n '834x1194',\r\n '1194x834',\r\n '834x1112',\r\n '1112x834',\r\n '768x1024',\r\n '1024x768',\r\n '820x1180',\r\n '1180x820',\r\n '810x1080',\r\n '1080x810',\r\n ];\r\n if (\r\n !ipad &&\r\n macos &&\r\n support.touch &&\r\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\r\n ) {\r\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\r\n if (!ipad) ipad = [0, 1, '13_0_0'];\r\n macos = false;\r\n }\r\n\r\n // Android\r\n if (android && !windows) {\r\n device.os = 'android';\r\n device.android = true;\r\n }\r\n if (ipad || iphone || ipod) {\r\n device.os = 'ios';\r\n device.ios = true;\r\n }\r\n\r\n // Export object\r\n return device;\r\n}\r\n\r\nfunction getDevice(overrides = {}) {\r\n if (!deviceCached) {\r\n deviceCached = calcDevice(overrides);\r\n }\r\n return deviceCached;\r\n}\r\n\r\nexport { getDevice };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nlet browser;\r\n\r\nfunction calcBrowser() {\r\n const window = getWindow();\r\n function isSafari() {\r\n const ua = window.navigator.userAgent.toLowerCase();\r\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\r\n }\r\n return {\r\n isSafari: isSafari(),\r\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\r\n };\r\n}\r\n\r\nfunction getBrowser() {\r\n if (!browser) {\r\n browser = calcBrowser();\r\n }\r\n return browser;\r\n}\r\n\r\nexport { getBrowser };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function Resize({ swiper, on, emit }) {\r\n const window = getWindow();\r\n let observer = null;\r\n let animationFrame = null;\r\n\r\n const resizeHandler = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n emit('beforeResize');\r\n emit('resize');\r\n };\r\n\r\n const createObserver = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n observer = new ResizeObserver((entries) => {\r\n animationFrame = window.requestAnimationFrame(() => {\r\n const { width, height } = swiper;\r\n let newWidth = width;\r\n let newHeight = height;\r\n entries.forEach(({ contentBoxSize, contentRect, target }) => {\r\n if (target && target !== swiper.el) return;\r\n newWidth = contentRect\r\n ? contentRect.width\r\n : (contentBoxSize[0] || contentBoxSize).inlineSize;\r\n newHeight = contentRect\r\n ? contentRect.height\r\n : (contentBoxSize[0] || contentBoxSize).blockSize;\r\n });\r\n if (newWidth !== width || newHeight !== height) {\r\n resizeHandler();\r\n }\r\n });\r\n });\r\n observer.observe(swiper.el);\r\n };\r\n\r\n const removeObserver = () => {\r\n if (animationFrame) {\r\n window.cancelAnimationFrame(animationFrame);\r\n }\r\n if (observer && observer.unobserve && swiper.el) {\r\n observer.unobserve(swiper.el);\r\n observer = null;\r\n }\r\n };\r\n\r\n const orientationChangeHandler = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n emit('orientationchange');\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\r\n createObserver();\r\n return;\r\n }\r\n window.addEventListener('resize', resizeHandler);\r\n window.addEventListener('orientationchange', orientationChangeHandler);\r\n });\r\n\r\n on('destroy', () => {\r\n removeObserver();\r\n window.removeEventListener('resize', resizeHandler);\r\n window.removeEventListener('orientationchange', orientationChangeHandler);\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function Observer({ swiper, extendParams, on, emit }) {\r\n const observers = [];\r\n const window = getWindow();\r\n const attach = (target, options = {}) => {\r\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\r\n const observer = new ObserverFunc((mutations) => {\r\n // The observerUpdate event should only be triggered\r\n // once despite the number of mutations. Additional\r\n // triggers are redundant and are very costly\r\n if (mutations.length === 1) {\r\n emit('observerUpdate', mutations[0]);\r\n return;\r\n }\r\n const observerUpdate = function observerUpdate() {\r\n emit('observerUpdate', mutations[0]);\r\n };\r\n\r\n if (window.requestAnimationFrame) {\r\n window.requestAnimationFrame(observerUpdate);\r\n } else {\r\n window.setTimeout(observerUpdate, 0);\r\n }\r\n });\r\n\r\n observer.observe(target, {\r\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\r\n childList: typeof options.childList === 'undefined' ? true : options.childList,\r\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\r\n });\r\n\r\n observers.push(observer);\r\n };\r\n const init = () => {\r\n if (!swiper.params.observer) return;\r\n if (swiper.params.observeParents) {\r\n const containerParents = swiper.$el.parents();\r\n for (let i = 0; i < containerParents.length; i += 1) {\r\n attach(containerParents[i]);\r\n }\r\n }\r\n // Observe container\r\n attach(swiper.$el[0], {\r\n childList: swiper.params.observeSlideChildren,\r\n });\r\n\r\n // Observe wrapper\r\n attach(swiper.$wrapperEl[0], { attributes: false });\r\n };\r\n const destroy = () => {\r\n observers.forEach((observer) => {\r\n observer.disconnect();\r\n });\r\n observers.splice(0, observers.length);\r\n };\r\n\r\n extendParams({\r\n observer: false,\r\n observeParents: false,\r\n observeSlideChildren: false,\r\n });\r\n on('init', init);\r\n on('destroy', destroy);\r\n}\r\n","/* eslint-disable no-underscore-dangle */\r\n\r\nexport default {\r\n on(events, handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n const method = priority ? 'unshift' : 'push';\r\n events.split(' ').forEach((event) => {\r\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\r\n self.eventsListeners[event][method](handler);\r\n });\r\n return self;\r\n },\r\n\r\n once(events, handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n function onceHandler(...args) {\r\n self.off(events, onceHandler);\r\n if (onceHandler.__emitterProxy) {\r\n delete onceHandler.__emitterProxy;\r\n }\r\n handler.apply(self, args);\r\n }\r\n onceHandler.__emitterProxy = handler;\r\n return self.on(events, onceHandler, priority);\r\n },\r\n\r\n onAny(handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n const method = priority ? 'unshift' : 'push';\r\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\r\n self.eventsAnyListeners[method](handler);\r\n }\r\n return self;\r\n },\r\n\r\n offAny(handler) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsAnyListeners) return self;\r\n const index = self.eventsAnyListeners.indexOf(handler);\r\n if (index >= 0) {\r\n self.eventsAnyListeners.splice(index, 1);\r\n }\r\n return self;\r\n },\r\n\r\n off(events, handler) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsListeners) return self;\r\n events.split(' ').forEach((event) => {\r\n if (typeof handler === 'undefined') {\r\n self.eventsListeners[event] = [];\r\n } else if (self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach((eventHandler, index) => {\r\n if (\r\n eventHandler === handler ||\r\n (eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)\r\n ) {\r\n self.eventsListeners[event].splice(index, 1);\r\n }\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n\r\n emit(...args) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsListeners) return self;\r\n let events;\r\n let data;\r\n let context;\r\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n events = args[0];\r\n data = args.slice(1, args.length);\r\n context = self;\r\n } else {\r\n events = args[0].events;\r\n data = args[0].data;\r\n context = args[0].context || self;\r\n }\r\n data.unshift(context);\r\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n\r\n eventsArray.forEach((event) => {\r\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\r\n self.eventsAnyListeners.forEach((eventHandler) => {\r\n eventHandler.apply(context, [event, ...data]);\r\n });\r\n }\r\n if (self.eventsListeners && self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach((eventHandler) => {\r\n eventHandler.apply(context, data);\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n};\r\n","export default function updateSize() {\r\n const swiper = this;\r\n let width;\r\n let height;\r\n const $el = swiper.$el;\r\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\r\n width = swiper.params.width;\r\n } else {\r\n width = $el[0].clientWidth;\r\n }\r\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\r\n height = swiper.params.height;\r\n } else {\r\n height = $el[0].clientHeight;\r\n }\r\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\r\n return;\r\n }\r\n\r\n // Subtract paddings\r\n width =\r\n width -\r\n parseInt($el.css('padding-left') || 0, 10) -\r\n parseInt($el.css('padding-right') || 0, 10);\r\n height =\r\n height -\r\n parseInt($el.css('padding-top') || 0, 10) -\r\n parseInt($el.css('padding-bottom') || 0, 10);\r\n\r\n if (Number.isNaN(width)) width = 0;\r\n if (Number.isNaN(height)) height = 0;\r\n\r\n Object.assign(swiper, {\r\n width,\r\n height,\r\n size: swiper.isHorizontal() ? width : height,\r\n });\r\n}\r\n","import { setCSSProperty } from '../../shared/utils.js';\r\n\r\nexport default function updateSlides() {\r\n const swiper = this;\r\n function getDirectionLabel(property) {\r\n if (swiper.isHorizontal()) {\r\n return property;\r\n }\r\n // prettier-ignore\r\n return {\r\n 'width': 'height',\r\n 'margin-top': 'margin-left',\r\n 'margin-bottom ': 'margin-right',\r\n 'margin-left': 'margin-top',\r\n 'margin-right': 'margin-bottom',\r\n 'padding-left': 'padding-top',\r\n 'padding-right': 'padding-bottom',\r\n 'marginRight': 'marginBottom',\r\n }[property];\r\n }\r\n function getDirectionPropertyValue(node, label) {\r\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\r\n }\r\n\r\n const params = swiper.params;\r\n\r\n const { $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\r\n const isVirtual = swiper.virtual && params.virtual.enabled;\r\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\r\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\r\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\r\n let snapGrid = [];\r\n const slidesGrid = [];\r\n const slidesSizesGrid = [];\r\n\r\n let offsetBefore = params.slidesOffsetBefore;\r\n if (typeof offsetBefore === 'function') {\r\n offsetBefore = params.slidesOffsetBefore.call(swiper);\r\n }\r\n\r\n let offsetAfter = params.slidesOffsetAfter;\r\n if (typeof offsetAfter === 'function') {\r\n offsetAfter = params.slidesOffsetAfter.call(swiper);\r\n }\r\n\r\n const previousSnapGridLength = swiper.snapGrid.length;\r\n const previousSlidesGridLength = swiper.slidesGrid.length;\r\n\r\n let spaceBetween = params.spaceBetween;\r\n let slidePosition = -offsetBefore;\r\n let prevSlideSize = 0;\r\n let index = 0;\r\n if (typeof swiperSize === 'undefined') {\r\n return;\r\n }\r\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\r\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\r\n }\r\n\r\n swiper.virtualSize = -spaceBetween;\r\n\r\n // reset margins\r\n if (rtl) slides.css({ marginLeft: '', marginBottom: '', marginTop: '' });\r\n else slides.css({ marginRight: '', marginBottom: '', marginTop: '' });\r\n\r\n // reset cssMode offsets\r\n if (params.centeredSlides && params.cssMode) {\r\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\r\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\r\n }\r\n\r\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\r\n if (gridEnabled) {\r\n swiper.grid.initSlides(slidesLength);\r\n }\r\n\r\n // Calc slides\r\n let slideSize;\r\n\r\n const shouldResetSlideSize =\r\n params.slidesPerView === 'auto' &&\r\n params.breakpoints &&\r\n Object.keys(params.breakpoints).filter((key) => {\r\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\r\n }).length > 0;\r\n\r\n for (let i = 0; i < slidesLength; i += 1) {\r\n slideSize = 0;\r\n const slide = slides.eq(i);\r\n if (gridEnabled) {\r\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\r\n }\r\n if (slide.css('display') === 'none') continue; // eslint-disable-line\r\n\r\n if (params.slidesPerView === 'auto') {\r\n if (shouldResetSlideSize) {\r\n slides[i].style[getDirectionLabel('width')] = ``;\r\n }\r\n const slideStyles = getComputedStyle(slide[0]);\r\n const currentTransform = slide[0].style.transform;\r\n const currentWebKitTransform = slide[0].style.webkitTransform;\r\n if (currentTransform) {\r\n slide[0].style.transform = 'none';\r\n }\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = 'none';\r\n }\r\n if (params.roundLengths) {\r\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\r\n } else {\r\n // eslint-disable-next-line\r\n const width = getDirectionPropertyValue(slideStyles, 'width');\r\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\r\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\r\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\r\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\r\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\r\n if (boxSizing && boxSizing === 'border-box') {\r\n slideSize = width + marginLeft + marginRight;\r\n } else {\r\n const { clientWidth, offsetWidth } = slide[0];\r\n slideSize =\r\n width +\r\n paddingLeft +\r\n paddingRight +\r\n marginLeft +\r\n marginRight +\r\n (offsetWidth - clientWidth);\r\n }\r\n }\r\n if (currentTransform) {\r\n slide[0].style.transform = currentTransform;\r\n }\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = currentWebKitTransform;\r\n }\r\n if (params.roundLengths) slideSize = Math.floor(slideSize);\r\n } else {\r\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\r\n if (params.roundLengths) slideSize = Math.floor(slideSize);\r\n\r\n if (slides[i]) {\r\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\r\n }\r\n }\r\n if (slides[i]) {\r\n slides[i].swiperSlideSize = slideSize;\r\n }\r\n slidesSizesGrid.push(slideSize);\r\n\r\n if (params.centeredSlides) {\r\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\r\n if (prevSlideSize === 0 && i !== 0)\r\n slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\r\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\r\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\r\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\r\n slidesGrid.push(slidePosition);\r\n } else {\r\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n if (\r\n (index - Math.min(swiper.params.slidesPerGroupSkip, index)) %\r\n swiper.params.slidesPerGroup ===\r\n 0\r\n )\r\n snapGrid.push(slidePosition);\r\n slidesGrid.push(slidePosition);\r\n slidePosition = slidePosition + slideSize + spaceBetween;\r\n }\r\n\r\n swiper.virtualSize += slideSize + spaceBetween;\r\n\r\n prevSlideSize = slideSize;\r\n\r\n index += 1;\r\n }\r\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\r\n\r\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\r\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\r\n }\r\n if (params.setWrapperSize) {\r\n $wrapperEl.css({\r\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`,\r\n });\r\n }\r\n\r\n if (gridEnabled) {\r\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\r\n }\r\n\r\n // Remove last grid elements depending on width\r\n if (!params.centeredSlides) {\r\n const newSlidesGrid = [];\r\n for (let i = 0; i < snapGrid.length; i += 1) {\r\n let slidesGridItem = snapGrid[i];\r\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\r\n newSlidesGrid.push(slidesGridItem);\r\n }\r\n }\r\n snapGrid = newSlidesGrid;\r\n\r\n if (\r\n Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) >\r\n 1\r\n ) {\r\n snapGrid.push(swiper.virtualSize - swiperSize);\r\n }\r\n }\r\n if (snapGrid.length === 0) snapGrid = [0];\r\n\r\n if (params.spaceBetween !== 0) {\r\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\r\n slides\r\n .filter((_, slideIndex) => {\r\n if (!params.cssMode) return true;\r\n if (slideIndex === slides.length - 1) {\r\n return false;\r\n }\r\n return true;\r\n })\r\n .css({ [key]: `${spaceBetween}px` });\r\n }\r\n\r\n if (params.centeredSlides && params.centeredSlidesBounds) {\r\n let allSlidesSize = 0;\r\n slidesSizesGrid.forEach((slideSizeValue) => {\r\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n allSlidesSize -= params.spaceBetween;\r\n const maxSnap = allSlidesSize - swiperSize;\r\n snapGrid = snapGrid.map((snap) => {\r\n if (snap < 0) return -offsetBefore;\r\n if (snap > maxSnap) return maxSnap + offsetAfter;\r\n return snap;\r\n });\r\n }\r\n\r\n if (params.centerInsufficientSlides) {\r\n let allSlidesSize = 0;\r\n slidesSizesGrid.forEach((slideSizeValue) => {\r\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n allSlidesSize -= params.spaceBetween;\r\n if (allSlidesSize < swiperSize) {\r\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\r\n snapGrid.forEach((snap, snapIndex) => {\r\n snapGrid[snapIndex] = snap - allSlidesOffset;\r\n });\r\n slidesGrid.forEach((snap, snapIndex) => {\r\n slidesGrid[snapIndex] = snap + allSlidesOffset;\r\n });\r\n }\r\n }\r\n\r\n Object.assign(swiper, {\r\n slides,\r\n snapGrid,\r\n slidesGrid,\r\n slidesSizesGrid,\r\n });\r\n\r\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\r\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\r\n setCSSProperty(\r\n swiper.wrapperEl,\r\n '--swiper-centered-offset-after',\r\n `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`,\r\n );\r\n const addToSnapGrid = -swiper.snapGrid[0];\r\n const addToSlidesGrid = -swiper.slidesGrid[0];\r\n swiper.snapGrid = swiper.snapGrid.map((v) => v + addToSnapGrid);\r\n swiper.slidesGrid = swiper.slidesGrid.map((v) => v + addToSlidesGrid);\r\n }\r\n\r\n if (slidesLength !== previousSlidesLength) {\r\n swiper.emit('slidesLengthChange');\r\n }\r\n if (snapGrid.length !== previousSnapGridLength) {\r\n if (swiper.params.watchOverflow) swiper.checkOverflow();\r\n swiper.emit('snapGridLengthChange');\r\n }\r\n if (slidesGrid.length !== previousSlidesGridLength) {\r\n swiper.emit('slidesGridLengthChange');\r\n }\r\n\r\n if (params.watchSlidesProgress) {\r\n swiper.updateSlidesOffset();\r\n }\r\n\r\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\r\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\r\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\r\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\r\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\r\n } else if (hasClassBackfaceClassAdded) {\r\n swiper.$el.removeClass(backFaceHiddenClass);\r\n }\r\n }\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function updateAutoHeight(speed) {\r\n const swiper = this;\r\n const activeSlides = [];\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n let newHeight = 0;\r\n let i;\r\n if (typeof speed === 'number') {\r\n swiper.setTransition(speed);\r\n } else if (speed === true) {\r\n swiper.setTransition(swiper.params.speed);\r\n }\r\n\r\n const getSlideByIndex = (index) => {\r\n if (isVirtual) {\r\n return swiper.slides.filter(\r\n (el) => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index,\r\n )[0];\r\n }\r\n return swiper.slides.eq(index)[0];\r\n };\r\n // Find slides currently in view\r\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\r\n if (swiper.params.centeredSlides) {\r\n (swiper.visibleSlides || $([])).each((slide) => {\r\n activeSlides.push(slide);\r\n });\r\n } else {\r\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\r\n const index = swiper.activeIndex + i;\r\n if (index > swiper.slides.length && !isVirtual) break;\r\n activeSlides.push(getSlideByIndex(index));\r\n }\r\n }\r\n } else {\r\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\r\n }\r\n\r\n // Find new height from highest slide in view\r\n for (i = 0; i < activeSlides.length; i += 1) {\r\n if (typeof activeSlides[i] !== 'undefined') {\r\n const height = activeSlides[i].offsetHeight;\r\n newHeight = height > newHeight ? height : newHeight;\r\n }\r\n }\r\n\r\n // Update Height\r\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\r\n}\r\n","export default function updateSlidesOffset() {\r\n const swiper = this;\r\n const slides = swiper.slides;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n slides[i].swiperSlideOffset = swiper.isHorizontal()\r\n ? slides[i].offsetLeft\r\n : slides[i].offsetTop;\r\n }\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function updateSlidesProgress(translate = (this && this.translate) || 0) {\r\n const swiper = this;\r\n const params = swiper.params;\r\n\r\n const { slides, rtlTranslate: rtl, snapGrid } = swiper;\r\n\r\n if (slides.length === 0) return;\r\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\r\n\r\n let offsetCenter = -translate;\r\n if (rtl) offsetCenter = translate;\r\n\r\n // Visible Slides\r\n slides.removeClass(params.slideVisibleClass);\r\n\r\n swiper.visibleSlidesIndexes = [];\r\n swiper.visibleSlides = [];\r\n\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const slide = slides[i];\r\n let slideOffset = slide.swiperSlideOffset;\r\n if (params.cssMode && params.centeredSlides) {\r\n slideOffset -= slides[0].swiperSlideOffset;\r\n }\r\n\r\n const slideProgress =\r\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) /\r\n (slide.swiperSlideSize + params.spaceBetween);\r\n const originalSlideProgress =\r\n (offsetCenter -\r\n snapGrid[0] +\r\n (params.centeredSlides ? swiper.minTranslate() : 0) -\r\n slideOffset) /\r\n (slide.swiperSlideSize + params.spaceBetween);\r\n const slideBefore = -(offsetCenter - slideOffset);\r\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\r\n const isVisible =\r\n (slideBefore >= 0 && slideBefore < swiper.size - 1) ||\r\n (slideAfter > 1 && slideAfter <= swiper.size) ||\r\n (slideBefore <= 0 && slideAfter >= swiper.size);\r\n if (isVisible) {\r\n swiper.visibleSlides.push(slide);\r\n swiper.visibleSlidesIndexes.push(i);\r\n slides.eq(i).addClass(params.slideVisibleClass);\r\n }\r\n slide.progress = rtl ? -slideProgress : slideProgress;\r\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\r\n }\r\n swiper.visibleSlides = $(swiper.visibleSlides);\r\n}\r\n","export default function updateProgress(translate) {\r\n const swiper = this;\r\n if (typeof translate === 'undefined') {\r\n const multiplier = swiper.rtlTranslate ? -1 : 1;\r\n // eslint-disable-next-line\r\n translate = (swiper && swiper.translate && swiper.translate * multiplier) || 0;\r\n }\r\n const params = swiper.params;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n let { progress, isBeginning, isEnd } = swiper;\r\n const wasBeginning = isBeginning;\r\n const wasEnd = isEnd;\r\n if (translatesDiff === 0) {\r\n progress = 0;\r\n isBeginning = true;\r\n isEnd = true;\r\n } else {\r\n progress = (translate - swiper.minTranslate()) / translatesDiff;\r\n isBeginning = progress <= 0;\r\n isEnd = progress >= 1;\r\n }\r\n Object.assign(swiper, {\r\n progress,\r\n isBeginning,\r\n isEnd,\r\n });\r\n\r\n if (params.watchSlidesProgress || (params.centeredSlides && params.autoHeight))\r\n swiper.updateSlidesProgress(translate);\r\n\r\n if (isBeginning && !wasBeginning) {\r\n swiper.emit('reachBeginning toEdge');\r\n }\r\n if (isEnd && !wasEnd) {\r\n swiper.emit('reachEnd toEdge');\r\n }\r\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\r\n swiper.emit('fromEdge');\r\n }\r\n\r\n swiper.emit('progress', progress);\r\n}\r\n","export default function updateSlidesClasses() {\r\n const swiper = this;\r\n\r\n const { slides, params, $wrapperEl, activeIndex, realIndex } = swiper;\r\n const isVirtual = swiper.virtual && params.virtual.enabled;\r\n\r\n slides.removeClass(\r\n `${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`,\r\n );\r\n\r\n let activeSlide;\r\n if (isVirtual) {\r\n activeSlide = swiper.$wrapperEl.find(\r\n `.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`,\r\n );\r\n } else {\r\n activeSlide = slides.eq(activeIndex);\r\n }\r\n\r\n // Active classes\r\n activeSlide.addClass(params.slideActiveClass);\r\n\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`,\r\n )\r\n .addClass(params.slideDuplicateActiveClass);\r\n } else {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`,\r\n )\r\n .addClass(params.slideDuplicateActiveClass);\r\n }\r\n }\r\n // Next Slide\r\n let nextSlide = activeSlide\r\n .nextAll(`.${params.slideClass}`)\r\n .eq(0)\r\n .addClass(params.slideNextClass);\r\n if (params.loop && nextSlide.length === 0) {\r\n nextSlide = slides.eq(0);\r\n nextSlide.addClass(params.slideNextClass);\r\n }\r\n // Prev Slide\r\n let prevSlide = activeSlide\r\n .prevAll(`.${params.slideClass}`)\r\n .eq(0)\r\n .addClass(params.slidePrevClass);\r\n if (params.loop && prevSlide.length === 0) {\r\n prevSlide = slides.eq(-1);\r\n prevSlide.addClass(params.slidePrevClass);\r\n }\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}:not(.${\r\n params.slideDuplicateClass\r\n })[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicateNextClass);\r\n } else {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${\r\n params.slideDuplicateClass\r\n }[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicateNextClass);\r\n }\r\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}:not(.${\r\n params.slideDuplicateClass\r\n })[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicatePrevClass);\r\n } else {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${\r\n params.slideDuplicateClass\r\n }[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicatePrevClass);\r\n }\r\n }\r\n swiper.emitSlidesClasses();\r\n}\r\n","export default function updateActiveIndex(newActiveIndex) {\r\n const swiper = this;\r\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n const {\r\n slidesGrid,\r\n snapGrid,\r\n params,\r\n activeIndex: previousIndex,\r\n realIndex: previousRealIndex,\r\n snapIndex: previousSnapIndex,\r\n } = swiper;\r\n let activeIndex = newActiveIndex;\r\n let snapIndex;\r\n if (typeof activeIndex === 'undefined') {\r\n for (let i = 0; i < slidesGrid.length; i += 1) {\r\n if (typeof slidesGrid[i + 1] !== 'undefined') {\r\n if (\r\n translate >= slidesGrid[i] &&\r\n translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2\r\n ) {\r\n activeIndex = i;\r\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\r\n activeIndex = i + 1;\r\n }\r\n } else if (translate >= slidesGrid[i]) {\r\n activeIndex = i;\r\n }\r\n }\r\n // Normalize slideIndex\r\n if (params.normalizeSlideIndex) {\r\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\r\n }\r\n }\r\n if (snapGrid.indexOf(translate) >= 0) {\r\n snapIndex = snapGrid.indexOf(translate);\r\n } else {\r\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\r\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\r\n }\r\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n if (activeIndex === previousIndex) {\r\n if (snapIndex !== previousSnapIndex) {\r\n swiper.snapIndex = snapIndex;\r\n swiper.emit('snapIndexChange');\r\n }\r\n return;\r\n }\r\n\r\n // Get real index\r\n const realIndex = parseInt(\r\n swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex,\r\n 10,\r\n );\r\n\r\n Object.assign(swiper, {\r\n snapIndex,\r\n realIndex,\r\n previousIndex,\r\n activeIndex,\r\n });\r\n swiper.emit('activeIndexChange');\r\n swiper.emit('snapIndexChange');\r\n if (previousRealIndex !== realIndex) {\r\n swiper.emit('realIndexChange');\r\n }\r\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\r\n swiper.emit('slideChange');\r\n }\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function updateClickedSlide(e) {\r\n const swiper = this;\r\n const params = swiper.params;\r\n const slide = $(e).closest(`.${params.slideClass}`)[0];\r\n let slideFound = false;\r\n let slideIndex;\r\n\r\n if (slide) {\r\n for (let i = 0; i < swiper.slides.length; i += 1) {\r\n if (swiper.slides[i] === slide) {\r\n slideFound = true;\r\n slideIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (slide && slideFound) {\r\n swiper.clickedSlide = slide;\r\n if (swiper.virtual && swiper.params.virtual.enabled) {\r\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n swiper.clickedIndex = slideIndex;\r\n }\r\n } else {\r\n swiper.clickedSlide = undefined;\r\n swiper.clickedIndex = undefined;\r\n return;\r\n }\r\n if (\r\n params.slideToClickedSlide &&\r\n swiper.clickedIndex !== undefined &&\r\n swiper.clickedIndex !== swiper.activeIndex\r\n ) {\r\n swiper.slideToClickedSlide();\r\n }\r\n}\r\n","import updateSize from './updateSize.js';\r\nimport updateSlides from './updateSlides.js';\r\nimport updateAutoHeight from './updateAutoHeight.js';\r\nimport updateSlidesOffset from './updateSlidesOffset.js';\r\nimport updateSlidesProgress from './updateSlidesProgress.js';\r\nimport updateProgress from './updateProgress.js';\r\nimport updateSlidesClasses from './updateSlidesClasses.js';\r\nimport updateActiveIndex from './updateActiveIndex.js';\r\nimport updateClickedSlide from './updateClickedSlide.js';\r\n\r\nexport default {\r\n updateSize,\r\n updateSlides,\r\n updateAutoHeight,\r\n updateSlidesOffset,\r\n updateSlidesProgress,\r\n updateProgress,\r\n updateSlidesClasses,\r\n updateActiveIndex,\r\n updateClickedSlide,\r\n};\r\n","import { getTranslate } from '../../shared/utils.js';\r\n\r\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\r\n const swiper = this;\r\n\r\n const { params, rtlTranslate: rtl, translate, $wrapperEl } = swiper;\r\n\r\n if (params.virtualTranslate) {\r\n return rtl ? -translate : translate;\r\n }\r\n if (params.cssMode) {\r\n return translate;\r\n }\r\n\r\n let currentTranslate = getTranslate($wrapperEl[0], axis);\r\n if (rtl) currentTranslate = -currentTranslate;\r\n\r\n return currentTranslate || 0;\r\n}\r\n","export default function setTranslate(translate, byController) {\r\n const swiper = this;\r\n const { rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress } = swiper;\r\n let x = 0;\r\n let y = 0;\r\n const z = 0;\r\n\r\n if (swiper.isHorizontal()) {\r\n x = rtl ? -translate : translate;\r\n } else {\r\n y = translate;\r\n }\r\n\r\n if (params.roundLengths) {\r\n x = Math.floor(x);\r\n y = Math.floor(y);\r\n }\r\n\r\n if (params.cssMode) {\r\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\r\n } else if (!params.virtualTranslate) {\r\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\r\n }\r\n swiper.previousTranslate = swiper.translate;\r\n swiper.translate = swiper.isHorizontal() ? x : y;\r\n\r\n // Check if we need to update progress\r\n let newProgress;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n if (newProgress !== progress) {\r\n swiper.updateProgress(translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, byController);\r\n}\r\n","export default function minTranslate() {\r\n return -this.snapGrid[0];\r\n}\r\n","export default function maxTranslate() {\r\n return -this.snapGrid[this.snapGrid.length - 1];\r\n}\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\r\n\r\nexport default function translateTo(\r\n translate = 0,\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n translateBounds = true,\r\n internal,\r\n) {\r\n const swiper = this;\r\n\r\n const { params, wrapperEl } = swiper;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return false;\r\n }\r\n\r\n const minTranslate = swiper.minTranslate();\r\n const maxTranslate = swiper.maxTranslate();\r\n let newTranslate;\r\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\r\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\r\n else newTranslate = translate;\r\n\r\n // Update progress\r\n swiper.updateProgress(newTranslate);\r\n\r\n if (params.cssMode) {\r\n const isH = swiper.isHorizontal();\r\n if (speed === 0) {\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\r\n } else {\r\n if (!swiper.support.smoothScroll) {\r\n animateCSSModeScroll({ swiper, targetPosition: -newTranslate, side: isH ? 'left' : 'top' });\r\n return true;\r\n }\r\n wrapperEl.scrollTo({\r\n [isH ? 'left' : 'top']: -newTranslate,\r\n behavior: 'smooth',\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n if (speed === 0) {\r\n swiper.setTransition(0);\r\n swiper.setTranslate(newTranslate);\r\n if (runCallbacks) {\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.emit('transitionEnd');\r\n }\r\n } else {\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(newTranslate);\r\n if (runCallbacks) {\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.emit('transitionStart');\r\n }\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n if (!swiper.onTranslateToWrapperTransitionEnd) {\r\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) return;\r\n if (e.target !== this) return;\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'transitionend',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n swiper.onTranslateToWrapperTransitionEnd = null;\r\n delete swiper.onTranslateToWrapperTransitionEnd;\r\n if (runCallbacks) {\r\n swiper.emit('transitionEnd');\r\n }\r\n };\r\n }\r\n swiper.$wrapperEl[0].addEventListener(\r\n 'transitionend',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n swiper.$wrapperEl[0].addEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n","import getTranslate from './getTranslate.js';\r\nimport setTranslate from './setTranslate.js';\r\nimport minTranslate from './minTranslate.js';\r\nimport maxTranslate from './maxTranslate.js';\r\nimport translateTo from './translateTo.js';\r\n\r\nexport default {\r\n getTranslate,\r\n setTranslate,\r\n minTranslate,\r\n maxTranslate,\r\n translateTo,\r\n};\r\n","export default function setTransition(duration, byController) {\r\n const swiper = this;\r\n\r\n if (!swiper.params.cssMode) {\r\n swiper.$wrapperEl.transition(duration);\r\n }\r\n\r\n swiper.emit('setTransition', duration, byController);\r\n}\r\n","export default function transitionEmit({ swiper, runCallbacks, direction, step }) {\r\n const { activeIndex, previousIndex } = swiper;\r\n let dir = direction;\r\n if (!dir) {\r\n if (activeIndex > previousIndex) dir = 'next';\r\n else if (activeIndex < previousIndex) dir = 'prev';\r\n else dir = 'reset';\r\n }\r\n\r\n swiper.emit(`transition${step}`);\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit(`slideResetTransition${step}`);\r\n return;\r\n }\r\n swiper.emit(`slideChangeTransition${step}`);\r\n if (dir === 'next') {\r\n swiper.emit(`slideNextTransition${step}`);\r\n } else {\r\n swiper.emit(`slidePrevTransition${step}`);\r\n }\r\n }\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionStart(runCallbacks = true, direction) {\r\n const swiper = this;\r\n const { params } = swiper;\r\n if (params.cssMode) return;\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n\r\n transitionEmit({ swiper, runCallbacks, direction, step: 'Start' });\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionEnd(runCallbacks = true, direction) {\r\n const swiper = this;\r\n const { params } = swiper;\r\n swiper.animating = false;\r\n if (params.cssMode) return;\r\n swiper.setTransition(0);\r\n\r\n transitionEmit({ swiper, runCallbacks, direction, step: 'End' });\r\n}\r\n","import setTransition from './setTransition.js';\r\nimport transitionStart from './transitionStart.js';\r\nimport transitionEnd from './transitionEnd.js';\r\n\r\nexport default {\r\n setTransition,\r\n transitionStart,\r\n transitionEnd,\r\n};\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\r\n\r\nexport default function slideTo(\r\n index = 0,\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n initial,\r\n) {\r\n if (typeof index !== 'number' && typeof index !== 'string') {\r\n throw new Error(\r\n `The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`,\r\n );\r\n }\r\n\r\n if (typeof index === 'string') {\r\n /**\r\n * The `index` argument converted from `string` to `number`.\r\n * @type {number}\r\n */\r\n const indexAsNumber = parseInt(index, 10);\r\n\r\n /**\r\n * Determines whether the `index` argument is a valid `number`\r\n * after being converted from the `string` type.\r\n * @type {boolean}\r\n */\r\n const isValidNumber = isFinite(indexAsNumber);\r\n\r\n if (!isValidNumber) {\r\n throw new Error(\r\n `The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`,\r\n );\r\n }\r\n\r\n // Knowing that the converted `index` is a valid number,\r\n // we can update the original argument's value.\r\n index = indexAsNumber;\r\n }\r\n\r\n const swiper = this;\r\n let slideIndex = index;\r\n if (slideIndex < 0) slideIndex = 0;\r\n\r\n const {\r\n params,\r\n snapGrid,\r\n slidesGrid,\r\n previousIndex,\r\n activeIndex,\r\n rtlTranslate: rtl,\r\n wrapperEl,\r\n enabled,\r\n } = swiper;\r\n\r\n if (\r\n (swiper.animating && params.preventInteractionOnTransition) ||\r\n (!enabled && !internal && !initial)\r\n ) {\r\n return false;\r\n }\r\n\r\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\r\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\r\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n\r\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\r\n swiper.emit('beforeSlideChangeStart');\r\n }\r\n\r\n const translate = -snapGrid[snapIndex];\r\n\r\n // Update progress\r\n swiper.updateProgress(translate);\r\n\r\n // Normalize slideIndex\r\n if (params.normalizeSlideIndex) {\r\n for (let i = 0; i < slidesGrid.length; i += 1) {\r\n const normalizedTranslate = -Math.floor(translate * 100);\r\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\r\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\r\n if (typeof slidesGrid[i + 1] !== 'undefined') {\r\n if (\r\n normalizedTranslate >= normalizedGrid &&\r\n normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2\r\n ) {\r\n slideIndex = i;\r\n } else if (\r\n normalizedTranslate >= normalizedGrid &&\r\n normalizedTranslate < normalizedGridNext\r\n ) {\r\n slideIndex = i + 1;\r\n }\r\n } else if (normalizedTranslate >= normalizedGrid) {\r\n slideIndex = i;\r\n }\r\n }\r\n }\r\n // Directions locks\r\n if (swiper.initialized && slideIndex !== activeIndex) {\r\n if (\r\n !swiper.allowSlideNext &&\r\n translate < swiper.translate &&\r\n translate < swiper.minTranslate()\r\n ) {\r\n return false;\r\n }\r\n if (\r\n !swiper.allowSlidePrev &&\r\n translate > swiper.translate &&\r\n translate > swiper.maxTranslate()\r\n ) {\r\n if ((activeIndex || 0) !== slideIndex) return false;\r\n }\r\n }\r\n\r\n let direction;\r\n if (slideIndex > activeIndex) direction = 'next';\r\n else if (slideIndex < activeIndex) direction = 'prev';\r\n else direction = 'reset';\r\n\r\n // Update Index\r\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\r\n swiper.updateActiveIndex(slideIndex);\r\n // Update Height\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n swiper.updateSlidesClasses();\r\n if (params.effect !== 'slide') {\r\n swiper.setTranslate(translate);\r\n }\r\n if (direction !== 'reset') {\r\n swiper.transitionStart(runCallbacks, direction);\r\n swiper.transitionEnd(runCallbacks, direction);\r\n }\r\n return false;\r\n }\r\n if (params.cssMode) {\r\n const isH = swiper.isHorizontal();\r\n const t = rtl ? translate : -translate;\r\n if (speed === 0) {\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n if (isVirtual) {\r\n swiper.wrapperEl.style.scrollSnapType = 'none';\r\n swiper._immediateVirtual = true;\r\n }\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\r\n if (isVirtual) {\r\n requestAnimationFrame(() => {\r\n swiper.wrapperEl.style.scrollSnapType = '';\r\n swiper._swiperImmediateVirtual = false;\r\n });\r\n }\r\n } else {\r\n if (!swiper.support.smoothScroll) {\r\n animateCSSModeScroll({ swiper, targetPosition: t, side: isH ? 'left' : 'top' });\r\n return true;\r\n }\r\n wrapperEl.scrollTo({\r\n [isH ? 'left' : 'top']: t,\r\n behavior: 'smooth',\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(translate);\r\n swiper.updateActiveIndex(slideIndex);\r\n swiper.updateSlidesClasses();\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.transitionStart(runCallbacks, direction);\r\n\r\n if (speed === 0) {\r\n swiper.transitionEnd(runCallbacks, direction);\r\n } else if (!swiper.animating) {\r\n swiper.animating = true;\r\n if (!swiper.onSlideToWrapperTransitionEnd) {\r\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) return;\r\n if (e.target !== this) return;\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'transitionend',\r\n swiper.onSlideToWrapperTransitionEnd,\r\n );\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onSlideToWrapperTransitionEnd,\r\n );\r\n swiper.onSlideToWrapperTransitionEnd = null;\r\n delete swiper.onSlideToWrapperTransitionEnd;\r\n swiper.transitionEnd(runCallbacks, direction);\r\n };\r\n }\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onSlideToWrapperTransitionEnd,\r\n );\r\n }\r\n\r\n return true;\r\n}\r\n","export default function slideToLoop(\r\n index = 0,\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n) {\r\n if (typeof index === 'string') {\r\n /**\r\n * The `index` argument converted from `string` to `number`.\r\n * @type {number}\r\n */\r\n const indexAsNumber = parseInt(index, 10);\r\n\r\n /**\r\n * Determines whether the `index` argument is a valid `number`\r\n * after being converted from the `string` type.\r\n * @type {boolean}\r\n */\r\n const isValidNumber = isFinite(indexAsNumber);\r\n\r\n if (!isValidNumber) {\r\n throw new Error(\r\n `The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`,\r\n );\r\n }\r\n\r\n // Knowing that the converted `index` is a valid number,\r\n // we can update the original argument's value.\r\n index = indexAsNumber;\r\n }\r\n\r\n const swiper = this;\r\n let newIndex = index;\r\n if (swiper.params.loop) {\r\n newIndex += swiper.loopedSlides;\r\n }\r\n\r\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n const { animating, enabled, params } = swiper;\r\n if (!enabled) return swiper;\r\n let perGroup = params.slidesPerGroup;\r\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\r\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\r\n }\r\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\r\n if (params.loop) {\r\n if (animating && params.loopPreventsSlide) return false;\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n if (params.rewind && swiper.isEnd) {\r\n return swiper.slideTo(0, speed, runCallbacks, internal);\r\n }\r\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n const { params, animating, snapGrid, slidesGrid, rtlTranslate, enabled } = swiper;\r\n if (!enabled) return swiper;\r\n\r\n if (params.loop) {\r\n if (animating && params.loopPreventsSlide) return false;\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n function normalize(val) {\r\n if (val < 0) return -Math.floor(Math.abs(val));\r\n return Math.floor(val);\r\n }\r\n const normalizedTranslate = normalize(translate);\r\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\r\n\r\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\r\n if (typeof prevSnap === 'undefined' && params.cssMode) {\r\n let prevSnapIndex;\r\n snapGrid.forEach((snap, snapIndex) => {\r\n if (normalizedTranslate >= snap) {\r\n // prevSnap = snap;\r\n prevSnapIndex = snapIndex;\r\n }\r\n });\r\n if (typeof prevSnapIndex !== 'undefined') {\r\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\r\n }\r\n }\r\n let prevIndex = 0;\r\n if (typeof prevSnap !== 'undefined') {\r\n prevIndex = slidesGrid.indexOf(prevSnap);\r\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\r\n if (\r\n params.slidesPerView === 'auto' &&\r\n params.slidesPerGroup === 1 &&\r\n params.slidesPerGroupAuto\r\n ) {\r\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\r\n prevIndex = Math.max(prevIndex, 0);\r\n }\r\n }\r\n if (params.rewind && swiper.isBeginning) {\r\n const lastIndex =\r\n swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\r\n ? swiper.virtual.slides.length - 1\r\n : swiper.slides.length - 1;\r\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\r\n }\r\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideToClosest(\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n threshold = 0.5,\r\n) {\r\n const swiper = this;\r\n let index = swiper.activeIndex;\r\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\r\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\r\n\r\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n if (translate >= swiper.snapGrid[snapIndex]) {\r\n // The current translate is on or after the current snap index, so the choice\r\n // is between the current index and the one after it.\r\n const currentSnap = swiper.snapGrid[snapIndex];\r\n const nextSnap = swiper.snapGrid[snapIndex + 1];\r\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\r\n index += swiper.params.slidesPerGroup;\r\n }\r\n } else {\r\n // The current translate is before the current snap index, so the choice\r\n // is between the current index and the one before it.\r\n const prevSnap = swiper.snapGrid[snapIndex - 1];\r\n const currentSnap = swiper.snapGrid[snapIndex];\r\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\r\n index -= swiper.params.slidesPerGroup;\r\n }\r\n }\r\n index = Math.max(index, 0);\r\n index = Math.min(index, swiper.slidesGrid.length - 1);\r\n\r\n return swiper.slideTo(index, speed, runCallbacks, internal);\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport { nextTick } from '../../shared/utils.js';\r\n\r\nexport default function slideToClickedSlide() {\r\n const swiper = this;\r\n const { params, $wrapperEl } = swiper;\r\n\r\n const slidesPerView =\r\n params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\r\n let slideToIndex = swiper.clickedIndex;\r\n let realIndex;\r\n if (params.loop) {\r\n if (swiper.animating) return;\r\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n if (params.centeredSlides) {\r\n if (\r\n slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\r\n slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2\r\n ) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl\r\n .children(\r\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\r\n )\r\n .eq(0)\r\n .index();\r\n\r\n nextTick(() => {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl\r\n .children(\r\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\r\n )\r\n .eq(0)\r\n .index();\r\n\r\n nextTick(() => {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n}\r\n","import slideTo from './slideTo.js';\r\nimport slideToLoop from './slideToLoop.js';\r\nimport slideNext from './slideNext.js';\r\nimport slidePrev from './slidePrev.js';\r\nimport slideReset from './slideReset.js';\r\nimport slideToClosest from './slideToClosest.js';\r\nimport slideToClickedSlide from './slideToClickedSlide.js';\r\n\r\nexport default {\r\n slideTo,\r\n slideToLoop,\r\n slideNext,\r\n slidePrev,\r\n slideReset,\r\n slideToClosest,\r\n slideToClickedSlide,\r\n};\r\n","import { getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function loopCreate() {\r\n const swiper = this;\r\n const document = getDocument();\r\n const { params, $wrapperEl } = swiper;\r\n // Remove duplicated slides\r\n const $selector =\r\n $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\r\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\r\n\r\n let slides = $selector.children(`.${params.slideClass}`);\r\n\r\n if (params.loopFillGroupWithBlank) {\r\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\r\n if (blankSlidesNum !== params.slidesPerGroup) {\r\n for (let i = 0; i < blankSlidesNum; i += 1) {\r\n const blankNode = $(document.createElement('div')).addClass(\r\n `${params.slideClass} ${params.slideBlankClass}`,\r\n );\r\n $selector.append(blankNode);\r\n }\r\n slides = $selector.children(`.${params.slideClass}`);\r\n }\r\n }\r\n\r\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\r\n\r\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\r\n swiper.loopedSlides += params.loopAdditionalSlides;\r\n if (swiper.loopedSlides > slides.length) {\r\n swiper.loopedSlides = slides.length;\r\n }\r\n\r\n const prependSlides = [];\r\n const appendSlides = [];\r\n slides.each((el, index) => {\r\n const slide = $(el);\r\n if (index < swiper.loopedSlides) {\r\n appendSlides.push(el);\r\n }\r\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\r\n prependSlides.push(el);\r\n }\r\n slide.attr('data-swiper-slide-index', index);\r\n });\r\n for (let i = 0; i < appendSlides.length; i += 1) {\r\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\r\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n}\r\n","export default function loopFix() {\r\n const swiper = this;\r\n\r\n swiper.emit('beforeLoopFix');\r\n\r\n const {\r\n activeIndex,\r\n slides,\r\n loopedSlides,\r\n allowSlidePrev,\r\n allowSlideNext,\r\n snapGrid,\r\n rtlTranslate: rtl,\r\n } = swiper;\r\n let newIndex;\r\n swiper.allowSlidePrev = true;\r\n swiper.allowSlideNext = true;\r\n\r\n const snapTranslate = -snapGrid[activeIndex];\r\n const diff = snapTranslate - swiper.getTranslate();\r\n\r\n // Fix For Negative Oversliding\r\n if (activeIndex < loopedSlides) {\r\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\r\n newIndex += loopedSlides;\r\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n if (slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n } else if (activeIndex >= slides.length - loopedSlides) {\r\n // Fix For Positive Oversliding\r\n newIndex = -slides.length + activeIndex + loopedSlides;\r\n newIndex += loopedSlides;\r\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n if (slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n }\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n\r\n swiper.emit('loopFix');\r\n}\r\n","export default function loopDestroy() {\r\n const swiper = this;\r\n const { $wrapperEl, params, slides } = swiper;\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`,\r\n )\r\n .remove();\r\n slides.removeAttr('data-swiper-slide-index');\r\n}\r\n","import loopCreate from './loopCreate.js';\r\nimport loopFix from './loopFix.js';\r\nimport loopDestroy from './loopDestroy.js';\r\n\r\nexport default {\r\n loopCreate,\r\n loopFix,\r\n loopDestroy,\r\n};\r\n","export default function setGrabCursor(moving) {\r\n const swiper = this;\r\n if (\r\n swiper.support.touch ||\r\n !swiper.params.simulateTouch ||\r\n (swiper.params.watchOverflow && swiper.isLocked) ||\r\n swiper.params.cssMode\r\n )\r\n return;\r\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\r\n el.style.cursor = 'move';\r\n el.style.cursor = moving ? 'grabbing' : 'grab';\r\n}\r\n","export default function unsetGrabCursor() {\r\n const swiper = this;\r\n if (\r\n swiper.support.touch ||\r\n (swiper.params.watchOverflow && swiper.isLocked) ||\r\n swiper.params.cssMode\r\n ) {\r\n return;\r\n }\r\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\r\n}\r\n","import setGrabCursor from './setGrabCursor.js';\r\nimport unsetGrabCursor from './unsetGrabCursor.js';\r\n\r\nexport default {\r\n setGrabCursor,\r\n unsetGrabCursor,\r\n};\r\n","import { getWindow, getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { now } from '../../shared/utils.js';\r\n\r\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\r\nfunction closestElement(selector, base = this) {\r\n function __closestFrom(el) {\r\n if (!el || el === getDocument() || el === getWindow()) return null;\r\n if (el.assignedSlot) el = el.assignedSlot;\r\n const found = el.closest(selector);\r\n if (!found && !el.getRootNode) {\r\n return null;\r\n }\r\n return found || __closestFrom(el.getRootNode().host);\r\n }\r\n return __closestFrom(base);\r\n}\r\n\r\nexport default function onTouchStart(event) {\r\n const swiper = this;\r\n const document = getDocument();\r\n const window = getWindow();\r\n\r\n const data = swiper.touchEventsData;\r\n const { params, touches, enabled } = swiper;\r\n if (!enabled) return;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return;\r\n }\r\n if (!swiper.animating && params.cssMode && params.loop) {\r\n swiper.loopFix();\r\n }\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n let $targetEl = $(e.target);\r\n\r\n if (params.touchEventsTarget === 'wrapper') {\r\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\r\n }\r\n data.isTouchEvent = e.type === 'touchstart';\r\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\r\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\r\n if (data.isTouched && data.isMoved) return;\r\n\r\n // change target el for shadow root component\r\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\r\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\r\n $targetEl = $(event.path[0]);\r\n }\r\n\r\n const noSwipingSelector = params.noSwipingSelector\r\n ? params.noSwipingSelector\r\n : `.${params.noSwipingClass}`;\r\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\r\n\r\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\r\n if (\r\n params.noSwiping &&\r\n (isTargetShadow\r\n ? closestElement(noSwipingSelector, $targetEl[0])\r\n : $targetEl.closest(noSwipingSelector)[0])\r\n ) {\r\n swiper.allowClick = true;\r\n return;\r\n }\r\n\r\n if (params.swipeHandler) {\r\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\r\n }\r\n\r\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n const startX = touches.currentX;\r\n const startY = touches.currentY;\r\n\r\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\r\n\r\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\r\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\r\n if (\r\n edgeSwipeDetection &&\r\n (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)\r\n ) {\r\n if (edgeSwipeDetection === 'prevent') {\r\n event.preventDefault();\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n Object.assign(data, {\r\n isTouched: true,\r\n isMoved: false,\r\n allowTouchCallbacks: true,\r\n isScrolling: undefined,\r\n startMoving: undefined,\r\n });\r\n\r\n touches.startX = startX;\r\n touches.startY = startY;\r\n data.touchStartTime = now();\r\n swiper.allowClick = true;\r\n swiper.updateSize();\r\n swiper.swipeDirection = undefined;\r\n if (params.threshold > 0) data.allowThresholdMove = false;\r\n if (e.type !== 'touchstart') {\r\n let preventDefault = true;\r\n if ($targetEl.is(data.focusableElements)) {\r\n preventDefault = false;\r\n if ($targetEl[0].nodeName === 'SELECT') {\r\n data.isTouched = false;\r\n }\r\n }\r\n if (\r\n document.activeElement &&\r\n $(document.activeElement).is(data.focusableElements) &&\r\n document.activeElement !== $targetEl[0]\r\n ) {\r\n document.activeElement.blur();\r\n }\r\n\r\n const shouldPreventDefault =\r\n preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\r\n if (\r\n (params.touchStartForcePreventDefault || shouldPreventDefault) &&\r\n !$targetEl[0].isContentEditable\r\n ) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (\r\n swiper.params.freeMode &&\r\n swiper.params.freeMode.enabled &&\r\n swiper.freeMode &&\r\n swiper.animating &&\r\n !params.cssMode\r\n ) {\r\n swiper.freeMode.onTouchStart();\r\n }\r\n swiper.emit('touchStart', e);\r\n}\r\n","import { getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { now } from '../../shared/utils.js';\r\n\r\nexport default function onTouchMove(event) {\r\n const document = getDocument();\r\n const swiper = this;\r\n const data = swiper.touchEventsData;\r\n const { params, touches, rtlTranslate: rtl, enabled } = swiper;\r\n if (!enabled) return;\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n if (!data.isTouched) {\r\n if (data.startMoving && data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n return;\r\n }\r\n if (data.isTouchEvent && e.type !== 'touchmove') return;\r\n const targetTouch =\r\n e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\r\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\r\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\r\n if (e.preventedByNestedSwiper) {\r\n touches.startX = pageX;\r\n touches.startY = pageY;\r\n return;\r\n }\r\n if (!swiper.allowTouchMove) {\r\n if (!$(e.target).is(data.focusableElements)) {\r\n swiper.allowClick = false;\r\n }\r\n if (data.isTouched) {\r\n Object.assign(touches, {\r\n startX: pageX,\r\n startY: pageY,\r\n currentX: pageX,\r\n currentY: pageY,\r\n });\r\n data.touchStartTime = now();\r\n }\r\n return;\r\n }\r\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\r\n if (swiper.isVertical()) {\r\n // Vertical\r\n if (\r\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\r\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\r\n ) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n return;\r\n }\r\n } else if (\r\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\r\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\r\n ) {\r\n return;\r\n }\r\n }\r\n if (data.isTouchEvent && document.activeElement) {\r\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\r\n data.isMoved = true;\r\n swiper.allowClick = false;\r\n return;\r\n }\r\n }\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchMove', e);\r\n }\r\n if (e.targetTouches && e.targetTouches.length > 1) return;\r\n\r\n touches.currentX = pageX;\r\n touches.currentY = pageY;\r\n\r\n const diffX = touches.currentX - touches.startX;\r\n const diffY = touches.currentY - touches.startY;\r\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold)\r\n return;\r\n\r\n if (typeof data.isScrolling === 'undefined') {\r\n let touchAngle;\r\n if (\r\n (swiper.isHorizontal() && touches.currentY === touches.startY) ||\r\n (swiper.isVertical() && touches.currentX === touches.startX)\r\n ) {\r\n data.isScrolling = false;\r\n } else {\r\n // eslint-disable-next-line\r\n if (diffX * diffX + diffY * diffY >= 25) {\r\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\r\n data.isScrolling = swiper.isHorizontal()\r\n ? touchAngle > params.touchAngle\r\n : 90 - touchAngle > params.touchAngle;\r\n }\r\n }\r\n }\r\n if (data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n if (typeof data.startMoving === 'undefined') {\r\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\r\n data.startMoving = true;\r\n }\r\n }\r\n if (data.isScrolling) {\r\n data.isTouched = false;\r\n return;\r\n }\r\n if (!data.startMoving) {\r\n return;\r\n }\r\n swiper.allowClick = false;\r\n if (!params.cssMode && e.cancelable) {\r\n e.preventDefault();\r\n }\r\n if (params.touchMoveStopPropagation && !params.nested) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (!data.isMoved) {\r\n if (params.loop && !params.cssMode) {\r\n swiper.loopFix();\r\n }\r\n data.startTranslate = swiper.getTranslate();\r\n swiper.setTransition(0);\r\n if (swiper.animating) {\r\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\r\n }\r\n data.allowMomentumBounce = false;\r\n // Grab Cursor\r\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n swiper.setGrabCursor(true);\r\n }\r\n swiper.emit('sliderFirstMove', e);\r\n }\r\n swiper.emit('sliderMove', e);\r\n data.isMoved = true;\r\n\r\n let diff = swiper.isHorizontal() ? diffX : diffY;\r\n touches.diff = diff;\r\n\r\n diff *= params.touchRatio;\r\n if (rtl) diff = -diff;\r\n\r\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\r\n data.currentTranslate = diff + data.startTranslate;\r\n\r\n let disableParentSwiper = true;\r\n let resistanceRatio = params.resistanceRatio;\r\n if (params.touchReleaseOnEdges) {\r\n resistanceRatio = 0;\r\n }\r\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance)\r\n data.currentTranslate =\r\n swiper.minTranslate() -\r\n 1 +\r\n (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\r\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance)\r\n data.currentTranslate =\r\n swiper.maxTranslate() +\r\n 1 -\r\n (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\r\n }\r\n\r\n if (disableParentSwiper) {\r\n e.preventedByNestedSwiper = true;\r\n }\r\n\r\n // Directions locks\r\n if (\r\n !swiper.allowSlideNext &&\r\n swiper.swipeDirection === 'next' &&\r\n data.currentTranslate < data.startTranslate\r\n ) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n if (\r\n !swiper.allowSlidePrev &&\r\n swiper.swipeDirection === 'prev' &&\r\n data.currentTranslate > data.startTranslate\r\n ) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n\r\n // Threshold\r\n if (params.threshold > 0) {\r\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\r\n if (!data.allowThresholdMove) {\r\n data.allowThresholdMove = true;\r\n touches.startX = touches.currentX;\r\n touches.startY = touches.currentY;\r\n data.currentTranslate = data.startTranslate;\r\n touches.diff = swiper.isHorizontal()\r\n ? touches.currentX - touches.startX\r\n : touches.currentY - touches.startY;\r\n return;\r\n }\r\n } else {\r\n data.currentTranslate = data.startTranslate;\r\n return;\r\n }\r\n }\r\n\r\n if (!params.followFinger || params.cssMode) return;\r\n\r\n // Update active index in free mode\r\n if (\r\n (params.freeMode && params.freeMode.enabled && swiper.freeMode) ||\r\n params.watchSlidesProgress\r\n ) {\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\r\n swiper.freeMode.onTouchMove();\r\n }\r\n // Update progress\r\n swiper.updateProgress(data.currentTranslate);\r\n // Update translate\r\n swiper.setTranslate(data.currentTranslate);\r\n}\r\n","import { now, nextTick } from '../../shared/utils.js';\r\n\r\nexport default function onTouchEnd(event) {\r\n const swiper = this;\r\n const data = swiper.touchEventsData;\r\n\r\n const { params, touches, rtlTranslate: rtl, slidesGrid, enabled } = swiper;\r\n if (!enabled) return;\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchEnd', e);\r\n }\r\n data.allowTouchCallbacks = false;\r\n if (!data.isTouched) {\r\n if (data.isMoved && params.grabCursor) {\r\n swiper.setGrabCursor(false);\r\n }\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n // Return Grab Cursor\r\n if (\r\n params.grabCursor &&\r\n data.isMoved &&\r\n data.isTouched &&\r\n (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\r\n ) {\r\n swiper.setGrabCursor(false);\r\n }\r\n\r\n // Time diff\r\n const touchEndTime = now();\r\n const timeDiff = touchEndTime - data.touchStartTime;\r\n\r\n // Tap, doubleTap, Click\r\n if (swiper.allowClick) {\r\n const pathTree = e.path || (e.composedPath && e.composedPath());\r\n swiper.updateClickedSlide((pathTree && pathTree[0]) || e.target);\r\n swiper.emit('tap click', e);\r\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\r\n swiper.emit('doubleTap doubleClick', e);\r\n }\r\n }\r\n\r\n data.lastClickTime = now();\r\n nextTick(() => {\r\n if (!swiper.destroyed) swiper.allowClick = true;\r\n });\r\n\r\n if (\r\n !data.isTouched ||\r\n !data.isMoved ||\r\n !swiper.swipeDirection ||\r\n touches.diff === 0 ||\r\n data.currentTranslate === data.startTranslate\r\n ) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n\r\n let currentPos;\r\n if (params.followFinger) {\r\n currentPos = rtl ? swiper.translate : -swiper.translate;\r\n } else {\r\n currentPos = -data.currentTranslate;\r\n }\r\n\r\n if (params.cssMode) {\r\n return;\r\n }\r\n\r\n if (swiper.params.freeMode && params.freeMode.enabled) {\r\n swiper.freeMode.onTouchEnd({ currentPos });\r\n return;\r\n }\r\n\r\n // Find current slide\r\n let stopIndex = 0;\r\n let groupSize = swiper.slidesSizesGrid[0];\r\n for (\r\n let i = 0;\r\n i < slidesGrid.length;\r\n i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup\r\n ) {\r\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\r\n if (typeof slidesGrid[i + increment] !== 'undefined') {\r\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\r\n }\r\n } else if (currentPos >= slidesGrid[i]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\r\n }\r\n }\r\n\r\n let rewindFirstIndex = null;\r\n let rewindLastIndex = null;\r\n if (params.rewind) {\r\n if (swiper.isBeginning) {\r\n rewindLastIndex =\r\n swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\r\n ? swiper.virtual.slides.length - 1\r\n : swiper.slides.length - 1;\r\n } else if (swiper.isEnd) {\r\n rewindFirstIndex = 0;\r\n }\r\n }\r\n // Find current slide size\r\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\r\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\r\n if (timeDiff > params.longSwipesMs) {\r\n // Long touches\r\n if (!params.longSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (swiper.swipeDirection === 'next') {\r\n if (ratio >= params.longSwipesRatio)\r\n swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);\r\n else swiper.slideTo(stopIndex);\r\n }\r\n if (swiper.swipeDirection === 'prev') {\r\n if (ratio > 1 - params.longSwipesRatio) {\r\n swiper.slideTo(stopIndex + increment);\r\n } else if (\r\n rewindLastIndex !== null &&\r\n ratio < 0 &&\r\n Math.abs(ratio) > params.longSwipesRatio\r\n ) {\r\n swiper.slideTo(rewindLastIndex);\r\n } else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n } else {\r\n // Short swipes\r\n if (!params.shortSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n const isNavButtonTarget =\r\n swiper.navigation &&\r\n (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\r\n if (!isNavButtonTarget) {\r\n if (swiper.swipeDirection === 'next') {\r\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\r\n }\r\n if (swiper.swipeDirection === 'prev') {\r\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\r\n }\r\n } else if (e.target === swiper.navigation.nextEl) {\r\n swiper.slideTo(stopIndex + increment);\r\n } else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n}\r\n","export default function onResize() {\r\n const swiper = this;\r\n\r\n const { params, el } = swiper;\r\n\r\n if (el && el.offsetWidth === 0) return;\r\n\r\n // Breakpoints\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n // Save locks\r\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\r\n\r\n // Disable locks on resize\r\n swiper.allowSlideNext = true;\r\n swiper.allowSlidePrev = true;\r\n\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n\r\n swiper.updateSlidesClasses();\r\n if (\r\n (params.slidesPerView === 'auto' || params.slidesPerView > 1) &&\r\n swiper.isEnd &&\r\n !swiper.isBeginning &&\r\n !swiper.params.centeredSlides\r\n ) {\r\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n\r\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\r\n swiper.autoplay.run();\r\n }\r\n // Return locks after resize\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n\r\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n}\r\n","export default function onClick(e) {\r\n const swiper = this;\r\n if (!swiper.enabled) return;\r\n if (!swiper.allowClick) {\r\n if (swiper.params.preventClicks) e.preventDefault();\r\n if (swiper.params.preventClicksPropagation && swiper.animating) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","export default function onScroll() {\r\n const swiper = this;\r\n const { wrapperEl, rtlTranslate, enabled } = swiper;\r\n if (!enabled) return;\r\n swiper.previousTranslate = swiper.translate;\r\n if (swiper.isHorizontal()) {\r\n swiper.translate = -wrapperEl.scrollLeft;\r\n } else {\r\n swiper.translate = -wrapperEl.scrollTop;\r\n }\r\n // eslint-disable-next-line\r\n if (swiper.translate === 0) swiper.translate = 0;\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n let newProgress;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n if (newProgress !== swiper.progress) {\r\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, false);\r\n}\r\n","import { getDocument } from 'ssr-window';\r\n\r\nimport onTouchStart from './onTouchStart.js';\r\nimport onTouchMove from './onTouchMove.js';\r\nimport onTouchEnd from './onTouchEnd.js';\r\nimport onResize from './onResize.js';\r\nimport onClick from './onClick.js';\r\nimport onScroll from './onScroll.js';\r\n\r\nlet dummyEventAttached = false;\r\nfunction dummyEventListener() {}\r\n\r\nconst events = (swiper, method) => {\r\n const document = getDocument();\r\n const { params, touchEvents, el, wrapperEl, device, support } = swiper;\r\n const capture = !!params.nested;\r\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\r\n const swiperMethod = method;\r\n\r\n // Touch Events\r\n if (!support.touch) {\r\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\r\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\r\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\r\n } else {\r\n const passiveListener =\r\n touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\r\n el[domMethod](\r\n touchEvents.move,\r\n swiper.onTouchMove,\r\n support.passiveListener ? { passive: false, capture } : capture,\r\n );\r\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n if (touchEvents.cancel) {\r\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\r\n }\r\n }\r\n // Prevent Links Clicks\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n el[domMethod]('click', swiper.onClick, true);\r\n }\r\n if (params.cssMode) {\r\n wrapperEl[domMethod]('scroll', swiper.onScroll);\r\n }\r\n\r\n // Resize handler\r\n if (params.updateOnWindowResize) {\r\n swiper[swiperMethod](\r\n device.ios || device.android\r\n ? 'resize orientationchange observerUpdate'\r\n : 'resize observerUpdate',\r\n onResize,\r\n true,\r\n );\r\n } else {\r\n swiper[swiperMethod]('observerUpdate', onResize, true);\r\n }\r\n};\r\n\r\nfunction attachEvents() {\r\n const swiper = this;\r\n const document = getDocument();\r\n const { params, support } = swiper;\r\n\r\n swiper.onTouchStart = onTouchStart.bind(swiper);\r\n swiper.onTouchMove = onTouchMove.bind(swiper);\r\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n\r\n if (params.cssMode) {\r\n swiper.onScroll = onScroll.bind(swiper);\r\n }\r\n\r\n swiper.onClick = onClick.bind(swiper);\r\n\r\n if (support.touch && !dummyEventAttached) {\r\n document.addEventListener('touchstart', dummyEventListener);\r\n dummyEventAttached = true;\r\n }\r\n\r\n events(swiper, 'on');\r\n}\r\n\r\nfunction detachEvents() {\r\n const swiper = this;\r\n events(swiper, 'off');\r\n}\r\n\r\nexport default {\r\n attachEvents,\r\n detachEvents,\r\n};\r\n","import { extend } from '../../shared/utils.js';\r\n\r\nconst isGridEnabled = (swiper, params) => {\r\n return swiper.grid && params.grid && params.grid.rows > 1;\r\n};\r\n\r\nexport default function setBreakpoint() {\r\n const swiper = this;\r\n const { activeIndex, initialized, loopedSlides = 0, params, $el } = swiper;\r\n const breakpoints = params.breakpoints;\r\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\r\n\r\n // Get breakpoint for window width and update parameters\r\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\r\n\r\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\r\n\r\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\r\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\r\n const wasMultiRow = isGridEnabled(swiper, params);\r\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\r\n\r\n const wasEnabled = params.enabled;\r\n\r\n if (wasMultiRow && !isMultiRow) {\r\n $el.removeClass(\r\n `${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`,\r\n );\r\n swiper.emitContainerClasses();\r\n } else if (!wasMultiRow && isMultiRow) {\r\n $el.addClass(`${params.containerModifierClass}grid`);\r\n if (\r\n (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column') ||\r\n (!breakpointParams.grid.fill && params.grid.fill === 'column')\r\n ) {\r\n $el.addClass(`${params.containerModifierClass}grid-column`);\r\n }\r\n swiper.emitContainerClasses();\r\n }\r\n\r\n // Toggle navigation, pagination, scrollbar\r\n ['navigation', 'pagination', 'scrollbar'].forEach((prop) => {\r\n const wasModuleEnabled = params[prop] && params[prop].enabled;\r\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\r\n if (wasModuleEnabled && !isModuleEnabled) {\r\n swiper[prop].disable();\r\n }\r\n if (!wasModuleEnabled && isModuleEnabled) {\r\n swiper[prop].enable();\r\n }\r\n });\r\n\r\n const directionChanged =\r\n breakpointParams.direction && breakpointParams.direction !== params.direction;\r\n const needsReLoop =\r\n params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\r\n\r\n if (directionChanged && initialized) {\r\n swiper.changeDirection();\r\n }\r\n extend(swiper.params, breakpointParams);\r\n\r\n const isEnabled = swiper.params.enabled;\r\n\r\n Object.assign(swiper, {\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n });\r\n\r\n if (wasEnabled && !isEnabled) {\r\n swiper.disable();\r\n } else if (!wasEnabled && isEnabled) {\r\n swiper.enable();\r\n }\r\n\r\n swiper.currentBreakpoint = breakpoint;\r\n\r\n swiper.emit('_beforeBreakpoint', breakpointParams);\r\n\r\n if (needsReLoop && initialized) {\r\n swiper.loopDestroy();\r\n swiper.loopCreate();\r\n swiper.updateSlides();\r\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\r\n }\r\n\r\n swiper.emit('breakpoint', breakpointParams);\r\n}\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\r\n if (!breakpoints || (base === 'container' && !containerEl)) return undefined;\r\n let breakpoint = false;\r\n\r\n const window = getWindow();\r\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\r\n\r\n const points = Object.keys(breakpoints).map((point) => {\r\n if (typeof point === 'string' && point.indexOf('@') === 0) {\r\n const minRatio = parseFloat(point.substr(1));\r\n const value = currentHeight * minRatio;\r\n return { value, point };\r\n }\r\n return { value: point, point };\r\n });\r\n\r\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\r\n for (let i = 0; i < points.length; i += 1) {\r\n const { point, value } = points[i];\r\n if (base === 'window') {\r\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\r\n breakpoint = point;\r\n }\r\n } else if (value <= containerEl.clientWidth) {\r\n breakpoint = point;\r\n }\r\n }\r\n return breakpoint || 'max';\r\n}\r\n","import setBreakpoint from './setBreakpoint.js';\r\nimport getBreakpoint from './getBreakpoint.js';\r\n\r\nexport default { setBreakpoint, getBreakpoint };\r\n","function prepareClasses(entries, prefix) {\r\n const resultClasses = [];\r\n entries.forEach((item) => {\r\n if (typeof item === 'object') {\r\n Object.keys(item).forEach((classNames) => {\r\n if (item[classNames]) {\r\n resultClasses.push(prefix + classNames);\r\n }\r\n });\r\n } else if (typeof item === 'string') {\r\n resultClasses.push(prefix + item);\r\n }\r\n });\r\n return resultClasses;\r\n}\r\n\r\nexport default function addClasses() {\r\n const swiper = this;\r\n const { classNames, params, rtl, $el, device, support } = swiper;\r\n // prettier-ignore\r\n const suffixes = prepareClasses([\r\n 'initialized',\r\n params.direction,\r\n { 'pointer-events': !support.touch },\r\n { 'free-mode': swiper.params.freeMode && params.freeMode.enabled },\r\n { 'autoheight': params.autoHeight },\r\n { 'rtl': rtl },\r\n { 'grid': params.grid && params.grid.rows > 1 },\r\n { 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' },\r\n { 'android': device.android },\r\n { 'ios': device.ios },\r\n { 'css-mode': params.cssMode },\r\n { 'centered': params.cssMode && params.centeredSlides },\r\n { 'watch-progress': params.watchSlidesProgress },\r\n ], params.containerModifierClass);\r\n classNames.push(...suffixes);\r\n $el.addClass([...classNames].join(' '));\r\n swiper.emitContainerClasses();\r\n}\r\n","export default function removeClasses() {\r\n const swiper = this;\r\n const { $el, classNames } = swiper;\r\n\r\n $el.removeClass(classNames.join(' '));\r\n swiper.emitContainerClasses();\r\n}\r\n","import addClasses from './addClasses.js';\r\nimport removeClasses from './removeClasses.js';\r\n\r\nexport default { addClasses, removeClasses };\r\n","import { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\r\n const window = getWindow();\r\n let image;\r\n function onReady() {\r\n if (callback) callback();\r\n }\r\n const isPicture = $(imageEl).parent('picture')[0];\r\n\r\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\r\n if (src) {\r\n image = new window.Image();\r\n image.onload = onReady;\r\n image.onerror = onReady;\r\n if (sizes) {\r\n image.sizes = sizes;\r\n }\r\n if (srcset) {\r\n image.srcset = srcset;\r\n }\r\n if (src) {\r\n image.src = src;\r\n }\r\n } else {\r\n onReady();\r\n }\r\n } else {\r\n // image already loaded...\r\n onReady();\r\n }\r\n}\r\n","export default function preloadImages() {\r\n const swiper = this;\r\n swiper.imagesToLoad = swiper.$el.find('img');\r\n function onReady() {\r\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\r\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\r\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\r\n if (swiper.params.updateOnImagesReady) swiper.update();\r\n swiper.emit('imagesReady');\r\n }\r\n }\r\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\r\n const imageEl = swiper.imagesToLoad[i];\r\n swiper.loadImage(\r\n imageEl,\r\n imageEl.currentSrc || imageEl.getAttribute('src'),\r\n imageEl.srcset || imageEl.getAttribute('srcset'),\r\n imageEl.sizes || imageEl.getAttribute('sizes'),\r\n true,\r\n onReady,\r\n );\r\n }\r\n}\r\n","import loadImage from './loadImage.js';\r\nimport preloadImages from './preloadImages.js';\r\n\r\nexport default {\r\n loadImage,\r\n preloadImages,\r\n};\r\n","function checkOverflow() {\r\n const swiper = this;\r\n const { isLocked: wasLocked, params } = swiper;\r\n const { slidesOffsetBefore } = params;\r\n\r\n if (slidesOffsetBefore) {\r\n const lastSlideIndex = swiper.slides.length - 1;\r\n const lastSlideRightEdge =\r\n swiper.slidesGrid[lastSlideIndex] +\r\n swiper.slidesSizesGrid[lastSlideIndex] +\r\n slidesOffsetBefore * 2;\r\n swiper.isLocked = swiper.size > lastSlideRightEdge;\r\n } else {\r\n swiper.isLocked = swiper.snapGrid.length === 1;\r\n }\r\n if (params.allowSlideNext === true) {\r\n swiper.allowSlideNext = !swiper.isLocked;\r\n }\r\n if (params.allowSlidePrev === true) {\r\n swiper.allowSlidePrev = !swiper.isLocked;\r\n }\r\n\r\n if (wasLocked && wasLocked !== swiper.isLocked) {\r\n swiper.isEnd = false;\r\n }\r\n if (wasLocked !== swiper.isLocked) {\r\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n }\r\n}\r\n\r\nexport default { checkOverflow };\r\n","export default {\r\n init: true,\r\n direction: 'horizontal',\r\n touchEventsTarget: 'wrapper',\r\n initialSlide: 0,\r\n speed: 300,\r\n cssMode: false,\r\n updateOnWindowResize: true,\r\n resizeObserver: true,\r\n nested: false,\r\n createElements: false,\r\n enabled: true,\r\n focusableElements: 'input, select, option, textarea, button, video, label',\r\n\r\n // Overrides\r\n width: null,\r\n height: null,\r\n\r\n //\r\n preventInteractionOnTransition: false,\r\n\r\n // ssr\r\n userAgent: null,\r\n url: null,\r\n\r\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\r\n edgeSwipeDetection: false,\r\n edgeSwipeThreshold: 20,\r\n\r\n // Autoheight\r\n autoHeight: false,\r\n\r\n // Set wrapper width\r\n setWrapperSize: false,\r\n\r\n // Virtual Translate\r\n virtualTranslate: false,\r\n\r\n // Effects\r\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\r\n\r\n // Breakpoints\r\n breakpoints: undefined,\r\n breakpointsBase: 'window',\r\n\r\n // Slides grid\r\n spaceBetween: 0,\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n slidesPerGroupSkip: 0,\r\n slidesPerGroupAuto: false,\r\n centeredSlides: false,\r\n centeredSlidesBounds: false,\r\n slidesOffsetBefore: 0, // in px\r\n slidesOffsetAfter: 0, // in px\r\n normalizeSlideIndex: true,\r\n centerInsufficientSlides: false,\r\n\r\n // Disable swiper and hide navigation when container not overflow\r\n watchOverflow: true,\r\n\r\n // Round length\r\n roundLengths: false,\r\n\r\n // Touches\r\n touchRatio: 1,\r\n touchAngle: 45,\r\n simulateTouch: true,\r\n shortSwipes: true,\r\n longSwipes: true,\r\n longSwipesRatio: 0.5,\r\n longSwipesMs: 300,\r\n followFinger: true,\r\n allowTouchMove: true,\r\n threshold: 0,\r\n touchMoveStopPropagation: false,\r\n touchStartPreventDefault: true,\r\n touchStartForcePreventDefault: false,\r\n touchReleaseOnEdges: false,\r\n\r\n // Unique Navigation Elements\r\n uniqueNavElements: true,\r\n\r\n // Resistance\r\n resistance: true,\r\n resistanceRatio: 0.85,\r\n\r\n // Progress\r\n watchSlidesProgress: false,\r\n\r\n // Cursor\r\n grabCursor: false,\r\n\r\n // Clicks\r\n preventClicks: true,\r\n preventClicksPropagation: true,\r\n slideToClickedSlide: false,\r\n\r\n // Images\r\n preloadImages: true,\r\n updateOnImagesReady: true,\r\n\r\n // loop\r\n loop: false,\r\n loopAdditionalSlides: 0,\r\n loopedSlides: null,\r\n loopFillGroupWithBlank: false,\r\n loopPreventsSlide: true,\r\n\r\n // rewind\r\n rewind: false,\r\n\r\n // Swiping/no swiping\r\n allowSlidePrev: true,\r\n allowSlideNext: true,\r\n swipeHandler: null, // '.swipe-handler',\r\n noSwiping: true,\r\n noSwipingClass: 'swiper-no-swiping',\r\n noSwipingSelector: null,\r\n\r\n // Passive Listeners\r\n passiveListeners: true,\r\n\r\n maxBackfaceHiddenSlides: 10,\r\n\r\n // NS\r\n containerModifierClass: 'swiper-', // NEW\r\n slideClass: 'swiper-slide',\r\n slideBlankClass: 'swiper-slide-invisible-blank',\r\n slideActiveClass: 'swiper-slide-active',\r\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\r\n slideVisibleClass: 'swiper-slide-visible',\r\n slideDuplicateClass: 'swiper-slide-duplicate',\r\n slideNextClass: 'swiper-slide-next',\r\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\r\n slidePrevClass: 'swiper-slide-prev',\r\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\r\n wrapperClass: 'swiper-wrapper',\r\n\r\n // Callbacks\r\n runCallbacksOnInit: true,\r\n\r\n // Internals\r\n _emitClasses: false,\r\n};\r\n","import { extend } from '../shared/utils.js';\r\n\r\nexport default function moduleExtendParams(params, allModulesParams) {\r\n return function extendParams(obj = {}) {\r\n const moduleParamName = Object.keys(obj)[0];\r\n const moduleParams = obj[moduleParamName];\r\n if (typeof moduleParams !== 'object' || moduleParams === null) {\r\n extend(allModulesParams, obj);\r\n return;\r\n }\r\n if (\r\n ['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 &&\r\n params[moduleParamName] === true\r\n ) {\r\n params[moduleParamName] = { auto: true };\r\n }\r\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\r\n extend(allModulesParams, obj);\r\n return;\r\n }\r\n if (params[moduleParamName] === true) {\r\n params[moduleParamName] = { enabled: true };\r\n }\r\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\r\n params[moduleParamName].enabled = true;\r\n }\r\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\r\n extend(allModulesParams, obj);\r\n };\r\n}\r\n","/* eslint no-param-reassign: \"off\" */\r\nimport { getDocument } from 'ssr-window';\r\nimport $ from '../shared/dom.js';\r\nimport { extend, now, deleteProps } from '../shared/utils.js';\r\nimport { getSupport } from '../shared/get-support.js';\r\nimport { getDevice } from '../shared/get-device.js';\r\nimport { getBrowser } from '../shared/get-browser.js';\r\n\r\nimport Resize from './modules/resize/resize.js';\r\nimport Observer from './modules/observer/observer.js';\r\n\r\nimport eventsEmitter from './events-emitter.js';\r\n\r\nimport update from './update/index.js';\r\nimport translate from './translate/index.js';\r\nimport transition from './transition/index.js';\r\nimport slide from './slide/index.js';\r\nimport loop from './loop/index.js';\r\nimport grabCursor from './grab-cursor/index.js';\r\nimport events from './events/index.js';\r\nimport breakpoints from './breakpoints/index.js';\r\nimport classes from './classes/index.js';\r\nimport images from './images/index.js';\r\nimport checkOverflow from './check-overflow/index.js';\r\n\r\nimport defaults from './defaults.js';\r\nimport moduleExtendParams from './moduleExtendParams.js';\r\n\r\nconst prototypes = {\r\n eventsEmitter,\r\n update,\r\n translate,\r\n transition,\r\n slide,\r\n loop,\r\n grabCursor,\r\n events,\r\n breakpoints,\r\n checkOverflow,\r\n classes,\r\n images,\r\n};\r\n\r\nconst extendedDefaults = {};\r\n\r\nclass Swiper {\r\n constructor(...args) {\r\n let el;\r\n let params;\r\n if (\r\n args.length === 1 &&\r\n args[0].constructor &&\r\n Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object'\r\n ) {\r\n params = args[0];\r\n } else {\r\n [el, params] = args;\r\n }\r\n if (!params) params = {};\r\n\r\n params = extend({}, params);\r\n if (el && !params.el) params.el = el;\r\n\r\n if (params.el && $(params.el).length > 1) {\r\n const swipers = [];\r\n $(params.el).each((containerEl) => {\r\n const newParams = extend({}, params, { el: containerEl });\r\n swipers.push(new Swiper(newParams));\r\n });\r\n return swipers;\r\n }\r\n\r\n // Swiper Instance\r\n const swiper = this;\r\n swiper.__swiper__ = true;\r\n swiper.support = getSupport();\r\n swiper.device = getDevice({ userAgent: params.userAgent });\r\n swiper.browser = getBrowser();\r\n\r\n swiper.eventsListeners = {};\r\n swiper.eventsAnyListeners = [];\r\n swiper.modules = [...swiper.__modules__];\r\n if (params.modules && Array.isArray(params.modules)) {\r\n swiper.modules.push(...params.modules);\r\n }\r\n\r\n const allModulesParams = {};\r\n\r\n swiper.modules.forEach((mod) => {\r\n mod({\r\n swiper,\r\n extendParams: moduleExtendParams(params, allModulesParams),\r\n on: swiper.on.bind(swiper),\r\n once: swiper.once.bind(swiper),\r\n off: swiper.off.bind(swiper),\r\n emit: swiper.emit.bind(swiper),\r\n });\r\n });\r\n\r\n // Extend defaults with modules params\r\n const swiperParams = extend({}, defaults, allModulesParams);\r\n\r\n // Extend defaults with passed params\r\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\r\n swiper.originalParams = extend({}, swiper.params);\r\n swiper.passedParams = extend({}, params);\r\n\r\n // add event listeners\r\n if (swiper.params && swiper.params.on) {\r\n Object.keys(swiper.params.on).forEach((eventName) => {\r\n swiper.on(eventName, swiper.params.on[eventName]);\r\n });\r\n }\r\n if (swiper.params && swiper.params.onAny) {\r\n swiper.onAny(swiper.params.onAny);\r\n }\r\n\r\n // Save Dom lib\r\n swiper.$ = $;\r\n\r\n // Extend Swiper\r\n Object.assign(swiper, {\r\n enabled: swiper.params.enabled,\r\n el,\r\n\r\n // Classes\r\n classNames: [],\r\n\r\n // Slides\r\n slides: $(),\r\n slidesGrid: [],\r\n snapGrid: [],\r\n slidesSizesGrid: [],\r\n\r\n // isDirection\r\n isHorizontal() {\r\n return swiper.params.direction === 'horizontal';\r\n },\r\n isVertical() {\r\n return swiper.params.direction === 'vertical';\r\n },\r\n\r\n // Indexes\r\n activeIndex: 0,\r\n realIndex: 0,\r\n\r\n //\r\n isBeginning: true,\r\n isEnd: false,\r\n\r\n // Props\r\n translate: 0,\r\n previousTranslate: 0,\r\n progress: 0,\r\n velocity: 0,\r\n animating: false,\r\n\r\n // Locks\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n\r\n // Touch Events\r\n touchEvents: (function touchEvents() {\r\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\r\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\r\n\r\n swiper.touchEventsTouch = {\r\n start: touch[0],\r\n move: touch[1],\r\n end: touch[2],\r\n cancel: touch[3],\r\n };\r\n swiper.touchEventsDesktop = {\r\n start: desktop[0],\r\n move: desktop[1],\r\n end: desktop[2],\r\n };\r\n return swiper.support.touch || !swiper.params.simulateTouch\r\n ? swiper.touchEventsTouch\r\n : swiper.touchEventsDesktop;\r\n })(),\r\n touchEventsData: {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n allowTouchCallbacks: undefined,\r\n touchStartTime: undefined,\r\n isScrolling: undefined,\r\n currentTranslate: undefined,\r\n startTranslate: undefined,\r\n allowThresholdMove: undefined,\r\n // Form elements to match\r\n focusableElements: swiper.params.focusableElements,\r\n // Last click time\r\n lastClickTime: now(),\r\n clickTimeout: undefined,\r\n // Velocities\r\n velocities: [],\r\n allowMomentumBounce: undefined,\r\n isTouchEvent: undefined,\r\n startMoving: undefined,\r\n },\r\n\r\n // Clicks\r\n allowClick: true,\r\n\r\n // Touches\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n\r\n touches: {\r\n startX: 0,\r\n startY: 0,\r\n currentX: 0,\r\n currentY: 0,\r\n diff: 0,\r\n },\r\n\r\n // Images\r\n imagesToLoad: [],\r\n imagesLoaded: 0,\r\n });\r\n\r\n swiper.emit('_swiper');\r\n\r\n // Init\r\n if (swiper.params.init) {\r\n swiper.init();\r\n }\r\n\r\n // Return app instance\r\n return swiper;\r\n }\r\n\r\n enable() {\r\n const swiper = this;\r\n if (swiper.enabled) return;\r\n swiper.enabled = true;\r\n if (swiper.params.grabCursor) {\r\n swiper.setGrabCursor();\r\n }\r\n swiper.emit('enable');\r\n }\r\n\r\n disable() {\r\n const swiper = this;\r\n if (!swiper.enabled) return;\r\n swiper.enabled = false;\r\n if (swiper.params.grabCursor) {\r\n swiper.unsetGrabCursor();\r\n }\r\n swiper.emit('disable');\r\n }\r\n\r\n setProgress(progress, speed) {\r\n const swiper = this;\r\n progress = Math.min(Math.max(progress, 0), 1);\r\n const min = swiper.minTranslate();\r\n const max = swiper.maxTranslate();\r\n const current = (max - min) * progress + min;\r\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n emitContainerClasses() {\r\n const swiper = this;\r\n if (!swiper.params._emitClasses || !swiper.el) return;\r\n const cls = swiper.el.className.split(' ').filter((className) => {\r\n return (\r\n className.indexOf('swiper') === 0 ||\r\n className.indexOf(swiper.params.containerModifierClass) === 0\r\n );\r\n });\r\n swiper.emit('_containerClasses', cls.join(' '));\r\n }\r\n\r\n getSlideClasses(slideEl) {\r\n const swiper = this;\r\n if (swiper.destroyed) return '';\r\n\r\n return slideEl.className\r\n .split(' ')\r\n .filter((className) => {\r\n return (\r\n className.indexOf('swiper-slide') === 0 ||\r\n className.indexOf(swiper.params.slideClass) === 0\r\n );\r\n })\r\n .join(' ');\r\n }\r\n\r\n emitSlidesClasses() {\r\n const swiper = this;\r\n if (!swiper.params._emitClasses || !swiper.el) return;\r\n const updates = [];\r\n swiper.slides.each((slideEl) => {\r\n const classNames = swiper.getSlideClasses(slideEl);\r\n updates.push({ slideEl, classNames });\r\n swiper.emit('_slideClass', slideEl, classNames);\r\n });\r\n swiper.emit('_slideClasses', updates);\r\n }\r\n\r\n slidesPerViewDynamic(view = 'current', exact = false) {\r\n const swiper = this;\r\n const { params, slides, slidesGrid, slidesSizesGrid, size: swiperSize, activeIndex } = swiper;\r\n let spv = 1;\r\n if (params.centeredSlides) {\r\n let slideSize = slides[activeIndex].swiperSlideSize;\r\n let breakLoop;\r\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\r\n if (slides[i] && !breakLoop) {\r\n slideSize += slides[i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) breakLoop = true;\r\n }\r\n }\r\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\r\n if (slides[i] && !breakLoop) {\r\n slideSize += slides[i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) breakLoop = true;\r\n }\r\n }\r\n } else {\r\n // eslint-disable-next-line\r\n if (view === 'current') {\r\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\r\n const slideInView = exact\r\n ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize\r\n : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\r\n if (slideInView) {\r\n spv += 1;\r\n }\r\n }\r\n } else {\r\n // previous\r\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\r\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\r\n if (slideInView) {\r\n spv += 1;\r\n }\r\n }\r\n }\r\n }\r\n return spv;\r\n }\r\n\r\n update() {\r\n const swiper = this;\r\n if (!swiper || swiper.destroyed) return;\r\n const { snapGrid, params } = swiper;\r\n // Breakpoints\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n\r\n function setTranslate() {\r\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\r\n const newTranslate = Math.min(\r\n Math.max(translateValue, swiper.maxTranslate()),\r\n swiper.minTranslate(),\r\n );\r\n swiper.setTranslate(newTranslate);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n let translated;\r\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\r\n setTranslate();\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n } else {\r\n if (\r\n (swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) &&\r\n swiper.isEnd &&\r\n !swiper.params.centeredSlides\r\n ) {\r\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n if (!translated) {\r\n setTranslate();\r\n }\r\n }\r\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n swiper.emit('update');\r\n }\r\n\r\n changeDirection(newDirection, needUpdate = true) {\r\n const swiper = this;\r\n const currentDirection = swiper.params.direction;\r\n if (!newDirection) {\r\n // eslint-disable-next-line\r\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\r\n }\r\n if (\r\n newDirection === currentDirection ||\r\n (newDirection !== 'horizontal' && newDirection !== 'vertical')\r\n ) {\r\n return swiper;\r\n }\r\n\r\n swiper.$el\r\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\r\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\r\n swiper.emitContainerClasses();\r\n\r\n swiper.params.direction = newDirection;\r\n\r\n swiper.slides.each((slideEl) => {\r\n if (newDirection === 'vertical') {\r\n slideEl.style.width = '';\r\n } else {\r\n slideEl.style.height = '';\r\n }\r\n });\r\n\r\n swiper.emit('changeDirection');\r\n if (needUpdate) swiper.update();\r\n\r\n return swiper;\r\n }\r\n\r\n changeLanguageDirection(direction) {\r\n const swiper = this;\r\n if ((swiper.rtl && direction === 'rtl') || (!swiper.rtl && direction === 'ltr')) return;\r\n swiper.rtl = direction === 'rtl';\r\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\r\n if (swiper.rtl) {\r\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\r\n swiper.el.dir = 'rtl';\r\n } else {\r\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\r\n swiper.el.dir = 'ltr';\r\n }\r\n swiper.update();\r\n }\r\n\r\n mount(el) {\r\n const swiper = this;\r\n if (swiper.mounted) return true;\r\n\r\n // Find el\r\n const $el = $(el || swiper.params.el);\r\n el = $el[0];\r\n\r\n if (!el) {\r\n return false;\r\n }\r\n\r\n el.swiper = swiper;\r\n\r\n const getWrapperSelector = () => {\r\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\r\n };\r\n\r\n const getWrapper = () => {\r\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\r\n const res = $(el.shadowRoot.querySelector(getWrapperSelector()));\r\n // Children needs to return slot items\r\n res.children = (options) => $el.children(options);\r\n return res;\r\n }\r\n if (!$el.children) {\r\n return $($el).children(getWrapperSelector());\r\n }\r\n return $el.children(getWrapperSelector());\r\n };\r\n // Find Wrapper\r\n let $wrapperEl = getWrapper();\r\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\r\n const document = getDocument();\r\n const wrapper = document.createElement('div');\r\n $wrapperEl = $(wrapper);\r\n wrapper.className = swiper.params.wrapperClass;\r\n $el.append(wrapper);\r\n $el.children(`.${swiper.params.slideClass}`).each((slideEl) => {\r\n $wrapperEl.append(slideEl);\r\n });\r\n }\r\n\r\n Object.assign(swiper, {\r\n $el,\r\n el,\r\n $wrapperEl,\r\n wrapperEl: $wrapperEl[0],\r\n mounted: true,\r\n\r\n // RTL\r\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\r\n rtlTranslate:\r\n swiper.params.direction === 'horizontal' &&\r\n (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\r\n });\r\n\r\n return true;\r\n }\r\n\r\n init(el) {\r\n const swiper = this;\r\n if (swiper.initialized) return swiper;\r\n\r\n const mounted = swiper.mount(el);\r\n if (mounted === false) return swiper;\r\n\r\n swiper.emit('beforeInit');\r\n\r\n // Set breakpoint\r\n if (swiper.params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n // Add Classes\r\n swiper.addClasses();\r\n\r\n // Create loop\r\n if (swiper.params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n // Update size\r\n swiper.updateSize();\r\n\r\n // Update slides\r\n swiper.updateSlides();\r\n\r\n if (swiper.params.watchOverflow) {\r\n swiper.checkOverflow();\r\n }\r\n\r\n // Set Grab Cursor\r\n if (swiper.params.grabCursor && swiper.enabled) {\r\n swiper.setGrabCursor();\r\n }\r\n\r\n if (swiper.params.preloadImages) {\r\n swiper.preloadImages();\r\n }\r\n\r\n // Slide To Initial Slide\r\n if (swiper.params.loop) {\r\n swiper.slideTo(\r\n swiper.params.initialSlide + swiper.loopedSlides,\r\n 0,\r\n swiper.params.runCallbacksOnInit,\r\n false,\r\n true,\r\n );\r\n } else {\r\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\r\n }\r\n\r\n // Attach events\r\n swiper.attachEvents();\r\n\r\n // Init Flag\r\n swiper.initialized = true;\r\n\r\n // Emit\r\n swiper.emit('init');\r\n swiper.emit('afterInit');\r\n\r\n return swiper;\r\n }\r\n\r\n destroy(deleteInstance = true, cleanStyles = true) {\r\n const swiper = this;\r\n const { params, $el, $wrapperEl, slides } = swiper;\r\n\r\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\r\n return null;\r\n }\r\n\r\n swiper.emit('beforeDestroy');\r\n\r\n // Init Flag\r\n swiper.initialized = false;\r\n\r\n // Detach events\r\n swiper.detachEvents();\r\n\r\n // Destroy loop\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n\r\n // Cleanup styles\r\n if (cleanStyles) {\r\n swiper.removeClasses();\r\n $el.removeAttr('style');\r\n $wrapperEl.removeAttr('style');\r\n if (slides && slides.length) {\r\n slides\r\n .removeClass(\r\n [\r\n params.slideVisibleClass,\r\n params.slideActiveClass,\r\n params.slideNextClass,\r\n params.slidePrevClass,\r\n ].join(' '),\r\n )\r\n .removeAttr('style')\r\n .removeAttr('data-swiper-slide-index');\r\n }\r\n }\r\n\r\n swiper.emit('destroy');\r\n\r\n // Detach emitter events\r\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\r\n swiper.off(eventName);\r\n });\r\n\r\n if (deleteInstance !== false) {\r\n swiper.$el[0].swiper = null;\r\n deleteProps(swiper);\r\n }\r\n swiper.destroyed = true;\r\n\r\n return null;\r\n }\r\n\r\n static extendDefaults(newDefaults) {\r\n extend(extendedDefaults, newDefaults);\r\n }\r\n\r\n static get extendedDefaults() {\r\n return extendedDefaults;\r\n }\r\n\r\n static get defaults() {\r\n return defaults;\r\n }\r\n\r\n static installModule(mod) {\r\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\r\n const modules = Swiper.prototype.__modules__;\r\n\r\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\r\n modules.push(mod);\r\n }\r\n }\r\n\r\n static use(module) {\r\n if (Array.isArray(module)) {\r\n module.forEach((m) => Swiper.installModule(m));\r\n return Swiper;\r\n }\r\n Swiper.installModule(module);\r\n return Swiper;\r\n }\r\n}\r\n\r\nObject.keys(prototypes).forEach((prototypeGroup) => {\r\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\r\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\r\n });\r\n});\r\n\r\nSwiper.use([Resize, Observer]);\r\n\r\nexport default Swiper;\r\n","import $ from '../../shared/dom.js';\r\nimport { setCSSProperty } from '../../shared/utils.js';\r\n\r\nexport default function Virtual({ swiper, extendParams, on, emit }) {\r\n extendParams({\r\n virtual: {\r\n enabled: false,\r\n slides: [],\r\n cache: true,\r\n renderSlide: null,\r\n renderExternal: null,\r\n renderExternalUpdate: true,\r\n addSlidesBefore: 0,\r\n addSlidesAfter: 0,\r\n },\r\n });\r\n\r\n let cssModeTimeout;\r\n\r\n swiper.virtual = {\r\n cache: {},\r\n from: undefined,\r\n to: undefined,\r\n slides: [],\r\n offset: 0,\r\n slidesGrid: [],\r\n };\r\n\r\n function renderSlide(slide, index) {\r\n const params = swiper.params.virtual;\r\n if (params.cache && swiper.virtual.cache[index]) {\r\n return swiper.virtual.cache[index];\r\n }\r\n const $slideEl = params.renderSlide\r\n ? $(params.renderSlide.call(swiper, slide, index))\r\n : $(\r\n `
${slide}
`,\r\n );\r\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\r\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\r\n return $slideEl;\r\n }\r\n\r\n function update(force) {\r\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\r\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\r\n const {\r\n from: previousFrom,\r\n to: previousTo,\r\n slides,\r\n slidesGrid: previousSlidesGrid,\r\n offset: previousOffset,\r\n } = swiper.virtual;\r\n if (!swiper.params.cssMode) {\r\n swiper.updateActiveIndex();\r\n }\r\n\r\n const activeIndex = swiper.activeIndex || 0;\r\n\r\n let offsetProp;\r\n if (swiper.rtlTranslate) offsetProp = 'right';\r\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\r\n\r\n let slidesAfter;\r\n let slidesBefore;\r\n if (centeredSlides) {\r\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\r\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\r\n } else {\r\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\r\n slidesBefore = slidesPerGroup + addSlidesBefore;\r\n }\r\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\r\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\r\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\r\n\r\n Object.assign(swiper.virtual, {\r\n from,\r\n to,\r\n offset,\r\n slidesGrid: swiper.slidesGrid,\r\n });\r\n\r\n function onRendered() {\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n if (swiper.lazy && swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n emit('virtualUpdate');\r\n }\r\n\r\n if (previousFrom === from && previousTo === to && !force) {\r\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\r\n swiper.slides.css(offsetProp, `${offset}px`);\r\n }\r\n swiper.updateProgress();\r\n emit('virtualUpdate');\r\n return;\r\n }\r\n if (swiper.params.virtual.renderExternal) {\r\n swiper.params.virtual.renderExternal.call(swiper, {\r\n offset,\r\n from,\r\n to,\r\n slides: (function getSlides() {\r\n const slidesToRender = [];\r\n for (let i = from; i <= to; i += 1) {\r\n slidesToRender.push(slides[i]);\r\n }\r\n return slidesToRender;\r\n })(),\r\n });\r\n if (swiper.params.virtual.renderExternalUpdate) {\r\n onRendered();\r\n } else {\r\n emit('virtualUpdate');\r\n }\r\n return;\r\n }\r\n const prependIndexes = [];\r\n const appendIndexes = [];\r\n if (force) {\r\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\r\n } else {\r\n for (let i = previousFrom; i <= previousTo; i += 1) {\r\n if (i < from || i > to) {\r\n swiper.$wrapperEl\r\n .find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`)\r\n .remove();\r\n }\r\n }\r\n }\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (i >= from && i <= to) {\r\n if (typeof previousTo === 'undefined' || force) {\r\n appendIndexes.push(i);\r\n } else {\r\n if (i > previousTo) appendIndexes.push(i);\r\n if (i < previousFrom) prependIndexes.push(i);\r\n }\r\n }\r\n }\r\n appendIndexes.forEach((index) => {\r\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\r\n });\r\n prependIndexes\r\n .sort((a, b) => b - a)\r\n .forEach((index) => {\r\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\r\n });\r\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\r\n onRendered();\r\n }\r\n\r\n function appendSlide(slides) {\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\r\n }\r\n } else {\r\n swiper.virtual.slides.push(slides);\r\n }\r\n update(true);\r\n }\r\n function prependSlide(slides) {\r\n const activeIndex = swiper.activeIndex;\r\n let newActiveIndex = activeIndex + 1;\r\n let numberOfNewSlides = 1;\r\n\r\n if (Array.isArray(slides)) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\r\n }\r\n newActiveIndex = activeIndex + slides.length;\r\n numberOfNewSlides = slides.length;\r\n } else {\r\n swiper.virtual.slides.unshift(slides);\r\n }\r\n if (swiper.params.virtual.cache) {\r\n const cache = swiper.virtual.cache;\r\n const newCache = {};\r\n Object.keys(cache).forEach((cachedIndex) => {\r\n const $cachedEl = cache[cachedIndex];\r\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\r\n if (cachedElIndex) {\r\n $cachedEl.attr(\r\n 'data-swiper-slide-index',\r\n parseInt(cachedElIndex, 10) + numberOfNewSlides,\r\n );\r\n }\r\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\r\n });\r\n swiper.virtual.cache = newCache;\r\n }\r\n update(true);\r\n swiper.slideTo(newActiveIndex, 0);\r\n }\r\n function removeSlide(slidesIndexes) {\r\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\r\n let activeIndex = swiper.activeIndex;\r\n if (Array.isArray(slidesIndexes)) {\r\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\r\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\r\n if (swiper.params.virtual.cache) {\r\n delete swiper.virtual.cache[slidesIndexes[i]];\r\n }\r\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\r\n activeIndex = Math.max(activeIndex, 0);\r\n }\r\n } else {\r\n swiper.virtual.slides.splice(slidesIndexes, 1);\r\n if (swiper.params.virtual.cache) {\r\n delete swiper.virtual.cache[slidesIndexes];\r\n }\r\n if (slidesIndexes < activeIndex) activeIndex -= 1;\r\n activeIndex = Math.max(activeIndex, 0);\r\n }\r\n update(true);\r\n swiper.slideTo(activeIndex, 0);\r\n }\r\n function removeAllSlides() {\r\n swiper.virtual.slides = [];\r\n if (swiper.params.virtual.cache) {\r\n swiper.virtual.cache = {};\r\n }\r\n update(true);\r\n swiper.slideTo(0, 0);\r\n }\r\n\r\n on('beforeInit', () => {\r\n if (!swiper.params.virtual.enabled) return;\r\n swiper.virtual.slides = swiper.params.virtual.slides;\r\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\r\n\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n\r\n if (!swiper.params.initialSlide) {\r\n update();\r\n }\r\n });\r\n on('setTranslate', () => {\r\n if (!swiper.params.virtual.enabled) return;\r\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\r\n clearTimeout(cssModeTimeout);\r\n cssModeTimeout = setTimeout(() => {\r\n update();\r\n }, 100);\r\n } else {\r\n update();\r\n }\r\n });\r\n on('init update resize', () => {\r\n if (!swiper.params.virtual.enabled) return;\r\n if (swiper.params.cssMode) {\r\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\r\n }\r\n });\r\n\r\n Object.assign(swiper.virtual, {\r\n appendSlide,\r\n prependSlide,\r\n removeSlide,\r\n removeAllSlides,\r\n update,\r\n });\r\n}\r\n","/* eslint-disable consistent-return */\r\nimport { getWindow, getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Keyboard({ swiper, extendParams, on, emit }) {\r\n const document = getDocument();\r\n const window = getWindow();\r\n swiper.keyboard = {\r\n enabled: false,\r\n };\r\n extendParams({\r\n keyboard: {\r\n enabled: false,\r\n onlyInViewport: true,\r\n pageUpDown: true,\r\n },\r\n });\r\n\r\n function handle(event) {\r\n if (!swiper.enabled) return;\r\n\r\n const { rtlTranslate: rtl } = swiper;\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent; // jquery fix\r\n const kc = e.keyCode || e.charCode;\r\n const pageUpDown = swiper.params.keyboard.pageUpDown;\r\n const isPageUp = pageUpDown && kc === 33;\r\n const isPageDown = pageUpDown && kc === 34;\r\n const isArrowLeft = kc === 37;\r\n const isArrowRight = kc === 39;\r\n const isArrowUp = kc === 38;\r\n const isArrowDown = kc === 40;\r\n // Directions locks\r\n if (\r\n !swiper.allowSlideNext &&\r\n ((swiper.isHorizontal() && isArrowRight) ||\r\n (swiper.isVertical() && isArrowDown) ||\r\n isPageDown)\r\n ) {\r\n return false;\r\n }\r\n if (\r\n !swiper.allowSlidePrev &&\r\n ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)\r\n ) {\r\n return false;\r\n }\r\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\r\n return undefined;\r\n }\r\n if (\r\n document.activeElement &&\r\n document.activeElement.nodeName &&\r\n (document.activeElement.nodeName.toLowerCase() === 'input' ||\r\n document.activeElement.nodeName.toLowerCase() === 'textarea')\r\n ) {\r\n return undefined;\r\n }\r\n if (\r\n swiper.params.keyboard.onlyInViewport &&\r\n (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)\r\n ) {\r\n let inView = false;\r\n // Check that swiper should be inside of visible area of window\r\n if (\r\n swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 &&\r\n swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0\r\n ) {\r\n return undefined;\r\n }\r\n\r\n const $el = swiper.$el;\r\n const swiperWidth = $el[0].clientWidth;\r\n const swiperHeight = $el[0].clientHeight;\r\n const windowWidth = window.innerWidth;\r\n const windowHeight = window.innerHeight;\r\n const swiperOffset = swiper.$el.offset();\r\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n const swiperCoord = [\r\n [swiperOffset.left, swiperOffset.top],\r\n [swiperOffset.left + swiperWidth, swiperOffset.top],\r\n [swiperOffset.left, swiperOffset.top + swiperHeight],\r\n [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight],\r\n ];\r\n for (let i = 0; i < swiperCoord.length; i += 1) {\r\n const point = swiperCoord[i];\r\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\r\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\r\n inView = true;\r\n }\r\n }\r\n if (!inView) return undefined;\r\n }\r\n if (swiper.isHorizontal()) {\r\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n }\r\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))\r\n swiper.slideNext();\r\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))\r\n swiper.slidePrev();\r\n } else {\r\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n }\r\n if (isPageDown || isArrowDown) swiper.slideNext();\r\n if (isPageUp || isArrowUp) swiper.slidePrev();\r\n }\r\n emit('keyPress', kc);\r\n return undefined;\r\n }\r\n function enable() {\r\n if (swiper.keyboard.enabled) return;\r\n $(document).on('keydown', handle);\r\n swiper.keyboard.enabled = true;\r\n }\r\n function disable() {\r\n if (!swiper.keyboard.enabled) return;\r\n $(document).off('keydown', handle);\r\n swiper.keyboard.enabled = false;\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.keyboard.enabled) {\r\n enable();\r\n }\r\n });\r\n on('destroy', () => {\r\n if (swiper.keyboard.enabled) {\r\n disable();\r\n }\r\n });\r\n\r\n Object.assign(swiper.keyboard, {\r\n enable,\r\n disable,\r\n });\r\n}\r\n","/* eslint-disable consistent-return */\r\nimport { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { now, nextTick } from '../../shared/utils.js';\r\n\r\nexport default function Mousewheel({ swiper, extendParams, on, emit }) {\r\n const window = getWindow();\r\n\r\n extendParams({\r\n mousewheel: {\r\n enabled: false,\r\n releaseOnEdges: false,\r\n invert: false,\r\n forceToAxis: false,\r\n sensitivity: 1,\r\n eventsTarget: 'container',\r\n thresholdDelta: null,\r\n thresholdTime: null,\r\n },\r\n });\r\n\r\n swiper.mousewheel = {\r\n enabled: false,\r\n };\r\n\r\n let timeout;\r\n let lastScrollTime = now();\r\n let lastEventBeforeSnap;\r\n const recentWheelEvents = [];\r\n\r\n function normalize(e) {\r\n // Reasonable defaults\r\n const PIXEL_STEP = 10;\r\n const LINE_HEIGHT = 40;\r\n const PAGE_HEIGHT = 800;\r\n\r\n let sX = 0;\r\n let sY = 0; // spinX, spinY\r\n let pX = 0;\r\n let pY = 0; // pixelX, pixelY\r\n\r\n // Legacy\r\n if ('detail' in e) {\r\n sY = e.detail;\r\n }\r\n if ('wheelDelta' in e) {\r\n sY = -e.wheelDelta / 120;\r\n }\r\n if ('wheelDeltaY' in e) {\r\n sY = -e.wheelDeltaY / 120;\r\n }\r\n if ('wheelDeltaX' in e) {\r\n sX = -e.wheelDeltaX / 120;\r\n }\r\n\r\n // side scrolling on FF with DOMMouseScroll\r\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\r\n sX = sY;\r\n sY = 0;\r\n }\r\n\r\n pX = sX * PIXEL_STEP;\r\n pY = sY * PIXEL_STEP;\r\n\r\n if ('deltaY' in e) {\r\n pY = e.deltaY;\r\n }\r\n if ('deltaX' in e) {\r\n pX = e.deltaX;\r\n }\r\n\r\n if (e.shiftKey && !pX) {\r\n // if user scrolls with shift he wants horizontal scroll\r\n pX = pY;\r\n pY = 0;\r\n }\r\n\r\n if ((pX || pY) && e.deltaMode) {\r\n if (e.deltaMode === 1) {\r\n // delta in LINE units\r\n pX *= LINE_HEIGHT;\r\n pY *= LINE_HEIGHT;\r\n } else {\r\n // delta in PAGE units\r\n pX *= PAGE_HEIGHT;\r\n pY *= PAGE_HEIGHT;\r\n }\r\n }\r\n\r\n // Fall-back if spin cannot be determined\r\n if (pX && !sX) {\r\n sX = pX < 1 ? -1 : 1;\r\n }\r\n if (pY && !sY) {\r\n sY = pY < 1 ? -1 : 1;\r\n }\r\n\r\n return {\r\n spinX: sX,\r\n spinY: sY,\r\n pixelX: pX,\r\n pixelY: pY,\r\n };\r\n }\r\n function handleMouseEnter() {\r\n if (!swiper.enabled) return;\r\n swiper.mouseEntered = true;\r\n }\r\n function handleMouseLeave() {\r\n if (!swiper.enabled) return;\r\n swiper.mouseEntered = false;\r\n }\r\n function animateSlider(newEvent) {\r\n if (\r\n swiper.params.mousewheel.thresholdDelta &&\r\n newEvent.delta < swiper.params.mousewheel.thresholdDelta\r\n ) {\r\n // Prevent if delta of wheel scroll delta is below configured threshold\r\n return false;\r\n }\r\n\r\n if (\r\n swiper.params.mousewheel.thresholdTime &&\r\n now() - lastScrollTime < swiper.params.mousewheel.thresholdTime\r\n ) {\r\n // Prevent if time between scrolls is below configured threshold\r\n return false;\r\n }\r\n\r\n // If the movement is NOT big enough and\r\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\r\n // Don't go any further (avoid insignificant scroll movement).\r\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\r\n // Return false as a default\r\n return true;\r\n }\r\n // If user is scrolling towards the end:\r\n // If the slider hasn't hit the latest slide or\r\n // if the slider is a loop and\r\n // if the slider isn't moving right now:\r\n // Go to next slide and\r\n // emit a scroll event.\r\n // Else (the user is scrolling towards the beginning) and\r\n // if the slider hasn't hit the first slide or\r\n // if the slider is a loop and\r\n // if the slider isn't moving right now:\r\n // Go to prev slide and\r\n // emit a scroll event.\r\n if (newEvent.direction < 0) {\r\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\r\n swiper.slideNext();\r\n emit('scroll', newEvent.raw);\r\n }\r\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\r\n swiper.slidePrev();\r\n emit('scroll', newEvent.raw);\r\n }\r\n // If you got here is because an animation has been triggered so store the current time\r\n lastScrollTime = new window.Date().getTime();\r\n // Return false as a default\r\n return false;\r\n }\r\n function releaseScroll(newEvent) {\r\n const params = swiper.params.mousewheel;\r\n if (newEvent.direction < 0) {\r\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\r\n // Return true to animate scroll on edges\r\n return true;\r\n }\r\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\r\n // Return true to animate scroll on edges\r\n return true;\r\n }\r\n return false;\r\n }\r\n function handle(event) {\r\n let e = event;\r\n let disableParentSwiper = true;\r\n if (!swiper.enabled) return;\r\n const params = swiper.params.mousewheel;\r\n\r\n if (swiper.params.cssMode) {\r\n e.preventDefault();\r\n }\r\n\r\n let target = swiper.$el;\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges)\r\n return true;\r\n\r\n if (e.originalEvent) e = e.originalEvent; // jquery fix\r\n let delta = 0;\r\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\r\n\r\n const data = normalize(e);\r\n\r\n if (params.forceToAxis) {\r\n if (swiper.isHorizontal()) {\r\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\r\n else return true;\r\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\r\n else return true;\r\n } else {\r\n delta =\r\n Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\r\n }\r\n\r\n if (delta === 0) return true;\r\n\r\n if (params.invert) delta = -delta;\r\n\r\n // Get the scroll positions\r\n let positions = swiper.getTranslate() + delta * params.sensitivity;\r\n\r\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\r\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\r\n\r\n // When loop is true:\r\n // the disableParentSwiper will be true.\r\n // When loop is false:\r\n // if the scroll positions is not on edge,\r\n // then the disableParentSwiper will be true.\r\n // if the scroll on edge positions,\r\n // then the disableParentSwiper will be false.\r\n disableParentSwiper = swiper.params.loop\r\n ? true\r\n : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\r\n\r\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\r\n\r\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\r\n // Register the new event in a variable which stores the relevant data\r\n const newEvent = {\r\n time: now(),\r\n delta: Math.abs(delta),\r\n direction: Math.sign(delta),\r\n raw: event,\r\n };\r\n\r\n // Keep the most recent events\r\n if (recentWheelEvents.length >= 2) {\r\n recentWheelEvents.shift(); // only store the last N events\r\n }\r\n const prevEvent = recentWheelEvents.length\r\n ? recentWheelEvents[recentWheelEvents.length - 1]\r\n : undefined;\r\n recentWheelEvents.push(newEvent);\r\n\r\n // If there is at least one previous recorded event:\r\n // If direction has changed or\r\n // if the scroll is quicker than the previous one:\r\n // Animate the slider.\r\n // Else (this is the first time the wheel is moved):\r\n // Animate the slider.\r\n if (prevEvent) {\r\n if (\r\n newEvent.direction !== prevEvent.direction ||\r\n newEvent.delta > prevEvent.delta ||\r\n newEvent.time > prevEvent.time + 150\r\n ) {\r\n animateSlider(newEvent);\r\n }\r\n } else {\r\n animateSlider(newEvent);\r\n }\r\n\r\n // If it's time to release the scroll:\r\n // Return now so you don't hit the preventDefault.\r\n if (releaseScroll(newEvent)) {\r\n return true;\r\n }\r\n } else {\r\n // Freemode or scrollContainer:\r\n\r\n // If we recently snapped after a momentum scroll, then ignore wheel events\r\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\r\n // or if it's a new scroll (larger delta or inverse sign as last event before\r\n // an end-of-momentum snap).\r\n const newEvent = {\r\n time: now(),\r\n delta: Math.abs(delta),\r\n direction: Math.sign(delta),\r\n };\r\n const ignoreWheelEvents =\r\n lastEventBeforeSnap &&\r\n newEvent.time < lastEventBeforeSnap.time + 500 &&\r\n newEvent.delta <= lastEventBeforeSnap.delta &&\r\n newEvent.direction === lastEventBeforeSnap.direction;\r\n if (!ignoreWheelEvents) {\r\n lastEventBeforeSnap = undefined;\r\n\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n }\r\n let position = swiper.getTranslate() + delta * params.sensitivity;\r\n const wasBeginning = swiper.isBeginning;\r\n const wasEnd = swiper.isEnd;\r\n\r\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\r\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\r\n\r\n swiper.setTransition(0);\r\n swiper.setTranslate(position);\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n if (swiper.params.freeMode.sticky) {\r\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\r\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\r\n // 1. do all N events have decreasing or same (absolute value) delta?\r\n // 2. did all N events arrive in the last M (M=500?) msecs?\r\n // 3. does the earliest event have an (absolute value) delta that's\r\n // at least P (P=1?) larger than the most recent event's delta?\r\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\r\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\r\n // Snap immediately and ignore remaining wheel events in this scroll.\r\n // See comment above for \"remaining wheel events in this scroll\" determination.\r\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\r\n clearTimeout(timeout);\r\n timeout = undefined;\r\n if (recentWheelEvents.length >= 15) {\r\n recentWheelEvents.shift(); // only store the last N events\r\n }\r\n const prevEvent = recentWheelEvents.length\r\n ? recentWheelEvents[recentWheelEvents.length - 1]\r\n : undefined;\r\n const firstEvent = recentWheelEvents[0];\r\n recentWheelEvents.push(newEvent);\r\n if (\r\n prevEvent &&\r\n (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)\r\n ) {\r\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\r\n recentWheelEvents.splice(0);\r\n } else if (\r\n recentWheelEvents.length >= 15 &&\r\n newEvent.time - firstEvent.time < 500 &&\r\n firstEvent.delta - newEvent.delta >= 1 &&\r\n newEvent.delta <= 6\r\n ) {\r\n // We're at the end of the deceleration of a momentum scroll, so there's no need\r\n // to wait for more events. Snap ASAP on the next tick.\r\n // Also, because there's some remaining momentum we'll bias the snap in the\r\n // direction of the ongoing scroll because it's better UX for the scroll to snap\r\n // in the same direction as the scroll instead of reversing to snap. Therefore,\r\n // if it's already scrolled more than 20% in the current direction, keep going.\r\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\r\n lastEventBeforeSnap = newEvent;\r\n recentWheelEvents.splice(0);\r\n timeout = nextTick(() => {\r\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n }, 0); // no delay; move on next tick\r\n }\r\n if (!timeout) {\r\n // if we get here, then we haven't detected the end of a momentum scroll, so\r\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\r\n // for 500ms.\r\n timeout = nextTick(() => {\r\n const snapToThreshold = 0.5;\r\n lastEventBeforeSnap = newEvent;\r\n recentWheelEvents.splice(0);\r\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n }, 500);\r\n }\r\n }\r\n\r\n // Emit event\r\n if (!ignoreWheelEvents) emit('scroll', e);\r\n\r\n // Stop autoplay\r\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\r\n swiper.autoplay.stop();\r\n // Return page scroll on edge positions\r\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\r\n }\r\n }\r\n\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n return false;\r\n }\r\n\r\n function events(method) {\r\n let target = swiper.$el;\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n target[method]('mouseenter', handleMouseEnter);\r\n target[method]('mouseleave', handleMouseLeave);\r\n target[method]('wheel', handle);\r\n }\r\n\r\n function enable() {\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.removeEventListener('wheel', handle);\r\n return true;\r\n }\r\n if (swiper.mousewheel.enabled) return false;\r\n events('on');\r\n swiper.mousewheel.enabled = true;\r\n return true;\r\n }\r\n function disable() {\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.addEventListener(event, handle);\r\n return true;\r\n }\r\n if (!swiper.mousewheel.enabled) return false;\r\n events('off');\r\n swiper.mousewheel.enabled = false;\r\n return true;\r\n }\r\n\r\n on('init', () => {\r\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\r\n disable();\r\n }\r\n if (swiper.params.mousewheel.enabled) enable();\r\n });\r\n on('destroy', () => {\r\n if (swiper.params.cssMode) {\r\n enable();\r\n }\r\n if (swiper.mousewheel.enabled) disable();\r\n });\r\n\r\n Object.assign(swiper.mousewheel, {\r\n enable,\r\n disable,\r\n });\r\n}\r\n","import { getDocument } from 'ssr-window';\r\n\r\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\r\n const document = getDocument();\r\n if (swiper.params.createElements) {\r\n Object.keys(checkProps).forEach((key) => {\r\n if (!params[key] && params.auto === true) {\r\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\r\n if (!element) {\r\n element = document.createElement('div');\r\n element.className = checkProps[key];\r\n swiper.$el.append(element);\r\n }\r\n params[key] = element;\r\n originalParams[key] = element;\r\n }\r\n });\r\n }\r\n return params;\r\n}\r\n","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Navigation({ swiper, extendParams, on, emit }) {\r\n extendParams({\r\n navigation: {\r\n nextEl: null,\r\n prevEl: null,\r\n\r\n hideOnClick: false,\r\n disabledClass: 'swiper-button-disabled',\r\n hiddenClass: 'swiper-button-hidden',\r\n lockClass: 'swiper-button-lock',\r\n navigationDisabledClass: 'swiper-navigation-disabled',\r\n },\r\n });\r\n\r\n swiper.navigation = {\r\n nextEl: null,\r\n $nextEl: null,\r\n prevEl: null,\r\n $prevEl: null,\r\n };\r\n\r\n function getEl(el) {\r\n let $el;\r\n if (el) {\r\n $el = $(el);\r\n if (\r\n swiper.params.uniqueNavElements &&\r\n typeof el === 'string' &&\r\n $el.length > 1 &&\r\n swiper.$el.find(el).length === 1\r\n ) {\r\n $el = swiper.$el.find(el);\r\n }\r\n }\r\n return $el;\r\n }\r\n\r\n function toggleEl($el, disabled) {\r\n const params = swiper.params.navigation;\r\n if ($el && $el.length > 0) {\r\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\r\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\r\n if (swiper.params.watchOverflow && swiper.enabled) {\r\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n }\r\n }\r\n function update() {\r\n // Update Navigation Buttons\r\n if (swiper.params.loop) return;\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n\r\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\r\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\r\n }\r\n function onPrevClick(e) {\r\n e.preventDefault();\r\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\r\n swiper.slidePrev();\r\n emit('navigationPrev');\r\n }\r\n function onNextClick(e) {\r\n e.preventDefault();\r\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\r\n swiper.slideNext();\r\n emit('navigationNext');\r\n }\r\n function init() {\r\n const params = swiper.params.navigation;\r\n\r\n swiper.params.navigation = createElementIfNotDefined(\r\n swiper,\r\n swiper.originalParams.navigation,\r\n swiper.params.navigation,\r\n {\r\n nextEl: 'swiper-button-next',\r\n prevEl: 'swiper-button-prev',\r\n },\r\n );\r\n if (!(params.nextEl || params.prevEl)) return;\r\n\r\n const $nextEl = getEl(params.nextEl);\r\n const $prevEl = getEl(params.prevEl);\r\n\r\n if ($nextEl && $nextEl.length > 0) {\r\n $nextEl.on('click', onNextClick);\r\n }\r\n if ($prevEl && $prevEl.length > 0) {\r\n $prevEl.on('click', onPrevClick);\r\n }\r\n\r\n Object.assign(swiper.navigation, {\r\n $nextEl,\r\n nextEl: $nextEl && $nextEl[0],\r\n $prevEl,\r\n prevEl: $prevEl && $prevEl[0],\r\n });\r\n\r\n if (!swiper.enabled) {\r\n if ($nextEl) $nextEl.addClass(params.lockClass);\r\n if ($prevEl) $prevEl.addClass(params.lockClass);\r\n }\r\n }\r\n function destroy() {\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n if ($nextEl && $nextEl.length) {\r\n $nextEl.off('click', onNextClick);\r\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n if ($prevEl && $prevEl.length) {\r\n $prevEl.off('click', onPrevClick);\r\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.navigation.enabled === false) {\r\n // eslint-disable-next-line\r\n disable();\r\n } else {\r\n init();\r\n update();\r\n }\r\n });\r\n on('toEdge fromEdge lock unlock', () => {\r\n update();\r\n });\r\n on('destroy', () => {\r\n destroy();\r\n });\r\n on('enable disable', () => {\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n if ($nextEl) {\r\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\r\n }\r\n if ($prevEl) {\r\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\r\n }\r\n });\r\n on('click', (_s, e) => {\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n const targetEl = e.target;\r\n if (\r\n swiper.params.navigation.hideOnClick &&\r\n !$(targetEl).is($prevEl) &&\r\n !$(targetEl).is($nextEl)\r\n ) {\r\n if (\r\n swiper.pagination &&\r\n swiper.params.pagination &&\r\n swiper.params.pagination.clickable &&\r\n (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))\r\n )\r\n return;\r\n let isHidden;\r\n if ($nextEl) {\r\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\r\n } else if ($prevEl) {\r\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\r\n }\r\n if (isHidden === true) {\r\n emit('navigationShow');\r\n } else {\r\n emit('navigationHide');\r\n }\r\n if ($nextEl) {\r\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n if ($prevEl) {\r\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n }\r\n });\r\n\r\n const enable = () => {\r\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\r\n init();\r\n update();\r\n };\r\n\r\n const disable = () => {\r\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\r\n destroy();\r\n };\r\n\r\n Object.assign(swiper.navigation, {\r\n enable,\r\n disable,\r\n update,\r\n init,\r\n destroy,\r\n });\r\n}\r\n","export default function classesToSelector(classes = '') {\r\n return `.${classes\r\n .trim()\r\n .replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\r\n .replace(/ /g, '.')}`;\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport classesToSelector from '../../shared/classes-to-selector.js';\r\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\r\n\r\nexport default function Pagination({ swiper, extendParams, on, emit }) {\r\n const pfx = 'swiper-pagination';\r\n extendParams({\r\n pagination: {\r\n el: null,\r\n bulletElement: 'span',\r\n clickable: false,\r\n hideOnClick: false,\r\n renderBullet: null,\r\n renderProgressbar: null,\r\n renderFraction: null,\r\n renderCustom: null,\r\n progressbarOpposite: false,\r\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\r\n dynamicBullets: false,\r\n dynamicMainBullets: 1,\r\n formatFractionCurrent: (number) => number,\r\n formatFractionTotal: (number) => number,\r\n bulletClass: `${pfx}-bullet`,\r\n bulletActiveClass: `${pfx}-bullet-active`,\r\n modifierClass: `${pfx}-`,\r\n currentClass: `${pfx}-current`,\r\n totalClass: `${pfx}-total`,\r\n hiddenClass: `${pfx}-hidden`,\r\n progressbarFillClass: `${pfx}-progressbar-fill`,\r\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\r\n clickableClass: `${pfx}-clickable`,\r\n lockClass: `${pfx}-lock`,\r\n horizontalClass: `${pfx}-horizontal`,\r\n verticalClass: `${pfx}-vertical`,\r\n paginationDisabledClass: `${pfx}-disabled`,\r\n },\r\n });\r\n\r\n swiper.pagination = {\r\n el: null,\r\n $el: null,\r\n bullets: [],\r\n };\r\n\r\n let bulletSize;\r\n let dynamicBulletIndex = 0;\r\n\r\n function isPaginationDisabled() {\r\n return (\r\n !swiper.params.pagination.el ||\r\n !swiper.pagination.el ||\r\n !swiper.pagination.$el ||\r\n swiper.pagination.$el.length === 0\r\n );\r\n }\r\n\r\n function setSideBullets($bulletEl, position) {\r\n const { bulletActiveClass } = swiper.params.pagination;\r\n $bulletEl[position]()\r\n .addClass(`${bulletActiveClass}-${position}`)\r\n [position]()\r\n .addClass(`${bulletActiveClass}-${position}-${position}`);\r\n }\r\n\r\n function update() {\r\n // Render || Update Pagination bullets/items\r\n const rtl = swiper.rtl;\r\n const params = swiper.params.pagination;\r\n if (isPaginationDisabled()) return;\r\n const slidesLength =\r\n swiper.virtual && swiper.params.virtual.enabled\r\n ? swiper.virtual.slides.length\r\n : swiper.slides.length;\r\n const $el = swiper.pagination.$el;\r\n // Current/Total\r\n let current;\r\n const total = swiper.params.loop\r\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\r\n : swiper.snapGrid.length;\r\n if (swiper.params.loop) {\r\n current = Math.ceil(\r\n (swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup,\r\n );\r\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\r\n current -= slidesLength - swiper.loopedSlides * 2;\r\n }\r\n if (current > total - 1) current -= total;\r\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\r\n } else if (typeof swiper.snapIndex !== 'undefined') {\r\n current = swiper.snapIndex;\r\n } else {\r\n current = swiper.activeIndex || 0;\r\n }\r\n // Types\r\n if (\r\n params.type === 'bullets' &&\r\n swiper.pagination.bullets &&\r\n swiper.pagination.bullets.length > 0\r\n ) {\r\n const bullets = swiper.pagination.bullets;\r\n let firstIndex;\r\n let lastIndex;\r\n let midIndex;\r\n if (params.dynamicBullets) {\r\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\r\n $el.css(\r\n swiper.isHorizontal() ? 'width' : 'height',\r\n `${bulletSize * (params.dynamicMainBullets + 4)}px`,\r\n );\r\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\r\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\r\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\r\n dynamicBulletIndex = params.dynamicMainBullets - 1;\r\n } else if (dynamicBulletIndex < 0) {\r\n dynamicBulletIndex = 0;\r\n }\r\n }\r\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\r\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\r\n midIndex = (lastIndex + firstIndex) / 2;\r\n }\r\n bullets.removeClass(\r\n ['', '-next', '-next-next', '-prev', '-prev-prev', '-main']\r\n .map((suffix) => `${params.bulletActiveClass}${suffix}`)\r\n .join(' '),\r\n );\r\n if ($el.length > 1) {\r\n bullets.each((bullet) => {\r\n const $bullet = $(bullet);\r\n const bulletIndex = $bullet.index();\r\n if (bulletIndex === current) {\r\n $bullet.addClass(params.bulletActiveClass);\r\n }\r\n if (params.dynamicBullets) {\r\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\r\n $bullet.addClass(`${params.bulletActiveClass}-main`);\r\n }\r\n if (bulletIndex === firstIndex) {\r\n setSideBullets($bullet, 'prev');\r\n }\r\n if (bulletIndex === lastIndex) {\r\n setSideBullets($bullet, 'next');\r\n }\r\n }\r\n });\r\n } else {\r\n const $bullet = bullets.eq(current);\r\n const bulletIndex = $bullet.index();\r\n $bullet.addClass(params.bulletActiveClass);\r\n if (params.dynamicBullets) {\r\n const $firstDisplayedBullet = bullets.eq(firstIndex);\r\n const $lastDisplayedBullet = bullets.eq(lastIndex);\r\n for (let i = firstIndex; i <= lastIndex; i += 1) {\r\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\r\n }\r\n if (swiper.params.loop) {\r\n if (bulletIndex >= bullets.length) {\r\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\r\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\r\n }\r\n bullets\r\n .eq(bullets.length - params.dynamicMainBullets - 1)\r\n .addClass(`${params.bulletActiveClass}-prev`);\r\n } else {\r\n setSideBullets($firstDisplayedBullet, 'prev');\r\n setSideBullets($lastDisplayedBullet, 'next');\r\n }\r\n } else {\r\n setSideBullets($firstDisplayedBullet, 'prev');\r\n setSideBullets($lastDisplayedBullet, 'next');\r\n }\r\n }\r\n }\r\n if (params.dynamicBullets) {\r\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\r\n const bulletsOffset =\r\n (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\r\n const offsetProp = rtl ? 'right' : 'left';\r\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\r\n }\r\n }\r\n if (params.type === 'fraction') {\r\n $el\r\n .find(classesToSelector(params.currentClass))\r\n .text(params.formatFractionCurrent(current + 1));\r\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\r\n }\r\n if (params.type === 'progressbar') {\r\n let progressbarDirection;\r\n if (params.progressbarOpposite) {\r\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\r\n } else {\r\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\r\n }\r\n const scale = (current + 1) / total;\r\n let scaleX = 1;\r\n let scaleY = 1;\r\n if (progressbarDirection === 'horizontal') {\r\n scaleX = scale;\r\n } else {\r\n scaleY = scale;\r\n }\r\n $el\r\n .find(classesToSelector(params.progressbarFillClass))\r\n .transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`)\r\n .transition(swiper.params.speed);\r\n }\r\n if (params.type === 'custom' && params.renderCustom) {\r\n $el.html(params.renderCustom(swiper, current + 1, total));\r\n emit('paginationRender', $el[0]);\r\n } else {\r\n emit('paginationUpdate', $el[0]);\r\n }\r\n if (swiper.params.watchOverflow && swiper.enabled) {\r\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n }\r\n function render() {\r\n // Render Container\r\n const params = swiper.params.pagination;\r\n if (isPaginationDisabled()) return;\r\n const slidesLength =\r\n swiper.virtual && swiper.params.virtual.enabled\r\n ? swiper.virtual.slides.length\r\n : swiper.slides.length;\r\n\r\n const $el = swiper.pagination.$el;\r\n let paginationHTML = '';\r\n if (params.type === 'bullets') {\r\n let numberOfBullets = swiper.params.loop\r\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\r\n : swiper.snapGrid.length;\r\n if (\r\n swiper.params.freeMode &&\r\n swiper.params.freeMode.enabled &&\r\n !swiper.params.loop &&\r\n numberOfBullets > slidesLength\r\n ) {\r\n numberOfBullets = slidesLength;\r\n }\r\n for (let i = 0; i < numberOfBullets; i += 1) {\r\n if (params.renderBullet) {\r\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\r\n } else {\r\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\r\n }\r\n }\r\n $el.html(paginationHTML);\r\n\r\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\r\n }\r\n if (params.type === 'fraction') {\r\n if (params.renderFraction) {\r\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\r\n } else {\r\n paginationHTML =\r\n `` +\r\n ' / ' +\r\n ``;\r\n }\r\n $el.html(paginationHTML);\r\n }\r\n if (params.type === 'progressbar') {\r\n if (params.renderProgressbar) {\r\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\r\n } else {\r\n paginationHTML = ``;\r\n }\r\n $el.html(paginationHTML);\r\n }\r\n if (params.type !== 'custom') {\r\n emit('paginationRender', swiper.pagination.$el[0]);\r\n }\r\n }\r\n function init() {\r\n swiper.params.pagination = createElementIfNotDefined(\r\n swiper,\r\n swiper.originalParams.pagination,\r\n swiper.params.pagination,\r\n { el: 'swiper-pagination' },\r\n );\r\n const params = swiper.params.pagination;\r\n if (!params.el) return;\r\n\r\n let $el = $(params.el);\r\n if ($el.length === 0) return;\r\n\r\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\r\n $el = swiper.$el.find(params.el);\r\n // check if it belongs to another nested Swiper\r\n if ($el.length > 1) {\r\n $el = $el.filter((el) => {\r\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\r\n return true;\r\n });\r\n }\r\n }\r\n\r\n if (params.type === 'bullets' && params.clickable) {\r\n $el.addClass(params.clickableClass);\r\n }\r\n\r\n $el.addClass(params.modifierClass + params.type);\r\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n\r\n if (params.type === 'bullets' && params.dynamicBullets) {\r\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\r\n dynamicBulletIndex = 0;\r\n if (params.dynamicMainBullets < 1) {\r\n params.dynamicMainBullets = 1;\r\n }\r\n }\r\n if (params.type === 'progressbar' && params.progressbarOpposite) {\r\n $el.addClass(params.progressbarOppositeClass);\r\n }\r\n\r\n if (params.clickable) {\r\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\r\n e.preventDefault();\r\n let index = $(this).index() * swiper.params.slidesPerGroup;\r\n if (swiper.params.loop) index += swiper.loopedSlides;\r\n swiper.slideTo(index);\r\n });\r\n }\r\n\r\n Object.assign(swiper.pagination, {\r\n $el,\r\n el: $el[0],\r\n });\r\n\r\n if (!swiper.enabled) {\r\n $el.addClass(params.lockClass);\r\n }\r\n }\r\n function destroy() {\r\n const params = swiper.params.pagination;\r\n if (isPaginationDisabled()) return;\r\n const $el = swiper.pagination.$el;\r\n\r\n $el.removeClass(params.hiddenClass);\r\n $el.removeClass(params.modifierClass + params.type);\r\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass)\r\n swiper.pagination.bullets.removeClass(params.bulletActiveClass);\r\n if (params.clickable) {\r\n $el.off('click', classesToSelector(params.bulletClass));\r\n }\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.pagination.enabled === false) {\r\n // eslint-disable-next-line\r\n disable();\r\n } else {\r\n init();\r\n render();\r\n update();\r\n }\r\n });\r\n on('activeIndexChange', () => {\r\n if (swiper.params.loop) {\r\n update();\r\n } else if (typeof swiper.snapIndex === 'undefined') {\r\n update();\r\n }\r\n });\r\n on('snapIndexChange', () => {\r\n if (!swiper.params.loop) {\r\n update();\r\n }\r\n });\r\n on('slidesLengthChange', () => {\r\n if (swiper.params.loop) {\r\n render();\r\n update();\r\n }\r\n });\r\n on('snapGridLengthChange', () => {\r\n if (!swiper.params.loop) {\r\n render();\r\n update();\r\n }\r\n });\r\n on('destroy', () => {\r\n destroy();\r\n });\r\n on('enable disable', () => {\r\n const { $el } = swiper.pagination;\r\n if ($el) {\r\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\r\n }\r\n });\r\n on('lock unlock', () => {\r\n update();\r\n });\r\n on('click', (_s, e) => {\r\n const targetEl = e.target;\r\n const { $el } = swiper.pagination;\r\n if (\r\n swiper.params.pagination.el &&\r\n swiper.params.pagination.hideOnClick &&\r\n $el &&\r\n $el.length > 0 &&\r\n !$(targetEl).hasClass(swiper.params.pagination.bulletClass)\r\n ) {\r\n if (\r\n swiper.navigation &&\r\n ((swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) ||\r\n (swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl))\r\n )\r\n return;\r\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\r\n if (isHidden === true) {\r\n emit('paginationShow');\r\n } else {\r\n emit('paginationHide');\r\n }\r\n $el.toggleClass(swiper.params.pagination.hiddenClass);\r\n }\r\n });\r\n\r\n const enable = () => {\r\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\r\n if (swiper.pagination.$el) {\r\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\r\n }\r\n init();\r\n render();\r\n update();\r\n };\r\n\r\n const disable = () => {\r\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\r\n if (swiper.pagination.$el) {\r\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\r\n }\r\n destroy();\r\n };\r\n\r\n Object.assign(swiper.pagination, {\r\n enable,\r\n disable,\r\n render,\r\n update,\r\n init,\r\n destroy,\r\n });\r\n}\r\n","import { getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { nextTick } from '../../shared/utils.js';\r\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\r\n\r\nexport default function Scrollbar({ swiper, extendParams, on, emit }) {\r\n const document = getDocument();\r\n\r\n let isTouched = false;\r\n let timeout = null;\r\n let dragTimeout = null;\r\n let dragStartPos;\r\n let dragSize;\r\n let trackSize;\r\n let divider;\r\n\r\n extendParams({\r\n scrollbar: {\r\n el: null,\r\n dragSize: 'auto',\r\n hide: false,\r\n draggable: false,\r\n snapOnRelease: true,\r\n lockClass: 'swiper-scrollbar-lock',\r\n dragClass: 'swiper-scrollbar-drag',\r\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\r\n horizontalClass: `swiper-scrollbar-horizontal`,\r\n verticalClass: `swiper-scrollbar-vertical`,\r\n },\r\n });\r\n\r\n swiper.scrollbar = {\r\n el: null,\r\n dragEl: null,\r\n $el: null,\r\n $dragEl: null,\r\n };\r\n\r\n function setTranslate() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\r\n const { $dragEl, $el } = scrollbar;\r\n const params = swiper.params.scrollbar;\r\n\r\n let newSize = dragSize;\r\n let newPos = (trackSize - dragSize) * progress;\r\n if (rtl) {\r\n newPos = -newPos;\r\n if (newPos > 0) {\r\n newSize = dragSize - newPos;\r\n newPos = 0;\r\n } else if (-newPos + dragSize > trackSize) {\r\n newSize = trackSize + newPos;\r\n }\r\n } else if (newPos < 0) {\r\n newSize = dragSize + newPos;\r\n newPos = 0;\r\n } else if (newPos + dragSize > trackSize) {\r\n newSize = trackSize - newPos;\r\n }\r\n if (swiper.isHorizontal()) {\r\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\r\n $dragEl[0].style.width = `${newSize}px`;\r\n } else {\r\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\r\n $dragEl[0].style.height = `${newSize}px`;\r\n }\r\n if (params.hide) {\r\n clearTimeout(timeout);\r\n $el[0].style.opacity = 1;\r\n timeout = setTimeout(() => {\r\n $el[0].style.opacity = 0;\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n }\r\n function setTransition(duration) {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n swiper.scrollbar.$dragEl.transition(duration);\r\n }\r\n function updateSize() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n\r\n const { scrollbar } = swiper;\r\n const { $dragEl, $el } = scrollbar;\r\n\r\n $dragEl[0].style.width = '';\r\n $dragEl[0].style.height = '';\r\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\r\n\r\n divider =\r\n swiper.size /\r\n (swiper.virtualSize +\r\n swiper.params.slidesOffsetBefore -\r\n (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\r\n if (swiper.params.scrollbar.dragSize === 'auto') {\r\n dragSize = trackSize * divider;\r\n } else {\r\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\r\n }\r\n\r\n if (swiper.isHorizontal()) {\r\n $dragEl[0].style.width = `${dragSize}px`;\r\n } else {\r\n $dragEl[0].style.height = `${dragSize}px`;\r\n }\r\n\r\n if (divider >= 1) {\r\n $el[0].style.display = 'none';\r\n } else {\r\n $el[0].style.display = '';\r\n }\r\n if (swiper.params.scrollbar.hide) {\r\n $el[0].style.opacity = 0;\r\n }\r\n\r\n if (swiper.params.watchOverflow && swiper.enabled) {\r\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](\r\n swiper.params.scrollbar.lockClass,\r\n );\r\n }\r\n }\r\n function getPointerPosition(e) {\r\n if (swiper.isHorizontal()) {\r\n return e.type === 'touchstart' || e.type === 'touchmove'\r\n ? e.targetTouches[0].clientX\r\n : e.clientX;\r\n }\r\n return e.type === 'touchstart' || e.type === 'touchmove'\r\n ? e.targetTouches[0].clientY\r\n : e.clientY;\r\n }\r\n function setDragPosition(e) {\r\n const { scrollbar, rtlTranslate: rtl } = swiper;\r\n const { $el } = scrollbar;\r\n\r\n let positionRatio;\r\n positionRatio =\r\n (getPointerPosition(e) -\r\n $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] -\r\n (dragStartPos !== null ? dragStartPos : dragSize / 2)) /\r\n (trackSize - dragSize);\r\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\r\n if (rtl) {\r\n positionRatio = 1 - positionRatio;\r\n }\r\n\r\n const position =\r\n swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\r\n\r\n swiper.updateProgress(position);\r\n swiper.setTranslate(position);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n function onDragStart(e) {\r\n const params = swiper.params.scrollbar;\r\n const { scrollbar, $wrapperEl } = swiper;\r\n const { $el, $dragEl } = scrollbar;\r\n isTouched = true;\r\n dragStartPos =\r\n e.target === $dragEl[0] || e.target === $dragEl\r\n ? getPointerPosition(e) -\r\n e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top']\r\n : null;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n $wrapperEl.transition(100);\r\n $dragEl.transition(100);\r\n setDragPosition(e);\r\n\r\n clearTimeout(dragTimeout);\r\n\r\n $el.transition(0);\r\n if (params.hide) {\r\n $el.css('opacity', 1);\r\n }\r\n if (swiper.params.cssMode) {\r\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\r\n }\r\n emit('scrollbarDragStart', e);\r\n }\r\n function onDragMove(e) {\r\n const { scrollbar, $wrapperEl } = swiper;\r\n const { $el, $dragEl } = scrollbar;\r\n\r\n if (!isTouched) return;\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n setDragPosition(e);\r\n $wrapperEl.transition(0);\r\n $el.transition(0);\r\n $dragEl.transition(0);\r\n emit('scrollbarDragMove', e);\r\n }\r\n function onDragEnd(e) {\r\n const params = swiper.params.scrollbar;\r\n const { scrollbar, $wrapperEl } = swiper;\r\n const { $el } = scrollbar;\r\n\r\n if (!isTouched) return;\r\n isTouched = false;\r\n if (swiper.params.cssMode) {\r\n swiper.$wrapperEl.css('scroll-snap-type', '');\r\n $wrapperEl.transition('');\r\n }\r\n if (params.hide) {\r\n clearTimeout(dragTimeout);\r\n dragTimeout = nextTick(() => {\r\n $el.css('opacity', 0);\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n emit('scrollbarDragEnd', e);\r\n if (params.snapOnRelease) {\r\n swiper.slideToClosest();\r\n }\r\n }\r\n\r\n function events(method) {\r\n const { scrollbar, touchEventsTouch, touchEventsDesktop, params, support } = swiper;\r\n const $el = scrollbar.$el;\r\n if (!$el) return;\r\n const target = $el[0];\r\n const activeListener =\r\n support.passiveListener && params.passiveListeners\r\n ? { passive: false, capture: false }\r\n : false;\r\n const passiveListener =\r\n support.passiveListener && params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n if (!target) return;\r\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\r\n if (!support.touch) {\r\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\r\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\r\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\r\n } else {\r\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\r\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\r\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\r\n }\r\n }\r\n\r\n function enableDraggable() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n events('on');\r\n }\r\n function disableDraggable() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n events('off');\r\n }\r\n function init() {\r\n const { scrollbar, $el: $swiperEl } = swiper;\r\n swiper.params.scrollbar = createElementIfNotDefined(\r\n swiper,\r\n swiper.originalParams.scrollbar,\r\n swiper.params.scrollbar,\r\n { el: 'swiper-scrollbar' },\r\n );\r\n const params = swiper.params.scrollbar;\r\n if (!params.el) return;\r\n\r\n let $el = $(params.el);\r\n if (\r\n swiper.params.uniqueNavElements &&\r\n typeof params.el === 'string' &&\r\n $el.length > 1 &&\r\n $swiperEl.find(params.el).length === 1\r\n ) {\r\n $el = $swiperEl.find(params.el);\r\n }\r\n\r\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n\r\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\r\n if ($dragEl.length === 0) {\r\n $dragEl = $(`
`);\r\n $el.append($dragEl);\r\n }\r\n\r\n Object.assign(scrollbar, {\r\n $el,\r\n el: $el[0],\r\n $dragEl,\r\n dragEl: $dragEl[0],\r\n });\r\n\r\n if (params.draggable) {\r\n enableDraggable();\r\n }\r\n\r\n if ($el) {\r\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\r\n }\r\n }\r\n function destroy() {\r\n const params = swiper.params.scrollbar;\r\n const $el = swiper.scrollbar.$el;\r\n if ($el) {\r\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n }\r\n\r\n disableDraggable();\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.scrollbar.enabled === false) {\r\n // eslint-disable-next-line\r\n disable();\r\n } else {\r\n init();\r\n updateSize();\r\n setTranslate();\r\n }\r\n });\r\n on('update resize observerUpdate lock unlock', () => {\r\n updateSize();\r\n });\r\n on('setTranslate', () => {\r\n setTranslate();\r\n });\r\n on('setTransition', (_s, duration) => {\r\n setTransition(duration);\r\n });\r\n on('enable disable', () => {\r\n const { $el } = swiper.scrollbar;\r\n if ($el) {\r\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\r\n }\r\n });\r\n on('destroy', () => {\r\n destroy();\r\n });\r\n\r\n const enable = () => {\r\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n if (swiper.scrollbar.$el) {\r\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n }\r\n init();\r\n updateSize();\r\n setTranslate();\r\n };\r\n\r\n const disable = () => {\r\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n if (swiper.scrollbar.$el) {\r\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n }\r\n destroy();\r\n };\r\n\r\n Object.assign(swiper.scrollbar, {\r\n enable,\r\n disable,\r\n updateSize,\r\n setTranslate,\r\n init,\r\n destroy,\r\n });\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function Parallax({ swiper, extendParams, on }) {\r\n extendParams({\r\n parallax: {\r\n enabled: false,\r\n },\r\n });\r\n\r\n const setTransform = (el, progress) => {\r\n const { rtl } = swiper;\r\n\r\n const $el = $(el);\r\n const rtlFactor = rtl ? -1 : 1;\r\n\r\n const p = $el.attr('data-swiper-parallax') || '0';\r\n let x = $el.attr('data-swiper-parallax-x');\r\n let y = $el.attr('data-swiper-parallax-y');\r\n const scale = $el.attr('data-swiper-parallax-scale');\r\n const opacity = $el.attr('data-swiper-parallax-opacity');\r\n\r\n if (x || y) {\r\n x = x || '0';\r\n y = y || '0';\r\n } else if (swiper.isHorizontal()) {\r\n x = p;\r\n y = '0';\r\n } else {\r\n y = p;\r\n x = '0';\r\n }\r\n\r\n if (x.indexOf('%') >= 0) {\r\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\r\n } else {\r\n x = `${x * progress * rtlFactor}px`;\r\n }\r\n if (y.indexOf('%') >= 0) {\r\n y = `${parseInt(y, 10) * progress}%`;\r\n } else {\r\n y = `${y * progress}px`;\r\n }\r\n\r\n if (typeof opacity !== 'undefined' && opacity !== null) {\r\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\r\n $el[0].style.opacity = currentOpacity;\r\n }\r\n if (typeof scale === 'undefined' || scale === null) {\r\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\r\n } else {\r\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\r\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\r\n }\r\n };\r\n\r\n const setTranslate = () => {\r\n const { $el, slides, progress, snapGrid } = swiper;\r\n $el\r\n .children(\r\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\r\n )\r\n .each((el) => {\r\n setTransform(el, progress);\r\n });\r\n slides.each((slideEl, slideIndex) => {\r\n let slideProgress = slideEl.progress;\r\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\r\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\r\n }\r\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\r\n $(slideEl)\r\n .find(\r\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\r\n )\r\n .each((el) => {\r\n setTransform(el, slideProgress);\r\n });\r\n });\r\n };\r\n\r\n const setTransition = (duration = swiper.params.speed) => {\r\n const { $el } = swiper;\r\n $el\r\n .find(\r\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\r\n )\r\n .each((parallaxEl) => {\r\n const $parallaxEl = $(parallaxEl);\r\n let parallaxDuration =\r\n parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\r\n if (duration === 0) parallaxDuration = 0;\r\n $parallaxEl.transition(parallaxDuration);\r\n });\r\n };\r\n\r\n on('beforeInit', () => {\r\n if (!swiper.params.parallax.enabled) return;\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n });\r\n on('init', () => {\r\n if (!swiper.params.parallax.enabled) return;\r\n setTranslate();\r\n });\r\n on('setTranslate', () => {\r\n if (!swiper.params.parallax.enabled) return;\r\n setTranslate();\r\n });\r\n on('setTransition', (_swiper, duration) => {\r\n if (!swiper.params.parallax.enabled) return;\r\n setTransition(duration);\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { getTranslate } from '../../shared/utils.js';\r\n\r\nexport default function Zoom({ swiper, extendParams, on, emit }) {\r\n const window = getWindow();\r\n extendParams({\r\n zoom: {\r\n enabled: false,\r\n maxRatio: 3,\r\n minRatio: 1,\r\n toggle: true,\r\n containerClass: 'swiper-zoom-container',\r\n zoomedSlideClass: 'swiper-slide-zoomed',\r\n },\r\n });\r\n\r\n swiper.zoom = {\r\n enabled: false,\r\n };\r\n\r\n let currentScale = 1;\r\n let isScaling = false;\r\n let gesturesEnabled;\r\n let fakeGestureTouched;\r\n let fakeGestureMoved;\r\n const gesture = {\r\n $slideEl: undefined,\r\n slideWidth: undefined,\r\n slideHeight: undefined,\r\n $imageEl: undefined,\r\n $imageWrapEl: undefined,\r\n maxRatio: 3,\r\n };\r\n const image = {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n currentX: undefined,\r\n currentY: undefined,\r\n minX: undefined,\r\n minY: undefined,\r\n maxX: undefined,\r\n maxY: undefined,\r\n width: undefined,\r\n height: undefined,\r\n startX: undefined,\r\n startY: undefined,\r\n touchesStart: {},\r\n touchesCurrent: {},\r\n };\r\n const velocity = {\r\n x: undefined,\r\n y: undefined,\r\n prevPositionX: undefined,\r\n prevPositionY: undefined,\r\n prevTime: undefined,\r\n };\r\n\r\n let scale = 1;\r\n Object.defineProperty(swiper.zoom, 'scale', {\r\n get() {\r\n return scale;\r\n },\r\n set(value) {\r\n if (scale !== value) {\r\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\r\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\r\n emit('zoomChange', value, imageEl, slideEl);\r\n }\r\n scale = value;\r\n },\r\n });\r\n\r\n function getDistanceBetweenTouches(e) {\r\n if (e.targetTouches.length < 2) return 1;\r\n const x1 = e.targetTouches[0].pageX;\r\n const y1 = e.targetTouches[0].pageY;\r\n const x2 = e.targetTouches[1].pageX;\r\n const y2 = e.targetTouches[1].pageY;\r\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\r\n return distance;\r\n }\r\n\r\n // Events\r\n function onGestureStart(e) {\r\n const support = swiper.support;\r\n const params = swiper.params.zoom;\r\n fakeGestureTouched = false;\r\n fakeGestureMoved = false;\r\n if (!support.gestures) {\r\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\r\n return;\r\n }\r\n fakeGestureTouched = true;\r\n gesture.scaleStart = getDistanceBetweenTouches(e);\r\n }\r\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\r\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\r\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n gesture.$imageEl = gesture.$slideEl\r\n .find(`.${params.containerClass}`)\r\n .eq(0)\r\n .find('picture, img, svg, canvas, .swiper-zoom-target')\r\n .eq(0);\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n if (gesture.$imageWrapEl.length === 0) {\r\n gesture.$imageEl = undefined;\r\n return;\r\n }\r\n }\r\n if (gesture.$imageEl) {\r\n gesture.$imageEl.transition(0);\r\n }\r\n isScaling = true;\r\n }\r\n function onGestureChange(e) {\r\n const support = swiper.support;\r\n const params = swiper.params.zoom;\r\n const zoom = swiper.zoom;\r\n if (!support.gestures) {\r\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\r\n return;\r\n }\r\n fakeGestureMoved = true;\r\n gesture.scaleMove = getDistanceBetweenTouches(e);\r\n }\r\n\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n if (e.type === 'gesturechange') onGestureStart(e);\r\n return;\r\n }\r\n if (support.gestures) {\r\n zoom.scale = e.scale * currentScale;\r\n } else {\r\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * currentScale;\r\n }\r\n if (zoom.scale > gesture.maxRatio) {\r\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\r\n }\r\n if (zoom.scale < params.minRatio) {\r\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\r\n }\r\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n }\r\n function onGestureEnd(e) {\r\n const device = swiper.device;\r\n const support = swiper.support;\r\n const params = swiper.params.zoom;\r\n const zoom = swiper.zoom;\r\n if (!support.gestures) {\r\n if (!fakeGestureTouched || !fakeGestureMoved) {\r\n return;\r\n }\r\n if (\r\n e.type !== 'touchend' ||\r\n (e.type === 'touchend' && e.changedTouches.length < 2 && !device.android)\r\n ) {\r\n return;\r\n }\r\n fakeGestureTouched = false;\r\n fakeGestureMoved = false;\r\n }\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\r\n gesture.$imageEl\r\n .transition(swiper.params.speed)\r\n .transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n currentScale = zoom.scale;\r\n isScaling = false;\r\n if (zoom.scale === 1) gesture.$slideEl = undefined;\r\n }\r\n function onTouchStart(e) {\r\n const device = swiper.device;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n if (image.isTouched) return;\r\n if (device.android && e.cancelable) e.preventDefault();\r\n image.isTouched = true;\r\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n }\r\n function onTouchMove(e) {\r\n const zoom = swiper.zoom;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n swiper.allowClick = false;\r\n if (!image.isTouched || !gesture.$slideEl) return;\r\n\r\n if (!image.isMoved) {\r\n image.width = gesture.$imageEl[0].offsetWidth;\r\n image.height = gesture.$imageEl[0].offsetHeight;\r\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\r\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\r\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\r\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\r\n gesture.$imageWrapEl.transition(0);\r\n }\r\n // Define if we need image drag\r\n const scaledWidth = image.width * zoom.scale;\r\n const scaledHeight = image.height * zoom.scale;\r\n\r\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\r\n\r\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\r\n image.maxY = -image.minY;\r\n\r\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\r\n\r\n if (!image.isMoved && !isScaling) {\r\n if (\r\n swiper.isHorizontal() &&\r\n ((Math.floor(image.minX) === Math.floor(image.startX) &&\r\n image.touchesCurrent.x < image.touchesStart.x) ||\r\n (Math.floor(image.maxX) === Math.floor(image.startX) &&\r\n image.touchesCurrent.x > image.touchesStart.x))\r\n ) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n if (\r\n !swiper.isHorizontal() &&\r\n ((Math.floor(image.minY) === Math.floor(image.startY) &&\r\n image.touchesCurrent.y < image.touchesStart.y) ||\r\n (Math.floor(image.maxY) === Math.floor(image.startY) &&\r\n image.touchesCurrent.y > image.touchesStart.y))\r\n ) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n }\r\n if (e.cancelable) {\r\n e.preventDefault();\r\n }\r\n e.stopPropagation();\r\n\r\n image.isMoved = true;\r\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\r\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\r\n\r\n if (image.currentX < image.minX) {\r\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\r\n }\r\n if (image.currentX > image.maxX) {\r\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\r\n }\r\n\r\n if (image.currentY < image.minY) {\r\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\r\n }\r\n if (image.currentY > image.maxY) {\r\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\r\n }\r\n\r\n // Velocity\r\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\r\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\r\n if (!velocity.prevTime) velocity.prevTime = Date.now();\r\n velocity.x =\r\n (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\r\n velocity.y =\r\n (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\r\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\r\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\r\n velocity.prevPositionX = image.touchesCurrent.x;\r\n velocity.prevPositionY = image.touchesCurrent.y;\r\n velocity.prevTime = Date.now();\r\n\r\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\r\n }\r\n function onTouchEnd() {\r\n const zoom = swiper.zoom;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n if (!image.isTouched || !image.isMoved) {\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n return;\r\n }\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n let momentumDurationX = 300;\r\n let momentumDurationY = 300;\r\n const momentumDistanceX = velocity.x * momentumDurationX;\r\n const newPositionX = image.currentX + momentumDistanceX;\r\n const momentumDistanceY = velocity.y * momentumDurationY;\r\n const newPositionY = image.currentY + momentumDistanceY;\r\n\r\n // Fix duration\r\n if (velocity.x !== 0)\r\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\r\n if (velocity.y !== 0)\r\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\r\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\r\n\r\n image.currentX = newPositionX;\r\n image.currentY = newPositionY;\r\n\r\n // Define if we need image drag\r\n const scaledWidth = image.width * zoom.scale;\r\n const scaledHeight = image.height * zoom.scale;\r\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\r\n image.maxY = -image.minY;\r\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\r\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\r\n\r\n gesture.$imageWrapEl\r\n .transition(momentumDuration)\r\n .transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\r\n }\r\n function onTransitionEnd() {\r\n const zoom = swiper.zoom;\r\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\r\n if (gesture.$imageEl) {\r\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\r\n }\r\n if (gesture.$imageWrapEl) {\r\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\r\n }\r\n\r\n zoom.scale = 1;\r\n currentScale = 1;\r\n\r\n gesture.$slideEl = undefined;\r\n gesture.$imageEl = undefined;\r\n gesture.$imageWrapEl = undefined;\r\n }\r\n }\r\n\r\n function zoomIn(e) {\r\n const zoom = swiper.zoom;\r\n const params = swiper.params.zoom;\r\n\r\n if (!gesture.$slideEl) {\r\n if (e && e.target) {\r\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\r\n }\r\n if (!gesture.$slideEl) {\r\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\r\n } else {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n }\r\n\r\n gesture.$imageEl = gesture.$slideEl\r\n .find(`.${params.containerClass}`)\r\n .eq(0)\r\n .find('picture, img, svg, canvas, .swiper-zoom-target')\r\n .eq(0);\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n }\r\n if (\r\n !gesture.$imageEl ||\r\n gesture.$imageEl.length === 0 ||\r\n !gesture.$imageWrapEl ||\r\n gesture.$imageWrapEl.length === 0\r\n )\r\n return;\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.style.overflow = 'hidden';\r\n swiper.wrapperEl.style.touchAction = 'none';\r\n }\r\n\r\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\r\n\r\n let touchX;\r\n let touchY;\r\n let offsetX;\r\n let offsetY;\r\n let diffX;\r\n let diffY;\r\n let translateX;\r\n let translateY;\r\n let imageWidth;\r\n let imageHeight;\r\n let scaledWidth;\r\n let scaledHeight;\r\n let translateMinX;\r\n let translateMinY;\r\n let translateMaxX;\r\n let translateMaxY;\r\n let slideWidth;\r\n let slideHeight;\r\n\r\n if (typeof image.touchesStart.x === 'undefined' && e) {\r\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\r\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\r\n } else {\r\n touchX = image.touchesStart.x;\r\n touchY = image.touchesStart.y;\r\n }\r\n\r\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n if (e) {\r\n slideWidth = gesture.$slideEl[0].offsetWidth;\r\n slideHeight = gesture.$slideEl[0].offsetHeight;\r\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\r\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\r\n diffX = offsetX + slideWidth / 2 - touchX;\r\n diffY = offsetY + slideHeight / 2 - touchY;\r\n\r\n imageWidth = gesture.$imageEl[0].offsetWidth;\r\n imageHeight = gesture.$imageEl[0].offsetHeight;\r\n scaledWidth = imageWidth * zoom.scale;\r\n scaledHeight = imageHeight * zoom.scale;\r\n\r\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\r\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\r\n translateMaxX = -translateMinX;\r\n translateMaxY = -translateMinY;\r\n\r\n translateX = diffX * zoom.scale;\r\n translateY = diffY * zoom.scale;\r\n\r\n if (translateX < translateMinX) {\r\n translateX = translateMinX;\r\n }\r\n if (translateX > translateMaxX) {\r\n translateX = translateMaxX;\r\n }\r\n\r\n if (translateY < translateMinY) {\r\n translateY = translateMinY;\r\n }\r\n if (translateY > translateMaxY) {\r\n translateY = translateMaxY;\r\n }\r\n } else {\r\n translateX = 0;\r\n translateY = 0;\r\n }\r\n gesture.$imageWrapEl\r\n .transition(300)\r\n .transform(`translate3d(${translateX}px, ${translateY}px,0)`);\r\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n }\r\n function zoomOut() {\r\n const zoom = swiper.zoom;\r\n const params = swiper.params.zoom;\r\n\r\n if (!gesture.$slideEl) {\r\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\r\n } else {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n gesture.$imageEl = gesture.$slideEl\r\n .find(`.${params.containerClass}`)\r\n .eq(0)\r\n .find('picture, img, svg, canvas, .swiper-zoom-target')\r\n .eq(0);\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n }\r\n if (\r\n !gesture.$imageEl ||\r\n gesture.$imageEl.length === 0 ||\r\n !gesture.$imageWrapEl ||\r\n gesture.$imageWrapEl.length === 0\r\n )\r\n return;\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.style.overflow = '';\r\n swiper.wrapperEl.style.touchAction = '';\r\n }\r\n zoom.scale = 1;\r\n currentScale = 1;\r\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\r\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\r\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\r\n gesture.$slideEl = undefined;\r\n }\r\n\r\n // Toggle Zoom\r\n function zoomToggle(e) {\r\n const zoom = swiper.zoom;\r\n\r\n if (zoom.scale && zoom.scale !== 1) {\r\n // Zoom Out\r\n zoomOut();\r\n } else {\r\n // Zoom In\r\n zoomIn(e);\r\n }\r\n }\r\n\r\n function getListeners() {\r\n const support = swiper.support;\r\n const passiveListener =\r\n swiper.touchEvents.start === 'touchstart' &&\r\n support.passiveListener &&\r\n swiper.params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n const activeListenerWithCapture = support.passiveListener\r\n ? { passive: false, capture: true }\r\n : true;\r\n return { passiveListener, activeListenerWithCapture };\r\n }\r\n\r\n function getSlideSelector() {\r\n return `.${swiper.params.slideClass}`;\r\n }\r\n\r\n function toggleGestures(method) {\r\n const { passiveListener } = getListeners();\r\n const slideSelector = getSlideSelector();\r\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\r\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\r\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\r\n }\r\n function enableGestures() {\r\n if (gesturesEnabled) return;\r\n gesturesEnabled = true;\r\n toggleGestures('on');\r\n }\r\n function disableGestures() {\r\n if (!gesturesEnabled) return;\r\n gesturesEnabled = false;\r\n toggleGestures('off');\r\n }\r\n\r\n // Attach/Detach Events\r\n function enable() {\r\n const zoom = swiper.zoom;\r\n if (zoom.enabled) return;\r\n zoom.enabled = true;\r\n const support = swiper.support;\r\n const { passiveListener, activeListenerWithCapture } = getListeners();\r\n const slideSelector = getSlideSelector();\r\n\r\n // Scale image\r\n if (support.gestures) {\r\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.start,\r\n slideSelector,\r\n onGestureStart,\r\n passiveListener,\r\n );\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.move,\r\n slideSelector,\r\n onGestureChange,\r\n activeListenerWithCapture,\r\n );\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\r\n if (swiper.touchEvents.cancel) {\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.cancel,\r\n slideSelector,\r\n onGestureEnd,\r\n passiveListener,\r\n );\r\n }\r\n }\r\n\r\n // Move image\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.move,\r\n `.${swiper.params.zoom.containerClass}`,\r\n onTouchMove,\r\n activeListenerWithCapture,\r\n );\r\n }\r\n function disable() {\r\n const zoom = swiper.zoom;\r\n if (!zoom.enabled) return;\r\n const support = swiper.support;\r\n zoom.enabled = false;\r\n\r\n const { passiveListener, activeListenerWithCapture } = getListeners();\r\n const slideSelector = getSlideSelector();\r\n\r\n // Scale image\r\n if (support.gestures) {\r\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.start,\r\n slideSelector,\r\n onGestureStart,\r\n passiveListener,\r\n );\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.move,\r\n slideSelector,\r\n onGestureChange,\r\n activeListenerWithCapture,\r\n );\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\r\n if (swiper.touchEvents.cancel) {\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.cancel,\r\n slideSelector,\r\n onGestureEnd,\r\n passiveListener,\r\n );\r\n }\r\n }\r\n\r\n // Move image\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.move,\r\n `.${swiper.params.zoom.containerClass}`,\r\n onTouchMove,\r\n activeListenerWithCapture,\r\n );\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.zoom.enabled) {\r\n enable();\r\n }\r\n });\r\n on('destroy', () => {\r\n disable();\r\n });\r\n on('touchStart', (_s, e) => {\r\n if (!swiper.zoom.enabled) return;\r\n onTouchStart(e);\r\n });\r\n on('touchEnd', (_s, e) => {\r\n if (!swiper.zoom.enabled) return;\r\n onTouchEnd(e);\r\n });\r\n on('doubleTap', (_s, e) => {\r\n if (\r\n !swiper.animating &&\r\n swiper.params.zoom.enabled &&\r\n swiper.zoom.enabled &&\r\n swiper.params.zoom.toggle\r\n ) {\r\n zoomToggle(e);\r\n }\r\n });\r\n on('transitionEnd', () => {\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\r\n onTransitionEnd();\r\n }\r\n });\r\n on('slideChange', () => {\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\r\n onTransitionEnd();\r\n }\r\n });\r\n\r\n Object.assign(swiper.zoom, {\r\n enable,\r\n disable,\r\n in: zoomIn,\r\n out: zoomOut,\r\n toggle: zoomToggle,\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Lazy({ swiper, extendParams, on, emit }) {\r\n extendParams({\r\n lazy: {\r\n checkInView: false,\r\n enabled: false,\r\n loadPrevNext: false,\r\n loadPrevNextAmount: 1,\r\n loadOnTransitionStart: false,\r\n scrollingElement: '',\r\n\r\n elementClass: 'swiper-lazy',\r\n loadingClass: 'swiper-lazy-loading',\r\n loadedClass: 'swiper-lazy-loaded',\r\n preloaderClass: 'swiper-lazy-preloader',\r\n },\r\n });\r\n\r\n swiper.lazy = {};\r\n\r\n let scrollHandlerAttached = false;\r\n let initialImageLoaded = false;\r\n\r\n function loadInSlide(index, loadInDuplicate = true) {\r\n const params = swiper.params.lazy;\r\n if (typeof index === 'undefined') return;\r\n if (swiper.slides.length === 0) return;\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n\r\n const $slideEl = isVirtual\r\n ? swiper.$wrapperEl.children(\r\n `.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`,\r\n )\r\n : swiper.slides.eq(index);\r\n\r\n const $images = $slideEl.find(\r\n `.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`,\r\n );\r\n if (\r\n $slideEl.hasClass(params.elementClass) &&\r\n !$slideEl.hasClass(params.loadedClass) &&\r\n !$slideEl.hasClass(params.loadingClass)\r\n ) {\r\n $images.push($slideEl[0]);\r\n }\r\n if ($images.length === 0) return;\r\n\r\n $images.each((imageEl) => {\r\n const $imageEl = $(imageEl);\r\n $imageEl.addClass(params.loadingClass);\r\n\r\n const background = $imageEl.attr('data-background');\r\n const src = $imageEl.attr('data-src');\r\n const srcset = $imageEl.attr('data-srcset');\r\n const sizes = $imageEl.attr('data-sizes');\r\n const $pictureEl = $imageEl.parent('picture');\r\n\r\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\r\n if (\r\n typeof swiper === 'undefined' ||\r\n swiper === null ||\r\n !swiper ||\r\n (swiper && !swiper.params) ||\r\n swiper.destroyed\r\n )\r\n return;\r\n if (background) {\r\n $imageEl.css('background-image', `url(\"${background}\")`);\r\n $imageEl.removeAttr('data-background');\r\n } else {\r\n if (srcset) {\r\n $imageEl.attr('srcset', srcset);\r\n $imageEl.removeAttr('data-srcset');\r\n }\r\n if (sizes) {\r\n $imageEl.attr('sizes', sizes);\r\n $imageEl.removeAttr('data-sizes');\r\n }\r\n if ($pictureEl.length) {\r\n $pictureEl.children('source').each((sourceEl) => {\r\n const $source = $(sourceEl);\r\n\r\n if ($source.attr('data-srcset')) {\r\n $source.attr('srcset', $source.attr('data-srcset'));\r\n $source.removeAttr('data-srcset');\r\n }\r\n });\r\n }\r\n if (src) {\r\n $imageEl.attr('src', src);\r\n $imageEl.removeAttr('data-src');\r\n }\r\n }\r\n\r\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\r\n $slideEl.find(`.${params.preloaderClass}`).remove();\r\n if (swiper.params.loop && loadInDuplicate) {\r\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\r\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\r\n const originalSlide = swiper.$wrapperEl.children(\r\n `[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`,\r\n );\r\n loadInSlide(originalSlide.index(), false);\r\n } else {\r\n const duplicatedSlide = swiper.$wrapperEl.children(\r\n `.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`,\r\n );\r\n loadInSlide(duplicatedSlide.index(), false);\r\n }\r\n }\r\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n });\r\n\r\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\r\n });\r\n }\r\n\r\n function load() {\r\n const { $wrapperEl, params: swiperParams, slides, activeIndex } = swiper;\r\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\r\n const params = swiperParams.lazy;\r\n\r\n let slidesPerView = swiperParams.slidesPerView;\r\n if (slidesPerView === 'auto') {\r\n slidesPerView = 0;\r\n }\r\n\r\n function slideExist(index) {\r\n if (isVirtual) {\r\n if (\r\n $wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`)\r\n .length\r\n ) {\r\n return true;\r\n }\r\n } else if (slides[index]) return true;\r\n return false;\r\n }\r\n\r\n function slideIndex(slideEl) {\r\n if (isVirtual) {\r\n return $(slideEl).attr('data-swiper-slide-index');\r\n }\r\n return $(slideEl).index();\r\n }\r\n\r\n if (!initialImageLoaded) initialImageLoaded = true;\r\n if (swiper.params.watchSlidesProgress) {\r\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((slideEl) => {\r\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\r\n loadInSlide(index);\r\n });\r\n } else if (slidesPerView > 1) {\r\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\r\n if (slideExist(i)) loadInSlide(i);\r\n }\r\n } else {\r\n loadInSlide(activeIndex);\r\n }\r\n if (params.loadPrevNext) {\r\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\r\n const amount = params.loadPrevNextAmount;\r\n const spv = Math.ceil(slidesPerView);\r\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\r\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\r\n // Next Slides\r\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\r\n if (slideExist(i)) loadInSlide(i);\r\n }\r\n // Prev Slides\r\n for (let i = minIndex; i < activeIndex; i += 1) {\r\n if (slideExist(i)) loadInSlide(i);\r\n }\r\n } else {\r\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\r\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\r\n\r\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\r\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\r\n }\r\n }\r\n }\r\n function checkInViewOnLoad() {\r\n const window = getWindow();\r\n if (!swiper || swiper.destroyed) return;\r\n const $scrollElement = swiper.params.lazy.scrollingElement\r\n ? $(swiper.params.lazy.scrollingElement)\r\n : $(window);\r\n const isWindow = $scrollElement[0] === window;\r\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\r\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\r\n const swiperOffset = swiper.$el.offset();\r\n const { rtlTranslate: rtl } = swiper;\r\n\r\n let inView = false;\r\n\r\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n const swiperCoord = [\r\n [swiperOffset.left, swiperOffset.top],\r\n [swiperOffset.left + swiper.width, swiperOffset.top],\r\n [swiperOffset.left, swiperOffset.top + swiper.height],\r\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\r\n ];\r\n for (let i = 0; i < swiperCoord.length; i += 1) {\r\n const point = swiperCoord[i];\r\n if (\r\n point[0] >= 0 &&\r\n point[0] <= scrollElementWidth &&\r\n point[1] >= 0 &&\r\n point[1] <= scrollElementHeight\r\n ) {\r\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\r\n inView = true;\r\n }\r\n }\r\n\r\n const passiveListener =\r\n swiper.touchEvents.start === 'touchstart' &&\r\n swiper.support.passiveListener &&\r\n swiper.params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n\r\n if (inView) {\r\n load();\r\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\r\n } else if (!scrollHandlerAttached) {\r\n scrollHandlerAttached = true;\r\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\r\n }\r\n }\r\n\r\n on('beforeInit', () => {\r\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\r\n swiper.params.preloadImages = false;\r\n }\r\n });\r\n on('init', () => {\r\n if (swiper.params.lazy.enabled) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n });\r\n on('scroll', () => {\r\n if (\r\n swiper.params.freeMode &&\r\n swiper.params.freeMode.enabled &&\r\n !swiper.params.freeMode.sticky\r\n ) {\r\n load();\r\n }\r\n });\r\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\r\n if (swiper.params.lazy.enabled) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n });\r\n on('transitionStart', () => {\r\n if (swiper.params.lazy.enabled) {\r\n if (\r\n swiper.params.lazy.loadOnTransitionStart ||\r\n (!swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded)\r\n ) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n }\r\n });\r\n on('transitionEnd', () => {\r\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n });\r\n on('slideChange', () => {\r\n const { lazy, cssMode, watchSlidesProgress, touchReleaseOnEdges, resistanceRatio } =\r\n swiper.params;\r\n if (\r\n lazy.enabled &&\r\n (cssMode || (watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0)))\r\n ) {\r\n load();\r\n }\r\n });\r\n\r\n on('destroy', () => {\r\n if (!swiper.$el) return;\r\n swiper.$el\r\n .find(`.${swiper.params.lazy.loadingClass}`)\r\n .removeClass(swiper.params.lazy.loadingClass);\r\n });\r\n\r\n Object.assign(swiper.lazy, {\r\n load,\r\n loadInSlide,\r\n });\r\n}\r\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\r\nimport { nextTick } from '../../shared/utils.js';\r\n\r\nexport default function Controller({ swiper, extendParams, on }) {\r\n extendParams({\r\n controller: {\r\n control: undefined,\r\n inverse: false,\r\n by: 'slide', // or 'container'\r\n },\r\n });\r\n\r\n swiper.controller = {\r\n control: undefined,\r\n };\r\n\r\n function LinearSpline(x, y) {\r\n const binarySearch = (function search() {\r\n let maxIndex;\r\n let minIndex;\r\n let guess;\r\n return (array, val) => {\r\n minIndex = -1;\r\n maxIndex = array.length;\r\n while (maxIndex - minIndex > 1) {\r\n guess = (maxIndex + minIndex) >> 1;\r\n if (array[guess] <= val) {\r\n minIndex = guess;\r\n } else {\r\n maxIndex = guess;\r\n }\r\n }\r\n return maxIndex;\r\n };\r\n })();\r\n this.x = x;\r\n this.y = y;\r\n this.lastIndex = x.length - 1;\r\n // Given an x value (x2), return the expected y2 value:\r\n // (x1,y1) is the known point before given value,\r\n // (x3,y3) is the known point after given value.\r\n let i1;\r\n let i3;\r\n\r\n this.interpolate = function interpolate(x2) {\r\n if (!x2) return 0;\r\n\r\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\r\n i3 = binarySearch(this.x, x2);\r\n i1 = i3 - 1;\r\n\r\n // We have our indexes i1 & i3, so we can calculate already:\r\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\r\n return (\r\n ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1]\r\n );\r\n };\r\n return this;\r\n }\r\n // xxx: for now i will just save one spline function to to\r\n function getInterpolateFunction(c) {\r\n if (!swiper.controller.spline) {\r\n swiper.controller.spline = swiper.params.loop\r\n ? new LinearSpline(swiper.slidesGrid, c.slidesGrid)\r\n : new LinearSpline(swiper.snapGrid, c.snapGrid);\r\n }\r\n }\r\n function setTranslate(_t, byController) {\r\n const controlled = swiper.controller.control;\r\n let multiplier;\r\n let controlledTranslate;\r\n const Swiper = swiper.constructor;\r\n function setControlledTranslate(c) {\r\n // this will create an Interpolate function based on the snapGrids\r\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\r\n // it makes sense to create this only once and recall it for the interpolation\r\n // the function does a lot of value caching for performance\r\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\r\n if (swiper.params.controller.by === 'slide') {\r\n getInterpolateFunction(c);\r\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\r\n // but it did not work out\r\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\r\n }\r\n\r\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\r\n multiplier =\r\n (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\r\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\r\n }\r\n\r\n if (swiper.params.controller.inverse) {\r\n controlledTranslate = c.maxTranslate() - controlledTranslate;\r\n }\r\n c.updateProgress(controlledTranslate);\r\n c.setTranslate(controlledTranslate, swiper);\r\n c.updateActiveIndex();\r\n c.updateSlidesClasses();\r\n }\r\n if (Array.isArray(controlled)) {\r\n for (let i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTranslate(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTranslate(controlled);\r\n }\r\n }\r\n function setTransition(duration, byController) {\r\n const Swiper = swiper.constructor;\r\n const controlled = swiper.controller.control;\r\n let i;\r\n function setControlledTransition(c) {\r\n c.setTransition(duration, swiper);\r\n if (duration !== 0) {\r\n c.transitionStart();\r\n if (c.params.autoHeight) {\r\n nextTick(() => {\r\n c.updateAutoHeight();\r\n });\r\n }\r\n c.$wrapperEl.transitionEnd(() => {\r\n if (!controlled) return;\r\n if (c.params.loop && swiper.params.controller.by === 'slide') {\r\n c.loopFix();\r\n }\r\n c.transitionEnd();\r\n });\r\n }\r\n }\r\n if (Array.isArray(controlled)) {\r\n for (i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTransition(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTransition(controlled);\r\n }\r\n }\r\n\r\n function removeSpline() {\r\n if (!swiper.controller.control) return;\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n }\r\n on('beforeInit', () => {\r\n swiper.controller.control = swiper.params.controller.control;\r\n });\r\n on('update', () => {\r\n removeSpline();\r\n });\r\n on('resize', () => {\r\n removeSpline();\r\n });\r\n on('observerUpdate', () => {\r\n removeSpline();\r\n });\r\n on('setTranslate', (_s, translate, byController) => {\r\n if (!swiper.controller.control) return;\r\n swiper.controller.setTranslate(translate, byController);\r\n });\r\n on('setTransition', (_s, duration, byController) => {\r\n if (!swiper.controller.control) return;\r\n swiper.controller.setTransition(duration, byController);\r\n });\r\n\r\n Object.assign(swiper.controller, {\r\n setTranslate,\r\n setTransition,\r\n });\r\n}\r\n","import classesToSelector from '../../shared/classes-to-selector.js';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function A11y({ swiper, extendParams, on }) {\r\n extendParams({\r\n a11y: {\r\n enabled: true,\r\n notificationClass: 'swiper-notification',\r\n prevSlideMessage: 'Previous slide',\r\n nextSlideMessage: 'Next slide',\r\n firstSlideMessage: 'This is the first slide',\r\n lastSlideMessage: 'This is the last slide',\r\n paginationBulletMessage: 'Go to slide {{index}}',\r\n slideLabelMessage: '{{index}} / {{slidesLength}}',\r\n containerMessage: null,\r\n containerRoleDescriptionMessage: null,\r\n itemRoleDescriptionMessage: null,\r\n slideRole: 'group',\r\n id: null,\r\n },\r\n });\r\n\r\n let liveRegion = null;\r\n\r\n function notify(message) {\r\n const notification = liveRegion;\r\n if (notification.length === 0) return;\r\n notification.html('');\r\n notification.html(message);\r\n }\r\n\r\n function getRandomNumber(size = 16) {\r\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\r\n return 'x'.repeat(size).replace(/x/g, randomChar);\r\n }\r\n function makeElFocusable($el) {\r\n $el.attr('tabIndex', '0');\r\n }\r\n function makeElNotFocusable($el) {\r\n $el.attr('tabIndex', '-1');\r\n }\r\n function addElRole($el, role) {\r\n $el.attr('role', role);\r\n }\r\n function addElRoleDescription($el, description) {\r\n $el.attr('aria-roledescription', description);\r\n }\r\n function addElControls($el, controls) {\r\n $el.attr('aria-controls', controls);\r\n }\r\n function addElLabel($el, label) {\r\n $el.attr('aria-label', label);\r\n }\r\n function addElId($el, id) {\r\n $el.attr('id', id);\r\n }\r\n function addElLive($el, live) {\r\n $el.attr('aria-live', live);\r\n }\r\n function disableEl($el) {\r\n $el.attr('aria-disabled', true);\r\n }\r\n function enableEl($el) {\r\n $el.attr('aria-disabled', false);\r\n }\r\n\r\n function onEnterOrSpaceKey(e) {\r\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\r\n const params = swiper.params.a11y;\r\n const $targetEl = $(e.target);\r\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\r\n if (!(swiper.isEnd && !swiper.params.loop)) {\r\n swiper.slideNext();\r\n }\r\n if (swiper.isEnd) {\r\n notify(params.lastSlideMessage);\r\n } else {\r\n notify(params.nextSlideMessage);\r\n }\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\r\n if (!(swiper.isBeginning && !swiper.params.loop)) {\r\n swiper.slidePrev();\r\n }\r\n if (swiper.isBeginning) {\r\n notify(params.firstSlideMessage);\r\n } else {\r\n notify(params.prevSlideMessage);\r\n }\r\n }\r\n\r\n if (\r\n swiper.pagination &&\r\n $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))\r\n ) {\r\n $targetEl[0].click();\r\n }\r\n }\r\n\r\n function updateNavigation() {\r\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n if (swiper.isBeginning) {\r\n disableEl($prevEl);\r\n makeElNotFocusable($prevEl);\r\n } else {\r\n enableEl($prevEl);\r\n makeElFocusable($prevEl);\r\n }\r\n }\r\n if ($nextEl && $nextEl.length > 0) {\r\n if (swiper.isEnd) {\r\n disableEl($nextEl);\r\n makeElNotFocusable($nextEl);\r\n } else {\r\n enableEl($nextEl);\r\n makeElFocusable($nextEl);\r\n }\r\n }\r\n }\r\n\r\n function hasPagination() {\r\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\r\n }\r\n\r\n function hasClickablePagination() {\r\n return hasPagination() && swiper.params.pagination.clickable;\r\n }\r\n\r\n function updatePagination() {\r\n const params = swiper.params.a11y;\r\n if (!hasPagination()) return;\r\n swiper.pagination.bullets.each((bulletEl) => {\r\n const $bulletEl = $(bulletEl);\r\n if (swiper.params.pagination.clickable) {\r\n makeElFocusable($bulletEl);\r\n if (!swiper.params.pagination.renderBullet) {\r\n addElRole($bulletEl, 'button');\r\n addElLabel(\r\n $bulletEl,\r\n params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1),\r\n );\r\n }\r\n }\r\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\r\n $bulletEl.attr('aria-current', 'true');\r\n } else {\r\n $bulletEl.removeAttr('aria-current');\r\n }\r\n });\r\n }\r\n\r\n const initNavEl = ($el, wrapperId, message) => {\r\n makeElFocusable($el);\r\n if ($el[0].tagName !== 'BUTTON') {\r\n addElRole($el, 'button');\r\n $el.on('keydown', onEnterOrSpaceKey);\r\n }\r\n addElLabel($el, message);\r\n addElControls($el, wrapperId);\r\n };\r\n\r\n const handleFocus = (e) => {\r\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\r\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\r\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\r\n const isVisible =\r\n swiper.params.watchSlidesProgress &&\r\n swiper.visibleSlides &&\r\n swiper.visibleSlides.includes(slideEl);\r\n if (isActive || isVisible) return;\r\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\r\n };\r\n\r\n const initSlides = () => {\r\n const params = swiper.params.a11y;\r\n if (params.itemRoleDescriptionMessage) {\r\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\r\n }\r\n if (params.slideRole) {\r\n addElRole($(swiper.slides), params.slideRole);\r\n }\r\n\r\n const slidesLength = swiper.params.loop\r\n ? swiper.slides.filter((el) => !el.classList.contains(swiper.params.slideDuplicateClass))\r\n .length\r\n : swiper.slides.length;\r\n if (params.slideLabelMessage) {\r\n swiper.slides.each((slideEl, index) => {\r\n const $slideEl = $(slideEl);\r\n const slideIndex = swiper.params.loop\r\n ? parseInt($slideEl.attr('data-swiper-slide-index'), 10)\r\n : index;\r\n const ariaLabelMessage = params.slideLabelMessage\r\n .replace(/\\{\\{index\\}\\}/, slideIndex + 1)\r\n .replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\r\n addElLabel($slideEl, ariaLabelMessage);\r\n });\r\n }\r\n };\r\n\r\n const init = () => {\r\n const params = swiper.params.a11y;\r\n\r\n swiper.$el.append(liveRegion);\r\n\r\n // Container\r\n const $containerEl = swiper.$el;\r\n if (params.containerRoleDescriptionMessage) {\r\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\r\n }\r\n if (params.containerMessage) {\r\n addElLabel($containerEl, params.containerMessage);\r\n }\r\n\r\n // Wrapper\r\n const $wrapperEl = swiper.$wrapperEl;\r\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\r\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\r\n addElId($wrapperEl, wrapperId);\r\n addElLive($wrapperEl, live);\r\n\r\n // Slide\r\n initSlides();\r\n\r\n // Navigation\r\n let $nextEl;\r\n let $prevEl;\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n\r\n if ($nextEl && $nextEl.length) {\r\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\r\n }\r\n if ($prevEl && $prevEl.length) {\r\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\r\n }\r\n\r\n // Pagination\r\n if (hasClickablePagination()) {\r\n swiper.pagination.$el.on(\r\n 'keydown',\r\n classesToSelector(swiper.params.pagination.bulletClass),\r\n onEnterOrSpaceKey,\r\n );\r\n }\r\n\r\n // Tab focus\r\n swiper.$el.on('focus', handleFocus, true);\r\n };\r\n function destroy() {\r\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\r\n\r\n let $nextEl;\r\n let $prevEl;\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n if ($nextEl) {\r\n $nextEl.off('keydown', onEnterOrSpaceKey);\r\n }\r\n if ($prevEl) {\r\n $prevEl.off('keydown', onEnterOrSpaceKey);\r\n }\r\n\r\n // Pagination\r\n if (hasClickablePagination()) {\r\n swiper.pagination.$el.off(\r\n 'keydown',\r\n classesToSelector(swiper.params.pagination.bulletClass),\r\n onEnterOrSpaceKey,\r\n );\r\n }\r\n\r\n // Tab focus\r\n swiper.$el.off('focus', handleFocus, true);\r\n }\r\n\r\n on('beforeInit', () => {\r\n liveRegion = $(\r\n ``,\r\n );\r\n });\r\n\r\n on('afterInit', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n init();\r\n });\r\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n initSlides();\r\n });\r\n on('fromEdge toEdge afterInit lock unlock', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n updateNavigation();\r\n });\r\n on('paginationUpdate', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n updatePagination();\r\n });\r\n on('destroy', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n destroy();\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function History({ swiper, extendParams, on }) {\r\n extendParams({\r\n history: {\r\n enabled: false,\r\n root: '',\r\n replaceState: false,\r\n key: 'slides',\r\n keepQuery: false,\r\n },\r\n });\r\n\r\n let initialized = false;\r\n let paths = {};\r\n\r\n const slugify = (text) => {\r\n return text\r\n .toString()\r\n .replace(/\\s+/g, '-')\r\n .replace(/[^\\w-]+/g, '')\r\n .replace(/--+/g, '-')\r\n .replace(/^-+/, '')\r\n .replace(/-+$/, '');\r\n };\r\n\r\n const getPathValues = (urlOverride) => {\r\n const window = getWindow();\r\n let location;\r\n if (urlOverride) {\r\n location = new URL(urlOverride);\r\n } else {\r\n location = window.location;\r\n }\r\n const pathArray = location.pathname\r\n .slice(1)\r\n .split('/')\r\n .filter((part) => part !== '');\r\n const total = pathArray.length;\r\n const key = pathArray[total - 2];\r\n const value = pathArray[total - 1];\r\n return { key, value };\r\n };\r\n const setHistory = (key, index) => {\r\n const window = getWindow();\r\n if (!initialized || !swiper.params.history.enabled) return;\r\n let location;\r\n if (swiper.params.url) {\r\n location = new URL(swiper.params.url);\r\n } else {\r\n location = window.location;\r\n }\r\n const slide = swiper.slides.eq(index);\r\n let value = slugify(slide.attr('data-history'));\r\n if (swiper.params.history.root.length > 0) {\r\n let root = swiper.params.history.root;\r\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\r\n value = `${root}/${key}/${value}`;\r\n } else if (!location.pathname.includes(key)) {\r\n value = `${key}/${value}`;\r\n }\r\n if (swiper.params.history.keepQuery) {\r\n value += location.search;\r\n }\r\n const currentState = window.history.state;\r\n if (currentState && currentState.value === value) {\r\n return;\r\n }\r\n if (swiper.params.history.replaceState) {\r\n window.history.replaceState({ value }, null, value);\r\n } else {\r\n window.history.pushState({ value }, null, value);\r\n }\r\n };\r\n\r\n const scrollToSlide = (speed, value, runCallbacks) => {\r\n if (value) {\r\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n const slide = swiper.slides.eq(i);\r\n const slideHistory = slugify(slide.attr('data-history'));\r\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n const index = slide.index();\r\n swiper.slideTo(index, speed, runCallbacks);\r\n }\r\n }\r\n } else {\r\n swiper.slideTo(0, speed, runCallbacks);\r\n }\r\n };\r\n\r\n const setHistoryPopState = () => {\r\n paths = getPathValues(swiper.params.url);\r\n scrollToSlide(swiper.params.speed, paths.value, false);\r\n };\r\n\r\n const init = () => {\r\n const window = getWindow();\r\n if (!swiper.params.history) return;\r\n if (!window.history || !window.history.pushState) {\r\n swiper.params.history.enabled = false;\r\n swiper.params.hashNavigation.enabled = true;\r\n return;\r\n }\r\n initialized = true;\r\n paths = getPathValues(swiper.params.url);\r\n if (!paths.key && !paths.value) return;\r\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\r\n if (!swiper.params.history.replaceState) {\r\n window.addEventListener('popstate', setHistoryPopState);\r\n }\r\n };\r\n const destroy = () => {\r\n const window = getWindow();\r\n if (!swiper.params.history.replaceState) {\r\n window.removeEventListener('popstate', setHistoryPopState);\r\n }\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.history.enabled) {\r\n init();\r\n }\r\n });\r\n on('destroy', () => {\r\n if (swiper.params.history.enabled) {\r\n destroy();\r\n }\r\n });\r\n on('transitionEnd _freeModeNoMomentumRelease', () => {\r\n if (initialized) {\r\n setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n });\r\n on('slideChange', () => {\r\n if (initialized && swiper.params.cssMode) {\r\n setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n });\r\n}\r\n","import { getWindow, getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function HashNavigation({ swiper, extendParams, emit, on }) {\r\n let initialized = false;\r\n const document = getDocument();\r\n const window = getWindow();\r\n extendParams({\r\n hashNavigation: {\r\n enabled: false,\r\n replaceState: false,\r\n watchState: false,\r\n },\r\n });\r\n const onHashChange = () => {\r\n emit('hashChange');\r\n const newHash = document.location.hash.replace('#', '');\r\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\r\n if (newHash !== activeSlideHash) {\r\n const newIndex = swiper.$wrapperEl\r\n .children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`)\r\n .index();\r\n if (typeof newIndex === 'undefined') return;\r\n swiper.slideTo(newIndex);\r\n }\r\n };\r\n const setHash = () => {\r\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\r\n if (\r\n swiper.params.hashNavigation.replaceState &&\r\n window.history &&\r\n window.history.replaceState\r\n ) {\r\n window.history.replaceState(\r\n null,\r\n null,\r\n `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '',\r\n );\r\n emit('hashSet');\r\n } else {\r\n const slide = swiper.slides.eq(swiper.activeIndex);\r\n const hash = slide.attr('data-hash') || slide.attr('data-history');\r\n document.location.hash = hash || '';\r\n emit('hashSet');\r\n }\r\n };\r\n const init = () => {\r\n if (\r\n !swiper.params.hashNavigation.enabled ||\r\n (swiper.params.history && swiper.params.history.enabled)\r\n )\r\n return;\r\n initialized = true;\r\n const hash = document.location.hash.replace('#', '');\r\n if (hash) {\r\n const speed = 0;\r\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n const slide = swiper.slides.eq(i);\r\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\r\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n const index = slide.index();\r\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\r\n }\r\n }\r\n }\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(window).on('hashchange', onHashChange);\r\n }\r\n };\r\n const destroy = () => {\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(window).off('hashchange', onHashChange);\r\n }\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.hashNavigation.enabled) {\r\n init();\r\n }\r\n });\r\n on('destroy', () => {\r\n if (swiper.params.hashNavigation.enabled) {\r\n destroy();\r\n }\r\n });\r\n on('transitionEnd _freeModeNoMomentumRelease', () => {\r\n if (initialized) {\r\n setHash();\r\n }\r\n });\r\n on('slideChange', () => {\r\n if (initialized && swiper.params.cssMode) {\r\n setHash();\r\n }\r\n });\r\n}\r\n","/* eslint no-underscore-dangle: \"off\" */\r\n/* eslint no-use-before-define: \"off\" */\r\nimport { getDocument } from 'ssr-window';\r\nimport { nextTick } from '../../shared/utils.js';\r\n\r\nexport default function Autoplay({ swiper, extendParams, on, emit }) {\r\n let timeout;\r\n\r\n swiper.autoplay = {\r\n running: false,\r\n paused: false,\r\n };\r\n\r\n extendParams({\r\n autoplay: {\r\n enabled: false,\r\n delay: 3000,\r\n waitForTransition: true,\r\n disableOnInteraction: true,\r\n stopOnLastSlide: false,\r\n reverseDirection: false,\r\n pauseOnMouseEnter: false,\r\n },\r\n });\r\n\r\n function run() {\r\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\r\n let delay = swiper.params.autoplay.delay;\r\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\r\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\r\n }\r\n clearTimeout(timeout);\r\n timeout = nextTick(() => {\r\n let autoplayResult;\r\n if (swiper.params.autoplay.reverseDirection) {\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.isBeginning) {\r\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n autoplayResult = swiper.slideTo(\r\n swiper.slides.length - 1,\r\n swiper.params.speed,\r\n true,\r\n true,\r\n );\r\n emit('autoplay');\r\n } else {\r\n stop();\r\n }\r\n } else if (swiper.params.loop) {\r\n swiper.loopFix();\r\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.isEnd) {\r\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else {\r\n stop();\r\n }\r\n if (swiper.params.cssMode && swiper.autoplay.running) run();\r\n else if (autoplayResult === false) {\r\n run();\r\n }\r\n }, delay);\r\n }\r\n function start() {\r\n if (typeof timeout !== 'undefined') return false;\r\n if (swiper.autoplay.running) return false;\r\n swiper.autoplay.running = true;\r\n emit('autoplayStart');\r\n run();\r\n return true;\r\n }\r\n function stop() {\r\n if (!swiper.autoplay.running) return false;\r\n if (typeof timeout === 'undefined') return false;\r\n\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = undefined;\r\n }\r\n swiper.autoplay.running = false;\r\n emit('autoplayStop');\r\n return true;\r\n }\r\n function pause(speed) {\r\n if (!swiper.autoplay.running) return;\r\n if (swiper.autoplay.paused) return;\r\n if (timeout) clearTimeout(timeout);\r\n swiper.autoplay.paused = true;\r\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\r\n swiper.autoplay.paused = false;\r\n run();\r\n } else {\r\n ['transitionend', 'webkitTransitionEnd'].forEach((event) => {\r\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\r\n });\r\n }\r\n }\r\n function onVisibilityChange() {\r\n const document = getDocument();\r\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\r\n pause();\r\n }\r\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\r\n run();\r\n swiper.autoplay.paused = false;\r\n }\r\n }\r\n function onTransitionEnd(e) {\r\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\r\n if (e.target !== swiper.$wrapperEl[0]) return;\r\n ['transitionend', 'webkitTransitionEnd'].forEach((event) => {\r\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\r\n });\r\n swiper.autoplay.paused = false;\r\n if (!swiper.autoplay.running) {\r\n stop();\r\n } else {\r\n run();\r\n }\r\n }\r\n function onMouseEnter() {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n stop();\r\n } else {\r\n emit('autoplayPause');\r\n pause();\r\n }\r\n\r\n ['transitionend', 'webkitTransitionEnd'].forEach((event) => {\r\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\r\n });\r\n }\r\n function onMouseLeave() {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n return;\r\n }\r\n swiper.autoplay.paused = false;\r\n emit('autoplayResume');\r\n run();\r\n }\r\n function attachMouseEvents() {\r\n if (swiper.params.autoplay.pauseOnMouseEnter) {\r\n swiper.$el.on('mouseenter', onMouseEnter);\r\n swiper.$el.on('mouseleave', onMouseLeave);\r\n }\r\n }\r\n function detachMouseEvents() {\r\n swiper.$el.off('mouseenter', onMouseEnter);\r\n swiper.$el.off('mouseleave', onMouseLeave);\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.autoplay.enabled) {\r\n start();\r\n const document = getDocument();\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n attachMouseEvents();\r\n }\r\n });\r\n on('beforeTransitionStart', (_s, speed, internal) => {\r\n if (swiper.autoplay.running) {\r\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.pause(speed);\r\n } else {\r\n stop();\r\n }\r\n }\r\n });\r\n on('sliderFirstMove', () => {\r\n if (swiper.autoplay.running) {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n stop();\r\n } else {\r\n pause();\r\n }\r\n }\r\n });\r\n on('touchEnd', () => {\r\n if (\r\n swiper.params.cssMode &&\r\n swiper.autoplay.paused &&\r\n !swiper.params.autoplay.disableOnInteraction\r\n ) {\r\n run();\r\n }\r\n });\r\n on('destroy', () => {\r\n detachMouseEvents();\r\n if (swiper.autoplay.running) {\r\n stop();\r\n }\r\n const document = getDocument();\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n });\r\n\r\n Object.assign(swiper.autoplay, {\r\n pause,\r\n run,\r\n start,\r\n stop,\r\n });\r\n}\r\n","import { isObject } from '../../shared/utils.js';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Thumb({ swiper, extendParams, on }) {\r\n extendParams({\r\n thumbs: {\r\n swiper: null,\r\n multipleActiveThumbs: true,\r\n autoScrollOffset: 0,\r\n slideThumbActiveClass: 'swiper-slide-thumb-active',\r\n thumbsContainerClass: 'swiper-thumbs',\r\n },\r\n });\r\n\r\n let initialized = false;\r\n let swiperCreated = false;\r\n\r\n swiper.thumbs = {\r\n swiper: null,\r\n };\r\n\r\n function onThumbClick() {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n\r\n const clickedIndex = thumbsSwiper.clickedIndex;\r\n const clickedSlide = thumbsSwiper.clickedSlide;\r\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass))\r\n return;\r\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\r\n let slideToIndex;\r\n if (thumbsSwiper.params.loop) {\r\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n slideToIndex = clickedIndex;\r\n }\r\n if (swiper.params.loop) {\r\n let currentIndex = swiper.activeIndex;\r\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n currentIndex = swiper.activeIndex;\r\n }\r\n const prevIndex = swiper.slides\r\n .eq(currentIndex)\r\n .prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n const nextIndex = swiper.slides\r\n .eq(currentIndex)\r\n .nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\r\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\r\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\r\n else slideToIndex = prevIndex;\r\n }\r\n swiper.slideTo(slideToIndex);\r\n }\r\n\r\n function init() {\r\n const { thumbs: thumbsParams } = swiper.params;\r\n if (initialized) return false;\r\n initialized = true;\r\n const SwiperClass = swiper.constructor;\r\n if (thumbsParams.swiper instanceof SwiperClass) {\r\n swiper.thumbs.swiper = thumbsParams.swiper;\r\n Object.assign(swiper.thumbs.swiper.originalParams, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n Object.assign(swiper.thumbs.swiper.params, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n } else if (isObject(thumbsParams.swiper)) {\r\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\r\n Object.assign(thumbsSwiperParams, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\r\n swiperCreated = true;\r\n }\r\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\r\n swiper.thumbs.swiper.on('tap', onThumbClick);\r\n return true;\r\n }\r\n\r\n function update(initial) {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n\r\n const slidesPerView =\r\n thumbsSwiper.params.slidesPerView === 'auto'\r\n ? thumbsSwiper.slidesPerViewDynamic()\r\n : thumbsSwiper.params.slidesPerView;\r\n\r\n // Activate thumbs\r\n let thumbsToActivate = 1;\r\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\r\n\r\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\r\n thumbsToActivate = swiper.params.slidesPerView;\r\n }\r\n\r\n if (!swiper.params.thumbs.multipleActiveThumbs) {\r\n thumbsToActivate = 1;\r\n }\r\n\r\n thumbsToActivate = Math.floor(thumbsToActivate);\r\n\r\n thumbsSwiper.slides.removeClass(thumbActiveClass);\r\n if (\r\n thumbsSwiper.params.loop ||\r\n (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)\r\n ) {\r\n for (let i = 0; i < thumbsToActivate; i += 1) {\r\n thumbsSwiper.$wrapperEl\r\n .children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`)\r\n .addClass(thumbActiveClass);\r\n }\r\n } else {\r\n for (let i = 0; i < thumbsToActivate; i += 1) {\r\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\r\n }\r\n }\r\n\r\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\r\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\r\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\r\n let currentThumbsIndex = thumbsSwiper.activeIndex;\r\n let newThumbsIndex;\r\n let direction;\r\n if (thumbsSwiper.params.loop) {\r\n if (\r\n thumbsSwiper.slides\r\n .eq(currentThumbsIndex)\r\n .hasClass(thumbsSwiper.params.slideDuplicateClass)\r\n ) {\r\n thumbsSwiper.loopFix();\r\n // eslint-disable-next-line\r\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\r\n currentThumbsIndex = thumbsSwiper.activeIndex;\r\n }\r\n // Find actual thumbs index to slide to\r\n const prevThumbsIndex = thumbsSwiper.slides\r\n .eq(currentThumbsIndex)\r\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n const nextThumbsIndex = thumbsSwiper.slides\r\n .eq(currentThumbsIndex)\r\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n if (typeof prevThumbsIndex === 'undefined') {\r\n newThumbsIndex = nextThumbsIndex;\r\n } else if (typeof nextThumbsIndex === 'undefined') {\r\n newThumbsIndex = prevThumbsIndex;\r\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\r\n newThumbsIndex =\r\n thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\r\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\r\n newThumbsIndex = nextThumbsIndex;\r\n } else {\r\n newThumbsIndex = prevThumbsIndex;\r\n }\r\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\r\n } else {\r\n newThumbsIndex = swiper.realIndex;\r\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\r\n }\r\n if (useOffset) {\r\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\r\n }\r\n\r\n if (\r\n thumbsSwiper.visibleSlidesIndexes &&\r\n thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0\r\n ) {\r\n if (thumbsSwiper.params.centeredSlides) {\r\n if (newThumbsIndex > currentThumbsIndex) {\r\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\r\n } else {\r\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\r\n }\r\n } else if (\r\n newThumbsIndex > currentThumbsIndex &&\r\n thumbsSwiper.params.slidesPerGroup === 1\r\n ) {\r\n // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\r\n }\r\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\r\n }\r\n }\r\n }\r\n\r\n on('beforeInit', () => {\r\n const { thumbs } = swiper.params;\r\n if (!thumbs || !thumbs.swiper) return;\r\n init();\r\n update(true);\r\n });\r\n on('slideChange update resize observerUpdate', () => {\r\n update();\r\n });\r\n on('setTransition', (_s, duration) => {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n thumbsSwiper.setTransition(duration);\r\n });\r\n on('beforeDestroy', () => {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n if (swiperCreated) {\r\n thumbsSwiper.destroy();\r\n }\r\n });\r\n\r\n Object.assign(swiper.thumbs, {\r\n init,\r\n update,\r\n });\r\n}\r\n","import { now } from '../../shared/utils.js';\r\n\r\nexport default function freeMode({ swiper, extendParams, emit, once }) {\r\n extendParams({\r\n freeMode: {\r\n enabled: false,\r\n momentum: true,\r\n momentumRatio: 1,\r\n momentumBounce: true,\r\n momentumBounceRatio: 1,\r\n momentumVelocityRatio: 1,\r\n sticky: false,\r\n minimumVelocity: 0.02,\r\n },\r\n });\r\n\r\n function onTouchStart() {\r\n const translate = swiper.getTranslate();\r\n swiper.setTranslate(translate);\r\n swiper.setTransition(0);\r\n swiper.touchEventsData.velocities.length = 0;\r\n swiper.freeMode.onTouchEnd({ currentPos: swiper.rtl ? swiper.translate : -swiper.translate });\r\n }\r\n\r\n function onTouchMove() {\r\n const { touchEventsData: data, touches } = swiper;\r\n // Velocity\r\n if (data.velocities.length === 0) {\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\r\n time: data.touchStartTime,\r\n });\r\n }\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\r\n time: now(),\r\n });\r\n }\r\n\r\n function onTouchEnd({ currentPos }) {\r\n const { params, $wrapperEl, rtlTranslate: rtl, snapGrid, touchEventsData: data } = swiper;\r\n // Time diff\r\n const touchEndTime = now();\r\n const timeDiff = touchEndTime - data.touchStartTime;\r\n\r\n if (currentPos < -swiper.minTranslate()) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (currentPos > -swiper.maxTranslate()) {\r\n if (swiper.slides.length < snapGrid.length) {\r\n swiper.slideTo(snapGrid.length - 1);\r\n } else {\r\n swiper.slideTo(swiper.slides.length - 1);\r\n }\r\n return;\r\n }\r\n\r\n if (params.freeMode.momentum) {\r\n if (data.velocities.length > 1) {\r\n const lastMoveEvent = data.velocities.pop();\r\n const velocityEvent = data.velocities.pop();\r\n\r\n const distance = lastMoveEvent.position - velocityEvent.position;\r\n const time = lastMoveEvent.time - velocityEvent.time;\r\n swiper.velocity = distance / time;\r\n swiper.velocity /= 2;\r\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\r\n swiper.velocity = 0;\r\n }\r\n // this implies that the user stopped moving a finger then released.\r\n // There would be no events with distance zero, so the last event is stale.\r\n if (time > 150 || now() - lastMoveEvent.time > 300) {\r\n swiper.velocity = 0;\r\n }\r\n } else {\r\n swiper.velocity = 0;\r\n }\r\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\r\n\r\n data.velocities.length = 0;\r\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\r\n const momentumDistance = swiper.velocity * momentumDuration;\r\n\r\n let newPosition = swiper.translate + momentumDistance;\r\n if (rtl) newPosition = -newPosition;\r\n\r\n let doBounce = false;\r\n let afterBouncePosition;\r\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\r\n let needsLoopFix;\r\n if (newPosition < swiper.maxTranslate()) {\r\n if (params.freeMode.momentumBounce) {\r\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\r\n newPosition = swiper.maxTranslate() - bounceAmount;\r\n }\r\n afterBouncePosition = swiper.maxTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.maxTranslate();\r\n }\r\n if (params.loop && params.centeredSlides) needsLoopFix = true;\r\n } else if (newPosition > swiper.minTranslate()) {\r\n if (params.freeMode.momentumBounce) {\r\n if (newPosition - swiper.minTranslate() > bounceAmount) {\r\n newPosition = swiper.minTranslate() + bounceAmount;\r\n }\r\n afterBouncePosition = swiper.minTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.minTranslate();\r\n }\r\n if (params.loop && params.centeredSlides) needsLoopFix = true;\r\n } else if (params.freeMode.sticky) {\r\n let nextSlide;\r\n for (let j = 0; j < snapGrid.length; j += 1) {\r\n if (snapGrid[j] > -newPosition) {\r\n nextSlide = j;\r\n break;\r\n }\r\n }\r\n\r\n if (\r\n Math.abs(snapGrid[nextSlide] - newPosition) <\r\n Math.abs(snapGrid[nextSlide - 1] - newPosition) ||\r\n swiper.swipeDirection === 'next'\r\n ) {\r\n newPosition = snapGrid[nextSlide];\r\n } else {\r\n newPosition = snapGrid[nextSlide - 1];\r\n }\r\n newPosition = -newPosition;\r\n }\r\n if (needsLoopFix) {\r\n once('transitionEnd', () => {\r\n swiper.loopFix();\r\n });\r\n }\r\n // Fix duration\r\n if (swiper.velocity !== 0) {\r\n if (rtl) {\r\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\r\n } else {\r\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\r\n }\r\n if (params.freeMode.sticky) {\r\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\r\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\r\n // It's easy to see this when simulating touch with mouse events. To fix this,\r\n // limit single-slide swipes to the default slide duration. This also has the\r\n // nice side effect of matching slide speed if the user stopped moving before\r\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\r\n // For faster swipes, also apply limits (albeit higher ones).\r\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\r\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\r\n if (moveDistance < currentSlideSize) {\r\n momentumDuration = params.speed;\r\n } else if (moveDistance < 2 * currentSlideSize) {\r\n momentumDuration = params.speed * 1.5;\r\n } else {\r\n momentumDuration = params.speed * 2.5;\r\n }\r\n }\r\n } else if (params.freeMode.sticky) {\r\n swiper.slideToClosest();\r\n return;\r\n }\r\n\r\n if (params.freeMode.momentumBounce && doBounce) {\r\n swiper.updateProgress(afterBouncePosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(() => {\r\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\r\n emit('momentumBounce');\r\n swiper.setTransition(params.speed);\r\n setTimeout(() => {\r\n swiper.setTranslate(afterBouncePosition);\r\n $wrapperEl.transitionEnd(() => {\r\n if (!swiper || swiper.destroyed) return;\r\n swiper.transitionEnd();\r\n });\r\n }, 0);\r\n });\r\n } else if (swiper.velocity) {\r\n emit('_freeModeNoMomentumRelease');\r\n swiper.updateProgress(newPosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(() => {\r\n if (!swiper || swiper.destroyed) return;\r\n swiper.transitionEnd();\r\n });\r\n }\r\n } else {\r\n swiper.updateProgress(newPosition);\r\n }\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n } else if (params.freeMode.sticky) {\r\n swiper.slideToClosest();\r\n return;\r\n } else if (params.freeMode) {\r\n emit('_freeModeNoMomentumRelease');\r\n }\r\n\r\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n }\r\n\r\n Object.assign(swiper, {\r\n freeMode: {\r\n onTouchStart,\r\n onTouchMove,\r\n onTouchEnd,\r\n },\r\n });\r\n}\r\n","export default function Grid({ swiper, extendParams }) {\r\n extendParams({\r\n grid: {\r\n rows: 1,\r\n fill: 'column',\r\n },\r\n });\r\n\r\n let slidesNumberEvenToRows;\r\n let slidesPerRow;\r\n let numFullColumns;\r\n\r\n const initSlides = (slidesLength) => {\r\n const { slidesPerView } = swiper.params;\r\n const { rows, fill } = swiper.params.grid;\r\n slidesPerRow = slidesNumberEvenToRows / rows;\r\n numFullColumns = Math.floor(slidesLength / rows);\r\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\r\n slidesNumberEvenToRows = slidesLength;\r\n } else {\r\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\r\n }\r\n if (slidesPerView !== 'auto' && fill === 'row') {\r\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\r\n }\r\n };\r\n\r\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\r\n const { slidesPerGroup, spaceBetween } = swiper.params;\r\n const { rows, fill } = swiper.params.grid;\r\n // Set slides order\r\n let newSlideOrderIndex;\r\n let column;\r\n let row;\r\n if (fill === 'row' && slidesPerGroup > 1) {\r\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\r\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\r\n const columnsInGroup =\r\n groupIndex === 0\r\n ? slidesPerGroup\r\n : Math.min(\r\n Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows),\r\n slidesPerGroup,\r\n );\r\n row = Math.floor(slideIndexInGroup / columnsInGroup);\r\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\r\n\r\n newSlideOrderIndex = column + (row * slidesNumberEvenToRows) / rows;\r\n slide.css({\r\n '-webkit-order': newSlideOrderIndex,\r\n order: newSlideOrderIndex,\r\n });\r\n } else if (fill === 'column') {\r\n column = Math.floor(i / rows);\r\n row = i - column * rows;\r\n if (column > numFullColumns || (column === numFullColumns && row === rows - 1)) {\r\n row += 1;\r\n if (row >= rows) {\r\n row = 0;\r\n column += 1;\r\n }\r\n }\r\n } else {\r\n row = Math.floor(i / slidesPerRow);\r\n column = i - row * slidesPerRow;\r\n }\r\n slide.css(\r\n getDirectionLabel('margin-top'),\r\n row !== 0 ? spaceBetween && `${spaceBetween}px` : '',\r\n );\r\n };\r\n\r\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\r\n const { spaceBetween, centeredSlides, roundLengths } = swiper.params;\r\n const { rows } = swiper.params.grid;\r\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\r\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\r\n swiper.$wrapperEl.css({\r\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`,\r\n });\r\n if (centeredSlides) {\r\n snapGrid.splice(0, snapGrid.length);\r\n const newSlidesGrid = [];\r\n for (let i = 0; i < snapGrid.length; i += 1) {\r\n let slidesGridItem = snapGrid[i];\r\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\r\n }\r\n snapGrid.push(...newSlidesGrid);\r\n }\r\n };\r\n\r\n swiper.grid = {\r\n initSlides,\r\n updateSlide,\r\n updateWrapperSize,\r\n };\r\n}\r\n","export default function appendSlide(slides) {\r\n const swiper = this;\r\n const { $wrapperEl, params } = swiper;\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.append(slides[i]);\r\n }\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n}\r\n","export default function prependSlide(slides) {\r\n const swiper = this;\r\n const { params, $wrapperEl, activeIndex } = swiper;\r\n\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n let newActiveIndex = activeIndex + 1;\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.prepend(slides[i]);\r\n }\r\n newActiveIndex = activeIndex + slides.length;\r\n } else {\r\n $wrapperEl.prepend(slides);\r\n }\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n}\r\n","export default function addSlide(index, slides) {\r\n const swiper = this;\r\n const { $wrapperEl, params, activeIndex } = swiper;\r\n let activeIndexBuffer = activeIndex;\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\r\n }\r\n const baseLength = swiper.slides.length;\r\n if (index <= 0) {\r\n swiper.prependSlide(slides);\r\n return;\r\n }\r\n if (index >= baseLength) {\r\n swiper.appendSlide(slides);\r\n return;\r\n }\r\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\r\n\r\n const slidesBuffer = [];\r\n for (let i = baseLength - 1; i >= index; i -= 1) {\r\n const currentSlide = swiper.slides.eq(i);\r\n currentSlide.remove();\r\n slidesBuffer.unshift(currentSlide);\r\n }\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.append(slides[i]);\r\n }\r\n newActiveIndex =\r\n activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n\r\n for (let i = 0; i < slidesBuffer.length; i += 1) {\r\n $wrapperEl.append(slidesBuffer[i]);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n}\r\n","export default function removeSlide(slidesIndexes) {\r\n const swiper = this;\r\n const { params, $wrapperEl, activeIndex } = swiper;\r\n\r\n let activeIndexBuffer = activeIndex;\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\r\n }\r\n let newActiveIndex = activeIndexBuffer;\r\n let indexToRemove;\r\n\r\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\r\n for (let i = 0; i < slidesIndexes.length; i += 1) {\r\n indexToRemove = slidesIndexes[i];\r\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n }\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n } else {\r\n indexToRemove = slidesIndexes;\r\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n}\r\n","export default function removeAllSlides() {\r\n const swiper = this;\r\n\r\n const slidesIndexes = [];\r\n for (let i = 0; i < swiper.slides.length; i += 1) {\r\n slidesIndexes.push(i);\r\n }\r\n swiper.removeSlide(slidesIndexes);\r\n}\r\n","import appendSlide from './methods/appendSlide.js';\r\nimport prependSlide from './methods/prependSlide.js';\r\nimport addSlide from './methods/addSlide.js';\r\nimport removeSlide from './methods/removeSlide.js';\r\nimport removeAllSlides from './methods/removeAllSlides.js';\r\n\r\nexport default function Manipulation({ swiper }) {\r\n Object.assign(swiper, {\r\n appendSlide: appendSlide.bind(swiper),\r\n prependSlide: prependSlide.bind(swiper),\r\n addSlide: addSlide.bind(swiper),\r\n removeSlide: removeSlide.bind(swiper),\r\n removeAllSlides: removeAllSlides.bind(swiper),\r\n });\r\n}\r\n","export default function effectInit(params) {\r\n const {\r\n effect,\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n overwriteParams,\r\n perspective,\r\n recreateShadows,\r\n getEffectParams,\r\n } = params;\r\n\r\n on('beforeInit', () => {\r\n if (swiper.params.effect !== effect) return;\r\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\r\n if (perspective && perspective()) {\r\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\r\n }\r\n\r\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\r\n\r\n Object.assign(swiper.params, overwriteParamsResult);\r\n Object.assign(swiper.originalParams, overwriteParamsResult);\r\n });\r\n on('setTranslate', () => {\r\n if (swiper.params.effect !== effect) return;\r\n setTranslate();\r\n });\r\n on('setTransition', (_s, duration) => {\r\n if (swiper.params.effect !== effect) return;\r\n setTransition(duration);\r\n });\r\n\r\n on('transitionEnd', () => {\r\n if (swiper.params.effect !== effect) return;\r\n if (recreateShadows) {\r\n if (!getEffectParams || !getEffectParams().slideShadows) return;\r\n // remove shadows\r\n swiper.slides.each((slideEl) => {\r\n const $slideEl = swiper.$(slideEl);\r\n $slideEl\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .remove();\r\n });\r\n // create new one\r\n recreateShadows();\r\n }\r\n });\r\n\r\n let requireUpdateOnVirtual;\r\n on('virtualUpdate', () => {\r\n if (swiper.params.effect !== effect) return;\r\n if (!swiper.slides.length) {\r\n requireUpdateOnVirtual = true;\r\n }\r\n requestAnimationFrame(() => {\r\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\r\n setTranslate();\r\n requireUpdateOnVirtual = false;\r\n }\r\n });\r\n });\r\n}\r\n","export default function effectTarget(effectParams, $slideEl) {\r\n if (effectParams.transformEl) {\r\n return $slideEl.find(effectParams.transformEl).css({\r\n 'backface-visibility': 'hidden',\r\n '-webkit-backface-visibility': 'hidden',\r\n });\r\n }\r\n return $slideEl;\r\n}\r\n","export default function effectVirtualTransitionEnd({ swiper, duration, transformEl, allSlides }) {\r\n const { slides, activeIndex, $wrapperEl } = swiper;\r\n if (swiper.params.virtualTranslate && duration !== 0) {\r\n let eventTriggered = false;\r\n let $transitionEndTarget;\r\n if (allSlides) {\r\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\r\n } else {\r\n $transitionEndTarget = transformEl\r\n ? slides.eq(activeIndex).find(transformEl)\r\n : slides.eq(activeIndex);\r\n }\r\n $transitionEndTarget.transitionEnd(() => {\r\n if (eventTriggered) return;\r\n if (!swiper || swiper.destroyed) return;\r\n eventTriggered = true;\r\n swiper.animating = false;\r\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n for (let i = 0; i < triggerEvents.length; i += 1) {\r\n $wrapperEl.trigger(triggerEvents[i]);\r\n }\r\n });\r\n }\r\n}\r\n","import effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectFade({ swiper, extendParams, on }) {\r\n extendParams({\r\n fadeEffect: {\r\n crossFade: false,\r\n transformEl: null,\r\n },\r\n });\r\n\r\n const setTranslate = () => {\r\n const { slides } = swiper;\r\n const params = swiper.params.fadeEffect;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = swiper.slides.eq(i);\r\n const offset = $slideEl[0].swiperSlideOffset;\r\n let tx = -offset;\r\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\r\n let ty = 0;\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n const slideOpacity = swiper.params.fadeEffect.crossFade\r\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\r\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\r\n\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl\r\n .css({\r\n opacity: slideOpacity,\r\n })\r\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\r\n }\r\n };\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.fadeEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements.transition(duration);\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl, allSlides: true });\r\n };\r\n\r\n effectInit({\r\n effect: 'fade',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n overwriteParams: () => ({\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\n\r\nexport default function EffectCube({ swiper, extendParams, on }) {\r\n extendParams({\r\n cubeEffect: {\r\n slideShadows: true,\r\n shadow: true,\r\n shadowOffset: 20,\r\n shadowScale: 0.94,\r\n },\r\n });\r\n\r\n const createSlideShadows = ($slideEl, progress, isHorizontal) => {\r\n let shadowBefore = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-left')\r\n : $slideEl.find('.swiper-slide-shadow-top');\r\n let shadowAfter = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-right')\r\n : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = $(`
`);\r\n $slideEl.append(shadowBefore);\r\n }\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = $(\r\n `
`,\r\n );\r\n $slideEl.append(shadowAfter);\r\n }\r\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n };\r\n\r\n const recreateShadows = () => {\r\n // create new ones\r\n const isHorizontal = swiper.isHorizontal();\r\n swiper.slides.each((slideEl) => {\r\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\r\n createSlideShadows($(slideEl), progress, isHorizontal);\r\n });\r\n };\r\n\r\n const setTranslate = () => {\r\n const {\r\n $el,\r\n $wrapperEl,\r\n slides,\r\n width: swiperWidth,\r\n height: swiperHeight,\r\n rtlTranslate: rtl,\r\n size: swiperSize,\r\n browser,\r\n } = swiper;\r\n const params = swiper.params.cubeEffect;\r\n const isHorizontal = swiper.isHorizontal();\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n let wrapperRotate = 0;\r\n let $cubeShadowEl;\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $wrapperEl.append($cubeShadowEl);\r\n }\r\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\r\n } else {\r\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $el.append($cubeShadowEl);\r\n }\r\n }\r\n }\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n let slideIndex = i;\r\n if (isVirtual) {\r\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\r\n }\r\n let slideAngle = slideIndex * 90;\r\n let round = Math.floor(slideAngle / 360);\r\n if (rtl) {\r\n slideAngle = -slideAngle;\r\n round = Math.floor(-slideAngle / 360);\r\n }\r\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n let tx = 0;\r\n let ty = 0;\r\n let tz = 0;\r\n if (slideIndex % 4 === 0) {\r\n tx = -round * 4 * swiperSize;\r\n tz = 0;\r\n } else if ((slideIndex - 1) % 4 === 0) {\r\n tx = 0;\r\n tz = -round * 4 * swiperSize;\r\n } else if ((slideIndex - 2) % 4 === 0) {\r\n tx = swiperSize + round * 4 * swiperSize;\r\n tz = swiperSize;\r\n } else if ((slideIndex - 3) % 4 === 0) {\r\n tx = -swiperSize;\r\n tz = 3 * swiperSize + swiperSize * 4 * round;\r\n }\r\n if (rtl) {\r\n tx = -tx;\r\n }\r\n\r\n if (!isHorizontal) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n\r\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${\r\n isHorizontal ? slideAngle : 0\r\n }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\r\n if (progress <= 1 && progress > -1) {\r\n wrapperRotate = slideIndex * 90 + progress * 90;\r\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\r\n }\r\n $slideEl.transform(transform);\r\n if (params.slideShadows) {\r\n createSlideShadows($slideEl, progress, isHorizontal);\r\n }\r\n }\r\n $wrapperEl.css({\r\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n });\r\n\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl.transform(\r\n `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${\r\n -swiperWidth / 2\r\n }px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`,\r\n );\r\n } else {\r\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\r\n const multiplier =\r\n 1.5 -\r\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\r\n Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\r\n const scale1 = params.shadowScale;\r\n const scale2 = params.shadowScale / multiplier;\r\n const offset = params.shadowOffset;\r\n $cubeShadowEl.transform(\r\n `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${\r\n -swiperHeight / 2 / scale2\r\n }px) rotateX(-90deg)`,\r\n );\r\n }\r\n }\r\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\r\n $wrapperEl.transform(\r\n `translate3d(0px,0,${zFactor}px) rotateX(${\r\n swiper.isHorizontal() ? 0 : wrapperRotate\r\n }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`,\r\n );\r\n $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\r\n };\r\n const setTransition = (duration) => {\r\n const { $el, slides } = swiper;\r\n slides\r\n .transition(duration)\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .transition(duration);\r\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\r\n $el.find('.swiper-cube-shadow').transition(duration);\r\n }\r\n };\r\n\r\n effectInit({\r\n effect: 'cube',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n recreateShadows,\r\n getEffectParams: () => swiper.params.cubeEffect,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n resistanceRatio: 0,\r\n spaceBetween: 0,\r\n centeredSlides: false,\r\n virtualTranslate: true,\r\n }),\r\n });\r\n}\r\n","import $ from './dom.js';\r\n\r\nexport default function createShadow(params, $slideEl, side) {\r\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\r\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\r\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\r\n\r\n if (!$shadowEl.length) {\r\n $shadowEl = $(`
`);\r\n $shadowContainer.append($shadowEl);\r\n }\r\n return $shadowEl;\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectFlip({ swiper, extendParams, on }) {\r\n extendParams({\r\n flipEffect: {\r\n slideShadows: true,\r\n limitRotation: true,\r\n transformEl: null,\r\n },\r\n });\r\n\r\n const createSlideShadows = ($slideEl, progress, params) => {\r\n let shadowBefore = swiper.isHorizontal()\r\n ? $slideEl.find('.swiper-slide-shadow-left')\r\n : $slideEl.find('.swiper-slide-shadow-top');\r\n let shadowAfter = swiper.isHorizontal()\r\n ? $slideEl.find('.swiper-slide-shadow-right')\r\n : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\r\n }\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\r\n }\r\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n };\r\n\r\n const recreateShadows = () => {\r\n // Set shadows\r\n const params = swiper.params.flipEffect;\r\n swiper.slides.each((slideEl) => {\r\n const $slideEl = $(slideEl);\r\n let progress = $slideEl[0].progress;\r\n if (swiper.params.flipEffect.limitRotation) {\r\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\r\n }\r\n createSlideShadows($slideEl, progress, params);\r\n });\r\n };\r\n\r\n const setTranslate = () => {\r\n const { slides, rtlTranslate: rtl } = swiper;\r\n const params = swiper.params.flipEffect;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n let progress = $slideEl[0].progress;\r\n if (swiper.params.flipEffect.limitRotation) {\r\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n }\r\n const offset = $slideEl[0].swiperSlideOffset;\r\n const rotate = -180 * progress;\r\n let rotateY = rotate;\r\n let rotateX = 0;\r\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\r\n let ty = 0;\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n rotateX = -rotateY;\r\n rotateY = 0;\r\n } else if (rtl) {\r\n rotateY = -rotateY;\r\n }\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\r\n\r\n if (params.slideShadows) {\r\n createSlideShadows($slideEl, progress, params);\r\n }\r\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(transform);\r\n }\r\n };\r\n\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.flipEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements\r\n .transition(duration)\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .transition(duration);\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl });\r\n };\r\n\r\n effectInit({\r\n effect: 'flip',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n recreateShadows,\r\n getEffectParams: () => swiper.params.flipEffect,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","import createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\n\r\nexport default function EffectCoverflow({ swiper, extendParams, on }) {\r\n extendParams({\r\n coverflowEffect: {\r\n rotate: 50,\r\n stretch: 0,\r\n depth: 100,\r\n scale: 1,\r\n modifier: 1,\r\n slideShadows: true,\r\n transformEl: null,\r\n },\r\n });\r\n\r\n const setTranslate = () => {\r\n const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = swiper;\r\n const params = swiper.params.coverflowEffect;\r\n const isHorizontal = swiper.isHorizontal();\r\n const transform = swiper.translate;\r\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\r\n const rotate = isHorizontal ? params.rotate : -params.rotate;\r\n const translate = params.depth;\r\n // Each slide offset from center\r\n for (let i = 0, length = slides.length; i < length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n const slideSize = slidesSizesGrid[i];\r\n const slideOffset = $slideEl[0].swiperSlideOffset;\r\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\r\n const offsetMultiplier =\r\n typeof params.modifier === 'function'\r\n ? params.modifier(centerOffset)\r\n : centerOffset * params.modifier;\r\n\r\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\r\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\r\n // var rotateZ = 0\r\n let translateZ = -translate * Math.abs(offsetMultiplier);\r\n\r\n let stretch = params.stretch;\r\n // Allow percentage to make a relative stretch for responsive sliders\r\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\r\n stretch = (parseFloat(params.stretch) / 100) * slideSize;\r\n }\r\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\r\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\r\n\r\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\r\n\r\n // Fix for ultra small values\r\n if (Math.abs(translateX) < 0.001) translateX = 0;\r\n if (Math.abs(translateY) < 0.001) translateY = 0;\r\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\r\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\r\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\r\n if (Math.abs(scale) < 0.001) scale = 0;\r\n\r\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(slideTransform);\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\r\n\r\n if (params.slideShadows) {\r\n // Set shadows\r\n let $shadowBeforeEl = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-left')\r\n : $slideEl.find('.swiper-slide-shadow-top');\r\n let $shadowAfterEl = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-right')\r\n : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if ($shadowBeforeEl.length === 0) {\r\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\r\n }\r\n if ($shadowAfterEl.length === 0) {\r\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\r\n }\r\n if ($shadowBeforeEl.length)\r\n $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\r\n if ($shadowAfterEl.length)\r\n $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\r\n }\r\n }\r\n };\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.coverflowEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements\r\n .transition(duration)\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .transition(duration);\r\n };\r\n\r\n effectInit({\r\n effect: 'coverflow',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n watchSlidesProgress: true,\r\n }),\r\n });\r\n}\r\n","import createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectCreative({ swiper, extendParams, on }) {\r\n extendParams({\r\n creativeEffect: {\r\n transformEl: null,\r\n limitProgress: 1,\r\n shadowPerProgress: false,\r\n progressMultiplier: 1,\r\n perspective: true,\r\n prev: {\r\n translate: [0, 0, 0],\r\n rotate: [0, 0, 0],\r\n opacity: 1,\r\n scale: 1,\r\n },\r\n next: {\r\n translate: [0, 0, 0],\r\n rotate: [0, 0, 0],\r\n opacity: 1,\r\n scale: 1,\r\n },\r\n },\r\n });\r\n\r\n const getTranslateValue = (value) => {\r\n if (typeof value === 'string') return value;\r\n return `${value}px`;\r\n };\r\n\r\n const setTranslate = () => {\r\n const { slides, $wrapperEl, slidesSizesGrid } = swiper;\r\n const params = swiper.params.creativeEffect;\r\n const { progressMultiplier: multiplier } = params;\r\n\r\n const isCenteredSlides = swiper.params.centeredSlides;\r\n\r\n if (isCenteredSlides) {\r\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\r\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\r\n }\r\n\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n const slideProgress = $slideEl[0].progress;\r\n const progress = Math.min(\r\n Math.max($slideEl[0].progress, -params.limitProgress),\r\n params.limitProgress,\r\n );\r\n let originalProgress = progress;\r\n\r\n if (!isCenteredSlides) {\r\n originalProgress = Math.min(\r\n Math.max($slideEl[0].originalProgress, -params.limitProgress),\r\n params.limitProgress,\r\n );\r\n }\r\n\r\n const offset = $slideEl[0].swiperSlideOffset;\r\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\r\n const r = [0, 0, 0];\r\n let custom = false;\r\n if (!swiper.isHorizontal()) {\r\n t[1] = t[0];\r\n t[0] = 0;\r\n }\r\n let data = {\r\n translate: [0, 0, 0],\r\n rotate: [0, 0, 0],\r\n scale: 1,\r\n opacity: 1,\r\n };\r\n if (progress < 0) {\r\n data = params.next;\r\n custom = true;\r\n } else if (progress > 0) {\r\n data = params.prev;\r\n custom = true;\r\n }\r\n // set translate\r\n t.forEach((value, index) => {\r\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(\r\n progress * multiplier,\r\n )}))`;\r\n });\r\n // set rotates\r\n r.forEach((value, index) => {\r\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\r\n });\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\r\n\r\n const translateString = t.join(', ');\r\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\r\n const scaleString =\r\n originalProgress < 0\r\n ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})`\r\n : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\r\n const opacityString =\r\n originalProgress < 0\r\n ? 1 + (1 - data.opacity) * originalProgress * multiplier\r\n : 1 - (1 - data.opacity) * originalProgress * multiplier;\r\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\r\n\r\n // Set shadows\r\n if ((custom && data.shadow) || !custom) {\r\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\r\n if ($shadowEl.length === 0 && data.shadow) {\r\n $shadowEl = createShadow(params, $slideEl);\r\n }\r\n if ($shadowEl.length) {\r\n const shadowOpacity = params.shadowPerProgress\r\n ? progress * (1 / params.limitProgress)\r\n : progress;\r\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\r\n }\r\n }\r\n\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(transform).css({ opacity: opacityString });\r\n if (data.origin) {\r\n $targetEl.css('transform-origin', data.origin);\r\n }\r\n }\r\n };\r\n\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.creativeEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\r\n\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl, allSlides: true });\r\n };\r\n\r\n effectInit({\r\n effect: 'creative',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n perspective: () => swiper.params.creativeEffect.perspective,\r\n overwriteParams: () => ({\r\n watchSlidesProgress: true,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","import createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectCards({ swiper, extendParams, on }) {\r\n extendParams({\r\n cardsEffect: {\r\n slideShadows: true,\r\n transformEl: null,\r\n rotate: true,\r\n },\r\n });\r\n\r\n const setTranslate = () => {\r\n const { slides, activeIndex } = swiper;\r\n const params = swiper.params.cardsEffect;\r\n const { startTranslate, isTouched } = swiper.touchEventsData;\r\n const currentTranslate = swiper.translate;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n const slideProgress = $slideEl[0].progress;\r\n const progress = Math.min(Math.max(slideProgress, -4), 4);\r\n let offset = $slideEl[0].swiperSlideOffset;\r\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\r\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\r\n }\r\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\r\n offset -= slides[0].swiperSlideOffset;\r\n }\r\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\r\n let tY = 0;\r\n const tZ = -100 * Math.abs(progress);\r\n let scale = 1;\r\n let rotate = -2 * progress;\r\n\r\n let tXAdd = 8 - Math.abs(progress) * 0.75;\r\n\r\n const slideIndex =\r\n swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\r\n\r\n const isSwipeToNext =\r\n (slideIndex === activeIndex || slideIndex === activeIndex - 1) &&\r\n progress > 0 &&\r\n progress < 1 &&\r\n (isTouched || swiper.params.cssMode) &&\r\n currentTranslate < startTranslate;\r\n const isSwipeToPrev =\r\n (slideIndex === activeIndex || slideIndex === activeIndex + 1) &&\r\n progress < 0 &&\r\n progress > -1 &&\r\n (isTouched || swiper.params.cssMode) &&\r\n currentTranslate > startTranslate;\r\n\r\n if (isSwipeToNext || isSwipeToPrev) {\r\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\r\n rotate += -28 * progress * subProgress;\r\n scale += -0.5 * subProgress;\r\n tXAdd += 96 * subProgress;\r\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\r\n }\r\n\r\n if (progress < 0) {\r\n // next\r\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\r\n } else if (progress > 0) {\r\n // prev\r\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\r\n } else {\r\n tX = `${tX}px`;\r\n }\r\n if (!swiper.isHorizontal()) {\r\n const prevY = tY;\r\n tY = tX;\r\n tX = prevY;\r\n }\r\n\r\n const scaleString =\r\n progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\r\n\r\n const transform = `\r\n translate3d(${tX}, ${tY}, ${tZ}px)\r\n rotateZ(${params.rotate ? rotate : 0}deg)\r\n scale(${scaleString})\r\n `;\r\n\r\n if (params.slideShadows) {\r\n // Set shadows\r\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\r\n if ($shadowEl.length === 0) {\r\n $shadowEl = createShadow(params, $slideEl);\r\n }\r\n if ($shadowEl.length)\r\n $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\r\n }\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(transform);\r\n }\r\n };\r\n\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.cardsEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\r\n\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl });\r\n };\r\n\r\n effectInit({\r\n effect: 'cards',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n watchSlidesProgress: true,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","// Swiper Class\r\nimport Swiper from './core/core.js';\r\n\r\n//IMPORT_MODULES\r\n\r\nconst modules = [\r\n //INSTALL_MODULES\r\n];\r\n\r\nSwiper.use(modules);\r\n\r\n//EXPORT\r\n"],"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","makeReactive","proto","__proto__","defineProperty","get","set","value","Dom7","Array","items","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","arrayUnique","uniqueArray","i","indexOf","qsa","selector","context","a","$","html","trim","toCreate","tempParent","innerHTML","nodeType","fn","addClass","classes","classNames","map","c","split","classList","add","removeClass","remove","toggleClass","className","toggle","hasClass","contains","attr","attrs","arguments","getAttribute","undefined","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","on","args","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","events","j","event","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","splice","dom7proxy","trigger","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","removeChild","Methods","methodName","writable","deleteProps","object","nextTick","delay","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","o","slice","isNode","node","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","startTime","time","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getSupport","deviceCached","calcDevice","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","toLowerCase","isWebView","test","getBrowser","Resize","emit","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","init","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","destroy","disconnect","priority","self","eventsListeners","method","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","label","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","transitionStart","slideTo","initial","Error","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","closestElement","base","__closestFrom","assignedSlot","getRootNode","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","attachEvents","bind","detachEvents","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","prepareClasses","prefix","resultClasses","item","addClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","update","currentSrc","wasLocked","lastSlideIndex","lastSlideRightEdge","createElements","url","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","eventsEmitter","images","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","defaults","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","module","m","prototypeGroup","protoMethod","Virtual","cache","renderSlide","renderExternal","renderExternalUpdate","addSlidesBefore","addSlidesAfter","cssModeTimeout","from","$slideEl","force","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","getSlides","slidesToRender","prependIndexes","appendIndexes","appendSlide","prependSlide","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","removeSlide","slidesIndexes","removeAllSlides","Keyboard","keyboard","onlyInViewport","pageUpDown","handle","kc","keyCode","charCode","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Mousewheel","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","timeout","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","releaseScroll","rtlFactor","positions","sign","shift","prevEvent","ignoreWheelEvents","position","sticky","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","createElementIfNotDefined","checkProps","element","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","$nextEl","$prevEl","getEl","toggleEl","disabled","tagName","onPrevClick","onNextClick","_s","targetEl","pagination","clickable","isHidden","classesToSelector","Pagination","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","bulletSize","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","Scrollbar","dragTimeout","dragStartPos","dragSize","trackSize","divider","scrollbar","hide","draggable","snapOnRelease","dragClass","scrollbarDisabledClass","dragEl","$dragEl","newSize","newPos","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","activeListener","eventMethod","enableDraggable","disableDraggable","$swiperEl","Parallax","parallax","setTransform","p","currentOpacity","currentScale","parallaxEl","$parallaxEl","parallaxDuration","_swiper","Zoom","zoom","maxRatio","containerClass","zoomedSlideClass","isScaling","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","distance","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","onTransitionEnd","zoomIn","touchAction","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","in","out","Lazy","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","Controller","controller","control","inverse","by","LinearSpline","binarySearch","guess","array","i1","i3","interpolate","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","A11y","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","click","updateNavigation","hasPagination","hasClickablePagination","updatePagination","bulletEl","initNavEl","wrapperId","handleFocus","includes","isActive","ariaLabelMessage","$containerEl","History","root","keepQuery","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","slideHistory","setHistoryPopState","hashNavigation","HashNavigation","watchState","onHashChange","newHash","activeSlideHash","setHash","slideHash","Autoplay","waitForTransition","disableOnInteraction","stopOnLastSlide","reverseDirection","pauseOnMouseEnter","$activeSlideEl","autoplayResult","pause","onVisibilityChange","visibilityState","onMouseEnter","onMouseLeave","attachMouseEvents","detachMouseEvents","Thumb","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","Grid","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","indexToRemove","Manipulation","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","overwriteParamsResult","slideShadows","requireUpdateOnVirtual","effectTarget","effectParams","transformEl","effectVirtualTransitionEnd","allSlides","eventTriggered","$transitionEndTarget","triggerEvents","EffectFade","fadeEffect","crossFade","tx","ty","slideOpacity","$transitionElements","EffectCube","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","wrapperRotate","$cubeShadowEl","slideAngle","tz","shadowAngle","sin","scale1","scale2","zFactor","createShadow","shadowClass","$shadowContainer","$shadowEl","EffectFlip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectCoverflow","coverflowEffect","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCreative","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","EffectCards","cardsEffect","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"mappings":";;;;;;;;;;;;;;;;;;IAAA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;IACA;IACA,SAASA,UAAT,CAAkBC,GAAlB,EAAuB;IACnB,EAAA,OAAQA,GAAG,KAAK,IAAR,IACJ,OAAOA,GAAP,KAAe,QADX,IAEJ,aAAA,IAAiBA,GAFb,IAGJA,GAAG,CAACC,WAAJ,KAAoBC,MAHxB,CAAA;IAIH,CAAA;;IACD,SAASC,QAAT,CAAgBC,MAAhB,EAA6BC,GAA7B,EAAuC;IAAA,EAAA,IAAvBD,MAAuB,KAAA,KAAA,CAAA,EAAA;IAAvBA,IAAAA,MAAuB,GAAd,EAAc,CAAA;IAAA,GAAA;;IAAA,EAAA,IAAVC,GAAU,KAAA,KAAA,CAAA,EAAA;IAAVA,IAAAA,GAAU,GAAJ,EAAI,CAAA;IAAA,GAAA;;MACnCH,MAAM,CAACI,IAAP,CAAYD,GAAZ,EAAiBE,OAAjB,CAA0BC,GAAD,IAAS;QAC9B,IAAI,OAAOJ,MAAM,CAACI,GAAD,CAAb,KAAuB,WAA3B,EACIJ,MAAM,CAACI,GAAD,CAAN,GAAcH,GAAG,CAACG,GAAD,CAAjB,CADJ,KAEK,IAAIT,UAAQ,CAACM,GAAG,CAACG,GAAD,CAAJ,CAAR,IACLT,UAAQ,CAACK,MAAM,CAACI,GAAD,CAAP,CADH,IAELN,MAAM,CAACI,IAAP,CAAYD,GAAG,CAACG,GAAD,CAAf,CAAsBC,CAAAA,MAAtB,GAA+B,CAF9B,EAEiC;UAClCN,QAAM,CAACC,MAAM,CAACI,GAAD,CAAP,EAAcH,GAAG,CAACG,GAAD,CAAjB,CAAN,CAAA;IACH,KAAA;OAPL,CAAA,CAAA;IASH,CAAA;;IAED,MAAME,WAAW,GAAG;IAChBC,EAAAA,IAAI,EAAE,EADU;;MAEhBC,gBAAgB,GAAG,EAFH;;MAGhBC,mBAAmB,GAAG,EAHN;;IAIhBC,EAAAA,aAAa,EAAE;QACXC,IAAI,GAAG,EADI;;IAEXC,IAAAA,QAAQ,EAAE,EAAA;OANE;;IAQhBC,EAAAA,aAAa,GAAG;IACZ,IAAA,OAAO,IAAP,CAAA;OATY;;IAWhBC,EAAAA,gBAAgB,GAAG;IACf,IAAA,OAAO,EAAP,CAAA;OAZY;;IAchBC,EAAAA,cAAc,GAAG;IACb,IAAA,OAAO,IAAP,CAAA;OAfY;;IAiBhBC,EAAAA,WAAW,GAAG;QACV,OAAO;IACHC,MAAAA,SAAS,GAAG,EAAG;;SADnB,CAAA;OAlBY;;IAsBhBC,EAAAA,aAAa,GAAG;QACZ,OAAO;IACHC,MAAAA,QAAQ,EAAE,EADP;IAEHC,MAAAA,UAAU,EAAE,EAFT;IAGHC,MAAAA,KAAK,EAAE,EAHJ;;UAIHC,YAAY,GAAG,EAJZ;;IAKHC,MAAAA,oBAAoB,GAAG;IACnB,QAAA,OAAO,EAAP,CAAA;IACH,OAAA;;SAPL,CAAA;OAvBY;;IAiChBC,EAAAA,eAAe,GAAG;IACd,IAAA,OAAO,EAAP,CAAA;OAlCY;;IAoChBC,EAAAA,UAAU,GAAG;IACT,IAAA,OAAO,IAAP,CAAA;OArCY;;IAuChBC,EAAAA,QAAQ,EAAE;IACNC,IAAAA,IAAI,EAAE,EADA;IAENC,IAAAA,IAAI,EAAE,EAFA;IAGNC,IAAAA,QAAQ,EAAE,EAHJ;IAINC,IAAAA,IAAI,EAAE,EAJA;IAKNC,IAAAA,MAAM,EAAE,EALF;IAMNC,IAAAA,QAAQ,EAAE,EANJ;IAONC,IAAAA,QAAQ,EAAE,EAPJ;IAQNC,IAAAA,MAAM,EAAE,EAAA;IARF,GAAA;IAvCM,CAApB,CAAA;;IAkDA,SAASC,WAAT,GAAuB;MACnB,MAAMC,GAAG,GAAG,OAAOC,QAAP,KAAoB,WAApB,GAAkCA,QAAlC,GAA6C,EAAzD,CAAA;IACAtC,EAAAA,QAAM,CAACqC,GAAD,EAAM9B,WAAN,CAAN,CAAA;IACA,EAAA,OAAO8B,GAAP,CAAA;IACH,CAAA;;IAED,MAAME,SAAS,GAAG;IACdD,EAAAA,QAAQ,EAAE/B,WADI;IAEdiC,EAAAA,SAAS,EAAE;IACPC,IAAAA,SAAS,EAAE,EAAA;OAHD;IAKdd,EAAAA,QAAQ,EAAE;IACNC,IAAAA,IAAI,EAAE,EADA;IAENC,IAAAA,IAAI,EAAE,EAFA;IAGNC,IAAAA,QAAQ,EAAE,EAHJ;IAINC,IAAAA,IAAI,EAAE,EAJA;IAKNC,IAAAA,MAAM,EAAE,EALF;IAMNC,IAAAA,QAAQ,EAAE,EANJ;IAONC,IAAAA,QAAQ,EAAE,EAPJ;IAQNC,IAAAA,MAAM,EAAE,EAAA;OAbE;IAedO,EAAAA,OAAO,EAAE;QACLC,YAAY,GAAG,EADV;;QAELC,SAAS,GAAG,EAFP;;QAGLC,EAAE,GAAG,EAHA;;IAILC,IAAAA,IAAI,GAAG,EAAG;;OAnBA;MAqBdC,WAAW,EAAE,SAASA,WAAT,GAAuB;IAChC,IAAA,OAAO,IAAP,CAAA;OAtBU;;MAwBdtC,gBAAgB,GAAG,EAxBL;;MAyBdC,mBAAmB,GAAG,EAzBR;;IA0BdsC,EAAAA,gBAAgB,GAAG;QACf,OAAO;IACHC,MAAAA,gBAAgB,GAAG;IACf,QAAA,OAAO,EAAP,CAAA;IACH,OAAA;;SAHL,CAAA;OA3BU;;MAiCdC,KAAK,GAAG,EAjCM;;MAkCdC,IAAI,GAAG,EAlCO;;IAmCdC,EAAAA,MAAM,EAAE,EAnCM;;MAoCdC,UAAU,GAAG,EApCC;;MAqCdC,YAAY,GAAG,EArCD;;IAsCdC,EAAAA,UAAU,GAAG;IACT,IAAA,OAAO,EAAP,CAAA;OAvCU;;MAyCdC,qBAAqB,CAACC,QAAD,EAAW;IAC5B,IAAA,IAAI,OAAOJ,UAAP,KAAsB,WAA1B,EAAuC;UACnCI,QAAQ,EAAA,CAAA;IACR,MAAA,OAAO,IAAP,CAAA;IACH,KAAA;;IACD,IAAA,OAAOJ,UAAU,CAACI,QAAD,EAAW,CAAX,CAAjB,CAAA;OA9CU;;MAgDdC,oBAAoB,CAACC,EAAD,EAAK;IACrB,IAAA,IAAI,OAAON,UAAP,KAAsB,WAA1B,EAAuC;IACnC,MAAA,OAAA;IACH,KAAA;;QACDC,YAAY,CAACK,EAAD,CAAZ,CAAA;IACH,GAAA;;IArDa,CAAlB,CAAA;;IAuDA,SAASC,SAAT,GAAqB;MACjB,MAAMC,GAAG,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCA,MAAhC,GAAyC,EAArD,CAAA;IACA9D,EAAAA,QAAM,CAAC6D,GAAD,EAAMtB,SAAN,CAAN,CAAA;IACA,EAAA,OAAOsB,GAAP,CAAA;IACH;;ICjJD;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAGA;;IACA,SAASE,YAAT,CAAsBlE,GAAtB,EAA2B;IACzB,EAAA,MAAMmE,KAAK,GAAGnE,GAAG,CAACoE,SAAlB,CAAA;IACAlE,EAAAA,MAAM,CAACmE,cAAP,CAAsBrE,GAAtB,EAA2B,WAA3B,EAAwC;IACtCsE,IAAAA,GAAG,GAAG;IACJ,MAAA,OAAOH,KAAP,CAAA;SAFoC;;QAKtCI,GAAG,CAACC,KAAD,EAAQ;UACTL,KAAK,CAACC,SAAN,GAAkBI,KAAlB,CAAA;IACD,KAAA;;OAPH,CAAA,CAAA;IAUD,CAAA;;IAED,MAAMC,IAAN,SAAmBC,KAAnB,CAAyB;MACvBzE,WAAW,CAAC0E,KAAD,EAAQ;IACjB,IAAA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7B,MAAA,KAAA,CAAMA,KAAN,CAAA,CAAA;IACD,KAFD,MAEO;IACL,MAAA,KAAA,CAAM,IAAIA,KAAK,IAAI,EAAb,CAAN,CAAA,CAAA;UACAT,YAAY,CAAC,IAAD,CAAZ,CAAA;IACD,KAAA;IACF,GAAA;;IARsB,CAAA;;IAYzB,SAASU,SAAT,CAAmBC,GAAnB,EAA6B;IAAA,EAAA,IAAVA,GAAU,KAAA,KAAA,CAAA,EAAA;IAAVA,IAAAA,GAAU,GAAJ,EAAI,CAAA;IAAA,GAAA;;MAC3B,MAAMC,GAAG,GAAG,EAAZ,CAAA;IACAD,EAAAA,GAAG,CAACtE,OAAJ,CAAYwE,EAAE,IAAI;IAChB,IAAA,IAAIL,KAAK,CAACM,OAAN,CAAcD,EAAd,CAAJ,EAAuB;IACrBD,MAAAA,GAAG,CAACG,IAAJ,CAAS,GAAGL,SAAS,CAACG,EAAD,CAArB,CAAA,CAAA;IACD,KAFD,MAEO;UACLD,GAAG,CAACG,IAAJ,CAASF,EAAT,CAAA,CAAA;IACD,KAAA;OALH,CAAA,CAAA;IAOA,EAAA,OAAOD,GAAP,CAAA;IACD,CAAA;;IACD,SAASI,WAAT,CAAqBL,GAArB,EAA0BjB,QAA1B,EAAoC;MAClC,OAAOc,KAAK,CAACS,SAAN,CAAgBC,MAAhB,CAAuBC,IAAvB,CAA4BR,GAA5B,EAAiCjB,QAAjC,CAAP,CAAA;IACD,CAAA;;IACD,SAAS0B,WAAT,CAAqBT,GAArB,EAA0B;MACxB,MAAMU,WAAW,GAAG,EAApB,CAAA;;IAEA,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGX,GAAG,CAACpE,MAAxB,EAAgC+E,CAAC,IAAI,CAArC,EAAwC;IACtC,IAAA,IAAID,WAAW,CAACE,OAAZ,CAAoBZ,GAAG,CAACW,CAAD,CAAvB,CAAA,KAAgC,CAAC,CAArC,EAAwCD,WAAW,CAACN,IAAZ,CAAiBJ,GAAG,CAACW,CAAD,CAApB,CAAA,CAAA;IACzC,GAAA;;IAED,EAAA,OAAOD,WAAP,CAAA;IACD,CAAA;;;IAOD,SAASG,GAAT,CAAaC,QAAb,EAAuBC,OAAvB,EAAgC;IAC9B,EAAA,IAAI,OAAOD,QAAP,KAAoB,QAAxB,EAAkC;QAChC,OAAO,CAACA,QAAD,CAAP,CAAA;IACD,GAAA;;MAED,MAAME,CAAC,GAAG,EAAV,CAAA;IACA,EAAA,MAAMf,GAAG,GAAGc,OAAO,CAAC1E,gBAAR,CAAyByE,QAAzB,CAAZ,CAAA;;IAEA,EAAA,KAAK,IAAIH,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGV,GAAG,CAACrE,MAAxB,EAAgC+E,CAAC,IAAI,CAArC,EAAwC;IACtCK,IAAAA,CAAC,CAACZ,IAAF,CAAOH,GAAG,CAACU,CAAD,CAAV,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,OAAOK,CAAP,CAAA;IACD,CAAA;;IAED,SAASC,CAAT,CAAWH,QAAX,EAAqBC,OAArB,EAA8B;MAC5B,MAAM3B,MAAM,GAAGF,SAAS,EAAxB,CAAA;MACA,MAAMtB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,IAAIsC,GAAG,GAAG,EAAV,CAAA;;IAEA,EAAA,IAAI,CAACe,OAAD,IAAYD,QAAQ,YAAYlB,IAApC,EAA0C;IACxC,IAAA,OAAOkB,QAAP,CAAA;IACD,GAAA;;MAED,IAAI,CAACA,QAAL,EAAe;IACb,IAAA,OAAO,IAAIlB,IAAJ,CAASI,GAAT,CAAP,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,OAAOc,QAAP,KAAoB,QAAxB,EAAkC;IAChC,IAAA,MAAMI,IAAI,GAAGJ,QAAQ,CAACK,IAAT,EAAb,CAAA;;IAEA,IAAA,IAAID,IAAI,CAACN,OAAL,CAAa,GAAb,CAAqB,IAAA,CAArB,IAA0BM,IAAI,CAACN,OAAL,CAAa,GAAb,CAAA,IAAqB,CAAnD,EAAsD;UACpD,IAAIQ,QAAQ,GAAG,KAAf,CAAA;UACA,IAAIF,IAAI,CAACN,OAAL,CAAa,KAAb,MAAwB,CAA5B,EAA+BQ,QAAQ,GAAG,IAAX,CAAA;UAC/B,IAAIF,IAAI,CAACN,OAAL,CAAa,KAAb,MAAwB,CAA5B,EAA+BQ,QAAQ,GAAG,OAAX,CAAA;IAC/B,MAAA,IAAIF,IAAI,CAACN,OAAL,CAAa,KAAb,CAAA,KAAwB,CAAxB,IAA6BM,IAAI,CAACN,OAAL,CAAa,KAAb,CAAA,KAAwB,CAAzD,EAA4DQ,QAAQ,GAAG,IAAX,CAAA;UAC5D,IAAIF,IAAI,CAACN,OAAL,CAAa,QAAb,MAA2B,CAA/B,EAAkCQ,QAAQ,GAAG,OAAX,CAAA;UAClC,IAAIF,IAAI,CAACN,OAAL,CAAa,SAAb,MAA4B,CAAhC,EAAmCQ,QAAQ,GAAG,QAAX,CAAA;IACnC,MAAA,MAAMC,UAAU,GAAGzD,QAAQ,CAACnB,aAAT,CAAuB2E,QAAvB,CAAnB,CAAA;UACAC,UAAU,CAACC,SAAX,GAAuBJ,IAAvB,CAAA;;IAEA,MAAA,KAAK,IAAIP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGU,UAAU,CAAC1E,UAAX,CAAsBf,MAA1C,EAAkD+E,CAAC,IAAI,CAAvD,EAA0D;YACxDX,GAAG,CAACI,IAAJ,CAASiB,UAAU,CAAC1E,UAAX,CAAsBgE,CAAtB,CAAT,CAAA,CAAA;IACD,OAAA;IACF,KAbD,MAaO;UACLX,GAAG,GAAGa,GAAG,CAACC,QAAQ,CAACK,IAAT,EAAD,EAAkBJ,OAAO,IAAInD,QAA7B,CAAT,CAAA;IACD,KAlB+B;;IAoBjC,GApBD,MAoBO,IAAIkD,QAAQ,CAACS,QAAT,IAAqBT,QAAQ,KAAK1B,MAAlC,IAA4C0B,QAAQ,KAAKlD,QAA7D,EAAuE;QAC5EoC,GAAG,CAACI,IAAJ,CAASU,QAAT,CAAA,CAAA;OADK,MAEA,IAAIjB,KAAK,CAACM,OAAN,CAAcW,QAAd,CAAJ,EAA6B;IAClC,IAAA,IAAIA,QAAQ,YAAYlB,IAAxB,EAA8B,OAAOkB,QAAP,CAAA;IAC9Bd,IAAAA,GAAG,GAAGc,QAAN,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAIlB,IAAJ,CAASa,WAAW,CAACT,GAAD,CAApB,CAAP,CAAA;IACD,CAAA;;IAEDiB,CAAC,CAACO,EAAF,GAAO5B,IAAI,CAACU,SAAZ;;IAIA,SAASmB,QAAT,GAA8B;IAAA,EAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAATC,OAAS,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;QAATA,OAAS,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;IAAA,GAAA;;IAC5B,EAAA,MAAMC,UAAU,GAAG5B,SAAS,CAAC2B,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B,CAAA;MACA,IAAKpG,CAAAA,OAAL,CAAawE,EAAE,IAAI;IACjBA,IAAAA,EAAE,CAAC6B,SAAH,CAAaC,GAAb,CAAiB,GAAGL,UAApB,CAAA,CAAA;OADF,CAAA,CAAA;IAGA,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASM,WAAT,GAAiC;IAAA,EAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAATP,OAAS,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;QAATA,OAAS,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,GAAA;;IAC/B,EAAA,MAAMC,UAAU,GAAG5B,SAAS,CAAC2B,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B,CAAA;MACA,IAAKpG,CAAAA,OAAL,CAAawE,EAAE,IAAI;IACjBA,IAAAA,EAAE,CAAC6B,SAAH,CAAaG,MAAb,CAAoB,GAAGP,UAAvB,CAAA,CAAA;OADF,CAAA,CAAA;IAGA,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASQ,WAAT,GAAiC;IAAA,EAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAATT,OAAS,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;QAATA,OAAS,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,GAAA;;IAC/B,EAAA,MAAMC,UAAU,GAAG5B,SAAS,CAAC2B,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B,CAAA;MACA,IAAKpG,CAAAA,OAAL,CAAawE,EAAE,IAAI;IACjByB,IAAAA,UAAU,CAACjG,OAAX,CAAmB0G,SAAS,IAAI;IAC9BlC,MAAAA,EAAE,CAAC6B,SAAH,CAAaM,MAAb,CAAoBD,SAApB,CAAA,CAAA;SADF,CAAA,CAAA;OADF,CAAA,CAAA;IAKD,CAAA;;IAED,SAASE,QAAT,GAA8B;IAAA,EAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAATZ,OAAS,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;QAATA,OAAS,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,GAAA;;IAC5B,EAAA,MAAMC,UAAU,GAAG5B,SAAS,CAAC2B,OAAO,CAACE,GAAR,CAAYC,CAAC,IAAIA,CAAC,CAACC,KAAF,CAAQ,GAAR,CAAjB,CAAD,CAA5B,CAAA;IACA,EAAA,OAAOzB,WAAW,CAAC,IAAD,EAAOH,EAAE,IAAI;IAC7B,IAAA,OAAOyB,UAAU,CAACpB,MAAX,CAAkB6B,SAAS,IAAIlC,EAAE,CAAC6B,SAAH,CAAaQ,QAAb,CAAsBH,SAAtB,CAA/B,CAAiExG,CAAAA,MAAjE,GAA0E,CAAjF,CAAA;IACD,GAFiB,CAAX,CAEJA,MAFI,GAEK,CAFZ,CAAA;IAGD,CAAA;;IAED,SAAS4G,IAAT,CAAcC,KAAd,EAAqB9C,KAArB,EAA4B;MAC1B,IAAI+C,SAAS,CAAC9G,MAAV,KAAqB,CAArB,IAA0B,OAAO6G,KAAP,KAAiB,QAA/C,EAAyD;IACvD;QACA,IAAI,IAAA,CAAK,CAAL,CAAJ,EAAa,OAAO,IAAK,CAAA,CAAL,CAAQE,CAAAA,YAAR,CAAqBF,KAArB,CAAP,CAAA;IACb,IAAA,OAAOG,SAAP,CAAA;IACD,GALyB;;;IAQ1B,EAAA,KAAK,IAAIjC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAI+B,SAAS,CAAC9G,MAAV,KAAqB,CAAzB,EAA4B;IAC1B;IACA,MAAA,IAAA,CAAK+E,CAAL,CAAQ9D,CAAAA,YAAR,CAAqB4F,KAArB,EAA4B9C,KAA5B,CAAA,CAAA;IACD,KAHD,MAGO;IACL;IACA,MAAA,KAAK,MAAMkD,QAAX,IAAuBJ,KAAvB,EAA8B;IAC5B,QAAA,IAAA,CAAK9B,CAAL,CAAQkC,CAAAA,QAAR,IAAoBJ,KAAK,CAACI,QAAD,CAAzB,CAAA;YACA,IAAKlC,CAAAA,CAAL,EAAQ9D,YAAR,CAAqBgG,QAArB,EAA+BJ,KAAK,CAACI,QAAD,CAApC,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASC,UAAT,CAAoBN,IAApB,EAA0B;IACxB,EAAA,KAAK,IAAI7B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAA,CAAKA,CAAL,CAAA,CAAQoC,eAAR,CAAwBP,IAAxB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAoID,SAASQ,SAAT,CAAmBA,SAAnB,EAA8B;IAC5B,EAAA,KAAK,IAAIrC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAA,CAAKA,CAAL,CAAQ/D,CAAAA,KAAR,CAAcoG,SAAd,GAA0BA,SAA1B,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASC,YAAT,CAAoBC,QAApB,EAA8B;IAC5B,EAAA,KAAK,IAAIvC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAA,CAAKA,CAAL,CAAA,CAAQ/D,KAAR,CAAcuG,kBAAd,GAAmC,OAAOD,QAAP,KAAoB,QAApB,GAAgC,CAAA,EAAEA,QAAS,CAAA,EAAA,CAA3C,GAAiDA,QAApF,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASE,EAAT,GAAqB;IAAA,EAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAANC,IAAM,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;QAANA,IAAM,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,GAAA;;MACnB,IAAI,CAACC,SAAD,EAAYC,cAAZ,EAA4BC,QAA5B,EAAsCC,OAAtC,CAAA,GAAiDJ,IAArD,CAAA;;IAEA,EAAA,IAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;IACjC,IAAA,CAACC,SAAD,EAAYE,QAAZ,EAAsBC,OAAtB,IAAiCJ,IAAjC,CAAA;IACAE,IAAAA,cAAc,GAAGX,SAAjB,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,CAACa,OAAL,EAAcA,OAAO,GAAG,KAAV,CAAA;;MAEd,SAASC,eAAT,CAAyBC,CAAzB,EAA4B;IAC1B,IAAA,MAAMpI,MAAM,GAAGoI,CAAC,CAACpI,MAAjB,CAAA;QACA,IAAI,CAACA,MAAL,EAAa,OAAA;QACb,MAAMqI,SAAS,GAAGD,CAAC,CAACpI,MAAF,CAASsI,aAAT,IAA0B,EAA5C,CAAA;;IAEA,IAAA,IAAID,SAAS,CAAChD,OAAV,CAAkB+C,CAAlB,CAAA,GAAuB,CAA3B,EAA8B;UAC5BC,SAAS,CAACE,OAAV,CAAkBH,CAAlB,CAAA,CAAA;IACD,KAAA;;IAED,IAAA,IAAI1C,CAAC,CAAC1F,MAAD,CAAD,CAAUwI,EAAV,CAAaR,cAAb,CAAJ,EAAkCC,QAAQ,CAACQ,KAAT,CAAezI,MAAf,EAAuBqI,SAAvB,EAAlC,KAAyE;UACvE,MAAMK,OAAO,GAAGhD,CAAC,CAAC1F,MAAD,CAAD,CAAU0I,OAAV,EAAhB,CADuE;;IAGvE,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,OAAO,CAACrI,MAA5B,EAAoCsI,CAAC,IAAI,CAAzC,EAA4C;YAC1C,IAAIjD,CAAC,CAACgD,OAAO,CAACC,CAAD,CAAR,CAAD,CAAcH,EAAd,CAAiBR,cAAjB,CAAJ,EAAsCC,QAAQ,CAACQ,KAAT,CAAeC,OAAO,CAACC,CAAD,CAAtB,EAA2BN,SAA3B,CAAA,CAAA;IACvC,OAAA;IACF,KAAA;IACF,GAAA;;MAED,SAASO,WAAT,CAAqBR,CAArB,EAAwB;IACtB,IAAA,MAAMC,SAAS,GAAGD,CAAC,IAAIA,CAAC,CAACpI,MAAP,GAAgBoI,CAAC,CAACpI,MAAF,CAASsI,aAAT,IAA0B,EAA1C,GAA+C,EAAjE,CAAA;;IAEA,IAAA,IAAID,SAAS,CAAChD,OAAV,CAAkB+C,CAAlB,CAAA,GAAuB,CAA3B,EAA8B;UAC5BC,SAAS,CAACE,OAAV,CAAkBH,CAAlB,CAAA,CAAA;IACD,KAAA;;IAEDH,IAAAA,QAAQ,CAACQ,KAAT,CAAe,IAAf,EAAqBJ,SAArB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,MAAMQ,MAAM,GAAGd,SAAS,CAACxB,KAAV,CAAgB,GAAhB,CAAf,CAAA;IACA,EAAA,IAAIuC,CAAJ,CAAA;;IAEA,EAAA,KAAK,IAAI1D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,MAAMT,EAAE,GAAG,IAAKS,CAAAA,CAAL,CAAX,CAAA;;QAEA,IAAI,CAAC4C,cAAL,EAAqB;IACnB,MAAA,KAAKc,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGD,MAAM,CAACxI,MAAvB,EAA+ByI,CAAC,IAAI,CAApC,EAAuC;IACrC,QAAA,MAAMC,KAAK,GAAGF,MAAM,CAACC,CAAD,CAApB,CAAA;YACA,IAAI,CAACnE,EAAE,CAACqE,aAAR,EAAuBrE,EAAE,CAACqE,aAAH,GAAmB,EAAnB,CAAA;IACvB,QAAA,IAAI,CAACrE,EAAE,CAACqE,aAAH,CAAiBD,KAAjB,CAAL,EAA8BpE,EAAE,CAACqE,aAAH,CAAiBD,KAAjB,IAA0B,EAA1B,CAAA;IAC9BpE,QAAAA,EAAE,CAACqE,aAAH,CAAiBD,KAAjB,CAAA,CAAwBlE,IAAxB,CAA6B;cAC3BoD,QAD2B;IAE3BgB,UAAAA,aAAa,EAAEL,WAAAA;aAFjB,CAAA,CAAA;IAIAjE,QAAAA,EAAE,CAACnE,gBAAH,CAAoBuI,KAApB,EAA2BH,WAA3B,EAAwCV,OAAxC,CAAA,CAAA;IACD,OAAA;IACF,KAXD,MAWO;IACL;IACA,MAAA,KAAKY,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGD,MAAM,CAACxI,MAAvB,EAA+ByI,CAAC,IAAI,CAApC,EAAuC;IACrC,QAAA,MAAMC,KAAK,GAAGF,MAAM,CAACC,CAAD,CAApB,CAAA;YACA,IAAI,CAACnE,EAAE,CAACuE,iBAAR,EAA2BvE,EAAE,CAACuE,iBAAH,GAAuB,EAAvB,CAAA;IAC3B,QAAA,IAAI,CAACvE,EAAE,CAACuE,iBAAH,CAAqBH,KAArB,CAAL,EAAkCpE,EAAE,CAACuE,iBAAH,CAAqBH,KAArB,IAA8B,EAA9B,CAAA;IAClCpE,QAAAA,EAAE,CAACuE,iBAAH,CAAqBH,KAArB,CAAA,CAA4BlE,IAA5B,CAAiC;cAC/BoD,QAD+B;IAE/BgB,UAAAA,aAAa,EAAEd,eAAAA;aAFjB,CAAA,CAAA;IAIAxD,QAAAA,EAAE,CAACnE,gBAAH,CAAoBuI,KAApB,EAA2BZ,eAA3B,EAA4CD,OAA5C,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASiB,GAAT,GAAsB;IAAA,EAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAANrB,IAAM,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;QAANA,IAAM,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,GAAA;;MACpB,IAAI,CAACC,SAAD,EAAYC,cAAZ,EAA4BC,QAA5B,EAAsCC,OAAtC,CAAA,GAAiDJ,IAArD,CAAA;;IAEA,EAAA,IAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;IACjC,IAAA,CAACC,SAAD,EAAYE,QAAZ,EAAsBC,OAAtB,IAAiCJ,IAAjC,CAAA;IACAE,IAAAA,cAAc,GAAGX,SAAjB,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,CAACa,OAAL,EAAcA,OAAO,GAAG,KAAV,CAAA;IACd,EAAA,MAAMW,MAAM,GAAGd,SAAS,CAACxB,KAAV,CAAgB,GAAhB,CAAf,CAAA;;IAEA,EAAA,KAAK,IAAInB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyD,MAAM,CAACxI,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,IAAA,MAAM2D,KAAK,GAAGF,MAAM,CAACzD,CAAD,CAApB,CAAA;;IAEA,IAAA,KAAK,IAAI0D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAKzI,MAAzB,EAAiCyI,CAAC,IAAI,CAAtC,EAAyC;IACvC,MAAA,MAAMnE,EAAE,GAAG,IAAKmE,CAAAA,CAAL,CAAX,CAAA;IACA,MAAA,IAAIM,QAAJ,CAAA;;IAEA,MAAA,IAAI,CAACpB,cAAD,IAAmBrD,EAAE,CAACqE,aAA1B,EAAyC;IACvCI,QAAAA,QAAQ,GAAGzE,EAAE,CAACqE,aAAH,CAAiBD,KAAjB,CAAX,CAAA;IACD,OAFD,MAEO,IAAIf,cAAc,IAAIrD,EAAE,CAACuE,iBAAzB,EAA4C;IACjDE,QAAAA,QAAQ,GAAGzE,EAAE,CAACuE,iBAAH,CAAqBH,KAArB,CAAX,CAAA;IACD,OAAA;;IAED,MAAA,IAAIK,QAAQ,IAAIA,QAAQ,CAAC/I,MAAzB,EAAiC;IAC/B,QAAA,KAAK,IAAIsI,CAAC,GAAGS,QAAQ,CAAC/I,MAAT,GAAkB,CAA/B,EAAkCsI,CAAC,IAAI,CAAvC,EAA0CA,CAAC,IAAI,CAA/C,EAAkD;IAChD,UAAA,MAAMU,OAAO,GAAGD,QAAQ,CAACT,CAAD,CAAxB,CAAA;;IAEA,UAAA,IAAIV,QAAQ,IAAIoB,OAAO,CAACpB,QAAR,KAAqBA,QAArC,EAA+C;gBAC7CtD,EAAE,CAAClE,mBAAH,CAAuBsI,KAAvB,EAA8BM,OAAO,CAACJ,aAAtC,EAAqDf,OAArD,CAAA,CAAA;IACAkB,YAAAA,QAAQ,CAACE,MAAT,CAAgBX,CAAhB,EAAmB,CAAnB,CAAA,CAAA;eAFF,MAGO,IAAIV,QAAQ,IAAIoB,OAAO,CAACpB,QAApB,IAAgCoB,OAAO,CAACpB,QAAR,CAAiBsB,SAAjD,IAA8DF,OAAO,CAACpB,QAAR,CAAiBsB,SAAjB,KAA+BtB,QAAjG,EAA2G;gBAChHtD,EAAE,CAAClE,mBAAH,CAAuBsI,KAAvB,EAA8BM,OAAO,CAACJ,aAAtC,EAAqDf,OAArD,CAAA,CAAA;IACAkB,YAAAA,QAAQ,CAACE,MAAT,CAAgBX,CAAhB,EAAmB,CAAnB,CAAA,CAAA;IACD,WAHM,MAGA,IAAI,CAACV,QAAL,EAAe;gBACpBtD,EAAE,CAAClE,mBAAH,CAAuBsI,KAAvB,EAA8BM,OAAO,CAACJ,aAAtC,EAAqDf,OAArD,CAAA,CAAA;IACAkB,YAAAA,QAAQ,CAACE,MAAT,CAAgBX,CAAhB,EAAmB,CAAnB,CAAA,CAAA;IACD,WAAA;IACF,SAAA;IACF,OAAA;IACF,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAwBD,SAASa,OAAT,GAA0B;MACxB,MAAM3F,MAAM,GAAGF,SAAS,EAAxB,CAAA;;IADwB,EAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAANmE,IAAM,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;QAANA,IAAM,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,GAAA;;MAExB,MAAMe,MAAM,GAAGf,IAAI,CAAC,CAAD,CAAJ,CAAQvB,KAAR,CAAc,GAAd,CAAf,CAAA;IACA,EAAA,MAAM8B,SAAS,GAAGP,IAAI,CAAC,CAAD,CAAtB,CAAA;;IAEA,EAAA,KAAK,IAAI1C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyD,MAAM,CAACxI,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,IAAA,MAAM2D,KAAK,GAAGF,MAAM,CAACzD,CAAD,CAApB,CAAA;;IAEA,IAAA,KAAK,IAAI0D,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAKzI,MAAzB,EAAiCyI,CAAC,IAAI,CAAtC,EAAyC;IACvC,MAAA,MAAMnE,EAAE,GAAG,IAAKmE,CAAAA,CAAL,CAAX,CAAA;;UAEA,IAAIjF,MAAM,CAACf,WAAX,EAAwB;YACtB,MAAM2G,GAAG,GAAG,IAAI5F,MAAM,CAACf,WAAX,CAAuBiG,KAAvB,EAA8B;IACxCW,UAAAA,MAAM,EAAErB,SADgC;IAExCsB,UAAAA,OAAO,EAAE,IAF+B;IAGxCC,UAAAA,UAAU,EAAE,IAAA;IAH4B,SAA9B,CAAZ,CAAA;IAKAjF,QAAAA,EAAE,CAAC2D,aAAH,GAAmBR,IAAI,CAAC9C,MAAL,CAAY,CAAC6E,IAAD,EAAOC,SAAP,KAAqBA,SAAS,GAAG,CAA7C,CAAnB,CAAA;YACAnF,EAAE,CAACoF,aAAH,CAAiBN,GAAjB,CAAA,CAAA;YACA9E,EAAE,CAAC2D,aAAH,GAAmB,EAAnB,CAAA;YACA,OAAO3D,EAAE,CAAC2D,aAAV,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAAS0B,eAAT,CAAuBxG,QAAvB,EAAiC;MAC/B,MAAMyG,GAAG,GAAG,IAAZ,CAAA;;MAEA,SAASC,YAAT,CAAsB9B,CAAtB,EAAyB;IACvB,IAAA,IAAIA,CAAC,CAACpI,MAAF,KAAa,IAAjB,EAAuB,OAAA;IACvBwD,IAAAA,QAAQ,CAACyB,IAAT,CAAc,IAAd,EAAoBmD,CAApB,CAAA,CAAA;IACA6B,IAAAA,GAAG,CAACd,GAAJ,CAAQ,eAAR,EAAyBe,YAAzB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,IAAI1G,QAAJ,EAAc;IACZyG,IAAAA,GAAG,CAACpC,EAAJ,CAAO,eAAP,EAAwBqC,YAAxB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAgCD,SAASC,UAAT,CAAoBC,cAApB,EAAoC;IAClC,EAAA,IAAI,IAAK/J,CAAAA,MAAL,GAAc,CAAlB,EAAqB;IACnB,IAAA,IAAI+J,cAAJ,EAAoB;IAClB,MAAA,MAAMC,MAAM,GAAG,IAAKA,CAAAA,MAAL,EAAf,CAAA;UACA,OAAO,IAAA,CAAK,CAAL,CAAQC,CAAAA,WAAR,GAAsBC,UAAU,CAACF,MAAM,CAACrH,gBAAP,CAAwB,cAAxB,CAAD,CAAhC,GAA4EuH,UAAU,CAACF,MAAM,CAACrH,gBAAP,CAAwB,aAAxB,CAAD,CAA7F,CAAA;IACD,KAAA;;QAED,OAAO,IAAA,CAAK,CAAL,CAAA,CAAQsH,WAAf,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAgBD,SAASE,WAAT,CAAqBJ,cAArB,EAAqC;IACnC,EAAA,IAAI,IAAK/J,CAAAA,MAAL,GAAc,CAAlB,EAAqB;IACnB,IAAA,IAAI+J,cAAJ,EAAoB;IAClB,MAAA,MAAMC,MAAM,GAAG,IAAKA,CAAAA,MAAL,EAAf,CAAA;UACA,OAAO,IAAA,CAAK,CAAL,CAAQI,CAAAA,YAAR,GAAuBF,UAAU,CAACF,MAAM,CAACrH,gBAAP,CAAwB,YAAxB,CAAD,CAAjC,GAA2EuH,UAAU,CAACF,MAAM,CAACrH,gBAAP,CAAwB,eAAxB,CAAD,CAA5F,CAAA;IACD,KAAA;;QAED,OAAO,IAAA,CAAK,CAAL,CAAA,CAAQyH,YAAf,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASC,MAAT,GAAkB;IAChB,EAAA,IAAI,IAAKrK,CAAAA,MAAL,GAAc,CAAlB,EAAqB;QACnB,MAAMwD,MAAM,GAAGF,SAAS,EAAxB,CAAA;QACA,MAAMtB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;IACA,IAAA,MAAMwC,EAAE,GAAG,IAAK,CAAA,CAAL,CAAX,CAAA;IACA,IAAA,MAAMgG,GAAG,GAAGhG,EAAE,CAACiG,qBAAH,EAAZ,CAAA;IACA,IAAA,MAAMrK,IAAI,GAAG8B,QAAQ,CAAC9B,IAAtB,CAAA;QACA,MAAMsK,SAAS,GAAGlG,EAAE,CAACkG,SAAH,IAAgBtK,IAAI,CAACsK,SAArB,IAAkC,CAApD,CAAA;QACA,MAAMC,UAAU,GAAGnG,EAAE,CAACmG,UAAH,IAAiBvK,IAAI,CAACuK,UAAtB,IAAoC,CAAvD,CAAA;IACA,IAAA,MAAMC,SAAS,GAAGpG,EAAE,KAAKd,MAAP,GAAgBA,MAAM,CAACmH,OAAvB,GAAiCrG,EAAE,CAACoG,SAAtD,CAAA;IACA,IAAA,MAAME,UAAU,GAAGtG,EAAE,KAAKd,MAAP,GAAgBA,MAAM,CAACqH,OAAvB,GAAiCvG,EAAE,CAACsG,UAAvD,CAAA;QACA,OAAO;IACLE,MAAAA,GAAG,EAAER,GAAG,CAACQ,GAAJ,GAAUJ,SAAV,GAAsBF,SADtB;IAELO,MAAAA,IAAI,EAAET,GAAG,CAACS,IAAJ,GAAWH,UAAX,GAAwBH,UAAAA;SAFhC,CAAA;IAID,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IA6BD,SAAST,MAAT,GAAkB;MAChB,MAAMxG,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,IAAI,IAAK,CAAA,CAAL,CAAJ,EAAa,OAAOE,MAAM,CAACd,gBAAP,CAAwB,IAAK,CAAA,CAAL,CAAxB,EAAiC,IAAjC,CAAP,CAAA;IACb,EAAA,OAAO,EAAP,CAAA;IACD,CAAA;;IAED,SAASsI,GAAT,CAAaC,KAAb,EAAoBlH,KAApB,EAA2B;MACzB,MAAMP,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,IAAIyB,CAAJ,CAAA;;IAEA,EAAA,IAAI+B,SAAS,CAAC9G,MAAV,KAAqB,CAAzB,EAA4B;IAC1B,IAAA,IAAI,OAAOiL,KAAP,KAAiB,QAArB,EAA+B;IAC7B;IACA,MAAA,IAAI,KAAK,CAAL,CAAJ,EAAa,OAAOzH,MAAM,CAACd,gBAAP,CAAwB,IAAK,CAAA,CAAL,CAAxB,EAAiC,IAAjC,EAAuCC,gBAAvC,CAAwDsI,KAAxD,CAAP,CAAA;IACd,KAHD,MAGO;IACL;IACA,MAAA,KAAKlG,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,IAAK/E,CAAAA,MAArB,EAA6B+E,CAAC,IAAI,CAAlC,EAAqC;IACnC,QAAA,KAAK,MAAMmG,IAAX,IAAmBD,KAAnB,EAA0B;cACxB,IAAKlG,CAAAA,CAAL,EAAQ/D,KAAR,CAAckK,IAAd,CAAsBD,GAAAA,KAAK,CAACC,IAAD,CAA3B,CAAA;IACD,SAAA;IACF,OAAA;;IAED,MAAA,OAAO,IAAP,CAAA;IACD,KAAA;IACF,GAAA;;MAED,IAAIpE,SAAS,CAAC9G,MAAV,KAAqB,CAArB,IAA0B,OAAOiL,KAAP,KAAiB,QAA/C,EAAyD;IACvD;IACA,IAAA,KAAKlG,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,IAAK/E,CAAAA,MAArB,EAA6B+E,CAAC,IAAI,CAAlC,EAAqC;IACnC,MAAA,IAAA,CAAKA,CAAL,CAAQ/D,CAAAA,KAAR,CAAciK,KAAd,IAAuBlH,KAAvB,CAAA;IACD,KAAA;;IAED,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASoH,IAAT,CAAchI,QAAd,EAAwB;IACtB,EAAA,IAAI,CAACA,QAAL,EAAe,OAAO,IAAP,CAAA;IACf,EAAA,IAAA,CAAKrD,OAAL,CAAa,CAACwE,EAAD,EAAK8G,KAAL,KAAe;QAC1BjI,QAAQ,CAACiF,KAAT,CAAe9D,EAAf,EAAmB,CAACA,EAAD,EAAK8G,KAAL,CAAnB,CAAA,CAAA;OADF,CAAA,CAAA;IAGA,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASzG,MAAT,CAAgBxB,QAAhB,EAA0B;IACxB,EAAA,MAAMkI,MAAM,GAAG5G,WAAW,CAAC,IAAD,EAAOtB,QAAP,CAA1B,CAAA;MACA,OAAOkC,CAAC,CAACgG,MAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAAS/F,IAAT,CAAcA,IAAd,EAAoB;IAClB,EAAA,IAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;QAC/B,OAAO,IAAA,CAAK,CAAL,CAAU,GAAA,IAAA,CAAK,CAAL,CAAQI,CAAAA,SAAlB,GAA8B,IAArC,CAAA;IACD,GAAA;;IAED,EAAA,KAAK,IAAIX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAA,CAAKA,CAAL,CAAA,CAAQW,SAAR,GAAoBJ,IAApB,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASgG,IAAT,CAAcA,IAAd,EAAoB;IAClB,EAAA,IAAI,OAAOA,IAAP,KAAgB,WAApB,EAAiC;QAC/B,OAAO,IAAA,CAAK,CAAL,CAAA,GAAU,IAAK,CAAA,CAAL,CAAQC,CAAAA,WAAR,CAAoBhG,IAApB,EAAV,GAAuC,IAA9C,CAAA;IACD,GAAA;;IAED,EAAA,KAAK,IAAIR,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAA,CAAKA,CAAL,CAAA,CAAQwG,WAAR,GAAsBD,IAAtB,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAED,SAASnD,EAAT,CAAYjD,QAAZ,EAAsB;MACpB,MAAM1B,MAAM,GAAGF,SAAS,EAAxB,CAAA;MACA,MAAMtB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;IACA,EAAA,MAAMwC,EAAE,GAAG,IAAK,CAAA,CAAL,CAAX,CAAA;IACA,EAAA,IAAIkH,WAAJ,CAAA;IACA,EAAA,IAAIzG,CAAJ,CAAA;MACA,IAAI,CAACT,EAAD,IAAO,OAAOY,QAAP,KAAoB,WAA/B,EAA4C,OAAO,KAAP,CAAA;;IAE5C,EAAA,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;QAChC,IAAIZ,EAAE,CAACmH,OAAP,EAAgB,OAAOnH,EAAE,CAACmH,OAAH,CAAWvG,QAAX,CAAP,CAAA;QAChB,IAAIZ,EAAE,CAACoH,qBAAP,EAA8B,OAAOpH,EAAE,CAACoH,qBAAH,CAAyBxG,QAAzB,CAAP,CAAA;QAC9B,IAAIZ,EAAE,CAACqH,iBAAP,EAA0B,OAAOrH,EAAE,CAACqH,iBAAH,CAAqBzG,QAArB,CAAP,CAAA;IAC1BsG,IAAAA,WAAW,GAAGnG,CAAC,CAACH,QAAD,CAAf,CAAA;;IAEA,IAAA,KAAKH,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGyG,WAAW,CAACxL,MAA5B,EAAoC+E,CAAC,IAAI,CAAzC,EAA4C;UAC1C,IAAIyG,WAAW,CAACzG,CAAD,CAAX,KAAmBT,EAAvB,EAA2B,OAAO,IAAP,CAAA;IAC5B,KAAA;;IAED,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;MAED,IAAIY,QAAQ,KAAKlD,QAAjB,EAA2B;QACzB,OAAOsC,EAAE,KAAKtC,QAAd,CAAA;IACD,GAAA;;MAED,IAAIkD,QAAQ,KAAK1B,MAAjB,EAAyB;QACvB,OAAOc,EAAE,KAAKd,MAAd,CAAA;IACD,GAAA;;IAED,EAAA,IAAI0B,QAAQ,CAACS,QAAT,IAAqBT,QAAQ,YAAYlB,IAA7C,EAAmD;QACjDwH,WAAW,GAAGtG,QAAQ,CAACS,QAAT,GAAoB,CAACT,QAAD,CAApB,GAAiCA,QAA/C,CAAA;;IAEA,IAAA,KAAKH,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGyG,WAAW,CAACxL,MAA5B,EAAoC+E,CAAC,IAAI,CAAzC,EAA4C;UAC1C,IAAIyG,WAAW,CAACzG,CAAD,CAAX,KAAmBT,EAAvB,EAA2B,OAAO,IAAP,CAAA;IAC5B,KAAA;;IAED,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;IAED,EAAA,OAAO,KAAP,CAAA;IACD,CAAA;;IAED,SAAS8G,KAAT,GAAiB;IACf,EAAA,IAAIQ,KAAK,GAAG,IAAK,CAAA,CAAL,CAAZ,CAAA;IACA,EAAA,IAAI7G,CAAJ,CAAA;;IAEA,EAAA,IAAI6G,KAAJ,EAAW;QACT7G,CAAC,GAAG,CAAJ,CADS;;QAGT,OAAO,CAAC6G,KAAK,GAAGA,KAAK,CAACC,eAAf,MAAoC,IAA3C,EAAiD;UAC/C,IAAID,KAAK,CAACjG,QAAN,KAAmB,CAAvB,EAA0BZ,CAAC,IAAI,CAAL,CAAA;IAC3B,KAAA;;IAED,IAAA,OAAOA,CAAP,CAAA;IACD,GAAA;;IAED,EAAA,OAAOiC,SAAP,CAAA;IACD,CAAA;;IAED,SAAS8E,EAAT,CAAYV,KAAZ,EAAmB;IACjB,EAAA,IAAI,OAAOA,KAAP,KAAiB,WAArB,EAAkC,OAAO,IAAP,CAAA;MAClC,MAAMpL,MAAM,GAAG,IAAA,CAAKA,MAApB,CAAA;;IAEA,EAAA,IAAIoL,KAAK,GAAGpL,MAAM,GAAG,CAArB,EAAwB;QACtB,OAAOqF,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,GAAA;;MAED,IAAI+F,KAAK,GAAG,CAAZ,EAAe;IACb,IAAA,MAAMW,WAAW,GAAG/L,MAAM,GAAGoL,KAA7B,CAAA;QACA,IAAIW,WAAW,GAAG,CAAlB,EAAqB,OAAO1G,CAAC,CAAC,EAAD,CAAR,CAAA;IACrB,IAAA,OAAOA,CAAC,CAAC,CAAC,KAAK0G,WAAL,CAAD,CAAD,CAAR,CAAA;IACD,GAAA;;IAED,EAAA,OAAO1G,CAAC,CAAC,CAAC,KAAK+F,KAAL,CAAD,CAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASY,MAAT,GAAwB;IACtB,EAAA,IAAIC,QAAJ,CAAA;MACA,MAAMjK,QAAQ,GAAGF,WAAW,EAA5B,CAAA;;IAEA,EAAA,KAAK,IAAIwG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,SAAA,CAAItI,MAAxB,EAAgCsI,CAAC,IAAI,CAArC,EAAwC;IACtC2D,IAAAA,QAAQ,GAAO3D,CAAP,GAAA,CAAA,IAAA,SAAA,CAAA,MAAA,IAAOA,CAAP,GAAA,SAAA,GAAA,SAAA,CAAOA,CAAP,CAAR,CAAA;;IAEA,IAAA,KAAK,IAAIvD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,MAAA,IAAI,OAAOkH,QAAP,KAAoB,QAAxB,EAAkC;IAChC,QAAA,MAAMC,OAAO,GAAGlK,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB,CAAA;YACAqL,OAAO,CAACxG,SAAR,GAAoBuG,QAApB,CAAA;;YAEA,OAAOC,OAAO,CAACC,UAAf,EAA2B;IACzB,UAAA,IAAA,CAAKpH,CAAL,CAAQqH,CAAAA,WAAR,CAAoBF,OAAO,CAACC,UAA5B,CAAA,CAAA;IACD,SAAA;IACF,OAPD,MAOO,IAAIF,QAAQ,YAAYjI,IAAxB,EAA8B;IACnC,QAAA,KAAK,IAAIyE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGwD,QAAQ,CAACjM,MAA7B,EAAqCyI,CAAC,IAAI,CAA1C,EAA6C;IAC3C,UAAA,IAAA,CAAK1D,CAAL,CAAQqH,CAAAA,WAAR,CAAoBH,QAAQ,CAACxD,CAAD,CAA5B,CAAA,CAAA;IACD,SAAA;IACF,OAJM,MAIA;IACL,QAAA,IAAA,CAAK1D,CAAL,CAAA,CAAQqH,WAAR,CAAoBH,QAApB,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAOD,SAASI,OAAT,CAAiBJ,QAAjB,EAA2B;MACzB,MAAMjK,QAAQ,GAAGF,WAAW,EAA5B,CAAA;IACA,EAAA,IAAIiD,CAAJ,CAAA;IACA,EAAA,IAAI0D,CAAJ,CAAA;;IAEA,EAAA,KAAK1D,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG,IAAK/E,CAAAA,MAArB,EAA6B+E,CAAC,IAAI,CAAlC,EAAqC;IACnC,IAAA,IAAI,OAAOkH,QAAP,KAAoB,QAAxB,EAAkC;IAChC,MAAA,MAAMC,OAAO,GAAGlK,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB,CAAA;UACAqL,OAAO,CAACxG,SAAR,GAAoBuG,QAApB,CAAA;;IAEA,MAAA,KAAKxD,CAAC,GAAGyD,OAAO,CAACnL,UAAR,CAAmBf,MAAnB,GAA4B,CAArC,EAAwCyI,CAAC,IAAI,CAA7C,EAAgDA,CAAC,IAAI,CAArD,EAAwD;IACtD,QAAA,IAAA,CAAK1D,CAAL,CAAQuH,CAAAA,YAAR,CAAqBJ,OAAO,CAACnL,UAAR,CAAmB0H,CAAnB,CAArB,EAA4C,IAAK1D,CAAAA,CAAL,EAAQhE,UAAR,CAAmB,CAAnB,CAA5C,CAAA,CAAA;IACD,OAAA;IACF,KAPD,MAOO,IAAIkL,QAAQ,YAAYjI,IAAxB,EAA8B;IACnC,MAAA,KAAKyE,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwD,QAAQ,CAACjM,MAAzB,EAAiCyI,CAAC,IAAI,CAAtC,EAAyC;IACvC,QAAA,IAAA,CAAK1D,CAAL,CAAA,CAAQuH,YAAR,CAAqBL,QAAQ,CAACxD,CAAD,CAA7B,EAAkC,KAAK1D,CAAL,CAAA,CAAQhE,UAAR,CAAmB,CAAnB,CAAlC,CAAA,CAAA;IACD,OAAA;IACF,KAJM,MAIA;IACL,MAAA,IAAA,CAAKgE,CAAL,CAAA,CAAQuH,YAAR,CAAqBL,QAArB,EAA+B,IAAKlH,CAAAA,CAAL,CAAQhE,CAAAA,UAAR,CAAmB,CAAnB,CAA/B,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD,CAAA;;IAmCD,SAASwL,IAAT,CAAcrH,QAAd,EAAwB;IACtB,EAAA,IAAI,IAAKlF,CAAAA,MAAL,GAAc,CAAlB,EAAqB;IACnB,IAAA,IAAIkF,QAAJ,EAAc;IACZ,MAAA,IAAI,KAAK,CAAL,CAAA,CAAQsH,kBAAR,IAA8BnH,CAAC,CAAC,IAAA,CAAK,CAAL,CAAA,CAAQmH,kBAAT,CAAD,CAA8BrE,EAA9B,CAAiCjD,QAAjC,CAAlC,EAA8E;YAC5E,OAAOG,CAAC,CAAC,CAAC,IAAA,CAAK,CAAL,CAAQmH,CAAAA,kBAAT,CAAD,CAAR,CAAA;IACD,OAAA;;UAED,OAAOnH,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,KAAA;;IAED,IAAA,IAAI,IAAK,CAAA,CAAL,CAAQmH,CAAAA,kBAAZ,EAAgC,OAAOnH,CAAC,CAAC,CAAC,IAAK,CAAA,CAAL,CAAQmH,CAAAA,kBAAT,CAAD,CAAR,CAAA;QAChC,OAAOnH,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,GAAA;;MAED,OAAOA,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASoH,OAAT,CAAiBvH,QAAjB,EAA2B;MACzB,MAAMwH,OAAO,GAAG,EAAhB,CAAA;IACA,EAAA,IAAIpI,EAAE,GAAG,IAAK,CAAA,CAAL,CAAT,CAAA;IACA,EAAA,IAAI,CAACA,EAAL,EAAS,OAAOe,CAAC,CAAC,EAAD,CAAR,CAAA;;MAET,OAAOf,EAAE,CAACkI,kBAAV,EAA8B;IAC5B,IAAA,MAAMD,IAAI,GAAGjI,EAAE,CAACkI,kBAAhB,CAD4B;;IAG5B,IAAA,IAAItH,QAAJ,EAAc;IACZ,MAAA,IAAIG,CAAC,CAACkH,IAAD,CAAD,CAAQpE,EAAR,CAAWjD,QAAX,CAAJ,EAA0BwH,OAAO,CAAClI,IAAR,CAAa+H,IAAb,CAAA,CAAA;IAC3B,KAFD,MAEOG,OAAO,CAAClI,IAAR,CAAa+H,IAAb,CAAA,CAAA;;IAEPjI,IAAAA,EAAE,GAAGiI,IAAL,CAAA;IACD,GAAA;;MAED,OAAOlH,CAAC,CAACqH,OAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASC,IAAT,CAAczH,QAAd,EAAwB;IACtB,EAAA,IAAI,IAAKlF,CAAAA,MAAL,GAAc,CAAlB,EAAqB;IACnB,IAAA,MAAMsE,EAAE,GAAG,IAAK,CAAA,CAAL,CAAX,CAAA;;IAEA,IAAA,IAAIY,QAAJ,EAAc;IACZ,MAAA,IAAIZ,EAAE,CAACsI,sBAAH,IAA6BvH,CAAC,CAACf,EAAE,CAACsI,sBAAJ,CAAD,CAA6BzE,EAA7B,CAAgCjD,QAAhC,CAAjC,EAA4E;IAC1E,QAAA,OAAOG,CAAC,CAAC,CAACf,EAAE,CAACsI,sBAAJ,CAAD,CAAR,CAAA;IACD,OAAA;;UAED,OAAOvH,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,KAAA;;IAED,IAAA,IAAIf,EAAE,CAACsI,sBAAP,EAA+B,OAAOvH,CAAC,CAAC,CAACf,EAAE,CAACsI,sBAAJ,CAAD,CAAR,CAAA;QAC/B,OAAOvH,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,GAAA;;MAED,OAAOA,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASwH,OAAT,CAAiB3H,QAAjB,EAA2B;MACzB,MAAM4H,OAAO,GAAG,EAAhB,CAAA;IACA,EAAA,IAAIxI,EAAE,GAAG,IAAK,CAAA,CAAL,CAAT,CAAA;IACA,EAAA,IAAI,CAACA,EAAL,EAAS,OAAOe,CAAC,CAAC,EAAD,CAAR,CAAA;;MAET,OAAOf,EAAE,CAACsI,sBAAV,EAAkC;IAChC,IAAA,MAAMD,IAAI,GAAGrI,EAAE,CAACsI,sBAAhB,CADgC;;IAGhC,IAAA,IAAI1H,QAAJ,EAAc;IACZ,MAAA,IAAIG,CAAC,CAACsH,IAAD,CAAD,CAAQxE,EAAR,CAAWjD,QAAX,CAAJ,EAA0B4H,OAAO,CAACtI,IAAR,CAAamI,IAAb,CAAA,CAAA;IAC3B,KAFD,MAEOG,OAAO,CAACtI,IAAR,CAAamI,IAAb,CAAA,CAAA;;IAEPrI,IAAAA,EAAE,GAAGqI,IAAL,CAAA;IACD,GAAA;;MAED,OAAOtH,CAAC,CAACyH,OAAD,CAAR,CAAA;IACD,CAAA;;IAMD,SAASC,MAAT,CAAgB7H,QAAhB,EAA0B;IACxB,EAAA,MAAMmD,OAAO,GAAG,EAAhB,CADwB;;IAGxB,EAAA,KAAK,IAAItD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAI,KAAKA,CAAL,CAAA,CAAQiI,UAAR,KAAuB,IAA3B,EAAiC;IAC/B,MAAA,IAAI9H,QAAJ,EAAc;YACZ,IAAIG,CAAC,CAAC,IAAKN,CAAAA,CAAL,EAAQiI,UAAT,CAAD,CAAsB7E,EAAtB,CAAyBjD,QAAzB,CAAJ,EAAwCmD,OAAO,CAAC7D,IAAR,CAAa,IAAKO,CAAAA,CAAL,EAAQiI,UAArB,CAAA,CAAA;IACzC,OAFD,MAEO;IACL3E,QAAAA,OAAO,CAAC7D,IAAR,CAAa,IAAKO,CAAAA,CAAL,EAAQiI,UAArB,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;MAED,OAAO3H,CAAC,CAACgD,OAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASA,OAAT,CAAiBnD,QAAjB,EAA2B;IACzB,EAAA,MAAMmD,OAAO,GAAG,EAAhB,CADyB;;IAGzB,EAAA,KAAK,IAAItD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAIgI,MAAM,GAAG,IAAA,CAAKhI,CAAL,CAAQiI,CAAAA,UAArB,CADuC;;IAGvC,IAAA,OAAOD,MAAP,EAAe;IACb,MAAA,IAAI7H,QAAJ,EAAc;IACZ,QAAA,IAAIG,CAAC,CAAC0H,MAAD,CAAD,CAAU5E,EAAV,CAAajD,QAAb,CAAJ,EAA4BmD,OAAO,CAAC7D,IAAR,CAAauI,MAAb,CAAA,CAAA;IAC7B,OAFD,MAEO;YACL1E,OAAO,CAAC7D,IAAR,CAAauI,MAAb,CAAA,CAAA;IACD,OAAA;;UAEDA,MAAM,GAAGA,MAAM,CAACC,UAAhB,CAAA;IACD,KAAA;IACF,GAAA;;MAED,OAAO3H,CAAC,CAACgD,OAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAAS4E,OAAT,CAAiB/H,QAAjB,EAA2B;IACzB,EAAA,IAAI+H,OAAO,GAAG,IAAd,CADyB;;IAGzB,EAAA,IAAI,OAAO/H,QAAP,KAAoB,WAAxB,EAAqC;QACnC,OAAOG,CAAC,CAAC,EAAD,CAAR,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,CAAC4H,OAAO,CAAC9E,EAAR,CAAWjD,QAAX,CAAL,EAA2B;QACzB+H,OAAO,GAAGA,OAAO,CAAC5E,OAAR,CAAgBnD,QAAhB,CAA0B4G,CAAAA,EAA1B,CAA6B,CAA7B,CAAV,CAAA;IACD,GAAA;;IAED,EAAA,OAAOmB,OAAP,CAAA;IACD,CAAA;;IAED,SAASC,IAAT,CAAchI,QAAd,EAAwB;MACtB,MAAMiI,aAAa,GAAG,EAAtB,CAAA;;IAEA,EAAA,KAAK,IAAIpI,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;QACvC,MAAMqI,KAAK,GAAG,IAAKrI,CAAAA,CAAL,EAAQtE,gBAAR,CAAyByE,QAAzB,CAAd,CAAA;;IAEA,IAAA,KAAK,IAAIuD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2E,KAAK,CAACpN,MAA1B,EAAkCyI,CAAC,IAAI,CAAvC,EAA0C;IACxC0E,MAAAA,aAAa,CAAC3I,IAAd,CAAmB4I,KAAK,CAAC3E,CAAD,CAAxB,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MAED,OAAOpD,CAAC,CAAC8H,aAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASrM,QAAT,CAAkBoE,QAAlB,EAA4B;IAC1B,EAAA,MAAMpE,QAAQ,GAAG,EAAjB,CAD0B;;IAG1B,EAAA,KAAK,IAAIiE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,MAAMhE,UAAU,GAAG,IAAKgE,CAAAA,CAAL,EAAQjE,QAA3B,CAAA;;IAEA,IAAA,KAAK,IAAI2H,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG1H,UAAU,CAACf,MAA/B,EAAuCyI,CAAC,IAAI,CAA5C,EAA+C;IAC7C,MAAA,IAAI,CAACvD,QAAD,IAAaG,CAAC,CAACtE,UAAU,CAAC0H,CAAD,CAAX,CAAD,CAAiBN,EAAjB,CAAoBjD,QAApB,CAAjB,EAAgD;IAC9CpE,QAAAA,QAAQ,CAAC0D,IAAT,CAAczD,UAAU,CAAC0H,CAAD,CAAxB,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;MAED,OAAOpD,CAAC,CAACvE,QAAD,CAAR,CAAA;IACD,CAAA;;IAED,SAASwF,MAAT,GAAkB;IAChB,EAAA,KAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,IAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,IAAI,IAAKA,CAAAA,CAAL,CAAQiI,CAAAA,UAAZ,EAAwB,IAAKjI,CAAAA,CAAL,CAAQiI,CAAAA,UAAR,CAAmBK,WAAnB,CAA+B,IAAA,CAAKtI,CAAL,CAA/B,CAAA,CAAA;IACzB,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD;;IC/+BD,MAAMuI,OAAO,GAAG;MACdzH,QADc;MAEdQ,WAFc;MAGdK,QAHc;MAIdH,WAJc;MAKdK,IALc;MAMdM,UANc;MAOdE,SAPc;kBAQdC,YARc;MASdG,EATc;MAUdsB,GAVc;MAWdK,OAXc;qBAYdQ,eAZc;MAadG,UAbc;MAcdK,WAdc;MAedH,MAfc;MAgBdK,MAhBc;MAiBdW,GAjBc;MAkBdG,IAlBc;MAmBd7F,IAnBc;MAoBdgG,IApBc;MAqBdnD,EArBc;MAsBdiD,KAtBc;MAuBdU,EAvBc;MAwBdE,MAxBc;MAyBdK,OAzBc;MA0BdE,IA1Bc;MA2BdE,OA3Bc;MA4BdE,IA5Bc;MA6BdE,OA7Bc;MA8BdE,MA9Bc;MA+Bd1E,OA/Bc;MAgCd4E,OAhCc;MAiCdC,IAjCc;MAkCdpM,QAlCc;MAmCd6D,MAnCc;IAoCd2B,EAAAA,MAAAA;IApCc,CAAhB,CAAA;IAuCA7G,MAAM,CAACI,IAAP,CAAYyN,OAAZ,EAAqBxN,OAArB,CAA8ByN,UAAD,IAAgB;MAC3C9N,MAAM,CAACmE,cAAP,CAAsByB,CAAC,CAACO,EAAxB,EAA4B2H,UAA5B,EAAwC;IAAExJ,IAAAA,KAAK,EAAEuJ,OAAO,CAACC,UAAD,CAAhB;IAA8BC,IAAAA,QAAQ,EAAE,IAAA;OAAhF,CAAA,CAAA;IACD,CAFD,CAAA;;IC7EA,SAASC,WAAT,CAAqBlO,GAArB,EAA0B;MACxB,MAAMmO,MAAM,GAAGnO,GAAf,CAAA;MACAE,MAAM,CAACI,IAAP,CAAY6N,MAAZ,EAAoB5N,OAApB,CAA6BC,GAAD,IAAS;QACnC,IAAI;IACF2N,MAAAA,MAAM,CAAC3N,GAAD,CAAN,GAAc,IAAd,CAAA;IACD,KAFD,CAEE,OAAOgI,CAAP,EAAU;IAEX,KAAA;;QACD,IAAI;UACF,OAAO2F,MAAM,CAAC3N,GAAD,CAAb,CAAA;IACD,KAFD,CAEE,OAAOgI,CAAP,EAAU;IAEX,KAAA;OAVH,CAAA,CAAA;IAYD,CAAA;;IACD,SAAS4F,QAAT,CAAkBxK,QAAlB,EAA4ByK,KAA5B,EAAuC;IAAA,EAAA,IAAXA,KAAW,KAAA,KAAA,CAAA,EAAA;IAAXA,IAAAA,KAAW,GAAH,CAAG,CAAA;IAAA,GAAA;;IACrC,EAAA,OAAO7K,UAAU,CAACI,QAAD,EAAWyK,KAAX,CAAjB,CAAA;IACD,CAAA;;IACD,SAASC,GAAT,GAAe;MACb,OAAOhL,IAAI,CAACgL,GAAL,EAAP,CAAA;IACD,CAAA;;IACD,SAASnL,kBAAT,CAA0B4B,EAA1B,EAA8B;MAC5B,MAAMd,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,IAAItC,KAAJ,CAAA;;MACA,IAAIwC,MAAM,CAACd,gBAAX,EAA6B;QAC3B1B,KAAK,GAAGwC,MAAM,CAACd,gBAAP,CAAwB4B,EAAxB,EAA4B,IAA5B,CAAR,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAACtD,KAAD,IAAUsD,EAAE,CAACwJ,YAAjB,EAA+B;QAC7B9M,KAAK,GAAGsD,EAAE,CAACwJ,YAAX,CAAA;IACD,GAAA;;MACD,IAAI,CAAC9M,KAAL,EAAY;QACVA,KAAK,GAAGsD,EAAE,CAACtD,KAAX,CAAA;IACD,GAAA;;IAED,EAAA,OAAOA,KAAP,CAAA;IACD,CAAA;;IACD,SAAS+M,YAAT,CAAsBzJ,EAAtB,EAA0B0J,IAA1B,EAAsC;IAAA,EAAA,IAAZA,IAAY,KAAA,KAAA,CAAA,EAAA;IAAZA,IAAAA,IAAY,GAAL,GAAK,CAAA;IAAA,GAAA;;MACpC,MAAMxK,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,IAAI2K,MAAJ,CAAA;IACA,EAAA,IAAIC,YAAJ,CAAA;IACA,EAAA,IAAIC,eAAJ,CAAA;IAEA,EAAA,MAAMC,QAAQ,GAAG1L,kBAAgB,CAAC4B,EAAD,CAAjC,CAAA;;MAEA,IAAId,MAAM,CAAC6K,eAAX,EAA4B;IAC1BH,IAAAA,YAAY,GAAGE,QAAQ,CAAChH,SAAT,IAAsBgH,QAAQ,CAACE,eAA9C,CAAA;;QACA,IAAIJ,YAAY,CAAChI,KAAb,CAAmB,GAAnB,CAAwBlG,CAAAA,MAAxB,GAAiC,CAArC,EAAwC;UACtCkO,YAAY,GAAGA,YAAY,CACxBhI,KADY,CACN,IADM,CAAA,CAEZF,GAFY,CAEPZ,CAAD,IAAOA,CAAC,CAACmJ,OAAF,CAAU,GAAV,EAAe,GAAf,CAFC,CAGZC,CAAAA,IAHY,CAGP,IAHO,CAAf,CAAA;IAID,KAPyB;IAS1B;;;IACAL,IAAAA,eAAe,GAAG,IAAI3K,MAAM,CAAC6K,eAAX,CAA2BH,YAAY,KAAK,MAAjB,GAA0B,EAA1B,GAA+BA,YAA1D,CAAlB,CAAA;IACD,GAXD,MAWO;IACLC,IAAAA,eAAe,GACbC,QAAQ,CAACK,YAAT,IACAL,QAAQ,CAACM,UADT,IAEAN,QAAQ,CAACO,WAFT,IAGAP,QAAQ,CAACQ,WAHT,IAIAR,QAAQ,CAAChH,SAJT,IAKAgH,QAAQ,CAACzL,gBAAT,CAA0B,WAA1B,CAAA,CAAuC4L,OAAvC,CAA+C,YAA/C,EAA6D,oBAA7D,CANF,CAAA;QAOAN,MAAM,GAAGE,eAAe,CAACU,QAAhB,GAA2B3I,KAA3B,CAAiC,GAAjC,CAAT,CAAA;IACD,GAAA;;MAED,IAAI8H,IAAI,KAAK,GAAb,EAAkB;IAChB;QACA,IAAIxK,MAAM,CAAC6K,eAAX,EAA4BH,YAAY,GAAGC,eAAe,CAACW,GAA/B,CAA5B;IAAA,SAEK,IAAIb,MAAM,CAACjO,MAAP,KAAkB,EAAtB,EAA0BkO,YAAY,GAAGhE,UAAU,CAAC+D,MAAM,CAAC,EAAD,CAAP,CAAzB,CAA1B;aAEAC,YAAY,GAAGhE,UAAU,CAAC+D,MAAM,CAAC,CAAD,CAAP,CAAzB,CAAA;IACN,GAAA;;MACD,IAAID,IAAI,KAAK,GAAb,EAAkB;IAChB;QACA,IAAIxK,MAAM,CAAC6K,eAAX,EAA4BH,YAAY,GAAGC,eAAe,CAACY,GAA/B,CAA5B;IAAA,SAEK,IAAId,MAAM,CAACjO,MAAP,KAAkB,EAAtB,EAA0BkO,YAAY,GAAGhE,UAAU,CAAC+D,MAAM,CAAC,EAAD,CAAP,CAAzB,CAA1B;aAEAC,YAAY,GAAGhE,UAAU,CAAC+D,MAAM,CAAC,CAAD,CAAP,CAAzB,CAAA;IACN,GAAA;;MACD,OAAOC,YAAY,IAAI,CAAvB,CAAA;IACD,CAAA;;IACD,SAAS5O,QAAT,CAAkB0P,CAAlB,EAAqB;IACnB,EAAA,OACE,OAAOA,CAAP,KAAa,QAAb,IACAA,CAAC,KAAK,IADN,IAEAA,CAAC,CAACxP,WAFF,IAGAC,MAAM,CAACiF,SAAP,CAAiBmK,QAAjB,CAA0BjK,IAA1B,CAA+BoK,CAA/B,CAAA,CAAkCC,KAAlC,CAAwC,CAAxC,EAA2C,CAAC,CAA5C,MAAmD,QAJrD,CAAA;IAMD,CAAA;;IACD,SAASC,MAAT,CAAgBC,IAAhB,EAAsB;IACpB;MACA,IAAI,OAAO3L,MAAP,KAAkB,WAAlB,IAAiC,OAAOA,MAAM,CAAC4L,WAAd,KAA8B,WAAnE,EAAgF;QAC9E,OAAOD,IAAI,YAAYC,WAAvB,CAAA;IACD,GAAA;;IACD,EAAA,OAAOD,IAAI,KAAKA,IAAI,CAACxJ,QAAL,KAAkB,CAAlB,IAAuBwJ,IAAI,CAACxJ,QAAL,KAAkB,EAA9C,CAAX,CAAA;IACD,CAAA;;IACD,SAASjG,MAAT,GAAyB;MACvB,MAAM2P,EAAE,GAAG5P,MAAM,CAAjB,SAAA,CAAA,MAAA,IAAA,CAAA,GAAA,SAAA,GAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACA,MAAM6P,QAAQ,GAAG,CAAC,WAAD,EAAc,aAAd,EAA6B,WAA7B,CAAjB,CAAA;;IACA,EAAA,KAAK,IAAIvK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,SAAA,CAAK/E,MAAzB,EAAiC+E,CAAC,IAAI,CAAtC,EAAyC;IACvC,IAAA,MAAMwK,UAAU,GAAQxK,CAAR,4BAAQA,CAAR,GAAA,SAAA,GAAA,SAAA,CAAQA,CAAR,CAAhB,CAAA;;IACA,IAAA,IAAIwK,UAAU,KAAKvI,SAAf,IAA4BuI,UAAU,KAAK,IAA3C,IAAmD,CAACL,MAAM,CAACK,UAAD,CAA9D,EAA4E;UAC1E,MAAMC,SAAS,GAAG/P,MAAM,CAACI,IAAP,CAAYJ,MAAM,CAAC8P,UAAD,CAAlB,CAAA,CAAgC5K,MAAhC,CAAwC5E,GAAD,IAASuP,QAAQ,CAACtK,OAAT,CAAiBjF,GAAjB,CAAwB,GAAA,CAAxE,CAAlB,CAAA;;IACA,MAAA,KAAK,IAAI0P,SAAS,GAAG,CAAhB,EAAmBC,GAAG,GAAGF,SAAS,CAACxP,MAAxC,EAAgDyP,SAAS,GAAGC,GAA5D,EAAiED,SAAS,IAAI,CAA9E,EAAiF;IAC/E,QAAA,MAAME,OAAO,GAAGH,SAAS,CAACC,SAAD,CAAzB,CAAA;YACA,MAAMG,IAAI,GAAGnQ,MAAM,CAACoQ,wBAAP,CAAgCN,UAAhC,EAA4CI,OAA5C,CAAb,CAAA;;IACA,QAAA,IAAIC,IAAI,KAAK5I,SAAT,IAAsB4I,IAAI,CAACE,UAA/B,EAA2C;IACzC,UAAA,IAAIxQ,QAAQ,CAAC+P,EAAE,CAACM,OAAD,CAAH,CAAR,IAAyBrQ,QAAQ,CAACiQ,UAAU,CAACI,OAAD,CAAX,CAArC,EAA4D;IAC1D,YAAA,IAAIJ,UAAU,CAACI,OAAD,CAAV,CAAoBI,UAAxB,EAAoC;IAClCV,cAAAA,EAAE,CAACM,OAAD,CAAF,GAAcJ,UAAU,CAACI,OAAD,CAAxB,CAAA;IACD,aAFD,MAEO;kBACLjQ,MAAM,CAAC2P,EAAE,CAACM,OAAD,CAAH,EAAcJ,UAAU,CAACI,OAAD,CAAxB,CAAN,CAAA;IACD,aAAA;IACF,WAND,MAMO,IAAI,CAACrQ,QAAQ,CAAC+P,EAAE,CAACM,OAAD,CAAH,CAAT,IAA0BrQ,QAAQ,CAACiQ,UAAU,CAACI,OAAD,CAAX,CAAtC,EAA6D;IAClEN,YAAAA,EAAE,CAACM,OAAD,CAAF,GAAc,EAAd,CAAA;;IACA,YAAA,IAAIJ,UAAU,CAACI,OAAD,CAAV,CAAoBI,UAAxB,EAAoC;IAClCV,cAAAA,EAAE,CAACM,OAAD,CAAF,GAAcJ,UAAU,CAACI,OAAD,CAAxB,CAAA;IACD,aAFD,MAEO;kBACLjQ,MAAM,CAAC2P,EAAE,CAACM,OAAD,CAAH,EAAcJ,UAAU,CAACI,OAAD,CAAxB,CAAN,CAAA;IACD,aAAA;IACF,WAPM,MAOA;IACLN,YAAAA,EAAE,CAACM,OAAD,CAAF,GAAcJ,UAAU,CAACI,OAAD,CAAxB,CAAA;IACD,WAAA;IACF,SAAA;IACF,OAAA;IACF,KAAA;IACF,GAAA;;IACD,EAAA,OAAON,EAAP,CAAA;IACD,CAAA;;IAED,SAASW,cAAT,CAAwB1L,EAAxB,EAA4B2L,OAA5B,EAAqCC,QAArC,EAA+C;IAC7C5L,EAAAA,EAAE,CAACtD,KAAH,CAASmP,WAAT,CAAqBF,OAArB,EAA8BC,QAA9B,CAAA,CAAA;IACD,CAAA;;IAED,SAASE,oBAAT,CAAgE,IAAA,EAAA;MAAA,IAAlC;QAAEC,MAAF;QAAUC,cAAV;IAA0BC,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MAC9D,MAAM/M,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,MAAMkN,aAAa,GAAG,CAACH,MAAM,CAACI,SAA9B,CAAA;MACA,IAAIC,SAAS,GAAG,IAAhB,CAAA;IACA,EAAA,IAAIC,IAAJ,CAAA;IACA,EAAA,MAAMrJ,QAAQ,GAAG+I,MAAM,CAACO,MAAP,CAAcC,KAA/B,CAAA;IAEAR,EAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+P,cAAvB,GAAwC,MAAxC,CAAA;IACAvN,EAAAA,MAAM,CAACJ,oBAAP,CAA4BiN,MAAM,CAACW,cAAnC,CAAA,CAAA;MAEA,MAAMC,GAAG,GAAGX,cAAc,GAAGE,aAAjB,GAAiC,MAAjC,GAA0C,MAAtD,CAAA;;IAEA,EAAA,MAAMU,YAAY,GAAG,CAACC,OAAD,EAAUxR,MAAV,KAAqB;IACxC,IAAA,OAAQsR,GAAG,KAAK,MAAR,IAAkBE,OAAO,IAAIxR,MAA9B,IAA0CsR,GAAG,KAAK,MAAR,IAAkBE,OAAO,IAAIxR,MAA9E,CAAA;OADF,CAAA;;MAIA,MAAMyR,OAAO,GAAG,MAAM;IACpBT,IAAAA,IAAI,GAAG,IAAI9N,IAAJ,EAAA,CAAWwO,OAAX,EAAP,CAAA;;QACA,IAAIX,SAAS,KAAK,IAAlB,EAAwB;IACtBA,MAAAA,SAAS,GAAGC,IAAZ,CAAA;IACD,KAAA;;QAED,MAAMW,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS,CAACd,IAAI,GAAGD,SAAR,IAAqBpJ,QAA9B,EAAwC,CAAxC,CAAT,EAAqD,CAArD,CAAjB,CAAA;IACA,IAAA,MAAMoK,YAAY,GAAG,GAAMH,GAAAA,IAAI,CAACI,GAAL,CAASL,QAAQ,GAAGC,IAAI,CAACK,EAAzB,IAA+B,CAA1D,CAAA;QACA,IAAIC,eAAe,GAAGrB,aAAa,GAAGkB,YAAY,IAAIpB,cAAc,GAAGE,aAArB,CAAlD,CAAA;;IAEA,IAAA,IAAIU,YAAY,CAACW,eAAD,EAAkBvB,cAAlB,CAAhB,EAAmD;IACjDuB,MAAAA,eAAe,GAAGvB,cAAlB,CAAA;IACD,KAAA;;IACDD,IAAAA,MAAM,CAACS,SAAP,CAAiBgB,QAAjB,CAA0B;IACxB,MAAA,CAACvB,IAAD,GAAQsB,eAAAA;SADV,CAAA,CAAA;;IAGA,IAAA,IAAIX,YAAY,CAACW,eAAD,EAAkBvB,cAAlB,CAAhB,EAAmD;IACjDD,MAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+Q,QAAvB,GAAkC,QAAlC,CAAA;IACA1B,MAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+P,cAAvB,GAAwC,EAAxC,CAAA;IACAhO,MAAAA,UAAU,CAAC,MAAM;IACfsN,QAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+Q,QAAvB,GAAkC,EAAlC,CAAA;IACA1B,QAAAA,MAAM,CAACS,SAAP,CAAiBgB,QAAjB,CAA0B;IACxB,UAAA,CAACvB,IAAD,GAAQsB,eAAAA;aADV,CAAA,CAAA;IAGD,OALS,CAAV,CAAA;IAMArO,MAAAA,MAAM,CAACJ,oBAAP,CAA4BiN,MAAM,CAACW,cAAnC,CAAA,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;QACDX,MAAM,CAACW,cAAP,GAAwBxN,MAAM,CAACN,qBAAP,CAA6BkO,OAA7B,CAAxB,CAAA;OA5BF,CAAA;;MA8BAA,OAAO,EAAA,CAAA;IACR;;ICxLD,IAAIY,OAAJ,CAAA;;IAEA,SAASC,WAAT,GAAuB;MACrB,MAAMzO,MAAM,GAAGF,SAAS,EAAxB,CAAA;MACA,MAAMtB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MAEA,OAAO;QACLoQ,YAAY,EAAElQ,QAAQ,CAACmQ,eAAT,IAA4B,oBAAoBnQ,QAAQ,CAACmQ,eAAT,CAAyBnR,KADlF;IAGLoR,IAAAA,KAAK,EAAE,CAAC,EACN,cAAA,IAAkB5O,MAAlB,IACCA,MAAM,CAAC6O,aAAP,IAAwBrQ,QAAQ,YAAYwB,MAAM,CAAC6O,aAF9C,CAHH;QAQLC,eAAe,EAAG,SAASC,oBAAT,GAAgC;UAChD,IAAIC,eAAe,GAAG,KAAtB,CAAA;;UACA,IAAI;YACF,MAAMC,IAAI,GAAGhT,MAAM,CAACmE,cAAP,CAAsB,EAAtB,EAA0B,SAA1B,EAAqC;IAChD;IACAC,UAAAA,GAAG,GAAG;IACJ2O,YAAAA,eAAe,GAAG,IAAlB,CAAA;IACD,WAAA;;IAJ+C,SAArC,CAAb,CAAA;IAMAhP,QAAAA,MAAM,CAACrD,gBAAP,CAAwB,qBAAxB,EAA+C,IAA/C,EAAqDsS,IAArD,CAAA,CAAA;IACD,OARD,CAQE,OAAO1K,CAAP,EAAU;IAEX,OAAA;;IACD,MAAA,OAAOyK,eAAP,CAAA;IACD,KAdgB,EARZ;QAwBLE,QAAQ,EAAG,SAASC,aAAT,GAAyB;IAClC,MAAA,OAAO,oBAAoBnP,MAA3B,CAAA;SADQ,EAAA;OAxBZ,CAAA;IA4BD,CAAA;;IAED,SAASoP,UAAT,GAAsB;MACpB,IAAI,CAACZ,OAAL,EAAc;QACZA,OAAO,GAAGC,WAAW,EAArB,CAAA;IACD,GAAA;;IACD,EAAA,OAAOD,OAAP,CAAA;IACD;;ICxCD,IAAIa,YAAJ,CAAA;;IAEA,SAASC,UAAT,CAAwC,KAAA,EAAA;MAAA,IAApB;IAAE3Q,IAAAA,SAAAA;IAAF,GAAoB,sBAAJ,EAAI,GAAA,KAAA,CAAA;MACtC,MAAM6P,OAAO,GAAGY,UAAU,EAA1B,CAAA;MACA,MAAMpP,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,MAAMyP,QAAQ,GAAGvP,MAAM,CAACtB,SAAP,CAAiB6Q,QAAlC,CAAA;MACA,MAAMC,EAAE,GAAG7Q,SAAS,IAAIqB,MAAM,CAACtB,SAAP,CAAiBC,SAAzC,CAAA;IAEA,EAAA,MAAM8Q,MAAM,GAAG;IACbC,IAAAA,GAAG,EAAE,KADQ;IAEbC,IAAAA,OAAO,EAAE,KAAA;OAFX,CAAA;IAKA,EAAA,MAAMC,WAAW,GAAG5P,MAAM,CAACV,MAAP,CAAcuQ,KAAlC,CAAA;IACA,EAAA,MAAMC,YAAY,GAAG9P,MAAM,CAACV,MAAP,CAAcyQ,MAAnC,CAAA;MAEA,MAAMJ,OAAO,GAAGH,EAAE,CAACQ,KAAH,CAAS,6BAAT,CAAhB,CAdsC;;IAetC,EAAA,IAAIC,IAAI,GAAGT,EAAE,CAACQ,KAAH,CAAS,sBAAT,CAAX,CAAA;IACA,EAAA,MAAME,IAAI,GAAGV,EAAE,CAACQ,KAAH,CAAS,yBAAT,CAAb,CAAA;MACA,MAAMG,MAAM,GAAG,CAACF,IAAD,IAAST,EAAE,CAACQ,KAAH,CAAS,4BAAT,CAAxB,CAAA;IACA,EAAA,MAAMI,OAAO,GAAGb,QAAQ,KAAK,OAA7B,CAAA;IACA,EAAA,IAAIc,KAAK,GAAGd,QAAQ,KAAK,UAAzB,CAnBsC;;MAsBtC,MAAMe,WAAW,GAAG,CAClB,WADkB,EAElB,WAFkB,EAGlB,UAHkB,EAIlB,UAJkB,EAKlB,UALkB,EAMlB,UANkB,EAOlB,UAPkB,EAQlB,UARkB,EASlB,UATkB,EAUlB,UAVkB,EAWlB,UAXkB,EAYlB,UAZkB,CAApB,CAAA;;MAcA,IACE,CAACL,IAAD,IACAI,KADA,IAEA7B,OAAO,CAACI,KAFR,IAGA0B,WAAW,CAAC9O,OAAZ,CAAqB,GAAEoO,WAAY,CAAA,CAAA,EAAGE,YAAa,CAAnD,CAAA,CAAA,IAAyD,CAJ3D,EAKE;IACAG,IAAAA,IAAI,GAAGT,EAAE,CAACQ,KAAH,CAAS,qBAAT,CAAP,CAAA;QACA,IAAI,CAACC,IAAL,EAAWA,IAAI,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,QAAP,CAAP,CAAA;IACXI,IAAAA,KAAK,GAAG,KAAR,CAAA;IACD,GA7CqC;;;IAgDtC,EAAA,IAAIV,OAAO,IAAI,CAACS,OAAhB,EAAyB;QACvBX,MAAM,CAACc,EAAP,GAAY,SAAZ,CAAA;QACAd,MAAM,CAACE,OAAP,GAAiB,IAAjB,CAAA;IACD,GAAA;;IACD,EAAA,IAAIM,IAAI,IAAIE,MAAR,IAAkBD,IAAtB,EAA4B;QAC1BT,MAAM,CAACc,EAAP,GAAY,KAAZ,CAAA;QACAd,MAAM,CAACC,GAAP,GAAa,IAAb,CAAA;IACD,GAvDqC;;;IA0DtC,EAAA,OAAOD,MAAP,CAAA;IACD,CAAA;;IAED,SAASe,SAAT,CAAmBC,SAAnB,EAAmC;IAAA,EAAA,IAAhBA,SAAgB,KAAA,KAAA,CAAA,EAAA;IAAhBA,IAAAA,SAAgB,GAAJ,EAAI,CAAA;IAAA,GAAA;;MACjC,IAAI,CAACpB,YAAL,EAAmB;IACjBA,IAAAA,YAAY,GAAGC,UAAU,CAACmB,SAAD,CAAzB,CAAA;IACD,GAAA;;IACD,EAAA,OAAOpB,YAAP,CAAA;IACD;;ICrED,IAAIqB,OAAJ,CAAA;;IAEA,SAASC,WAAT,GAAuB;MACrB,MAAM3Q,MAAM,GAAGF,SAAS,EAAxB,CAAA;;IACA,EAAA,SAAS8Q,QAAT,GAAoB;QAClB,MAAMpB,EAAE,GAAGxP,MAAM,CAACtB,SAAP,CAAiBC,SAAjB,CAA2BkS,WAA3B,EAAX,CAAA;QACA,OAAOrB,EAAE,CAAChO,OAAH,CAAW,QAAX,CAAwB,IAAA,CAAxB,IAA6BgO,EAAE,CAAChO,OAAH,CAAW,QAAX,CAAA,GAAuB,CAApD,IAAyDgO,EAAE,CAAChO,OAAH,CAAW,SAAX,CAAA,GAAwB,CAAxF,CAAA;IACD,GAAA;;MACD,OAAO;QACLoP,QAAQ,EAAEA,QAAQ,EADb;QAELE,SAAS,EAAE,+CAA+CC,IAA/C,CAAoD/Q,MAAM,CAACtB,SAAP,CAAiBC,SAArE,CAAA;OAFb,CAAA;IAID,CAAA;;IAED,SAASqS,UAAT,GAAsB;MACpB,IAAI,CAACN,OAAL,EAAc;QACZA,OAAO,GAAGC,WAAW,EAArB,CAAA;IACD,GAAA;;IACD,EAAA,OAAOD,OAAP,CAAA;IACD;;ICnBc,SAASO,MAAT,CAAsC,IAAA,EAAA;MAAA,IAAtB;QAAEpE,MAAF;QAAU7I,EAAV;IAAckN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MACnD,MAAMlR,MAAM,GAAGF,SAAS,EAAxB,CAAA;MACA,IAAIqR,QAAQ,GAAG,IAAf,CAAA;MACA,IAAIC,cAAc,GAAG,IAArB,CAAA;;MAEA,MAAMC,aAAa,GAAG,MAAM;QAC1B,IAAI,CAACxE,MAAD,IAAWA,MAAM,CAACyE,SAAlB,IAA+B,CAACzE,MAAM,CAAC0E,WAA3C,EAAwD,OAAA;QACxDL,IAAI,CAAC,cAAD,CAAJ,CAAA;QACAA,IAAI,CAAC,QAAD,CAAJ,CAAA;OAHF,CAAA;;MAMA,MAAMM,cAAc,GAAG,MAAM;QAC3B,IAAI,CAAC3E,MAAD,IAAWA,MAAM,CAACyE,SAAlB,IAA+B,CAACzE,MAAM,CAAC0E,WAA3C,EAAwD,OAAA;IACxDJ,IAAAA,QAAQ,GAAG,IAAIM,cAAJ,CAAoBC,OAAD,IAAa;IACzCN,MAAAA,cAAc,GAAGpR,MAAM,CAACN,qBAAP,CAA6B,MAAM;YAClD,MAAM;cAAEmQ,KAAF;IAASE,UAAAA,MAAAA;IAAT,SAAA,GAAoBlD,MAA1B,CAAA;YACA,IAAI8E,QAAQ,GAAG9B,KAAf,CAAA;YACA,IAAI+B,SAAS,GAAG7B,MAAhB,CAAA;YACA2B,OAAO,CAACpV,OAAR,CAAgB,KAA6C,IAAA;cAAA,IAA5C;gBAAEuV,cAAF;gBAAkBC,WAAlB;IAA+B3V,YAAAA,MAAAA;eAAa,GAAA,KAAA,CAAA;IAC3D,UAAA,IAAIA,MAAM,IAAIA,MAAM,KAAK0Q,MAAM,CAAC/L,EAAhC,EAAoC,OAAA;IACpC6Q,UAAAA,QAAQ,GAAGG,WAAW,GAClBA,WAAW,CAACjC,KADM,GAElB,CAACgC,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAtB,EAAsCE,UAF1C,CAAA;IAGAH,UAAAA,SAAS,GAAGE,WAAW,GACnBA,WAAW,CAAC/B,MADO,GAEnB,CAAC8B,cAAc,CAAC,CAAD,CAAd,IAAqBA,cAAtB,EAAsCG,SAF1C,CAAA;aALF,CAAA,CAAA;;IASA,QAAA,IAAIL,QAAQ,KAAK9B,KAAb,IAAsB+B,SAAS,KAAK7B,MAAxC,EAAgD;cAC9CsB,aAAa,EAAA,CAAA;IACd,SAAA;IACF,OAhBgB,CAAjB,CAAA;IAiBD,KAlBU,CAAX,CAAA;IAmBAF,IAAAA,QAAQ,CAACc,OAAT,CAAiBpF,MAAM,CAAC/L,EAAxB,CAAA,CAAA;OArBF,CAAA;;MAwBA,MAAMoR,cAAc,GAAG,MAAM;IAC3B,IAAA,IAAId,cAAJ,EAAoB;UAClBpR,MAAM,CAACJ,oBAAP,CAA4BwR,cAA5B,CAAA,CAAA;IACD,KAAA;;QACD,IAAID,QAAQ,IAAIA,QAAQ,CAACgB,SAArB,IAAkCtF,MAAM,CAAC/L,EAA7C,EAAiD;IAC/CqQ,MAAAA,QAAQ,CAACgB,SAAT,CAAmBtF,MAAM,CAAC/L,EAA1B,CAAA,CAAA;IACAqQ,MAAAA,QAAQ,GAAG,IAAX,CAAA;IACD,KAAA;OAPH,CAAA;;MAUA,MAAMiB,wBAAwB,GAAG,MAAM;QACrC,IAAI,CAACvF,MAAD,IAAWA,MAAM,CAACyE,SAAlB,IAA+B,CAACzE,MAAM,CAAC0E,WAA3C,EAAwD,OAAA;QACxDL,IAAI,CAAC,mBAAD,CAAJ,CAAA;OAFF,CAAA;;MAKAlN,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAciF,cAAd,IAAgC,OAAOrS,MAAM,CAACyR,cAAd,KAAiC,WAArE,EAAkF;UAChFD,cAAc,EAAA,CAAA;IACd,MAAA,OAAA;IACD,KAAA;;IACDxR,IAAAA,MAAM,CAACrD,gBAAP,CAAwB,QAAxB,EAAkC0U,aAAlC,CAAA,CAAA;IACArR,IAAAA,MAAM,CAACrD,gBAAP,CAAwB,mBAAxB,EAA6CyV,wBAA7C,CAAA,CAAA;IACD,GAPC,CAAF,CAAA;MASApO,EAAE,CAAC,SAAD,EAAY,MAAM;QAClBkO,cAAc,EAAA,CAAA;IACdlS,IAAAA,MAAM,CAACpD,mBAAP,CAA2B,QAA3B,EAAqCyU,aAArC,CAAA,CAAA;IACArR,IAAAA,MAAM,CAACpD,mBAAP,CAA2B,mBAA3B,EAAgDwV,wBAAhD,CAAA,CAAA;IACD,GAJC,CAAF,CAAA;IAKD;;IChEc,SAASE,QAAT,CAAsD,IAAA,EAAA;MAAA,IAApC;QAAEzF,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MACnE,MAAMsB,SAAS,GAAG,EAAlB,CAAA;MACA,MAAMxS,MAAM,GAAGF,SAAS,EAAxB,CAAA;;IACA,EAAA,MAAM2S,MAAM,GAAG,UAACtW,MAAD,EAASuW,OAAT,EAA0B;IAAA,IAAA,IAAjBA,OAAiB,KAAA,KAAA,CAAA,EAAA;IAAjBA,MAAAA,OAAiB,GAAP,EAAO,CAAA;IAAA,KAAA;;QACvC,MAAMC,YAAY,GAAG3S,MAAM,CAAC4S,gBAAP,IAA2B5S,MAAM,CAAC6S,sBAAvD,CAAA;IACA,IAAA,MAAM1B,QAAQ,GAAG,IAAIwB,YAAJ,CAAkBG,SAAD,IAAe;IAC/C;IACA;IACA;IACA,MAAA,IAAIA,SAAS,CAACtW,MAAV,KAAqB,CAAzB,EAA4B;IAC1B0U,QAAAA,IAAI,CAAC,gBAAD,EAAmB4B,SAAS,CAAC,CAAD,CAA5B,CAAJ,CAAA;IACA,QAAA,OAAA;IACD,OAAA;;IACD,MAAA,MAAMC,cAAc,GAAG,SAASA,cAAT,GAA0B;IAC/C7B,QAAAA,IAAI,CAAC,gBAAD,EAAmB4B,SAAS,CAAC,CAAD,CAA5B,CAAJ,CAAA;WADF,CAAA;;UAIA,IAAI9S,MAAM,CAACN,qBAAX,EAAkC;YAChCM,MAAM,CAACN,qBAAP,CAA6BqT,cAA7B,CAAA,CAAA;IACD,OAFD,MAEO;IACL/S,QAAAA,MAAM,CAACT,UAAP,CAAkBwT,cAAlB,EAAkC,CAAlC,CAAA,CAAA;IACD,OAAA;IACF,KAjBgB,CAAjB,CAAA;IAmBA5B,IAAAA,QAAQ,CAACc,OAAT,CAAiB9V,MAAjB,EAAyB;IACvB6W,MAAAA,UAAU,EAAE,OAAON,OAAO,CAACM,UAAf,KAA8B,WAA9B,GAA4C,IAA5C,GAAmDN,OAAO,CAACM,UADhD;IAEvBC,MAAAA,SAAS,EAAE,OAAOP,OAAO,CAACO,SAAf,KAA6B,WAA7B,GAA2C,IAA3C,GAAkDP,OAAO,CAACO,SAF9C;UAGvBC,aAAa,EAAE,OAAOR,OAAO,CAACQ,aAAf,KAAiC,WAAjC,GAA+C,IAA/C,GAAsDR,OAAO,CAACQ,aAAAA;SAH/E,CAAA,CAAA;QAMAV,SAAS,CAACxR,IAAV,CAAemQ,QAAf,CAAA,CAAA;OA3BF,CAAA;;MA6BA,MAAMgC,IAAI,GAAG,MAAM;IACjB,IAAA,IAAI,CAACtG,MAAM,CAACO,MAAP,CAAc+D,QAAnB,EAA6B,OAAA;;IAC7B,IAAA,IAAItE,MAAM,CAACO,MAAP,CAAcgG,cAAlB,EAAkC;IAChC,MAAA,MAAMC,gBAAgB,GAAGxG,MAAM,CAACyG,GAAP,CAAWzO,OAAX,EAAzB,CAAA;;IACA,MAAA,KAAK,IAAItD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8R,gBAAgB,CAAC7W,MAArC,EAA6C+E,CAAC,IAAI,CAAlD,EAAqD;IACnDkR,QAAAA,MAAM,CAACY,gBAAgB,CAAC9R,CAAD,CAAjB,CAAN,CAAA;IACD,OAAA;IACF,KAPgB;;;IASjBkR,IAAAA,MAAM,CAAC5F,MAAM,CAACyG,GAAP,CAAW,CAAX,CAAD,EAAgB;IACpBL,MAAAA,SAAS,EAAEpG,MAAM,CAACO,MAAP,CAAcmG,oBAAAA;SADrB,CAAN,CATiB;;IAcjBd,IAAAA,MAAM,CAAC5F,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAD,EAAuB;IAAER,MAAAA,UAAU,EAAE,KAAA;IAAd,KAAvB,CAAN,CAAA;OAdF,CAAA;;MAgBA,MAAMS,OAAO,GAAG,MAAM;IACpBjB,IAAAA,SAAS,CAAClW,OAAV,CAAmB6U,QAAD,IAAc;IAC9BA,MAAAA,QAAQ,CAACuC,UAAT,EAAA,CAAA;SADF,CAAA,CAAA;IAGAlB,IAAAA,SAAS,CAAC/M,MAAV,CAAiB,CAAjB,EAAoB+M,SAAS,CAAChW,MAA9B,CAAA,CAAA;OAJF,CAAA;;IAOA+V,EAAAA,YAAY,CAAC;IACXpB,IAAAA,QAAQ,EAAE,KADC;IAEXiC,IAAAA,cAAc,EAAE,KAFL;IAGXG,IAAAA,oBAAoB,EAAE,KAAA;IAHX,GAAD,CAAZ,CAAA;IAKAvP,EAAAA,EAAE,CAAC,MAAD,EAASmP,IAAT,CAAF,CAAA;IACAnP,EAAAA,EAAE,CAAC,SAAD,EAAYyP,OAAZ,CAAF,CAAA;IACD;;IChED;AAEA,wBAAe;IACbzP,EAAAA,EAAE,CAACgB,MAAD,EAASQ,OAAT,EAAkBmO,QAAlB,EAA4B;QAC5B,MAAMC,IAAI,GAAG,IAAb,CAAA;QACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACtC,SAAlC,EAA6C,OAAOsC,IAAP,CAAA;IAC7C,IAAA,IAAI,OAAOpO,OAAP,KAAmB,UAAvB,EAAmC,OAAOoO,IAAP,CAAA;IACnC,IAAA,MAAME,MAAM,GAAGH,QAAQ,GAAG,SAAH,GAAe,MAAtC,CAAA;QACA3O,MAAM,CAACtC,KAAP,CAAa,GAAb,EAAkBpG,OAAlB,CAA2B4I,KAAD,IAAW;IACnC,MAAA,IAAI,CAAC0O,IAAI,CAACC,eAAL,CAAqB3O,KAArB,CAAL,EAAkC0O,IAAI,CAACC,eAAL,CAAqB3O,KAArB,IAA8B,EAA9B,CAAA;IAClC0O,MAAAA,IAAI,CAACC,eAAL,CAAqB3O,KAArB,CAA4B4O,CAAAA,MAA5B,EAAoCtO,OAApC,CAAA,CAAA;SAFF,CAAA,CAAA;IAIA,IAAA,OAAOoO,IAAP,CAAA;OAVW;;IAabG,EAAAA,IAAI,CAAC/O,MAAD,EAASQ,OAAT,EAAkBmO,QAAlB,EAA4B;QAC9B,MAAMC,IAAI,GAAG,IAAb,CAAA;QACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACtC,SAAlC,EAA6C,OAAOsC,IAAP,CAAA;IAC7C,IAAA,IAAI,OAAOpO,OAAP,KAAmB,UAAvB,EAAmC,OAAOoO,IAAP,CAAA;;IACnC,IAAA,SAASI,WAAT,GAA8B;IAC5BJ,MAAAA,IAAI,CAACtO,GAAL,CAASN,MAAT,EAAiBgP,WAAjB,CAAA,CAAA;;UACA,IAAIA,WAAW,CAACC,cAAhB,EAAgC;YAC9B,OAAOD,WAAW,CAACC,cAAnB,CAAA;IACD,OAAA;;IAJ2B,MAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAANhQ,IAAM,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;YAANA,IAAM,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;IAAA,OAAA;;IAK5BuB,MAAAA,OAAO,CAACZ,KAAR,CAAcgP,IAAd,EAAoB3P,IAApB,CAAA,CAAA;IACD,KAAA;;QACD+P,WAAW,CAACC,cAAZ,GAA6BzO,OAA7B,CAAA;QACA,OAAOoO,IAAI,CAAC5P,EAAL,CAAQgB,MAAR,EAAgBgP,WAAhB,EAA6BL,QAA7B,CAAP,CAAA;OAzBW;;IA4BbO,EAAAA,KAAK,CAAC1O,OAAD,EAAUmO,QAAV,EAAoB;QACvB,MAAMC,IAAI,GAAG,IAAb,CAAA;QACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACtC,SAAlC,EAA6C,OAAOsC,IAAP,CAAA;IAC7C,IAAA,IAAI,OAAOpO,OAAP,KAAmB,UAAvB,EAAmC,OAAOoO,IAAP,CAAA;IACnC,IAAA,MAAME,MAAM,GAAGH,QAAQ,GAAG,SAAH,GAAe,MAAtC,CAAA;;QACA,IAAIC,IAAI,CAACO,kBAAL,CAAwB3S,OAAxB,CAAgCgE,OAAhC,CAA2C,GAAA,CAA/C,EAAkD;IAChDoO,MAAAA,IAAI,CAACO,kBAAL,CAAwBL,MAAxB,EAAgCtO,OAAhC,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,OAAOoO,IAAP,CAAA;OApCW;;MAuCbQ,MAAM,CAAC5O,OAAD,EAAU;QACd,MAAMoO,IAAI,GAAG,IAAb,CAAA;QACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACtC,SAAlC,EAA6C,OAAOsC,IAAP,CAAA;IAC7C,IAAA,IAAI,CAACA,IAAI,CAACO,kBAAV,EAA8B,OAAOP,IAAP,CAAA;QAC9B,MAAMhM,KAAK,GAAGgM,IAAI,CAACO,kBAAL,CAAwB3S,OAAxB,CAAgCgE,OAAhC,CAAd,CAAA;;QACA,IAAIoC,KAAK,IAAI,CAAb,EAAgB;IACdgM,MAAAA,IAAI,CAACO,kBAAL,CAAwB1O,MAAxB,CAA+BmC,KAA/B,EAAsC,CAAtC,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,OAAOgM,IAAP,CAAA;OA/CW;;IAkDbtO,EAAAA,GAAG,CAACN,MAAD,EAASQ,OAAT,EAAkB;QACnB,MAAMoO,IAAI,GAAG,IAAb,CAAA;QACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACtC,SAAlC,EAA6C,OAAOsC,IAAP,CAAA;IAC7C,IAAA,IAAI,CAACA,IAAI,CAACC,eAAV,EAA2B,OAAOD,IAAP,CAAA;QAC3B5O,MAAM,CAACtC,KAAP,CAAa,GAAb,EAAkBpG,OAAlB,CAA2B4I,KAAD,IAAW;IACnC,MAAA,IAAI,OAAOM,OAAP,KAAmB,WAAvB,EAAoC;IAClCoO,QAAAA,IAAI,CAACC,eAAL,CAAqB3O,KAArB,IAA8B,EAA9B,CAAA;WADF,MAEO,IAAI0O,IAAI,CAACC,eAAL,CAAqB3O,KAArB,CAAJ,EAAiC;YACtC0O,IAAI,CAACC,eAAL,CAAqB3O,KAArB,CAAA,CAA4B5I,OAA5B,CAAoC,CAAC+X,YAAD,EAAezM,KAAf,KAAyB;IAC3D,UAAA,IACEyM,YAAY,KAAK7O,OAAjB,IACC6O,YAAY,CAACJ,cAAb,IAA+BI,YAAY,CAACJ,cAAb,KAAgCzO,OAFlE,EAGE;gBACAoO,IAAI,CAACC,eAAL,CAAqB3O,KAArB,EAA4BO,MAA5B,CAAmCmC,KAAnC,EAA0C,CAA1C,CAAA,CAAA;IACD,WAAA;aANH,CAAA,CAAA;IAQD,OAAA;SAZH,CAAA,CAAA;IAcA,IAAA,OAAOgM,IAAP,CAAA;OApEW;;IAuEb1C,EAAAA,IAAI,GAAU;QACZ,MAAM0C,IAAI,GAAG,IAAb,CAAA;QACA,IAAI,CAACA,IAAI,CAACC,eAAN,IAAyBD,IAAI,CAACtC,SAAlC,EAA6C,OAAOsC,IAAP,CAAA;IAC7C,IAAA,IAAI,CAACA,IAAI,CAACC,eAAV,EAA2B,OAAOD,IAAP,CAAA;IAC3B,IAAA,IAAI5O,MAAJ,CAAA;IACA,IAAA,IAAIgB,IAAJ,CAAA;IACA,IAAA,IAAIrE,OAAJ,CAAA;;IANY,IAAA,KAAA,IAAA,KAAA,GAAA,SAAA,CAAA,MAAA,EAANsC,IAAM,GAAA,IAAA,KAAA,CAAA,KAAA,CAAA,EAAA,KAAA,GAAA,CAAA,EAAA,KAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA;UAANA,IAAM,CAAA,KAAA,CAAA,GAAA,SAAA,CAAA,KAAA,CAAA,CAAA;IAAA,KAAA;;IAOZ,IAAA,IAAI,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,QAAnB,IAA+BxD,KAAK,CAACM,OAAN,CAAckD,IAAI,CAAC,CAAD,CAAlB,CAAnC,EAA2D;IACzDe,MAAAA,MAAM,GAAGf,IAAI,CAAC,CAAD,CAAb,CAAA;UACA+B,IAAI,GAAG/B,IAAI,CAACwH,KAAL,CAAW,CAAX,EAAcxH,IAAI,CAACzH,MAAnB,CAAP,CAAA;IACAmF,MAAAA,OAAO,GAAGiS,IAAV,CAAA;IACD,KAJD,MAIO;IACL5O,MAAAA,MAAM,GAAGf,IAAI,CAAC,CAAD,CAAJ,CAAQe,MAAjB,CAAA;IACAgB,MAAAA,IAAI,GAAG/B,IAAI,CAAC,CAAD,CAAJ,CAAQ+B,IAAf,CAAA;UACArE,OAAO,GAAGsC,IAAI,CAAC,CAAD,CAAJ,CAAQtC,OAAR,IAAmBiS,IAA7B,CAAA;IACD,KAAA;;QACD5N,IAAI,CAACtB,OAAL,CAAa/C,OAAb,CAAA,CAAA;IACA,IAAA,MAAM2S,WAAW,GAAG7T,KAAK,CAACM,OAAN,CAAciE,MAAd,CAAwBA,GAAAA,MAAxB,GAAiCA,MAAM,CAACtC,KAAP,CAAa,GAAb,CAArD,CAAA;IAEA4R,IAAAA,WAAW,CAAChY,OAAZ,CAAqB4I,KAAD,IAAW;UAC7B,IAAI0O,IAAI,CAACO,kBAAL,IAA2BP,IAAI,CAACO,kBAAL,CAAwB3X,MAAvD,EAA+D;IAC7DoX,QAAAA,IAAI,CAACO,kBAAL,CAAwB7X,OAAxB,CAAiC+X,YAAD,IAAkB;cAChDA,YAAY,CAACzP,KAAb,CAAmBjD,OAAnB,EAA4B,CAACuD,KAAD,EAAQ,GAAGc,IAAX,CAA5B,CAAA,CAAA;aADF,CAAA,CAAA;IAGD,OAAA;;UACD,IAAI4N,IAAI,CAACC,eAAL,IAAwBD,IAAI,CAACC,eAAL,CAAqB3O,KAArB,CAA5B,EAAyD;YACvD0O,IAAI,CAACC,eAAL,CAAqB3O,KAArB,EAA4B5I,OAA5B,CAAqC+X,YAAD,IAAkB;IACpDA,UAAAA,YAAY,CAACzP,KAAb,CAAmBjD,OAAnB,EAA4BqE,IAA5B,CAAA,CAAA;aADF,CAAA,CAAA;IAGD,OAAA;SAVH,CAAA,CAAA;IAYA,IAAA,OAAO4N,IAAP,CAAA;IACD,GAAA;;IAvGY,CAAf;;ICFe,SAASW,UAAT,GAAsB;MACnC,MAAM1H,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,IAAIgD,KAAJ,CAAA;IACA,EAAA,IAAIE,MAAJ,CAAA;IACA,EAAA,MAAMuD,GAAG,GAAGzG,MAAM,CAACyG,GAAnB,CAAA;;IACA,EAAA,IAAI,OAAOzG,MAAM,CAACO,MAAP,CAAcyC,KAArB,KAA+B,WAA/B,IAA8ChD,MAAM,CAACO,MAAP,CAAcyC,KAAd,KAAwB,IAA1E,EAAgF;IAC9EA,IAAAA,KAAK,GAAGhD,MAAM,CAACO,MAAP,CAAcyC,KAAtB,CAAA;IACD,GAFD,MAEO;IACLA,IAAAA,KAAK,GAAGyD,GAAG,CAAC,CAAD,CAAH,CAAOkB,WAAf,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,OAAO3H,MAAM,CAACO,MAAP,CAAc2C,MAArB,KAAgC,WAAhC,IAA+ClD,MAAM,CAACO,MAAP,CAAc2C,MAAd,KAAyB,IAA5E,EAAkF;IAChFA,IAAAA,MAAM,GAAGlD,MAAM,CAACO,MAAP,CAAc2C,MAAvB,CAAA;IACD,GAFD,MAEO;IACLA,IAAAA,MAAM,GAAGuD,GAAG,CAAC,CAAD,CAAH,CAAOmB,YAAhB,CAAA;IACD,GAAA;;IACD,EAAA,IAAK5E,KAAK,KAAK,CAAV,IAAehD,MAAM,CAAC6H,YAAP,EAAhB,IAA2C3E,MAAM,KAAK,CAAX,IAAgBlD,MAAM,CAAC8H,UAAP,EAA/D,EAAqF;IACnF,IAAA,OAAA;IACD,GAjBkC;;;MAoBnC9E,KAAK,GACHA,KAAK,GACL+E,QAAQ,CAACtB,GAAG,CAAC9L,GAAJ,CAAQ,cAAR,CAAA,IAA2B,CAA5B,EAA+B,EAA/B,CADR,GAEAoN,QAAQ,CAACtB,GAAG,CAAC9L,GAAJ,CAAQ,eAAR,CAA4B,IAAA,CAA7B,EAAgC,EAAhC,CAHV,CAAA;MAIAuI,MAAM,GACJA,MAAM,GACN6E,QAAQ,CAACtB,GAAG,CAAC9L,GAAJ,CAAQ,aAAR,CAAA,IAA0B,CAA3B,EAA8B,EAA9B,CADR,GAEAoN,QAAQ,CAACtB,GAAG,CAAC9L,GAAJ,CAAQ,gBAAR,CAA6B,IAAA,CAA9B,EAAiC,EAAjC,CAHV,CAAA;MAKA,IAAIqN,MAAM,CAACC,KAAP,CAAajF,KAAb,CAAJ,EAAyBA,KAAK,GAAG,CAAR,CAAA;MACzB,IAAIgF,MAAM,CAACC,KAAP,CAAa/E,MAAb,CAAJ,EAA0BA,MAAM,GAAG,CAAT,CAAA;IAE1B9T,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;QACpBgD,KADoB;QAEpBE,MAFoB;IAGpBiF,IAAAA,IAAI,EAAEnI,MAAM,CAAC6H,YAAP,EAAA,GAAwB7E,KAAxB,GAAgCE,MAAAA;OAHxC,CAAA,CAAA;IAKD;;ICnCc,SAASkF,YAAT,GAAwB;MACrC,MAAMpI,MAAM,GAAG,IAAf,CAAA;;MACA,SAASqI,iBAAT,CAA2BC,QAA3B,EAAqC;IACnC,IAAA,IAAItI,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IACzB,MAAA,OAAOS,QAAP,CAAA;IACD,KAHkC;;;QAKnC,OAAO;IACL,MAAA,OAAA,EAAS,QADJ;IAEL,MAAA,YAAA,EAAc,aAFT;IAGL,MAAA,gBAAA,EAAkB,cAHb;IAIL,MAAA,aAAA,EAAe,YAJV;IAKL,MAAA,cAAA,EAAgB,eALX;IAML,MAAA,cAAA,EAAgB,aANX;IAOL,MAAA,eAAA,EAAiB,gBAPZ;UAQL,aAAe,EAAA,cAAA;IARV,KAAA,CASLA,QATK,CAAP,CAAA;IAUD,GAAA;;IACD,EAAA,SAASC,yBAAT,CAAmCzJ,IAAnC,EAAyC0J,KAAzC,EAAgD;IAC9C,IAAA,OAAO3O,UAAU,CAACiF,IAAI,CAACxM,gBAAL,CAAsB+V,iBAAiB,CAACG,KAAD,CAAvC,CAAmD,IAAA,CAApD,CAAjB,CAAA;IACD,GAAA;;IAED,EAAA,MAAMjI,MAAM,GAAGP,MAAM,CAACO,MAAtB,CAAA;MAEA,MAAM;QAAEoG,UAAF;IAAcwB,IAAAA,IAAI,EAAEM,UAApB;IAAgCC,IAAAA,YAAY,EAAEC,GAA9C;IAAmDC,IAAAA,QAAAA;IAAnD,GAAA,GAAgE5I,MAAtE,CAAA;MACA,MAAM6I,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkBvI,MAAM,CAACuI,OAAP,CAAeC,OAAnD,CAAA;IACA,EAAA,MAAMC,oBAAoB,GAAGH,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBtZ,MAAzB,GAAkCqQ,MAAM,CAACiJ,MAAP,CAActZ,MAAtF,CAAA;IACA,EAAA,MAAMsZ,MAAM,GAAGtC,UAAU,CAAClW,QAAX,CAAqB,CAAGuP,CAAAA,EAAAA,MAAM,CAACO,MAAP,CAAc2I,UAAW,EAAjD,CAAf,CAAA;IACA,EAAA,MAAMC,YAAY,GAAGN,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBtZ,MAAzB,GAAkCsZ,MAAM,CAACtZ,MAAvE,CAAA;MACA,IAAIyZ,QAAQ,GAAG,EAAf,CAAA;MACA,MAAMC,UAAU,GAAG,EAAnB,CAAA;MACA,MAAMC,eAAe,GAAG,EAAxB,CAAA;IAEA,EAAA,IAAIC,YAAY,GAAGhJ,MAAM,CAACiJ,kBAA1B,CAAA;;IACA,EAAA,IAAI,OAAOD,YAAP,KAAwB,UAA5B,EAAwC;QACtCA,YAAY,GAAGhJ,MAAM,CAACiJ,kBAAP,CAA0BjV,IAA1B,CAA+ByL,MAA/B,CAAf,CAAA;IACD,GAAA;;IAED,EAAA,IAAIyJ,WAAW,GAAGlJ,MAAM,CAACmJ,iBAAzB,CAAA;;IACA,EAAA,IAAI,OAAOD,WAAP,KAAuB,UAA3B,EAAuC;QACrCA,WAAW,GAAGlJ,MAAM,CAACmJ,iBAAP,CAAyBnV,IAAzB,CAA8ByL,MAA9B,CAAd,CAAA;IACD,GAAA;;IAED,EAAA,MAAM2J,sBAAsB,GAAG3J,MAAM,CAACoJ,QAAP,CAAgBzZ,MAA/C,CAAA;IACA,EAAA,MAAMia,wBAAwB,GAAG5J,MAAM,CAACqJ,UAAP,CAAkB1Z,MAAnD,CAAA;IAEA,EAAA,IAAIka,YAAY,GAAGtJ,MAAM,CAACsJ,YAA1B,CAAA;MACA,IAAIC,aAAa,GAAG,CAACP,YAArB,CAAA;MACA,IAAIQ,aAAa,GAAG,CAApB,CAAA;MACA,IAAIhP,KAAK,GAAG,CAAZ,CAAA;;IACA,EAAA,IAAI,OAAO0N,UAAP,KAAsB,WAA1B,EAAuC;IACrC,IAAA,OAAA;IACD,GAAA;;IACD,EAAA,IAAI,OAAOoB,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,CAAClV,OAAb,CAAqB,GAArB,CAA6B,IAAA,CAArE,EAAwE;IACtEkV,IAAAA,YAAY,GAAIhQ,UAAU,CAACgQ,YAAY,CAAC3L,OAAb,CAAqB,GAArB,EAA0B,EAA1B,CAAD,CAAV,GAA4C,GAA7C,GAAoDuK,UAAnE,CAAA;IACD,GAAA;;IAEDzI,EAAAA,MAAM,CAACgK,WAAP,GAAqB,CAACH,YAAtB,CAzDqC;;IA4DrC,EAAA,IAAIlB,GAAJ,EAASM,MAAM,CAACtO,GAAP,CAAW;IAAEsP,IAAAA,UAAU,EAAE,EAAd;IAAkBC,IAAAA,YAAY,EAAE,EAAhC;IAAoCC,IAAAA,SAAS,EAAE,EAAA;IAA/C,GAAX,CAAT,CAAA,KACKlB,MAAM,CAACtO,GAAP,CAAW;IAAEyP,IAAAA,WAAW,EAAE,EAAf;IAAmBF,IAAAA,YAAY,EAAE,EAAjC;IAAqCC,IAAAA,SAAS,EAAE,EAAA;IAAhD,GAAX,EA7DgC;;IAgErC,EAAA,IAAI5J,MAAM,CAAC8J,cAAP,IAAyB9J,MAAM,CAAC+J,OAApC,EAA6C;QAC3C3K,cAAc,CAACK,MAAM,CAACS,SAAR,EAAmB,iCAAnB,EAAsD,EAAtD,CAAd,CAAA;QACAd,cAAc,CAACK,MAAM,CAACS,SAAR,EAAmB,gCAAnB,EAAqD,EAArD,CAAd,CAAA;IACD,GAAA;;IAED,EAAA,MAAM8J,WAAW,GAAGhK,MAAM,CAACiK,IAAP,IAAejK,MAAM,CAACiK,IAAP,CAAYC,IAAZ,GAAmB,CAAlC,IAAuCzK,MAAM,CAACwK,IAAlE,CAAA;;IACA,EAAA,IAAID,WAAJ,EAAiB;IACfvK,IAAAA,MAAM,CAACwK,IAAP,CAAYE,UAAZ,CAAuBvB,YAAvB,CAAA,CAAA;IACD,GAxEoC;;;IA2ErC,EAAA,IAAIwB,SAAJ,CAAA;MAEA,MAAMC,oBAAoB,GACxBrK,MAAM,CAACsK,aAAP,KAAyB,MAAzB,IACAtK,MAAM,CAACuK,WADP,IAEA1b,MAAM,CAACI,IAAP,CAAY+Q,MAAM,CAACuK,WAAnB,CAAgCxW,CAAAA,MAAhC,CAAwC5E,GAAD,IAAS;QAC9C,OAAO,OAAO6Q,MAAM,CAACuK,WAAP,CAAmBpb,GAAnB,CAAA,CAAwBmb,aAA/B,KAAiD,WAAxD,CAAA;OADF,CAAA,CAEGlb,MAFH,GAEY,CALd,CAAA;;IAOA,EAAA,KAAK,IAAI+E,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGyU,YAApB,EAAkCzU,CAAC,IAAI,CAAvC,EAA0C;IACxCiW,IAAAA,SAAS,GAAG,CAAZ,CAAA;IACA,IAAA,MAAMI,KAAK,GAAG9B,MAAM,CAACxN,EAAP,CAAU/G,CAAV,CAAd,CAAA;;IACA,IAAA,IAAI6V,WAAJ,EAAiB;UACfvK,MAAM,CAACwK,IAAP,CAAYQ,WAAZ,CAAwBtW,CAAxB,EAA2BqW,KAA3B,EAAkC5B,YAAlC,EAAgDd,iBAAhD,CAAA,CAAA;IACD,KAAA;;QACD,IAAI0C,KAAK,CAACpQ,GAAN,CAAU,SAAV,CAAyB,KAAA,MAA7B,EAAqC,SANG;;IAQxC,IAAA,IAAI4F,MAAM,CAACsK,aAAP,KAAyB,MAA7B,EAAqC;IACnC,MAAA,IAAID,oBAAJ,EAA0B;YACxB3B,MAAM,CAACvU,CAAD,CAAN,CAAU/D,KAAV,CAAgB0X,iBAAiB,CAAC,OAAD,CAAjC,CAAA,GAA+C,CAA/C,CAAA,CAAA;IACD,OAAA;;UACD,MAAM4C,WAAW,GAAG5Y,gBAAgB,CAAC0Y,KAAK,CAAC,CAAD,CAAN,CAApC,CAAA;UACA,MAAMG,gBAAgB,GAAGH,KAAK,CAAC,CAAD,CAAL,CAASpa,KAAT,CAAeoG,SAAxC,CAAA;UACA,MAAMoU,sBAAsB,GAAGJ,KAAK,CAAC,CAAD,CAAL,CAASpa,KAAT,CAAesN,eAA9C,CAAA;;IACA,MAAA,IAAIiN,gBAAJ,EAAsB;YACpBH,KAAK,CAAC,CAAD,CAAL,CAASpa,KAAT,CAAeoG,SAAf,GAA2B,MAA3B,CAAA;IACD,OAAA;;IACD,MAAA,IAAIoU,sBAAJ,EAA4B;YAC1BJ,KAAK,CAAC,CAAD,CAAL,CAASpa,KAAT,CAAesN,eAAf,GAAiC,MAAjC,CAAA;IACD,OAAA;;UACD,IAAIsC,MAAM,CAAC6K,YAAX,EAAyB;IACvBT,QAAAA,SAAS,GAAG3K,MAAM,CAAC6H,YAAP,EAAA,GAAwBkD,KAAK,CAACtR,UAAN,CAAiB,IAAjB,CAAxB,GAAiDsR,KAAK,CAACjR,WAAN,CAAkB,IAAlB,CAA7D,CAAA;IACD,OAFD,MAEO;IACL;IACA,QAAA,MAAMkJ,KAAK,GAAGuF,yBAAyB,CAAC0C,WAAD,EAAc,OAAd,CAAvC,CAAA;IACA,QAAA,MAAMI,WAAW,GAAG9C,yBAAyB,CAAC0C,WAAD,EAAc,cAAd,CAA7C,CAAA;IACA,QAAA,MAAMK,YAAY,GAAG/C,yBAAyB,CAAC0C,WAAD,EAAc,eAAd,CAA9C,CAAA;IACA,QAAA,MAAMhB,UAAU,GAAG1B,yBAAyB,CAAC0C,WAAD,EAAc,aAAd,CAA5C,CAAA;IACA,QAAA,MAAMb,WAAW,GAAG7B,yBAAyB,CAAC0C,WAAD,EAAc,cAAd,CAA7C,CAAA;IACA,QAAA,MAAMM,SAAS,GAAGN,WAAW,CAAC3Y,gBAAZ,CAA6B,YAA7B,CAAlB,CAAA;;IACA,QAAA,IAAIiZ,SAAS,IAAIA,SAAS,KAAK,YAA/B,EAA6C;IAC3CZ,UAAAA,SAAS,GAAG3H,KAAK,GAAGiH,UAAR,GAAqBG,WAAjC,CAAA;IACD,SAFD,MAEO;cACL,MAAM;gBAAEzC,WAAF;IAAe/N,YAAAA,WAAAA;eAAgBmR,GAAAA,KAAK,CAAC,CAAD,CAA1C,CAAA;IACAJ,UAAAA,SAAS,GACP3H,KAAK,GACLqI,WADA,GAEAC,YAFA,GAGArB,UAHA,GAIAG,WAJA,IAKCxQ,WAAW,GAAG+N,WALf,CADF,CAAA;IAOD,SAAA;IACF,OAAA;;IACD,MAAA,IAAIuD,gBAAJ,EAAsB;YACpBH,KAAK,CAAC,CAAD,CAAL,CAASpa,KAAT,CAAeoG,SAAf,GAA2BmU,gBAA3B,CAAA;IACD,OAAA;;IACD,MAAA,IAAIC,sBAAJ,EAA4B;YAC1BJ,KAAK,CAAC,CAAD,CAAL,CAASpa,KAAT,CAAesN,eAAf,GAAiCkN,sBAAjC,CAAA;IACD,OAAA;;UACD,IAAI5K,MAAM,CAAC6K,YAAX,EAAyBT,SAAS,GAAGzJ,IAAI,CAACsK,KAAL,CAAWb,SAAX,CAAZ,CAAA;IAC1B,KA3CD,MA2CO;IACLA,MAAAA,SAAS,GAAG,CAAClC,UAAU,GAAG,CAAClI,MAAM,CAACsK,aAAP,GAAuB,CAAxB,IAA6BhB,YAA3C,IAA2DtJ,MAAM,CAACsK,aAA9E,CAAA;UACA,IAAItK,MAAM,CAAC6K,YAAX,EAAyBT,SAAS,GAAGzJ,IAAI,CAACsK,KAAL,CAAWb,SAAX,CAAZ,CAAA;;IAEzB,MAAA,IAAI1B,MAAM,CAACvU,CAAD,CAAV,EAAe;IACbuU,QAAAA,MAAM,CAACvU,CAAD,CAAN,CAAU/D,KAAV,CAAgB0X,iBAAiB,CAAC,OAAD,CAAjC,CAA+C,GAAA,CAAA,EAAEsC,SAAU,CAA3D,EAAA,CAAA,CAAA;IACD,OAAA;IACF,KAAA;;IACD,IAAA,IAAI1B,MAAM,CAACvU,CAAD,CAAV,EAAe;IACbuU,MAAAA,MAAM,CAACvU,CAAD,CAAN,CAAU+W,eAAV,GAA4Bd,SAA5B,CAAA;IACD,KAAA;;QACDrB,eAAe,CAACnV,IAAhB,CAAqBwW,SAArB,CAAA,CAAA;;QAEA,IAAIpK,MAAM,CAAC8J,cAAX,EAA2B;UACzBP,aAAa,GAAGA,aAAa,GAAGa,SAAS,GAAG,CAA5B,GAAgCZ,aAAa,GAAG,CAAhD,GAAoDF,YAApE,CAAA;IACA,MAAA,IAAIE,aAAa,KAAK,CAAlB,IAAuBrV,CAAC,KAAK,CAAjC,EACEoV,aAAa,GAAGA,aAAa,GAAGrB,UAAU,GAAG,CAA7B,GAAiCoB,YAAjD,CAAA;IACF,MAAA,IAAInV,CAAC,KAAK,CAAV,EAAaoV,aAAa,GAAGA,aAAa,GAAGrB,UAAU,GAAG,CAA7B,GAAiCoB,YAAjD,CAAA;UACb,IAAI3I,IAAI,CAACwK,GAAL,CAAS5B,aAAT,CAA0B,GAAA,CAAA,GAAI,IAAlC,EAAwCA,aAAa,GAAG,CAAhB,CAAA;UACxC,IAAIvJ,MAAM,CAAC6K,YAAX,EAAyBtB,aAAa,GAAG5I,IAAI,CAACsK,KAAL,CAAW1B,aAAX,CAAhB,CAAA;IACzB,MAAA,IAAI/O,KAAK,GAAGwF,MAAM,CAACoL,cAAf,KAAkC,CAAtC,EAAyCvC,QAAQ,CAACjV,IAAT,CAAc2V,aAAd,CAAA,CAAA;UACzCT,UAAU,CAAClV,IAAX,CAAgB2V,aAAhB,CAAA,CAAA;IACD,KATD,MASO;UACL,IAAIvJ,MAAM,CAAC6K,YAAX,EAAyBtB,aAAa,GAAG5I,IAAI,CAACsK,KAAL,CAAW1B,aAAX,CAAhB,CAAA;IACzB,MAAA,IACE,CAAC/O,KAAK,GAAGmG,IAAI,CAACE,GAAL,CAASpB,MAAM,CAACO,MAAP,CAAcqL,kBAAvB,EAA2C7Q,KAA3C,CAAT,IACEiF,MAAM,CAACO,MAAP,CAAcoL,cADhB,KAEA,CAHF,EAKEvC,QAAQ,CAACjV,IAAT,CAAc2V,aAAd,CAAA,CAAA;UACFT,UAAU,CAAClV,IAAX,CAAgB2V,aAAhB,CAAA,CAAA;IACAA,MAAAA,aAAa,GAAGA,aAAa,GAAGa,SAAhB,GAA4Bd,YAA5C,CAAA;IACD,KAAA;;IAED7J,IAAAA,MAAM,CAACgK,WAAP,IAAsBW,SAAS,GAAGd,YAAlC,CAAA;IAEAE,IAAAA,aAAa,GAAGY,SAAhB,CAAA;IAEA5P,IAAAA,KAAK,IAAI,CAAT,CAAA;IACD,GAAA;;IACDiF,EAAAA,MAAM,CAACgK,WAAP,GAAqB9I,IAAI,CAACC,GAAL,CAASnB,MAAM,CAACgK,WAAhB,EAA6BvB,UAA7B,IAA2CgB,WAAhE,CAAA;;IAEA,EAAA,IAAId,GAAG,IAAIC,QAAP,KAAoBrI,MAAM,CAACsL,MAAP,KAAkB,OAAlB,IAA6BtL,MAAM,CAACsL,MAAP,KAAkB,WAAnE,CAAJ,EAAqF;QACnFlF,UAAU,CAAChM,GAAX,CAAe;UAAEqI,KAAK,EAAG,GAAEhD,MAAM,CAACgK,WAAP,GAAqBzJ,MAAM,CAACsJ,YAAa,CAAA,EAAA,CAAA;SAApE,CAAA,CAAA;IACD,GAAA;;MACD,IAAItJ,MAAM,CAACuL,cAAX,EAA2B;QACzBnF,UAAU,CAAChM,GAAX,CAAe;IACb,MAAA,CAAC0N,iBAAiB,CAAC,OAAD,CAAlB,GAA+B,CAAA,EAAErI,MAAM,CAACgK,WAAP,GAAqBzJ,MAAM,CAACsJ,YAAa,CAAA,EAAA,CAAA;SAD5E,CAAA,CAAA;IAGD,GAAA;;IAED,EAAA,IAAIU,WAAJ,EAAiB;QACfvK,MAAM,CAACwK,IAAP,CAAYuB,iBAAZ,CAA8BpB,SAA9B,EAAyCvB,QAAzC,EAAmDf,iBAAnD,CAAA,CAAA;IACD,GA5LoC;;;IA+LrC,EAAA,IAAI,CAAC9H,MAAM,CAAC8J,cAAZ,EAA4B;QAC1B,MAAM2B,aAAa,GAAG,EAAtB,CAAA;;IACA,IAAA,KAAK,IAAItX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0U,QAAQ,CAACzZ,MAA7B,EAAqC+E,CAAC,IAAI,CAA1C,EAA6C;IAC3C,MAAA,IAAIuX,cAAc,GAAG7C,QAAQ,CAAC1U,CAAD,CAA7B,CAAA;UACA,IAAI6L,MAAM,CAAC6K,YAAX,EAAyBa,cAAc,GAAG/K,IAAI,CAACsK,KAAL,CAAWS,cAAX,CAAjB,CAAA;;UACzB,IAAI7C,QAAQ,CAAC1U,CAAD,CAAR,IAAesL,MAAM,CAACgK,WAAP,GAAqBvB,UAAxC,EAAoD;YAClDuD,aAAa,CAAC7X,IAAd,CAAmB8X,cAAnB,CAAA,CAAA;IACD,OAAA;IACF,KAAA;;IACD7C,IAAAA,QAAQ,GAAG4C,aAAX,CAAA;;QAEA,IACE9K,IAAI,CAACsK,KAAL,CAAWxL,MAAM,CAACgK,WAAP,GAAqBvB,UAAhC,CAAA,GAA8CvH,IAAI,CAACsK,KAAL,CAAWpC,QAAQ,CAACA,QAAQ,CAACzZ,MAAT,GAAkB,CAAnB,CAAnB,CAA9C,GACA,CAFF,EAGE;IACAyZ,MAAAA,QAAQ,CAACjV,IAAT,CAAc6L,MAAM,CAACgK,WAAP,GAAqBvB,UAAnC,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MACD,IAAIW,QAAQ,CAACzZ,MAAT,KAAoB,CAAxB,EAA2ByZ,QAAQ,GAAG,CAAC,CAAD,CAAX,CAAA;;IAE3B,EAAA,IAAI7I,MAAM,CAACsJ,YAAP,KAAwB,CAA5B,EAA+B;IAC7B,IAAA,MAAMna,GAAG,GAAGsQ,MAAM,CAAC6H,YAAP,EAAA,IAAyBc,GAAzB,GAA+B,YAA/B,GAA8CN,iBAAiB,CAAC,aAAD,CAA3E,CAAA;IACAY,IAAAA,MAAM,CACH3U,MADH,CACU,CAAC4X,CAAD,EAAIC,UAAJ,KAAmB;IACzB,MAAA,IAAI,CAAC5L,MAAM,CAAC+J,OAAZ,EAAqB,OAAO,IAAP,CAAA;;IACrB,MAAA,IAAI6B,UAAU,KAAKlD,MAAM,CAACtZ,MAAP,GAAgB,CAAnC,EAAsC;IACpC,QAAA,OAAO,KAAP,CAAA;IACD,OAAA;;IACD,MAAA,OAAO,IAAP,CAAA;SANJ,CAAA,CAQGgL,GARH,CAQO;UAAE,CAACjL,GAAD,GAAQ,CAAA,EAAEma,YAAa,CAAA,EAAA,CAAA;SARhC,CAAA,CAAA;IASD,GAAA;;IAED,EAAA,IAAItJ,MAAM,CAAC8J,cAAP,IAAyB9J,MAAM,CAAC6L,oBAApC,EAA0D;QACxD,IAAIC,aAAa,GAAG,CAApB,CAAA;IACA/C,IAAAA,eAAe,CAAC7Z,OAAhB,CAAyB6c,cAAD,IAAoB;IAC1CD,MAAAA,aAAa,IAAIC,cAAc,IAAI/L,MAAM,CAACsJ,YAAP,GAAsBtJ,MAAM,CAACsJ,YAA7B,GAA4C,CAAhD,CAA/B,CAAA;SADF,CAAA,CAAA;QAGAwC,aAAa,IAAI9L,MAAM,CAACsJ,YAAxB,CAAA;IACA,IAAA,MAAM0C,OAAO,GAAGF,aAAa,GAAG5D,UAAhC,CAAA;IACAW,IAAAA,QAAQ,GAAGA,QAAQ,CAACzT,GAAT,CAAc6W,IAAD,IAAU;IAChC,MAAA,IAAIA,IAAI,GAAG,CAAX,EAAc,OAAO,CAACjD,YAAR,CAAA;IACd,MAAA,IAAIiD,IAAI,GAAGD,OAAX,EAAoB,OAAOA,OAAO,GAAG9C,WAAjB,CAAA;IACpB,MAAA,OAAO+C,IAAP,CAAA;IACD,KAJU,CAAX,CAAA;IAKD,GAAA;;MAED,IAAIjM,MAAM,CAACkM,wBAAX,EAAqC;QACnC,IAAIJ,aAAa,GAAG,CAApB,CAAA;IACA/C,IAAAA,eAAe,CAAC7Z,OAAhB,CAAyB6c,cAAD,IAAoB;IAC1CD,MAAAA,aAAa,IAAIC,cAAc,IAAI/L,MAAM,CAACsJ,YAAP,GAAsBtJ,MAAM,CAACsJ,YAA7B,GAA4C,CAAhD,CAA/B,CAAA;SADF,CAAA,CAAA;QAGAwC,aAAa,IAAI9L,MAAM,CAACsJ,YAAxB,CAAA;;QACA,IAAIwC,aAAa,GAAG5D,UAApB,EAAgC;IAC9B,MAAA,MAAMiE,eAAe,GAAG,CAACjE,UAAU,GAAG4D,aAAd,IAA+B,CAAvD,CAAA;IACAjD,MAAAA,QAAQ,CAAC3Z,OAAT,CAAiB,CAAC+c,IAAD,EAAOG,SAAP,KAAqB;IACpCvD,QAAAA,QAAQ,CAACuD,SAAD,CAAR,GAAsBH,IAAI,GAAGE,eAA7B,CAAA;WADF,CAAA,CAAA;IAGArD,MAAAA,UAAU,CAAC5Z,OAAX,CAAmB,CAAC+c,IAAD,EAAOG,SAAP,KAAqB;IACtCtD,QAAAA,UAAU,CAACsD,SAAD,CAAV,GAAwBH,IAAI,GAAGE,eAA/B,CAAA;WADF,CAAA,CAAA;IAGD,KAAA;IACF,GAAA;;IAEDtd,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;QACpBiJ,MADoB;QAEpBG,QAFoB;QAGpBC,UAHoB;IAIpBC,IAAAA,eAAAA;OAJF,CAAA,CAAA;;IAOA,EAAA,IAAI/I,MAAM,CAAC8J,cAAP,IAAyB9J,MAAM,CAAC+J,OAAhC,IAA2C,CAAC/J,MAAM,CAAC6L,oBAAvD,EAA6E;IAC3EzM,IAAAA,cAAc,CAACK,MAAM,CAACS,SAAR,EAAmB,iCAAnB,EAAuD,CAAE,EAAA,CAAC2I,QAAQ,CAAC,CAAD,CAAI,IAAtE,CAAd,CAAA;QACAzJ,cAAc,CACZK,MAAM,CAACS,SADK,EAEZ,gCAFY,EAGX,CAAA,EAAET,MAAM,CAACmI,IAAP,GAAc,CAAd,GAAkBmB,eAAe,CAACA,eAAe,CAAC3Z,MAAhB,GAAyB,CAA1B,CAAf,GAA8C,CAAE,CAAA,EAAA,CAHzD,CAAd,CAAA;QAKA,MAAMid,aAAa,GAAG,CAAC5M,MAAM,CAACoJ,QAAP,CAAgB,CAAhB,CAAvB,CAAA;QACA,MAAMyD,eAAe,GAAG,CAAC7M,MAAM,CAACqJ,UAAP,CAAkB,CAAlB,CAAzB,CAAA;IACArJ,IAAAA,MAAM,CAACoJ,QAAP,GAAkBpJ,MAAM,CAACoJ,QAAP,CAAgBzT,GAAhB,CAAqBmX,CAAD,IAAOA,CAAC,GAAGF,aAA/B,CAAlB,CAAA;IACA5M,IAAAA,MAAM,CAACqJ,UAAP,GAAoBrJ,MAAM,CAACqJ,UAAP,CAAkB1T,GAAlB,CAAuBmX,CAAD,IAAOA,CAAC,GAAGD,eAAjC,CAApB,CAAA;IACD,GAAA;;MAED,IAAI1D,YAAY,KAAKH,oBAArB,EAA2C;QACzChJ,MAAM,CAACqE,IAAP,CAAY,oBAAZ,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI+E,QAAQ,CAACzZ,MAAT,KAAoBga,sBAAxB,EAAgD;QAC9C,IAAI3J,MAAM,CAACO,MAAP,CAAcwM,aAAlB,EAAiC/M,MAAM,CAACgN,aAAP,EAAA,CAAA;QACjChN,MAAM,CAACqE,IAAP,CAAY,sBAAZ,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAIgF,UAAU,CAAC1Z,MAAX,KAAsBia,wBAA1B,EAAoD;QAClD5J,MAAM,CAACqE,IAAP,CAAY,wBAAZ,CAAA,CAAA;IACD,GAAA;;MAED,IAAI9D,MAAM,CAAC0M,mBAAX,EAAgC;IAC9BjN,IAAAA,MAAM,CAACkN,kBAAP,EAAA,CAAA;IACD,GAAA;;MAED,IAAI,CAACrE,SAAD,IAAc,CAACtI,MAAM,CAAC+J,OAAtB,KAAkC/J,MAAM,CAACsL,MAAP,KAAkB,OAAlB,IAA6BtL,MAAM,CAACsL,MAAP,KAAkB,MAAjF,CAAJ,EAA8F;IAC5F,IAAA,MAAMsB,mBAAmB,GAAI,CAAA,EAAE5M,MAAM,CAAC6M,sBAAuB,CAA7D,eAAA,CAAA,CAAA;QACA,MAAMC,0BAA0B,GAAGrN,MAAM,CAACyG,GAAP,CAAWpQ,QAAX,CAAoB8W,mBAApB,CAAnC,CAAA;;IACA,IAAA,IAAIhE,YAAY,IAAI5I,MAAM,CAAC+M,uBAA3B,EAAoD;UAClD,IAAI,CAACD,0BAAL,EAAiCrN,MAAM,CAACyG,GAAP,CAAWjR,QAAX,CAAoB2X,mBAApB,CAAA,CAAA;SADnC,MAEO,IAAIE,0BAAJ,EAAgC;IACrCrN,MAAAA,MAAM,CAACyG,GAAP,CAAWzQ,WAAX,CAAuBmX,mBAAvB,CAAA,CAAA;IACD,KAAA;IACF,GAAA;IACF;;IC3Sc,SAASI,gBAAT,CAA0B/M,KAA1B,EAAiC;MAC9C,MAAMR,MAAM,GAAG,IAAf,CAAA;MACA,MAAMwN,YAAY,GAAG,EAArB,CAAA;IACA,EAAA,MAAM3E,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA1D,CAAA;MACA,IAAIhE,SAAS,GAAG,CAAhB,CAAA;IACA,EAAA,IAAIrQ,CAAJ,CAAA;;IACA,EAAA,IAAI,OAAO8L,KAAP,KAAiB,QAArB,EAA+B;QAC7BR,MAAM,CAACyN,aAAP,CAAqBjN,KAArB,CAAA,CAAA;IACD,GAFD,MAEO,IAAIA,KAAK,KAAK,IAAd,EAAoB;IACzBR,IAAAA,MAAM,CAACyN,aAAP,CAAqBzN,MAAM,CAACO,MAAP,CAAcC,KAAnC,CAAA,CAAA;IACD,GAAA;;MAED,MAAMkN,eAAe,GAAI3S,KAAD,IAAW;IACjC,IAAA,IAAI8N,SAAJ,EAAe;UACb,OAAO7I,MAAM,CAACiJ,MAAP,CAAc3U,MAAd,CACJL,EAAD,IAAQ8T,QAAQ,CAAC9T,EAAE,CAACyC,YAAH,CAAgB,yBAAhB,CAAD,EAA6C,EAA7C,CAAR,KAA6DqE,KADhE,CAEL,CAAA,CAFK,CAAP,CAAA;IAGD,KAAA;;QACD,OAAOiF,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBV,KAAjB,CAAwB,CAAA,CAAxB,CAAP,CAAA;IACD,GAPD,CAZ8C;;;IAqB9C,EAAA,IAAIiF,MAAM,CAACO,MAAP,CAAcsK,aAAd,KAAgC,MAAhC,IAA0C7K,MAAM,CAACO,MAAP,CAAcsK,aAAd,GAA8B,CAA5E,EAA+E;IAC7E,IAAA,IAAI7K,MAAM,CAACO,MAAP,CAAc8J,cAAlB,EAAkC;IAChC,MAAA,CAACrK,MAAM,CAAC2N,aAAP,IAAwB3Y,CAAC,CAAC,EAAD,CAA1B,EAAgC8F,IAAhC,CAAsCiQ,KAAD,IAAW;YAC9CyC,YAAY,CAACrZ,IAAb,CAAkB4W,KAAlB,CAAA,CAAA;WADF,CAAA,CAAA;IAGD,KAJD,MAIO;UACL,KAAKrW,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGwM,IAAI,CAAC0M,IAAL,CAAU5N,MAAM,CAACO,MAAP,CAAcsK,aAAxB,CAAhB,EAAwDnW,CAAC,IAAI,CAA7D,EAAgE;IAC9D,QAAA,MAAMqG,KAAK,GAAGiF,MAAM,CAAC6N,WAAP,GAAqBnZ,CAAnC,CAAA;YACA,IAAIqG,KAAK,GAAGiF,MAAM,CAACiJ,MAAP,CAActZ,MAAtB,IAAgC,CAACkZ,SAArC,EAAgD,MAAA;IAChD2E,QAAAA,YAAY,CAACrZ,IAAb,CAAkBuZ,eAAe,CAAC3S,KAAD,CAAjC,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAZD,MAYO;QACLyS,YAAY,CAACrZ,IAAb,CAAkBuZ,eAAe,CAAC1N,MAAM,CAAC6N,WAAR,CAAjC,CAAA,CAAA;IACD,GAnC6C;;;IAsC9C,EAAA,KAAKnZ,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG8Y,YAAY,CAAC7d,MAA7B,EAAqC+E,CAAC,IAAI,CAA1C,EAA6C;IAC3C,IAAA,IAAI,OAAO8Y,YAAY,CAAC9Y,CAAD,CAAnB,KAA2B,WAA/B,EAA4C;IAC1C,MAAA,MAAMwO,MAAM,GAAGsK,YAAY,CAAC9Y,CAAD,CAAZ,CAAgBqF,YAA/B,CAAA;IACAgL,MAAAA,SAAS,GAAG7B,MAAM,GAAG6B,SAAT,GAAqB7B,MAArB,GAA8B6B,SAA1C,CAAA;IACD,KAAA;IACF,GA3C6C;;;IA8C9C,EAAA,IAAIA,SAAS,IAAIA,SAAS,KAAK,CAA/B,EAAkC/E,MAAM,CAAC2G,UAAP,CAAkBhM,GAAlB,CAAsB,QAAtB,EAAiC,CAAA,EAAEoK,SAAU,CAA7C,EAAA,CAAA,CAAA,CAAA;IACnC;;ICjDc,SAASmI,kBAAT,GAA8B;MAC3C,MAAMlN,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,MAAMiJ,MAAM,GAAGjJ,MAAM,CAACiJ,MAAtB,CAAA;;IACA,EAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;QACzCuU,MAAM,CAACvU,CAAD,CAAN,CAAUoZ,iBAAV,GAA8B9N,MAAM,CAAC6H,YAAP,EAC1BoB,GAAAA,MAAM,CAACvU,CAAD,CAAN,CAAUqZ,UADgB,GAE1B9E,MAAM,CAACvU,CAAD,CAAN,CAAUsZ,SAFd,CAAA;IAGD,GAAA;IACF;;ICNc,SAASC,oBAAT,CAA8B7N,SAA9B,EAAyE;IAAA,EAAA,IAA3CA,SAA2C,KAAA,KAAA,CAAA,EAAA;IAA3CA,IAAAA,SAA2C,GAA9B,IAAA,IAAQ,IAAKA,CAAAA,SAAd,IAA4B,CAAG,CAAA;IAAA,GAAA;;MACtF,MAAMJ,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAtB,CAAA;MAEA,MAAM;QAAE0I,MAAF;IAAUP,IAAAA,YAAY,EAAEC,GAAxB;IAA6BS,IAAAA,QAAAA;IAA7B,GAAA,GAA0CpJ,MAAhD,CAAA;IAEA,EAAA,IAAIiJ,MAAM,CAACtZ,MAAP,KAAkB,CAAtB,EAAyB,OAAA;IACzB,EAAA,IAAI,OAAOsZ,MAAM,CAAC,CAAD,CAAN,CAAU6E,iBAAjB,KAAuC,WAA3C,EAAwD9N,MAAM,CAACkN,kBAAP,EAAA,CAAA;MAExD,IAAIgB,YAAY,GAAG,CAAC9N,SAApB,CAAA;IACA,EAAA,IAAIuI,GAAJ,EAASuF,YAAY,GAAG9N,SAAf,CAV6E;;IAatF6I,EAAAA,MAAM,CAACjT,WAAP,CAAmBuK,MAAM,CAAC4N,iBAA1B,CAAA,CAAA;MAEAnO,MAAM,CAACoO,oBAAP,GAA8B,EAA9B,CAAA;MACApO,MAAM,CAAC2N,aAAP,GAAuB,EAAvB,CAAA;;IAEA,EAAA,KAAK,IAAIjZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,IAAA,MAAMqW,KAAK,GAAG9B,MAAM,CAACvU,CAAD,CAApB,CAAA;IACA,IAAA,IAAI2Z,WAAW,GAAGtD,KAAK,CAAC+C,iBAAxB,CAAA;;IACA,IAAA,IAAIvN,MAAM,CAAC+J,OAAP,IAAkB/J,MAAM,CAAC8J,cAA7B,EAA6C;IAC3CgE,MAAAA,WAAW,IAAIpF,MAAM,CAAC,CAAD,CAAN,CAAU6E,iBAAzB,CAAA;IACD,KAAA;;QAED,MAAMQ,aAAa,GACjB,CAACJ,YAAY,IAAI3N,MAAM,CAAC8J,cAAP,GAAwBrK,MAAM,CAACuO,YAAP,EAAxB,GAAgD,CAApD,CAAZ,GAAqEF,WAAtE,KACCtD,KAAK,CAACU,eAAN,GAAwBlL,MAAM,CAACsJ,YADhC,CADF,CAAA;IAGA,IAAA,MAAM2E,qBAAqB,GACzB,CAACN,YAAY,GACX9E,QAAQ,CAAC,CAAD,CADT,IAEE7I,MAAM,CAAC8J,cAAP,GAAwBrK,MAAM,CAACuO,YAAP,EAAxB,GAAgD,CAFlD,CAAA,GAGCF,WAHF,KAICtD,KAAK,CAACU,eAAN,GAAwBlL,MAAM,CAACsJ,YAJhC,CADF,CAAA;IAMA,IAAA,MAAM4E,WAAW,GAAG,EAAEP,YAAY,GAAGG,WAAjB,CAApB,CAAA;QACA,MAAMK,UAAU,GAAGD,WAAW,GAAGzO,MAAM,CAACsJ,eAAP,CAAuB5U,CAAvB,CAAjC,CAAA;IACA,IAAA,MAAMia,SAAS,GACZF,WAAW,IAAI,CAAf,IAAoBA,WAAW,GAAGzO,MAAM,CAACmI,IAAP,GAAc,CAAjD,IACCuG,UAAU,GAAG,CAAb,IAAkBA,UAAU,IAAI1O,MAAM,CAACmI,IADxC,IAECsG,WAAW,IAAI,CAAf,IAAoBC,UAAU,IAAI1O,MAAM,CAACmI,IAH5C,CAAA;;IAIA,IAAA,IAAIwG,SAAJ,EAAe;IACb3O,MAAAA,MAAM,CAAC2N,aAAP,CAAqBxZ,IAArB,CAA0B4W,KAA1B,CAAA,CAAA;IACA/K,MAAAA,MAAM,CAACoO,oBAAP,CAA4Bja,IAA5B,CAAiCO,CAAjC,CAAA,CAAA;UACAuU,MAAM,CAACxN,EAAP,CAAU/G,CAAV,EAAac,QAAb,CAAsB+K,MAAM,CAAC4N,iBAA7B,CAAA,CAAA;IACD,KAAA;;QACDpD,KAAK,CAAC9J,QAAN,GAAiB0H,GAAG,GAAG,CAAC2F,aAAJ,GAAoBA,aAAxC,CAAA;QACAvD,KAAK,CAAC6D,gBAAN,GAAyBjG,GAAG,GAAG,CAAC6F,qBAAJ,GAA4BA,qBAAxD,CAAA;IACD,GAAA;;MACDxO,MAAM,CAAC2N,aAAP,GAAuB3Y,CAAC,CAACgL,MAAM,CAAC2N,aAAR,CAAxB,CAAA;IACD;;ICnDc,SAASkB,cAAT,CAAwBzO,SAAxB,EAAmC;MAChD,MAAMJ,MAAM,GAAG,IAAf,CAAA;;IACA,EAAA,IAAI,OAAOI,SAAP,KAAqB,WAAzB,EAAsC;QACpC,MAAM0O,UAAU,GAAG9O,MAAM,CAAC0I,YAAP,GAAsB,CAAC,CAAvB,GAA2B,CAA9C,CADoC;;IAGpCtI,IAAAA,SAAS,GAAIJ,MAAM,IAAIA,MAAM,CAACI,SAAjB,IAA8BJ,MAAM,CAACI,SAAP,GAAmB0O,UAAlD,IAAiE,CAA7E,CAAA;IACD,GAAA;;IACD,EAAA,MAAMvO,MAAM,GAAGP,MAAM,CAACO,MAAtB,CAAA;MACA,MAAMwO,cAAc,GAAG/O,MAAM,CAACgP,YAAP,EAAwBhP,GAAAA,MAAM,CAACuO,YAAP,EAA/C,CAAA;MACA,IAAI;QAAEtN,QAAF;QAAYgO,WAAZ;IAAyBC,IAAAA,KAAAA;IAAzB,GAAA,GAAmClP,MAAvC,CAAA;MACA,MAAMmP,YAAY,GAAGF,WAArB,CAAA;MACA,MAAMG,MAAM,GAAGF,KAAf,CAAA;;MACA,IAAIH,cAAc,KAAK,CAAvB,EAA0B;IACxB9N,IAAAA,QAAQ,GAAG,CAAX,CAAA;IACAgO,IAAAA,WAAW,GAAG,IAAd,CAAA;IACAC,IAAAA,KAAK,GAAG,IAAR,CAAA;IACD,GAJD,MAIO;QACLjO,QAAQ,GAAG,CAACb,SAAS,GAAGJ,MAAM,CAACuO,YAAP,EAAb,IAAsCQ,cAAjD,CAAA;QACAE,WAAW,GAAGhO,QAAQ,IAAI,CAA1B,CAAA;QACAiO,KAAK,GAAGjO,QAAQ,IAAI,CAApB,CAAA;IACD,GAAA;;IACD7R,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;QACpBiB,QADoB;QAEpBgO,WAFoB;IAGpBC,IAAAA,KAAAA;OAHF,CAAA,CAAA;IAMA,EAAA,IAAI3O,MAAM,CAAC0M,mBAAP,IAA+B1M,MAAM,CAAC8J,cAAP,IAAyB9J,MAAM,CAAC8O,UAAnE,EACErP,MAAM,CAACiO,oBAAP,CAA4B7N,SAA5B,CAAA,CAAA;;IAEF,EAAA,IAAI6O,WAAW,IAAI,CAACE,YAApB,EAAkC;QAChCnP,MAAM,CAACqE,IAAP,CAAY,uBAAZ,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI6K,KAAK,IAAI,CAACE,MAAd,EAAsB;QACpBpP,MAAM,CAACqE,IAAP,CAAY,iBAAZ,CAAA,CAAA;IACD,GAAA;;MACD,IAAK8K,YAAY,IAAI,CAACF,WAAlB,IAAmCG,MAAM,IAAI,CAACF,KAAlD,EAA0D;QACxDlP,MAAM,CAACqE,IAAP,CAAY,UAAZ,CAAA,CAAA;IACD,GAAA;;IAEDrE,EAAAA,MAAM,CAACqE,IAAP,CAAY,UAAZ,EAAwBpD,QAAxB,CAAA,CAAA;IACD;;ICzCc,SAASqO,mBAAT,GAA+B;MAC5C,MAAMtP,MAAM,GAAG,IAAf,CAAA;MAEA,MAAM;QAAEiJ,MAAF;QAAU1I,MAAV;QAAkBoG,UAAlB;QAA8BkH,WAA9B;IAA2C0B,IAAAA,SAAAA;IAA3C,GAAA,GAAyDvP,MAA/D,CAAA;MACA,MAAM6I,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkBvI,MAAM,CAACuI,OAAP,CAAeC,OAAnD,CAAA;MAEAE,MAAM,CAACjT,WAAP,CACG,CAAEuK,EAAAA,MAAM,CAACiP,gBAAiB,CAAGjP,CAAAA,EAAAA,MAAM,CAACkP,cAAe,CAAGlP,CAAAA,EAAAA,MAAM,CAACmP,cAAe,CAAGnP,CAAAA,EAAAA,MAAM,CAACoP,yBAA0B,CAAGpP,CAAAA,EAAAA,MAAM,CAACqP,uBAAwB,CAAGrP,CAAAA,EAAAA,MAAM,CAACsP,uBAAwB,CADvL,CAAA,CAAA,CAAA;IAIA,EAAA,IAAIC,WAAJ,CAAA;;IACA,EAAA,IAAIjH,SAAJ,EAAe;IACbiH,IAAAA,WAAW,GAAG9P,MAAM,CAAC2G,UAAP,CAAkB9J,IAAlB,CACX,CAAG0D,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAA4B2E,0BAAAA,EAAAA,WAAY,IADlD,CAAd,CAAA;IAGD,GAJD,MAIO;IACLiC,IAAAA,WAAW,GAAG7G,MAAM,CAACxN,EAAP,CAAUoS,WAAV,CAAd,CAAA;IACD,GAjB2C;;;IAoB5CiC,EAAAA,WAAW,CAACta,QAAZ,CAAqB+K,MAAM,CAACiP,gBAA5B,CAAA,CAAA;;MAEA,IAAIjP,MAAM,CAACwP,IAAX,EAAiB;IACf;QACA,IAAID,WAAW,CAACzZ,QAAZ,CAAqBkK,MAAM,CAACyP,mBAA5B,CAAJ,EAAsD;IACpDrJ,MAAAA,UAAU,CACPlW,QADH,CAEK,IAAG8P,MAAM,CAAC2I,UAAW,CAAQ3I,MAAAA,EAAAA,MAAM,CAACyP,mBAAoB,CAAA,2BAAA,EAA6BT,SAAU,CAFpG,EAAA,CAAA,CAAA,CAIG/Z,QAJH,CAIY+K,MAAM,CAACoP,yBAJnB,CAAA,CAAA;IAKD,KAND,MAMO;IACLhJ,MAAAA,UAAU,CACPlW,QADH,CAEK,IAAG8P,MAAM,CAAC2I,UAAW,CAAG3I,CAAAA,EAAAA,MAAM,CAACyP,mBAAoB,CAAA,0BAAA,EAA4BT,SAAU,CAF9F,EAAA,CAAA,CAAA,CAIG/Z,QAJH,CAIY+K,MAAM,CAACoP,yBAJnB,CAAA,CAAA;IAKD,KAAA;IACF,GArC2C;;;MAuC5C,IAAIM,SAAS,GAAGH,WAAW,CACxB1T,OADa,CACJ,CAAA,CAAA,EAAGmE,MAAM,CAAC2I,UAAW,EADjB,CAEbzN,CAAAA,EAFa,CAEV,CAFU,CAAA,CAGbjG,QAHa,CAGJ+K,MAAM,CAACkP,cAHH,CAAhB,CAAA;;MAIA,IAAIlP,MAAM,CAACwP,IAAP,IAAeE,SAAS,CAACtgB,MAAV,KAAqB,CAAxC,EAA2C;IACzCsgB,IAAAA,SAAS,GAAGhH,MAAM,CAACxN,EAAP,CAAU,CAAV,CAAZ,CAAA;IACAwU,IAAAA,SAAS,CAACza,QAAV,CAAmB+K,MAAM,CAACkP,cAA1B,CAAA,CAAA;IACD,GA9C2C;;;MAgD5C,IAAIS,SAAS,GAAGJ,WAAW,CACxBtT,OADa,CACJ,CAAA,CAAA,EAAG+D,MAAM,CAAC2I,UAAW,EADjB,CAEbzN,CAAAA,EAFa,CAEV,CAFU,CAAA,CAGbjG,QAHa,CAGJ+K,MAAM,CAACmP,cAHH,CAAhB,CAAA;;MAIA,IAAInP,MAAM,CAACwP,IAAP,IAAeG,SAAS,CAACvgB,MAAV,KAAqB,CAAxC,EAA2C;IACzCugB,IAAAA,SAAS,GAAGjH,MAAM,CAACxN,EAAP,CAAU,CAAC,CAAX,CAAZ,CAAA;IACAyU,IAAAA,SAAS,CAAC1a,QAAV,CAAmB+K,MAAM,CAACmP,cAA1B,CAAA,CAAA;IACD,GAAA;;MACD,IAAInP,MAAM,CAACwP,IAAX,EAAiB;IACf;QACA,IAAIE,SAAS,CAAC5Z,QAAV,CAAmBkK,MAAM,CAACyP,mBAA1B,CAAJ,EAAoD;UAClDrJ,UAAU,CACPlW,QADH,CAEK,CAAG8P,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAAA,MAAA,EACpB3I,MAAM,CAACyP,mBACR,CAAA,2BAAA,EAA6BC,SAAS,CAAC1Z,IAAV,CAAe,yBAAf,CAA0C,CAAA,EAAA,CAJ5E,EAMGf,QANH,CAMY+K,MAAM,CAACqP,uBANnB,CAAA,CAAA;IAOD,KARD,MAQO;UACLjJ,UAAU,CACPlW,QADH,CAEK,CAAG8P,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAAA,CAAA,EACpB3I,MAAM,CAACyP,mBACR,CAAA,0BAAA,EAA4BC,SAAS,CAAC1Z,IAAV,CAAe,yBAAf,CAA0C,CAAA,EAAA,CAJ3E,EAMGf,QANH,CAMY+K,MAAM,CAACqP,uBANnB,CAAA,CAAA;IAOD,KAAA;;QACD,IAAIM,SAAS,CAAC7Z,QAAV,CAAmBkK,MAAM,CAACyP,mBAA1B,CAAJ,EAAoD;UAClDrJ,UAAU,CACPlW,QADH,CAEK,CAAG8P,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAAA,MAAA,EACpB3I,MAAM,CAACyP,mBACR,CAAA,2BAAA,EAA6BE,SAAS,CAAC3Z,IAAV,CAAe,yBAAf,CAA0C,CAAA,EAAA,CAJ5E,EAMGf,QANH,CAMY+K,MAAM,CAACsP,uBANnB,CAAA,CAAA;IAOD,KARD,MAQO;UACLlJ,UAAU,CACPlW,QADH,CAEK,CAAG8P,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAAA,CAAA,EACpB3I,MAAM,CAACyP,mBACR,CAAA,0BAAA,EAA4BE,SAAS,CAAC3Z,IAAV,CAAe,yBAAf,CAA0C,CAAA,EAAA,CAJ3E,EAMGf,QANH,CAMY+K,MAAM,CAACsP,uBANnB,CAAA,CAAA;IAOD,KAAA;IACF,GAAA;;IACD7P,EAAAA,MAAM,CAACmQ,iBAAP,EAAA,CAAA;IACD;;IC9Fc,SAASC,iBAAT,CAA2BC,cAA3B,EAA2C;MACxD,MAAMrQ,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,MAAMI,SAAS,GAAGJ,MAAM,CAAC0I,YAAP,GAAsB1I,MAAM,CAACI,SAA7B,GAAyC,CAACJ,MAAM,CAACI,SAAnE,CAAA;MACA,MAAM;QACJiJ,UADI;QAEJD,QAFI;QAGJ7I,MAHI;IAIJsN,IAAAA,WAAW,EAAEyC,aAJT;IAKJf,IAAAA,SAAS,EAAEgB,iBALP;IAMJ5D,IAAAA,SAAS,EAAE6D,iBAAAA;IANP,GAAA,GAOFxQ,MAPJ,CAAA;MAQA,IAAI6N,WAAW,GAAGwC,cAAlB,CAAA;IACA,EAAA,IAAI1D,SAAJ,CAAA;;IACA,EAAA,IAAI,OAAOkB,WAAP,KAAuB,WAA3B,EAAwC;IACtC,IAAA,KAAK,IAAInZ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2U,UAAU,CAAC1Z,MAA/B,EAAuC+E,CAAC,IAAI,CAA5C,EAA+C;UAC7C,IAAI,OAAO2U,UAAU,CAAC3U,CAAC,GAAG,CAAL,CAAjB,KAA6B,WAAjC,EAA8C;IAC5C,QAAA,IACE0L,SAAS,IAAIiJ,UAAU,CAAC3U,CAAD,CAAvB,IACA0L,SAAS,GAAGiJ,UAAU,CAAC3U,CAAC,GAAG,CAAL,CAAV,GAAoB,CAAC2U,UAAU,CAAC3U,CAAC,GAAG,CAAL,CAAV,GAAoB2U,UAAU,CAAC3U,CAAD,CAA/B,IAAsC,CAFxE,EAGE;IACAmZ,UAAAA,WAAW,GAAGnZ,CAAd,CAAA;IACD,SALD,MAKO,IAAI0L,SAAS,IAAIiJ,UAAU,CAAC3U,CAAD,CAAvB,IAA8B0L,SAAS,GAAGiJ,UAAU,CAAC3U,CAAC,GAAG,CAAL,CAAxD,EAAiE;cACtEmZ,WAAW,GAAGnZ,CAAC,GAAG,CAAlB,CAAA;IACD,SAAA;WARH,MASO,IAAI0L,SAAS,IAAIiJ,UAAU,CAAC3U,CAAD,CAA3B,EAAgC;IACrCmZ,QAAAA,WAAW,GAAGnZ,CAAd,CAAA;IACD,OAAA;IACF,KAdqC;;;QAgBtC,IAAI6L,MAAM,CAACkQ,mBAAX,EAAgC;UAC9B,IAAI5C,WAAW,GAAG,CAAd,IAAmB,OAAOA,WAAP,KAAuB,WAA9C,EAA2DA,WAAW,GAAG,CAAd,CAAA;IAC5D,KAAA;IACF,GAAA;;IACD,EAAA,IAAIzE,QAAQ,CAACzU,OAAT,CAAiByL,SAAjB,CAAA,IAA+B,CAAnC,EAAsC;IACpCuM,IAAAA,SAAS,GAAGvD,QAAQ,CAACzU,OAAT,CAAiByL,SAAjB,CAAZ,CAAA;IACD,GAFD,MAEO;QACL,MAAMsQ,IAAI,GAAGxP,IAAI,CAACE,GAAL,CAASb,MAAM,CAACqL,kBAAhB,EAAoCiC,WAApC,CAAb,CAAA;IACAlB,IAAAA,SAAS,GAAG+D,IAAI,GAAGxP,IAAI,CAACsK,KAAL,CAAW,CAACqC,WAAW,GAAG6C,IAAf,IAAuBnQ,MAAM,CAACoL,cAAzC,CAAnB,CAAA;IACD,GAAA;;IACD,EAAA,IAAIgB,SAAS,IAAIvD,QAAQ,CAACzZ,MAA1B,EAAkCgd,SAAS,GAAGvD,QAAQ,CAACzZ,MAAT,GAAkB,CAA9B,CAAA;;MAClC,IAAIke,WAAW,KAAKyC,aAApB,EAAmC;QACjC,IAAI3D,SAAS,KAAK6D,iBAAlB,EAAqC;UACnCxQ,MAAM,CAAC2M,SAAP,GAAmBA,SAAnB,CAAA;UACA3M,MAAM,CAACqE,IAAP,CAAY,iBAAZ,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,OAAA;IACD,GA9CuD;;;IAiDxD,EAAA,MAAMkL,SAAS,GAAGxH,QAAQ,CACxB/H,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBoS,WAAjB,CAAA,CAA8BtX,IAA9B,CAAmC,yBAAnC,KAAiEsX,WADzC,EAExB,EAFwB,CAA1B,CAAA;IAKAze,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;QACpB2M,SADoB;QAEpB4C,SAFoB;QAGpBe,aAHoB;IAIpBzC,IAAAA,WAAAA;OAJF,CAAA,CAAA;MAMA7N,MAAM,CAACqE,IAAP,CAAY,mBAAZ,CAAA,CAAA;MACArE,MAAM,CAACqE,IAAP,CAAY,iBAAZ,CAAA,CAAA;;MACA,IAAIkM,iBAAiB,KAAKhB,SAA1B,EAAqC;QACnCvP,MAAM,CAACqE,IAAP,CAAY,iBAAZ,CAAA,CAAA;IACD,GAAA;;MACD,IAAIrE,MAAM,CAAC0E,WAAP,IAAsB1E,MAAM,CAACO,MAAP,CAAcoQ,kBAAxC,EAA4D;QAC1D3Q,MAAM,CAACqE,IAAP,CAAY,aAAZ,CAAA,CAAA;IACD,GAAA;IACF;;IClEc,SAASuM,kBAAT,CAA4BlZ,CAA5B,EAA+B;MAC5C,MAAMsI,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAtB,CAAA;IACA,EAAA,MAAMwK,KAAK,GAAG/V,CAAC,CAAC0C,CAAD,CAAD,CAAKkF,OAAL,CAAc,CAAA,CAAA,EAAG2D,MAAM,CAAC2I,UAAW,CAAnC,CAAA,CAAA,CAAsC,CAAtC,CAAd,CAAA;MACA,IAAI2H,UAAU,GAAG,KAAjB,CAAA;IACA,EAAA,IAAI1E,UAAJ,CAAA;;IAEA,EAAA,IAAIpB,KAAJ,EAAW;IACT,IAAA,KAAK,IAAIrW,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsL,MAAM,CAACiJ,MAAP,CAActZ,MAAlC,EAA0C+E,CAAC,IAAI,CAA/C,EAAkD;IAChD,MAAA,IAAIsL,MAAM,CAACiJ,MAAP,CAAcvU,CAAd,CAAA,KAAqBqW,KAAzB,EAAgC;IAC9B8F,QAAAA,UAAU,GAAG,IAAb,CAAA;IACA1E,QAAAA,UAAU,GAAGzX,CAAb,CAAA;IACA,QAAA,MAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;MAED,IAAIqW,KAAK,IAAI8F,UAAb,EAAyB;QACvB7Q,MAAM,CAAC8Q,YAAP,GAAsB/F,KAAtB,CAAA;;QACA,IAAI/K,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA5C,EAAqD;IACnD/I,MAAAA,MAAM,CAAC+Q,YAAP,GAAsBhJ,QAAQ,CAAC/S,CAAC,CAAC+V,KAAD,CAAD,CAASxU,IAAT,CAAc,yBAAd,CAAD,EAA2C,EAA3C,CAA9B,CAAA;IACD,KAFD,MAEO;UACLyJ,MAAM,CAAC+Q,YAAP,GAAsB5E,UAAtB,CAAA;IACD,KAAA;IACF,GAPD,MAOO;QACLnM,MAAM,CAAC8Q,YAAP,GAAsBna,SAAtB,CAAA;QACAqJ,MAAM,CAAC+Q,YAAP,GAAsBpa,SAAtB,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;IACD,EAAA,IACE4J,MAAM,CAACyQ,mBAAP,IACAhR,MAAM,CAAC+Q,YAAP,KAAwBpa,SADxB,IAEAqJ,MAAM,CAAC+Q,YAAP,KAAwB/Q,MAAM,CAAC6N,WAHjC,EAIE;IACA7N,IAAAA,MAAM,CAACgR,mBAAP,EAAA,CAAA;IACD,GAAA;IACF;;AC5BD,iBAAe;MACbtJ,UADa;MAEbU,YAFa;MAGbmF,gBAHa;MAIbL,kBAJa;MAKbe,oBALa;MAMbY,cANa;MAObS,mBAPa;MAQbc,iBARa;IASbQ,EAAAA,kBAAAA;IATa,CAAf;;ICRe,SAASK,kBAAT,CAA4BtT,IAA5B,EAAoE;IAAA,EAAA,IAAxCA,IAAwC,KAAA,KAAA,CAAA,EAAA;IAAxCA,IAAAA,IAAwC,GAAjC,IAAKkK,CAAAA,YAAL,EAAsB,GAAA,GAAtB,GAA4B,GAAK,CAAA;IAAA,GAAA;;MACjF,MAAM7H,MAAM,GAAG,IAAf,CAAA;MAEA,MAAM;QAAEO,MAAF;IAAUmI,IAAAA,YAAY,EAAEC,GAAxB;QAA6BvI,SAA7B;IAAwCuG,IAAAA,UAAAA;IAAxC,GAAA,GAAuD3G,MAA7D,CAAA;;MAEA,IAAIO,MAAM,CAAC2Q,gBAAX,EAA6B;IAC3B,IAAA,OAAOvI,GAAG,GAAG,CAACvI,SAAJ,GAAgBA,SAA1B,CAAA;IACD,GAAA;;MACD,IAAIG,MAAM,CAAC+J,OAAX,EAAoB;IAClB,IAAA,OAAOlK,SAAP,CAAA;IACD,GAAA;;MAED,IAAI+Q,gBAAgB,GAAGzT,YAAY,CAACiJ,UAAU,CAAC,CAAD,CAAX,EAAgBhJ,IAAhB,CAAnC,CAAA;IACA,EAAA,IAAIgL,GAAJ,EAASwI,gBAAgB,GAAG,CAACA,gBAApB,CAAA;MAET,OAAOA,gBAAgB,IAAI,CAA3B,CAAA;IACD;;IClBc,SAASC,YAAT,CAAsBhR,SAAtB,EAAiCiR,YAAjC,EAA+C;MAC5D,MAAMrR,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;IAAE0I,IAAAA,YAAY,EAAEC,GAAhB;QAAqBpI,MAArB;QAA6BoG,UAA7B;QAAyClG,SAAzC;IAAoDQ,IAAAA,QAAAA;IAApD,GAAA,GAAiEjB,MAAvE,CAAA;MACA,IAAIsR,CAAC,GAAG,CAAR,CAAA;MACA,IAAIC,CAAC,GAAG,CAAR,CAAA;MACA,MAAMC,CAAC,GAAG,CAAV,CAAA;;IAEA,EAAA,IAAIxR,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IACzByJ,IAAAA,CAAC,GAAG3I,GAAG,GAAG,CAACvI,SAAJ,GAAgBA,SAAvB,CAAA;IACD,GAFD,MAEO;IACLmR,IAAAA,CAAC,GAAGnR,SAAJ,CAAA;IACD,GAAA;;MAED,IAAIG,MAAM,CAAC6K,YAAX,EAAyB;IACvBkG,IAAAA,CAAC,GAAGpQ,IAAI,CAACsK,KAAL,CAAW8F,CAAX,CAAJ,CAAA;IACAC,IAAAA,CAAC,GAAGrQ,IAAI,CAACsK,KAAL,CAAW+F,CAAX,CAAJ,CAAA;IACD,GAAA;;MAED,IAAIhR,MAAM,CAAC+J,OAAX,EAAoB;IAClB7J,IAAAA,SAAS,CAACT,MAAM,CAAC6H,YAAP,EAAwB,GAAA,YAAxB,GAAuC,WAAxC,CAAT,GAAgE7H,MAAM,CAAC6H,YAAP,EAAA,GAAwB,CAACyJ,CAAzB,GAA6B,CAACC,CAA9F,CAAA;IACD,GAFD,MAEO,IAAI,CAAChR,MAAM,CAAC2Q,gBAAZ,EAA8B;QACnCvK,UAAU,CAAC5P,SAAX,CAAsB,CAAA,YAAA,EAAcua,CAAE,CAAMC,IAAAA,EAAAA,CAAE,CAAMC,IAAAA,EAAAA,CAAE,CAAtD,GAAA,CAAA,CAAA,CAAA;IACD,GAAA;;IACDxR,EAAAA,MAAM,CAACyR,iBAAP,GAA2BzR,MAAM,CAACI,SAAlC,CAAA;MACAJ,MAAM,CAACI,SAAP,GAAmBJ,MAAM,CAAC6H,YAAP,EAAA,GAAwByJ,CAAxB,GAA4BC,CAA/C,CAxB4D;;IA2B5D,EAAA,IAAIG,WAAJ,CAAA;MACA,MAAM3C,cAAc,GAAG/O,MAAM,CAACgP,YAAP,EAAwBhP,GAAAA,MAAM,CAACuO,YAAP,EAA/C,CAAA;;MACA,IAAIQ,cAAc,KAAK,CAAvB,EAA0B;IACxB2C,IAAAA,WAAW,GAAG,CAAd,CAAA;IACD,GAFD,MAEO;QACLA,WAAW,GAAG,CAACtR,SAAS,GAAGJ,MAAM,CAACuO,YAAP,EAAb,IAAsCQ,cAApD,CAAA;IACD,GAAA;;MACD,IAAI2C,WAAW,KAAKzQ,QAApB,EAA8B;QAC5BjB,MAAM,CAAC6O,cAAP,CAAsBzO,SAAtB,CAAA,CAAA;IACD,GAAA;;MAEDJ,MAAM,CAACqE,IAAP,CAAY,cAAZ,EAA4BrE,MAAM,CAACI,SAAnC,EAA8CiR,YAA9C,CAAA,CAAA;IACD;;ICvCc,SAAS9C,YAAT,GAAwB;IACrC,EAAA,OAAO,CAAC,IAAA,CAAKnF,QAAL,CAAc,CAAd,CAAR,CAAA;IACD;;ICFc,SAAS4F,YAAT,GAAwB;MACrC,OAAO,CAAC,IAAK5F,CAAAA,QAAL,CAAc,IAAA,CAAKA,QAAL,CAAczZ,MAAd,GAAuB,CAArC,CAAR,CAAA;IACD;;ICAc,SAASgiB,WAAT,CACbvR,SADa,EAEbI,KAFa,EAGboR,YAHa,EAIbC,eAJa,EAKbC,QALa,EAMb;IAAA,EAAA,IALA1R,SAKA,KAAA,KAAA,CAAA,EAAA;IALAA,IAAAA,SAKA,GALY,CAKZ,CAAA;IAAA,GAAA;;IAAA,EAAA,IAJAI,KAIA,KAAA,KAAA,CAAA,EAAA;IAJAA,IAAAA,KAIA,GAJQ,IAAA,CAAKD,MAAL,CAAYC,KAIpB,CAAA;IAAA,GAAA;;IAAA,EAAA,IAHAoR,YAGA,KAAA,KAAA,CAAA,EAAA;IAHAA,IAAAA,YAGA,GAHe,IAGf,CAAA;IAAA,GAAA;;IAAA,EAAA,IAFAC,eAEA,KAAA,KAAA,CAAA,EAAA;IAFAA,IAAAA,eAEA,GAFkB,IAElB,CAAA;IAAA,GAAA;;MACA,MAAM7R,MAAM,GAAG,IAAf,CAAA;MAEA,MAAM;QAAEO,MAAF;IAAUE,IAAAA,SAAAA;IAAV,GAAA,GAAwBT,MAA9B,CAAA;;IAEA,EAAA,IAAIA,MAAM,CAAC+R,SAAP,IAAoBxR,MAAM,CAACyR,8BAA/B,EAA+D;IAC7D,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;IAED,EAAA,MAAMzD,YAAY,GAAGvO,MAAM,CAACuO,YAAP,EAArB,CAAA;IACA,EAAA,MAAMS,YAAY,GAAGhP,MAAM,CAACgP,YAAP,EAArB,CAAA;IACA,EAAA,IAAIiD,YAAJ,CAAA;MACA,IAAIJ,eAAe,IAAIzR,SAAS,GAAGmO,YAAnC,EAAiD0D,YAAY,GAAG1D,YAAf,CAAjD,KACK,IAAIsD,eAAe,IAAIzR,SAAS,GAAG4O,YAAnC,EAAiDiD,YAAY,GAAGjD,YAAf,CAAjD,KACAiD,YAAY,GAAG7R,SAAf,CAdL;;MAiBAJ,MAAM,CAAC6O,cAAP,CAAsBoD,YAAtB,CAAA,CAAA;;MAEA,IAAI1R,MAAM,CAAC+J,OAAX,EAAoB;IAClB,IAAA,MAAM4H,GAAG,GAAGlS,MAAM,CAAC6H,YAAP,EAAZ,CAAA;;QACA,IAAIrH,KAAK,KAAK,CAAd,EAAiB;UACfC,SAAS,CAACyR,GAAG,GAAG,YAAH,GAAkB,WAAtB,CAAT,GAA8C,CAACD,YAA/C,CAAA;IACD,KAFD,MAEO;IACL,MAAA,IAAI,CAACjS,MAAM,CAAC2B,OAAP,CAAeE,YAApB,EAAkC;IAChC9B,QAAAA,oBAAoB,CAAC;cAAEC,MAAF;cAAUC,cAAc,EAAE,CAACgS,YAA3B;IAAyC/R,UAAAA,IAAI,EAAEgS,GAAG,GAAG,MAAH,GAAY,KAAA;IAA9D,SAAD,CAApB,CAAA;IACA,QAAA,OAAO,IAAP,CAAA;IACD,OAAA;;UACDzR,SAAS,CAACgB,QAAV,CAAmB;IACjB,QAAA,CAACyQ,GAAG,GAAG,MAAH,GAAY,KAAhB,GAAwB,CAACD,YADR;IAEjBE,QAAAA,QAAQ,EAAE,QAAA;WAFZ,CAAA,CAAA;IAID,KAAA;;IACD,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MAED,IAAI3R,KAAK,KAAK,CAAd,EAAiB;QACfR,MAAM,CAACyN,aAAP,CAAqB,CAArB,CAAA,CAAA;QACAzN,MAAM,CAACoR,YAAP,CAAoBa,YAApB,CAAA,CAAA;;IACA,IAAA,IAAIL,YAAJ,EAAkB;IAChB5R,MAAAA,MAAM,CAACqE,IAAP,CAAY,uBAAZ,EAAqC7D,KAArC,EAA4CsR,QAA5C,CAAA,CAAA;UACA9R,MAAM,CAACqE,IAAP,CAAY,eAAZ,CAAA,CAAA;IACD,KAAA;IACF,GAPD,MAOO;QACLrE,MAAM,CAACyN,aAAP,CAAqBjN,KAArB,CAAA,CAAA;QACAR,MAAM,CAACoR,YAAP,CAAoBa,YAApB,CAAA,CAAA;;IACA,IAAA,IAAIL,YAAJ,EAAkB;IAChB5R,MAAAA,MAAM,CAACqE,IAAP,CAAY,uBAAZ,EAAqC7D,KAArC,EAA4CsR,QAA5C,CAAA,CAAA;UACA9R,MAAM,CAACqE,IAAP,CAAY,iBAAZ,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAI,CAACrE,MAAM,CAAC+R,SAAZ,EAAuB;UACrB/R,MAAM,CAAC+R,SAAP,GAAmB,IAAnB,CAAA;;IACA,MAAA,IAAI,CAAC/R,MAAM,CAACoS,iCAAZ,EAA+C;IAC7CpS,QAAAA,MAAM,CAACoS,iCAAP,GAA2C,SAAS9Y,aAAT,CAAuB5B,CAAvB,EAA0B;IACnE,UAAA,IAAI,CAACsI,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;IACjC,UAAA,IAAI/M,CAAC,CAACpI,MAAF,KAAa,IAAjB,EAAuB,OAAA;cACvB0Q,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB5W,mBAArB,CACE,eADF,EAEEiQ,MAAM,CAACoS,iCAFT,CAAA,CAAA;cAIApS,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB5W,mBAArB,CACE,qBADF,EAEEiQ,MAAM,CAACoS,iCAFT,CAAA,CAAA;cAIApS,MAAM,CAACoS,iCAAP,GAA2C,IAA3C,CAAA;cACA,OAAOpS,MAAM,CAACoS,iCAAd,CAAA;;IACA,UAAA,IAAIR,YAAJ,EAAkB;gBAChB5R,MAAM,CAACqE,IAAP,CAAY,eAAZ,CAAA,CAAA;IACD,WAAA;aAfH,CAAA;IAiBD,OAAA;;UACDrE,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB7W,gBAArB,CACE,eADF,EAEEkQ,MAAM,CAACoS,iCAFT,CAAA,CAAA;UAIApS,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB7W,gBAArB,CACE,qBADF,EAEEkQ,MAAM,CAACoS,iCAFT,CAAA,CAAA;IAID,KAAA;IACF,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD;;ACrFD,oBAAe;oBACb1U,kBADa;MAEb0T,YAFa;MAGb7C,YAHa;MAIbS,YAJa;IAKb2C,EAAAA,WAAAA;IALa,CAAf;;ICNe,SAASlE,aAAT,CAAuBxW,QAAvB,EAAiCoa,YAAjC,EAA+C;MAC5D,MAAMrR,MAAM,GAAG,IAAf,CAAA;;IAEA,EAAA,IAAI,CAACA,MAAM,CAACO,MAAP,CAAc+J,OAAnB,EAA4B;IAC1BtK,IAAAA,MAAM,CAAC2G,UAAP,CAAkB3P,UAAlB,CAA6BC,QAA7B,CAAA,CAAA;IACD,GAAA;;IAED+I,EAAAA,MAAM,CAACqE,IAAP,CAAY,eAAZ,EAA6BpN,QAA7B,EAAuCoa,YAAvC,CAAA,CAAA;IACD;;ICRc,SAASgB,cAAT,CAAmE,IAAA,EAAA;MAAA,IAA3C;QAAErS,MAAF;QAAU4R,YAAV;QAAwBU,SAAxB;IAAmCC,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MAChF,MAAM;QAAE1E,WAAF;IAAeyC,IAAAA,aAAAA;IAAf,GAAA,GAAiCtQ,MAAvC,CAAA;MACA,IAAIY,GAAG,GAAG0R,SAAV,CAAA;;MACA,IAAI,CAAC1R,GAAL,EAAU;QACR,IAAIiN,WAAW,GAAGyC,aAAlB,EAAiC1P,GAAG,GAAG,MAAN,CAAjC,KACK,IAAIiN,WAAW,GAAGyC,aAAlB,EAAiC1P,GAAG,GAAG,MAAN,CAAjC,KACAA,GAAG,GAAG,OAAN,CAAA;IACN,GAAA;;IAEDZ,EAAAA,MAAM,CAACqE,IAAP,CAAa,CAAA,UAAA,EAAYkO,IAAK,CAA9B,CAAA,CAAA,CAAA;;IAEA,EAAA,IAAIX,YAAY,IAAI/D,WAAW,KAAKyC,aAApC,EAAmD;QACjD,IAAI1P,GAAG,KAAK,OAAZ,EAAqB;IACnBZ,MAAAA,MAAM,CAACqE,IAAP,CAAa,CAAA,oBAAA,EAAsBkO,IAAK,CAAxC,CAAA,CAAA,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACDvS,IAAAA,MAAM,CAACqE,IAAP,CAAa,CAAA,qBAAA,EAAuBkO,IAAK,CAAzC,CAAA,CAAA,CAAA;;QACA,IAAI3R,GAAG,KAAK,MAAZ,EAAoB;IAClBZ,MAAAA,MAAM,CAACqE,IAAP,CAAa,CAAA,mBAAA,EAAqBkO,IAAK,CAAvC,CAAA,CAAA,CAAA;IACD,KAFD,MAEO;IACLvS,MAAAA,MAAM,CAACqE,IAAP,CAAa,CAAA,mBAAA,EAAqBkO,IAAK,CAAvC,CAAA,CAAA,CAAA;IACD,KAAA;IACF,GAAA;IACF;;ICrBc,SAASC,eAAT,CAAyBZ,YAAzB,EAA8CU,SAA9C,EAAyD;IAAA,EAAA,IAAhCV,YAAgC,KAAA,KAAA,CAAA,EAAA;IAAhCA,IAAAA,YAAgC,GAAjB,IAAiB,CAAA;IAAA,GAAA;;MACtE,MAAM5R,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;IAAEO,IAAAA,MAAAA;IAAF,GAAA,GAAaP,MAAnB,CAAA;MACA,IAAIO,MAAM,CAAC+J,OAAX,EAAoB,OAAA;;MACpB,IAAI/J,MAAM,CAAC8O,UAAX,EAAuB;IACrBrP,IAAAA,MAAM,CAACuN,gBAAP,EAAA,CAAA;IACD,GAAA;;IAED8E,EAAAA,cAAc,CAAC;QAAErS,MAAF;QAAU4R,YAAV;QAAwBU,SAAxB;IAAmCC,IAAAA,IAAI,EAAE,OAAA;IAAzC,GAAD,CAAd,CAAA;IACD;;ICTc,SAASjZ,aAAT,CAAuBsY,YAAvB,EAA4CU,SAA5C,EAAuD;IAAA,EAAA,IAAhCV,YAAgC,KAAA,KAAA,CAAA,EAAA;IAAhCA,IAAAA,YAAgC,GAAjB,IAAiB,CAAA;IAAA,GAAA;;MACpE,MAAM5R,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;IAAEO,IAAAA,MAAAA;IAAF,GAAA,GAAaP,MAAnB,CAAA;MACAA,MAAM,CAAC+R,SAAP,GAAmB,KAAnB,CAAA;MACA,IAAIxR,MAAM,CAAC+J,OAAX,EAAoB,OAAA;MACpBtK,MAAM,CAACyN,aAAP,CAAqB,CAArB,CAAA,CAAA;IAEA4E,EAAAA,cAAc,CAAC;QAAErS,MAAF;QAAU4R,YAAV;QAAwBU,SAAxB;IAAmCC,IAAAA,IAAI,EAAE,KAAA;IAAzC,GAAD,CAAd,CAAA;IACD;;ACND,qBAAe;MACb9E,aADa;MAEb+E,eAFa;IAGblZ,EAAAA,aAAAA;IAHa,CAAf;;ICFe,SAASmZ,OAAT,CACb1X,KADa,EAEbyF,KAFa,EAGboR,YAHa,EAIbE,QAJa,EAKbY,OALa,EAMb;IAAA,EAAA,IALA3X,KAKA,KAAA,KAAA,CAAA,EAAA;IALAA,IAAAA,KAKA,GALQ,CAKR,CAAA;IAAA,GAAA;;IAAA,EAAA,IAJAyF,KAIA,KAAA,KAAA,CAAA,EAAA;IAJAA,IAAAA,KAIA,GAJQ,IAAA,CAAKD,MAAL,CAAYC,KAIpB,CAAA;IAAA,GAAA;;IAAA,EAAA,IAHAoR,YAGA,KAAA,KAAA,CAAA,EAAA;IAHAA,IAAAA,YAGA,GAHe,IAGf,CAAA;IAAA,GAAA;;MACA,IAAI,OAAO7W,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAAlD,EAA4D;IAC1D,IAAA,MAAM,IAAI4X,KAAJ,CACH,2EAA0E,OAAO5X,KAAM,UADpF,CAAN,CAAA;IAGD,GAAA;;IAED,EAAA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;IAC7B;IACJ;IACA;IACA;IACI,IAAA,MAAM6X,aAAa,GAAG7K,QAAQ,CAAChN,KAAD,EAAQ,EAAR,CAA9B,CAAA;IAEA;IACJ;IACA;IACA;IACA;;IACI,IAAA,MAAM8X,aAAa,GAAGC,QAAQ,CAACF,aAAD,CAA9B,CAAA;;QAEA,IAAI,CAACC,aAAL,EAAoB;IAClB,MAAA,MAAM,IAAIF,KAAJ,CACH,CAAqE5X,mEAAAA,EAAAA,KAAM,UADxE,CAAN,CAAA;IAGD,KAlB4B;IAqB7B;;;IACAA,IAAAA,KAAK,GAAG6X,aAAR,CAAA;IACD,GAAA;;MAED,MAAM5S,MAAM,GAAG,IAAf,CAAA;MACA,IAAImM,UAAU,GAAGpR,KAAjB,CAAA;IACA,EAAA,IAAIoR,UAAU,GAAG,CAAjB,EAAoBA,UAAU,GAAG,CAAb,CAAA;MAEpB,MAAM;QACJ5L,MADI;QAEJ6I,QAFI;QAGJC,UAHI;QAIJiH,aAJI;QAKJzC,WALI;IAMJnF,IAAAA,YAAY,EAAEC,GANV;QAOJlI,SAPI;IAQJsI,IAAAA,OAAAA;IARI,GAAA,GASF/I,MATJ,CAAA;;IAWA,EAAA,IACGA,MAAM,CAAC+R,SAAP,IAAoBxR,MAAM,CAACyR,8BAA5B,IACC,CAACjJ,OAAD,IAAY,CAAC+I,QAAb,IAAyB,CAACY,OAF7B,EAGE;IACA,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;IAED,EAAA,MAAMhC,IAAI,GAAGxP,IAAI,CAACE,GAAL,CAASpB,MAAM,CAACO,MAAP,CAAcqL,kBAAvB,EAA2CO,UAA3C,CAAb,CAAA;IACA,EAAA,IAAIQ,SAAS,GAAG+D,IAAI,GAAGxP,IAAI,CAACsK,KAAL,CAAW,CAACW,UAAU,GAAGuE,IAAd,IAAsB1Q,MAAM,CAACO,MAAP,CAAcoL,cAA/C,CAAvB,CAAA;IACA,EAAA,IAAIgB,SAAS,IAAIvD,QAAQ,CAACzZ,MAA1B,EAAkCgd,SAAS,GAAGvD,QAAQ,CAACzZ,MAAT,GAAkB,CAA9B,CAAA;;IAElC,EAAA,IAAI,CAACke,WAAW,IAAItN,MAAM,CAACwS,YAAtB,IAAsC,CAAvC,OAA+CzC,aAAa,IAAI,CAAhE,CAAA,IAAsEsB,YAA1E,EAAwF;QACtF5R,MAAM,CAACqE,IAAP,CAAY,wBAAZ,CAAA,CAAA;IACD,GAAA;;MAED,MAAMjE,SAAS,GAAG,CAACgJ,QAAQ,CAACuD,SAAD,CAA3B,CA9DA;;IAiEA3M,EAAAA,MAAM,CAAC6O,cAAP,CAAsBzO,SAAtB,EAjEA;;MAoEA,IAAIG,MAAM,CAACkQ,mBAAX,EAAgC;IAC9B,IAAA,KAAK,IAAI/b,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2U,UAAU,CAAC1Z,MAA/B,EAAuC+E,CAAC,IAAI,CAA5C,EAA+C;UAC7C,MAAMse,mBAAmB,GAAG,CAAC9R,IAAI,CAACsK,KAAL,CAAWpL,SAAS,GAAG,GAAvB,CAA7B,CAAA;IACA,MAAA,MAAM6S,cAAc,GAAG/R,IAAI,CAACsK,KAAL,CAAWnC,UAAU,CAAC3U,CAAD,CAAV,GAAgB,GAA3B,CAAvB,CAAA;IACA,MAAA,MAAMwe,kBAAkB,GAAGhS,IAAI,CAACsK,KAAL,CAAWnC,UAAU,CAAC3U,CAAC,GAAG,CAAL,CAAV,GAAoB,GAA/B,CAA3B,CAAA;;UACA,IAAI,OAAO2U,UAAU,CAAC3U,CAAC,GAAG,CAAL,CAAjB,KAA6B,WAAjC,EAA8C;IAC5C,QAAA,IACEse,mBAAmB,IAAIC,cAAvB,IACAD,mBAAmB,GAAGE,kBAAkB,GAAG,CAACA,kBAAkB,GAAGD,cAAtB,IAAwC,CAFrF,EAGE;IACA9G,UAAAA,UAAU,GAAGzX,CAAb,CAAA;aAJF,MAKO,IACLse,mBAAmB,IAAIC,cAAvB,IACAD,mBAAmB,GAAGE,kBAFjB,EAGL;cACA/G,UAAU,GAAGzX,CAAC,GAAG,CAAjB,CAAA;IACD,SAAA;IACF,OAZD,MAYO,IAAIse,mBAAmB,IAAIC,cAA3B,EAA2C;IAChD9G,QAAAA,UAAU,GAAGzX,CAAb,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAzFD;;;IA2FA,EAAA,IAAIsL,MAAM,CAAC0E,WAAP,IAAsByH,UAAU,KAAK0B,WAAzC,EAAsD;IACpD,IAAA,IACE,CAAC7N,MAAM,CAACmT,cAAR,IACA/S,SAAS,GAAGJ,MAAM,CAACI,SADnB,IAEAA,SAAS,GAAGJ,MAAM,CAACuO,YAAP,EAHd,EAIE;IACA,MAAA,OAAO,KAAP,CAAA;IACD,KAAA;;IACD,IAAA,IACE,CAACvO,MAAM,CAACoT,cAAR,IACAhT,SAAS,GAAGJ,MAAM,CAACI,SADnB,IAEAA,SAAS,GAAGJ,MAAM,CAACgP,YAAP,EAHd,EAIE;UACA,IAAI,CAACnB,WAAW,IAAI,CAAhB,MAAuB1B,UAA3B,EAAuC,OAAO,KAAP,CAAA;IACxC,KAAA;IACF,GAAA;;IAED,EAAA,IAAImG,SAAJ,CAAA;MACA,IAAInG,UAAU,GAAG0B,WAAjB,EAA8ByE,SAAS,GAAG,MAAZ,CAA9B,KACK,IAAInG,UAAU,GAAG0B,WAAjB,EAA8ByE,SAAS,GAAG,MAAZ,CAA9B,KACAA,SAAS,GAAG,OAAZ,CA/GL;;IAkHA,EAAA,IAAK3J,GAAG,IAAI,CAACvI,SAAD,KAAeJ,MAAM,CAACI,SAA9B,IAA6C,CAACuI,GAAD,IAAQvI,SAAS,KAAKJ,MAAM,CAACI,SAA9E,EAA0F;IACxFJ,IAAAA,MAAM,CAACoQ,iBAAP,CAAyBjE,UAAzB,EADwF;;QAGxF,IAAI5L,MAAM,CAAC8O,UAAX,EAAuB;IACrBrP,MAAAA,MAAM,CAACuN,gBAAP,EAAA,CAAA;IACD,KAAA;;IACDvN,IAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;;IACA,IAAA,IAAI/O,MAAM,CAACsL,MAAP,KAAkB,OAAtB,EAA+B;UAC7B7L,MAAM,CAACoR,YAAP,CAAoBhR,SAApB,CAAA,CAAA;IACD,KAAA;;QACD,IAAIkS,SAAS,KAAK,OAAlB,EAA2B;IACzBtS,MAAAA,MAAM,CAACwS,eAAP,CAAuBZ,YAAvB,EAAqCU,SAArC,CAAA,CAAA;IACAtS,MAAAA,MAAM,CAAC1G,aAAP,CAAqBsY,YAArB,EAAmCU,SAAnC,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;MACD,IAAI/R,MAAM,CAAC+J,OAAX,EAAoB;IAClB,IAAA,MAAM4H,GAAG,GAAGlS,MAAM,CAAC6H,YAAP,EAAZ,CAAA;IACA,IAAA,MAAMwL,CAAC,GAAG1K,GAAG,GAAGvI,SAAH,GAAe,CAACA,SAA7B,CAAA;;QACA,IAAII,KAAK,KAAK,CAAd,EAAiB;IACf,MAAA,MAAMqI,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA1D,CAAA;;IACA,MAAA,IAAIF,SAAJ,EAAe;IACb7I,QAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+P,cAAvB,GAAwC,MAAxC,CAAA;YACAV,MAAM,CAACsT,iBAAP,GAA2B,IAA3B,CAAA;IACD,OAAA;;UACD7S,SAAS,CAACyR,GAAG,GAAG,YAAH,GAAkB,WAAtB,CAAT,GAA8CmB,CAA9C,CAAA;;IACA,MAAA,IAAIxK,SAAJ,EAAe;IACbhW,QAAAA,qBAAqB,CAAC,MAAM;IAC1BmN,UAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+P,cAAvB,GAAwC,EAAxC,CAAA;cACAV,MAAM,CAACuT,uBAAP,GAAiC,KAAjC,CAAA;IACD,SAHoB,CAArB,CAAA;IAID,OAAA;IACF,KAbD,MAaO;IACL,MAAA,IAAI,CAACvT,MAAM,CAAC2B,OAAP,CAAeE,YAApB,EAAkC;IAChC9B,QAAAA,oBAAoB,CAAC;cAAEC,MAAF;IAAUC,UAAAA,cAAc,EAAEoT,CAA1B;IAA6BnT,UAAAA,IAAI,EAAEgS,GAAG,GAAG,MAAH,GAAY,KAAA;IAAlD,SAAD,CAApB,CAAA;IACA,QAAA,OAAO,IAAP,CAAA;IACD,OAAA;;UACDzR,SAAS,CAACgB,QAAV,CAAmB;IACjB,QAAA,CAACyQ,GAAG,GAAG,MAAH,GAAY,KAAhB,GAAwBmB,CADP;IAEjBlB,QAAAA,QAAQ,EAAE,QAAA;WAFZ,CAAA,CAAA;IAID,KAAA;;IACD,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MAEDnS,MAAM,CAACyN,aAAP,CAAqBjN,KAArB,CAAA,CAAA;MACAR,MAAM,CAACoR,YAAP,CAAoBhR,SAApB,CAAA,CAAA;MACAJ,MAAM,CAACoQ,iBAAP,CAAyBjE,UAAzB,CAAA,CAAA;IACAnM,EAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACAtP,EAAAA,MAAM,CAACqE,IAAP,CAAY,uBAAZ,EAAqC7D,KAArC,EAA4CsR,QAA5C,CAAA,CAAA;IACA9R,EAAAA,MAAM,CAACwS,eAAP,CAAuBZ,YAAvB,EAAqCU,SAArC,CAAA,CAAA;;MAEA,IAAI9R,KAAK,KAAK,CAAd,EAAiB;IACfR,IAAAA,MAAM,CAAC1G,aAAP,CAAqBsY,YAArB,EAAmCU,SAAnC,CAAA,CAAA;IACD,GAFD,MAEO,IAAI,CAACtS,MAAM,CAAC+R,SAAZ,EAAuB;QAC5B/R,MAAM,CAAC+R,SAAP,GAAmB,IAAnB,CAAA;;IACA,IAAA,IAAI,CAAC/R,MAAM,CAACwT,6BAAZ,EAA2C;IACzCxT,MAAAA,MAAM,CAACwT,6BAAP,GAAuC,SAASla,aAAT,CAAuB5B,CAAvB,EAA0B;IAC/D,QAAA,IAAI,CAACsI,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;IACjC,QAAA,IAAI/M,CAAC,CAACpI,MAAF,KAAa,IAAjB,EAAuB,OAAA;YACvB0Q,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB5W,mBAArB,CACE,eADF,EAEEiQ,MAAM,CAACwT,6BAFT,CAAA,CAAA;YAIAxT,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB5W,mBAArB,CACE,qBADF,EAEEiQ,MAAM,CAACwT,6BAFT,CAAA,CAAA;YAIAxT,MAAM,CAACwT,6BAAP,GAAuC,IAAvC,CAAA;YACA,OAAOxT,MAAM,CAACwT,6BAAd,CAAA;IACAxT,QAAAA,MAAM,CAAC1G,aAAP,CAAqBsY,YAArB,EAAmCU,SAAnC,CAAA,CAAA;WAbF,CAAA;IAeD,KAAA;;QACDtS,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB7W,gBAArB,CAAsC,eAAtC,EAAuDkQ,MAAM,CAACwT,6BAA9D,CAAA,CAAA;QACAxT,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqB7W,gBAArB,CACE,qBADF,EAEEkQ,MAAM,CAACwT,6BAFT,CAAA,CAAA;IAID,GAAA;;IAED,EAAA,OAAO,IAAP,CAAA;IACD;;IC3Mc,SAASC,WAAT,CACb1Y,KADa,EAEbyF,KAFa,EAGboR,YAHa,EAIbE,QAJa,EAKb;IAAA,EAAA,IAJA/W,KAIA,KAAA,KAAA,CAAA,EAAA;IAJAA,IAAAA,KAIA,GAJQ,CAIR,CAAA;IAAA,GAAA;;IAAA,EAAA,IAHAyF,KAGA,KAAA,KAAA,CAAA,EAAA;IAHAA,IAAAA,KAGA,GAHQ,IAAA,CAAKD,MAAL,CAAYC,KAGpB,CAAA;IAAA,GAAA;;IAAA,EAAA,IAFAoR,YAEA,KAAA,KAAA,CAAA,EAAA;IAFAA,IAAAA,YAEA,GAFe,IAEf,CAAA;IAAA,GAAA;;IACA,EAAA,IAAI,OAAO7W,KAAP,KAAiB,QAArB,EAA+B;IAC7B;IACJ;IACA;IACA;IACI,IAAA,MAAM6X,aAAa,GAAG7K,QAAQ,CAAChN,KAAD,EAAQ,EAAR,CAA9B,CAAA;IAEA;IACJ;IACA;IACA;IACA;;IACI,IAAA,MAAM8X,aAAa,GAAGC,QAAQ,CAACF,aAAD,CAA9B,CAAA;;QAEA,IAAI,CAACC,aAAL,EAAoB;IAClB,MAAA,MAAM,IAAIF,KAAJ,CACH,CAAqE5X,mEAAAA,EAAAA,KAAM,UADxE,CAAN,CAAA;IAGD,KAlB4B;IAqB7B;;;IACAA,IAAAA,KAAK,GAAG6X,aAAR,CAAA;IACD,GAAA;;MAED,MAAM5S,MAAM,GAAG,IAAf,CAAA;MACA,IAAI0T,QAAQ,GAAG3Y,KAAf,CAAA;;IACA,EAAA,IAAIiF,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;QACtB2D,QAAQ,IAAI1T,MAAM,CAAC2T,YAAnB,CAAA;IACD,GAAA;;MAED,OAAO3T,MAAM,CAACyS,OAAP,CAAeiB,QAAf,EAAyBlT,KAAzB,EAAgCoR,YAAhC,EAA8CE,QAA9C,CAAP,CAAA;IACD;;ICtCD;IACe,SAAS8B,SAAT,CAAmBpT,KAAnB,EAA8CoR,YAA9C,EAAmEE,QAAnE,EAA6E;IAAA,EAAA,IAA1DtR,KAA0D,KAAA,KAAA,CAAA,EAAA;IAA1DA,IAAAA,KAA0D,GAAlD,IAAA,CAAKD,MAAL,CAAYC,KAAsC,CAAA;IAAA,GAAA;;IAAA,EAAA,IAA/BoR,YAA+B,KAAA,KAAA,CAAA,EAAA;IAA/BA,IAAAA,YAA+B,GAAhB,IAAgB,CAAA;IAAA,GAAA;;MAC1F,MAAM5R,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAE+R,SAAF;QAAahJ,OAAb;IAAsBxI,IAAAA,MAAAA;IAAtB,GAAA,GAAiCP,MAAvC,CAAA;IACA,EAAA,IAAI,CAAC+I,OAAL,EAAc,OAAO/I,MAAP,CAAA;IACd,EAAA,IAAI6T,QAAQ,GAAGtT,MAAM,CAACoL,cAAtB,CAAA;;IACA,EAAA,IAAIpL,MAAM,CAACsK,aAAP,KAAyB,MAAzB,IAAmCtK,MAAM,CAACoL,cAAP,KAA0B,CAA7D,IAAkEpL,MAAM,CAACuT,kBAA7E,EAAiG;IAC/FD,IAAAA,QAAQ,GAAG3S,IAAI,CAACC,GAAL,CAASnB,MAAM,CAAC+T,oBAAP,CAA4B,SAA5B,EAAuC,IAAvC,CAAT,EAAuD,CAAvD,CAAX,CAAA;IACD,GAAA;;IACD,EAAA,MAAMC,SAAS,GAAGhU,MAAM,CAAC6N,WAAP,GAAqBtN,MAAM,CAACqL,kBAA5B,GAAiD,CAAjD,GAAqDiI,QAAvE,CAAA;;MACA,IAAItT,MAAM,CAACwP,IAAX,EAAiB;IACf,IAAA,IAAIgC,SAAS,IAAIxR,MAAM,CAAC0T,iBAAxB,EAA2C,OAAO,KAAP,CAAA;QAC3CjU,MAAM,CAACkU,OAAP,EAAA,CAFe;;QAIflU,MAAM,CAACmU,WAAP,GAAqBnU,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqBvM,UAA1C,CAAA;IACD,GAAA;;IACD,EAAA,IAAImG,MAAM,CAAC6T,MAAP,IAAiBpU,MAAM,CAACkP,KAA5B,EAAmC;QACjC,OAAOlP,MAAM,CAACyS,OAAP,CAAe,CAAf,EAAkBjS,KAAlB,EAAyBoR,YAAzB,EAAuCE,QAAvC,CAAP,CAAA;IACD,GAAA;;IACD,EAAA,OAAO9R,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAP,GAAqBmG,SAApC,EAA+CxT,KAA/C,EAAsDoR,YAAtD,EAAoEE,QAApE,CAAP,CAAA;IACD;;ICpBD;IACe,SAASuC,SAAT,CAAmB7T,KAAnB,EAA8CoR,YAA9C,EAAmEE,QAAnE,EAA6E;IAAA,EAAA,IAA1DtR,KAA0D,KAAA,KAAA,CAAA,EAAA;IAA1DA,IAAAA,KAA0D,GAAlD,IAAA,CAAKD,MAAL,CAAYC,KAAsC,CAAA;IAAA,GAAA;;IAAA,EAAA,IAA/BoR,YAA+B,KAAA,KAAA,CAAA,EAAA;IAA/BA,IAAAA,YAA+B,GAAhB,IAAgB,CAAA;IAAA,GAAA;;MAC1F,MAAM5R,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAEO,MAAF;QAAUwR,SAAV;QAAqB3I,QAArB;QAA+BC,UAA/B;QAA2CX,YAA3C;IAAyDK,IAAAA,OAAAA;IAAzD,GAAA,GAAqE/I,MAA3E,CAAA;IACA,EAAA,IAAI,CAAC+I,OAAL,EAAc,OAAO/I,MAAP,CAAA;;MAEd,IAAIO,MAAM,CAACwP,IAAX,EAAiB;IACf,IAAA,IAAIgC,SAAS,IAAIxR,MAAM,CAAC0T,iBAAxB,EAA2C,OAAO,KAAP,CAAA;QAC3CjU,MAAM,CAACkU,OAAP,EAAA,CAFe;;QAIflU,MAAM,CAACmU,WAAP,GAAqBnU,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqBvM,UAA1C,CAAA;IACD,GAAA;;MACD,MAAMgG,SAAS,GAAGsI,YAAY,GAAG1I,MAAM,CAACI,SAAV,GAAsB,CAACJ,MAAM,CAACI,SAA5D,CAAA;;MAEA,SAASkU,SAAT,CAAmBC,GAAnB,EAAwB;IACtB,IAAA,IAAIA,GAAG,GAAG,CAAV,EAAa,OAAO,CAACrT,IAAI,CAACsK,KAAL,CAAWtK,IAAI,CAACwK,GAAL,CAAS6I,GAAT,CAAX,CAAR,CAAA;IACb,IAAA,OAAOrT,IAAI,CAACsK,KAAL,CAAW+I,GAAX,CAAP,CAAA;IACD,GAAA;;IACD,EAAA,MAAMvB,mBAAmB,GAAGsB,SAAS,CAAClU,SAAD,CAArC,CAAA;IACA,EAAA,MAAMoU,kBAAkB,GAAGpL,QAAQ,CAACzT,GAAT,CAAc4e,GAAD,IAASD,SAAS,CAACC,GAAD,CAA/B,CAA3B,CAAA;MAEA,IAAIE,QAAQ,GAAGrL,QAAQ,CAACoL,kBAAkB,CAAC7f,OAAnB,CAA2Bqe,mBAA3B,CAAkD,GAAA,CAAnD,CAAvB,CAAA;;MACA,IAAI,OAAOyB,QAAP,KAAoB,WAApB,IAAmClU,MAAM,CAAC+J,OAA9C,EAAuD;IACrD,IAAA,IAAIoK,aAAJ,CAAA;IACAtL,IAAAA,QAAQ,CAAC3Z,OAAT,CAAiB,CAAC+c,IAAD,EAAOG,SAAP,KAAqB;UACpC,IAAIqG,mBAAmB,IAAIxG,IAA3B,EAAiC;IAC/B;IACAkI,QAAAA,aAAa,GAAG/H,SAAhB,CAAA;IACD,OAAA;SAJH,CAAA,CAAA;;IAMA,IAAA,IAAI,OAAO+H,aAAP,KAAyB,WAA7B,EAA0C;IACxCD,MAAAA,QAAQ,GAAGrL,QAAQ,CAACsL,aAAa,GAAG,CAAhB,GAAoBA,aAAa,GAAG,CAApC,GAAwCA,aAAzC,CAAnB,CAAA;IACD,KAAA;IACF,GAAA;;MACD,IAAIC,SAAS,GAAG,CAAhB,CAAA;;IACA,EAAA,IAAI,OAAOF,QAAP,KAAoB,WAAxB,EAAqC;IACnCE,IAAAA,SAAS,GAAGtL,UAAU,CAAC1U,OAAX,CAAmB8f,QAAnB,CAAZ,CAAA;QACA,IAAIE,SAAS,GAAG,CAAhB,EAAmBA,SAAS,GAAG3U,MAAM,CAAC6N,WAAP,GAAqB,CAAjC,CAAA;;IACnB,IAAA,IACEtN,MAAM,CAACsK,aAAP,KAAyB,MAAzB,IACAtK,MAAM,CAACoL,cAAP,KAA0B,CAD1B,IAEApL,MAAM,CAACuT,kBAHT,EAIE;IACAa,MAAAA,SAAS,GAAGA,SAAS,GAAG3U,MAAM,CAAC+T,oBAAP,CAA4B,UAA5B,EAAwC,IAAxC,CAAZ,GAA4D,CAAxE,CAAA;UACAY,SAAS,GAAGzT,IAAI,CAACC,GAAL,CAASwT,SAAT,EAAoB,CAApB,CAAZ,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,IAAIpU,MAAM,CAAC6T,MAAP,IAAiBpU,MAAM,CAACiP,WAA5B,EAAyC;IACvC,IAAA,MAAM2F,SAAS,GACb5U,MAAM,CAACO,MAAP,CAAcuI,OAAd,IAAyB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA/C,IAA0D/I,MAAM,CAAC8I,OAAjE,GACI9I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBtZ,MAAtB,GAA+B,CADnC,GAEIqQ,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CAH7B,CAAA;QAIA,OAAOqQ,MAAM,CAACyS,OAAP,CAAemC,SAAf,EAA0BpU,KAA1B,EAAiCoR,YAAjC,EAA+CE,QAA/C,CAAP,CAAA;IACD,GAAA;;MACD,OAAO9R,MAAM,CAACyS,OAAP,CAAekC,SAAf,EAA0BnU,KAA1B,EAAiCoR,YAAjC,EAA+CE,QAA/C,CAAP,CAAA;IACD;;ICvDD;IACe,SAAS+C,UAAT,CAAoBrU,KAApB,EAA+CoR,YAA/C,EAAoEE,QAApE,EAA8E;IAAA,EAAA,IAA1DtR,KAA0D,KAAA,KAAA,CAAA,EAAA;IAA1DA,IAAAA,KAA0D,GAAlD,IAAA,CAAKD,MAAL,CAAYC,KAAsC,CAAA;IAAA,GAAA;;IAAA,EAAA,IAA/BoR,YAA+B,KAAA,KAAA,CAAA,EAAA;IAA/BA,IAAAA,YAA+B,GAAhB,IAAgB,CAAA;IAAA,GAAA;;MAC3F,MAAM5R,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,OAAOA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAtB,EAAmCrN,KAAnC,EAA0CoR,YAA1C,EAAwDE,QAAxD,CAAP,CAAA;IACD;;ICJD;IACe,SAASgD,cAAT,CACbtU,KADa,EAEboR,YAFa,EAGbE,QAHa,EAIbiD,SAJa,EAKb;IAAA,EAAA,IAJAvU,KAIA,KAAA,KAAA,CAAA,EAAA;IAJAA,IAAAA,KAIA,GAJQ,IAAA,CAAKD,MAAL,CAAYC,KAIpB,CAAA;IAAA,GAAA;;IAAA,EAAA,IAHAoR,YAGA,KAAA,KAAA,CAAA,EAAA;IAHAA,IAAAA,YAGA,GAHe,IAGf,CAAA;IAAA,GAAA;;IAAA,EAAA,IADAmD,SACA,KAAA,KAAA,CAAA,EAAA;IADAA,IAAAA,SACA,GADY,GACZ,CAAA;IAAA,GAAA;;MACA,MAAM/U,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,IAAIjF,KAAK,GAAGiF,MAAM,CAAC6N,WAAnB,CAAA;IACA,EAAA,MAAM6C,IAAI,GAAGxP,IAAI,CAACE,GAAL,CAASpB,MAAM,CAACO,MAAP,CAAcqL,kBAAvB,EAA2C7Q,KAA3C,CAAb,CAAA;IACA,EAAA,MAAM4R,SAAS,GAAG+D,IAAI,GAAGxP,IAAI,CAACsK,KAAL,CAAW,CAACzQ,KAAK,GAAG2V,IAAT,IAAiB1Q,MAAM,CAACO,MAAP,CAAcoL,cAA1C,CAAzB,CAAA;IAEA,EAAA,MAAMvL,SAAS,GAAGJ,MAAM,CAAC0I,YAAP,GAAsB1I,MAAM,CAACI,SAA7B,GAAyC,CAACJ,MAAM,CAACI,SAAnE,CAAA;;MAEA,IAAIA,SAAS,IAAIJ,MAAM,CAACoJ,QAAP,CAAgBuD,SAAhB,CAAjB,EAA6C;IAC3C;IACA;IACA,IAAA,MAAMqI,WAAW,GAAGhV,MAAM,CAACoJ,QAAP,CAAgBuD,SAAhB,CAApB,CAAA;QACA,MAAMsI,QAAQ,GAAGjV,MAAM,CAACoJ,QAAP,CAAgBuD,SAAS,GAAG,CAA5B,CAAjB,CAAA;;QACA,IAAIvM,SAAS,GAAG4U,WAAZ,GAA0B,CAACC,QAAQ,GAAGD,WAAZ,IAA2BD,SAAzD,EAAoE;IAClEha,MAAAA,KAAK,IAAIiF,MAAM,CAACO,MAAP,CAAcoL,cAAvB,CAAA;IACD,KAAA;IACF,GARD,MAQO;IACL;IACA;QACA,MAAM8I,QAAQ,GAAGzU,MAAM,CAACoJ,QAAP,CAAgBuD,SAAS,GAAG,CAA5B,CAAjB,CAAA;IACA,IAAA,MAAMqI,WAAW,GAAGhV,MAAM,CAACoJ,QAAP,CAAgBuD,SAAhB,CAApB,CAAA;;QACA,IAAIvM,SAAS,GAAGqU,QAAZ,IAAwB,CAACO,WAAW,GAAGP,QAAf,IAA2BM,SAAvD,EAAkE;IAChEha,MAAAA,KAAK,IAAIiF,MAAM,CAACO,MAAP,CAAcoL,cAAvB,CAAA;IACD,KAAA;IACF,GAAA;;MACD5Q,KAAK,GAAGmG,IAAI,CAACC,GAAL,CAASpG,KAAT,EAAgB,CAAhB,CAAR,CAAA;IACAA,EAAAA,KAAK,GAAGmG,IAAI,CAACE,GAAL,CAASrG,KAAT,EAAgBiF,MAAM,CAACqJ,UAAP,CAAkB1Z,MAAlB,GAA2B,CAA3C,CAAR,CAAA;MAEA,OAAOqQ,MAAM,CAACyS,OAAP,CAAe1X,KAAf,EAAsByF,KAAtB,EAA6BoR,YAA7B,EAA2CE,QAA3C,CAAP,CAAA;IACD;;IChCc,SAASd,mBAAT,GAA+B;MAC5C,MAAMhR,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAEO,MAAF;IAAUoG,IAAAA,UAAAA;IAAV,GAAA,GAAyB3G,MAA/B,CAAA;IAEA,EAAA,MAAM6K,aAAa,GACjBtK,MAAM,CAACsK,aAAP,KAAyB,MAAzB,GAAkC7K,MAAM,CAAC+T,oBAAP,EAAlC,GAAkExT,MAAM,CAACsK,aAD3E,CAAA;IAEA,EAAA,IAAIqK,YAAY,GAAGlV,MAAM,CAAC+Q,YAA1B,CAAA;IACA,EAAA,IAAIxB,SAAJ,CAAA;;MACA,IAAIhP,MAAM,CAACwP,IAAX,EAAiB;QACf,IAAI/P,MAAM,CAAC+R,SAAX,EAAsB,OAAA;IACtBxC,IAAAA,SAAS,GAAGxH,QAAQ,CAAC/S,CAAC,CAACgL,MAAM,CAAC8Q,YAAR,CAAD,CAAuBva,IAAvB,CAA4B,yBAA5B,CAAD,EAAyD,EAAzD,CAApB,CAAA;;QACA,IAAIgK,MAAM,CAAC8J,cAAX,EAA2B;UACzB,IACE6K,YAAY,GAAGlV,MAAM,CAAC2T,YAAP,GAAsB9I,aAAa,GAAG,CAArD,IACAqK,YAAY,GAAGlV,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuBqQ,MAAM,CAAC2T,YAA9B,GAA6C9I,aAAa,GAAG,CAF9E,EAGE;IACA7K,QAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;YACAgB,YAAY,GAAGvO,UAAU,CACtBlW,QADY,CAEV,CAAG8P,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAA4BqG,0BAAAA,EAAAA,SAAU,WAAUhP,MAAM,CAACyP,mBAAoB,CAFtF,CAAA,CAAA,CAAA,CAIZvU,EAJY,CAIT,CAJS,CAKZV,CAAAA,KALY,EAAf,CAAA;IAOAuC,QAAAA,QAAQ,CAAC,MAAM;cACb0C,MAAM,CAACyS,OAAP,CAAeyC,YAAf,CAAA,CAAA;IACD,SAFO,CAAR,CAAA;IAGD,OAfD,MAeO;YACLlV,MAAM,CAACyS,OAAP,CAAeyC,YAAf,CAAA,CAAA;IACD,OAAA;SAlBH,MAmBO,IAAIA,YAAY,GAAGlV,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuBkb,aAA1C,EAAyD;IAC9D7K,MAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;UACAgB,YAAY,GAAGvO,UAAU,CACtBlW,QADY,CAEV,CAAG8P,CAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAA4BqG,0BAAAA,EAAAA,SAAU,WAAUhP,MAAM,CAACyP,mBAAoB,CAFtF,CAAA,CAAA,CAAA,CAIZvU,EAJY,CAIT,CAJS,CAKZV,CAAAA,KALY,EAAf,CAAA;IAOAuC,MAAAA,QAAQ,CAAC,MAAM;YACb0C,MAAM,CAACyS,OAAP,CAAeyC,YAAf,CAAA,CAAA;IACD,OAFO,CAAR,CAAA;IAGD,KAZM,MAYA;UACLlV,MAAM,CAACyS,OAAP,CAAeyC,YAAf,CAAA,CAAA;IACD,KAAA;IACF,GArCD,MAqCO;QACLlV,MAAM,CAACyS,OAAP,CAAeyC,YAAf,CAAA,CAAA;IACD,GAAA;IACF;;AC3CD,gBAAe;MACbzC,OADa;MAEbgB,WAFa;MAGbG,SAHa;MAIbS,SAJa;MAKbQ,UALa;MAMbC,cANa;IAOb9D,EAAAA,mBAAAA;IAPa,CAAf;;ICLe,SAASmE,UAAT,GAAsB;MACnC,MAAMnV,MAAM,GAAG,IAAf,CAAA;MACA,MAAMrO,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM;QAAE8O,MAAF;IAAUoG,IAAAA,UAAAA;OAAe3G,GAAAA,MAA/B,CAHmC;;MAKnC,MAAMoV,SAAS,GACbzO,UAAU,CAAClW,QAAX,EAAsBd,CAAAA,MAAtB,GAA+B,CAA/B,GAAmCqF,CAAC,CAAC2R,UAAU,CAAClW,QAAX,EAAA,CAAsB,CAAtB,CAAyBkM,CAAAA,UAA1B,CAApC,GAA4EgK,UAD9E,CAAA;IAEAyO,EAAAA,SAAS,CAAC3kB,QAAV,CAAoB,CAAA,CAAA,EAAG8P,MAAM,CAAC2I,UAAW,CAAA,CAAA,EAAG3I,MAAM,CAACyP,mBAAoB,CAAA,CAAvE,EAA0E/Z,MAA1E,EAAA,CAAA;MAEA,IAAIgT,MAAM,GAAGmM,SAAS,CAAC3kB,QAAV,CAAoB,CAAA,CAAA,EAAG8P,MAAM,CAAC2I,UAAW,CAAA,CAAzC,CAAb,CAAA;;MAEA,IAAI3I,MAAM,CAAC8U,sBAAX,EAAmC;IACjC,IAAA,MAAMC,cAAc,GAAG/U,MAAM,CAACoL,cAAP,GAAyB1C,MAAM,CAACtZ,MAAP,GAAgB4Q,MAAM,CAACoL,cAAvE,CAAA;;IACA,IAAA,IAAI2J,cAAc,KAAK/U,MAAM,CAACoL,cAA9B,EAA8C;IAC5C,MAAA,KAAK,IAAIjX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4gB,cAApB,EAAoC5gB,CAAC,IAAI,CAAzC,EAA4C;YAC1C,MAAM6gB,SAAS,GAAGvgB,CAAC,CAACrD,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAD,CAAD,CAAiCgF,QAAjC,CACf,CAAE+K,EAAAA,MAAM,CAAC2I,UAAW,IAAG3I,MAAM,CAACiV,eAAgB,CAAA,CAD/B,CAAlB,CAAA;YAGAJ,SAAS,CAACzZ,MAAV,CAAiB4Z,SAAjB,CAAA,CAAA;IACD,OAAA;;UACDtM,MAAM,GAAGmM,SAAS,CAAC3kB,QAAV,CAAoB,IAAG8P,MAAM,CAAC2I,UAAW,CAAA,CAAzC,CAAT,CAAA;IACD,KAAA;IACF,GAAA;;IAED,EAAA,IAAI3I,MAAM,CAACsK,aAAP,KAAyB,MAAzB,IAAmC,CAACtK,MAAM,CAACoT,YAA/C,EAA6DpT,MAAM,CAACoT,YAAP,GAAsB1K,MAAM,CAACtZ,MAA7B,CAAA;IAE7DqQ,EAAAA,MAAM,CAAC2T,YAAP,GAAsBzS,IAAI,CAAC0M,IAAL,CAAU/T,UAAU,CAAC0G,MAAM,CAACoT,YAAP,IAAuBpT,MAAM,CAACsK,aAA/B,EAA8C,EAA9C,CAApB,CAAtB,CAAA;IACA7K,EAAAA,MAAM,CAAC2T,YAAP,IAAuBpT,MAAM,CAACkV,oBAA9B,CAAA;;IACA,EAAA,IAAIzV,MAAM,CAAC2T,YAAP,GAAsB1K,MAAM,CAACtZ,MAAjC,EAAyC;IACvCqQ,IAAAA,MAAM,CAAC2T,YAAP,GAAsB1K,MAAM,CAACtZ,MAA7B,CAAA;IACD,GAAA;;MAED,MAAM+lB,aAAa,GAAG,EAAtB,CAAA;MACA,MAAMC,YAAY,GAAG,EAArB,CAAA;IACA1M,EAAAA,MAAM,CAACnO,IAAP,CAAY,CAAC7G,EAAD,EAAK8G,KAAL,KAAe;IACzB,IAAA,MAAMgQ,KAAK,GAAG/V,CAAC,CAACf,EAAD,CAAf,CAAA;;IACA,IAAA,IAAI8G,KAAK,GAAGiF,MAAM,CAAC2T,YAAnB,EAAiC;UAC/BgC,YAAY,CAACxhB,IAAb,CAAkBF,EAAlB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAI8G,KAAK,GAAGkO,MAAM,CAACtZ,MAAf,IAAyBoL,KAAK,IAAIkO,MAAM,CAACtZ,MAAP,GAAgBqQ,MAAM,CAAC2T,YAA7D,EAA2E;UACzE+B,aAAa,CAACvhB,IAAd,CAAmBF,EAAnB,CAAA,CAAA;IACD,KAAA;;IACD8W,IAAAA,KAAK,CAACxU,IAAN,CAAW,yBAAX,EAAsCwE,KAAtC,CAAA,CAAA;OARF,CAAA,CAAA;;IAUA,EAAA,KAAK,IAAIrG,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGihB,YAAY,CAAChmB,MAAjC,EAAyC+E,CAAC,IAAI,CAA9C,EAAiD;QAC/C0gB,SAAS,CAACzZ,MAAV,CAAiB3G,CAAC,CAAC2gB,YAAY,CAACjhB,CAAD,CAAZ,CAAgBkhB,SAAhB,CAA0B,IAA1B,CAAD,CAAD,CAAmCpgB,QAAnC,CAA4C+K,MAAM,CAACyP,mBAAnD,CAAjB,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,KAAK,IAAItb,CAAC,GAAGghB,aAAa,CAAC/lB,MAAd,GAAuB,CAApC,EAAuC+E,CAAC,IAAI,CAA5C,EAA+CA,CAAC,IAAI,CAApD,EAAuD;QACrD0gB,SAAS,CAACpZ,OAAV,CAAkBhH,CAAC,CAAC0gB,aAAa,CAAChhB,CAAD,CAAb,CAAiBkhB,SAAjB,CAA2B,IAA3B,CAAD,CAAD,CAAoCpgB,QAApC,CAA6C+K,MAAM,CAACyP,mBAApD,CAAlB,CAAA,CAAA;IACD,GAAA;IACF;;ICrDc,SAASkE,OAAT,GAAmB;MAChC,MAAMlU,MAAM,GAAG,IAAf,CAAA;MAEAA,MAAM,CAACqE,IAAP,CAAY,eAAZ,CAAA,CAAA;MAEA,MAAM;QACJwJ,WADI;QAEJ5E,MAFI;QAGJ0K,YAHI;QAIJP,cAJI;QAKJD,cALI;QAMJ/J,QANI;IAOJV,IAAAA,YAAY,EAAEC,GAAAA;IAPV,GAAA,GAQF3I,MARJ,CAAA;IASA,EAAA,IAAI0T,QAAJ,CAAA;MACA1T,MAAM,CAACoT,cAAP,GAAwB,IAAxB,CAAA;MACApT,MAAM,CAACmT,cAAP,GAAwB,IAAxB,CAAA;IAEA,EAAA,MAAM0C,aAAa,GAAG,CAACzM,QAAQ,CAACyE,WAAD,CAA/B,CAAA;MACA,MAAMiI,IAAI,GAAGD,aAAa,GAAG7V,MAAM,CAACtC,YAAP,EAA7B,CAnBgC;;MAsBhC,IAAImQ,WAAW,GAAG8F,YAAlB,EAAgC;QAC9BD,QAAQ,GAAGzK,MAAM,CAACtZ,MAAP,GAAgBgkB,YAAY,GAAG,CAA/B,GAAmC9F,WAA9C,CAAA;IACA6F,IAAAA,QAAQ,IAAIC,YAAZ,CAAA;IACA,IAAA,MAAMoC,YAAY,GAAG/V,MAAM,CAACyS,OAAP,CAAeiB,QAAf,EAAyB,CAAzB,EAA4B,KAA5B,EAAmC,IAAnC,CAArB,CAAA;;IACA,IAAA,IAAIqC,YAAY,IAAID,IAAI,KAAK,CAA7B,EAAgC;IAC9B9V,MAAAA,MAAM,CAACoR,YAAP,CAAoB,CAACzI,GAAG,GAAG,CAAC3I,MAAM,CAACI,SAAX,GAAuBJ,MAAM,CAACI,SAAlC,IAA+C0V,IAAnE,CAAA,CAAA;IACD,KAAA;OANH,MAOO,IAAIjI,WAAW,IAAI5E,MAAM,CAACtZ,MAAP,GAAgBgkB,YAAnC,EAAiD;IACtD;QACAD,QAAQ,GAAG,CAACzK,MAAM,CAACtZ,MAAR,GAAiBke,WAAjB,GAA+B8F,YAA1C,CAAA;IACAD,IAAAA,QAAQ,IAAIC,YAAZ,CAAA;IACA,IAAA,MAAMoC,YAAY,GAAG/V,MAAM,CAACyS,OAAP,CAAeiB,QAAf,EAAyB,CAAzB,EAA4B,KAA5B,EAAmC,IAAnC,CAArB,CAAA;;IACA,IAAA,IAAIqC,YAAY,IAAID,IAAI,KAAK,CAA7B,EAAgC;IAC9B9V,MAAAA,MAAM,CAACoR,YAAP,CAAoB,CAACzI,GAAG,GAAG,CAAC3I,MAAM,CAACI,SAAX,GAAuBJ,MAAM,CAACI,SAAlC,IAA+C0V,IAAnE,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MACD9V,MAAM,CAACoT,cAAP,GAAwBA,cAAxB,CAAA;MACApT,MAAM,CAACmT,cAAP,GAAwBA,cAAxB,CAAA;MAEAnT,MAAM,CAACqE,IAAP,CAAY,SAAZ,CAAA,CAAA;IACD;;IC1Cc,SAAS2R,WAAT,GAAuB;MACpC,MAAMhW,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAE2G,UAAF;QAAcpG,MAAd;IAAsB0I,IAAAA,MAAAA;IAAtB,GAAA,GAAiCjJ,MAAvC,CAAA;MACA2G,UAAU,CACPlW,QADH,CAEK,CAAA,CAAA,EAAG8P,MAAM,CAAC2I,UAAW,IAAG3I,MAAM,CAACyP,mBAAoB,CAAIzP,EAAAA,EAAAA,MAAM,CAAC2I,UAAW,CAAA,CAAA,EAAG3I,MAAM,CAACiV,eAAgB,CAFxG,CAAA,CAAA,CAIGvf,MAJH,EAAA,CAAA;MAKAgT,MAAM,CAACpS,UAAP,CAAkB,yBAAlB,CAAA,CAAA;IACD;;ACLD,eAAe;MACbse,UADa;MAEbjB,OAFa;IAGb8B,EAAAA,WAAAA;IAHa,CAAf;;ICJe,SAASC,aAAT,CAAuBC,MAAvB,EAA+B;MAC5C,MAAMlW,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,IACEA,MAAM,CAAC2B,OAAP,CAAeI,KAAf,IACA,CAAC/B,MAAM,CAACO,MAAP,CAAc4V,aADf,IAECnW,MAAM,CAACO,MAAP,CAAcwM,aAAd,IAA+B/M,MAAM,CAACoW,QAFvC,IAGApW,MAAM,CAACO,MAAP,CAAc+J,OAJhB,EAME,OAAA;IACF,EAAA,MAAMrW,EAAE,GAAG+L,MAAM,CAACO,MAAP,CAAc8V,iBAAd,KAAoC,WAApC,GAAkDrW,MAAM,CAAC/L,EAAzD,GAA8D+L,MAAM,CAACS,SAAhF,CAAA;IACAxM,EAAAA,EAAE,CAACtD,KAAH,CAAS2lB,MAAT,GAAkB,MAAlB,CAAA;MACAriB,EAAE,CAACtD,KAAH,CAAS2lB,MAAT,GAAkBJ,MAAM,GAAG,UAAH,GAAgB,MAAxC,CAAA;IACD;;ICZc,SAASK,eAAT,GAA2B;MACxC,MAAMvW,MAAM,GAAG,IAAf,CAAA;;MACA,IACEA,MAAM,CAAC2B,OAAP,CAAeI,KAAf,IACC/B,MAAM,CAACO,MAAP,CAAcwM,aAAd,IAA+B/M,MAAM,CAACoW,QADvC,IAEApW,MAAM,CAACO,MAAP,CAAc+J,OAHhB,EAIE;IACA,IAAA,OAAA;IACD,GAAA;;IACDtK,EAAAA,MAAM,CAACA,MAAM,CAACO,MAAP,CAAc8V,iBAAd,KAAoC,WAApC,GAAkD,IAAlD,GAAyD,WAA1D,CAAN,CAA6E1lB,KAA7E,CAAmF2lB,MAAnF,GAA4F,EAA5F,CAAA;IACD;;ACPD,qBAAe;MACbL,aADa;IAEbM,EAAAA,eAAAA;IAFa,CAAf;;ICEA,SAASC,cAAT,CAAwB3hB,QAAxB,EAAkC4hB,IAAlC,EAA+C;IAAA,EAAA,IAAbA,IAAa,KAAA,KAAA,CAAA,EAAA;IAAbA,IAAAA,IAAa,GAAN,IAAM,CAAA;IAAA,GAAA;;MAC7C,SAASC,aAAT,CAAuBziB,EAAvB,EAA2B;IACzB,IAAA,IAAI,CAACA,EAAD,IAAOA,EAAE,KAAKxC,WAAW,EAAzB,IAA+BwC,EAAE,KAAKhB,SAAS,EAAnD,EAAuD,OAAO,IAAP,CAAA;QACvD,IAAIgB,EAAE,CAAC0iB,YAAP,EAAqB1iB,EAAE,GAAGA,EAAE,CAAC0iB,YAAR,CAAA;IACrB,IAAA,MAAM5Z,KAAK,GAAG9I,EAAE,CAAC2I,OAAH,CAAW/H,QAAX,CAAd,CAAA;;IACA,IAAA,IAAI,CAACkI,KAAD,IAAU,CAAC9I,EAAE,CAAC2iB,WAAlB,EAA+B;IAC7B,MAAA,OAAO,IAAP,CAAA;IACD,KAAA;;QACD,OAAO7Z,KAAK,IAAI2Z,aAAa,CAACziB,EAAE,CAAC2iB,WAAH,EAAiB1lB,CAAAA,IAAlB,CAA7B,CAAA;IACD,GAAA;;MACD,OAAOwlB,aAAa,CAACD,IAAD,CAApB,CAAA;IACD,CAAA;;IAEc,SAASI,YAAT,CAAsBxe,KAAtB,EAA6B;MAC1C,MAAM2H,MAAM,GAAG,IAAf,CAAA;MACA,MAAMrO,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM0B,MAAM,GAAGF,SAAS,EAAxB,CAAA;IAEA,EAAA,MAAMkG,IAAI,GAAG6G,MAAM,CAAC8W,eAApB,CAAA;MACA,MAAM;QAAEvW,MAAF;QAAUwW,OAAV;IAAmBhO,IAAAA,OAAAA;IAAnB,GAAA,GAA+B/I,MAArC,CAAA;MACA,IAAI,CAAC+I,OAAL,EAAc,OAAA;;IAEd,EAAA,IAAI/I,MAAM,CAAC+R,SAAP,IAAoBxR,MAAM,CAACyR,8BAA/B,EAA+D;IAC7D,IAAA,OAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAAChS,MAAM,CAAC+R,SAAR,IAAqBxR,MAAM,CAAC+J,OAA5B,IAAuC/J,MAAM,CAACwP,IAAlD,EAAwD;IACtD/P,IAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;IACD,GAAA;;MACD,IAAIxc,CAAC,GAAGW,KAAR,CAAA;MACA,IAAIX,CAAC,CAACsf,aAAN,EAAqBtf,CAAC,GAAGA,CAAC,CAACsf,aAAN,CAAA;IACrB,EAAA,IAAIC,SAAS,GAAGjiB,CAAC,CAAC0C,CAAC,CAACpI,MAAH,CAAjB,CAAA;;IAEA,EAAA,IAAIiR,MAAM,CAAC8V,iBAAP,KAA6B,SAAjC,EAA4C;QAC1C,IAAI,CAACY,SAAS,CAACra,OAAV,CAAkBoD,MAAM,CAACS,SAAzB,CAAoC9Q,CAAAA,MAAzC,EAAiD,OAAA;IAClD,GAAA;;IACDwJ,EAAAA,IAAI,CAAC+d,YAAL,GAAoBxf,CAAC,CAACyf,IAAF,KAAW,YAA/B,CAAA;IACA,EAAA,IAAI,CAAChe,IAAI,CAAC+d,YAAN,IAAsB,OAAA,IAAWxf,CAAjC,IAAsCA,CAAC,CAAC0f,KAAF,KAAY,CAAtD,EAAyD,OAAA;IACzD,EAAA,IAAI,CAACje,IAAI,CAAC+d,YAAN,IAAsB,QAAA,IAAYxf,CAAlC,IAAuCA,CAAC,CAAC2f,MAAF,GAAW,CAAtD,EAAyD,OAAA;MACzD,IAAIle,IAAI,CAACme,SAAL,IAAkBne,IAAI,CAACoe,OAA3B,EAAoC,OAzBM;;IA4B1C,EAAA,MAAMC,oBAAoB,GAAG,CAAC,CAACjX,MAAM,CAACkX,cAAT,IAA2BlX,MAAM,CAACkX,cAAP,KAA0B,EAAlF,CAAA;;MACA,IAAID,oBAAoB,IAAI9f,CAAC,CAACpI,MAA1B,IAAoCoI,CAAC,CAACpI,MAAF,CAASooB,UAA7C,IAA2Drf,KAAK,CAACsf,IAAjE,IAAyEtf,KAAK,CAACsf,IAAN,CAAW,CAAX,CAA7E,EAA4F;QAC1FV,SAAS,GAAGjiB,CAAC,CAACqD,KAAK,CAACsf,IAAN,CAAW,CAAX,CAAD,CAAb,CAAA;IACD,GAAA;;IAED,EAAA,MAAMC,iBAAiB,GAAGrX,MAAM,CAACqX,iBAAP,GACtBrX,MAAM,CAACqX,iBADe,GAErB,CAAA,CAAA,EAAGrX,MAAM,CAACkX,cAAe,CAF9B,CAAA,CAAA;IAGA,EAAA,MAAMI,cAAc,GAAG,CAAC,EAAEngB,CAAC,CAACpI,MAAF,IAAYoI,CAAC,CAACpI,MAAF,CAASooB,UAAvB,CAAxB,CApC0C;;MAuC1C,IACEnX,MAAM,CAACuX,SAAP,KACCD,cAAc,GACXrB,cAAc,CAACoB,iBAAD,EAAoBX,SAAS,CAAC,CAAD,CAA7B,CADH,GAEXA,SAAS,CAACra,OAAV,CAAkBgb,iBAAlB,CAAqC,CAAA,CAArC,CAHJ,CADF,EAKE;QACA5X,MAAM,CAAC+X,UAAP,GAAoB,IAApB,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;MAED,IAAIxX,MAAM,CAACyX,YAAX,EAAyB;QACvB,IAAI,CAACf,SAAS,CAACra,OAAV,CAAkB2D,MAAM,CAACyX,YAAzB,CAAA,CAAuC,CAAvC,CAAL,EAAgD,OAAA;IACjD,GAAA;;IAEDjB,EAAAA,OAAO,CAACkB,QAAR,GAAmBvgB,CAAC,CAACyf,IAAF,KAAW,YAAX,GAA0Bzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,CAAA,CAAmBC,KAA7C,GAAqDzgB,CAAC,CAACygB,KAA1E,CAAA;IACApB,EAAAA,OAAO,CAACqB,QAAR,GAAmB1gB,CAAC,CAACyf,IAAF,KAAW,YAAX,GAA0Bzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,CAAA,CAAmBG,KAA7C,GAAqD3gB,CAAC,CAAC2gB,KAA1E,CAAA;IACA,EAAA,MAAMC,MAAM,GAAGvB,OAAO,CAACkB,QAAvB,CAAA;IACA,EAAA,MAAMM,MAAM,GAAGxB,OAAO,CAACqB,QAAvB,CAxD0C;;MA4D1C,MAAMI,kBAAkB,GAAGjY,MAAM,CAACiY,kBAAP,IAA6BjY,MAAM,CAACkY,qBAA/D,CAAA;MACA,MAAMC,kBAAkB,GAAGnY,MAAM,CAACmY,kBAAP,IAA6BnY,MAAM,CAACoY,qBAA/D,CAAA;;IACA,EAAA,IACEH,kBAAkB,KACjBF,MAAM,IAAII,kBAAV,IAAgCJ,MAAM,IAAInlB,MAAM,CAACylB,UAAP,GAAoBF,kBAD7C,CADpB,EAGE;QACA,IAAIF,kBAAkB,KAAK,SAA3B,EAAsC;IACpCngB,MAAAA,KAAK,CAACwgB,cAAN,EAAA,CAAA;IACD,KAFD,MAEO;IACL,MAAA,OAAA;IACD,KAAA;IACF,GAAA;;IAEDzpB,EAAAA,MAAM,CAAC8Y,MAAP,CAAc/O,IAAd,EAAoB;IAClBme,IAAAA,SAAS,EAAE,IADO;IAElBC,IAAAA,OAAO,EAAE,KAFS;IAGlBuB,IAAAA,mBAAmB,EAAE,IAHH;IAIlBC,IAAAA,WAAW,EAAEpiB,SAJK;IAKlBqiB,IAAAA,WAAW,EAAEriB,SAAAA;OALf,CAAA,CAAA;MAQAogB,OAAO,CAACuB,MAAR,GAAiBA,MAAjB,CAAA;MACAvB,OAAO,CAACwB,MAAR,GAAiBA,MAAjB,CAAA;IACApf,EAAAA,IAAI,CAAC8f,cAAL,GAAsBzb,GAAG,EAAzB,CAAA;MACAwC,MAAM,CAAC+X,UAAP,GAAoB,IAApB,CAAA;IACA/X,EAAAA,MAAM,CAAC0H,UAAP,EAAA,CAAA;MACA1H,MAAM,CAACkZ,cAAP,GAAwBviB,SAAxB,CAAA;MACA,IAAI4J,MAAM,CAACwU,SAAP,GAAmB,CAAvB,EAA0B5b,IAAI,CAACggB,kBAAL,GAA0B,KAA1B,CAAA;;IAC1B,EAAA,IAAIzhB,CAAC,CAACyf,IAAF,KAAW,YAAf,EAA6B;QAC3B,IAAI0B,cAAc,GAAG,IAArB,CAAA;;QACA,IAAI5B,SAAS,CAACnf,EAAV,CAAaqB,IAAI,CAACigB,iBAAlB,CAAJ,EAA0C;IACxCP,MAAAA,cAAc,GAAG,KAAjB,CAAA;;UACA,IAAI5B,SAAS,CAAC,CAAD,CAAT,CAAa/mB,QAAb,KAA0B,QAA9B,EAAwC;YACtCiJ,IAAI,CAACme,SAAL,GAAiB,KAAjB,CAAA;IACD,OAAA;IACF,KAAA;;QACD,IACE3lB,QAAQ,CAAC3B,aAAT,IACAgF,CAAC,CAACrD,QAAQ,CAAC3B,aAAV,CAAD,CAA0B8H,EAA1B,CAA6BqB,IAAI,CAACigB,iBAAlC,CADA,IAEAznB,QAAQ,CAAC3B,aAAT,KAA2BinB,SAAS,CAAC,CAAD,CAHtC,EAIE;UACAtlB,QAAQ,CAAC3B,aAAT,CAAuBC,IAAvB,EAAA,CAAA;IACD,KAAA;;QAED,MAAMopB,oBAAoB,GACxBR,cAAc,IAAI7Y,MAAM,CAACsZ,cAAzB,IAA2C/Y,MAAM,CAACgZ,wBADpD,CAAA;;IAEA,IAAA,IACE,CAAChZ,MAAM,CAACiZ,6BAAP,IAAwCH,oBAAzC,KACA,CAACpC,SAAS,CAAC,CAAD,CAAT,CAAawC,iBAFhB,EAGE;IACA/hB,MAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACD,KAAA;IACF,GAAA;;MACD,IACE7Y,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IACA1Z,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuB3Q,OADvB,IAEA/I,MAAM,CAAC0Z,QAFP,IAGA1Z,MAAM,CAAC+R,SAHP,IAIA,CAACxR,MAAM,CAAC+J,OALV,EAME;QACAtK,MAAM,CAAC0Z,QAAP,CAAgB7C,YAAhB,EAAA,CAAA;IACD,GAAA;;IACD7W,EAAAA,MAAM,CAACqE,IAAP,CAAY,YAAZ,EAA0B3M,CAA1B,CAAA,CAAA;IACD;;ICzIc,SAASiiB,WAAT,CAAqBthB,KAArB,EAA4B;MACzC,MAAM1G,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAMuO,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,MAAM7G,IAAI,GAAG6G,MAAM,CAAC8W,eAApB,CAAA;MACA,MAAM;QAAEvW,MAAF;QAAUwW,OAAV;IAAmBrO,IAAAA,YAAY,EAAEC,GAAjC;IAAsCI,IAAAA,OAAAA;IAAtC,GAAA,GAAkD/I,MAAxD,CAAA;MACA,IAAI,CAAC+I,OAAL,EAAc,OAAA;MACd,IAAIrR,CAAC,GAAGW,KAAR,CAAA;MACA,IAAIX,CAAC,CAACsf,aAAN,EAAqBtf,CAAC,GAAGA,CAAC,CAACsf,aAAN,CAAA;;IACrB,EAAA,IAAI,CAAC7d,IAAI,CAACme,SAAV,EAAqB;IACnB,IAAA,IAAIne,IAAI,CAAC6f,WAAL,IAAoB7f,IAAI,CAAC4f,WAA7B,EAA0C;IACxC/Y,MAAAA,MAAM,CAACqE,IAAP,CAAY,mBAAZ,EAAiC3M,CAAjC,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,OAAA;IACD,GAAA;;MACD,IAAIyB,IAAI,CAAC+d,YAAL,IAAqBxf,CAAC,CAACyf,IAAF,KAAW,WAApC,EAAiD,OAAA;MACjD,MAAMyC,WAAW,GACfliB,CAAC,CAACyf,IAAF,KAAW,WAAX,IAA0Bzf,CAAC,CAACwgB,aAA5B,KAA8CxgB,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,CAAsBxgB,IAAAA,CAAC,CAACmiB,cAAF,CAAiB,CAAjB,CAApE,CADF,CAAA;IAEA,EAAA,MAAM1B,KAAK,GAAGzgB,CAAC,CAACyf,IAAF,KAAW,WAAX,GAAyByC,WAAW,CAACzB,KAArC,GAA6CzgB,CAAC,CAACygB,KAA7D,CAAA;IACA,EAAA,MAAME,KAAK,GAAG3gB,CAAC,CAACyf,IAAF,KAAW,WAAX,GAAyByC,WAAW,CAACvB,KAArC,GAA6C3gB,CAAC,CAAC2gB,KAA7D,CAAA;;MACA,IAAI3gB,CAAC,CAACoiB,uBAAN,EAA+B;QAC7B/C,OAAO,CAACuB,MAAR,GAAiBH,KAAjB,CAAA;QACApB,OAAO,CAACwB,MAAR,GAAiBF,KAAjB,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAACrY,MAAM,CAACsZ,cAAZ,EAA4B;IAC1B,IAAA,IAAI,CAACtkB,CAAC,CAAC0C,CAAC,CAACpI,MAAH,CAAD,CAAYwI,EAAZ,CAAeqB,IAAI,CAACigB,iBAApB,CAAL,EAA6C;UAC3CpZ,MAAM,CAAC+X,UAAP,GAAoB,KAApB,CAAA;IACD,KAAA;;QACD,IAAI5e,IAAI,CAACme,SAAT,EAAoB;IAClBloB,MAAAA,MAAM,CAAC8Y,MAAP,CAAc6O,OAAd,EAAuB;IACrBuB,QAAAA,MAAM,EAAEH,KADa;IAErBI,QAAAA,MAAM,EAAEF,KAFa;IAGrBJ,QAAAA,QAAQ,EAAEE,KAHW;IAIrBC,QAAAA,QAAQ,EAAEC,KAAAA;WAJZ,CAAA,CAAA;IAMAlf,MAAAA,IAAI,CAAC8f,cAAL,GAAsBzb,GAAG,EAAzB,CAAA;IACD,KAAA;;IACD,IAAA,OAAA;IACD,GAAA;;IACD,EAAA,IAAIrE,IAAI,CAAC+d,YAAL,IAAqB3W,MAAM,CAACwZ,mBAA5B,IAAmD,CAACxZ,MAAM,CAACwP,IAA/D,EAAqE;IACnE,IAAA,IAAI/P,MAAM,CAAC8H,UAAP,EAAJ,EAAyB;IACvB;IACA,MAAA,IACGuQ,KAAK,GAAGtB,OAAO,CAACwB,MAAhB,IAA0BvY,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACgP,YAAP,EAA/C,IACCqJ,KAAK,GAAGtB,OAAO,CAACwB,MAAhB,IAA0BvY,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACuO,YAAP,EAFjD,EAGE;YACApV,IAAI,CAACme,SAAL,GAAiB,KAAjB,CAAA;YACAne,IAAI,CAACoe,OAAL,GAAe,KAAf,CAAA;IACA,QAAA,OAAA;IACD,OAAA;IACF,KAVD,MAUO,IACJY,KAAK,GAAGpB,OAAO,CAACuB,MAAhB,IAA0BtY,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACgP,YAAP,EAA/C,IACCmJ,KAAK,GAAGpB,OAAO,CAACuB,MAAhB,IAA0BtY,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACuO,YAAP,EAF1C,EAGL;IACA,MAAA,OAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,IAAIpV,IAAI,CAAC+d,YAAL,IAAqBvlB,QAAQ,CAAC3B,aAAlC,EAAiD;QAC/C,IAAI0H,CAAC,CAACpI,MAAF,KAAaqC,QAAQ,CAAC3B,aAAtB,IAAuCgF,CAAC,CAAC0C,CAAC,CAACpI,MAAH,CAAD,CAAYwI,EAAZ,CAAeqB,IAAI,CAACigB,iBAApB,CAA3C,EAAmF;UACjFjgB,IAAI,CAACoe,OAAL,GAAe,IAAf,CAAA;UACAvX,MAAM,CAAC+X,UAAP,GAAoB,KAApB,CAAA;IACA,MAAA,OAAA;IACD,KAAA;IACF,GAAA;;MACD,IAAI5e,IAAI,CAAC2f,mBAAT,EAA8B;IAC5B9Y,IAAAA,MAAM,CAACqE,IAAP,CAAY,WAAZ,EAAyB3M,CAAzB,CAAA,CAAA;IACD,GAAA;;MACD,IAAIA,CAAC,CAACwgB,aAAF,IAAmBxgB,CAAC,CAACwgB,aAAF,CAAgBvoB,MAAhB,GAAyB,CAAhD,EAAmD,OAAA;MAEnDonB,OAAO,CAACkB,QAAR,GAAmBE,KAAnB,CAAA;MACApB,OAAO,CAACqB,QAAR,GAAmBC,KAAnB,CAAA;MAEA,MAAM2B,KAAK,GAAGjD,OAAO,CAACkB,QAAR,GAAmBlB,OAAO,CAACuB,MAAzC,CAAA;MACA,MAAM2B,KAAK,GAAGlD,OAAO,CAACqB,QAAR,GAAmBrB,OAAO,CAACwB,MAAzC,CAAA;MACA,IAAIvY,MAAM,CAACO,MAAP,CAAcwU,SAAd,IAA2B7T,IAAI,CAACgZ,IAAL,CAAUF,KAAK,IAAI,CAAT,GAAaC,KAAK,IAAI,CAAhC,CAAA,GAAqCja,MAAM,CAACO,MAAP,CAAcwU,SAAlF,EACE,OAAA;;IAEF,EAAA,IAAI,OAAO5b,IAAI,CAAC4f,WAAZ,KAA4B,WAAhC,EAA6C;IAC3C,IAAA,IAAIoB,UAAJ,CAAA;;QACA,IACGna,MAAM,CAAC6H,YAAP,EAAA,IAAyBkP,OAAO,CAACqB,QAAR,KAAqBrB,OAAO,CAACwB,MAAvD,IACCvY,MAAM,CAAC8H,UAAP,EAAA,IAAuBiP,OAAO,CAACkB,QAAR,KAAqBlB,OAAO,CAACuB,MAFvD,EAGE;UACAnf,IAAI,CAAC4f,WAAL,GAAmB,KAAnB,CAAA;IACD,KALD,MAKO;IACL;UACA,IAAIiB,KAAK,GAAGA,KAAR,GAAgBC,KAAK,GAAGA,KAAxB,IAAiC,EAArC,EAAyC;YACvCE,UAAU,GAAIjZ,IAAI,CAACkZ,KAAL,CAAWlZ,IAAI,CAACwK,GAAL,CAASuO,KAAT,CAAX,EAA4B/Y,IAAI,CAACwK,GAAL,CAASsO,KAAT,CAA5B,IAA+C,GAAhD,GAAuD9Y,IAAI,CAACK,EAAzE,CAAA;IACApI,QAAAA,IAAI,CAAC4f,WAAL,GAAmB/Y,MAAM,CAAC6H,YAAP,KACfsS,UAAU,GAAG5Z,MAAM,CAAC4Z,UADL,GAEf,EAAA,GAAKA,UAAL,GAAkB5Z,MAAM,CAAC4Z,UAF7B,CAAA;IAGD,OAAA;IACF,KAAA;IACF,GAAA;;MACD,IAAIhhB,IAAI,CAAC4f,WAAT,EAAsB;IACpB/Y,IAAAA,MAAM,CAACqE,IAAP,CAAY,mBAAZ,EAAiC3M,CAAjC,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,OAAOyB,IAAI,CAAC6f,WAAZ,KAA4B,WAAhC,EAA6C;IAC3C,IAAA,IAAIjC,OAAO,CAACkB,QAAR,KAAqBlB,OAAO,CAACuB,MAA7B,IAAuCvB,OAAO,CAACqB,QAAR,KAAqBrB,OAAO,CAACwB,MAAxE,EAAgF;UAC9Epf,IAAI,CAAC6f,WAAL,GAAmB,IAAnB,CAAA;IACD,KAAA;IACF,GAAA;;MACD,IAAI7f,IAAI,CAAC4f,WAAT,EAAsB;QACpB5f,IAAI,CAACme,SAAL,GAAiB,KAAjB,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAACne,IAAI,CAAC6f,WAAV,EAAuB;IACrB,IAAA,OAAA;IACD,GAAA;;MACDhZ,MAAM,CAAC+X,UAAP,GAAoB,KAApB,CAAA;;MACA,IAAI,CAACxX,MAAM,CAAC+J,OAAR,IAAmB5S,CAAC,CAACwB,UAAzB,EAAqC;IACnCxB,IAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACD,GAAA;;MACD,IAAItY,MAAM,CAAC8Z,wBAAP,IAAmC,CAAC9Z,MAAM,CAAC+Z,MAA/C,EAAuD;IACrD5iB,IAAAA,CAAC,CAAC6iB,eAAF,EAAA,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,CAACphB,IAAI,CAACoe,OAAV,EAAmB;QACjB,IAAIhX,MAAM,CAACwP,IAAP,IAAe,CAACxP,MAAM,CAAC+J,OAA3B,EAAoC;IAClCtK,MAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;IACD,KAAA;;IACD/a,IAAAA,IAAI,CAACqhB,cAAL,GAAsBxa,MAAM,CAACtC,YAAP,EAAtB,CAAA;QACAsC,MAAM,CAACyN,aAAP,CAAqB,CAArB,CAAA,CAAA;;QACA,IAAIzN,MAAM,CAAC+R,SAAX,EAAsB;IACpB/R,MAAAA,MAAM,CAAC2G,UAAP,CAAkB7N,OAAlB,CAA0B,mCAA1B,CAAA,CAAA;IACD,KAAA;;IACDK,IAAAA,IAAI,CAACshB,mBAAL,GAA2B,KAA3B,CATiB;;IAWjB,IAAA,IAAIla,MAAM,CAACma,UAAP,KAAsB1a,MAAM,CAACmT,cAAP,KAA0B,IAA1B,IAAkCnT,MAAM,CAACoT,cAAP,KAA0B,IAAlF,CAAJ,EAA6F;UAC3FpT,MAAM,CAACiW,aAAP,CAAqB,IAArB,CAAA,CAAA;IACD,KAAA;;IACDjW,IAAAA,MAAM,CAACqE,IAAP,CAAY,iBAAZ,EAA+B3M,CAA/B,CAAA,CAAA;IACD,GAAA;;IACDsI,EAAAA,MAAM,CAACqE,IAAP,CAAY,YAAZ,EAA0B3M,CAA1B,CAAA,CAAA;MACAyB,IAAI,CAACoe,OAAL,GAAe,IAAf,CAAA;MAEA,IAAIzB,IAAI,GAAG9V,MAAM,CAAC6H,YAAP,EAAwBmS,GAAAA,KAAxB,GAAgCC,KAA3C,CAAA;MACAlD,OAAO,CAACjB,IAAR,GAAeA,IAAf,CAAA;MAEAA,IAAI,IAAIvV,MAAM,CAACoa,UAAf,CAAA;IACA,EAAA,IAAIhS,GAAJ,EAASmN,IAAI,GAAG,CAACA,IAAR,CAAA;MAET9V,MAAM,CAACkZ,cAAP,GAAwBpD,IAAI,GAAG,CAAP,GAAW,MAAX,GAAoB,MAA5C,CAAA;IACA3c,EAAAA,IAAI,CAACgY,gBAAL,GAAwB2E,IAAI,GAAG3c,IAAI,CAACqhB,cAApC,CAAA;MAEA,IAAII,mBAAmB,GAAG,IAA1B,CAAA;IACA,EAAA,IAAIC,eAAe,GAAGta,MAAM,CAACsa,eAA7B,CAAA;;MACA,IAAIta,MAAM,CAACwZ,mBAAX,EAAgC;IAC9Bc,IAAAA,eAAe,GAAG,CAAlB,CAAA;IACD,GAAA;;IACD,EAAA,IAAI/E,IAAI,GAAG,CAAP,IAAY3c,IAAI,CAACgY,gBAAL,GAAwBnR,MAAM,CAACuO,YAAP,EAAxC,EAA+D;IAC7DqM,IAAAA,mBAAmB,GAAG,KAAtB,CAAA;QACA,IAAIra,MAAM,CAACua,UAAX,EACE3hB,IAAI,CAACgY,gBAAL,GACEnR,MAAM,CAACuO,YAAP,EACA,GAAA,CADA,GAEA,CAAC,CAACvO,MAAM,CAACuO,YAAP,EAAD,GAAyBpV,IAAI,CAACqhB,cAA9B,GAA+C1E,IAAhD,KAAyD+E,eAH3D,CAAA;IAIH,GAPD,MAOO,IAAI/E,IAAI,GAAG,CAAP,IAAY3c,IAAI,CAACgY,gBAAL,GAAwBnR,MAAM,CAACgP,YAAP,EAAxC,EAA+D;IACpE4L,IAAAA,mBAAmB,GAAG,KAAtB,CAAA;QACA,IAAIra,MAAM,CAACua,UAAX,EACE3hB,IAAI,CAACgY,gBAAL,GACEnR,MAAM,CAACgP,YAAP,EAAA,GACA,CADA,GAEA,CAAChP,MAAM,CAACgP,YAAP,EAAA,GAAwB7V,IAAI,CAACqhB,cAA7B,GAA8C1E,IAA/C,KAAwD+E,eAH1D,CAAA;IAIH,GAAA;;IAED,EAAA,IAAID,mBAAJ,EAAyB;QACvBljB,CAAC,CAACoiB,uBAAF,GAA4B,IAA5B,CAAA;IACD,GAxKwC;;;IA2KzC,EAAA,IACE,CAAC9Z,MAAM,CAACmT,cAAR,IACAnT,MAAM,CAACkZ,cAAP,KAA0B,MAD1B,IAEA/f,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAH/B,EAIE;IACArhB,IAAAA,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAA7B,CAAA;IACD,GAAA;;IACD,EAAA,IACE,CAACxa,MAAM,CAACoT,cAAR,IACApT,MAAM,CAACkZ,cAAP,KAA0B,MAD1B,IAEA/f,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAH/B,EAIE;IACArhB,IAAAA,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAA7B,CAAA;IACD,GAAA;;MACD,IAAI,CAACxa,MAAM,CAACoT,cAAR,IAA0B,CAACpT,MAAM,CAACmT,cAAtC,EAAsD;IACpDha,IAAAA,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAA7B,CAAA;IACD,GA3LwC;;;IA8LzC,EAAA,IAAIja,MAAM,CAACwU,SAAP,GAAmB,CAAvB,EAA0B;IACxB,IAAA,IAAI7T,IAAI,CAACwK,GAAL,CAASoK,IAAT,CAAA,GAAiBvV,MAAM,CAACwU,SAAxB,IAAqC5b,IAAI,CAACggB,kBAA9C,EAAkE;IAChE,MAAA,IAAI,CAAChgB,IAAI,CAACggB,kBAAV,EAA8B;YAC5BhgB,IAAI,CAACggB,kBAAL,GAA0B,IAA1B,CAAA;IACApC,QAAAA,OAAO,CAACuB,MAAR,GAAiBvB,OAAO,CAACkB,QAAzB,CAAA;IACAlB,QAAAA,OAAO,CAACwB,MAAR,GAAiBxB,OAAO,CAACqB,QAAzB,CAAA;IACAjf,QAAAA,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAA7B,CAAA;YACAzD,OAAO,CAACjB,IAAR,GAAe9V,MAAM,CAAC6H,YAAP,EAAA,GACXkP,OAAO,CAACkB,QAAR,GAAmBlB,OAAO,CAACuB,MADhB,GAEXvB,OAAO,CAACqB,QAAR,GAAmBrB,OAAO,CAACwB,MAF/B,CAAA;IAGA,QAAA,OAAA;IACD,OAAA;IACF,KAXD,MAWO;IACLpf,MAAAA,IAAI,CAACgY,gBAAL,GAAwBhY,IAAI,CAACqhB,cAA7B,CAAA;IACA,MAAA,OAAA;IACD,KAAA;IACF,GAAA;;MAED,IAAI,CAACja,MAAM,CAACwa,YAAR,IAAwBxa,MAAM,CAAC+J,OAAnC,EAA4C,OAhNH;;IAmNzC,EAAA,IACG/J,MAAM,CAACmZ,QAAP,IAAmBnZ,MAAM,CAACmZ,QAAP,CAAgB3Q,OAAnC,IAA8C/I,MAAM,CAAC0Z,QAAtD,IACAnZ,MAAM,CAAC0M,mBAFT,EAGE;IACAjN,IAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,IAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAItP,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IAA0BnZ,MAAM,CAACmZ,QAAP,CAAgB3Q,OAA1C,IAAqD/I,MAAM,CAAC0Z,QAAhE,EAA0E;QACxE1Z,MAAM,CAAC0Z,QAAP,CAAgBC,WAAhB,EAAA,CAAA;IACD,GA5NwC;;;IA8NzC3Z,EAAAA,MAAM,CAAC6O,cAAP,CAAsB1V,IAAI,CAACgY,gBAA3B,EA9NyC;;IAgOzCnR,EAAAA,MAAM,CAACoR,YAAP,CAAoBjY,IAAI,CAACgY,gBAAzB,CAAA,CAAA;IACD;;ICnOc,SAAS6J,UAAT,CAAoB3iB,KAApB,EAA2B;MACxC,MAAM2H,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,MAAM7G,IAAI,GAAG6G,MAAM,CAAC8W,eAApB,CAAA;MAEA,MAAM;QAAEvW,MAAF;QAAUwW,OAAV;IAAmBrO,IAAAA,YAAY,EAAEC,GAAjC;QAAsCU,UAAtC;IAAkDN,IAAAA,OAAAA;IAAlD,GAAA,GAA8D/I,MAApE,CAAA;MACA,IAAI,CAAC+I,OAAL,EAAc,OAAA;MACd,IAAIrR,CAAC,GAAGW,KAAR,CAAA;MACA,IAAIX,CAAC,CAACsf,aAAN,EAAqBtf,CAAC,GAAGA,CAAC,CAACsf,aAAN,CAAA;;MACrB,IAAI7d,IAAI,CAAC2f,mBAAT,EAA8B;IAC5B9Y,IAAAA,MAAM,CAACqE,IAAP,CAAY,UAAZ,EAAwB3M,CAAxB,CAAA,CAAA;IACD,GAAA;;MACDyB,IAAI,CAAC2f,mBAAL,GAA2B,KAA3B,CAAA;;IACA,EAAA,IAAI,CAAC3f,IAAI,CAACme,SAAV,EAAqB;IACnB,IAAA,IAAIne,IAAI,CAACoe,OAAL,IAAgBhX,MAAM,CAACma,UAA3B,EAAuC;UACrC1a,MAAM,CAACiW,aAAP,CAAqB,KAArB,CAAA,CAAA;IACD,KAAA;;QACD9c,IAAI,CAACoe,OAAL,GAAe,KAAf,CAAA;QACApe,IAAI,CAAC6f,WAAL,GAAmB,KAAnB,CAAA;IACA,IAAA,OAAA;IACD,GAnBuC;;;MAqBxC,IACEzY,MAAM,CAACma,UAAP,IACAvhB,IAAI,CAACoe,OADL,IAEApe,IAAI,CAACme,SAFL,KAGCtX,MAAM,CAACmT,cAAP,KAA0B,IAA1B,IAAkCnT,MAAM,CAACoT,cAAP,KAA0B,IAH7D,CADF,EAKE;QACApT,MAAM,CAACiW,aAAP,CAAqB,KAArB,CAAA,CAAA;IACD,GA5BuC;;;MA+BxC,MAAMgF,YAAY,GAAGzd,GAAG,EAAxB,CAAA;MACA,MAAM0d,QAAQ,GAAGD,YAAY,GAAG9hB,IAAI,CAAC8f,cAArC,CAhCwC;;MAmCxC,IAAIjZ,MAAM,CAAC+X,UAAX,EAAuB;IACrB,IAAA,MAAMoD,QAAQ,GAAGzjB,CAAC,CAACigB,IAAF,IAAWjgB,CAAC,CAAC0jB,YAAF,IAAkB1jB,CAAC,CAAC0jB,YAAF,EAA9C,CAAA;IACApb,IAAAA,MAAM,CAAC4Q,kBAAP,CAA2BuK,QAAQ,IAAIA,QAAQ,CAAC,CAAD,CAArB,IAA6BzjB,CAAC,CAACpI,MAAzD,CAAA,CAAA;IACA0Q,IAAAA,MAAM,CAACqE,IAAP,CAAY,WAAZ,EAAyB3M,CAAzB,CAAA,CAAA;;QACA,IAAIwjB,QAAQ,GAAG,GAAX,IAAkBD,YAAY,GAAG9hB,IAAI,CAACkiB,aAApB,GAAoC,GAA1D,EAA+D;IAC7Drb,MAAAA,MAAM,CAACqE,IAAP,CAAY,uBAAZ,EAAqC3M,CAArC,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IAEDyB,EAAAA,IAAI,CAACkiB,aAAL,GAAqB7d,GAAG,EAAxB,CAAA;IACAF,EAAAA,QAAQ,CAAC,MAAM;QACb,IAAI,CAAC0C,MAAM,CAACyE,SAAZ,EAAuBzE,MAAM,CAAC+X,UAAP,GAAoB,IAApB,CAAA;IACxB,GAFO,CAAR,CAAA;;IAIA,EAAA,IACE,CAAC5e,IAAI,CAACme,SAAN,IACA,CAACne,IAAI,CAACoe,OADN,IAEA,CAACvX,MAAM,CAACkZ,cAFR,IAGAnC,OAAO,CAACjB,IAAR,KAAiB,CAHjB,IAIA3c,IAAI,CAACgY,gBAAL,KAA0BhY,IAAI,CAACqhB,cALjC,EAME;QACArhB,IAAI,CAACme,SAAL,GAAiB,KAAjB,CAAA;QACAne,IAAI,CAACoe,OAAL,GAAe,KAAf,CAAA;QACApe,IAAI,CAAC6f,WAAL,GAAmB,KAAnB,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;MACD7f,IAAI,CAACme,SAAL,GAAiB,KAAjB,CAAA;MACAne,IAAI,CAACoe,OAAL,GAAe,KAAf,CAAA;MACApe,IAAI,CAAC6f,WAAL,GAAmB,KAAnB,CAAA;IAEA,EAAA,IAAIsC,UAAJ,CAAA;;MACA,IAAI/a,MAAM,CAACwa,YAAX,EAAyB;QACvBO,UAAU,GAAG3S,GAAG,GAAG3I,MAAM,CAACI,SAAV,GAAsB,CAACJ,MAAM,CAACI,SAA9C,CAAA;IACD,GAFD,MAEO;IACLkb,IAAAA,UAAU,GAAG,CAACniB,IAAI,CAACgY,gBAAnB,CAAA;IACD,GAAA;;MAED,IAAI5Q,MAAM,CAAC+J,OAAX,EAAoB;IAClB,IAAA,OAAA;IACD,GAAA;;MAED,IAAItK,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IAA0BnZ,MAAM,CAACmZ,QAAP,CAAgB3Q,OAA9C,EAAuD;IACrD/I,IAAAA,MAAM,CAAC0Z,QAAP,CAAgBsB,UAAhB,CAA2B;IAAEM,MAAAA,UAAAA;SAA7B,CAAA,CAAA;IACA,IAAA,OAAA;IACD,GA/EuC;;;MAkFxC,IAAIC,SAAS,GAAG,CAAhB,CAAA;IACA,EAAA,IAAIC,SAAS,GAAGxb,MAAM,CAACsJ,eAAP,CAAuB,CAAvB,CAAhB,CAAA;;MACA,KACE,IAAI5U,CAAC,GAAG,CADV,EAEEA,CAAC,GAAG2U,UAAU,CAAC1Z,MAFjB,EAGE+E,CAAC,IAAIA,CAAC,GAAG6L,MAAM,CAACqL,kBAAX,GAAgC,CAAhC,GAAoCrL,MAAM,CAACoL,cAHlD,EAIE;IACA,IAAA,MAAMqI,SAAS,GAAGtf,CAAC,GAAG6L,MAAM,CAACqL,kBAAP,GAA4B,CAAhC,GAAoC,CAApC,GAAwCrL,MAAM,CAACoL,cAAjE,CAAA;;QACA,IAAI,OAAOtC,UAAU,CAAC3U,CAAC,GAAGsf,SAAL,CAAjB,KAAqC,WAAzC,EAAsD;IACpD,MAAA,IAAIsH,UAAU,IAAIjS,UAAU,CAAC3U,CAAD,CAAxB,IAA+B4mB,UAAU,GAAGjS,UAAU,CAAC3U,CAAC,GAAGsf,SAAL,CAA1D,EAA2E;IACzEuH,QAAAA,SAAS,GAAG7mB,CAAZ,CAAA;YACA8mB,SAAS,GAAGnS,UAAU,CAAC3U,CAAC,GAAGsf,SAAL,CAAV,GAA4B3K,UAAU,CAAC3U,CAAD,CAAlD,CAAA;IACD,OAAA;SAJH,MAKO,IAAI4mB,UAAU,IAAIjS,UAAU,CAAC3U,CAAD,CAA5B,EAAiC;IACtC6mB,MAAAA,SAAS,GAAG7mB,CAAZ,CAAA;IACA8mB,MAAAA,SAAS,GAAGnS,UAAU,CAACA,UAAU,CAAC1Z,MAAX,GAAoB,CAArB,CAAV,GAAoC0Z,UAAU,CAACA,UAAU,CAAC1Z,MAAX,GAAoB,CAArB,CAA1D,CAAA;IACD,KAAA;IACF,GAAA;;MAED,IAAI8rB,gBAAgB,GAAG,IAAvB,CAAA;MACA,IAAIC,eAAe,GAAG,IAAtB,CAAA;;MACA,IAAInb,MAAM,CAAC6T,MAAX,EAAmB;QACjB,IAAIpU,MAAM,CAACiP,WAAX,EAAwB;IACtByM,MAAAA,eAAe,GACb1b,MAAM,CAACO,MAAP,CAAcuI,OAAd,IAAyB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA/C,IAA0D/I,MAAM,CAAC8I,OAAjE,GACI9I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBtZ,MAAtB,GAA+B,CADnC,GAEIqQ,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CAH7B,CAAA;IAID,KALD,MAKO,IAAIqQ,MAAM,CAACkP,KAAX,EAAkB;IACvBuM,MAAAA,gBAAgB,GAAG,CAAnB,CAAA;IACD,KAAA;IACF,GAhHuC;;;MAkHxC,MAAME,KAAK,GAAG,CAACL,UAAU,GAAGjS,UAAU,CAACkS,SAAD,CAAxB,IAAuCC,SAArD,CAAA;IACA,EAAA,MAAMxH,SAAS,GAAGuH,SAAS,GAAGhb,MAAM,CAACqL,kBAAP,GAA4B,CAAxC,GAA4C,CAA5C,GAAgDrL,MAAM,CAACoL,cAAzE,CAAA;;IACA,EAAA,IAAIuP,QAAQ,GAAG3a,MAAM,CAACqb,YAAtB,EAAoC;IAClC;IACA,IAAA,IAAI,CAACrb,MAAM,CAACsb,UAAZ,EAAwB;IACtB7b,MAAAA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAtB,CAAA,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACD,IAAA,IAAI7N,MAAM,CAACkZ,cAAP,KAA0B,MAA9B,EAAsC;IACpC,MAAA,IAAIyC,KAAK,IAAIpb,MAAM,CAACub,eAApB,EACE9b,MAAM,CAACyS,OAAP,CAAelS,MAAM,CAAC6T,MAAP,IAAiBpU,MAAM,CAACkP,KAAxB,GAAgCuM,gBAAhC,GAAmDF,SAAS,GAAGvH,SAA9E,CAAA,CADF,KAEKhU,MAAM,CAACyS,OAAP,CAAe8I,SAAf,CAAA,CAAA;IACN,KAAA;;IACD,IAAA,IAAIvb,MAAM,CAACkZ,cAAP,KAA0B,MAA9B,EAAsC;IACpC,MAAA,IAAIyC,KAAK,GAAG,CAAA,GAAIpb,MAAM,CAACub,eAAvB,EAAwC;IACtC9b,QAAAA,MAAM,CAACyS,OAAP,CAAe8I,SAAS,GAAGvH,SAA3B,CAAA,CAAA;IACD,OAFD,MAEO,IACL0H,eAAe,KAAK,IAApB,IACAC,KAAK,GAAG,CADR,IAEAza,IAAI,CAACwK,GAAL,CAASiQ,KAAT,IAAkBpb,MAAM,CAACub,eAHpB,EAIL;YACA9b,MAAM,CAACyS,OAAP,CAAeiJ,eAAf,CAAA,CAAA;IACD,OANM,MAMA;YACL1b,MAAM,CAACyS,OAAP,CAAe8I,SAAf,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAxBD,MAwBO;IACL;IACA,IAAA,IAAI,CAAChb,MAAM,CAACwb,WAAZ,EAAyB;IACvB/b,MAAAA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAtB,CAAA,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;QACD,MAAMmO,iBAAiB,GACrBhc,MAAM,CAACic,UAAP,KACCvkB,CAAC,CAACpI,MAAF,KAAa0Q,MAAM,CAACic,UAAP,CAAkBC,MAA/B,IAAyCxkB,CAAC,CAACpI,MAAF,KAAa0Q,MAAM,CAACic,UAAP,CAAkBE,MADzE,CADF,CAAA;;QAGA,IAAI,CAACH,iBAAL,EAAwB;IACtB,MAAA,IAAIhc,MAAM,CAACkZ,cAAP,KAA0B,MAA9B,EAAsC;YACpClZ,MAAM,CAACyS,OAAP,CAAegJ,gBAAgB,KAAK,IAArB,GAA4BA,gBAA5B,GAA+CF,SAAS,GAAGvH,SAA1E,CAAA,CAAA;IACD,OAAA;;IACD,MAAA,IAAIhU,MAAM,CAACkZ,cAAP,KAA0B,MAA9B,EAAsC;YACpClZ,MAAM,CAACyS,OAAP,CAAeiJ,eAAe,KAAK,IAApB,GAA2BA,eAA3B,GAA6CH,SAA5D,CAAA,CAAA;IACD,OAAA;SANH,MAOO,IAAI7jB,CAAC,CAACpI,MAAF,KAAa0Q,MAAM,CAACic,UAAP,CAAkBC,MAAnC,EAA2C;IAChDlc,MAAAA,MAAM,CAACyS,OAAP,CAAe8I,SAAS,GAAGvH,SAA3B,CAAA,CAAA;IACD,KAFM,MAEA;UACLhU,MAAM,CAACyS,OAAP,CAAe8I,SAAf,CAAA,CAAA;IACD,KAAA;IACF,GAAA;IACF;;ICpKc,SAASa,QAAT,GAAoB;MACjC,MAAMpc,MAAM,GAAG,IAAf,CAAA;MAEA,MAAM;QAAEO,MAAF;IAAUtM,IAAAA,EAAAA;IAAV,GAAA,GAAiB+L,MAAvB,CAAA;MAEA,IAAI/L,EAAE,IAAIA,EAAE,CAAC2F,WAAH,KAAmB,CAA7B,EAAgC,OALC;;MAQjC,IAAI2G,MAAM,CAACuK,WAAX,EAAwB;IACtB9K,IAAAA,MAAM,CAACqc,aAAP,EAAA,CAAA;IACD,GAVgC;;;MAajC,MAAM;QAAElJ,cAAF;QAAkBC,cAAlB;IAAkChK,IAAAA,QAAAA;OAAapJ,GAAAA,MAArD,CAbiC;;MAgBjCA,MAAM,CAACmT,cAAP,GAAwB,IAAxB,CAAA;MACAnT,MAAM,CAACoT,cAAP,GAAwB,IAAxB,CAAA;IAEApT,EAAAA,MAAM,CAAC0H,UAAP,EAAA,CAAA;IACA1H,EAAAA,MAAM,CAACoI,YAAP,EAAA,CAAA;IAEApI,EAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;;IACA,EAAA,IACE,CAAC/O,MAAM,CAACsK,aAAP,KAAyB,MAAzB,IAAmCtK,MAAM,CAACsK,aAAP,GAAuB,CAA3D,KACA7K,MAAM,CAACkP,KADP,IAEA,CAAClP,MAAM,CAACiP,WAFR,IAGA,CAACjP,MAAM,CAACO,MAAP,CAAc8J,cAJjB,EAKE;IACArK,IAAAA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CAAtC,EAAyC,CAAzC,EAA4C,KAA5C,EAAmD,IAAnD,CAAA,CAAA;IACD,GAPD,MAOO;QACLqQ,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAtB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,IAAI7N,MAAM,CAACsc,QAAP,IAAmBtc,MAAM,CAACsc,QAAP,CAAgBC,OAAnC,IAA8Cvc,MAAM,CAACsc,QAAP,CAAgBE,MAAlE,EAA0E;QACxExc,MAAM,CAACsc,QAAP,CAAgBG,GAAhB,EAAA,CAAA;IACD,GApCgC;;;MAsCjCzc,MAAM,CAACoT,cAAP,GAAwBA,cAAxB,CAAA;MACApT,MAAM,CAACmT,cAAP,GAAwBA,cAAxB,CAAA;;MAEA,IAAInT,MAAM,CAACO,MAAP,CAAcwM,aAAd,IAA+B3D,QAAQ,KAAKpJ,MAAM,CAACoJ,QAAvD,EAAiE;IAC/DpJ,IAAAA,MAAM,CAACgN,aAAP,EAAA,CAAA;IACD,GAAA;IACF;;IC5Cc,SAAS0P,OAAT,CAAiBhlB,CAAjB,EAAoB;MACjC,MAAMsI,MAAM,GAAG,IAAf,CAAA;IACA,EAAA,IAAI,CAACA,MAAM,CAAC+I,OAAZ,EAAqB,OAAA;;IACrB,EAAA,IAAI,CAAC/I,MAAM,CAAC+X,UAAZ,EAAwB;QACtB,IAAI/X,MAAM,CAACO,MAAP,CAAcoc,aAAlB,EAAiCjlB,CAAC,CAACmhB,cAAF,EAAA,CAAA;;QACjC,IAAI7Y,MAAM,CAACO,MAAP,CAAcqc,wBAAd,IAA0C5c,MAAM,CAAC+R,SAArD,EAAgE;IAC9Dra,MAAAA,CAAC,CAAC6iB,eAAF,EAAA,CAAA;IACA7iB,MAAAA,CAAC,CAACmlB,wBAAF,EAAA,CAAA;IACD,KAAA;IACF,GAAA;IACF;;ICVc,SAASC,QAAT,GAAoB;MACjC,MAAM9c,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAES,SAAF;QAAaiI,YAAb;IAA2BK,IAAAA,OAAAA;IAA3B,GAAA,GAAuC/I,MAA7C,CAAA;MACA,IAAI,CAAC+I,OAAL,EAAc,OAAA;IACd/I,EAAAA,MAAM,CAACyR,iBAAP,GAA2BzR,MAAM,CAACI,SAAlC,CAAA;;IACA,EAAA,IAAIJ,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IACzB7H,IAAAA,MAAM,CAACI,SAAP,GAAmB,CAACK,SAAS,CAAClG,UAA9B,CAAA;IACD,GAFD,MAEO;IACLyF,IAAAA,MAAM,CAACI,SAAP,GAAmB,CAACK,SAAS,CAACpG,SAA9B,CAAA;IACD,GATgC;;;MAWjC,IAAI2F,MAAM,CAACI,SAAP,KAAqB,CAAzB,EAA4BJ,MAAM,CAACI,SAAP,GAAmB,CAAnB,CAAA;IAE5BJ,EAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,EAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IAEA,EAAA,IAAIoC,WAAJ,CAAA;MACA,MAAM3C,cAAc,GAAG/O,MAAM,CAACgP,YAAP,EAAwBhP,GAAAA,MAAM,CAACuO,YAAP,EAA/C,CAAA;;MACA,IAAIQ,cAAc,KAAK,CAAvB,EAA0B;IACxB2C,IAAAA,WAAW,GAAG,CAAd,CAAA;IACD,GAFD,MAEO;QACLA,WAAW,GAAG,CAAC1R,MAAM,CAACI,SAAP,GAAmBJ,MAAM,CAACuO,YAAP,EAApB,IAA6CQ,cAA3D,CAAA;IACD,GAAA;;IACD,EAAA,IAAI2C,WAAW,KAAK1R,MAAM,CAACiB,QAA3B,EAAqC;IACnCjB,IAAAA,MAAM,CAAC6O,cAAP,CAAsBnG,YAAY,GAAG,CAAC1I,MAAM,CAACI,SAAX,GAAuBJ,MAAM,CAACI,SAAhE,CAAA,CAAA;IACD,GAAA;;MAEDJ,MAAM,CAACqE,IAAP,CAAY,cAAZ,EAA4BrE,MAAM,CAACI,SAAnC,EAA8C,KAA9C,CAAA,CAAA;IACD;;ICnBD,IAAI2c,kBAAkB,GAAG,KAAzB,CAAA;;IACA,SAASC,kBAAT,GAA8B,EAAE;;IAEhC,MAAM7kB,MAAM,GAAG,CAAC6H,MAAD,EAASiH,MAAT,KAAoB;MACjC,MAAMtV,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM;QAAE8O,MAAF;QAAU0c,WAAV;QAAuBhpB,EAAvB;QAA2BwM,SAA3B;QAAsCmC,MAAtC;IAA8CjB,IAAAA,OAAAA;IAA9C,GAAA,GAA0D3B,MAAhE,CAAA;IACA,EAAA,MAAMxI,OAAO,GAAG,CAAC,CAAC+I,MAAM,CAAC+Z,MAAzB,CAAA;MACA,MAAM4C,SAAS,GAAGjW,MAAM,KAAK,IAAX,GAAkB,kBAAlB,GAAuC,qBAAzD,CAAA;IACA,EAAA,MAAMkW,YAAY,GAAGlW,MAArB,CALiC;;IAQjC,EAAA,IAAI,CAACtF,OAAO,CAACI,KAAb,EAAoB;IAClB9N,IAAAA,EAAE,CAACipB,SAAD,CAAF,CAAcD,WAAW,CAACG,KAA1B,EAAiCpd,MAAM,CAAC6W,YAAxC,EAAsD,KAAtD,CAAA,CAAA;IACAllB,IAAAA,QAAQ,CAACurB,SAAD,CAAR,CAAoBD,WAAW,CAACI,IAAhC,EAAsCrd,MAAM,CAAC2Z,WAA7C,EAA0DniB,OAA1D,CAAA,CAAA;IACA7F,IAAAA,QAAQ,CAACurB,SAAD,CAAR,CAAoBD,WAAW,CAACK,GAAhC,EAAqCtd,MAAM,CAACgb,UAA5C,EAAwD,KAAxD,CAAA,CAAA;IACD,GAJD,MAIO;IACL,IAAA,MAAM/Y,eAAe,GACnBgb,WAAW,CAACG,KAAZ,KAAsB,YAAtB,IAAsCzb,OAAO,CAACM,eAA9C,IAAiE1B,MAAM,CAACgd,gBAAxE,GACI;IAAEC,MAAAA,OAAO,EAAE,IAAX;IAAiBhmB,MAAAA,OAAO,EAAE,KAAA;IAA1B,KADJ,GAEI,KAHN,CAAA;IAIAvD,IAAAA,EAAE,CAACipB,SAAD,CAAF,CAAcD,WAAW,CAACG,KAA1B,EAAiCpd,MAAM,CAAC6W,YAAxC,EAAsD5U,eAAtD,CAAA,CAAA;IACAhO,IAAAA,EAAE,CAACipB,SAAD,CAAF,CACED,WAAW,CAACI,IADd,EAEErd,MAAM,CAAC2Z,WAFT,EAGEhY,OAAO,CAACM,eAAR,GAA0B;IAAEub,MAAAA,OAAO,EAAE,KAAX;IAAkBhmB,MAAAA,OAAAA;IAAlB,KAA1B,GAAwDA,OAH1D,CAAA,CAAA;IAKAvD,IAAAA,EAAE,CAACipB,SAAD,CAAF,CAAcD,WAAW,CAACK,GAA1B,EAA+Btd,MAAM,CAACgb,UAAtC,EAAkD/Y,eAAlD,CAAA,CAAA;;QACA,IAAIgb,WAAW,CAACQ,MAAhB,EAAwB;IACtBxpB,MAAAA,EAAE,CAACipB,SAAD,CAAF,CAAcD,WAAW,CAACQ,MAA1B,EAAkCzd,MAAM,CAACgb,UAAzC,EAAqD/Y,eAArD,CAAA,CAAA;IACD,KAAA;IACF,GA3BgC;;;IA6BjC,EAAA,IAAI1B,MAAM,CAACoc,aAAP,IAAwBpc,MAAM,CAACqc,wBAAnC,EAA6D;QAC3D3oB,EAAE,CAACipB,SAAD,CAAF,CAAc,OAAd,EAAuBld,MAAM,CAAC0c,OAA9B,EAAuC,IAAvC,CAAA,CAAA;IACD,GAAA;;MACD,IAAInc,MAAM,CAAC+J,OAAX,EAAoB;QAClB7J,SAAS,CAACyc,SAAD,CAAT,CAAqB,QAArB,EAA+Bld,MAAM,CAAC8c,QAAtC,CAAA,CAAA;IACD,GAlCgC;;;MAqCjC,IAAIvc,MAAM,CAACmd,oBAAX,EAAiC;IAC/B1d,IAAAA,MAAM,CAACmd,YAAD,CAAN,CACEva,MAAM,CAACC,GAAP,IAAcD,MAAM,CAACE,OAArB,GACI,yCADJ,GAEI,uBAHN,EAIEsZ,QAJF,EAKE,IALF,CAAA,CAAA;IAOD,GARD,MAQO;QACLpc,MAAM,CAACmd,YAAD,CAAN,CAAqB,gBAArB,EAAuCf,QAAvC,EAAiD,IAAjD,CAAA,CAAA;IACD,GAAA;IACF,CAhDD,CAAA;;IAkDA,SAASuB,YAAT,GAAwB;MACtB,MAAM3d,MAAM,GAAG,IAAf,CAAA;MACA,MAAMrO,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM;QAAE8O,MAAF;IAAUoB,IAAAA,OAAAA;IAAV,GAAA,GAAsB3B,MAA5B,CAAA;MAEAA,MAAM,CAAC6W,YAAP,GAAsBA,YAAY,CAAC+G,IAAb,CAAkB5d,MAAlB,CAAtB,CAAA;MACAA,MAAM,CAAC2Z,WAAP,GAAqBA,WAAW,CAACiE,IAAZ,CAAiB5d,MAAjB,CAArB,CAAA;MACAA,MAAM,CAACgb,UAAP,GAAoBA,UAAU,CAAC4C,IAAX,CAAgB5d,MAAhB,CAApB,CAAA;;MAEA,IAAIO,MAAM,CAAC+J,OAAX,EAAoB;QAClBtK,MAAM,CAAC8c,QAAP,GAAkBA,QAAQ,CAACc,IAAT,CAAc5d,MAAd,CAAlB,CAAA;IACD,GAAA;;MAEDA,MAAM,CAAC0c,OAAP,GAAiBA,OAAO,CAACkB,IAAR,CAAa5d,MAAb,CAAjB,CAAA;;IAEA,EAAA,IAAI2B,OAAO,CAACI,KAAR,IAAiB,CAACgb,kBAAtB,EAA0C;IACxCprB,IAAAA,QAAQ,CAAC7B,gBAAT,CAA0B,YAA1B,EAAwCktB,kBAAxC,CAAA,CAAA;IACAD,IAAAA,kBAAkB,GAAG,IAArB,CAAA;IACD,GAAA;;IAED5kB,EAAAA,MAAM,CAAC6H,MAAD,EAAS,IAAT,CAAN,CAAA;IACD,CAAA;;IAED,SAAS6d,YAAT,GAAwB;MACtB,MAAM7d,MAAM,GAAG,IAAf,CAAA;IACA7H,EAAAA,MAAM,CAAC6H,MAAD,EAAS,KAAT,CAAN,CAAA;IACD,CAAA;;AAED,mBAAe;MACb2d,YADa;IAEbE,EAAAA,YAAAA;IAFa,CAAf;;ICxFA,MAAMC,aAAa,GAAG,CAAC9d,MAAD,EAASO,MAAT,KAAoB;IACxC,EAAA,OAAOP,MAAM,CAACwK,IAAP,IAAejK,MAAM,CAACiK,IAAtB,IAA8BjK,MAAM,CAACiK,IAAP,CAAYC,IAAZ,GAAmB,CAAxD,CAAA;IACD,CAFD,CAAA;;IAIe,SAAS4R,aAAT,GAAyB;MACtC,MAAMrc,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAE6N,WAAF;QAAenJ,WAAf;IAA4BiP,IAAAA,YAAY,GAAG,CAA3C;QAA8CpT,MAA9C;IAAsDkG,IAAAA,GAAAA;IAAtD,GAAA,GAA8DzG,MAApE,CAAA;IACA,EAAA,MAAM8K,WAAW,GAAGvK,MAAM,CAACuK,WAA3B,CAAA;IACA,EAAA,IAAI,CAACA,WAAD,IAAiBA,WAAW,IAAI1b,MAAM,CAACI,IAAP,CAAYsb,WAAZ,EAAyBnb,MAAzB,KAAoC,CAAxE,EAA4E,OAJtC;;IAOtC,EAAA,MAAMouB,UAAU,GAAG/d,MAAM,CAACge,aAAP,CAAqBlT,WAArB,EAAkC9K,MAAM,CAACO,MAAP,CAAc0d,eAAhD,EAAiEje,MAAM,CAAC/L,EAAxE,CAAnB,CAAA;MAEA,IAAI,CAAC8pB,UAAD,IAAe/d,MAAM,CAACke,iBAAP,KAA6BH,UAAhD,EAA4D,OAAA;MAE5D,MAAMI,oBAAoB,GAAGJ,UAAU,IAAIjT,WAAd,GAA4BA,WAAW,CAACiT,UAAD,CAAvC,GAAsDpnB,SAAnF,CAAA;IACA,EAAA,MAAMynB,gBAAgB,GAAGD,oBAAoB,IAAIne,MAAM,CAACqe,cAAxD,CAAA;IACA,EAAA,MAAMC,WAAW,GAAGR,aAAa,CAAC9d,MAAD,EAASO,MAAT,CAAjC,CAAA;IACA,EAAA,MAAMge,UAAU,GAAGT,aAAa,CAAC9d,MAAD,EAASoe,gBAAT,CAAhC,CAAA;IAEA,EAAA,MAAMI,UAAU,GAAGje,MAAM,CAACwI,OAA1B,CAAA;;IAEA,EAAA,IAAIuV,WAAW,IAAI,CAACC,UAApB,EAAgC;QAC9B9X,GAAG,CAACzQ,WAAJ,CACG,CAAEuK,EAAAA,MAAM,CAAC6M,sBAAuB,CAAO7M,KAAAA,EAAAA,MAAM,CAAC6M,sBAAuB,CADxE,WAAA,CAAA,CAAA,CAAA;IAGApN,IAAAA,MAAM,CAACye,oBAAP,EAAA,CAAA;IACD,GALD,MAKO,IAAI,CAACH,WAAD,IAAgBC,UAApB,EAAgC;IACrC9X,IAAAA,GAAG,CAACjR,QAAJ,CAAc,GAAE+K,MAAM,CAAC6M,sBAAuB,CAA9C,IAAA,CAAA,CAAA,CAAA;;IACA,IAAA,IACGgR,gBAAgB,CAAC5T,IAAjB,CAAsBkU,IAAtB,IAA8BN,gBAAgB,CAAC5T,IAAjB,CAAsBkU,IAAtB,KAA+B,QAA9D,IACC,CAACN,gBAAgB,CAAC5T,IAAjB,CAAsBkU,IAAvB,IAA+Bne,MAAM,CAACiK,IAAP,CAAYkU,IAAZ,KAAqB,QAFvD,EAGE;IACAjY,MAAAA,GAAG,CAACjR,QAAJ,CAAc,GAAE+K,MAAM,CAAC6M,sBAAuB,CAA9C,WAAA,CAAA,CAAA,CAAA;IACD,KAAA;;IACDpN,IAAAA,MAAM,CAACye,oBAAP,EAAA,CAAA;IACD,GAhCqC;;;MAmCtC,CAAC,YAAD,EAAe,YAAf,EAA6B,WAA7B,CAA0ChvB,CAAAA,OAA1C,CAAmDoL,IAAD,IAAU;IAC1D,IAAA,MAAM8jB,gBAAgB,GAAGpe,MAAM,CAAC1F,IAAD,CAAN,IAAgB0F,MAAM,CAAC1F,IAAD,CAAN,CAAakO,OAAtD,CAAA;IACA,IAAA,MAAM6V,eAAe,GAAGR,gBAAgB,CAACvjB,IAAD,CAAhB,IAA0BujB,gBAAgB,CAACvjB,IAAD,CAAhB,CAAuBkO,OAAzE,CAAA;;IACA,IAAA,IAAI4V,gBAAgB,IAAI,CAACC,eAAzB,EAA0C;IACxC5e,MAAAA,MAAM,CAACnF,IAAD,CAAN,CAAagkB,OAAb,EAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAI,CAACF,gBAAD,IAAqBC,eAAzB,EAA0C;IACxC5e,MAAAA,MAAM,CAACnF,IAAD,CAAN,CAAaikB,MAAb,EAAA,CAAA;IACD,KAAA;OARH,CAAA,CAAA;IAWA,EAAA,MAAMC,gBAAgB,GACpBX,gBAAgB,CAAC9L,SAAjB,IAA8B8L,gBAAgB,CAAC9L,SAAjB,KAA+B/R,MAAM,CAAC+R,SADtE,CAAA;IAEA,EAAA,MAAM0M,WAAW,GACfze,MAAM,CAACwP,IAAP,KAAgBqO,gBAAgB,CAACvT,aAAjB,KAAmCtK,MAAM,CAACsK,aAA1C,IAA2DkU,gBAA3E,CADF,CAAA;;MAGA,IAAIA,gBAAgB,IAAIra,WAAxB,EAAqC;IACnC1E,IAAAA,MAAM,CAACif,eAAP,EAAA,CAAA;IACD,GAAA;;IACD5vB,EAAAA,MAAM,CAAC2Q,MAAM,CAACO,MAAR,EAAgB6d,gBAAhB,CAAN,CAAA;IAEA,EAAA,MAAMc,SAAS,GAAGlf,MAAM,CAACO,MAAP,CAAcwI,OAAhC,CAAA;IAEA3Z,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;IACpBsZ,IAAAA,cAAc,EAAEtZ,MAAM,CAACO,MAAP,CAAc+Y,cADV;IAEpBnG,IAAAA,cAAc,EAAEnT,MAAM,CAACO,MAAP,CAAc4S,cAFV;IAGpBC,IAAAA,cAAc,EAAEpT,MAAM,CAACO,MAAP,CAAc6S,cAAAA;OAHhC,CAAA,CAAA;;IAMA,EAAA,IAAIoL,UAAU,IAAI,CAACU,SAAnB,EAA8B;IAC5Blf,IAAAA,MAAM,CAAC6e,OAAP,EAAA,CAAA;IACD,GAFD,MAEO,IAAI,CAACL,UAAD,IAAeU,SAAnB,EAA8B;IACnClf,IAAAA,MAAM,CAAC8e,MAAP,EAAA,CAAA;IACD,GAAA;;MAED9e,MAAM,CAACke,iBAAP,GAA2BH,UAA3B,CAAA;IAEA/d,EAAAA,MAAM,CAACqE,IAAP,CAAY,mBAAZ,EAAiC+Z,gBAAjC,CAAA,CAAA;;MAEA,IAAIY,WAAW,IAAIta,WAAnB,EAAgC;IAC9B1E,IAAAA,MAAM,CAACgW,WAAP,EAAA,CAAA;IACAhW,IAAAA,MAAM,CAACmV,UAAP,EAAA,CAAA;IACAnV,IAAAA,MAAM,CAACoI,YAAP,EAAA,CAAA;IACApI,IAAAA,MAAM,CAACyS,OAAP,CAAe5E,WAAW,GAAG8F,YAAd,GAA6B3T,MAAM,CAAC2T,YAAnD,EAAiE,CAAjE,EAAoE,KAApE,CAAA,CAAA;IACD,GAAA;;IAED3T,EAAAA,MAAM,CAACqE,IAAP,CAAY,YAAZ,EAA0B+Z,gBAA1B,CAAA,CAAA;IACD;;ICtFc,SAASJ,aAAT,CAAuBlT,WAAvB,EAAoC2L,IAApC,EAAqD0I,WAArD,EAAkE;IAAA,EAAA,IAA9B1I,IAA8B,KAAA,KAAA,CAAA,EAAA;IAA9BA,IAAAA,IAA8B,GAAvB,QAAuB,CAAA;IAAA,GAAA;;MAC/E,IAAI,CAAC3L,WAAD,IAAiB2L,IAAI,KAAK,WAAT,IAAwB,CAAC0I,WAA9C,EAA4D,OAAOxoB,SAAP,CAAA;MAC5D,IAAIonB,UAAU,GAAG,KAAjB,CAAA;MAEA,MAAM5qB,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,MAAMmsB,aAAa,GAAG3I,IAAI,KAAK,QAAT,GAAoBtjB,MAAM,CAACksB,WAA3B,GAAyCF,WAAW,CAACvX,YAA3E,CAAA;MAEA,MAAM0X,MAAM,GAAGlwB,MAAM,CAACI,IAAP,CAAYsb,WAAZ,CAAyBnV,CAAAA,GAAzB,CAA8B4pB,KAAD,IAAW;IACrD,IAAA,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAAC5qB,OAAN,CAAc,GAAd,CAAuB,KAAA,CAAxD,EAA2D;UACzD,MAAM6qB,QAAQ,GAAG3lB,UAAU,CAAC0lB,KAAK,CAACE,MAAN,CAAa,CAAb,CAAD,CAA3B,CAAA;IACA,MAAA,MAAM/rB,KAAK,GAAG0rB,aAAa,GAAGI,QAA9B,CAAA;UACA,OAAO;YAAE9rB,KAAF;IAAS6rB,QAAAA,KAAAA;WAAhB,CAAA;IACD,KAAA;;QACD,OAAO;IAAE7rB,MAAAA,KAAK,EAAE6rB,KAAT;IAAgBA,MAAAA,KAAAA;SAAvB,CAAA;IACD,GAPc,CAAf,CAAA;MASAD,MAAM,CAACI,IAAP,CAAY,CAAC3qB,CAAD,EAAI4qB,CAAJ,KAAU5X,QAAQ,CAAChT,CAAC,CAACrB,KAAH,EAAU,EAAV,CAAR,GAAwBqU,QAAQ,CAAC4X,CAAC,CAACjsB,KAAH,EAAU,EAAV,CAAtD,CAAA,CAAA;;IACA,EAAA,KAAK,IAAIgB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG4qB,MAAM,CAAC3vB,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;QACzC,MAAM;UAAE6qB,KAAF;IAAS7rB,MAAAA,KAAAA;SAAU4rB,GAAAA,MAAM,CAAC5qB,CAAD,CAA/B,CAAA;;QACA,IAAI+hB,IAAI,KAAK,QAAb,EAAuB;UACrB,IAAItjB,MAAM,CAACP,UAAP,CAAmB,eAAcc,KAAM,CAAA,GAAA,CAAvC,CAA6C0H,CAAAA,OAAjD,EAA0D;IACxD2iB,QAAAA,UAAU,GAAGwB,KAAb,CAAA;IACD,OAAA;IACF,KAJD,MAIO,IAAI7rB,KAAK,IAAIyrB,WAAW,CAACxX,WAAzB,EAAsC;IAC3CoW,MAAAA,UAAU,GAAGwB,KAAb,CAAA;IACD,KAAA;IACF,GAAA;;MACD,OAAOxB,UAAU,IAAI,KAArB,CAAA;IACD;;AC3BD,sBAAe;MAAE1B,aAAF;IAAiB2B,EAAAA,aAAAA;IAAjB,CAAf;;ICHA,SAAS4B,cAAT,CAAwB/a,OAAxB,EAAiCgb,MAAjC,EAAyC;MACvC,MAAMC,aAAa,GAAG,EAAtB,CAAA;IACAjb,EAAAA,OAAO,CAACpV,OAAR,CAAiBswB,IAAD,IAAU;IACxB,IAAA,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;UAC5B3wB,MAAM,CAACI,IAAP,CAAYuwB,IAAZ,EAAkBtwB,OAAlB,CAA2BiG,UAAD,IAAgB;IACxC,QAAA,IAAIqqB,IAAI,CAACrqB,UAAD,CAAR,EAAsB;IACpBoqB,UAAAA,aAAa,CAAC3rB,IAAd,CAAmB0rB,MAAM,GAAGnqB,UAA5B,CAAA,CAAA;IACD,SAAA;WAHH,CAAA,CAAA;IAKD,KAND,MAMO,IAAI,OAAOqqB,IAAP,KAAgB,QAApB,EAA8B;IACnCD,MAAAA,aAAa,CAAC3rB,IAAd,CAAmB0rB,MAAM,GAAGE,IAA5B,CAAA,CAAA;IACD,KAAA;OATH,CAAA,CAAA;IAWA,EAAA,OAAOD,aAAP,CAAA;IACD,CAAA;;IAEc,SAASE,UAAT,GAAsB;MACnC,MAAMhgB,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAEtK,UAAF;QAAc6K,MAAd;QAAsBoI,GAAtB;QAA2BlC,GAA3B;QAAgC7D,MAAhC;IAAwCjB,IAAAA,OAAAA;OAAY3B,GAAAA,MAA1D,CAFmC;;MAInC,MAAMigB,QAAQ,GAAGL,cAAc,CAAC,CAC9B,aAD8B,EAE9Brf,MAAM,CAAC+R,SAFuB,EAG9B;QAAE,gBAAkB,EAAA,CAAC3Q,OAAO,CAACI,KAAAA;IAA7B,GAH8B,EAI9B;QAAE,WAAa/B,EAAAA,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IAA0BnZ,MAAM,CAACmZ,QAAP,CAAgB3Q,OAAAA;IAAzD,GAJ8B,EAK9B;IAAE,IAAA,YAAA,EAAcxI,MAAM,CAAC8O,UAAAA;IAAvB,GAL8B,EAM9B;QAAE,KAAO1G,EAAAA,GAAAA;IAAT,GAN8B,EAO9B;QAAE,MAAQpI,EAAAA,MAAM,CAACiK,IAAP,IAAejK,MAAM,CAACiK,IAAP,CAAYC,IAAZ,GAAmB,CAAA;IAA5C,GAP8B,EAQ9B;IAAE,IAAA,aAAA,EAAelK,MAAM,CAACiK,IAAP,IAAejK,MAAM,CAACiK,IAAP,CAAYC,IAAZ,GAAmB,CAAlC,IAAuClK,MAAM,CAACiK,IAAP,CAAYkU,IAAZ,KAAqB,QAAA;IAA7E,GAR8B,EAS9B;IAAE,IAAA,SAAA,EAAW9b,MAAM,CAACE,OAAAA;IAApB,GAT8B,EAU9B;IAAE,IAAA,KAAA,EAAOF,MAAM,CAACC,GAAAA;IAAhB,GAV8B,EAW9B;IAAE,IAAA,UAAA,EAAYtC,MAAM,CAAC+J,OAAAA;IAArB,GAX8B,EAY9B;IAAE,IAAA,UAAA,EAAY/J,MAAM,CAAC+J,OAAP,IAAkB/J,MAAM,CAAC8J,cAAAA;IAAvC,GAZ8B,EAa9B;IAAE,IAAA,gBAAA,EAAkB9J,MAAM,CAAC0M,mBAAAA;IAA3B,GAb8B,CAAD,EAc5B1M,MAAM,CAAC6M,sBAdqB,CAA/B,CAAA;IAeA1X,EAAAA,UAAU,CAACvB,IAAX,CAAgB,GAAG8rB,QAAnB,CAAA,CAAA;MACAxZ,GAAG,CAACjR,QAAJ,CAAa,CAAC,GAAGE,UAAJ,CAAgByI,CAAAA,IAAhB,CAAqB,GAArB,CAAb,CAAA,CAAA;IACA6B,EAAAA,MAAM,CAACye,oBAAP,EAAA,CAAA;IACD;;ICtCc,SAASyB,aAAT,GAAyB;MACtC,MAAMlgB,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAEyG,GAAF;IAAO/Q,IAAAA,UAAAA;IAAP,GAAA,GAAsBsK,MAA5B,CAAA;MAEAyG,GAAG,CAACzQ,WAAJ,CAAgBN,UAAU,CAACyI,IAAX,CAAgB,GAAhB,CAAhB,CAAA,CAAA;IACA6B,EAAAA,MAAM,CAACye,oBAAP,EAAA,CAAA;IACD;;ACHD,kBAAe;MAAEuB,UAAF;IAAcE,EAAAA,aAAAA;IAAd,CAAf;;ICAe,SAASC,SAAT,CAAmBC,OAAnB,EAA4B7wB,GAA5B,EAAiC8wB,MAAjC,EAAyCC,KAAzC,EAAgDC,gBAAhD,EAAkEztB,QAAlE,EAA4E;MACzF,MAAMK,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,EAAA,IAAIutB,KAAJ,CAAA;;IACA,EAAA,SAASC,OAAT,GAAmB;QACjB,IAAI3tB,QAAJ,EAAcA,QAAQ,EAAA,CAAA;IACvB,GAAA;;IACD,EAAA,MAAM4tB,SAAS,GAAG1rB,CAAC,CAACorB,OAAD,CAAD,CAAW1jB,MAAX,CAAkB,SAAlB,CAA6B,CAAA,CAA7B,CAAlB,CAAA;;MAEA,IAAI,CAACgkB,SAAD,KAAe,CAACN,OAAO,CAACO,QAAT,IAAqB,CAACJ,gBAArC,CAAJ,EAA4D;IAC1D,IAAA,IAAIhxB,GAAJ,EAAS;IACPixB,MAAAA,KAAK,GAAG,IAAIrtB,MAAM,CAACZ,KAAX,EAAR,CAAA;UACAiuB,KAAK,CAACI,MAAN,GAAeH,OAAf,CAAA;UACAD,KAAK,CAACK,OAAN,GAAgBJ,OAAhB,CAAA;;IACA,MAAA,IAAIH,KAAJ,EAAW;YACTE,KAAK,CAACF,KAAN,GAAcA,KAAd,CAAA;IACD,OAAA;;IACD,MAAA,IAAID,MAAJ,EAAY;YACVG,KAAK,CAACH,MAAN,GAAeA,MAAf,CAAA;IACD,OAAA;;IACD,MAAA,IAAI9wB,GAAJ,EAAS;YACPixB,KAAK,CAACjxB,GAAN,GAAYA,GAAZ,CAAA;IACD,OAAA;IACF,KAbD,MAaO;UACLkxB,OAAO,EAAA,CAAA;IACR,KAAA;IACF,GAjBD,MAiBO;IACL;QACAA,OAAO,EAAA,CAAA;IACR,GAAA;IACF;;IChCc,SAASK,aAAT,GAAyB;MACtC,MAAM9gB,MAAM,GAAG,IAAf,CAAA;MACAA,MAAM,CAAC+gB,YAAP,GAAsB/gB,MAAM,CAACyG,GAAP,CAAW5J,IAAX,CAAgB,KAAhB,CAAtB,CAAA;;IACA,EAAA,SAAS4jB,OAAT,GAAmB;IACjB,IAAA,IAAI,OAAOzgB,MAAP,KAAkB,WAAlB,IAAiCA,MAAM,KAAK,IAA5C,IAAoD,CAACA,MAArD,IAA+DA,MAAM,CAACyE,SAA1E,EAAqF,OAAA;QACrF,IAAIzE,MAAM,CAACghB,YAAP,KAAwBrqB,SAA5B,EAAuCqJ,MAAM,CAACghB,YAAP,IAAuB,CAAvB,CAAA;;QACvC,IAAIhhB,MAAM,CAACghB,YAAP,KAAwBhhB,MAAM,CAAC+gB,YAAP,CAAoBpxB,MAAhD,EAAwD;UACtD,IAAIqQ,MAAM,CAACO,MAAP,CAAc0gB,mBAAlB,EAAuCjhB,MAAM,CAACkhB,MAAP,EAAA,CAAA;UACvClhB,MAAM,CAACqE,IAAP,CAAY,aAAZ,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,KAAK,IAAI3P,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsL,MAAM,CAAC+gB,YAAP,CAAoBpxB,MAAxC,EAAgD+E,CAAC,IAAI,CAArD,EAAwD;IACtD,IAAA,MAAM0rB,OAAO,GAAGpgB,MAAM,CAAC+gB,YAAP,CAAoBrsB,CAApB,CAAhB,CAAA;IACAsL,IAAAA,MAAM,CAACmgB,SAAP,CACEC,OADF,EAEEA,OAAO,CAACe,UAAR,IAAsBf,OAAO,CAAC1pB,YAAR,CAAqB,KAArB,CAFxB,EAGE0pB,OAAO,CAACC,MAAR,IAAkBD,OAAO,CAAC1pB,YAAR,CAAqB,QAArB,CAHpB,EAIE0pB,OAAO,CAACE,KAAR,IAAiBF,OAAO,CAAC1pB,YAAR,CAAqB,OAArB,CAJnB,EAKE,IALF,EAME+pB,OANF,CAAA,CAAA;IAQD,GAAA;IACF;;ACnBD,iBAAe;MACbN,SADa;IAEbW,EAAAA,aAAAA;IAFa,CAAf;;ICHA,SAAS9T,aAAT,GAAyB;MACvB,MAAMhN,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;IAAEoW,IAAAA,QAAQ,EAAEgL,SAAZ;IAAuB7gB,IAAAA,MAAAA;IAAvB,GAAA,GAAkCP,MAAxC,CAAA;MACA,MAAM;IAAEwJ,IAAAA,kBAAAA;IAAF,GAAA,GAAyBjJ,MAA/B,CAAA;;IAEA,EAAA,IAAIiJ,kBAAJ,EAAwB;QACtB,MAAM6X,cAAc,GAAGrhB,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CAA9C,CAAA;IACA,IAAA,MAAM2xB,kBAAkB,GACtBthB,MAAM,CAACqJ,UAAP,CAAkBgY,cAAlB,CAAA,GACArhB,MAAM,CAACsJ,eAAP,CAAuB+X,cAAvB,CADA,GAEA7X,kBAAkB,GAAG,CAHvB,CAAA;IAIAxJ,IAAAA,MAAM,CAACoW,QAAP,GAAkBpW,MAAM,CAACmI,IAAP,GAAcmZ,kBAAhC,CAAA;IACD,GAPD,MAOO;QACLthB,MAAM,CAACoW,QAAP,GAAkBpW,MAAM,CAACoJ,QAAP,CAAgBzZ,MAAhB,KAA2B,CAA7C,CAAA;IACD,GAAA;;IACD,EAAA,IAAI4Q,MAAM,CAAC4S,cAAP,KAA0B,IAA9B,EAAoC;IAClCnT,IAAAA,MAAM,CAACmT,cAAP,GAAwB,CAACnT,MAAM,CAACoW,QAAhC,CAAA;IACD,GAAA;;IACD,EAAA,IAAI7V,MAAM,CAAC6S,cAAP,KAA0B,IAA9B,EAAoC;IAClCpT,IAAAA,MAAM,CAACoT,cAAP,GAAwB,CAACpT,MAAM,CAACoW,QAAhC,CAAA;IACD,GAAA;;IAED,EAAA,IAAIgL,SAAS,IAAIA,SAAS,KAAKphB,MAAM,CAACoW,QAAtC,EAAgD;QAC9CpW,MAAM,CAACkP,KAAP,GAAe,KAAf,CAAA;IACD,GAAA;;IACD,EAAA,IAAIkS,SAAS,KAAKphB,MAAM,CAACoW,QAAzB,EAAmC;QACjCpW,MAAM,CAACqE,IAAP,CAAYrE,MAAM,CAACoW,QAAP,GAAkB,MAAlB,GAA2B,QAAvC,CAAA,CAAA;IACD,GAAA;IACF,CAAA;;AAED,0BAAe;IAAEpJ,EAAAA,aAAAA;IAAF,CAAf;;AC9BA,mBAAe;IACb1G,EAAAA,IAAI,EAAE,IADO;IAEbgM,EAAAA,SAAS,EAAE,YAFE;IAGb+D,EAAAA,iBAAiB,EAAE,SAHN;IAIbtD,EAAAA,YAAY,EAAE,CAJD;IAKbvS,EAAAA,KAAK,EAAE,GALM;IAMb8J,EAAAA,OAAO,EAAE,KANI;IAOboT,EAAAA,oBAAoB,EAAE,IAPT;IAQblY,EAAAA,cAAc,EAAE,IARH;IASb8U,EAAAA,MAAM,EAAE,KATK;IAUbiH,EAAAA,cAAc,EAAE,KAVH;IAWbxY,EAAAA,OAAO,EAAE,IAXI;IAYbqQ,EAAAA,iBAAiB,EAAE,uDAZN;IAcb;IACApW,EAAAA,KAAK,EAAE,IAfM;IAgBbE,EAAAA,MAAM,EAAE,IAhBK;IAkBb;IACA8O,EAAAA,8BAA8B,EAAE,KAnBnB;IAqBb;IACAlgB,EAAAA,SAAS,EAAE,IAtBE;IAuBb0vB,EAAAA,GAAG,EAAE,IAvBQ;IAyBb;IACAhJ,EAAAA,kBAAkB,EAAE,KA1BP;IA2BbE,EAAAA,kBAAkB,EAAE,EA3BP;IA6Bb;IACArJ,EAAAA,UAAU,EAAE,KA9BC;IAgCb;IACAvD,EAAAA,cAAc,EAAE,KAjCH;IAmCb;IACAoF,EAAAA,gBAAgB,EAAE,KApCL;IAsCb;IACArF,EAAAA,MAAM,EAAE,OAvCK;IAuCI;IAEjB;IACAf,EAAAA,WAAW,EAAEnU,SA1CA;IA2CbsnB,EAAAA,eAAe,EAAE,QA3CJ;IA6Cb;IACApU,EAAAA,YAAY,EAAE,CA9CD;IA+CbgB,EAAAA,aAAa,EAAE,CA/CF;IAgDbc,EAAAA,cAAc,EAAE,CAhDH;IAiDbC,EAAAA,kBAAkB,EAAE,CAjDP;IAkDbkI,EAAAA,kBAAkB,EAAE,KAlDP;IAmDbzJ,EAAAA,cAAc,EAAE,KAnDH;IAoDb+B,EAAAA,oBAAoB,EAAE,KApDT;IAqDb5C,EAAAA,kBAAkB,EAAE,CArDP;IAqDU;IACvBE,EAAAA,iBAAiB,EAAE,CAtDN;IAsDS;IACtB+G,EAAAA,mBAAmB,EAAE,IAvDR;IAwDbhE,EAAAA,wBAAwB,EAAE,KAxDb;IA0Db;IACAM,EAAAA,aAAa,EAAE,IA3DF;IA6Db;IACA3B,EAAAA,YAAY,EAAE,KA9DD;IAgEb;IACAuP,EAAAA,UAAU,EAAE,CAjEC;IAkEbR,EAAAA,UAAU,EAAE,EAlEC;IAmEbhE,EAAAA,aAAa,EAAE,IAnEF;IAoEb4F,EAAAA,WAAW,EAAE,IApEA;IAqEbF,EAAAA,UAAU,EAAE,IArEC;IAsEbC,EAAAA,eAAe,EAAE,GAtEJ;IAuEbF,EAAAA,YAAY,EAAE,GAvED;IAwEbb,EAAAA,YAAY,EAAE,IAxED;IAyEbzB,EAAAA,cAAc,EAAE,IAzEH;IA0EbvE,EAAAA,SAAS,EAAE,CA1EE;IA2EbsF,EAAAA,wBAAwB,EAAE,KA3Eb;IA4Ebd,EAAAA,wBAAwB,EAAE,IA5Eb;IA6EbC,EAAAA,6BAA6B,EAAE,KA7ElB;IA8EbO,EAAAA,mBAAmB,EAAE,KA9ER;IAgFb;IACA0H,EAAAA,iBAAiB,EAAE,IAjFN;IAmFb;IACA3G,EAAAA,UAAU,EAAE,IApFC;IAqFbD,EAAAA,eAAe,EAAE,IArFJ;IAuFb;IACA5N,EAAAA,mBAAmB,EAAE,KAxFR;IA0Fb;IACAyN,EAAAA,UAAU,EAAE,KA3FC;IA6Fb;IACAiC,EAAAA,aAAa,EAAE,IA9FF;IA+FbC,EAAAA,wBAAwB,EAAE,IA/Fb;IAgGb5L,EAAAA,mBAAmB,EAAE,KAhGR;IAkGb;IACA8P,EAAAA,aAAa,EAAE,IAnGF;IAoGbG,EAAAA,mBAAmB,EAAE,IApGR;IAsGb;IACAlR,EAAAA,IAAI,EAAE,KAvGO;IAwGb0F,EAAAA,oBAAoB,EAAE,CAxGT;IAyGb9B,EAAAA,YAAY,EAAE,IAzGD;IA0Gb0B,EAAAA,sBAAsB,EAAE,KA1GX;IA2GbpB,EAAAA,iBAAiB,EAAE,IA3GN;IA6Gb;IACAG,EAAAA,MAAM,EAAE,KA9GK;IAgHb;IACAhB,EAAAA,cAAc,EAAE,IAjHH;IAkHbD,EAAAA,cAAc,EAAE,IAlHH;IAmHb6E,EAAAA,YAAY,EAAE,IAnHD;IAmHO;IACpBF,EAAAA,SAAS,EAAE,IApHE;IAqHbL,EAAAA,cAAc,EAAE,mBArHH;IAsHbG,EAAAA,iBAAiB,EAAE,IAtHN;IAwHb;IACA2F,EAAAA,gBAAgB,EAAE,IAzHL;IA2HbjQ,EAAAA,uBAAuB,EAAE,EA3HZ;IA6Hb;IACAF,EAAAA,sBAAsB,EAAE,SA9HX;IA8HsB;IACnClE,EAAAA,UAAU,EAAE,cA/HC;IAgIbsM,EAAAA,eAAe,EAAE,8BAhIJ;IAiIbhG,EAAAA,gBAAgB,EAAE,qBAjIL;IAkIbG,EAAAA,yBAAyB,EAAE,+BAlId;IAmIbxB,EAAAA,iBAAiB,EAAE,sBAnIN;IAoIb6B,EAAAA,mBAAmB,EAAE,wBApIR;IAqIbP,EAAAA,cAAc,EAAE,mBArIH;IAsIbG,EAAAA,uBAAuB,EAAE,6BAtIZ;IAuIbF,EAAAA,cAAc,EAAE,mBAvIH;IAwIbG,EAAAA,uBAAuB,EAAE,6BAxIZ;IAyIb6R,EAAAA,YAAY,EAAE,gBAzID;IA2Ib;IACA/Q,EAAAA,kBAAkB,EAAE,IA5IP;IA8Ib;IACAgR,EAAAA,YAAY,EAAE,KAAA;IA/ID,CAAf;;ICEe,SAASC,kBAAT,CAA4BrhB,MAA5B,EAAoCshB,gBAApC,EAAsD;IACnE,EAAA,OAAO,SAASnc,YAAT,CAAsBxW,GAAtB,EAAgC;IAAA,IAAA,IAAVA,GAAU,KAAA,KAAA,CAAA,EAAA;IAAVA,MAAAA,GAAU,GAAJ,EAAI,CAAA;IAAA,KAAA;;QACrC,MAAM4yB,eAAe,GAAG1yB,MAAM,CAACI,IAAP,CAAYN,GAAZ,CAAiB,CAAA,CAAjB,CAAxB,CAAA;IACA,IAAA,MAAM6yB,YAAY,GAAG7yB,GAAG,CAAC4yB,eAAD,CAAxB,CAAA;;QACA,IAAI,OAAOC,YAAP,KAAwB,QAAxB,IAAoCA,YAAY,KAAK,IAAzD,EAA+D;IAC7D1yB,MAAAA,MAAM,CAACwyB,gBAAD,EAAmB3yB,GAAnB,CAAN,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACD,IAAA,IACE,CAAC,YAAD,EAAe,YAAf,EAA6B,WAA7B,EAA0CyF,OAA1C,CAAkDmtB,eAAlD,CAAsE,IAAA,CAAtE,IACAvhB,MAAM,CAACuhB,eAAD,CAAN,KAA4B,IAF9B,EAGE;UACAvhB,MAAM,CAACuhB,eAAD,CAAN,GAA0B;IAAEE,QAAAA,IAAI,EAAE,IAAA;WAAlC,CAAA;IACD,KAAA;;QACD,IAAI,EAAEF,eAAe,IAAIvhB,MAAnB,IAA6B,SAAawhB,IAAAA,YAA5C,CAAJ,EAA+D;IAC7D1yB,MAAAA,MAAM,CAACwyB,gBAAD,EAAmB3yB,GAAnB,CAAN,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACD,IAAA,IAAIqR,MAAM,CAACuhB,eAAD,CAAN,KAA4B,IAAhC,EAAsC;UACpCvhB,MAAM,CAACuhB,eAAD,CAAN,GAA0B;IAAE/Y,QAAAA,OAAO,EAAE,IAAA;WAArC,CAAA;IACD,KAAA;;IACD,IAAA,IAAI,OAAOxI,MAAM,CAACuhB,eAAD,CAAb,KAAmC,QAAnC,IAA+C,EAAE,aAAavhB,MAAM,CAACuhB,eAAD,CAArB,CAAnD,EAA4F;IAC1FvhB,MAAAA,MAAM,CAACuhB,eAAD,CAAN,CAAwB/Y,OAAxB,GAAkC,IAAlC,CAAA;IACD,KAAA;;QACD,IAAI,CAACxI,MAAM,CAACuhB,eAAD,CAAX,EAA8BvhB,MAAM,CAACuhB,eAAD,CAAN,GAA0B;IAAE/Y,MAAAA,OAAO,EAAE,KAAA;SAArC,CAAA;IAC9B1Z,IAAAA,MAAM,CAACwyB,gBAAD,EAAmB3yB,GAAnB,CAAN,CAAA;OAxBF,CAAA;IA0BD;;IC7BD;IA4BA,MAAM+yB,UAAU,GAAG;MACjBC,aADiB;MAEjBhB,MAFiB;MAGjB9gB,SAHiB;MAIjBpJ,UAJiB;MAKjB+T,KALiB;MAMjBgF,IANiB;MAOjB2K,UAPiB;cAQjBviB,QARiB;MASjB2S,WATiB;qBAUjBkC,eAViB;MAWjBvX,OAXiB;IAYjB0sB,EAAAA,MAAAA;IAZiB,CAAnB,CAAA;IAeA,MAAMC,gBAAgB,GAAG,EAAzB,CAAA;;IAEA,MAAMC,MAAN,CAAa;IACXlzB,EAAAA,WAAW,GAAU;IACnB,IAAA,IAAI8E,EAAJ,CAAA;IACA,IAAA,IAAIsM,MAAJ,CAAA;;IAFmB,IAAA,KAAA,IAAA,IAAA,GAAA,SAAA,CAAA,MAAA,EAANnJ,IAAM,GAAA,IAAA,KAAA,CAAA,IAAA,CAAA,EAAA,IAAA,GAAA,CAAA,EAAA,IAAA,GAAA,IAAA,EAAA,IAAA,EAAA,EAAA;UAANA,IAAM,CAAA,IAAA,CAAA,GAAA,SAAA,CAAA,IAAA,CAAA,CAAA;IAAA,KAAA;;IAGnB,IAAA,IACEA,IAAI,CAACzH,MAAL,KAAgB,CAAhB,IACAyH,IAAI,CAAC,CAAD,CAAJ,CAAQjI,WADR,IAEAC,MAAM,CAACiF,SAAP,CAAiBmK,QAAjB,CAA0BjK,IAA1B,CAA+B6C,IAAI,CAAC,CAAD,CAAnC,CAAA,CAAwCwH,KAAxC,CAA8C,CAA9C,EAAiD,CAAC,CAAlD,CAAA,KAAyD,QAH3D,EAIE;IACA2B,MAAAA,MAAM,GAAGnJ,IAAI,CAAC,CAAD,CAAb,CAAA;IACD,KAND,MAMO;IACL,MAAA,CAACnD,EAAD,EAAKsM,MAAL,CAAA,GAAenJ,IAAf,CAAA;IACD,KAAA;;IACD,IAAA,IAAI,CAACmJ,MAAL,EAAaA,MAAM,GAAG,EAAT,CAAA;IAEbA,IAAAA,MAAM,GAAGlR,MAAM,CAAC,EAAD,EAAKkR,MAAL,CAAf,CAAA;QACA,IAAItM,EAAE,IAAI,CAACsM,MAAM,CAACtM,EAAlB,EAAsBsM,MAAM,CAACtM,EAAP,GAAYA,EAAZ,CAAA;;IAEtB,IAAA,IAAIsM,MAAM,CAACtM,EAAP,IAAae,CAAC,CAACuL,MAAM,CAACtM,EAAR,CAAD,CAAatE,MAAb,GAAsB,CAAvC,EAA0C;UACxC,MAAM2yB,OAAO,GAAG,EAAhB,CAAA;UACAttB,CAAC,CAACuL,MAAM,CAACtM,EAAR,CAAD,CAAa6G,IAAb,CAAmBqkB,WAAD,IAAiB;IACjC,QAAA,MAAMoD,SAAS,GAAGlzB,MAAM,CAAC,EAAD,EAAKkR,MAAL,EAAa;IAAEtM,UAAAA,EAAE,EAAEkrB,WAAAA;IAAN,SAAb,CAAxB,CAAA;IACAmD,QAAAA,OAAO,CAACnuB,IAAR,CAAa,IAAIkuB,MAAJ,CAAWE,SAAX,CAAb,CAAA,CAAA;WAFF,CAAA,CAAA;IAIA,MAAA,OAAOD,OAAP,CAAA;IACD,KAxBkB;;;QA2BnB,MAAMtiB,MAAM,GAAG,IAAf,CAAA;QACAA,MAAM,CAACN,UAAP,GAAoB,IAApB,CAAA;IACAM,IAAAA,MAAM,CAAC2B,OAAP,GAAiBY,UAAU,EAA3B,CAAA;IACAvC,IAAAA,MAAM,CAAC4C,MAAP,GAAgBe,SAAS,CAAC;UAAE7R,SAAS,EAAEyO,MAAM,CAACzO,SAAAA;IAApB,KAAD,CAAzB,CAAA;IACAkO,IAAAA,MAAM,CAAC6D,OAAP,GAAiBM,UAAU,EAA3B,CAAA;QAEAnE,MAAM,CAACgH,eAAP,GAAyB,EAAzB,CAAA;QACAhH,MAAM,CAACsH,kBAAP,GAA4B,EAA5B,CAAA;QACAtH,MAAM,CAACwiB,OAAP,GAAiB,CAAC,GAAGxiB,MAAM,CAACyiB,WAAX,CAAjB,CAAA;;IACA,IAAA,IAAIliB,MAAM,CAACiiB,OAAP,IAAkB5uB,KAAK,CAACM,OAAN,CAAcqM,MAAM,CAACiiB,OAArB,CAAtB,EAAqD;UACnDxiB,MAAM,CAACwiB,OAAP,CAAeruB,IAAf,CAAoB,GAAGoM,MAAM,CAACiiB,OAA9B,CAAA,CAAA;IACD,KAAA;;QAED,MAAMX,gBAAgB,GAAG,EAAzB,CAAA;IAEA7hB,IAAAA,MAAM,CAACwiB,OAAP,CAAe/yB,OAAf,CAAwBizB,GAAD,IAAS;IAC9BA,MAAAA,GAAG,CAAC;YACF1iB,MADE;IAEF0F,QAAAA,YAAY,EAAEkc,kBAAkB,CAACrhB,MAAD,EAASshB,gBAAT,CAF9B;YAGF1qB,EAAE,EAAE6I,MAAM,CAAC7I,EAAP,CAAUymB,IAAV,CAAe5d,MAAf,CAHF;YAIFkH,IAAI,EAAElH,MAAM,CAACkH,IAAP,CAAY0W,IAAZ,CAAiB5d,MAAjB,CAJJ;YAKFvH,GAAG,EAAEuH,MAAM,CAACvH,GAAP,CAAWmlB,IAAX,CAAgB5d,MAAhB,CALH;IAMFqE,QAAAA,IAAI,EAAErE,MAAM,CAACqE,IAAP,CAAYuZ,IAAZ,CAAiB5d,MAAjB,CAAA;IANJ,OAAD,CAAH,CAAA;IAQD,KATD,EA1CmB;;QAsDnB,MAAM2iB,YAAY,GAAGtzB,MAAM,CAAC,EAAD,EAAKuzB,QAAL,EAAef,gBAAf,CAA3B,CAtDmB;;IAyDnB7hB,IAAAA,MAAM,CAACO,MAAP,GAAgBlR,MAAM,CAAC,EAAD,EAAKszB,YAAL,EAAmBP,gBAAnB,EAAqC7hB,MAArC,CAAtB,CAAA;QACAP,MAAM,CAACqe,cAAP,GAAwBhvB,MAAM,CAAC,EAAD,EAAK2Q,MAAM,CAACO,MAAZ,CAA9B,CAAA;QACAP,MAAM,CAAC6iB,YAAP,GAAsBxzB,MAAM,CAAC,EAAD,EAAKkR,MAAL,CAA5B,CA3DmB;;QA8DnB,IAAIP,MAAM,CAACO,MAAP,IAAiBP,MAAM,CAACO,MAAP,CAAcpJ,EAAnC,EAAuC;IACrC/H,MAAAA,MAAM,CAACI,IAAP,CAAYwQ,MAAM,CAACO,MAAP,CAAcpJ,EAA1B,CAA8B1H,CAAAA,OAA9B,CAAuCqzB,SAAD,IAAe;IACnD9iB,QAAAA,MAAM,CAAC7I,EAAP,CAAU2rB,SAAV,EAAqB9iB,MAAM,CAACO,MAAP,CAAcpJ,EAAd,CAAiB2rB,SAAjB,CAArB,CAAA,CAAA;WADF,CAAA,CAAA;IAGD,KAAA;;QACD,IAAI9iB,MAAM,CAACO,MAAP,IAAiBP,MAAM,CAACO,MAAP,CAAc8G,KAAnC,EAA0C;IACxCrH,MAAAA,MAAM,CAACqH,KAAP,CAAarH,MAAM,CAACO,MAAP,CAAc8G,KAA3B,CAAA,CAAA;IACD,KArEkB;;;IAwEnBrH,IAAAA,MAAM,CAAChL,CAAP,GAAWA,CAAX,CAxEmB;;IA2EnB5F,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;IACpB+I,MAAAA,OAAO,EAAE/I,MAAM,CAACO,MAAP,CAAcwI,OADH;UAEpB9U,EAFoB;IAIpB;IACAyB,MAAAA,UAAU,EAAE,EALQ;IAOpB;UACAuT,MAAM,EAAEjU,CAAC,EARW;IASpBqU,MAAAA,UAAU,EAAE,EATQ;IAUpBD,MAAAA,QAAQ,EAAE,EAVU;IAWpBE,MAAAA,eAAe,EAAE,EAXG;;IAapB;IACAzB,MAAAA,YAAY,GAAG;IACb,QAAA,OAAO7H,MAAM,CAACO,MAAP,CAAc+R,SAAd,KAA4B,YAAnC,CAAA;WAfkB;;IAiBpBxK,MAAAA,UAAU,GAAG;IACX,QAAA,OAAO9H,MAAM,CAACO,MAAP,CAAc+R,SAAd,KAA4B,UAAnC,CAAA;WAlBkB;;IAqBpB;IACAzE,MAAAA,WAAW,EAAE,CAtBO;IAuBpB0B,MAAAA,SAAS,EAAE,CAvBS;IAyBpB;IACAN,MAAAA,WAAW,EAAE,IA1BO;IA2BpBC,MAAAA,KAAK,EAAE,KA3Ba;IA6BpB;IACA9O,MAAAA,SAAS,EAAE,CA9BS;IA+BpBqR,MAAAA,iBAAiB,EAAE,CA/BC;IAgCpBxQ,MAAAA,QAAQ,EAAE,CAhCU;IAiCpB8hB,MAAAA,QAAQ,EAAE,CAjCU;IAkCpBhR,MAAAA,SAAS,EAAE,KAlCS;IAoCpB;IACAoB,MAAAA,cAAc,EAAEnT,MAAM,CAACO,MAAP,CAAc4S,cArCV;IAsCpBC,MAAAA,cAAc,EAAEpT,MAAM,CAACO,MAAP,CAAc6S,cAtCV;IAwCpB;UACA6J,WAAW,EAAG,SAASA,WAAT,GAAuB;YACnC,MAAMlb,KAAK,GAAG,CAAC,YAAD,EAAe,WAAf,EAA4B,UAA5B,EAAwC,aAAxC,CAAd,CAAA;YACA,MAAMihB,OAAO,GAAG,CAAC,aAAD,EAAgB,aAAhB,EAA+B,WAA/B,CAAhB,CAAA;YAEAhjB,MAAM,CAACijB,gBAAP,GAA0B;IACxB7F,UAAAA,KAAK,EAAErb,KAAK,CAAC,CAAD,CADY;IAExBsb,UAAAA,IAAI,EAAEtb,KAAK,CAAC,CAAD,CAFa;IAGxBub,UAAAA,GAAG,EAAEvb,KAAK,CAAC,CAAD,CAHc;cAIxB0b,MAAM,EAAE1b,KAAK,CAAC,CAAD,CAAA;aAJf,CAAA;YAMA/B,MAAM,CAACkjB,kBAAP,GAA4B;IAC1B9F,UAAAA,KAAK,EAAE4F,OAAO,CAAC,CAAD,CADY;IAE1B3F,UAAAA,IAAI,EAAE2F,OAAO,CAAC,CAAD,CAFa;cAG1B1F,GAAG,EAAE0F,OAAO,CAAC,CAAD,CAAA;aAHd,CAAA;IAKA,QAAA,OAAOhjB,MAAM,CAAC2B,OAAP,CAAeI,KAAf,IAAwB,CAAC/B,MAAM,CAACO,MAAP,CAAc4V,aAAvC,GACHnW,MAAM,CAACijB,gBADJ,GAEHjjB,MAAM,CAACkjB,kBAFX,CAAA;IAGD,OAlBY,EAzCO;IA4DpBpM,MAAAA,eAAe,EAAE;IACfQ,QAAAA,SAAS,EAAE3gB,SADI;IAEf4gB,QAAAA,OAAO,EAAE5gB,SAFM;IAGfmiB,QAAAA,mBAAmB,EAAEniB,SAHN;IAIfsiB,QAAAA,cAAc,EAAEtiB,SAJD;IAKfoiB,QAAAA,WAAW,EAAEpiB,SALE;IAMfwa,QAAAA,gBAAgB,EAAExa,SANH;IAOf6jB,QAAAA,cAAc,EAAE7jB,SAPD;IAQfwiB,QAAAA,kBAAkB,EAAExiB,SARL;IASf;IACAyiB,QAAAA,iBAAiB,EAAEpZ,MAAM,CAACO,MAAP,CAAc6Y,iBAVlB;IAWf;YACAiC,aAAa,EAAE7d,GAAG,EAZH;IAaf2lB,QAAAA,YAAY,EAAExsB,SAbC;IAcf;IACAysB,QAAAA,UAAU,EAAE,EAfG;IAgBf3I,QAAAA,mBAAmB,EAAE9jB,SAhBN;IAiBfugB,QAAAA,YAAY,EAAEvgB,SAjBC;IAkBfqiB,QAAAA,WAAW,EAAEriB,SAAAA;WA9EK;IAiFpB;IACAohB,MAAAA,UAAU,EAAE,IAlFQ;IAoFpB;IACAuB,MAAAA,cAAc,EAAEtZ,MAAM,CAACO,MAAP,CAAc+Y,cArFV;IAuFpBvC,MAAAA,OAAO,EAAE;IACPuB,QAAAA,MAAM,EAAE,CADD;IAEPC,QAAAA,MAAM,EAAE,CAFD;IAGPN,QAAAA,QAAQ,EAAE,CAHH;IAIPG,QAAAA,QAAQ,EAAE,CAJH;IAKPtC,QAAAA,IAAI,EAAE,CAAA;WA5FY;IA+FpB;IACAiL,MAAAA,YAAY,EAAE,EAhGM;IAiGpBC,MAAAA,YAAY,EAAE,CAAA;SAjGhB,CAAA,CAAA;IAoGAhhB,IAAAA,MAAM,CAACqE,IAAP,CAAY,SAAZ,EA/KmB;;IAkLnB,IAAA,IAAIrE,MAAM,CAACO,MAAP,CAAc+F,IAAlB,EAAwB;IACtBtG,MAAAA,MAAM,CAACsG,IAAP,EAAA,CAAA;IACD,KApLkB;;;IAuLnB,IAAA,OAAOtG,MAAP,CAAA;IACD,GAAA;;IAED8e,EAAAA,MAAM,GAAG;QACP,MAAM9e,MAAM,GAAG,IAAf,CAAA;QACA,IAAIA,MAAM,CAAC+I,OAAX,EAAoB,OAAA;QACpB/I,MAAM,CAAC+I,OAAP,GAAiB,IAAjB,CAAA;;IACA,IAAA,IAAI/I,MAAM,CAACO,MAAP,CAAcma,UAAlB,EAA8B;IAC5B1a,MAAAA,MAAM,CAACiW,aAAP,EAAA,CAAA;IACD,KAAA;;QACDjW,MAAM,CAACqE,IAAP,CAAY,QAAZ,CAAA,CAAA;IACD,GAAA;;IAEDwa,EAAAA,OAAO,GAAG;QACR,MAAM7e,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,IAAI,CAACA,MAAM,CAAC+I,OAAZ,EAAqB,OAAA;QACrB/I,MAAM,CAAC+I,OAAP,GAAiB,KAAjB,CAAA;;IACA,IAAA,IAAI/I,MAAM,CAACO,MAAP,CAAcma,UAAlB,EAA8B;IAC5B1a,MAAAA,MAAM,CAACuW,eAAP,EAAA,CAAA;IACD,KAAA;;QACDvW,MAAM,CAACqE,IAAP,CAAY,SAAZ,CAAA,CAAA;IACD,GAAA;;IAEDgf,EAAAA,WAAW,CAACpiB,QAAD,EAAWT,KAAX,EAAkB;QAC3B,MAAMR,MAAM,GAAG,IAAf,CAAA;IACAiB,IAAAA,QAAQ,GAAGC,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASF,QAAT,EAAmB,CAAnB,CAAT,EAAgC,CAAhC,CAAX,CAAA;IACA,IAAA,MAAMG,GAAG,GAAGpB,MAAM,CAACuO,YAAP,EAAZ,CAAA;IACA,IAAA,MAAMpN,GAAG,GAAGnB,MAAM,CAACgP,YAAP,EAAZ,CAAA;QACA,MAAMlO,OAAO,GAAG,CAACK,GAAG,GAAGC,GAAP,IAAcH,QAAd,GAAyBG,GAAzC,CAAA;IACApB,IAAAA,MAAM,CAAC2R,WAAP,CAAmB7Q,OAAnB,EAA4B,OAAON,KAAP,KAAiB,WAAjB,GAA+B,CAA/B,GAAmCA,KAA/D,CAAA,CAAA;IACAR,IAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,IAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,GAAA;;IAEDmP,EAAAA,oBAAoB,GAAG;QACrB,MAAMze,MAAM,GAAG,IAAf,CAAA;QACA,IAAI,CAACA,MAAM,CAACO,MAAP,CAAcohB,YAAf,IAA+B,CAAC3hB,MAAM,CAAC/L,EAA3C,EAA+C,OAAA;IAC/C,IAAA,MAAMqvB,GAAG,GAAGtjB,MAAM,CAAC/L,EAAP,CAAUkC,SAAV,CAAoBN,KAApB,CAA0B,GAA1B,CAAA,CAA+BvB,MAA/B,CAAuC6B,SAAD,IAAe;IAC/D,MAAA,OACEA,SAAS,CAACxB,OAAV,CAAkB,QAAlB,CAAA,KAAgC,CAAhC,IACAwB,SAAS,CAACxB,OAAV,CAAkBqL,MAAM,CAACO,MAAP,CAAc6M,sBAAhC,MAA4D,CAF9D,CAAA;IAID,KALW,CAAZ,CAAA;QAMApN,MAAM,CAACqE,IAAP,CAAY,mBAAZ,EAAiCif,GAAG,CAACnlB,IAAJ,CAAS,GAAT,CAAjC,CAAA,CAAA;IACD,GAAA;;MAEDolB,eAAe,CAACC,OAAD,EAAU;QACvB,MAAMxjB,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,IAAIA,MAAM,CAACyE,SAAX,EAAsB,OAAO,EAAP,CAAA;QAEtB,OAAO+e,OAAO,CAACrtB,SAAR,CACJN,KADI,CACE,GADF,CAEJvB,CAAAA,MAFI,CAEI6B,SAAD,IAAe;IACrB,MAAA,OACEA,SAAS,CAACxB,OAAV,CAAkB,cAAlB,CAAA,KAAsC,CAAtC,IACAwB,SAAS,CAACxB,OAAV,CAAkBqL,MAAM,CAACO,MAAP,CAAc2I,UAAhC,MAAgD,CAFlD,CAAA;IAID,KAPI,CAQJ/K,CAAAA,IARI,CAQC,GARD,CAAP,CAAA;IASD,GAAA;;IAEDgS,EAAAA,iBAAiB,GAAG;QAClB,MAAMnQ,MAAM,GAAG,IAAf,CAAA;QACA,IAAI,CAACA,MAAM,CAACO,MAAP,CAAcohB,YAAf,IAA+B,CAAC3hB,MAAM,CAAC/L,EAA3C,EAA+C,OAAA;QAC/C,MAAMwvB,OAAO,GAAG,EAAhB,CAAA;IACAzjB,IAAAA,MAAM,CAACiJ,MAAP,CAAcnO,IAAd,CAAoB0oB,OAAD,IAAa;IAC9B,MAAA,MAAM9tB,UAAU,GAAGsK,MAAM,CAACujB,eAAP,CAAuBC,OAAvB,CAAnB,CAAA;UACAC,OAAO,CAACtvB,IAAR,CAAa;YAAEqvB,OAAF;IAAW9tB,QAAAA,UAAAA;WAAxB,CAAA,CAAA;IACAsK,MAAAA,MAAM,CAACqE,IAAP,CAAY,aAAZ,EAA2Bmf,OAA3B,EAAoC9tB,UAApC,CAAA,CAAA;SAHF,CAAA,CAAA;IAKAsK,IAAAA,MAAM,CAACqE,IAAP,CAAY,eAAZ,EAA6Bof,OAA7B,CAAA,CAAA;IACD,GAAA;;IAED1P,EAAAA,oBAAoB,CAAC2P,IAAD,EAAmBC,KAAnB,EAAkC;IAAA,IAAA,IAAjCD,IAAiC,KAAA,KAAA,CAAA,EAAA;IAAjCA,MAAAA,IAAiC,GAA1B,SAA0B,CAAA;IAAA,KAAA;;IAAA,IAAA,IAAfC,KAAe,KAAA,KAAA,CAAA,EAAA;IAAfA,MAAAA,KAAe,GAAP,KAAO,CAAA;IAAA,KAAA;;QACpD,MAAM3jB,MAAM,GAAG,IAAf,CAAA;QACA,MAAM;UAAEO,MAAF;UAAU0I,MAAV;UAAkBI,UAAlB;UAA8BC,eAA9B;IAA+CnB,MAAAA,IAAI,EAAEM,UAArD;IAAiEoF,MAAAA,WAAAA;IAAjE,KAAA,GAAiF7N,MAAvF,CAAA;QACA,IAAI4jB,GAAG,GAAG,CAAV,CAAA;;QACA,IAAIrjB,MAAM,CAAC8J,cAAX,EAA2B;IACzB,MAAA,IAAIM,SAAS,GAAG1B,MAAM,CAAC4E,WAAD,CAAN,CAAoBpC,eAApC,CAAA;IACA,MAAA,IAAIoY,SAAJ,CAAA;;IACA,MAAA,KAAK,IAAInvB,CAAC,GAAGmZ,WAAW,GAAG,CAA3B,EAA8BnZ,CAAC,GAAGuU,MAAM,CAACtZ,MAAzC,EAAiD+E,CAAC,IAAI,CAAtD,EAAyD;IACvD,QAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAN,IAAa,CAACmvB,SAAlB,EAA6B;IAC3BlZ,UAAAA,SAAS,IAAI1B,MAAM,CAACvU,CAAD,CAAN,CAAU+W,eAAvB,CAAA;IACAmY,UAAAA,GAAG,IAAI,CAAP,CAAA;IACA,UAAA,IAAIjZ,SAAS,GAAGlC,UAAhB,EAA4Bob,SAAS,GAAG,IAAZ,CAAA;IAC7B,SAAA;IACF,OAAA;;IACD,MAAA,KAAK,IAAInvB,CAAC,GAAGmZ,WAAW,GAAG,CAA3B,EAA8BnZ,CAAC,IAAI,CAAnC,EAAsCA,CAAC,IAAI,CAA3C,EAA8C;IAC5C,QAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAN,IAAa,CAACmvB,SAAlB,EAA6B;IAC3BlZ,UAAAA,SAAS,IAAI1B,MAAM,CAACvU,CAAD,CAAN,CAAU+W,eAAvB,CAAA;IACAmY,UAAAA,GAAG,IAAI,CAAP,CAAA;IACA,UAAA,IAAIjZ,SAAS,GAAGlC,UAAhB,EAA4Bob,SAAS,GAAG,IAAZ,CAAA;IAC7B,SAAA;IACF,OAAA;IACF,KAjBD,MAiBO;IACL;UACA,IAAIH,IAAI,KAAK,SAAb,EAAwB;IACtB,QAAA,KAAK,IAAIhvB,CAAC,GAAGmZ,WAAW,GAAG,CAA3B,EAA8BnZ,CAAC,GAAGuU,MAAM,CAACtZ,MAAzC,EAAiD+E,CAAC,IAAI,CAAtD,EAAyD;IACvD,UAAA,MAAMovB,WAAW,GAAGH,KAAK,GACrBta,UAAU,CAAC3U,CAAD,CAAV,GAAgB4U,eAAe,CAAC5U,CAAD,CAA/B,GAAqC2U,UAAU,CAACwE,WAAD,CAA/C,GAA+DpF,UAD1C,GAErBY,UAAU,CAAC3U,CAAD,CAAV,GAAgB2U,UAAU,CAACwE,WAAD,CAA1B,GAA0CpF,UAF9C,CAAA;;IAGA,UAAA,IAAIqb,WAAJ,EAAiB;IACfF,YAAAA,GAAG,IAAI,CAAP,CAAA;IACD,WAAA;IACF,SAAA;IACF,OATD,MASO;IACL;IACA,QAAA,KAAK,IAAIlvB,CAAC,GAAGmZ,WAAW,GAAG,CAA3B,EAA8BnZ,CAAC,IAAI,CAAnC,EAAsCA,CAAC,IAAI,CAA3C,EAA8C;IAC5C,UAAA,MAAMovB,WAAW,GAAGza,UAAU,CAACwE,WAAD,CAAV,GAA0BxE,UAAU,CAAC3U,CAAD,CAApC,GAA0C+T,UAA9D,CAAA;;IACA,UAAA,IAAIqb,WAAJ,EAAiB;IACfF,YAAAA,GAAG,IAAI,CAAP,CAAA;IACD,WAAA;IACF,SAAA;IACF,OAAA;IACF,KAAA;;IACD,IAAA,OAAOA,GAAP,CAAA;IACD,GAAA;;IAED1C,EAAAA,MAAM,GAAG;QACP,MAAMlhB,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,IAAI,CAACA,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;QACjC,MAAM;UAAE2E,QAAF;IAAY7I,MAAAA,MAAAA;SAAWP,GAAAA,MAA7B,CAHO;;QAKP,IAAIO,MAAM,CAACuK,WAAX,EAAwB;IACtB9K,MAAAA,MAAM,CAACqc,aAAP,EAAA,CAAA;IACD,KAAA;;IACDrc,IAAAA,MAAM,CAAC0H,UAAP,EAAA,CAAA;IACA1H,IAAAA,MAAM,CAACoI,YAAP,EAAA,CAAA;IACApI,IAAAA,MAAM,CAAC6O,cAAP,EAAA,CAAA;IACA7O,IAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;;IAEA,IAAA,SAAS8B,YAAT,GAAwB;IACtB,MAAA,MAAM2S,cAAc,GAAG/jB,MAAM,CAAC0I,YAAP,GAAsB1I,MAAM,CAACI,SAAP,GAAmB,CAAC,CAA1C,GAA8CJ,MAAM,CAACI,SAA5E,CAAA;UACA,MAAM6R,YAAY,GAAG/Q,IAAI,CAACE,GAAL,CACnBF,IAAI,CAACC,GAAL,CAAS4iB,cAAT,EAAyB/jB,MAAM,CAACgP,YAAP,EAAzB,CADmB,EAEnBhP,MAAM,CAACuO,YAAP,EAFmB,CAArB,CAAA;UAIAvO,MAAM,CAACoR,YAAP,CAAoBa,YAApB,CAAA,CAAA;IACAjS,MAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,MAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAI0U,UAAJ,CAAA;;IACA,IAAA,IAAIhkB,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IAA0B1Z,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuB3Q,OAArD,EAA8D;UAC5DqI,YAAY,EAAA,CAAA;;IACZ,MAAA,IAAIpR,MAAM,CAACO,MAAP,CAAc8O,UAAlB,EAA8B;IAC5BrP,QAAAA,MAAM,CAACuN,gBAAP,EAAA,CAAA;IACD,OAAA;IACF,KALD,MAKO;UACL,IACE,CAACvN,MAAM,CAACO,MAAP,CAAcsK,aAAd,KAAgC,MAAhC,IAA0C7K,MAAM,CAACO,MAAP,CAAcsK,aAAd,GAA8B,CAAzE,KACA7K,MAAM,CAACkP,KADP,IAEA,CAAClP,MAAM,CAACO,MAAP,CAAc8J,cAHjB,EAIE;IACA2Z,QAAAA,UAAU,GAAGhkB,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CAAtC,EAAyC,CAAzC,EAA4C,KAA5C,EAAmD,IAAnD,CAAb,CAAA;IACD,OAND,MAMO;IACLq0B,QAAAA,UAAU,GAAGhkB,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAtB,EAAmC,CAAnC,EAAsC,KAAtC,EAA6C,IAA7C,CAAb,CAAA;IACD,OAAA;;UACD,IAAI,CAACmW,UAAL,EAAiB;YACf5S,YAAY,EAAA,CAAA;IACb,OAAA;IACF,KAAA;;QACD,IAAI7Q,MAAM,CAACwM,aAAP,IAAwB3D,QAAQ,KAAKpJ,MAAM,CAACoJ,QAAhD,EAA0D;IACxDpJ,MAAAA,MAAM,CAACgN,aAAP,EAAA,CAAA;IACD,KAAA;;QACDhN,MAAM,CAACqE,IAAP,CAAY,QAAZ,CAAA,CAAA;IACD,GAAA;;IAED4a,EAAAA,eAAe,CAACgF,YAAD,EAAeC,UAAf,EAAkC;IAAA,IAAA,IAAnBA,UAAmB,KAAA,KAAA,CAAA,EAAA;IAAnBA,MAAAA,UAAmB,GAAN,IAAM,CAAA;IAAA,KAAA;;QAC/C,MAAMlkB,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,MAAMmkB,gBAAgB,GAAGnkB,MAAM,CAACO,MAAP,CAAc+R,SAAvC,CAAA;;QACA,IAAI,CAAC2R,YAAL,EAAmB;IACjB;IACAA,MAAAA,YAAY,GAAGE,gBAAgB,KAAK,YAArB,GAAoC,UAApC,GAAiD,YAAhE,CAAA;IACD,KAAA;;QACD,IACEF,YAAY,KAAKE,gBAAjB,IACCF,YAAY,KAAK,YAAjB,IAAiCA,YAAY,KAAK,UAFrD,EAGE;IACA,MAAA,OAAOjkB,MAAP,CAAA;IACD,KAAA;;QAEDA,MAAM,CAACyG,GAAP,CACGzQ,WADH,CACgB,GAAEgK,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAAA,EAAE+W,gBAAiB,CAD1E,CAAA,CAAA,CAEG3uB,QAFH,CAEa,CAAEwK,EAAAA,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAAE6W,EAAAA,YAAa,CAFnE,CAAA,CAAA,CAAA;IAGAjkB,IAAAA,MAAM,CAACye,oBAAP,EAAA,CAAA;IAEAze,IAAAA,MAAM,CAACO,MAAP,CAAc+R,SAAd,GAA0B2R,YAA1B,CAAA;IAEAjkB,IAAAA,MAAM,CAACiJ,MAAP,CAAcnO,IAAd,CAAoB0oB,OAAD,IAAa;UAC9B,IAAIS,YAAY,KAAK,UAArB,EAAiC;IAC/BT,QAAAA,OAAO,CAAC7yB,KAAR,CAAcqS,KAAd,GAAsB,EAAtB,CAAA;IACD,OAFD,MAEO;IACLwgB,QAAAA,OAAO,CAAC7yB,KAAR,CAAcuS,MAAd,GAAuB,EAAvB,CAAA;IACD,OAAA;SALH,CAAA,CAAA;QAQAlD,MAAM,CAACqE,IAAP,CAAY,iBAAZ,CAAA,CAAA;IACA,IAAA,IAAI6f,UAAJ,EAAgBlkB,MAAM,CAACkhB,MAAP,EAAA,CAAA;IAEhB,IAAA,OAAOlhB,MAAP,CAAA;IACD,GAAA;;MAEDokB,uBAAuB,CAAC9R,SAAD,EAAY;QACjC,MAAMtS,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,IAAKA,MAAM,CAAC2I,GAAP,IAAc2J,SAAS,KAAK,KAA7B,IAAwC,CAACtS,MAAM,CAAC2I,GAAR,IAAe2J,SAAS,KAAK,KAAzE,EAAiF,OAAA;IACjFtS,IAAAA,MAAM,CAAC2I,GAAP,GAAa2J,SAAS,KAAK,KAA3B,CAAA;IACAtS,IAAAA,MAAM,CAAC0I,YAAP,GAAsB1I,MAAM,CAACO,MAAP,CAAc+R,SAAd,KAA4B,YAA5B,IAA4CtS,MAAM,CAAC2I,GAAzE,CAAA;;QACA,IAAI3I,MAAM,CAAC2I,GAAX,EAAgB;UACd3I,MAAM,CAACyG,GAAP,CAAWjR,QAAX,CAAqB,CAAEwK,EAAAA,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAA5D,GAAA,CAAA,CAAA,CAAA;IACApN,MAAAA,MAAM,CAAC/L,EAAP,CAAU2M,GAAV,GAAgB,KAAhB,CAAA;IACD,KAHD,MAGO;UACLZ,MAAM,CAACyG,GAAP,CAAWzQ,WAAX,CAAwB,CAAEgK,EAAAA,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAA/D,GAAA,CAAA,CAAA,CAAA;IACApN,MAAAA,MAAM,CAAC/L,EAAP,CAAU2M,GAAV,GAAgB,KAAhB,CAAA;IACD,KAAA;;IACDZ,IAAAA,MAAM,CAACkhB,MAAP,EAAA,CAAA;IACD,GAAA;;MAEDmD,KAAK,CAACpwB,EAAD,EAAK;QACR,MAAM+L,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,IAAIA,MAAM,CAACskB,OAAX,EAAoB,OAAO,IAAP,CAFZ;;QAKR,MAAM7d,GAAG,GAAGzR,CAAC,CAACf,EAAE,IAAI+L,MAAM,CAACO,MAAP,CAActM,EAArB,CAAb,CAAA;IACAA,IAAAA,EAAE,GAAGwS,GAAG,CAAC,CAAD,CAAR,CAAA;;QAEA,IAAI,CAACxS,EAAL,EAAS;IACP,MAAA,OAAO,KAAP,CAAA;IACD,KAAA;;QAEDA,EAAE,CAAC+L,MAAH,GAAYA,MAAZ,CAAA;;QAEA,MAAMukB,kBAAkB,GAAG,MAAM;UAC/B,OAAQ,CAAA,CAAA,EAAG,CAACvkB,MAAM,CAACO,MAAP,CAAcmhB,YAAd,IAA8B,EAA/B,EAAmCxsB,IAAnC,EAA0CW,CAAAA,KAA1C,CAAgD,GAAhD,CAAA,CAAqDsI,IAArD,CAA0D,GAA1D,CAA+D,CAA1E,CAAA,CAAA;SADF,CAAA;;QAIA,MAAMqmB,UAAU,GAAG,MAAM;UACvB,IAAIvwB,EAAE,IAAIA,EAAE,CAACyjB,UAAT,IAAuBzjB,EAAE,CAACyjB,UAAH,CAAcvnB,aAAzC,EAAwD;IACtD,QAAA,MAAM6D,GAAG,GAAGgB,CAAC,CAACf,EAAE,CAACyjB,UAAH,CAAcvnB,aAAd,CAA4Bo0B,kBAAkB,EAA9C,CAAD,CAAb,CADsD;;YAGtDvwB,GAAG,CAACvD,QAAJ,GAAgBoV,OAAD,IAAaY,GAAG,CAAChW,QAAJ,CAAaoV,OAAb,CAA5B,CAAA;;IACA,QAAA,OAAO7R,GAAP,CAAA;IACD,OAAA;;IACD,MAAA,IAAI,CAACyS,GAAG,CAAChW,QAAT,EAAmB;YACjB,OAAOuE,CAAC,CAACyR,GAAD,CAAD,CAAOhW,QAAP,CAAgB8zB,kBAAkB,EAAlC,CAAP,CAAA;IACD,OAAA;;IACD,MAAA,OAAO9d,GAAG,CAAChW,QAAJ,CAAa8zB,kBAAkB,EAA/B,CAAP,CAAA;IACD,KAXD,CAlBQ;;;QA+BR,IAAI5d,UAAU,GAAG6d,UAAU,EAA3B,CAAA;;QACA,IAAI7d,UAAU,CAAChX,MAAX,KAAsB,CAAtB,IAA2BqQ,MAAM,CAACO,MAAP,CAAcghB,cAA7C,EAA6D;UAC3D,MAAM5vB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;IACA,MAAA,MAAMgzB,OAAO,GAAG9yB,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAhB,CAAA;IACAmW,MAAAA,UAAU,GAAG3R,CAAC,CAACyvB,OAAD,CAAd,CAAA;IACAA,MAAAA,OAAO,CAACtuB,SAAR,GAAoB6J,MAAM,CAACO,MAAP,CAAcmhB,YAAlC,CAAA;UACAjb,GAAG,CAAC9K,MAAJ,CAAW8oB,OAAX,CAAA,CAAA;IACAhe,MAAAA,GAAG,CAAChW,QAAJ,CAAc,CAAA,CAAA,EAAGuP,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAA1C,CAAA,CAAA,CAA6CpO,IAA7C,CAAmD0oB,OAAD,IAAa;YAC7D7c,UAAU,CAAChL,MAAX,CAAkB6nB,OAAlB,CAAA,CAAA;WADF,CAAA,CAAA;IAGD,KAAA;;IAEDp0B,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;UACpByG,GADoB;UAEpBxS,EAFoB;UAGpB0S,UAHoB;IAIpBlG,MAAAA,SAAS,EAAEkG,UAAU,CAAC,CAAD,CAJD;IAKpB2d,MAAAA,OAAO,EAAE,IALW;IAOpB;IACA3b,MAAAA,GAAG,EAAE1U,EAAE,CAAC2M,GAAH,CAAOoD,WAAP,EAAA,KAAyB,KAAzB,IAAkCyC,GAAG,CAAC9L,GAAJ,CAAQ,WAAR,MAAyB,KAR5C;UASpB+N,YAAY,EACV1I,MAAM,CAACO,MAAP,CAAc+R,SAAd,KAA4B,YAA5B,KACCre,EAAE,CAAC2M,GAAH,CAAOoD,WAAP,EAAA,KAAyB,KAAzB,IAAkCyC,GAAG,CAAC9L,GAAJ,CAAQ,WAAR,CAAyB,KAAA,KAD5D,CAVkB;IAYpBiO,MAAAA,QAAQ,EAAEjC,UAAU,CAAChM,GAAX,CAAe,SAAf,CAA8B,KAAA,aAAA;SAZ1C,CAAA,CAAA;IAeA,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MAED2L,IAAI,CAACrS,EAAD,EAAK;QACP,MAAM+L,MAAM,GAAG,IAAf,CAAA;IACA,IAAA,IAAIA,MAAM,CAAC0E,WAAX,EAAwB,OAAO1E,MAAP,CAAA;IAExB,IAAA,MAAMskB,OAAO,GAAGtkB,MAAM,CAACqkB,KAAP,CAAapwB,EAAb,CAAhB,CAAA;IACA,IAAA,IAAIqwB,OAAO,KAAK,KAAhB,EAAuB,OAAOtkB,MAAP,CAAA;IAEvBA,IAAAA,MAAM,CAACqE,IAAP,CAAY,YAAZ,EAPO;;IAUP,IAAA,IAAIrE,MAAM,CAACO,MAAP,CAAcuK,WAAlB,EAA+B;IAC7B9K,MAAAA,MAAM,CAACqc,aAAP,EAAA,CAAA;IACD,KAZM;;;QAePrc,MAAM,CAACggB,UAAP,EAAA,CAfO;;IAkBP,IAAA,IAAIhgB,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IACtB/P,MAAAA,MAAM,CAACmV,UAAP,EAAA,CAAA;IACD,KApBM;;;QAuBPnV,MAAM,CAAC0H,UAAP,EAAA,CAvBO;;IA0BP1H,IAAAA,MAAM,CAACoI,YAAP,EAAA,CAAA;;IAEA,IAAA,IAAIpI,MAAM,CAACO,MAAP,CAAcwM,aAAlB,EAAiC;IAC/B/M,MAAAA,MAAM,CAACgN,aAAP,EAAA,CAAA;IACD,KA9BM;;;QAiCP,IAAIhN,MAAM,CAACO,MAAP,CAAcma,UAAd,IAA4B1a,MAAM,CAAC+I,OAAvC,EAAgD;IAC9C/I,MAAAA,MAAM,CAACiW,aAAP,EAAA,CAAA;IACD,KAAA;;IAED,IAAA,IAAIjW,MAAM,CAACO,MAAP,CAAcugB,aAAlB,EAAiC;IAC/B9gB,MAAAA,MAAM,CAAC8gB,aAAP,EAAA,CAAA;IACD,KAvCM;;;IA0CP,IAAA,IAAI9gB,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;UACtB/P,MAAM,CAACyS,OAAP,CACEzS,MAAM,CAACO,MAAP,CAAcwS,YAAd,GAA6B/S,MAAM,CAAC2T,YADtC,EAEE,CAFF,EAGE3T,MAAM,CAACO,MAAP,CAAcoQ,kBAHhB,EAIE,KAJF,EAKE,IALF,CAAA,CAAA;IAOD,KARD,MAQO;IACL3Q,MAAAA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAACO,MAAP,CAAcwS,YAA7B,EAA2C,CAA3C,EAA8C/S,MAAM,CAACO,MAAP,CAAcoQ,kBAA5D,EAAgF,KAAhF,EAAuF,IAAvF,CAAA,CAAA;IACD,KApDM;;;QAuDP3Q,MAAM,CAAC2d,YAAP,EAAA,CAvDO;;IA0DP3d,IAAAA,MAAM,CAAC0E,WAAP,GAAqB,IAArB,CA1DO;;QA6DP1E,MAAM,CAACqE,IAAP,CAAY,MAAZ,CAAA,CAAA;QACArE,MAAM,CAACqE,IAAP,CAAY,WAAZ,CAAA,CAAA;IAEA,IAAA,OAAOrE,MAAP,CAAA;IACD,GAAA;;IAED4G,EAAAA,OAAO,CAAC8d,cAAD,EAAwBC,WAAxB,EAA4C;IAAA,IAAA,IAA3CD,cAA2C,KAAA,KAAA,CAAA,EAAA;IAA3CA,MAAAA,cAA2C,GAA1B,IAA0B,CAAA;IAAA,KAAA;;IAAA,IAAA,IAApBC,WAAoB,KAAA,KAAA,CAAA,EAAA;IAApBA,MAAAA,WAAoB,GAAN,IAAM,CAAA;IAAA,KAAA;;QACjD,MAAM3kB,MAAM,GAAG,IAAf,CAAA;QACA,MAAM;UAAEO,MAAF;UAAUkG,GAAV;UAAeE,UAAf;IAA2BsC,MAAAA,MAAAA;IAA3B,KAAA,GAAsCjJ,MAA5C,CAAA;;QAEA,IAAI,OAAOA,MAAM,CAACO,MAAd,KAAyB,WAAzB,IAAwCP,MAAM,CAACyE,SAAnD,EAA8D;IAC5D,MAAA,OAAO,IAAP,CAAA;IACD,KAAA;;IAEDzE,IAAAA,MAAM,CAACqE,IAAP,CAAY,eAAZ,EARiD;;IAWjDrE,IAAAA,MAAM,CAAC0E,WAAP,GAAqB,KAArB,CAXiD;;QAcjD1E,MAAM,CAAC6d,YAAP,EAAA,CAdiD;;QAiBjD,IAAItd,MAAM,CAACwP,IAAX,EAAiB;IACf/P,MAAAA,MAAM,CAACgW,WAAP,EAAA,CAAA;IACD,KAnBgD;;;IAsBjD,IAAA,IAAI2O,WAAJ,EAAiB;IACf3kB,MAAAA,MAAM,CAACkgB,aAAP,EAAA,CAAA;UACAzZ,GAAG,CAAC5P,UAAJ,CAAe,OAAf,CAAA,CAAA;UACA8P,UAAU,CAAC9P,UAAX,CAAsB,OAAtB,CAAA,CAAA;;IACA,MAAA,IAAIoS,MAAM,IAAIA,MAAM,CAACtZ,MAArB,EAA6B;IAC3BsZ,QAAAA,MAAM,CACHjT,WADH,CAEI,CACEuK,MAAM,CAAC4N,iBADT,EAEE5N,MAAM,CAACiP,gBAFT,EAGEjP,MAAM,CAACkP,cAHT,EAIElP,MAAM,CAACmP,cAJT,CAKEvR,CAAAA,IALF,CAKO,GALP,CAFJ,CASGtH,CAAAA,UATH,CASc,OATd,CAUGA,CAAAA,UAVH,CAUc,yBAVd,CAAA,CAAA;IAWD,OAAA;IACF,KAAA;;IAEDmJ,IAAAA,MAAM,CAACqE,IAAP,CAAY,SAAZ,EAzCiD;;QA4CjDjV,MAAM,CAACI,IAAP,CAAYwQ,MAAM,CAACgH,eAAnB,CAAoCvX,CAAAA,OAApC,CAA6CqzB,SAAD,IAAe;UACzD9iB,MAAM,CAACvH,GAAP,CAAWqqB,SAAX,CAAA,CAAA;SADF,CAAA,CAAA;;QAIA,IAAI4B,cAAc,KAAK,KAAvB,EAA8B;IAC5B1kB,MAAAA,MAAM,CAACyG,GAAP,CAAW,CAAX,CAAczG,CAAAA,MAAd,GAAuB,IAAvB,CAAA;UACA5C,WAAW,CAAC4C,MAAD,CAAX,CAAA;IACD,KAAA;;QACDA,MAAM,CAACyE,SAAP,GAAmB,IAAnB,CAAA;IAEA,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MAEoB,OAAdmgB,cAAc,CAACC,WAAD,EAAc;IACjCx1B,IAAAA,MAAM,CAAC+yB,gBAAD,EAAmByC,WAAnB,CAAN,CAAA;IACD,GAAA;;IAE0B,EAAA,WAAhBzC,gBAAgB,GAAG;IAC5B,IAAA,OAAOA,gBAAP,CAAA;IACD,GAAA;;IAEkB,EAAA,WAARQ,QAAQ,GAAG;IACpB,IAAA,OAAOA,QAAP,CAAA;IACD,GAAA;;MAEmB,OAAbkC,aAAa,CAACpC,GAAD,EAAM;IACxB,IAAA,IAAI,CAACL,MAAM,CAAChuB,SAAP,CAAiBouB,WAAtB,EAAmCJ,MAAM,CAAChuB,SAAP,CAAiBouB,WAAjB,GAA+B,EAA/B,CAAA;IACnC,IAAA,MAAMD,OAAO,GAAGH,MAAM,CAAChuB,SAAP,CAAiBouB,WAAjC,CAAA;;IAEA,IAAA,IAAI,OAAOC,GAAP,KAAe,UAAf,IAA6BF,OAAO,CAAC7tB,OAAR,CAAgB+tB,GAAhB,CAAuB,GAAA,CAAxD,EAA2D;UACzDF,OAAO,CAACruB,IAAR,CAAauuB,GAAb,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MAES,OAAHqC,GAAG,CAACC,MAAD,EAAS;IACjB,IAAA,IAAIpxB,KAAK,CAACM,OAAN,CAAc8wB,MAAd,CAAJ,EAA2B;UACzBA,MAAM,CAACv1B,OAAP,CAAgBw1B,CAAD,IAAO5C,MAAM,CAACyC,aAAP,CAAqBG,CAArB,CAAtB,CAAA,CAAA;IACA,MAAA,OAAO5C,MAAP,CAAA;IACD,KAAA;;QACDA,MAAM,CAACyC,aAAP,CAAqBE,MAArB,CAAA,CAAA;IACA,IAAA,OAAO3C,MAAP,CAAA;IACD,GAAA;;IAtmBU,CAAA;;IAymBbjzB,MAAM,CAACI,IAAP,CAAYyyB,UAAZ,EAAwBxyB,OAAxB,CAAiCy1B,cAAD,IAAoB;MAClD91B,MAAM,CAACI,IAAP,CAAYyyB,UAAU,CAACiD,cAAD,CAAtB,CAAwCz1B,CAAAA,OAAxC,CAAiD01B,WAAD,IAAiB;QAC/D9C,MAAM,CAAChuB,SAAP,CAAiB8wB,WAAjB,CAAA,GAAgClD,UAAU,CAACiD,cAAD,CAAV,CAA2BC,WAA3B,CAAhC,CAAA;OADF,CAAA,CAAA;IAGD,CAJD,CAAA,CAAA;IAMA9C,MAAM,CAAC0C,GAAP,CAAW,CAAC3gB,MAAD,EAASqB,QAAT,CAAX,CAAA;;ICzpBe,SAAS2f,OAAT,CAAqD,IAAA,EAAA;MAAA,IAApC;QAAEplB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;IAClEqB,EAAAA,YAAY,CAAC;IACXoD,IAAAA,OAAO,EAAE;IACPC,MAAAA,OAAO,EAAE,KADF;IAEPE,MAAAA,MAAM,EAAE,EAFD;IAGPoc,MAAAA,KAAK,EAAE,IAHA;IAIPC,MAAAA,WAAW,EAAE,IAJN;IAKPC,MAAAA,cAAc,EAAE,IALT;IAMPC,MAAAA,oBAAoB,EAAE,IANf;IAOPC,MAAAA,eAAe,EAAE,CAPV;IAQPC,MAAAA,cAAc,EAAE,CAAA;IART,KAAA;IADE,GAAD,CAAZ,CAAA;IAaA,EAAA,IAAIC,cAAJ,CAAA;MAEA3lB,MAAM,CAAC8I,OAAP,GAAiB;IACfuc,IAAAA,KAAK,EAAE,EADQ;IAEfO,IAAAA,IAAI,EAAEjvB,SAFS;IAGfqI,IAAAA,EAAE,EAAErI,SAHW;IAIfsS,IAAAA,MAAM,EAAE,EAJO;IAKfjP,IAAAA,MAAM,EAAE,CALO;IAMfqP,IAAAA,UAAU,EAAE,EAAA;OANd,CAAA;;IASA,EAAA,SAASic,WAAT,CAAqBva,KAArB,EAA4BhQ,KAA5B,EAAmC;IACjC,IAAA,MAAMwF,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcuI,OAA7B,CAAA;;IACA,IAAA,IAAIvI,MAAM,CAAC8kB,KAAP,IAAgBrlB,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,CAAqBtqB,KAArB,CAApB,EAAiD;IAC/C,MAAA,OAAOiF,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,CAAqBtqB,KAArB,CAAP,CAAA;IACD,KAAA;;IACD,IAAA,MAAM8qB,QAAQ,GAAGtlB,MAAM,CAAC+kB,WAAP,GACbtwB,CAAC,CAACuL,MAAM,CAAC+kB,WAAP,CAAmB/wB,IAAnB,CAAwByL,MAAxB,EAAgC+K,KAAhC,EAAuChQ,KAAvC,CAAD,CADY,GAEb/F,CAAC,CACE,eAAcgL,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAA6BnO,2BAAAA,EAAAA,KAAM,CAAIgQ,EAAAA,EAAAA,KAAM,QADtF,CAFL,CAAA;IAKA,IAAA,IAAI,CAAC8a,QAAQ,CAACtvB,IAAT,CAAc,yBAAd,CAAL,EAA+CsvB,QAAQ,CAACtvB,IAAT,CAAc,yBAAd,EAAyCwE,KAAzC,CAAA,CAAA;IAC/C,IAAA,IAAIwF,MAAM,CAAC8kB,KAAX,EAAkBrlB,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,CAAqBtqB,KAArB,CAAA,GAA8B8qB,QAA9B,CAAA;IAClB,IAAA,OAAOA,QAAP,CAAA;IACD,GAAA;;MAED,SAAS3E,MAAT,CAAgB4E,KAAhB,EAAuB;QACrB,MAAM;UAAEjb,aAAF;UAAiBc,cAAjB;IAAiCtB,MAAAA,cAAAA;SAAmBrK,GAAAA,MAAM,CAACO,MAAjE,CAAA;QACA,MAAM;UAAEklB,eAAF;IAAmBC,MAAAA,cAAAA;IAAnB,KAAA,GAAsC1lB,MAAM,CAACO,MAAP,CAAcuI,OAA1D,CAAA;QACA,MAAM;IACJ8c,MAAAA,IAAI,EAAEG,YADF;IAEJ/mB,MAAAA,EAAE,EAAEgnB,UAFA;UAGJ/c,MAHI;IAIJI,MAAAA,UAAU,EAAE4c,kBAJR;IAKJjsB,MAAAA,MAAM,EAAEksB,cAAAA;SACNlmB,GAAAA,MAAM,CAAC8I,OANX,CAAA;;IAOA,IAAA,IAAI,CAAC9I,MAAM,CAACO,MAAP,CAAc+J,OAAnB,EAA4B;IAC1BtK,MAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACD,KAAA;;IAED,IAAA,MAAMvC,WAAW,GAAG7N,MAAM,CAAC6N,WAAP,IAAsB,CAA1C,CAAA;IAEA,IAAA,IAAIsY,UAAJ,CAAA;IACA,IAAA,IAAInmB,MAAM,CAAC0I,YAAX,EAAyByd,UAAU,GAAG,OAAb,CAAzB,KACKA,UAAU,GAAGnmB,MAAM,CAAC6H,YAAP,EAAwB,GAAA,MAAxB,GAAiC,KAA9C,CAAA;IAEL,IAAA,IAAIue,WAAJ,CAAA;IACA,IAAA,IAAIC,YAAJ,CAAA;;IACA,IAAA,IAAIhc,cAAJ,EAAoB;UAClB+b,WAAW,GAAGllB,IAAI,CAACsK,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAA,GAAgCc,cAAhC,GAAiD+Z,cAA/D,CAAA;UACAW,YAAY,GAAGnlB,IAAI,CAACsK,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAA,GAAgCc,cAAhC,GAAiD8Z,eAAhE,CAAA;IACD,KAHD,MAGO;UACLW,WAAW,GAAGvb,aAAa,IAAIc,cAAc,GAAG,CAArB,CAAb,GAAuC+Z,cAArD,CAAA;UACAW,YAAY,GAAG1a,cAAc,GAAG8Z,eAAhC,CAAA;IACD,KAAA;;IACD,IAAA,MAAMG,IAAI,GAAG1kB,IAAI,CAACC,GAAL,CAAS,CAAC0M,WAAW,IAAI,CAAhB,IAAqBwY,YAA9B,EAA4C,CAA5C,CAAb,CAAA;IACA,IAAA,MAAMrnB,EAAE,GAAGkC,IAAI,CAACE,GAAL,CAAS,CAACyM,WAAW,IAAI,CAAhB,IAAqBuY,WAA9B,EAA2Cnd,MAAM,CAACtZ,MAAP,GAAgB,CAA3D,CAAX,CAAA;IACA,IAAA,MAAMqK,MAAM,GAAG,CAACgG,MAAM,CAACqJ,UAAP,CAAkBuc,IAAlB,CAAA,IAA2B,CAA5B,KAAkC5lB,MAAM,CAACqJ,UAAP,CAAkB,CAAlB,CAAA,IAAwB,CAA1D,CAAf,CAAA;IAEAja,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAAC8I,OAArB,EAA8B;UAC5B8c,IAD4B;UAE5B5mB,EAF4B;UAG5BhF,MAH4B;UAI5BqP,UAAU,EAAErJ,MAAM,CAACqJ,UAAAA;SAJrB,CAAA,CAAA;;IAOA,IAAA,SAASid,UAAT,GAAsB;IACpBtmB,MAAAA,MAAM,CAACoI,YAAP,EAAA,CAAA;IACApI,MAAAA,MAAM,CAAC6O,cAAP,EAAA,CAAA;IACA7O,MAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;;UACA,IAAItP,MAAM,CAACumB,IAAP,IAAevmB,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBxd,OAAtC,EAA+C;YAC7C/I,MAAM,CAACumB,IAAP,CAAYC,IAAZ,EAAA,CAAA;IACD,OAAA;;UACDniB,IAAI,CAAC,eAAD,CAAJ,CAAA;IACD,KAAA;;QAED,IAAI0hB,YAAY,KAAKH,IAAjB,IAAyBI,UAAU,KAAKhnB,EAAxC,IAA8C,CAAC8mB,KAAnD,EAA0D;UACxD,IAAI9lB,MAAM,CAACqJ,UAAP,KAAsB4c,kBAAtB,IAA4CjsB,MAAM,KAAKksB,cAA3D,EAA2E;YACzElmB,MAAM,CAACiJ,MAAP,CAActO,GAAd,CAAkBwrB,UAAlB,EAA+B,CAAEnsB,EAAAA,MAAO,CAAxC,EAAA,CAAA,CAAA,CAAA;IACD,OAAA;;IACDgG,MAAAA,MAAM,CAAC6O,cAAP,EAAA,CAAA;UACAxK,IAAI,CAAC,eAAD,CAAJ,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACD,IAAA,IAAIrE,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsByc,cAA1B,EAA0C;UACxCvlB,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsByc,cAAtB,CAAqChxB,IAArC,CAA0CyL,MAA1C,EAAkD;YAChDhG,MADgD;YAEhD4rB,IAFgD;YAGhD5mB,EAHgD;YAIhDiK,MAAM,EAAG,SAASwd,SAAT,GAAqB;cAC5B,MAAMC,cAAc,GAAG,EAAvB,CAAA;;IACA,UAAA,KAAK,IAAIhyB,CAAC,GAAGkxB,IAAb,EAAmBlxB,CAAC,IAAIsK,EAAxB,EAA4BtK,CAAC,IAAI,CAAjC,EAAoC;IAClCgyB,YAAAA,cAAc,CAACvyB,IAAf,CAAoB8U,MAAM,CAACvU,CAAD,CAA1B,CAAA,CAAA;IACD,WAAA;;IACD,UAAA,OAAOgyB,cAAP,CAAA;aALM,EAAA;WAJV,CAAA,CAAA;;IAYA,MAAA,IAAI1mB,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsB0c,oBAA1B,EAAgD;YAC9Cc,UAAU,EAAA,CAAA;IACX,OAFD,MAEO;YACLjiB,IAAI,CAAC,eAAD,CAAJ,CAAA;IACD,OAAA;;IACD,MAAA,OAAA;IACD,KAAA;;QACD,MAAMsiB,cAAc,GAAG,EAAvB,CAAA;QACA,MAAMC,aAAa,GAAG,EAAtB,CAAA;;IACA,IAAA,IAAId,KAAJ,EAAW;IACT9lB,MAAAA,MAAM,CAAC2G,UAAP,CAAkB9J,IAAlB,CAAwB,CAAA,CAAA,EAAGmD,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAAA,CAApD,EAAuDjT,MAAvD,EAAA,CAAA;IACD,KAFD,MAEO;IACL,MAAA,KAAK,IAAIvB,CAAC,GAAGqxB,YAAb,EAA2BrxB,CAAC,IAAIsxB,UAAhC,EAA4CtxB,CAAC,IAAI,CAAjD,EAAoD;IAClD,QAAA,IAAIA,CAAC,GAAGkxB,IAAJ,IAAYlxB,CAAC,GAAGsK,EAApB,EAAwB;IACtBgB,UAAAA,MAAM,CAAC2G,UAAP,CACG9J,IADH,CACS,CAAGmD,CAAAA,EAAAA,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAAA,0BAAA,EAA4BxU,CAAE,CAAA,EAAA,CADnE,EAEGuB,MAFH,EAAA,CAAA;IAGD,SAAA;IACF,OAAA;IACF,KAAA;;IACD,IAAA,KAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,IAAIA,CAAC,IAAIkxB,IAAL,IAAalxB,CAAC,IAAIsK,EAAtB,EAA0B;IACxB,QAAA,IAAI,OAAOgnB,UAAP,KAAsB,WAAtB,IAAqCF,KAAzC,EAAgD;cAC9Cc,aAAa,CAACzyB,IAAd,CAAmBO,CAAnB,CAAA,CAAA;IACD,SAFD,MAEO;cACL,IAAIA,CAAC,GAAGsxB,UAAR,EAAoBY,aAAa,CAACzyB,IAAd,CAAmBO,CAAnB,CAAA,CAAA;cACpB,IAAIA,CAAC,GAAGqxB,YAAR,EAAsBY,cAAc,CAACxyB,IAAf,CAAoBO,CAApB,CAAA,CAAA;IACvB,SAAA;IACF,OAAA;IACF,KAAA;;IACDkyB,IAAAA,aAAa,CAACn3B,OAAd,CAAuBsL,KAAD,IAAW;IAC/BiF,MAAAA,MAAM,CAAC2G,UAAP,CAAkBhL,MAAlB,CAAyB2pB,WAAW,CAACrc,MAAM,CAAClO,KAAD,CAAP,EAAgBA,KAAhB,CAApC,CAAA,CAAA;SADF,CAAA,CAAA;IAGA4rB,IAAAA,cAAc,CACXjH,IADH,CACQ,CAAC3qB,CAAD,EAAI4qB,CAAJ,KAAUA,CAAC,GAAG5qB,CADtB,CAAA,CAEGtF,OAFH,CAEYsL,KAAD,IAAW;IAClBiF,MAAAA,MAAM,CAAC2G,UAAP,CAAkB3K,OAAlB,CAA0BspB,WAAW,CAACrc,MAAM,CAAClO,KAAD,CAAP,EAAgBA,KAAhB,CAArC,CAAA,CAAA;SAHJ,CAAA,CAAA;IAKAiF,IAAAA,MAAM,CAAC2G,UAAP,CAAkBlW,QAAlB,CAA2B,eAA3B,CAA4CkK,CAAAA,GAA5C,CAAgDwrB,UAAhD,EAA6D,CAAA,EAAEnsB,MAAO,CAAtE,EAAA,CAAA,CAAA,CAAA;QACAssB,UAAU,EAAA,CAAA;IACX,GAAA;;MAED,SAASO,WAAT,CAAqB5d,MAArB,EAA6B;IAC3B,IAAA,IAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;IACpD,MAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,QAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAV,EAAesL,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsB9U,IAAtB,CAA2B8U,MAAM,CAACvU,CAAD,CAAjC,CAAA,CAAA;IAChB,OAAA;IACF,KAJD,MAIO;IACLsL,MAAAA,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsB9U,IAAtB,CAA2B8U,MAA3B,CAAA,CAAA;IACD,KAAA;;QACDiY,MAAM,CAAC,IAAD,CAAN,CAAA;IACD,GAAA;;MACD,SAAS4F,YAAT,CAAsB7d,MAAtB,EAA8B;IAC5B,IAAA,MAAM4E,WAAW,GAAG7N,MAAM,CAAC6N,WAA3B,CAAA;IACA,IAAA,IAAIwC,cAAc,GAAGxC,WAAW,GAAG,CAAnC,CAAA;QACA,IAAIkZ,iBAAiB,GAAG,CAAxB,CAAA;;IAEA,IAAA,IAAInzB,KAAK,CAACM,OAAN,CAAc+U,MAAd,CAAJ,EAA2B;IACzB,MAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,QAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAV,EAAesL,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBpR,OAAtB,CAA8BoR,MAAM,CAACvU,CAAD,CAApC,CAAA,CAAA;IAChB,OAAA;;IACD2b,MAAAA,cAAc,GAAGxC,WAAW,GAAG5E,MAAM,CAACtZ,MAAtC,CAAA;UACAo3B,iBAAiB,GAAG9d,MAAM,CAACtZ,MAA3B,CAAA;IACD,KAND,MAMO;IACLqQ,MAAAA,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBpR,OAAtB,CAA8BoR,MAA9B,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIjJ,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBuc,KAA1B,EAAiC;IAC/B,MAAA,MAAMA,KAAK,GAAGrlB,MAAM,CAAC8I,OAAP,CAAeuc,KAA7B,CAAA;UACA,MAAM2B,QAAQ,GAAG,EAAjB,CAAA;UACA53B,MAAM,CAACI,IAAP,CAAY61B,KAAZ,EAAmB51B,OAAnB,CAA4Bw3B,WAAD,IAAiB;IAC1C,QAAA,MAAMC,SAAS,GAAG7B,KAAK,CAAC4B,WAAD,CAAvB,CAAA;IACA,QAAA,MAAME,aAAa,GAAGD,SAAS,CAAC3wB,IAAV,CAAe,yBAAf,CAAtB,CAAA;;IACA,QAAA,IAAI4wB,aAAJ,EAAmB;IACjBD,UAAAA,SAAS,CAAC3wB,IAAV,CACE,yBADF,EAEEwR,QAAQ,CAACof,aAAD,EAAgB,EAAhB,CAAR,GAA8BJ,iBAFhC,CAAA,CAAA;IAID,SAAA;;YACDC,QAAQ,CAACjf,QAAQ,CAACkf,WAAD,EAAc,EAAd,CAAR,GAA4BF,iBAA7B,CAAR,GAA0DG,SAA1D,CAAA;WATF,CAAA,CAAA;IAWAlnB,MAAAA,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,GAAuB2B,QAAvB,CAAA;IACD,KAAA;;QACD9F,MAAM,CAAC,IAAD,CAAN,CAAA;IACAlhB,IAAAA,MAAM,CAACyS,OAAP,CAAepC,cAAf,EAA+B,CAA/B,CAAA,CAAA;IACD,GAAA;;MACD,SAAS+W,WAAT,CAAqBC,aAArB,EAAoC;QAClC,IAAI,OAAOA,aAAP,KAAyB,WAAzB,IAAwCA,aAAa,KAAK,IAA9D,EAAoE,OAAA;IACpE,IAAA,IAAIxZ,WAAW,GAAG7N,MAAM,CAAC6N,WAAzB,CAAA;;IACA,IAAA,IAAIja,KAAK,CAACM,OAAN,CAAcmzB,aAAd,CAAJ,EAAkC;IAChC,MAAA,KAAK,IAAI3yB,CAAC,GAAG2yB,aAAa,CAAC13B,MAAd,GAAuB,CAApC,EAAuC+E,CAAC,IAAI,CAA5C,EAA+CA,CAAC,IAAI,CAApD,EAAuD;IACrDsL,QAAAA,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBrQ,MAAtB,CAA6ByuB,aAAa,CAAC3yB,CAAD,CAA1C,EAA+C,CAA/C,CAAA,CAAA;;IACA,QAAA,IAAIsL,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBuc,KAA1B,EAAiC;cAC/B,OAAOrlB,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,CAAqBgC,aAAa,CAAC3yB,CAAD,CAAlC,CAAP,CAAA;IACD,SAAA;;YACD,IAAI2yB,aAAa,CAAC3yB,CAAD,CAAb,GAAmBmZ,WAAvB,EAAoCA,WAAW,IAAI,CAAf,CAAA;YACpCA,WAAW,GAAG3M,IAAI,CAACC,GAAL,CAAS0M,WAAT,EAAsB,CAAtB,CAAd,CAAA;IACD,OAAA;IACF,KATD,MASO;UACL7N,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBrQ,MAAtB,CAA6ByuB,aAA7B,EAA4C,CAA5C,CAAA,CAAA;;IACA,MAAA,IAAIrnB,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBuc,KAA1B,EAAiC;IAC/B,QAAA,OAAOrlB,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,CAAqBgC,aAArB,CAAP,CAAA;IACD,OAAA;;IACD,MAAA,IAAIA,aAAa,GAAGxZ,WAApB,EAAiCA,WAAW,IAAI,CAAf,CAAA;UACjCA,WAAW,GAAG3M,IAAI,CAACC,GAAL,CAAS0M,WAAT,EAAsB,CAAtB,CAAd,CAAA;IACD,KAAA;;QACDqT,MAAM,CAAC,IAAD,CAAN,CAAA;IACAlhB,IAAAA,MAAM,CAACyS,OAAP,CAAe5E,WAAf,EAA4B,CAA5B,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASyZ,eAAT,GAA2B;IACzBtnB,IAAAA,MAAM,CAAC8I,OAAP,CAAeG,MAAf,GAAwB,EAAxB,CAAA;;IACA,IAAA,IAAIjJ,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBuc,KAA1B,EAAiC;IAC/BrlB,MAAAA,MAAM,CAAC8I,OAAP,CAAeuc,KAAf,GAAuB,EAAvB,CAAA;IACD,KAAA;;QACDnE,MAAM,CAAC,IAAD,CAAN,CAAA;IACAlhB,IAAAA,MAAM,CAACyS,OAAP,CAAe,CAAf,EAAkB,CAAlB,CAAA,CAAA;IACD,GAAA;;MAEDtb,EAAE,CAAC,YAAD,EAAe,MAAM;QACrB,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA3B,EAAoC,OAAA;QACpC/I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,GAAwBjJ,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBG,MAA9C,CAAA;QACAjJ,MAAM,CAACtK,UAAP,CAAkBvB,IAAlB,CAAwB,CAAE6L,EAAAA,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAA/D,OAAA,CAAA,CAAA,CAAA;IAEApN,IAAAA,MAAM,CAACO,MAAP,CAAc0M,mBAAd,GAAoC,IAApC,CAAA;IACAjN,IAAAA,MAAM,CAACqe,cAAP,CAAsBpR,mBAAtB,GAA4C,IAA5C,CAAA;;IAEA,IAAA,IAAI,CAACjN,MAAM,CAACO,MAAP,CAAcwS,YAAnB,EAAiC;UAC/BmO,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GAXC,CAAF,CAAA;MAYA/pB,EAAE,CAAC,cAAD,EAAiB,MAAM;QACvB,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA3B,EAAoC,OAAA;;QACpC,IAAI/I,MAAM,CAACO,MAAP,CAAc+J,OAAd,IAAyB,CAACtK,MAAM,CAACsT,iBAArC,EAAwD;UACtD3gB,YAAY,CAACgzB,cAAD,CAAZ,CAAA;UACAA,cAAc,GAAGjzB,UAAU,CAAC,MAAM;YAChCwuB,MAAM,EAAA,CAAA;WADmB,EAExB,GAFwB,CAA3B,CAAA;IAGD,KALD,MAKO;UACLA,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GAVC,CAAF,CAAA;MAWA/pB,EAAE,CAAC,oBAAD,EAAuB,MAAM;QAC7B,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA3B,EAAoC,OAAA;;IACpC,IAAA,IAAI/I,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzB3K,MAAAA,cAAc,CAACK,MAAM,CAACS,SAAR,EAAmB,uBAAnB,EAA6C,CAAA,EAAET,MAAM,CAACgK,WAAY,CAAA,EAAA,CAAlE,CAAd,CAAA;IACD,KAAA;IACF,GALC,CAAF,CAAA;IAOA5a,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAAC8I,OAArB,EAA8B;QAC5B+d,WAD4B;QAE5BC,YAF4B;QAG5BM,WAH4B;QAI5BE,eAJ4B;IAK5BpG,IAAAA,MAAAA;OALF,CAAA,CAAA;IAOD;;IC5QD;IAIe,SAASqG,QAAT,CAAsD,IAAA,EAAA;MAAA,IAApC;QAAEvnB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MACnE,MAAM1S,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM0B,MAAM,GAAGF,SAAS,EAAxB,CAAA;MACA+M,MAAM,CAACwnB,QAAP,GAAkB;IAChBze,IAAAA,OAAO,EAAE,KAAA;OADX,CAAA;IAGArD,EAAAA,YAAY,CAAC;IACX8hB,IAAAA,QAAQ,EAAE;IACRze,MAAAA,OAAO,EAAE,KADD;IAER0e,MAAAA,cAAc,EAAE,IAFR;IAGRC,MAAAA,UAAU,EAAE,IAAA;IAHJ,KAAA;IADC,GAAD,CAAZ,CAAA;;MAQA,SAASC,MAAT,CAAgBtvB,KAAhB,EAAuB;IACrB,IAAA,IAAI,CAAC2H,MAAM,CAAC+I,OAAZ,EAAqB,OAAA;QAErB,MAAM;IAAEL,MAAAA,YAAY,EAAEC,GAAAA;IAAhB,KAAA,GAAwB3I,MAA9B,CAAA;QACA,IAAItI,CAAC,GAAGW,KAAR,CAAA;QACA,IAAIX,CAAC,CAACsf,aAAN,EAAqBtf,CAAC,GAAGA,CAAC,CAACsf,aAAN,CALA;;QAMrB,MAAM4Q,EAAE,GAAGlwB,CAAC,CAACmwB,OAAF,IAAanwB,CAAC,CAACowB,QAA1B,CAAA;QACA,MAAMJ,UAAU,GAAG1nB,MAAM,CAACO,MAAP,CAAcinB,QAAd,CAAuBE,UAA1C,CAAA;IACA,IAAA,MAAMK,QAAQ,GAAGL,UAAU,IAAIE,EAAE,KAAK,EAAtC,CAAA;IACA,IAAA,MAAMI,UAAU,GAAGN,UAAU,IAAIE,EAAE,KAAK,EAAxC,CAAA;IACA,IAAA,MAAMK,WAAW,GAAGL,EAAE,KAAK,EAA3B,CAAA;IACA,IAAA,MAAMM,YAAY,GAAGN,EAAE,KAAK,EAA5B,CAAA;IACA,IAAA,MAAMO,SAAS,GAAGP,EAAE,KAAK,EAAzB,CAAA;IACA,IAAA,MAAMQ,WAAW,GAAGR,EAAE,KAAK,EAA3B,CAbqB;;IAerB,IAAA,IACE,CAAC5nB,MAAM,CAACmT,cAAR,KACEnT,MAAM,CAAC6H,YAAP,EAAA,IAAyBqgB,YAA1B,IACEloB,MAAM,CAAC8H,UAAP,EAAA,IAAuBsgB,WADzB,IAECJ,UAHF,CADF,EAKE;IACA,MAAA,OAAO,KAAP,CAAA;IACD,KAAA;;IACD,IAAA,IACE,CAAChoB,MAAM,CAACoT,cAAR,KACEpT,MAAM,CAAC6H,YAAP,EAAA,IAAyBogB,WAA1B,IAA2CjoB,MAAM,CAAC8H,UAAP,EAAA,IAAuBqgB,SAAlE,IAAgFJ,QADjF,CADF,EAGE;IACA,MAAA,OAAO,KAAP,CAAA;IACD,KAAA;;IACD,IAAA,IAAIrwB,CAAC,CAAC2wB,QAAF,IAAc3wB,CAAC,CAAC4wB,MAAhB,IAA0B5wB,CAAC,CAAC6wB,OAA5B,IAAuC7wB,CAAC,CAAC8wB,OAA7C,EAAsD;IACpD,MAAA,OAAO7xB,SAAP,CAAA;IACD,KAAA;;IACD,IAAA,IACEhF,QAAQ,CAAC3B,aAAT,IACA2B,QAAQ,CAAC3B,aAAT,CAAuBE,QADvB,KAECyB,QAAQ,CAAC3B,aAAT,CAAuBE,QAAvB,CAAgC8T,WAAhC,EAAkD,KAAA,OAAlD,IACCrS,QAAQ,CAAC3B,aAAT,CAAuBE,QAAvB,CAAgC8T,WAAhC,EAAkD,KAAA,UAHpD,CADF,EAKE;IACA,MAAA,OAAOrN,SAAP,CAAA;IACD,KAAA;;QACD,IACEqJ,MAAM,CAACO,MAAP,CAAcinB,QAAd,CAAuBC,cAAvB,KACCM,QAAQ,IAAIC,UAAZ,IAA0BC,WAA1B,IAAyCC,YAAzC,IAAyDC,SAAzD,IAAsEC,WADvE,CADF,EAGE;IACA,MAAA,IAAIK,MAAM,GAAG,KAAb,CADA;;IAGA,MAAA,IACEzoB,MAAM,CAACyG,GAAP,CAAWzO,OAAX,CAAoB,CAAA,CAAA,EAAGgI,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAAhD,CAAA,CAAA,CAAmDvZ,MAAnD,GAA4D,CAA5D,IACAqQ,MAAM,CAACyG,GAAP,CAAWzO,OAAX,CAAoB,IAAGgI,MAAM,CAACO,MAAP,CAAciP,gBAAiB,CAAtD,CAAA,CAAA,CAAyD7f,MAAzD,KAAoE,CAFtE,EAGE;IACA,QAAA,OAAOgH,SAAP,CAAA;IACD,OAAA;;IAED,MAAA,MAAM8P,GAAG,GAAGzG,MAAM,CAACyG,GAAnB,CAAA;IACA,MAAA,MAAMiiB,WAAW,GAAGjiB,GAAG,CAAC,CAAD,CAAH,CAAOkB,WAA3B,CAAA;IACA,MAAA,MAAMghB,YAAY,GAAGliB,GAAG,CAAC,CAAD,CAAH,CAAOmB,YAA5B,CAAA;IACA,MAAA,MAAMghB,WAAW,GAAGz1B,MAAM,CAACylB,UAA3B,CAAA;IACA,MAAA,MAAMiQ,YAAY,GAAG11B,MAAM,CAACksB,WAA5B,CAAA;IACA,MAAA,MAAMyJ,YAAY,GAAG9oB,MAAM,CAACyG,GAAP,CAAWzM,MAAX,EAArB,CAAA;IACA,MAAA,IAAI2O,GAAJ,EAASmgB,YAAY,CAACpuB,IAAb,IAAqBsF,MAAM,CAACyG,GAAP,CAAW,CAAX,CAAA,CAAclM,UAAnC,CAAA;UACT,MAAMwuB,WAAW,GAAG,CAClB,CAACD,YAAY,CAACpuB,IAAd,EAAoBouB,YAAY,CAACruB,GAAjC,CADkB,EAElB,CAACquB,YAAY,CAACpuB,IAAb,GAAoBguB,WAArB,EAAkCI,YAAY,CAACruB,GAA/C,CAFkB,EAGlB,CAACquB,YAAY,CAACpuB,IAAd,EAAoBouB,YAAY,CAACruB,GAAb,GAAmBkuB,YAAvC,CAHkB,EAIlB,CAACG,YAAY,CAACpuB,IAAb,GAAoBguB,WAArB,EAAkCI,YAAY,CAACruB,GAAb,GAAmBkuB,YAArD,CAJkB,CAApB,CAAA;;IAMA,MAAA,KAAK,IAAIj0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGq0B,WAAW,CAACp5B,MAAhC,EAAwC+E,CAAC,IAAI,CAA7C,EAAgD;IAC9C,QAAA,MAAM6qB,KAAK,GAAGwJ,WAAW,CAACr0B,CAAD,CAAzB,CAAA;;YACA,IAAI6qB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAZ,IAAiBA,KAAK,CAAC,CAAD,CAAL,IAAYqJ,WAA7B,IAA4CrJ,KAAK,CAAC,CAAD,CAAL,IAAY,CAAxD,IAA6DA,KAAK,CAAC,CAAD,CAAL,IAAYsJ,YAA7E,EAA2F;IACzF,UAAA,IAAItJ,KAAK,CAAC,CAAD,CAAL,KAAa,CAAb,IAAkBA,KAAK,CAAC,CAAD,CAAL,KAAa,CAAnC,EAAsC,SADmD;;IAEzFkJ,UAAAA,MAAM,GAAG,IAAT,CAAA;IACD,SAAA;IACF,OAAA;;IACD,MAAA,IAAI,CAACA,MAAL,EAAa,OAAO9xB,SAAP,CAAA;IACd,KAAA;;IACD,IAAA,IAAIqJ,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IACzB,MAAA,IAAIkgB,QAAQ,IAAIC,UAAZ,IAA0BC,WAA1B,IAAyCC,YAA7C,EAA2D;IACzD,QAAA,IAAIxwB,CAAC,CAACmhB,cAAN,EAAsBnhB,CAAC,CAACmhB,cAAF,EAAA,CAAtB,KACKnhB,CAAC,CAACsxB,WAAF,GAAgB,KAAhB,CAAA;IACN,OAAA;;IACD,MAAA,IAAK,CAAChB,UAAU,IAAIE,YAAf,KAAgC,CAACvf,GAAlC,IAA2C,CAACof,QAAQ,IAAIE,WAAb,KAA6Btf,GAA5E,EACE3I,MAAM,CAAC4T,SAAP,EAAA,CAAA;IACF,MAAA,IAAK,CAACmU,QAAQ,IAAIE,WAAb,KAA6B,CAACtf,GAA/B,IAAwC,CAACqf,UAAU,IAAIE,YAAf,KAAgCvf,GAA5E,EACE3I,MAAM,CAACqU,SAAP,EAAA,CAAA;IACH,KATD,MASO;IACL,MAAA,IAAI0T,QAAQ,IAAIC,UAAZ,IAA0BG,SAA1B,IAAuCC,WAA3C,EAAwD;IACtD,QAAA,IAAI1wB,CAAC,CAACmhB,cAAN,EAAsBnhB,CAAC,CAACmhB,cAAF,EAAA,CAAtB,KACKnhB,CAAC,CAACsxB,WAAF,GAAgB,KAAhB,CAAA;IACN,OAAA;;IACD,MAAA,IAAIhB,UAAU,IAAII,WAAlB,EAA+BpoB,MAAM,CAAC4T,SAAP,EAAA,CAAA;IAC/B,MAAA,IAAImU,QAAQ,IAAII,SAAhB,EAA2BnoB,MAAM,CAACqU,SAAP,EAAA,CAAA;IAC5B,KAAA;;IACDhQ,IAAAA,IAAI,CAAC,UAAD,EAAaujB,EAAb,CAAJ,CAAA;IACA,IAAA,OAAOjxB,SAAP,CAAA;IACD,GAAA;;IACD,EAAA,SAASmoB,MAAT,GAAkB;IAChB,IAAA,IAAI9e,MAAM,CAACwnB,QAAP,CAAgBze,OAApB,EAA6B,OAAA;QAC7B/T,CAAC,CAACrD,QAAD,CAAD,CAAYwF,EAAZ,CAAe,SAAf,EAA0BwwB,MAA1B,CAAA,CAAA;IACA3nB,IAAAA,MAAM,CAACwnB,QAAP,CAAgBze,OAAhB,GAA0B,IAA1B,CAAA;IACD,GAAA;;IACD,EAAA,SAAS8V,OAAT,GAAmB;IACjB,IAAA,IAAI,CAAC7e,MAAM,CAACwnB,QAAP,CAAgBze,OAArB,EAA8B,OAAA;QAC9B/T,CAAC,CAACrD,QAAD,CAAD,CAAY8G,GAAZ,CAAgB,SAAhB,EAA2BkvB,MAA3B,CAAA,CAAA;IACA3nB,IAAAA,MAAM,CAACwnB,QAAP,CAAgBze,OAAhB,GAA0B,KAA1B,CAAA;IACD,GAAA;;MAED5R,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcinB,QAAd,CAAuBze,OAA3B,EAAoC;UAClC+V,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GAJC,CAAF,CAAA;MAKA3nB,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB,IAAA,IAAI6I,MAAM,CAACwnB,QAAP,CAAgBze,OAApB,EAA6B;UAC3B8V,OAAO,EAAA,CAAA;IACR,KAAA;IACF,GAJC,CAAF,CAAA;IAMAzvB,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACwnB,QAArB,EAA+B;QAC7B1I,MAD6B;IAE7BD,IAAAA,OAAAA;OAFF,CAAA,CAAA;IAID;;IC3ID;IAKe,SAASoK,UAAT,CAAwD,IAAA,EAAA;MAAA,IAApC;QAAEjpB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MACrE,MAAMlR,MAAM,GAAGF,SAAS,EAAxB,CAAA;IAEAyS,EAAAA,YAAY,CAAC;IACXwjB,IAAAA,UAAU,EAAE;IACVngB,MAAAA,OAAO,EAAE,KADC;IAEVogB,MAAAA,cAAc,EAAE,KAFN;IAGVC,MAAAA,MAAM,EAAE,KAHE;IAIVC,MAAAA,WAAW,EAAE,KAJH;IAKVC,MAAAA,WAAW,EAAE,CALH;IAMVC,MAAAA,YAAY,EAAE,WANJ;IAOVC,MAAAA,cAAc,EAAE,IAPN;IAQVC,MAAAA,aAAa,EAAE,IAAA;IARL,KAAA;IADD,GAAD,CAAZ,CAAA;MAaAzpB,MAAM,CAACkpB,UAAP,GAAoB;IAClBngB,IAAAA,OAAO,EAAE,KAAA;OADX,CAAA;IAIA,EAAA,IAAI2gB,OAAJ,CAAA;MACA,IAAIC,cAAc,GAAGnsB,GAAG,EAAxB,CAAA;IACA,EAAA,IAAIosB,mBAAJ,CAAA;MACA,MAAMC,iBAAiB,GAAG,EAA1B,CAAA;;MAEA,SAASvV,SAAT,CAAmB5c,CAAnB,EAAsB;IACpB;QACA,MAAMoyB,UAAU,GAAG,EAAnB,CAAA;QACA,MAAMC,WAAW,GAAG,EAApB,CAAA;QACA,MAAMC,WAAW,GAAG,GAApB,CAAA;QAEA,IAAIC,EAAE,GAAG,CAAT,CAAA;IACA,IAAA,IAAIC,EAAE,GAAG,CAAT,CAPoB;;QAQpB,IAAIC,EAAE,GAAG,CAAT,CAAA;IACA,IAAA,IAAIC,EAAE,GAAG,CAAT,CAToB;IAWpB;;QACA,IAAI,QAAA,IAAY1yB,CAAhB,EAAmB;UACjBwyB,EAAE,GAAGxyB,CAAC,CAACsB,MAAP,CAAA;IACD,KAAA;;QACD,IAAI,YAAA,IAAgBtB,CAApB,EAAuB;IACrBwyB,MAAAA,EAAE,GAAG,CAACxyB,CAAC,CAAC2yB,UAAH,GAAgB,GAArB,CAAA;IACD,KAAA;;QACD,IAAI,aAAA,IAAiB3yB,CAArB,EAAwB;IACtBwyB,MAAAA,EAAE,GAAG,CAACxyB,CAAC,CAAC4yB,WAAH,GAAiB,GAAtB,CAAA;IACD,KAAA;;QACD,IAAI,aAAA,IAAiB5yB,CAArB,EAAwB;IACtBuyB,MAAAA,EAAE,GAAG,CAACvyB,CAAC,CAAC6yB,WAAH,GAAiB,GAAtB,CAAA;IACD,KAvBmB;;;QA0BpB,IAAI,MAAA,IAAU7yB,CAAV,IAAeA,CAAC,CAACiG,IAAF,KAAWjG,CAAC,CAAC8yB,eAAhC,EAAiD;IAC/CP,MAAAA,EAAE,GAAGC,EAAL,CAAA;IACAA,MAAAA,EAAE,GAAG,CAAL,CAAA;IACD,KAAA;;QAEDC,EAAE,GAAGF,EAAE,GAAGH,UAAV,CAAA;QACAM,EAAE,GAAGF,EAAE,GAAGJ,UAAV,CAAA;;QAEA,IAAI,QAAA,IAAYpyB,CAAhB,EAAmB;UACjB0yB,EAAE,GAAG1yB,CAAC,CAAC+yB,MAAP,CAAA;IACD,KAAA;;QACD,IAAI,QAAA,IAAY/yB,CAAhB,EAAmB;UACjByyB,EAAE,GAAGzyB,CAAC,CAACgzB,MAAP,CAAA;IACD,KAAA;;IAED,IAAA,IAAIhzB,CAAC,CAAC2wB,QAAF,IAAc,CAAC8B,EAAnB,EAAuB;IACrB;IACAA,MAAAA,EAAE,GAAGC,EAAL,CAAA;IACAA,MAAAA,EAAE,GAAG,CAAL,CAAA;IACD,KAAA;;QAED,IAAI,CAACD,EAAE,IAAIC,EAAP,KAAc1yB,CAAC,CAACizB,SAApB,EAA+B;IAC7B,MAAA,IAAIjzB,CAAC,CAACizB,SAAF,KAAgB,CAApB,EAAuB;IACrB;IACAR,QAAAA,EAAE,IAAIJ,WAAN,CAAA;IACAK,QAAAA,EAAE,IAAIL,WAAN,CAAA;IACD,OAJD,MAIO;IACL;IACAI,QAAAA,EAAE,IAAIH,WAAN,CAAA;IACAI,QAAAA,EAAE,IAAIJ,WAAN,CAAA;IACD,OAAA;IACF,KAzDmB;;;IA4DpB,IAAA,IAAIG,EAAE,IAAI,CAACF,EAAX,EAAe;UACbA,EAAE,GAAGE,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAnB,CAAA;IACD,KAAA;;IACD,IAAA,IAAIC,EAAE,IAAI,CAACF,EAAX,EAAe;UACbA,EAAE,GAAGE,EAAE,GAAG,CAAL,GAAS,CAAC,CAAV,GAAc,CAAnB,CAAA;IACD,KAAA;;QAED,OAAO;IACLQ,MAAAA,KAAK,EAAEX,EADF;IAELY,MAAAA,KAAK,EAAEX,EAFF;IAGLY,MAAAA,MAAM,EAAEX,EAHH;IAILY,MAAAA,MAAM,EAAEX,EAAAA;SAJV,CAAA;IAMD,GAAA;;IACD,EAAA,SAASY,gBAAT,GAA4B;IAC1B,IAAA,IAAI,CAAChrB,MAAM,CAAC+I,OAAZ,EAAqB,OAAA;QACrB/I,MAAM,CAACirB,YAAP,GAAsB,IAAtB,CAAA;IACD,GAAA;;IACD,EAAA,SAASC,gBAAT,GAA4B;IAC1B,IAAA,IAAI,CAAClrB,MAAM,CAAC+I,OAAZ,EAAqB,OAAA;QACrB/I,MAAM,CAACirB,YAAP,GAAsB,KAAtB,CAAA;IACD,GAAA;;MACD,SAASE,aAAT,CAAuBC,QAAvB,EAAiC;IAC/B,IAAA,IACEprB,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBM,cAAzB,IACA4B,QAAQ,CAACC,KAAT,GAAiBrrB,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBM,cAF5C,EAGE;IACA;IACA,MAAA,OAAO,KAAP,CAAA;IACD,KAAA;;IAED,IAAA,IACExpB,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBO,aAAzB,IACAjsB,GAAG,KAAKmsB,cAAR,GAAyB3pB,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBO,aAFpD,EAGE;IACA;IACA,MAAA,OAAO,KAAP,CAAA;IACD,KAf8B;IAkB/B;IACA;;;QACA,IAAI2B,QAAQ,CAACC,KAAT,IAAkB,CAAlB,IAAuB7tB,GAAG,EAAKmsB,GAAAA,cAAR,GAAyB,EAApD,EAAwD;IACtD;IACA,MAAA,OAAO,IAAP,CAAA;IACD,KAvB8B;IAyB/B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;;IACA,IAAA,IAAIyB,QAAQ,CAAC9Y,SAAT,GAAqB,CAAzB,EAA4B;IAC1B,MAAA,IAAI,CAAC,CAACtS,MAAM,CAACkP,KAAR,IAAiBlP,MAAM,CAACO,MAAP,CAAcwP,IAAhC,KAAyC,CAAC/P,MAAM,CAAC+R,SAArD,EAAgE;IAC9D/R,QAAAA,MAAM,CAAC4T,SAAP,EAAA,CAAA;IACAvP,QAAAA,IAAI,CAAC,QAAD,EAAW+mB,QAAQ,CAACE,GAApB,CAAJ,CAAA;IACD,OAAA;IACF,KALD,MAKO,IAAI,CAAC,CAACtrB,MAAM,CAACiP,WAAR,IAAuBjP,MAAM,CAACO,MAAP,CAAcwP,IAAtC,KAA+C,CAAC/P,MAAM,CAAC+R,SAA3D,EAAsE;IAC3E/R,MAAAA,MAAM,CAACqU,SAAP,EAAA,CAAA;IACAhQ,MAAAA,IAAI,CAAC,QAAD,EAAW+mB,QAAQ,CAACE,GAApB,CAAJ,CAAA;IACD,KA5C8B;;;QA8C/B3B,cAAc,GAAG,IAAIx2B,MAAM,CAACX,IAAX,EAAkBwO,CAAAA,OAAlB,EAAjB,CA9C+B;;IAgD/B,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;MACD,SAASuqB,aAAT,CAAuBH,QAAvB,EAAiC;IAC/B,IAAA,MAAM7qB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2oB,UAA7B,CAAA;;IACA,IAAA,IAAIkC,QAAQ,CAAC9Y,SAAT,GAAqB,CAAzB,EAA4B;IAC1B,MAAA,IAAItS,MAAM,CAACkP,KAAP,IAAgB,CAAClP,MAAM,CAACO,MAAP,CAAcwP,IAA/B,IAAuCxP,MAAM,CAAC4oB,cAAlD,EAAkE;IAChE;IACA,QAAA,OAAO,IAAP,CAAA;IACD,OAAA;IACF,KALD,MAKO,IAAInpB,MAAM,CAACiP,WAAP,IAAsB,CAACjP,MAAM,CAACO,MAAP,CAAcwP,IAArC,IAA6CxP,MAAM,CAAC4oB,cAAxD,EAAwE;IAC7E;IACA,MAAA,OAAO,IAAP,CAAA;IACD,KAAA;;IACD,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;MACD,SAASxB,MAAT,CAAgBtvB,KAAhB,EAAuB;QACrB,IAAIX,CAAC,GAAGW,KAAR,CAAA;QACA,IAAIuiB,mBAAmB,GAAG,IAA1B,CAAA;IACA,IAAA,IAAI,CAAC5a,MAAM,CAAC+I,OAAZ,EAAqB,OAAA;IACrB,IAAA,MAAMxI,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2oB,UAA7B,CAAA;;IAEA,IAAA,IAAIlpB,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzB5S,MAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACD,KAAA;;IAED,IAAA,IAAIvpB,MAAM,GAAG0Q,MAAM,CAACyG,GAApB,CAAA;;QACA,IAAIzG,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBK,YAAzB,KAA0C,WAA9C,EAA2D;UACzDj6B,MAAM,GAAG0F,CAAC,CAACgL,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBK,YAA1B,CAAV,CAAA;IACD,KAAA;;QACD,IAAI,CAACvpB,MAAM,CAACirB,YAAR,IAAwB,CAAC37B,MAAM,CAAC,CAAD,CAAN,CAAUgH,QAAV,CAAmBoB,CAAC,CAACpI,MAArB,CAAzB,IAAyD,CAACiR,MAAM,CAAC4oB,cAArE,EACE,OAAO,IAAP,CAAA;QAEF,IAAIzxB,CAAC,CAACsf,aAAN,EAAqBtf,CAAC,GAAGA,CAAC,CAACsf,aAAN,CAjBA;;QAkBrB,IAAIqU,KAAK,GAAG,CAAZ,CAAA;QACA,MAAMG,SAAS,GAAGxrB,MAAM,CAAC0I,YAAP,GAAsB,CAAC,CAAvB,GAA2B,CAA7C,CAAA;IAEA,IAAA,MAAMvP,IAAI,GAAGmb,SAAS,CAAC5c,CAAD,CAAtB,CAAA;;QAEA,IAAI6I,MAAM,CAAC8oB,WAAX,EAAwB;IACtB,MAAA,IAAIrpB,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IACzB,QAAA,IAAI3G,IAAI,CAACwK,GAAL,CAASvS,IAAI,CAAC2xB,MAAd,CAAA,GAAwB5pB,IAAI,CAACwK,GAAL,CAASvS,IAAI,CAAC4xB,MAAd,CAA5B,EAAmDM,KAAK,GAAG,CAAClyB,IAAI,CAAC2xB,MAAN,GAAeU,SAAvB,CAAnD,KACK,OAAO,IAAP,CAAA;IACN,OAHD,MAGO,IAAItqB,IAAI,CAACwK,GAAL,CAASvS,IAAI,CAAC4xB,MAAd,CAAA,GAAwB7pB,IAAI,CAACwK,GAAL,CAASvS,IAAI,CAAC2xB,MAAd,CAA5B,EAAmDO,KAAK,GAAG,CAAClyB,IAAI,CAAC4xB,MAAd,CAAnD,KACF,OAAO,IAAP,CAAA;IACN,KAND,MAMO;IACLM,MAAAA,KAAK,GACHnqB,IAAI,CAACwK,GAAL,CAASvS,IAAI,CAAC2xB,MAAd,CAAwB5pB,GAAAA,IAAI,CAACwK,GAAL,CAASvS,IAAI,CAAC4xB,MAAd,CAAxB,GAAgD,CAAC5xB,IAAI,CAAC2xB,MAAN,GAAeU,SAA/D,GAA2E,CAACryB,IAAI,CAAC4xB,MADnF,CAAA;IAED,KAAA;;IAED,IAAA,IAAIM,KAAK,KAAK,CAAd,EAAiB,OAAO,IAAP,CAAA;QAEjB,IAAI9qB,MAAM,CAAC6oB,MAAX,EAAmBiC,KAAK,GAAG,CAACA,KAAT,CApCE;;QAuCrB,IAAII,SAAS,GAAGzrB,MAAM,CAACtC,YAAP,KAAwB2tB,KAAK,GAAG9qB,MAAM,CAAC+oB,WAAvD,CAAA;IAEA,IAAA,IAAImC,SAAS,IAAIzrB,MAAM,CAACuO,YAAP,EAAjB,EAAwCkd,SAAS,GAAGzrB,MAAM,CAACuO,YAAP,EAAZ,CAAA;IACxC,IAAA,IAAIkd,SAAS,IAAIzrB,MAAM,CAACgP,YAAP,EAAjB,EAAwCyc,SAAS,GAAGzrB,MAAM,CAACgP,YAAP,EAAZ,CA1CnB;IA6CrB;IACA;IACA;IACA;IACA;IACA;;QACA4L,mBAAmB,GAAG5a,MAAM,CAACO,MAAP,CAAcwP,IAAd,GAClB,IADkB,GAElB,EAAE0b,SAAS,KAAKzrB,MAAM,CAACuO,YAAP,EAAd,IAAuCkd,SAAS,KAAKzrB,MAAM,CAACgP,YAAP,EAAvD,CAFJ,CAAA;QAIA,IAAI4L,mBAAmB,IAAI5a,MAAM,CAACO,MAAP,CAAc+Z,MAAzC,EAAiD5iB,CAAC,CAAC6iB,eAAF,EAAA,CAAA;;IAEjD,IAAA,IAAI,CAACva,MAAM,CAACO,MAAP,CAAcmZ,QAAf,IAA2B,CAAC1Z,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuB3Q,OAAvD,EAAgE;IAC9D;IACA,MAAA,MAAMqiB,QAAQ,GAAG;YACf9qB,IAAI,EAAE9C,GAAG,EADM;IAEf6tB,QAAAA,KAAK,EAAEnqB,IAAI,CAACwK,GAAL,CAAS2f,KAAT,CAFQ;IAGf/Y,QAAAA,SAAS,EAAEpR,IAAI,CAACwqB,IAAL,CAAUL,KAAV,CAHI;IAIfC,QAAAA,GAAG,EAAEjzB,KAAAA;IAJU,OAAjB,CAF8D;;IAU9D,MAAA,IAAIwxB,iBAAiB,CAACl6B,MAAlB,IAA4B,CAAhC,EAAmC;YACjCk6B,iBAAiB,CAAC8B,KAAlB,EAAA,CADiC;IAElC,OAAA;;IACD,MAAA,MAAMC,SAAS,GAAG/B,iBAAiB,CAACl6B,MAAlB,GACdk6B,iBAAiB,CAACA,iBAAiB,CAACl6B,MAAlB,GAA2B,CAA5B,CADH,GAEdgH,SAFJ,CAAA;IAGAkzB,MAAAA,iBAAiB,CAAC11B,IAAlB,CAAuBi3B,QAAvB,EAhB8D;IAmB9D;IACA;IACA;IACA;IACA;;IACA,MAAA,IAAIQ,SAAJ,EAAe;YACb,IACER,QAAQ,CAAC9Y,SAAT,KAAuBsZ,SAAS,CAACtZ,SAAjC,IACA8Y,QAAQ,CAACC,KAAT,GAAiBO,SAAS,CAACP,KAD3B,IAEAD,QAAQ,CAAC9qB,IAAT,GAAgBsrB,SAAS,CAACtrB,IAAV,GAAiB,GAHnC,EAIE;cACA6qB,aAAa,CAACC,QAAD,CAAb,CAAA;IACD,SAAA;IACF,OARD,MAQO;YACLD,aAAa,CAACC,QAAD,CAAb,CAAA;IACD,OAlC6D;IAqC9D;;;IACA,MAAA,IAAIG,aAAa,CAACH,QAAD,CAAjB,EAA6B;IAC3B,QAAA,OAAO,IAAP,CAAA;IACD,OAAA;IACF,KAzCD,MAyCO;IACL;IAEA;IACA;IACA;IACA;IACA,MAAA,MAAMA,QAAQ,GAAG;YACf9qB,IAAI,EAAE9C,GAAG,EADM;IAEf6tB,QAAAA,KAAK,EAAEnqB,IAAI,CAACwK,GAAL,CAAS2f,KAAT,CAFQ;IAGf/Y,QAAAA,SAAS,EAAEpR,IAAI,CAACwqB,IAAL,CAAUL,KAAV,CAAA;WAHb,CAAA;IAKA,MAAA,MAAMQ,iBAAiB,GACrBjC,mBAAmB,IACnBwB,QAAQ,CAAC9qB,IAAT,GAAgBspB,mBAAmB,CAACtpB,IAApB,GAA2B,GAD3C,IAEA8qB,QAAQ,CAACC,KAAT,IAAkBzB,mBAAmB,CAACyB,KAFtC,IAGAD,QAAQ,CAAC9Y,SAAT,KAAuBsX,mBAAmB,CAACtX,SAJ7C,CAAA;;UAKA,IAAI,CAACuZ,iBAAL,EAAwB;IACtBjC,QAAAA,mBAAmB,GAAGjzB,SAAtB,CAAA;;IAEA,QAAA,IAAIqJ,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IACtB/P,UAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;IACD,SAAA;;YACD,IAAI4X,QAAQ,GAAG9rB,MAAM,CAACtC,YAAP,KAAwB2tB,KAAK,GAAG9qB,MAAM,CAAC+oB,WAAtD,CAAA;IACA,QAAA,MAAMna,YAAY,GAAGnP,MAAM,CAACiP,WAA5B,CAAA;IACA,QAAA,MAAMG,MAAM,GAAGpP,MAAM,CAACkP,KAAtB,CAAA;IAEA,QAAA,IAAI4c,QAAQ,IAAI9rB,MAAM,CAACuO,YAAP,EAAhB,EAAuCud,QAAQ,GAAG9rB,MAAM,CAACuO,YAAP,EAAX,CAAA;IACvC,QAAA,IAAIud,QAAQ,IAAI9rB,MAAM,CAACgP,YAAP,EAAhB,EAAuC8c,QAAQ,GAAG9rB,MAAM,CAACgP,YAAP,EAAX,CAAA;YAEvChP,MAAM,CAACyN,aAAP,CAAqB,CAArB,CAAA,CAAA;YACAzN,MAAM,CAACoR,YAAP,CAAoB0a,QAApB,CAAA,CAAA;IACA9rB,QAAAA,MAAM,CAAC6O,cAAP,EAAA,CAAA;IACA7O,QAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,QAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;;IAEA,QAAA,IAAK,CAACH,YAAD,IAAiBnP,MAAM,CAACiP,WAAzB,IAA0C,CAACG,MAAD,IAAWpP,MAAM,CAACkP,KAAhE,EAAwE;IACtElP,UAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,SAAA;;IAED,QAAA,IAAItP,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuBqS,MAA3B,EAAmC;IACjC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;cACAp5B,YAAY,CAAC+2B,OAAD,CAAZ,CAAA;IACAA,UAAAA,OAAO,GAAG/yB,SAAV,CAAA;;IACA,UAAA,IAAIkzB,iBAAiB,CAACl6B,MAAlB,IAA4B,EAAhC,EAAoC;gBAClCk6B,iBAAiB,CAAC8B,KAAlB,EAAA,CADkC;IAEnC,WAAA;;IACD,UAAA,MAAMC,SAAS,GAAG/B,iBAAiB,CAACl6B,MAAlB,GACdk6B,iBAAiB,CAACA,iBAAiB,CAACl6B,MAAlB,GAA2B,CAA5B,CADH,GAEdgH,SAFJ,CAAA;IAGA,UAAA,MAAMq1B,UAAU,GAAGnC,iBAAiB,CAAC,CAAD,CAApC,CAAA;cACAA,iBAAiB,CAAC11B,IAAlB,CAAuBi3B,QAAvB,CAAA,CAAA;;IACA,UAAA,IACEQ,SAAS,KACRR,QAAQ,CAACC,KAAT,GAAiBO,SAAS,CAACP,KAA3B,IAAoCD,QAAQ,CAAC9Y,SAAT,KAAuBsZ,SAAS,CAACtZ,SAD7D,CADX,EAGE;IACA;gBACAuX,iBAAiB,CAACjxB,MAAlB,CAAyB,CAAzB,CAAA,CAAA;IACD,WAND,MAMO,IACLixB,iBAAiB,CAACl6B,MAAlB,IAA4B,EAA5B,IACAy7B,QAAQ,CAAC9qB,IAAT,GAAgB0rB,UAAU,CAAC1rB,IAA3B,GAAkC,GADlC,IAEA0rB,UAAU,CAACX,KAAX,GAAmBD,QAAQ,CAACC,KAA5B,IAAqC,CAFrC,IAGAD,QAAQ,CAACC,KAAT,IAAkB,CAJb,EAKL;IACA;IACA;IACA;IACA;IACA;IACA;gBACA,MAAMY,eAAe,GAAGZ,KAAK,GAAG,CAAR,GAAY,GAAZ,GAAkB,GAA1C,CAAA;IACAzB,YAAAA,mBAAmB,GAAGwB,QAAtB,CAAA;gBACAvB,iBAAiB,CAACjxB,MAAlB,CAAyB,CAAzB,CAAA,CAAA;gBACA8wB,OAAO,GAAGpsB,QAAQ,CAAC,MAAM;IACvB0C,cAAAA,MAAM,CAAC8U,cAAP,CAAsB9U,MAAM,CAACO,MAAP,CAAcC,KAApC,EAA2C,IAA3C,EAAiD7J,SAAjD,EAA4Ds1B,eAA5D,CAAA,CAAA;IACD,aAFiB,EAEf,CAFe,CAAlB,CAVA;IAaD,WAAA;;cACD,IAAI,CAACvC,OAAL,EAAc;IACZ;IACA;IACA;gBACAA,OAAO,GAAGpsB,QAAQ,CAAC,MAAM;kBACvB,MAAM2uB,eAAe,GAAG,GAAxB,CAAA;IACArC,cAAAA,mBAAmB,GAAGwB,QAAtB,CAAA;kBACAvB,iBAAiB,CAACjxB,MAAlB,CAAyB,CAAzB,CAAA,CAAA;IACAoH,cAAAA,MAAM,CAAC8U,cAAP,CAAsB9U,MAAM,CAACO,MAAP,CAAcC,KAApC,EAA2C,IAA3C,EAAiD7J,SAAjD,EAA4Ds1B,eAA5D,CAAA,CAAA;iBAJgB,EAKf,GALe,CAAlB,CAAA;IAMD,WAAA;IACF,SAjFqB;;;YAoFtB,IAAI,CAACJ,iBAAL,EAAwBxnB,IAAI,CAAC,QAAD,EAAW3M,CAAX,CAAJ,CApFF;;IAuFtB,QAAA,IAAIsI,MAAM,CAACO,MAAP,CAAc+b,QAAd,IAA0Btc,MAAM,CAACO,MAAP,CAAc2rB,4BAA5C,EACElsB,MAAM,CAACsc,QAAP,CAAgB6P,IAAhB,GAxFoB;;IA0FtB,QAAA,IAAIL,QAAQ,KAAK9rB,MAAM,CAACuO,YAAP,EAAb,IAAsCud,QAAQ,KAAK9rB,MAAM,CAACgP,YAAP,EAAvD,EAA8E,OAAO,IAAP,CAAA;IAC/E,OAAA;IACF,KAAA;;IAED,IAAA,IAAItX,CAAC,CAACmhB,cAAN,EAAsBnhB,CAAC,CAACmhB,cAAF,EAAA,CAAtB,KACKnhB,CAAC,CAACsxB,WAAF,GAAgB,KAAhB,CAAA;IACL,IAAA,OAAO,KAAP,CAAA;IACD,GAAA;;MAED,SAAS7wB,MAAT,CAAgB8O,MAAhB,EAAwB;IACtB,IAAA,IAAI3X,MAAM,GAAG0Q,MAAM,CAACyG,GAApB,CAAA;;QACA,IAAIzG,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBK,YAAzB,KAA0C,WAA9C,EAA2D;UACzDj6B,MAAM,GAAG0F,CAAC,CAACgL,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBK,YAA1B,CAAV,CAAA;IACD,KAAA;;IACDj6B,IAAAA,MAAM,CAAC2X,MAAD,CAAN,CAAe,YAAf,EAA6B+jB,gBAA7B,CAAA,CAAA;IACA17B,IAAAA,MAAM,CAAC2X,MAAD,CAAN,CAAe,YAAf,EAA6BikB,gBAA7B,CAAA,CAAA;IACA57B,IAAAA,MAAM,CAAC2X,MAAD,CAAN,CAAe,OAAf,EAAwB0gB,MAAxB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,SAAS7I,MAAT,GAAkB;IAChB,IAAA,IAAI9e,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzBtK,MAAAA,MAAM,CAACS,SAAP,CAAiB1Q,mBAAjB,CAAqC,OAArC,EAA8C43B,MAA9C,CAAA,CAAA;IACA,MAAA,OAAO,IAAP,CAAA;IACD,KAAA;;IACD,IAAA,IAAI3nB,MAAM,CAACkpB,UAAP,CAAkBngB,OAAtB,EAA+B,OAAO,KAAP,CAAA;QAC/B5Q,MAAM,CAAC,IAAD,CAAN,CAAA;IACA6H,IAAAA,MAAM,CAACkpB,UAAP,CAAkBngB,OAAlB,GAA4B,IAA5B,CAAA;IACA,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;IACD,EAAA,SAAS8V,OAAT,GAAmB;IACjB,IAAA,IAAI7e,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzBtK,MAAAA,MAAM,CAACS,SAAP,CAAiB3Q,gBAAjB,CAAkCuI,KAAlC,EAAyCsvB,MAAzC,CAAA,CAAA;IACA,MAAA,OAAO,IAAP,CAAA;IACD,KAAA;;QACD,IAAI,CAAC3nB,MAAM,CAACkpB,UAAP,CAAkBngB,OAAvB,EAAgC,OAAO,KAAP,CAAA;QAChC5Q,MAAM,CAAC,KAAD,CAAN,CAAA;IACA6H,IAAAA,MAAM,CAACkpB,UAAP,CAAkBngB,OAAlB,GAA4B,KAA5B,CAAA;IACA,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MAED5R,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBngB,OAA1B,IAAqC/I,MAAM,CAACO,MAAP,CAAc+J,OAAvD,EAAgE;UAC9DuU,OAAO,EAAA,CAAA;IACR,KAAA;;QACD,IAAI7e,MAAM,CAACO,MAAP,CAAc2oB,UAAd,CAAyBngB,OAA7B,EAAsC+V,MAAM,EAAA,CAAA;IAC7C,GALC,CAAF,CAAA;MAMA3nB,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;UACzBwU,MAAM,EAAA,CAAA;IACP,KAAA;;IACD,IAAA,IAAI9e,MAAM,CAACkpB,UAAP,CAAkBngB,OAAtB,EAA+B8V,OAAO,EAAA,CAAA;IACvC,GALC,CAAF,CAAA;IAOAzvB,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACkpB,UAArB,EAAiC;QAC/BpK,MAD+B;IAE/BD,IAAAA,OAAAA;OAFF,CAAA,CAAA;IAID;;ICnbc,SAASuN,yBAAT,CAAmCpsB,MAAnC,EAA2Cqe,cAA3C,EAA2D9d,MAA3D,EAAmE8rB,UAAnE,EAA+E;MAC5F,MAAM16B,QAAQ,GAAGF,WAAW,EAA5B,CAAA;;IACA,EAAA,IAAIuO,MAAM,CAACO,MAAP,CAAcghB,cAAlB,EAAkC;QAChCnyB,MAAM,CAACI,IAAP,CAAY68B,UAAZ,EAAwB58B,OAAxB,CAAiCC,GAAD,IAAS;UACvC,IAAI,CAAC6Q,MAAM,CAAC7Q,GAAD,CAAP,IAAgB6Q,MAAM,CAACyhB,IAAP,KAAgB,IAApC,EAA0C;IACxC,QAAA,IAAIsK,OAAO,GAAGtsB,MAAM,CAACyG,GAAP,CAAWhW,QAAX,CAAqB,CAAG47B,CAAAA,EAAAA,UAAU,CAAC38B,GAAD,CAAM,CAAxC,CAAA,CAAA,CAA2C,CAA3C,CAAd,CAAA;;YACA,IAAI,CAAC48B,OAAL,EAAc;IACZA,UAAAA,OAAO,GAAG36B,QAAQ,CAACnB,aAAT,CAAuB,KAAvB,CAAV,CAAA;IACA87B,UAAAA,OAAO,CAACn2B,SAAR,GAAoBk2B,UAAU,CAAC38B,GAAD,CAA9B,CAAA;IACAsQ,UAAAA,MAAM,CAACyG,GAAP,CAAW9K,MAAX,CAAkB2wB,OAAlB,CAAA,CAAA;IACD,SAAA;;IACD/rB,QAAAA,MAAM,CAAC7Q,GAAD,CAAN,GAAc48B,OAAd,CAAA;IACAjO,QAAAA,cAAc,CAAC3uB,GAAD,CAAd,GAAsB48B,OAAtB,CAAA;IACD,OAAA;SAVH,CAAA,CAAA;IAYD,GAAA;;IACD,EAAA,OAAO/rB,MAAP,CAAA;IACD;;IChBc,SAASgsB,UAAT,CAAwD,IAAA,EAAA;MAAA,IAApC;QAAEvsB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;IACrEqB,EAAAA,YAAY,CAAC;IACXuW,IAAAA,UAAU,EAAE;IACVC,MAAAA,MAAM,EAAE,IADE;IAEVC,MAAAA,MAAM,EAAE,IAFE;IAIVqQ,MAAAA,WAAW,EAAE,KAJH;IAKVC,MAAAA,aAAa,EAAE,wBALL;IAMVC,MAAAA,WAAW,EAAE,sBANH;IAOVC,MAAAA,SAAS,EAAE,oBAPD;IAQVC,MAAAA,uBAAuB,EAAE,4BAAA;IARf,KAAA;IADD,GAAD,CAAZ,CAAA;MAaA5sB,MAAM,CAACic,UAAP,GAAoB;IAClBC,IAAAA,MAAM,EAAE,IADU;IAElB2Q,IAAAA,OAAO,EAAE,IAFS;IAGlB1Q,IAAAA,MAAM,EAAE,IAHU;IAIlB2Q,IAAAA,OAAO,EAAE,IAAA;OAJX,CAAA;;MAOA,SAASC,KAAT,CAAe94B,EAAf,EAAmB;IACjB,IAAA,IAAIwS,GAAJ,CAAA;;IACA,IAAA,IAAIxS,EAAJ,EAAQ;IACNwS,MAAAA,GAAG,GAAGzR,CAAC,CAACf,EAAD,CAAP,CAAA;;IACA,MAAA,IACE+L,MAAM,CAACO,MAAP,CAAckhB,iBAAd,IACA,OAAOxtB,EAAP,KAAc,QADd,IAEAwS,GAAG,CAAC9W,MAAJ,GAAa,CAFb,IAGAqQ,MAAM,CAACyG,GAAP,CAAW5J,IAAX,CAAgB5I,EAAhB,CAAoBtE,CAAAA,MAApB,KAA+B,CAJjC,EAKE;YACA8W,GAAG,GAAGzG,MAAM,CAACyG,GAAP,CAAW5J,IAAX,CAAgB5I,EAAhB,CAAN,CAAA;IACD,OAAA;IACF,KAAA;;IACD,IAAA,OAAOwS,GAAP,CAAA;IACD,GAAA;;IAED,EAAA,SAASumB,QAAT,CAAkBvmB,GAAlB,EAAuBwmB,QAAvB,EAAiC;IAC/B,IAAA,MAAM1sB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc0b,UAA7B,CAAA;;IACA,IAAA,IAAIxV,GAAG,IAAIA,GAAG,CAAC9W,MAAJ,GAAa,CAAxB,EAA2B;UACzB8W,GAAG,CAACwmB,QAAQ,GAAG,UAAH,GAAgB,aAAzB,CAAH,CAA2C1sB,MAAM,CAACksB,aAAlD,CAAA,CAAA;UACA,IAAIhmB,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAG,CAAC,CAAD,CAAH,CAAOymB,OAAP,KAAmB,QAAjC,EAA2CzmB,GAAG,CAAC,CAAD,CAAH,CAAOwmB,QAAP,GAAkBA,QAAlB,CAAA;;UAC3C,IAAIjtB,MAAM,CAACO,MAAP,CAAcwM,aAAd,IAA+B/M,MAAM,CAAC+I,OAA1C,EAAmD;IACjDtC,QAAAA,GAAG,CAACzG,MAAM,CAACoW,QAAP,GAAkB,UAAlB,GAA+B,aAAhC,CAAH,CAAkD7V,MAAM,CAACosB,SAAzD,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;IACD,EAAA,SAASzL,MAAT,GAAkB;IAChB;IACA,IAAA,IAAIlhB,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB,OAAA;QACxB,MAAM;UAAE8c,OAAF;IAAWC,MAAAA,OAAAA;SAAY9sB,GAAAA,MAAM,CAACic,UAApC,CAAA;IAEA+Q,IAAAA,QAAQ,CAACF,OAAD,EAAU9sB,MAAM,CAACiP,WAAP,IAAsB,CAACjP,MAAM,CAACO,MAAP,CAAc6T,MAA/C,CAAR,CAAA;IACA4Y,IAAAA,QAAQ,CAACH,OAAD,EAAU7sB,MAAM,CAACkP,KAAP,IAAgB,CAAClP,MAAM,CAACO,MAAP,CAAc6T,MAAzC,CAAR,CAAA;IACD,GAAA;;MACD,SAAS+Y,WAAT,CAAqBz1B,CAArB,EAAwB;IACtBA,IAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACA,IAAA,IAAI7Y,MAAM,CAACiP,WAAP,IAAsB,CAACjP,MAAM,CAACO,MAAP,CAAcwP,IAArC,IAA6C,CAAC/P,MAAM,CAACO,MAAP,CAAc6T,MAAhE,EAAwE,OAAA;IACxEpU,IAAAA,MAAM,CAACqU,SAAP,EAAA,CAAA;QACAhQ,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACD,GAAA;;MACD,SAAS+oB,WAAT,CAAqB11B,CAArB,EAAwB;IACtBA,IAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACA,IAAA,IAAI7Y,MAAM,CAACkP,KAAP,IAAgB,CAAClP,MAAM,CAACO,MAAP,CAAcwP,IAA/B,IAAuC,CAAC/P,MAAM,CAACO,MAAP,CAAc6T,MAA1D,EAAkE,OAAA;IAClEpU,IAAAA,MAAM,CAAC4T,SAAP,EAAA,CAAA;QACAvP,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACD,GAAA;;IACD,EAAA,SAASiC,IAAT,GAAgB;IACd,IAAA,MAAM/F,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc0b,UAA7B,CAAA;QAEAjc,MAAM,CAACO,MAAP,CAAc0b,UAAd,GAA2BmQ,yBAAyB,CAClDpsB,MADkD,EAElDA,MAAM,CAACqe,cAAP,CAAsBpC,UAF4B,EAGlDjc,MAAM,CAACO,MAAP,CAAc0b,UAHoC,EAIlD;IACEC,MAAAA,MAAM,EAAE,oBADV;IAEEC,MAAAA,MAAM,EAAE,oBAAA;IAFV,KAJkD,CAApD,CAAA;QASA,IAAI,EAAE5b,MAAM,CAAC2b,MAAP,IAAiB3b,MAAM,CAAC4b,MAA1B,CAAJ,EAAuC,OAAA;IAEvC,IAAA,MAAM0Q,OAAO,GAAGE,KAAK,CAACxsB,MAAM,CAAC2b,MAAR,CAArB,CAAA;IACA,IAAA,MAAM4Q,OAAO,GAAGC,KAAK,CAACxsB,MAAM,CAAC4b,MAAR,CAArB,CAAA;;IAEA,IAAA,IAAI0Q,OAAO,IAAIA,OAAO,CAACl9B,MAAR,GAAiB,CAAhC,EAAmC;IACjCk9B,MAAAA,OAAO,CAAC11B,EAAR,CAAW,OAAX,EAAoBi2B,WAApB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIN,OAAO,IAAIA,OAAO,CAACn9B,MAAR,GAAiB,CAAhC,EAAmC;IACjCm9B,MAAAA,OAAO,CAAC31B,EAAR,CAAW,OAAX,EAAoBg2B,WAApB,CAAA,CAAA;IACD,KAAA;;IAED/9B,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACic,UAArB,EAAiC;UAC/B4Q,OAD+B;IAE/B3Q,MAAAA,MAAM,EAAE2Q,OAAO,IAAIA,OAAO,CAAC,CAAD,CAFK;UAG/BC,OAH+B;IAI/B3Q,MAAAA,MAAM,EAAE2Q,OAAO,IAAIA,OAAO,CAAC,CAAD,CAAA;SAJ5B,CAAA,CAAA;;IAOA,IAAA,IAAI,CAAC9sB,MAAM,CAAC+I,OAAZ,EAAqB;UACnB,IAAI8jB,OAAJ,EAAaA,OAAO,CAACr3B,QAAR,CAAiB+K,MAAM,CAACosB,SAAxB,CAAA,CAAA;UACb,IAAIG,OAAJ,EAAaA,OAAO,CAACt3B,QAAR,CAAiB+K,MAAM,CAACosB,SAAxB,CAAA,CAAA;IACd,KAAA;IACF,GAAA;;IACD,EAAA,SAAS/lB,OAAT,GAAmB;QACjB,MAAM;UAAEimB,OAAF;IAAWC,MAAAA,OAAAA;SAAY9sB,GAAAA,MAAM,CAACic,UAApC,CAAA;;IACA,IAAA,IAAI4Q,OAAO,IAAIA,OAAO,CAACl9B,MAAvB,EAA+B;IAC7Bk9B,MAAAA,OAAO,CAACp0B,GAAR,CAAY,OAAZ,EAAqB20B,WAArB,CAAA,CAAA;UACAP,OAAO,CAAC72B,WAAR,CAAoBgK,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyBwQ,aAA7C,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIK,OAAO,IAAIA,OAAO,CAACn9B,MAAvB,EAA+B;IAC7Bm9B,MAAAA,OAAO,CAACr0B,GAAR,CAAY,OAAZ,EAAqB00B,WAArB,CAAA,CAAA;UACAL,OAAO,CAAC92B,WAAR,CAAoBgK,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyBwQ,aAA7C,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MAEDt1B,EAAE,CAAC,MAAD,EAAS,MAAM;QACf,IAAI6I,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyBlT,OAAzB,KAAqC,KAAzC,EAAgD;IAC9C;UACA8V,OAAO,EAAA,CAAA;IACR,KAHD,MAGO;UACLvY,IAAI,EAAA,CAAA;UACJ4a,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GARC,CAAF,CAAA;MASA/pB,EAAE,CAAC,6BAAD,EAAgC,MAAM;QACtC+pB,MAAM,EAAA,CAAA;IACP,GAFC,CAAF,CAAA;MAGA/pB,EAAE,CAAC,SAAD,EAAY,MAAM;QAClByP,OAAO,EAAA,CAAA;IACR,GAFC,CAAF,CAAA;MAGAzP,EAAE,CAAC,gBAAD,EAAmB,MAAM;QACzB,MAAM;UAAE01B,OAAF;IAAWC,MAAAA,OAAAA;SAAY9sB,GAAAA,MAAM,CAACic,UAApC,CAAA;;IACA,IAAA,IAAI4Q,OAAJ,EAAa;IACXA,MAAAA,OAAO,CAAC7sB,MAAM,CAAC+I,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAP,CAAqD/I,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyB0Q,SAA9E,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIG,OAAJ,EAAa;IACXA,MAAAA,OAAO,CAAC9sB,MAAM,CAAC+I,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAP,CAAqD/I,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyB0Q,SAA9E,CAAA,CAAA;IACD,KAAA;IACF,GARC,CAAF,CAAA;IASAx1B,EAAAA,EAAE,CAAC,OAAD,EAAU,CAACk2B,EAAD,EAAK31B,CAAL,KAAW;QACrB,MAAM;UAAEm1B,OAAF;IAAWC,MAAAA,OAAAA;SAAY9sB,GAAAA,MAAM,CAACic,UAApC,CAAA;IACA,IAAA,MAAMqR,QAAQ,GAAG51B,CAAC,CAACpI,MAAnB,CAAA;;IACA,IAAA,IACE0Q,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyBuQ,WAAzB,IACA,CAACx3B,CAAC,CAACs4B,QAAD,CAAD,CAAYx1B,EAAZ,CAAeg1B,OAAf,CADD,IAEA,CAAC93B,CAAC,CAACs4B,QAAD,CAAD,CAAYx1B,EAAZ,CAAe+0B,OAAf,CAHH,EAIE;IACA,MAAA,IACE7sB,MAAM,CAACutB,UAAP,IACAvtB,MAAM,CAACO,MAAP,CAAcgtB,UADd,IAEAvtB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBC,SAFzB,KAGCxtB,MAAM,CAACutB,UAAP,CAAkBt5B,EAAlB,KAAyBq5B,QAAzB,IAAqCttB,MAAM,CAACutB,UAAP,CAAkBt5B,EAAlB,CAAqBqC,QAArB,CAA8Bg3B,QAA9B,CAHtC,CADF,EAME,OAAA;IACF,MAAA,IAAIG,QAAJ,CAAA;;IACA,MAAA,IAAIZ,OAAJ,EAAa;IACXY,QAAAA,QAAQ,GAAGZ,OAAO,CAACx2B,QAAR,CAAiB2J,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyByQ,WAA1C,CAAX,CAAA;WADF,MAEO,IAAII,OAAJ,EAAa;IAClBW,QAAAA,QAAQ,GAAGX,OAAO,CAACz2B,QAAR,CAAiB2J,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyByQ,WAA1C,CAAX,CAAA;IACD,OAAA;;UACD,IAAIe,QAAQ,KAAK,IAAjB,EAAuB;YACrBppB,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACD,OAFD,MAEO;YACLA,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACD,OAAA;;IACD,MAAA,IAAIwoB,OAAJ,EAAa;YACXA,OAAO,CAAC32B,WAAR,CAAoB8J,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyByQ,WAA7C,CAAA,CAAA;IACD,OAAA;;IACD,MAAA,IAAII,OAAJ,EAAa;YACXA,OAAO,CAAC52B,WAAR,CAAoB8J,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyByQ,WAA7C,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAjCC,CAAF,CAAA;;MAmCA,MAAM5N,MAAM,GAAG,MAAM;QACnB9e,MAAM,CAACyG,GAAP,CAAWzQ,WAAX,CAAuBgK,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyB2Q,uBAAhD,CAAA,CAAA;QACAtmB,IAAI,EAAA,CAAA;QACJ4a,MAAM,EAAA,CAAA;OAHR,CAAA;;MAMA,MAAMrC,OAAO,GAAG,MAAM;QACpB7e,MAAM,CAACyG,GAAP,CAAWjR,QAAX,CAAoBwK,MAAM,CAACO,MAAP,CAAc0b,UAAd,CAAyB2Q,uBAA7C,CAAA,CAAA;QACAhmB,OAAO,EAAA,CAAA;OAFT,CAAA;;IAKAxX,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACic,UAArB,EAAiC;QAC/B6C,MAD+B;QAE/BD,OAF+B;QAG/BqC,MAH+B;QAI/B5a,IAJ+B;IAK/BM,IAAAA,OAAAA;OALF,CAAA,CAAA;IAOD;;ICnMc,SAAS8mB,iBAAT,CAA2Bj4B,OAA3B,EAAyC;IAAA,EAAA,IAAdA,OAAc,KAAA,KAAA,CAAA,EAAA;IAAdA,IAAAA,OAAc,GAAJ,EAAI,CAAA;IAAA,GAAA;;MACtD,OAAQ,CAAA,CAAA,EAAGA,OAAO,CACfP,IADQ,EAAA,CAERgJ,OAFQ,CAEA,aAFA,EAEe,MAFf,CAEuB;AAFvB,GAGRA,OAHQ,CAGA,IAHA,EAGM,GAHN,CAGW,CAHtB,CAAA,CAAA;IAID;;ICDc,SAASyvB,UAAT,CAAwD,IAAA,EAAA;MAAA,IAApC;QAAE3tB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MACrE,MAAMupB,GAAG,GAAG,mBAAZ,CAAA;IACAloB,EAAAA,YAAY,CAAC;IACX6nB,IAAAA,UAAU,EAAE;IACVt5B,MAAAA,EAAE,EAAE,IADM;IAEV45B,MAAAA,aAAa,EAAE,MAFL;IAGVL,MAAAA,SAAS,EAAE,KAHD;IAIVhB,MAAAA,WAAW,EAAE,KAJH;IAKVsB,MAAAA,YAAY,EAAE,IALJ;IAMVC,MAAAA,iBAAiB,EAAE,IANT;IAOVC,MAAAA,cAAc,EAAE,IAPN;IAQVC,MAAAA,YAAY,EAAE,IARJ;IASVC,MAAAA,mBAAmB,EAAE,KATX;IAUV/W,MAAAA,IAAI,EAAE,SAVI;IAUO;IACjBgX,MAAAA,cAAc,EAAE,KAXN;IAYVC,MAAAA,kBAAkB,EAAE,CAZV;UAaVC,qBAAqB,EAAGC,MAAD,IAAYA,MAbzB;UAcVC,mBAAmB,EAAGD,MAAD,IAAYA,MAdvB;UAeVE,WAAW,EAAG,CAAEZ,EAAAA,GAAI,CAfV,OAAA,CAAA;UAgBVa,iBAAiB,EAAG,CAAEb,EAAAA,GAAI,CAhBhB,cAAA,CAAA;UAiBVc,aAAa,EAAG,CAAEd,EAAAA,GAAI,CAjBZ,CAAA,CAAA;UAkBVe,YAAY,EAAG,CAAEf,EAAAA,GAAI,CAlBX,QAAA,CAAA;UAmBVgB,UAAU,EAAG,CAAEhB,EAAAA,GAAI,CAnBT,MAAA,CAAA;UAoBVlB,WAAW,EAAG,CAAEkB,EAAAA,GAAI,CApBV,OAAA,CAAA;UAqBViB,oBAAoB,EAAG,CAAEjB,EAAAA,GAAI,CArBnB,iBAAA,CAAA;UAsBVkB,wBAAwB,EAAG,CAAElB,EAAAA,GAAI,CAtBvB,qBAAA,CAAA;UAuBVmB,cAAc,EAAG,CAAEnB,EAAAA,GAAI,CAvBb,UAAA,CAAA;UAwBVjB,SAAS,EAAG,CAAEiB,EAAAA,GAAI,CAxBR,KAAA,CAAA;UAyBVoB,eAAe,EAAG,CAAEpB,EAAAA,GAAI,CAzBd,WAAA,CAAA;UA0BVqB,aAAa,EAAG,CAAErB,EAAAA,GAAI,CA1BZ,SAAA,CAAA;UA2BVsB,uBAAuB,EAAG,GAAEtB,GAAI,CAAA,SAAA,CAAA;IA3BtB,KAAA;IADD,GAAD,CAAZ,CAAA;MAgCA5tB,MAAM,CAACutB,UAAP,GAAoB;IAClBt5B,IAAAA,EAAE,EAAE,IADc;IAElBwS,IAAAA,GAAG,EAAE,IAFa;IAGlB0oB,IAAAA,OAAO,EAAE,EAAA;OAHX,CAAA;IAMA,EAAA,IAAIC,UAAJ,CAAA;MACA,IAAIC,kBAAkB,GAAG,CAAzB,CAAA;;IAEA,EAAA,SAASC,oBAAT,GAAgC;IAC9B,IAAA,OACE,CAACtvB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBt5B,EAA1B,IACA,CAAC+L,MAAM,CAACutB,UAAP,CAAkBt5B,EADnB,IAEA,CAAC+L,MAAM,CAACutB,UAAP,CAAkB9mB,GAFnB,IAGAzG,MAAM,CAACutB,UAAP,CAAkB9mB,GAAlB,CAAsB9W,MAAtB,KAAiC,CAJnC,CAAA;IAMD,GAAA;;IAED,EAAA,SAAS4/B,cAAT,CAAwBC,SAAxB,EAAmC1D,QAAnC,EAA6C;QAC3C,MAAM;IAAE2C,MAAAA,iBAAAA;IAAF,KAAA,GAAwBzuB,MAAM,CAACO,MAAP,CAAcgtB,UAA5C,CAAA;QACAiC,SAAS,CAAC1D,QAAD,CAAT,EAAA,CACGt2B,QADH,CACa,CAAA,EAAEi5B,iBAAkB,CAAA,CAAA,EAAG3C,QAAS,CAAA,CAD7C,EAEGA,QAFH,CAAA,EAAA,CAGGt2B,QAHH,CAGa,CAAA,EAAEi5B,iBAAkB,CAAG3C,CAAAA,EAAAA,QAAS,CAAGA,CAAAA,EAAAA,QAAS,CAHzD,CAAA,CAAA,CAAA;IAID,GAAA;;IAED,EAAA,SAAS5K,MAAT,GAAkB;IAChB;IACA,IAAA,MAAMvY,GAAG,GAAG3I,MAAM,CAAC2I,GAAnB,CAAA;IACA,IAAA,MAAMpI,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcgtB,UAA7B,CAAA;QACA,IAAI+B,oBAAoB,EAAxB,EAA4B,OAAA;QAC5B,MAAMnmB,YAAY,GAChBnJ,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAAxC,GACI/I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBtZ,MAD1B,GAEIqQ,MAAM,CAACiJ,MAAP,CAActZ,MAHpB,CAAA;QAIA,MAAM8W,GAAG,GAAGzG,MAAM,CAACutB,UAAP,CAAkB9mB,GAA9B,CATgB;;IAWhB,IAAA,IAAI3F,OAAJ,CAAA;IACA,IAAA,MAAM2uB,KAAK,GAAGzvB,MAAM,CAACO,MAAP,CAAcwP,IAAd,GACV7O,IAAI,CAAC0M,IAAL,CAAU,CAACzE,YAAY,GAAGnJ,MAAM,CAAC2T,YAAP,GAAsB,CAAtC,IAA2C3T,MAAM,CAACO,MAAP,CAAcoL,cAAnE,CADU,GAEV3L,MAAM,CAACoJ,QAAP,CAAgBzZ,MAFpB,CAAA;;IAGA,IAAA,IAAIqQ,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IACtBjP,MAAAA,OAAO,GAAGI,IAAI,CAAC0M,IAAL,CACR,CAAC5N,MAAM,CAAC6N,WAAP,GAAqB7N,MAAM,CAAC2T,YAA7B,IAA6C3T,MAAM,CAACO,MAAP,CAAcoL,cADnD,CAAV,CAAA;;UAGA,IAAI7K,OAAO,GAAGqI,YAAY,GAAG,CAAf,GAAmBnJ,MAAM,CAAC2T,YAAP,GAAsB,CAAvD,EAA0D;IACxD7S,QAAAA,OAAO,IAAIqI,YAAY,GAAGnJ,MAAM,CAAC2T,YAAP,GAAsB,CAAhD,CAAA;IACD,OAAA;;UACD,IAAI7S,OAAO,GAAG2uB,KAAK,GAAG,CAAtB,EAAyB3uB,OAAO,IAAI2uB,KAAX,CAAA;IACzB,MAAA,IAAI3uB,OAAO,GAAG,CAAV,IAAed,MAAM,CAACO,MAAP,CAAcmvB,cAAd,KAAiC,SAApD,EAA+D5uB,OAAO,GAAG2uB,KAAK,GAAG3uB,OAAlB,CAAA;SARjE,MASO,IAAI,OAAOd,MAAM,CAAC2M,SAAd,KAA4B,WAAhC,EAA6C;UAClD7L,OAAO,GAAGd,MAAM,CAAC2M,SAAjB,CAAA;IACD,KAFM,MAEA;IACL7L,MAAAA,OAAO,GAAGd,MAAM,CAAC6N,WAAP,IAAsB,CAAhC,CAAA;IACD,KA5Be;;;QA8BhB,IACEtN,MAAM,CAAC4W,IAAP,KAAgB,SAAhB,IACAnX,MAAM,CAACutB,UAAP,CAAkB4B,OADlB,IAEAnvB,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,CAA0Bx/B,MAA1B,GAAmC,CAHrC,EAIE;IACA,MAAA,MAAMw/B,OAAO,GAAGnvB,MAAM,CAACutB,UAAP,CAAkB4B,OAAlC,CAAA;IACA,MAAA,IAAIQ,UAAJ,CAAA;IACA,MAAA,IAAI/a,SAAJ,CAAA;IACA,MAAA,IAAIgb,QAAJ,CAAA;;UACA,IAAIrvB,MAAM,CAAC4tB,cAAX,EAA2B;IACzBiB,QAAAA,UAAU,GAAGD,OAAO,CAAC1zB,EAAR,CAAW,CAAX,CAAcuE,CAAAA,MAAM,CAAC6H,YAAP,KAAwB,YAAxB,GAAuC,aAArD,CAAA,CAAoE,IAApE,CAAb,CAAA;YACApB,GAAG,CAAC9L,GAAJ,CACEqF,MAAM,CAAC6H,YAAP,EAAA,GAAwB,OAAxB,GAAkC,QADpC,EAEG,CAAEunB,EAAAA,UAAU,IAAI7uB,MAAM,CAAC6tB,kBAAP,GAA4B,CAAhC,CAAmC,CAFlD,EAAA,CAAA,CAAA,CAAA;;YAIA,IAAI7tB,MAAM,CAAC6tB,kBAAP,GAA4B,CAA5B,IAAiCpuB,MAAM,CAACsQ,aAAP,KAAyB3Z,SAA9D,EAAyE;IACvE04B,UAAAA,kBAAkB,IAAIvuB,OAAO,IAAId,MAAM,CAACsQ,aAAP,GAAuBtQ,MAAM,CAAC2T,YAA9B,IAA8C,CAAlD,CAA7B,CAAA;;IACA,UAAA,IAAI0b,kBAAkB,GAAG9uB,MAAM,CAAC6tB,kBAAP,GAA4B,CAArD,EAAwD;IACtDiB,YAAAA,kBAAkB,GAAG9uB,MAAM,CAAC6tB,kBAAP,GAA4B,CAAjD,CAAA;IACD,WAFD,MAEO,IAAIiB,kBAAkB,GAAG,CAAzB,EAA4B;IACjCA,YAAAA,kBAAkB,GAAG,CAArB,CAAA;IACD,WAAA;IACF,SAAA;;YACDM,UAAU,GAAGzuB,IAAI,CAACC,GAAL,CAASL,OAAO,GAAGuuB,kBAAnB,EAAuC,CAAvC,CAAb,CAAA;IACAza,QAAAA,SAAS,GAAG+a,UAAU,IAAIzuB,IAAI,CAACE,GAAL,CAAS+tB,OAAO,CAACx/B,MAAjB,EAAyB4Q,MAAM,CAAC6tB,kBAAhC,CAAA,GAAsD,CAA1D,CAAtB,CAAA;IACAwB,QAAAA,QAAQ,GAAG,CAAChb,SAAS,GAAG+a,UAAb,IAA2B,CAAtC,CAAA;IACD,OAAA;;IACDR,MAAAA,OAAO,CAACn5B,WAAR,CACE,CAAC,EAAD,EAAK,OAAL,EAAc,YAAd,EAA4B,OAA5B,EAAqC,YAArC,EAAmD,OAAnD,CACGL,CAAAA,GADH,CACQk6B,MAAD,IAAa,CAAA,EAAEtvB,MAAM,CAACkuB,iBAAkB,CAAEoB,EAAAA,MAAO,CADxD,CAAA,CAAA,CAEG1xB,IAFH,CAEQ,GAFR,CADF,CAAA,CAAA;;IAKA,MAAA,IAAIsI,GAAG,CAAC9W,MAAJ,GAAa,CAAjB,EAAoB;IAClBw/B,QAAAA,OAAO,CAACr0B,IAAR,CAAcg1B,MAAD,IAAY;IACvB,UAAA,MAAMC,OAAO,GAAG/6B,CAAC,CAAC86B,MAAD,CAAjB,CAAA;IACA,UAAA,MAAME,WAAW,GAAGD,OAAO,CAACh1B,KAAR,EAApB,CAAA;;cACA,IAAIi1B,WAAW,KAAKlvB,OAApB,EAA6B;IAC3BivB,YAAAA,OAAO,CAACv6B,QAAR,CAAiB+K,MAAM,CAACkuB,iBAAxB,CAAA,CAAA;IACD,WAAA;;cACD,IAAIluB,MAAM,CAAC4tB,cAAX,EAA2B;IACzB,YAAA,IAAI6B,WAAW,IAAIL,UAAf,IAA6BK,WAAW,IAAIpb,SAAhD,EAA2D;IACzDmb,cAAAA,OAAO,CAACv6B,QAAR,CAAkB,GAAE+K,MAAM,CAACkuB,iBAAkB,CAA7C,KAAA,CAAA,CAAA,CAAA;IACD,aAAA;;gBACD,IAAIuB,WAAW,KAAKL,UAApB,EAAgC;IAC9BJ,cAAAA,cAAc,CAACQ,OAAD,EAAU,MAAV,CAAd,CAAA;IACD,aAAA;;gBACD,IAAIC,WAAW,KAAKpb,SAApB,EAA+B;IAC7B2a,cAAAA,cAAc,CAACQ,OAAD,EAAU,MAAV,CAAd,CAAA;IACD,aAAA;IACF,WAAA;aAhBH,CAAA,CAAA;IAkBD,OAnBD,MAmBO;IACL,QAAA,MAAMA,OAAO,GAAGZ,OAAO,CAAC1zB,EAAR,CAAWqF,OAAX,CAAhB,CAAA;IACA,QAAA,MAAMkvB,WAAW,GAAGD,OAAO,CAACh1B,KAAR,EAApB,CAAA;IACAg1B,QAAAA,OAAO,CAACv6B,QAAR,CAAiB+K,MAAM,CAACkuB,iBAAxB,CAAA,CAAA;;YACA,IAAIluB,MAAM,CAAC4tB,cAAX,EAA2B;IACzB,UAAA,MAAM8B,qBAAqB,GAAGd,OAAO,CAAC1zB,EAAR,CAAWk0B,UAAX,CAA9B,CAAA;IACA,UAAA,MAAMO,oBAAoB,GAAGf,OAAO,CAAC1zB,EAAR,CAAWmZ,SAAX,CAA7B,CAAA;;IACA,UAAA,KAAK,IAAIlgB,CAAC,GAAGi7B,UAAb,EAAyBj7B,CAAC,IAAIkgB,SAA9B,EAAyClgB,CAAC,IAAI,CAA9C,EAAiD;gBAC/Cy6B,OAAO,CAAC1zB,EAAR,CAAW/G,CAAX,CAAA,CAAcc,QAAd,CAAwB,CAAE+K,EAAAA,MAAM,CAACkuB,iBAAkB,CAAnD,KAAA,CAAA,CAAA,CAAA;IACD,WAAA;;IACD,UAAA,IAAIzuB,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IACtB,YAAA,IAAIigB,WAAW,IAAIb,OAAO,CAACx/B,MAA3B,EAAmC;IACjC,cAAA,KAAK,IAAI+E,CAAC,GAAG6L,MAAM,CAAC6tB,kBAApB,EAAwC15B,CAAC,IAAI,CAA7C,EAAgDA,CAAC,IAAI,CAArD,EAAwD;IACtDy6B,gBAAAA,OAAO,CAAC1zB,EAAR,CAAW0zB,OAAO,CAACx/B,MAAR,GAAiB+E,CAA5B,CAAA,CAA+Bc,QAA/B,CAAyC,CAAA,EAAE+K,MAAM,CAACkuB,iBAAkB,CAApE,KAAA,CAAA,CAAA,CAAA;IACD,eAAA;;IACDU,cAAAA,OAAO,CACJ1zB,EADH,CACM0zB,OAAO,CAACx/B,MAAR,GAAiB4Q,MAAM,CAAC6tB,kBAAxB,GAA6C,CADnD,EAEG54B,QAFH,CAEa,GAAE+K,MAAM,CAACkuB,iBAAkB,CAFxC,KAAA,CAAA,CAAA,CAAA;IAGD,aAPD,MAOO;IACLc,cAAAA,cAAc,CAACU,qBAAD,EAAwB,MAAxB,CAAd,CAAA;IACAV,cAAAA,cAAc,CAACW,oBAAD,EAAuB,MAAvB,CAAd,CAAA;IACD,aAAA;IACF,WAZD,MAYO;IACLX,YAAAA,cAAc,CAACU,qBAAD,EAAwB,MAAxB,CAAd,CAAA;IACAV,YAAAA,cAAc,CAACW,oBAAD,EAAuB,MAAvB,CAAd,CAAA;IACD,WAAA;IACF,SAAA;IACF,OAAA;;UACD,IAAI3vB,MAAM,CAAC4tB,cAAX,EAA2B;IACzB,QAAA,MAAMgC,oBAAoB,GAAGjvB,IAAI,CAACE,GAAL,CAAS+tB,OAAO,CAACx/B,MAAjB,EAAyB4Q,MAAM,CAAC6tB,kBAAP,GAA4B,CAArD,CAA7B,CAAA;IACA,QAAA,MAAMgC,aAAa,GACjB,CAAChB,UAAU,GAAGe,oBAAb,GAAoCf,UAArC,IAAmD,CAAnD,GAAuDQ,QAAQ,GAAGR,UADpE,CAAA;IAEA,QAAA,MAAMjJ,UAAU,GAAGxd,GAAG,GAAG,OAAH,GAAa,MAAnC,CAAA;IACAwmB,QAAAA,OAAO,CAACx0B,GAAR,CAAYqF,MAAM,CAAC6H,YAAP,EAAwBse,GAAAA,UAAxB,GAAqC,KAAjD,EAAyD,CAAA,EAAEiK,aAAc,CAAzE,EAAA,CAAA,CAAA,CAAA;IACD,OAAA;IACF,KAAA;;IACD,IAAA,IAAI7vB,MAAM,CAAC4W,IAAP,KAAgB,UAApB,EAAgC;IAC9B1Q,MAAAA,GAAG,CACA5J,IADH,CACQ6wB,iBAAiB,CAACntB,MAAM,CAACouB,YAAR,CADzB,EAEG1zB,IAFH,CAEQsF,MAAM,CAAC8tB,qBAAP,CAA6BvtB,OAAO,GAAG,CAAvC,CAFR,CAAA,CAAA;IAGA2F,MAAAA,GAAG,CAAC5J,IAAJ,CAAS6wB,iBAAiB,CAACntB,MAAM,CAACquB,UAAR,CAA1B,CAAA,CAA+C3zB,IAA/C,CAAoDsF,MAAM,CAACguB,mBAAP,CAA2BkB,KAA3B,CAApD,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIlvB,MAAM,CAAC4W,IAAP,KAAgB,aAApB,EAAmC;IACjC,MAAA,IAAIkZ,oBAAJ,CAAA;;UACA,IAAI9vB,MAAM,CAAC2tB,mBAAX,EAAgC;IAC9BmC,QAAAA,oBAAoB,GAAGrwB,MAAM,CAAC6H,YAAP,EAAwB,GAAA,UAAxB,GAAqC,YAA5D,CAAA;IACD,OAFD,MAEO;IACLwoB,QAAAA,oBAAoB,GAAGrwB,MAAM,CAAC6H,YAAP,EAAwB,GAAA,YAAxB,GAAuC,UAA9D,CAAA;IACD,OAAA;;IACD,MAAA,MAAMyoB,KAAK,GAAG,CAACxvB,OAAO,GAAG,CAAX,IAAgB2uB,KAA9B,CAAA;UACA,IAAIc,MAAM,GAAG,CAAb,CAAA;UACA,IAAIC,MAAM,GAAG,CAAb,CAAA;;UACA,IAAIH,oBAAoB,KAAK,YAA7B,EAA2C;IACzCE,QAAAA,MAAM,GAAGD,KAAT,CAAA;IACD,OAFD,MAEO;IACLE,QAAAA,MAAM,GAAGF,KAAT,CAAA;IACD,OAAA;;UACD7pB,GAAG,CACA5J,IADH,CACQ6wB,iBAAiB,CAACntB,MAAM,CAACsuB,oBAAR,CADzB,CAAA,CAEG93B,SAFH,CAEc,6BAA4Bw5B,MAAO,CAAA,SAAA,EAAWC,MAAO,CAAA,CAAA,CAFnE,CAGGx5B,CAAAA,UAHH,CAGcgJ,MAAM,CAACO,MAAP,CAAcC,KAH5B,CAAA,CAAA;IAID,KAAA;;QACD,IAAID,MAAM,CAAC4W,IAAP,KAAgB,QAAhB,IAA4B5W,MAAM,CAAC0tB,YAAvC,EAAqD;IACnDxnB,MAAAA,GAAG,CAACxR,IAAJ,CAASsL,MAAM,CAAC0tB,YAAP,CAAoBjuB,MAApB,EAA4Bc,OAAO,GAAG,CAAtC,EAAyC2uB,KAAzC,CAAT,CAAA,CAAA;IACAprB,MAAAA,IAAI,CAAC,kBAAD,EAAqBoC,GAAG,CAAC,CAAD,CAAxB,CAAJ,CAAA;IACD,KAHD,MAGO;IACLpC,MAAAA,IAAI,CAAC,kBAAD,EAAqBoC,GAAG,CAAC,CAAD,CAAxB,CAAJ,CAAA;IACD,KAAA;;QACD,IAAIzG,MAAM,CAACO,MAAP,CAAcwM,aAAd,IAA+B/M,MAAM,CAAC+I,OAA1C,EAAmD;IACjDtC,MAAAA,GAAG,CAACzG,MAAM,CAACoW,QAAP,GAAkB,UAAlB,GAA+B,aAAhC,CAAH,CAAkD7V,MAAM,CAACosB,SAAzD,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,SAAS8D,MAAT,GAAkB;IAChB;IACA,IAAA,MAAMlwB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcgtB,UAA7B,CAAA;QACA,IAAI+B,oBAAoB,EAAxB,EAA4B,OAAA;QAC5B,MAAMnmB,YAAY,GAChBnJ,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAAxC,GACI/I,MAAM,CAAC8I,OAAP,CAAeG,MAAf,CAAsBtZ,MAD1B,GAEIqQ,MAAM,CAACiJ,MAAP,CAActZ,MAHpB,CAAA;IAKA,IAAA,MAAM8W,GAAG,GAAGzG,MAAM,CAACutB,UAAP,CAAkB9mB,GAA9B,CAAA;QACA,IAAIiqB,cAAc,GAAG,EAArB,CAAA;;IACA,IAAA,IAAInwB,MAAM,CAAC4W,IAAP,KAAgB,SAApB,EAA+B;IAC7B,MAAA,IAAIwZ,eAAe,GAAG3wB,MAAM,CAACO,MAAP,CAAcwP,IAAd,GAClB7O,IAAI,CAAC0M,IAAL,CAAU,CAACzE,YAAY,GAAGnJ,MAAM,CAAC2T,YAAP,GAAsB,CAAtC,IAA2C3T,MAAM,CAACO,MAAP,CAAcoL,cAAnE,CADkB,GAElB3L,MAAM,CAACoJ,QAAP,CAAgBzZ,MAFpB,CAAA;;UAGA,IACEqQ,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IACA1Z,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuB3Q,OADvB,IAEA,CAAC/I,MAAM,CAACO,MAAP,CAAcwP,IAFf,IAGA4gB,eAAe,GAAGxnB,YAJpB,EAKE;IACAwnB,QAAAA,eAAe,GAAGxnB,YAAlB,CAAA;IACD,OAAA;;IACD,MAAA,KAAK,IAAIzU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGi8B,eAApB,EAAqCj8B,CAAC,IAAI,CAA1C,EAA6C;YAC3C,IAAI6L,MAAM,CAACutB,YAAX,EAAyB;IACvB4C,UAAAA,cAAc,IAAInwB,MAAM,CAACutB,YAAP,CAAoBv5B,IAApB,CAAyByL,MAAzB,EAAiCtL,CAAjC,EAAoC6L,MAAM,CAACiuB,WAA3C,CAAlB,CAAA;IACD,SAFD,MAEO;IACLkC,UAAAA,cAAc,IAAK,CAAA,CAAA,EAAGnwB,MAAM,CAACstB,aAAc,CAAA,QAAA,EAAUttB,MAAM,CAACiuB,WAAY,CAAA,IAAA,EAAMjuB,MAAM,CAACstB,aAAc,CAAnG,CAAA,CAAA,CAAA;IACD,SAAA;IACF,OAAA;;UACDpnB,GAAG,CAACxR,IAAJ,CAASy7B,cAAT,CAAA,CAAA;IAEA1wB,MAAAA,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,GAA4B1oB,GAAG,CAAC5J,IAAJ,CAAS6wB,iBAAiB,CAACntB,MAAM,CAACiuB,WAAR,CAA1B,CAA5B,CAAA;IACD,KAAA;;IACD,IAAA,IAAIjuB,MAAM,CAAC4W,IAAP,KAAgB,UAApB,EAAgC;UAC9B,IAAI5W,MAAM,CAACytB,cAAX,EAA2B;IACzB0C,QAAAA,cAAc,GAAGnwB,MAAM,CAACytB,cAAP,CAAsBz5B,IAAtB,CAA2ByL,MAA3B,EAAmCO,MAAM,CAACouB,YAA1C,EAAwDpuB,MAAM,CAACquB,UAA/D,CAAjB,CAAA;IACD,OAFD,MAEO;IACL8B,QAAAA,cAAc,GACX,CAAA,aAAA,EAAenwB,MAAM,CAACouB,YAAa,CAAA,SAAA,CAApC,GACA,KADA,GAEC,CAAA,aAAA,EAAepuB,MAAM,CAACquB,UAAW,CAHpC,SAAA,CAAA,CAAA;IAID,OAAA;;UACDnoB,GAAG,CAACxR,IAAJ,CAASy7B,cAAT,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAInwB,MAAM,CAAC4W,IAAP,KAAgB,aAApB,EAAmC;UACjC,IAAI5W,MAAM,CAACwtB,iBAAX,EAA8B;IAC5B2C,QAAAA,cAAc,GAAGnwB,MAAM,CAACwtB,iBAAP,CAAyBx5B,IAAzB,CAA8ByL,MAA9B,EAAsCO,MAAM,CAACsuB,oBAA7C,CAAjB,CAAA;IACD,OAFD,MAEO;IACL6B,QAAAA,cAAc,GAAI,CAAA,aAAA,EAAenwB,MAAM,CAACsuB,oBAAqB,CAA7D,SAAA,CAAA,CAAA;IACD,OAAA;;UACDpoB,GAAG,CAACxR,IAAJ,CAASy7B,cAAT,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAInwB,MAAM,CAAC4W,IAAP,KAAgB,QAApB,EAA8B;UAC5B9S,IAAI,CAAC,kBAAD,EAAqBrE,MAAM,CAACutB,UAAP,CAAkB9mB,GAAlB,CAAsB,CAAtB,CAArB,CAAJ,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,SAASH,IAAT,GAAgB;QACdtG,MAAM,CAACO,MAAP,CAAcgtB,UAAd,GAA2BnB,yBAAyB,CAClDpsB,MADkD,EAElDA,MAAM,CAACqe,cAAP,CAAsBkP,UAF4B,EAGlDvtB,MAAM,CAACO,MAAP,CAAcgtB,UAHoC,EAIlD;IAAEt5B,MAAAA,EAAE,EAAE,mBAAA;IAAN,KAJkD,CAApD,CAAA;IAMA,IAAA,MAAMsM,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcgtB,UAA7B,CAAA;IACA,IAAA,IAAI,CAAChtB,MAAM,CAACtM,EAAZ,EAAgB,OAAA;IAEhB,IAAA,IAAIwS,GAAG,GAAGzR,CAAC,CAACuL,MAAM,CAACtM,EAAR,CAAX,CAAA;IACA,IAAA,IAAIwS,GAAG,CAAC9W,MAAJ,KAAe,CAAnB,EAAsB,OAAA;;IAEtB,IAAA,IAAIqQ,MAAM,CAACO,MAAP,CAAckhB,iBAAd,IAAmC,OAAOlhB,MAAM,CAACtM,EAAd,KAAqB,QAAxD,IAAoEwS,GAAG,CAAC9W,MAAJ,GAAa,CAArF,EAAwF;IACtF8W,MAAAA,GAAG,GAAGzG,MAAM,CAACyG,GAAP,CAAW5J,IAAX,CAAgB0D,MAAM,CAACtM,EAAvB,CAAN,CADsF;;IAGtF,MAAA,IAAIwS,GAAG,CAAC9W,MAAJ,GAAa,CAAjB,EAAoB;IAClB8W,QAAAA,GAAG,GAAGA,GAAG,CAACnS,MAAJ,CAAYL,EAAD,IAAQ;IACvB,UAAA,IAAIe,CAAC,CAACf,EAAD,CAAD,CAAM+D,OAAN,CAAc,SAAd,CAAyB,CAAA,CAAzB,MAAgCgI,MAAM,CAAC/L,EAA3C,EAA+C,OAAO,KAAP,CAAA;IAC/C,UAAA,OAAO,IAAP,CAAA;IACD,SAHK,CAAN,CAAA;IAID,OAAA;IACF,KAAA;;QAED,IAAIsM,MAAM,CAAC4W,IAAP,KAAgB,SAAhB,IAA6B5W,MAAM,CAACitB,SAAxC,EAAmD;IACjD/mB,MAAAA,GAAG,CAACjR,QAAJ,CAAa+K,MAAM,CAACwuB,cAApB,CAAA,CAAA;IACD,KAAA;;QAEDtoB,GAAG,CAACjR,QAAJ,CAAa+K,MAAM,CAACmuB,aAAP,GAAuBnuB,MAAM,CAAC4W,IAA3C,CAAA,CAAA;IACA1Q,IAAAA,GAAG,CAACjR,QAAJ,CAAawK,MAAM,CAAC6H,YAAP,EAAwBtH,GAAAA,MAAM,CAACyuB,eAA/B,GAAiDzuB,MAAM,CAAC0uB,aAArE,CAAA,CAAA;;QAEA,IAAI1uB,MAAM,CAAC4W,IAAP,KAAgB,SAAhB,IAA6B5W,MAAM,CAAC4tB,cAAxC,EAAwD;UACtD1nB,GAAG,CAACjR,QAAJ,CAAc,CAAE+K,EAAAA,MAAM,CAACmuB,aAAc,CAAEnuB,EAAAA,MAAM,CAAC4W,IAAK,CAAnD,QAAA,CAAA,CAAA,CAAA;IACAkY,MAAAA,kBAAkB,GAAG,CAArB,CAAA;;IACA,MAAA,IAAI9uB,MAAM,CAAC6tB,kBAAP,GAA4B,CAAhC,EAAmC;YACjC7tB,MAAM,CAAC6tB,kBAAP,GAA4B,CAA5B,CAAA;IACD,OAAA;IACF,KAAA;;QACD,IAAI7tB,MAAM,CAAC4W,IAAP,KAAgB,aAAhB,IAAiC5W,MAAM,CAAC2tB,mBAA5C,EAAiE;IAC/DznB,MAAAA,GAAG,CAACjR,QAAJ,CAAa+K,MAAM,CAACuuB,wBAApB,CAAA,CAAA;IACD,KAAA;;QAED,IAAIvuB,MAAM,CAACitB,SAAX,EAAsB;IACpB/mB,MAAAA,GAAG,CAACtP,EAAJ,CAAO,OAAP,EAAgBu2B,iBAAiB,CAACntB,MAAM,CAACiuB,WAAR,CAAjC,EAAuD,SAAS9R,OAAT,CAAiBhlB,CAAjB,EAAoB;IACzEA,QAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACA,QAAA,IAAI9d,KAAK,GAAG/F,CAAC,CAAC,IAAD,CAAD,CAAQ+F,KAAR,EAAkBiF,GAAAA,MAAM,CAACO,MAAP,CAAcoL,cAA5C,CAAA;YACA,IAAI3L,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwBhV,KAAK,IAAIiF,MAAM,CAAC2T,YAAhB,CAAA;YACxB3T,MAAM,CAACyS,OAAP,CAAe1X,KAAf,CAAA,CAAA;WAJF,CAAA,CAAA;IAMD,KAAA;;IAED3L,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACutB,UAArB,EAAiC;UAC/B9mB,GAD+B;UAE/BxS,EAAE,EAAEwS,GAAG,CAAC,CAAD,CAAA;SAFT,CAAA,CAAA;;IAKA,IAAA,IAAI,CAACzG,MAAM,CAAC+I,OAAZ,EAAqB;IACnBtC,MAAAA,GAAG,CAACjR,QAAJ,CAAa+K,MAAM,CAACosB,SAApB,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,SAAS/lB,OAAT,GAAmB;IACjB,IAAA,MAAMrG,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcgtB,UAA7B,CAAA;QACA,IAAI+B,oBAAoB,EAAxB,EAA4B,OAAA;IAC5B,IAAA,MAAM7oB,GAAG,GAAGzG,MAAM,CAACutB,UAAP,CAAkB9mB,GAA9B,CAAA;IAEAA,IAAAA,GAAG,CAACzQ,WAAJ,CAAgBuK,MAAM,CAACmsB,WAAvB,CAAA,CAAA;QACAjmB,GAAG,CAACzQ,WAAJ,CAAgBuK,MAAM,CAACmuB,aAAP,GAAuBnuB,MAAM,CAAC4W,IAA9C,CAAA,CAAA;IACA1Q,IAAAA,GAAG,CAACzQ,WAAJ,CAAgBgK,MAAM,CAAC6H,YAAP,EAAwBtH,GAAAA,MAAM,CAACyuB,eAA/B,GAAiDzuB,MAAM,CAAC0uB,aAAxE,CAAA,CAAA;QACA,IAAIjvB,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,IAA6BnvB,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,CAA0Bn5B,WAA3D,EACEgK,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,CAA0Bn5B,WAA1B,CAAsCuK,MAAM,CAACkuB,iBAA7C,CAAA,CAAA;;QACF,IAAIluB,MAAM,CAACitB,SAAX,EAAsB;UACpB/mB,GAAG,CAAChO,GAAJ,CAAQ,OAAR,EAAiBi1B,iBAAiB,CAACntB,MAAM,CAACiuB,WAAR,CAAlC,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MAEDr3B,EAAE,CAAC,MAAD,EAAS,MAAM;QACf,IAAI6I,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBxkB,OAAzB,KAAqC,KAAzC,EAAgD;IAC9C;UACA8V,OAAO,EAAA,CAAA;IACR,KAHD,MAGO;UACLvY,IAAI,EAAA,CAAA;UACJmqB,MAAM,EAAA,CAAA;UACNvP,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GATC,CAAF,CAAA;MAUA/pB,EAAE,CAAC,mBAAD,EAAsB,MAAM;IAC5B,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;UACtBmR,MAAM,EAAA,CAAA;SADR,MAEO,IAAI,OAAOlhB,MAAM,CAAC2M,SAAd,KAA4B,WAAhC,EAA6C;UAClDuU,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GANC,CAAF,CAAA;MAOA/pB,EAAE,CAAC,iBAAD,EAAoB,MAAM;IAC1B,IAAA,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcwP,IAAnB,EAAyB;UACvBmR,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GAJC,CAAF,CAAA;MAKA/pB,EAAE,CAAC,oBAAD,EAAuB,MAAM;IAC7B,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;UACtB0gB,MAAM,EAAA,CAAA;UACNvP,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GALC,CAAF,CAAA;MAMA/pB,EAAE,CAAC,sBAAD,EAAyB,MAAM;IAC/B,IAAA,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcwP,IAAnB,EAAyB;UACvB0gB,MAAM,EAAA,CAAA;UACNvP,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GALC,CAAF,CAAA;MAMA/pB,EAAE,CAAC,SAAD,EAAY,MAAM;QAClByP,OAAO,EAAA,CAAA;IACR,GAFC,CAAF,CAAA;MAGAzP,EAAE,CAAC,gBAAD,EAAmB,MAAM;QACzB,MAAM;IAAEsP,MAAAA,GAAAA;SAAQzG,GAAAA,MAAM,CAACutB,UAAvB,CAAA;;IACA,IAAA,IAAI9mB,GAAJ,EAAS;IACPA,MAAAA,GAAG,CAACzG,MAAM,CAAC+I,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAH,CAAiD/I,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBZ,SAA1E,CAAA,CAAA;IACD,KAAA;IACF,GALC,CAAF,CAAA;MAMAx1B,EAAE,CAAC,aAAD,EAAgB,MAAM;QACtB+pB,MAAM,EAAA,CAAA;IACP,GAFC,CAAF,CAAA;IAGA/pB,EAAAA,EAAE,CAAC,OAAD,EAAU,CAACk2B,EAAD,EAAK31B,CAAL,KAAW;IACrB,IAAA,MAAM41B,QAAQ,GAAG51B,CAAC,CAACpI,MAAnB,CAAA;QACA,MAAM;IAAEmX,MAAAA,GAAAA;SAAQzG,GAAAA,MAAM,CAACutB,UAAvB,CAAA;;IACA,IAAA,IACEvtB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBt5B,EAAzB,IACA+L,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBf,WADzB,IAEA/lB,GAFA,IAGAA,GAAG,CAAC9W,MAAJ,GAAa,CAHb,IAIA,CAACqF,CAAC,CAACs4B,QAAD,CAAD,CAAYj3B,QAAZ,CAAqB2J,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBiB,WAA9C,CALH,EAME;IACA,MAAA,IACExuB,MAAM,CAACic,UAAP,KACEjc,MAAM,CAACic,UAAP,CAAkBC,MAAlB,IAA4BoR,QAAQ,KAAKttB,MAAM,CAACic,UAAP,CAAkBC,MAA5D,IACElc,MAAM,CAACic,UAAP,CAAkBE,MAAlB,IAA4BmR,QAAQ,KAAKttB,MAAM,CAACic,UAAP,CAAkBE,MAF9D,CADF,EAKE,OAAA;IACF,MAAA,MAAMsR,QAAQ,GAAGhnB,GAAG,CAACpQ,QAAJ,CAAa2J,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBb,WAAtC,CAAjB,CAAA;;UACA,IAAIe,QAAQ,KAAK,IAAjB,EAAuB;YACrBppB,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACD,OAFD,MAEO;YACLA,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACD,OAAA;;UACDoC,GAAG,CAACvQ,WAAJ,CAAgB8J,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBb,WAAzC,CAAA,CAAA;IACD,KAAA;IACF,GAxBC,CAAF,CAAA;;MA0BA,MAAM5N,MAAM,GAAG,MAAM;QACnB9e,MAAM,CAACyG,GAAP,CAAWzQ,WAAX,CAAuBgK,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyB2B,uBAAhD,CAAA,CAAA;;IACA,IAAA,IAAIlvB,MAAM,CAACutB,UAAP,CAAkB9mB,GAAtB,EAA2B;IACzBzG,MAAAA,MAAM,CAACutB,UAAP,CAAkB9mB,GAAlB,CAAsBzQ,WAAtB,CAAkCgK,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyB2B,uBAA3D,CAAA,CAAA;IACD,KAAA;;QACD5oB,IAAI,EAAA,CAAA;QACJmqB,MAAM,EAAA,CAAA;QACNvP,MAAM,EAAA,CAAA;OAPR,CAAA;;MAUA,MAAMrC,OAAO,GAAG,MAAM;QACpB7e,MAAM,CAACyG,GAAP,CAAWjR,QAAX,CAAoBwK,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyB2B,uBAA7C,CAAA,CAAA;;IACA,IAAA,IAAIlvB,MAAM,CAACutB,UAAP,CAAkB9mB,GAAtB,EAA2B;IACzBzG,MAAAA,MAAM,CAACutB,UAAP,CAAkB9mB,GAAlB,CAAsBjR,QAAtB,CAA+BwK,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyB2B,uBAAxD,CAAA,CAAA;IACD,KAAA;;QACDtoB,OAAO,EAAA,CAAA;OALT,CAAA;;IAQAxX,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACutB,UAArB,EAAiC;QAC/BzO,MAD+B;QAE/BD,OAF+B;QAG/B4R,MAH+B;QAI/BvP,MAJ+B;QAK/B5a,IAL+B;IAM/BM,IAAAA,OAAAA;OANF,CAAA,CAAA;IAQD;;IC1bc,SAASgqB,SAAT,CAAuD,IAAA,EAAA;MAAA,IAApC;QAAE5wB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MACpE,MAAM1S,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MAEA,IAAI6lB,SAAS,GAAG,KAAhB,CAAA;MACA,IAAIoS,OAAO,GAAG,IAAd,CAAA;MACA,IAAImH,WAAW,GAAG,IAAlB,CAAA;IACA,EAAA,IAAIC,YAAJ,CAAA;IACA,EAAA,IAAIC,QAAJ,CAAA;IACA,EAAA,IAAIC,SAAJ,CAAA;IACA,EAAA,IAAIC,OAAJ,CAAA;IAEAvrB,EAAAA,YAAY,CAAC;IACXwrB,IAAAA,SAAS,EAAE;IACTj9B,MAAAA,EAAE,EAAE,IADK;IAET88B,MAAAA,QAAQ,EAAE,MAFD;IAGTI,MAAAA,IAAI,EAAE,KAHG;IAITC,MAAAA,SAAS,EAAE,KAJF;IAKTC,MAAAA,aAAa,EAAE,IALN;IAMT1E,MAAAA,SAAS,EAAE,uBANF;IAOT2E,MAAAA,SAAS,EAAE,uBAPF;IAQTC,MAAAA,sBAAsB,EAAE,2BARf;IASTvC,MAAAA,eAAe,EAAG,CATT,2BAAA,CAAA;IAUTC,MAAAA,aAAa,EAAG,CAAA,yBAAA,CAAA;IAVP,KAAA;IADA,GAAD,CAAZ,CAAA;MAeAjvB,MAAM,CAACkxB,SAAP,GAAmB;IACjBj9B,IAAAA,EAAE,EAAE,IADa;IAEjBu9B,IAAAA,MAAM,EAAE,IAFS;IAGjB/qB,IAAAA,GAAG,EAAE,IAHY;IAIjBgrB,IAAAA,OAAO,EAAE,IAAA;OAJX,CAAA;;IAOA,EAAA,SAASrgB,YAAT,GAAwB;IACtB,IAAA,IAAI,CAACpR,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBj9B,EAAzB,IAA+B,CAAC+L,MAAM,CAACkxB,SAAP,CAAiBj9B,EAArD,EAAyD,OAAA;QACzD,MAAM;UAAEi9B,SAAF;IAAaxoB,MAAAA,YAAY,EAAEC,GAA3B;IAAgC1H,MAAAA,QAAAA;IAAhC,KAAA,GAA6CjB,MAAnD,CAAA;QACA,MAAM;UAAEyxB,OAAF;IAAWhrB,MAAAA,GAAAA;IAAX,KAAA,GAAmByqB,SAAzB,CAAA;IACA,IAAA,MAAM3wB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2wB,SAA7B,CAAA;QAEA,IAAIQ,OAAO,GAAGX,QAAd,CAAA;IACA,IAAA,IAAIY,MAAM,GAAG,CAACX,SAAS,GAAGD,QAAb,IAAyB9vB,QAAtC,CAAA;;IACA,IAAA,IAAI0H,GAAJ,EAAS;UACPgpB,MAAM,GAAG,CAACA,MAAV,CAAA;;UACA,IAAIA,MAAM,GAAG,CAAb,EAAgB;YACdD,OAAO,GAAGX,QAAQ,GAAGY,MAArB,CAAA;IACAA,QAAAA,MAAM,GAAG,CAAT,CAAA;WAFF,MAGO,IAAI,CAACA,MAAD,GAAUZ,QAAV,GAAqBC,SAAzB,EAAoC;YACzCU,OAAO,GAAGV,SAAS,GAAGW,MAAtB,CAAA;IACD,OAAA;IACF,KARD,MAQO,IAAIA,MAAM,GAAG,CAAb,EAAgB;UACrBD,OAAO,GAAGX,QAAQ,GAAGY,MAArB,CAAA;IACAA,MAAAA,MAAM,GAAG,CAAT,CAAA;IACD,KAHM,MAGA,IAAIA,MAAM,GAAGZ,QAAT,GAAoBC,SAAxB,EAAmC;UACxCU,OAAO,GAAGV,SAAS,GAAGW,MAAtB,CAAA;IACD,KAAA;;IACD,IAAA,IAAI3xB,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IACzB4pB,MAAAA,OAAO,CAAC16B,SAAR,CAAmB,CAAA,YAAA,EAAc46B,MAAO,CAAxC,SAAA,CAAA,CAAA,CAAA;UACAF,OAAO,CAAC,CAAD,CAAP,CAAW9gC,KAAX,CAAiBqS,KAAjB,GAA0B,CAAE0uB,EAAAA,OAAQ,CAApC,EAAA,CAAA,CAAA;IACD,KAHD,MAGO;IACLD,MAAAA,OAAO,CAAC16B,SAAR,CAAmB,CAAA,iBAAA,EAAmB46B,MAAO,CAA7C,MAAA,CAAA,CAAA,CAAA;UACAF,OAAO,CAAC,CAAD,CAAP,CAAW9gC,KAAX,CAAiBuS,MAAjB,GAA2B,CAAEwuB,EAAAA,OAAQ,CAArC,EAAA,CAAA,CAAA;IACD,KAAA;;QACD,IAAInxB,MAAM,CAAC4wB,IAAX,EAAiB;UACfx+B,YAAY,CAAC+2B,OAAD,CAAZ,CAAA;UACAjjB,GAAG,CAAC,CAAD,CAAH,CAAO9V,KAAP,CAAaihC,OAAb,GAAuB,CAAvB,CAAA;UACAlI,OAAO,GAAGh3B,UAAU,CAAC,MAAM;YACzB+T,GAAG,CAAC,CAAD,CAAH,CAAO9V,KAAP,CAAaihC,OAAb,GAAuB,CAAvB,CAAA;YACAnrB,GAAG,CAACzP,UAAJ,CAAe,GAAf,CAAA,CAAA;WAFkB,EAGjB,IAHiB,CAApB,CAAA;IAID,KAAA;IACF,GAAA;;MACD,SAASyW,aAAT,CAAuBxW,QAAvB,EAAiC;IAC/B,IAAA,IAAI,CAAC+I,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBj9B,EAAzB,IAA+B,CAAC+L,MAAM,CAACkxB,SAAP,CAAiBj9B,EAArD,EAAyD,OAAA;IACzD+L,IAAAA,MAAM,CAACkxB,SAAP,CAAiBO,OAAjB,CAAyBz6B,UAAzB,CAAoCC,QAApC,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASyQ,UAAT,GAAsB;IACpB,IAAA,IAAI,CAAC1H,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBj9B,EAAzB,IAA+B,CAAC+L,MAAM,CAACkxB,SAAP,CAAiBj9B,EAArD,EAAyD,OAAA;QAEzD,MAAM;IAAEi9B,MAAAA,SAAAA;IAAF,KAAA,GAAgBlxB,MAAtB,CAAA;QACA,MAAM;UAAEyxB,OAAF;IAAWhrB,MAAAA,GAAAA;IAAX,KAAA,GAAmByqB,SAAzB,CAAA;QAEAO,OAAO,CAAC,CAAD,CAAP,CAAW9gC,KAAX,CAAiBqS,KAAjB,GAAyB,EAAzB,CAAA;QACAyuB,OAAO,CAAC,CAAD,CAAP,CAAW9gC,KAAX,CAAiBuS,MAAjB,GAA0B,EAA1B,CAAA;IACA8tB,IAAAA,SAAS,GAAGhxB,MAAM,CAAC6H,YAAP,EAAA,GAAwBpB,GAAG,CAAC,CAAD,CAAH,CAAO7M,WAA/B,GAA6C6M,GAAG,CAAC,CAAD,CAAH,CAAO1M,YAAhE,CAAA;IAEAk3B,IAAAA,OAAO,GACLjxB,MAAM,CAACmI,IAAP,IACCnI,MAAM,CAACgK,WAAP,GACChK,MAAM,CAACO,MAAP,CAAciJ,kBADf,IAEExJ,MAAM,CAACO,MAAP,CAAc8J,cAAd,GAA+BrK,MAAM,CAACoJ,QAAP,CAAgB,CAAhB,CAA/B,GAAoD,CAFtD,CADD,CADF,CAAA;;QAKA,IAAIpJ,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBH,QAAxB,KAAqC,MAAzC,EAAiD;UAC/CA,QAAQ,GAAGC,SAAS,GAAGC,OAAvB,CAAA;IACD,KAFD,MAEO;IACLF,MAAAA,QAAQ,GAAGhpB,QAAQ,CAAC/H,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBH,QAAzB,EAAmC,EAAnC,CAAnB,CAAA;IACD,KAAA;;IAED,IAAA,IAAI/wB,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;UACzB4pB,OAAO,CAAC,CAAD,CAAP,CAAW9gC,KAAX,CAAiBqS,KAAjB,GAA0B,CAAE+tB,EAAAA,QAAS,CAArC,EAAA,CAAA,CAAA;IACD,KAFD,MAEO;UACLU,OAAO,CAAC,CAAD,CAAP,CAAW9gC,KAAX,CAAiBuS,MAAjB,GAA2B,CAAE6tB,EAAAA,QAAS,CAAtC,EAAA,CAAA,CAAA;IACD,KAAA;;QAED,IAAIE,OAAO,IAAI,CAAf,EAAkB;UAChBxqB,GAAG,CAAC,CAAD,CAAH,CAAO9V,KAAP,CAAakhC,OAAb,GAAuB,MAAvB,CAAA;IACD,KAFD,MAEO;UACLprB,GAAG,CAAC,CAAD,CAAH,CAAO9V,KAAP,CAAakhC,OAAb,GAAuB,EAAvB,CAAA;IACD,KAAA;;IACD,IAAA,IAAI7xB,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBC,IAA5B,EAAkC;UAChC1qB,GAAG,CAAC,CAAD,CAAH,CAAO9V,KAAP,CAAaihC,OAAb,GAAuB,CAAvB,CAAA;IACD,KAAA;;QAED,IAAI5xB,MAAM,CAACO,MAAP,CAAcwM,aAAd,IAA+B/M,MAAM,CAAC+I,OAA1C,EAAmD;IACjDmoB,MAAAA,SAAS,CAACzqB,GAAV,CAAczG,MAAM,CAACoW,QAAP,GAAkB,UAAlB,GAA+B,aAA7C,EACEpW,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBvE,SAD1B,CAAA,CAAA;IAGD,KAAA;IACF,GAAA;;MACD,SAASmF,kBAAT,CAA4Bp6B,CAA5B,EAA+B;IAC7B,IAAA,IAAIsI,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;UACzB,OAAOnQ,CAAC,CAACyf,IAAF,KAAW,YAAX,IAA2Bzf,CAAC,CAACyf,IAAF,KAAW,WAAtC,GACHzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmB6Z,OADhB,GAEHr6B,CAAC,CAACq6B,OAFN,CAAA;IAGD,KAAA;;QACD,OAAOr6B,CAAC,CAACyf,IAAF,KAAW,YAAX,IAA2Bzf,CAAC,CAACyf,IAAF,KAAW,WAAtC,GACHzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmB8Z,OADhB,GAEHt6B,CAAC,CAACs6B,OAFN,CAAA;IAGD,GAAA;;MACD,SAASC,eAAT,CAAyBv6B,CAAzB,EAA4B;QAC1B,MAAM;UAAEw5B,SAAF;IAAaxoB,MAAAA,YAAY,EAAEC,GAAAA;IAA3B,KAAA,GAAmC3I,MAAzC,CAAA;QACA,MAAM;IAAEyG,MAAAA,GAAAA;IAAF,KAAA,GAAUyqB,SAAhB,CAAA;IAEA,IAAA,IAAIgB,aAAJ,CAAA;IACAA,IAAAA,aAAa,GACX,CAACJ,kBAAkB,CAACp6B,CAAD,CAAlB,GACC+O,GAAG,CAACzM,MAAJ,EAAagG,CAAAA,MAAM,CAAC6H,YAAP,KAAwB,MAAxB,GAAiC,KAA9C,CADD,IAEEipB,YAAY,KAAK,IAAjB,GAAwBA,YAAxB,GAAuCC,QAAQ,GAAG,CAFpD,CAAD,KAGCC,SAAS,GAAGD,QAHb,CADF,CAAA;IAKAmB,IAAAA,aAAa,GAAGhxB,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAAS8wB,aAAT,EAAwB,CAAxB,CAAT,EAAqC,CAArC,CAAhB,CAAA;;IACA,IAAA,IAAIvpB,GAAJ,EAAS;UACPupB,aAAa,GAAG,IAAIA,aAApB,CAAA;IACD,KAAA;;IAED,IAAA,MAAMpG,QAAQ,GACZ9rB,MAAM,CAACuO,YAAP,KAAwB,CAACvO,MAAM,CAACgP,YAAP,KAAwBhP,MAAM,CAACuO,YAAP,EAAzB,IAAkD2jB,aAD5E,CAAA;QAGAlyB,MAAM,CAAC6O,cAAP,CAAsBid,QAAtB,CAAA,CAAA;QACA9rB,MAAM,CAACoR,YAAP,CAAoB0a,QAApB,CAAA,CAAA;IACA9rB,IAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,IAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,GAAA;;MACD,SAAS6iB,WAAT,CAAqBz6B,CAArB,EAAwB;IACtB,IAAA,MAAM6I,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2wB,SAA7B,CAAA;QACA,MAAM;UAAEA,SAAF;IAAavqB,MAAAA,UAAAA;IAAb,KAAA,GAA4B3G,MAAlC,CAAA;QACA,MAAM;UAAEyG,GAAF;IAAOgrB,MAAAA,OAAAA;IAAP,KAAA,GAAmBP,SAAzB,CAAA;IACA5Z,IAAAA,SAAS,GAAG,IAAZ,CAAA;IACAwZ,IAAAA,YAAY,GACVp5B,CAAC,CAACpI,MAAF,KAAamiC,OAAO,CAAC,CAAD,CAApB,IAA2B/5B,CAAC,CAACpI,MAAF,KAAamiC,OAAxC,GACIK,kBAAkB,CAACp6B,CAAD,CAAlB,GACAA,CAAC,CAACpI,MAAF,CAAS4K,qBAAT,EAAiC8F,CAAAA,MAAM,CAAC6H,YAAP,KAAwB,MAAxB,GAAiC,KAAlE,CAFJ,GAGI,IAJN,CAAA;IAKAnQ,IAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACAnhB,IAAAA,CAAC,CAAC6iB,eAAF,EAAA,CAAA;QAEA5T,UAAU,CAAC3P,UAAX,CAAsB,GAAtB,CAAA,CAAA;QACAy6B,OAAO,CAACz6B,UAAR,CAAmB,GAAnB,CAAA,CAAA;QACAi7B,eAAe,CAACv6B,CAAD,CAAf,CAAA;QAEA/E,YAAY,CAACk+B,WAAD,CAAZ,CAAA;QAEApqB,GAAG,CAACzP,UAAJ,CAAe,CAAf,CAAA,CAAA;;QACA,IAAIuJ,MAAM,CAAC4wB,IAAX,EAAiB;IACf1qB,MAAAA,GAAG,CAAC9L,GAAJ,CAAQ,SAAR,EAAmB,CAAnB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIqF,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzBtK,MAAAA,MAAM,CAAC2G,UAAP,CAAkBhM,GAAlB,CAAsB,kBAAtB,EAA0C,MAA1C,CAAA,CAAA;IACD,KAAA;;IACD0J,IAAAA,IAAI,CAAC,oBAAD,EAAuB3M,CAAvB,CAAJ,CAAA;IACD,GAAA;;MACD,SAAS06B,UAAT,CAAoB16B,CAApB,EAAuB;QACrB,MAAM;UAAEw5B,SAAF;IAAavqB,MAAAA,UAAAA;IAAb,KAAA,GAA4B3G,MAAlC,CAAA;QACA,MAAM;UAAEyG,GAAF;IAAOgrB,MAAAA,OAAAA;IAAP,KAAA,GAAmBP,SAAzB,CAAA;QAEA,IAAI,CAAC5Z,SAAL,EAAgB,OAAA;IAChB,IAAA,IAAI5f,CAAC,CAACmhB,cAAN,EAAsBnhB,CAAC,CAACmhB,cAAF,EAAA,CAAtB,KACKnhB,CAAC,CAACsxB,WAAF,GAAgB,KAAhB,CAAA;QACLiJ,eAAe,CAACv6B,CAAD,CAAf,CAAA;QACAiP,UAAU,CAAC3P,UAAX,CAAsB,CAAtB,CAAA,CAAA;QACAyP,GAAG,CAACzP,UAAJ,CAAe,CAAf,CAAA,CAAA;QACAy6B,OAAO,CAACz6B,UAAR,CAAmB,CAAnB,CAAA,CAAA;IACAqN,IAAAA,IAAI,CAAC,mBAAD,EAAsB3M,CAAtB,CAAJ,CAAA;IACD,GAAA;;MACD,SAAS26B,SAAT,CAAmB36B,CAAnB,EAAsB;IACpB,IAAA,MAAM6I,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2wB,SAA7B,CAAA;QACA,MAAM;UAAEA,SAAF;IAAavqB,MAAAA,UAAAA;IAAb,KAAA,GAA4B3G,MAAlC,CAAA;QACA,MAAM;IAAEyG,MAAAA,GAAAA;IAAF,KAAA,GAAUyqB,SAAhB,CAAA;QAEA,IAAI,CAAC5Z,SAAL,EAAgB,OAAA;IAChBA,IAAAA,SAAS,GAAG,KAAZ,CAAA;;IACA,IAAA,IAAItX,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzBtK,MAAAA,MAAM,CAAC2G,UAAP,CAAkBhM,GAAlB,CAAsB,kBAAtB,EAA0C,EAA1C,CAAA,CAAA;UACAgM,UAAU,CAAC3P,UAAX,CAAsB,EAAtB,CAAA,CAAA;IACD,KAAA;;QACD,IAAIuJ,MAAM,CAAC4wB,IAAX,EAAiB;UACfx+B,YAAY,CAACk+B,WAAD,CAAZ,CAAA;UACAA,WAAW,GAAGvzB,QAAQ,CAAC,MAAM;IAC3BmJ,QAAAA,GAAG,CAAC9L,GAAJ,CAAQ,SAAR,EAAmB,CAAnB,CAAA,CAAA;YACA8L,GAAG,CAACzP,UAAJ,CAAe,GAAf,CAAA,CAAA;WAFoB,EAGnB,IAHmB,CAAtB,CAAA;IAID,KAAA;;IACDqN,IAAAA,IAAI,CAAC,kBAAD,EAAqB3M,CAArB,CAAJ,CAAA;;QACA,IAAI6I,MAAM,CAAC8wB,aAAX,EAA0B;IACxBrxB,MAAAA,MAAM,CAAC8U,cAAP,EAAA,CAAA;IACD,KAAA;IACF,GAAA;;MAED,SAAS3c,MAAT,CAAgB8O,MAAhB,EAAwB;QACtB,MAAM;UAAEiqB,SAAF;UAAajO,gBAAb;UAA+BC,kBAA/B;UAAmD3iB,MAAnD;IAA2DoB,MAAAA,OAAAA;IAA3D,KAAA,GAAuE3B,MAA7E,CAAA;IACA,IAAA,MAAMyG,GAAG,GAAGyqB,SAAS,CAACzqB,GAAtB,CAAA;QACA,IAAI,CAACA,GAAL,EAAU,OAAA;IACV,IAAA,MAAMnX,MAAM,GAAGmX,GAAG,CAAC,CAAD,CAAlB,CAAA;QACA,MAAM6rB,cAAc,GAClB3wB,OAAO,CAACM,eAAR,IAA2B1B,MAAM,CAACgd,gBAAlC,GACI;IAAEC,MAAAA,OAAO,EAAE,KAAX;IAAkBhmB,MAAAA,OAAO,EAAE,KAAA;IAA3B,KADJ,GAEI,KAHN,CAAA;QAIA,MAAMyK,eAAe,GACnBN,OAAO,CAACM,eAAR,IAA2B1B,MAAM,CAACgd,gBAAlC,GACI;IAAEC,MAAAA,OAAO,EAAE,IAAX;IAAiBhmB,MAAAA,OAAO,EAAE,KAAA;IAA1B,KADJ,GAEI,KAHN,CAAA;QAIA,IAAI,CAAClI,MAAL,EAAa,OAAA;QACb,MAAMijC,WAAW,GAAGtrB,MAAM,KAAK,IAAX,GAAkB,kBAAlB,GAAuC,qBAA3D,CAAA;;IACA,IAAA,IAAI,CAACtF,OAAO,CAACI,KAAb,EAAoB;UAClBzS,MAAM,CAACijC,WAAD,CAAN,CAAoBrP,kBAAkB,CAAC9F,KAAvC,EAA8C+U,WAA9C,EAA2DG,cAA3D,CAAA,CAAA;UACA3gC,QAAQ,CAAC4gC,WAAD,CAAR,CAAsBrP,kBAAkB,CAAC7F,IAAzC,EAA+C+U,UAA/C,EAA2DE,cAA3D,CAAA,CAAA;UACA3gC,QAAQ,CAAC4gC,WAAD,CAAR,CAAsBrP,kBAAkB,CAAC5F,GAAzC,EAA8C+U,SAA9C,EAAyDpwB,eAAzD,CAAA,CAAA;IACD,KAJD,MAIO;UACL3S,MAAM,CAACijC,WAAD,CAAN,CAAoBtP,gBAAgB,CAAC7F,KAArC,EAA4C+U,WAA5C,EAAyDG,cAAzD,CAAA,CAAA;UACAhjC,MAAM,CAACijC,WAAD,CAAN,CAAoBtP,gBAAgB,CAAC5F,IAArC,EAA2C+U,UAA3C,EAAuDE,cAAvD,CAAA,CAAA;UACAhjC,MAAM,CAACijC,WAAD,CAAN,CAAoBtP,gBAAgB,CAAC3F,GAArC,EAA0C+U,SAA1C,EAAqDpwB,eAArD,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IAED,EAAA,SAASuwB,eAAT,GAA2B;IACzB,IAAA,IAAI,CAACxyB,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBj9B,EAAzB,IAA+B,CAAC+L,MAAM,CAACkxB,SAAP,CAAiBj9B,EAArD,EAAyD,OAAA;QACzDkE,MAAM,CAAC,IAAD,CAAN,CAAA;IACD,GAAA;;IACD,EAAA,SAASs6B,gBAAT,GAA4B;IAC1B,IAAA,IAAI,CAACzyB,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBj9B,EAAzB,IAA+B,CAAC+L,MAAM,CAACkxB,SAAP,CAAiBj9B,EAArD,EAAyD,OAAA;QACzDkE,MAAM,CAAC,KAAD,CAAN,CAAA;IACD,GAAA;;IACD,EAAA,SAASmO,IAAT,GAAgB;QACd,MAAM;UAAE4qB,SAAF;IAAazqB,MAAAA,GAAG,EAAEisB,SAAAA;IAAlB,KAAA,GAAgC1yB,MAAtC,CAAA;QACAA,MAAM,CAACO,MAAP,CAAc2wB,SAAd,GAA0B9E,yBAAyB,CACjDpsB,MADiD,EAEjDA,MAAM,CAACqe,cAAP,CAAsB6S,SAF2B,EAGjDlxB,MAAM,CAACO,MAAP,CAAc2wB,SAHmC,EAIjD;IAAEj9B,MAAAA,EAAE,EAAE,kBAAA;IAAN,KAJiD,CAAnD,CAAA;IAMA,IAAA,MAAMsM,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2wB,SAA7B,CAAA;IACA,IAAA,IAAI,CAAC3wB,MAAM,CAACtM,EAAZ,EAAgB,OAAA;IAEhB,IAAA,IAAIwS,GAAG,GAAGzR,CAAC,CAACuL,MAAM,CAACtM,EAAR,CAAX,CAAA;;IACA,IAAA,IACE+L,MAAM,CAACO,MAAP,CAAckhB,iBAAd,IACA,OAAOlhB,MAAM,CAACtM,EAAd,KAAqB,QADrB,IAEAwS,GAAG,CAAC9W,MAAJ,GAAa,CAFb,IAGA+iC,SAAS,CAAC71B,IAAV,CAAe0D,MAAM,CAACtM,EAAtB,CAAA,CAA0BtE,MAA1B,KAAqC,CAJvC,EAKE;UACA8W,GAAG,GAAGisB,SAAS,CAAC71B,IAAV,CAAe0D,MAAM,CAACtM,EAAtB,CAAN,CAAA;IACD,KAAA;;IAEDwS,IAAAA,GAAG,CAACjR,QAAJ,CAAawK,MAAM,CAAC6H,YAAP,EAAwBtH,GAAAA,MAAM,CAACyuB,eAA/B,GAAiDzuB,MAAM,CAAC0uB,aAArE,CAAA,CAAA;IAEA,IAAA,IAAIwC,OAAO,GAAGhrB,GAAG,CAAC5J,IAAJ,CAAU,CAAA,CAAA,EAAGmD,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBI,SAAU,EAA/C,CAAd,CAAA;;IACA,IAAA,IAAIG,OAAO,CAAC9hC,MAAR,KAAmB,CAAvB,EAA0B;IACxB8hC,MAAAA,OAAO,GAAGz8B,CAAC,CAAE,CAAA,YAAA,EAAcgL,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBI,SAAU,CAAA,QAAA,CAAlD,CAAX,CAAA;UACA7qB,GAAG,CAAC9K,MAAJ,CAAW81B,OAAX,CAAA,CAAA;IACD,KAAA;;IAEDriC,IAAAA,MAAM,CAAC8Y,MAAP,CAAcgpB,SAAd,EAAyB;UACvBzqB,GADuB;IAEvBxS,MAAAA,EAAE,EAAEwS,GAAG,CAAC,CAAD,CAFgB;UAGvBgrB,OAHuB;UAIvBD,MAAM,EAAEC,OAAO,CAAC,CAAD,CAAA;SAJjB,CAAA,CAAA;;QAOA,IAAIlxB,MAAM,CAAC6wB,SAAX,EAAsB;UACpBoB,eAAe,EAAA,CAAA;IAChB,KAAA;;IAED,IAAA,IAAI/rB,GAAJ,EAAS;IACPA,MAAAA,GAAG,CAACzG,MAAM,CAAC+I,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAH,CAAiD/I,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBvE,SAAzE,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,SAAS/lB,OAAT,GAAmB;IACjB,IAAA,MAAMrG,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc2wB,SAA7B,CAAA;IACA,IAAA,MAAMzqB,GAAG,GAAGzG,MAAM,CAACkxB,SAAP,CAAiBzqB,GAA7B,CAAA;;IACA,IAAA,IAAIA,GAAJ,EAAS;IACPA,MAAAA,GAAG,CAACzQ,WAAJ,CAAgBgK,MAAM,CAAC6H,YAAP,EAAwBtH,GAAAA,MAAM,CAACyuB,eAA/B,GAAiDzuB,MAAM,CAAC0uB,aAAxE,CAAA,CAAA;IACD,KAAA;;QAEDwD,gBAAgB,EAAA,CAAA;IACjB,GAAA;;MAEDt7B,EAAE,CAAC,MAAD,EAAS,MAAM;QACf,IAAI6I,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBnoB,OAAxB,KAAoC,KAAxC,EAA+C;IAC7C;UACA8V,OAAO,EAAA,CAAA;IACR,KAHD,MAGO;UACLvY,IAAI,EAAA,CAAA;UACJoB,UAAU,EAAA,CAAA;UACV0J,YAAY,EAAA,CAAA;IACb,KAAA;IACF,GATC,CAAF,CAAA;MAUAja,EAAE,CAAC,0CAAD,EAA6C,MAAM;QACnDuQ,UAAU,EAAA,CAAA;IACX,GAFC,CAAF,CAAA;MAGAvQ,EAAE,CAAC,cAAD,EAAiB,MAAM;QACvBia,YAAY,EAAA,CAAA;IACb,GAFC,CAAF,CAAA;IAGAja,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACk2B,EAAD,EAAKp2B,QAAL,KAAkB;QACpCwW,aAAa,CAACxW,QAAD,CAAb,CAAA;IACD,GAFC,CAAF,CAAA;MAGAE,EAAE,CAAC,gBAAD,EAAmB,MAAM;QACzB,MAAM;IAAEsP,MAAAA,GAAAA;SAAQzG,GAAAA,MAAM,CAACkxB,SAAvB,CAAA;;IACA,IAAA,IAAIzqB,GAAJ,EAAS;IACPA,MAAAA,GAAG,CAACzG,MAAM,CAAC+I,OAAP,GAAiB,aAAjB,GAAiC,UAAlC,CAAH,CAAiD/I,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBvE,SAAzE,CAAA,CAAA;IACD,KAAA;IACF,GALC,CAAF,CAAA;MAMAx1B,EAAE,CAAC,SAAD,EAAY,MAAM;QAClByP,OAAO,EAAA,CAAA;IACR,GAFC,CAAF,CAAA;;MAIA,MAAMkY,MAAM,GAAG,MAAM;QACnB9e,MAAM,CAACyG,GAAP,CAAWzQ,WAAX,CAAuBgK,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBK,sBAA/C,CAAA,CAAA;;IACA,IAAA,IAAIvxB,MAAM,CAACkxB,SAAP,CAAiBzqB,GAArB,EAA0B;IACxBzG,MAAAA,MAAM,CAACkxB,SAAP,CAAiBzqB,GAAjB,CAAqBzQ,WAArB,CAAiCgK,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBK,sBAAzD,CAAA,CAAA;IACD,KAAA;;QACDjrB,IAAI,EAAA,CAAA;QACJoB,UAAU,EAAA,CAAA;QACV0J,YAAY,EAAA,CAAA;OAPd,CAAA;;MAUA,MAAMyN,OAAO,GAAG,MAAM;QACpB7e,MAAM,CAACyG,GAAP,CAAWjR,QAAX,CAAoBwK,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBK,sBAA5C,CAAA,CAAA;;IACA,IAAA,IAAIvxB,MAAM,CAACkxB,SAAP,CAAiBzqB,GAArB,EAA0B;IACxBzG,MAAAA,MAAM,CAACkxB,SAAP,CAAiBzqB,GAAjB,CAAqBjR,QAArB,CAA8BwK,MAAM,CAACO,MAAP,CAAc2wB,SAAd,CAAwBK,sBAAtD,CAAA,CAAA;IACD,KAAA;;QACD3qB,OAAO,EAAA,CAAA;OALT,CAAA;;IAQAxX,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACkxB,SAArB,EAAgC;QAC9BpS,MAD8B;QAE9BD,OAF8B;QAG9BnX,UAH8B;QAI9B0J,YAJ8B;QAK9B9K,IAL8B;IAM9BM,IAAAA,OAAAA;OANF,CAAA,CAAA;IAQD;;ICzWc,SAAS+rB,QAAT,CAAgD,IAAA,EAAA;MAAA,IAA9B;QAAE3yB,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC7DuO,EAAAA,YAAY,CAAC;IACXktB,IAAAA,QAAQ,EAAE;IACR7pB,MAAAA,OAAO,EAAE,KAAA;IADD,KAAA;IADC,GAAD,CAAZ,CAAA;;IAMA,EAAA,MAAM8pB,YAAY,GAAG,CAAC5+B,EAAD,EAAKgN,QAAL,KAAkB;QACrC,MAAM;IAAE0H,MAAAA,GAAAA;IAAF,KAAA,GAAU3I,MAAhB,CAAA;IAEA,IAAA,MAAMyG,GAAG,GAAGzR,CAAC,CAACf,EAAD,CAAb,CAAA;IACA,IAAA,MAAMu3B,SAAS,GAAG7iB,GAAG,GAAG,CAAC,CAAJ,GAAQ,CAA7B,CAAA;QAEA,MAAMmqB,CAAC,GAAGrsB,GAAG,CAAClQ,IAAJ,CAAS,sBAAT,KAAoC,GAA9C,CAAA;IACA,IAAA,IAAI+a,CAAC,GAAG7K,GAAG,CAAClQ,IAAJ,CAAS,wBAAT,CAAR,CAAA;IACA,IAAA,IAAIgb,CAAC,GAAG9K,GAAG,CAAClQ,IAAJ,CAAS,wBAAT,CAAR,CAAA;IACA,IAAA,MAAM+5B,KAAK,GAAG7pB,GAAG,CAAClQ,IAAJ,CAAS,4BAAT,CAAd,CAAA;IACA,IAAA,MAAMq7B,OAAO,GAAGnrB,GAAG,CAAClQ,IAAJ,CAAS,8BAAT,CAAhB,CAAA;;QAEA,IAAI+a,CAAC,IAAIC,CAAT,EAAY;UACVD,CAAC,GAAGA,CAAC,IAAI,GAAT,CAAA;UACAC,CAAC,GAAGA,CAAC,IAAI,GAAT,CAAA;IACD,KAHD,MAGO,IAAIvR,MAAM,CAAC6H,YAAP,EAAJ,EAA2B;IAChCyJ,MAAAA,CAAC,GAAGwhB,CAAJ,CAAA;IACAvhB,MAAAA,CAAC,GAAG,GAAJ,CAAA;IACD,KAHM,MAGA;IACLA,MAAAA,CAAC,GAAGuhB,CAAJ,CAAA;IACAxhB,MAAAA,CAAC,GAAG,GAAJ,CAAA;IACD,KAAA;;IAED,IAAA,IAAIA,CAAC,CAAC3c,OAAF,CAAU,GAAV,CAAA,IAAkB,CAAtB,EAAyB;IACvB2c,MAAAA,CAAC,GAAI,CAAA,EAAEvJ,QAAQ,CAACuJ,CAAD,EAAI,EAAJ,CAAR,GAAkBrQ,QAAlB,GAA6BuqB,SAAU,CAA9C,CAAA,CAAA,CAAA;IACD,KAFD,MAEO;IACLla,MAAAA,CAAC,GAAI,CAAEA,EAAAA,CAAC,GAAGrQ,QAAJ,GAAeuqB,SAAU,CAAhC,EAAA,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIja,CAAC,CAAC5c,OAAF,CAAU,GAAV,CAAA,IAAkB,CAAtB,EAAyB;UACvB4c,CAAC,GAAI,CAAExJ,EAAAA,QAAQ,CAACwJ,CAAD,EAAI,EAAJ,CAAR,GAAkBtQ,QAAS,CAAlC,CAAA,CAAA,CAAA;IACD,KAFD,MAEO;IACLsQ,MAAAA,CAAC,GAAI,CAAA,EAAEA,CAAC,GAAGtQ,QAAS,CAApB,EAAA,CAAA,CAAA;IACD,KAAA;;QAED,IAAI,OAAO2wB,OAAP,KAAmB,WAAnB,IAAkCA,OAAO,KAAK,IAAlD,EAAwD;IACtD,MAAA,MAAMmB,cAAc,GAAGnB,OAAO,GAAG,CAACA,OAAO,GAAG,CAAX,KAAiB,CAAA,GAAI1wB,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAArB,CAAjC,CAAA;UACAwF,GAAG,CAAC,CAAD,CAAH,CAAO9V,KAAP,CAAaihC,OAAb,GAAuBmB,cAAvB,CAAA;IACD,KAAA;;QACD,IAAI,OAAOzC,KAAP,KAAiB,WAAjB,IAAgCA,KAAK,KAAK,IAA9C,EAAoD;IAClD7pB,MAAAA,GAAG,CAAC1P,SAAJ,CAAe,eAAcua,CAAE,CAAA,EAAA,EAAIC,CAAE,CAArC,MAAA,CAAA,CAAA,CAAA;IACD,KAFD,MAEO;IACL,MAAA,MAAMyhB,YAAY,GAAG1C,KAAK,GAAG,CAACA,KAAK,GAAG,CAAT,KAAe,CAAA,GAAIpvB,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAnB,CAA7B,CAAA;UACAwF,GAAG,CAAC1P,SAAJ,CAAe,CAAA,YAAA,EAAcua,CAAE,CAAIC,EAAAA,EAAAA,CAAE,CAAeyhB,aAAAA,EAAAA,YAAa,CAAjE,CAAA,CAAA,CAAA,CAAA;IACD,KAAA;OA3CH,CAAA;;MA8CA,MAAM5hB,YAAY,GAAG,MAAM;QACzB,MAAM;UAAE3K,GAAF;UAAOwC,MAAP;UAAehI,QAAf;IAAyBmI,MAAAA,QAAAA;IAAzB,KAAA,GAAsCpJ,MAA5C,CAAA;QACAyG,GAAG,CACAhW,QADH,CAEI,0IAFJ,EAIGqK,IAJH,CAIS7G,EAAD,IAAQ;IACZ4+B,MAAAA,YAAY,CAAC5+B,EAAD,EAAKgN,QAAL,CAAZ,CAAA;SALJ,CAAA,CAAA;IAOAgI,IAAAA,MAAM,CAACnO,IAAP,CAAY,CAAC0oB,OAAD,EAAUrX,UAAV,KAAyB;IACnC,MAAA,IAAImC,aAAa,GAAGkV,OAAO,CAACviB,QAA5B,CAAA;;IACA,MAAA,IAAIjB,MAAM,CAACO,MAAP,CAAcoL,cAAd,GAA+B,CAA/B,IAAoC3L,MAAM,CAACO,MAAP,CAAcsK,aAAd,KAAgC,MAAxE,EAAgF;IAC9EyD,QAAAA,aAAa,IAAIpN,IAAI,CAAC0M,IAAL,CAAUzB,UAAU,GAAG,CAAvB,CAA4BlL,GAAAA,QAAQ,IAAImI,QAAQ,CAACzZ,MAAT,GAAkB,CAAtB,CAArD,CAAA;IACD,OAAA;;IACD2e,MAAAA,aAAa,GAAGpN,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASmN,aAAT,EAAwB,CAAC,CAAzB,CAAT,EAAsC,CAAtC,CAAhB,CAAA;UACAtZ,CAAC,CAACwuB,OAAD,CAAD,CACG3mB,IADH,CAEI,0IAFJ,CAIG/B,CAAAA,IAJH,CAIS7G,EAAD,IAAQ;IACZ4+B,QAAAA,YAAY,CAAC5+B,EAAD,EAAKqa,aAAL,CAAZ,CAAA;WALJ,CAAA,CAAA;SANF,CAAA,CAAA;OATF,CAAA;;IAyBA,EAAA,MAAMb,aAAa,GAAG,UAACxW,QAAD,EAAoC;IAAA,IAAA,IAAnCA,QAAmC,KAAA,KAAA,CAAA,EAAA;IAAnCA,MAAAA,QAAmC,GAAxB+I,MAAM,CAACO,MAAP,CAAcC,KAAU,CAAA;IAAA,KAAA;;QACxD,MAAM;IAAEiG,MAAAA,GAAAA;IAAF,KAAA,GAAUzG,MAAhB,CAAA;QACAyG,GAAG,CACA5J,IADH,CAEI,0IAFJ,EAIG/B,IAJH,CAISm4B,UAAD,IAAgB;IACpB,MAAA,MAAMC,WAAW,GAAGl+B,CAAC,CAACi+B,UAAD,CAArB,CAAA;IACA,MAAA,IAAIE,gBAAgB,GAClBprB,QAAQ,CAACmrB,WAAW,CAAC38B,IAAZ,CAAiB,+BAAjB,CAAD,EAAoD,EAApD,CAAR,IAAmEU,QADrE,CAAA;IAEA,MAAA,IAAIA,QAAQ,KAAK,CAAjB,EAAoBk8B,gBAAgB,GAAG,CAAnB,CAAA;UACpBD,WAAW,CAACl8B,UAAZ,CAAuBm8B,gBAAvB,CAAA,CAAA;SATJ,CAAA,CAAA;OAFF,CAAA;;MAeAh8B,EAAE,CAAC,YAAD,EAAe,MAAM;QACrB,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcqyB,QAAd,CAAuB7pB,OAA5B,EAAqC,OAAA;IACrC/I,IAAAA,MAAM,CAACO,MAAP,CAAc0M,mBAAd,GAAoC,IAApC,CAAA;IACAjN,IAAAA,MAAM,CAACqe,cAAP,CAAsBpR,mBAAtB,GAA4C,IAA5C,CAAA;IACD,GAJC,CAAF,CAAA;MAKA9V,EAAE,CAAC,MAAD,EAAS,MAAM;QACf,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcqyB,QAAd,CAAuB7pB,OAA5B,EAAqC,OAAA;QACrCqI,YAAY,EAAA,CAAA;IACb,GAHC,CAAF,CAAA;MAIAja,EAAE,CAAC,cAAD,EAAiB,MAAM;QACvB,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcqyB,QAAd,CAAuB7pB,OAA5B,EAAqC,OAAA;QACrCqI,YAAY,EAAA,CAAA;IACb,GAHC,CAAF,CAAA;IAIAja,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACi8B,OAAD,EAAUn8B,QAAV,KAAuB;QACzC,IAAI,CAAC+I,MAAM,CAACO,MAAP,CAAcqyB,QAAd,CAAuB7pB,OAA5B,EAAqC,OAAA;QACrC0E,aAAa,CAACxW,QAAD,CAAb,CAAA;IACD,GAHC,CAAF,CAAA;IAID;;IC5Gc,SAASo8B,IAAT,CAAkD,IAAA,EAAA;MAAA,IAApC;QAAErzB,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;MAC/D,MAAMlR,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACAyS,EAAAA,YAAY,CAAC;IACX4tB,IAAAA,IAAI,EAAE;IACJvqB,MAAAA,OAAO,EAAE,KADL;IAEJwqB,MAAAA,QAAQ,EAAE,CAFN;IAGJ/T,MAAAA,QAAQ,EAAE,CAHN;IAIJppB,MAAAA,MAAM,EAAE,IAJJ;IAKJo9B,MAAAA,cAAc,EAAE,uBALZ;IAMJC,MAAAA,gBAAgB,EAAE,qBAAA;IANd,KAAA;IADK,GAAD,CAAZ,CAAA;MAWAzzB,MAAM,CAACszB,IAAP,GAAc;IACZvqB,IAAAA,OAAO,EAAE,KAAA;OADX,CAAA;MAIA,IAAIiqB,YAAY,GAAG,CAAnB,CAAA;MACA,IAAIU,SAAS,GAAG,KAAhB,CAAA;IACA,EAAA,IAAIC,eAAJ,CAAA;IACA,EAAA,IAAIC,kBAAJ,CAAA;IACA,EAAA,IAAIC,gBAAJ,CAAA;IACA,EAAA,MAAMC,OAAO,GAAG;IACdjO,IAAAA,QAAQ,EAAElvB,SADI;IAEdo9B,IAAAA,UAAU,EAAEp9B,SAFE;IAGdq9B,IAAAA,WAAW,EAAEr9B,SAHC;IAIds9B,IAAAA,QAAQ,EAAEt9B,SAJI;IAKdu9B,IAAAA,YAAY,EAAEv9B,SALA;IAMd48B,IAAAA,QAAQ,EAAE,CAAA;OANZ,CAAA;IAQA,EAAA,MAAM/S,KAAK,GAAG;IACZlJ,IAAAA,SAAS,EAAE3gB,SADC;IAEZ4gB,IAAAA,OAAO,EAAE5gB,SAFG;IAGZshB,IAAAA,QAAQ,EAAEthB,SAHE;IAIZyhB,IAAAA,QAAQ,EAAEzhB,SAJE;IAKZw9B,IAAAA,IAAI,EAAEx9B,SALM;IAMZy9B,IAAAA,IAAI,EAAEz9B,SANM;IAOZ09B,IAAAA,IAAI,EAAE19B,SAPM;IAQZ29B,IAAAA,IAAI,EAAE39B,SARM;IASZqM,IAAAA,KAAK,EAAErM,SATK;IAUZuM,IAAAA,MAAM,EAAEvM,SAVI;IAWZ2hB,IAAAA,MAAM,EAAE3hB,SAXI;IAYZ4hB,IAAAA,MAAM,EAAE5hB,SAZI;IAaZ49B,IAAAA,YAAY,EAAE,EAbF;IAcZC,IAAAA,cAAc,EAAE,EAAA;OAdlB,CAAA;IAgBA,EAAA,MAAMzR,QAAQ,GAAG;IACfzR,IAAAA,CAAC,EAAE3a,SADY;IAEf4a,IAAAA,CAAC,EAAE5a,SAFY;IAGf89B,IAAAA,aAAa,EAAE99B,SAHA;IAIf+9B,IAAAA,aAAa,EAAE/9B,SAJA;IAKfg+B,IAAAA,QAAQ,EAAEh+B,SAAAA;OALZ,CAAA;MAQA,IAAI25B,KAAK,GAAG,CAAZ,CAAA;MACAlhC,MAAM,CAACmE,cAAP,CAAsByM,MAAM,CAACszB,IAA7B,EAAmC,OAAnC,EAA4C;IAC1C9/B,IAAAA,GAAG,GAAG;IACJ,MAAA,OAAO88B,KAAP,CAAA;SAFwC;;QAI1C78B,GAAG,CAACC,KAAD,EAAQ;UACT,IAAI48B,KAAK,KAAK58B,KAAd,EAAqB;IACnB,QAAA,MAAM0sB,OAAO,GAAG0T,OAAO,CAACG,QAAR,GAAmBH,OAAO,CAACG,QAAR,CAAiB,CAAjB,CAAnB,GAAyCt9B,SAAzD,CAAA;IACA,QAAA,MAAM6sB,OAAO,GAAGsQ,OAAO,CAACjO,QAAR,GAAmBiO,OAAO,CAACjO,QAAR,CAAiB,CAAjB,CAAnB,GAAyClvB,SAAzD,CAAA;YACA0N,IAAI,CAAC,YAAD,EAAe3Q,KAAf,EAAsB0sB,OAAtB,EAA+BoD,OAA/B,CAAJ,CAAA;IACD,OAAA;;IACD8M,MAAAA,KAAK,GAAG58B,KAAR,CAAA;IACD,KAAA;;OAXH,CAAA,CAAA;;MAcA,SAASkhC,yBAAT,CAAmCl9B,CAAnC,EAAsC;QACpC,IAAIA,CAAC,CAACwgB,aAAF,CAAgBvoB,MAAhB,GAAyB,CAA7B,EAAgC,OAAO,CAAP,CAAA;QAChC,MAAMklC,EAAE,GAAGn9B,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBC,KAA9B,CAAA;QACA,MAAM2c,EAAE,GAAGp9B,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBG,KAA9B,CAAA;QACA,MAAM0c,EAAE,GAAGr9B,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBC,KAA9B,CAAA;QACA,MAAM6c,EAAE,GAAGt9B,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBG,KAA9B,CAAA;IACA,IAAA,MAAM4c,QAAQ,GAAG/zB,IAAI,CAACgZ,IAAL,CAAU,CAAC6a,EAAE,GAAGF,EAAN,KAAa,CAAb,GAAiB,CAACG,EAAE,GAAGF,EAAN,KAAa,CAAxC,CAAjB,CAAA;IACA,IAAA,OAAOG,QAAP,CAAA;IACD,GA7E8D;;;MAgF/D,SAASC,cAAT,CAAwBx9B,CAAxB,EAA2B;IACzB,IAAA,MAAMiK,OAAO,GAAG3B,MAAM,CAAC2B,OAAvB,CAAA;IACA,IAAA,MAAMpB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc+yB,IAA7B,CAAA;IACAM,IAAAA,kBAAkB,GAAG,KAArB,CAAA;IACAC,IAAAA,gBAAgB,GAAG,KAAnB,CAAA;;IACA,IAAA,IAAI,CAAClyB,OAAO,CAACU,QAAb,EAAuB;IACrB,MAAA,IAAI3K,CAAC,CAACyf,IAAF,KAAW,YAAX,IAA4Bzf,CAAC,CAACyf,IAAF,KAAW,YAAX,IAA2Bzf,CAAC,CAACwgB,aAAF,CAAgBvoB,MAAhB,GAAyB,CAApF,EAAwF;IACtF,QAAA,OAAA;IACD,OAAA;;IACDikC,MAAAA,kBAAkB,GAAG,IAArB,CAAA;IACAE,MAAAA,OAAO,CAACqB,UAAR,GAAqBP,yBAAyB,CAACl9B,CAAD,CAA9C,CAAA;IACD,KAAA;;QACD,IAAI,CAACo8B,OAAO,CAACjO,QAAT,IAAqB,CAACiO,OAAO,CAACjO,QAAR,CAAiBl2B,MAA3C,EAAmD;IACjDmkC,MAAAA,OAAO,CAACjO,QAAR,GAAmB7wB,CAAC,CAAC0C,CAAC,CAACpI,MAAH,CAAD,CAAYsN,OAAZ,CAAqB,IAAGoD,MAAM,CAACO,MAAP,CAAc2I,UAAW,EAAjD,CAAnB,CAAA;UACA,IAAI4qB,OAAO,CAACjO,QAAR,CAAiBl2B,MAAjB,KAA4B,CAAhC,EAAmCmkC,OAAO,CAACjO,QAAR,GAAmB7lB,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAnB,CAAA;UACnCimB,OAAO,CAACG,QAAR,GAAmBH,OAAO,CAACjO,QAAR,CAChBhpB,IADgB,CACV,CAAG0D,CAAAA,EAAAA,MAAM,CAACizB,cAAe,EADf,CAEhB/3B,CAAAA,EAFgB,CAEb,CAFa,CAGhBoB,CAAAA,IAHgB,CAGX,gDAHW,CAIhBpB,CAAAA,EAJgB,CAIb,CAJa,CAAnB,CAAA;IAKAq4B,MAAAA,OAAO,CAACI,YAAR,GAAuBJ,OAAO,CAACG,QAAR,CAAiBv3B,MAAjB,CAAyB,CAAG6D,CAAAA,EAAAA,MAAM,CAACizB,cAAe,EAAlD,CAAvB,CAAA;IACAM,MAAAA,OAAO,CAACP,QAAR,GAAmBO,OAAO,CAACI,YAAR,CAAqB39B,IAArB,CAA0B,kBAA1B,CAAiDgK,IAAAA,MAAM,CAACgzB,QAA3E,CAAA;;IACA,MAAA,IAAIO,OAAO,CAACI,YAAR,CAAqBvkC,MAArB,KAAgC,CAApC,EAAuC;YACrCmkC,OAAO,CAACG,QAAR,GAAmBt9B,SAAnB,CAAA;IACA,QAAA,OAAA;IACD,OAAA;IACF,KAAA;;QACD,IAAIm9B,OAAO,CAACG,QAAZ,EAAsB;IACpBH,MAAAA,OAAO,CAACG,QAAR,CAAiBj9B,UAAjB,CAA4B,CAA5B,CAAA,CAAA;IACD,KAAA;;IACD08B,IAAAA,SAAS,GAAG,IAAZ,CAAA;IACD,GAAA;;MACD,SAAS0B,eAAT,CAAyB19B,CAAzB,EAA4B;IAC1B,IAAA,MAAMiK,OAAO,GAAG3B,MAAM,CAAC2B,OAAvB,CAAA;IACA,IAAA,MAAMpB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc+yB,IAA7B,CAAA;IACA,IAAA,MAAMA,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;;IACA,IAAA,IAAI,CAAC3xB,OAAO,CAACU,QAAb,EAAuB;IACrB,MAAA,IAAI3K,CAAC,CAACyf,IAAF,KAAW,WAAX,IAA2Bzf,CAAC,CAACyf,IAAF,KAAW,WAAX,IAA0Bzf,CAAC,CAACwgB,aAAF,CAAgBvoB,MAAhB,GAAyB,CAAlF,EAAsF;IACpF,QAAA,OAAA;IACD,OAAA;;IACDkkC,MAAAA,gBAAgB,GAAG,IAAnB,CAAA;IACAC,MAAAA,OAAO,CAACuB,SAAR,GAAoBT,yBAAyB,CAACl9B,CAAD,CAA7C,CAAA;IACD,KAAA;;IAED,IAAA,IAAI,CAACo8B,OAAO,CAACG,QAAT,IAAqBH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAArD,EAAwD;UACtD,IAAI+H,CAAC,CAACyf,IAAF,KAAW,eAAf,EAAgC+d,cAAc,CAACx9B,CAAD,CAAd,CAAA;IAChC,MAAA,OAAA;IACD,KAAA;;QACD,IAAIiK,OAAO,CAACU,QAAZ,EAAsB;IACpBixB,MAAAA,IAAI,CAAChD,KAAL,GAAa54B,CAAC,CAAC44B,KAAF,GAAU0C,YAAvB,CAAA;IACD,KAFD,MAEO;UACLM,IAAI,CAAChD,KAAL,GAAcwD,OAAO,CAACuB,SAAR,GAAoBvB,OAAO,CAACqB,UAA7B,GAA2CnC,YAAxD,CAAA;IACD,KAAA;;IACD,IAAA,IAAIM,IAAI,CAAChD,KAAL,GAAawD,OAAO,CAACP,QAAzB,EAAmC;UACjCD,IAAI,CAAChD,KAAL,GAAawD,OAAO,CAACP,QAAR,GAAmB,CAAnB,GAAuB,CAACD,IAAI,CAAChD,KAAL,GAAawD,OAAO,CAACP,QAArB,GAAgC,CAAjC,KAAuC,GAA3E,CAAA;IACD,KAAA;;IACD,IAAA,IAAID,IAAI,CAAChD,KAAL,GAAa/vB,MAAM,CAACif,QAAxB,EAAkC;UAChC8T,IAAI,CAAChD,KAAL,GAAa/vB,MAAM,CAACif,QAAP,GAAkB,CAAlB,GAAsB,CAACjf,MAAM,CAACif,QAAP,GAAkB8T,IAAI,CAAChD,KAAvB,GAA+B,CAAhC,KAAsC,GAAzE,CAAA;IACD,KAAA;;QACDwD,OAAO,CAACG,QAAR,CAAiBl9B,SAAjB,CAA4B,CAA2Bu8B,yBAAAA,EAAAA,IAAI,CAAChD,KAAM,CAAlE,CAAA,CAAA,CAAA,CAAA;IACD,GAAA;;MACD,SAASgF,YAAT,CAAsB59B,CAAtB,EAAyB;IACvB,IAAA,MAAMkL,MAAM,GAAG5C,MAAM,CAAC4C,MAAtB,CAAA;IACA,IAAA,MAAMjB,OAAO,GAAG3B,MAAM,CAAC2B,OAAvB,CAAA;IACA,IAAA,MAAMpB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc+yB,IAA7B,CAAA;IACA,IAAA,MAAMA,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;;IACA,IAAA,IAAI,CAAC3xB,OAAO,CAACU,QAAb,EAAuB;IACrB,MAAA,IAAI,CAACuxB,kBAAD,IAAuB,CAACC,gBAA5B,EAA8C;IAC5C,QAAA,OAAA;IACD,OAAA;;UACD,IACEn8B,CAAC,CAACyf,IAAF,KAAW,UAAX,IACCzf,CAAC,CAACyf,IAAF,KAAW,UAAX,IAAyBzf,CAAC,CAACmiB,cAAF,CAAiBlqB,MAAjB,GAA0B,CAAnD,IAAwD,CAACiT,MAAM,CAACE,OAFnE,EAGE;IACA,QAAA,OAAA;IACD,OAAA;;IACD8wB,MAAAA,kBAAkB,GAAG,KAArB,CAAA;IACAC,MAAAA,gBAAgB,GAAG,KAAnB,CAAA;IACD,KAAA;;IACD,IAAA,IAAI,CAACC,OAAO,CAACG,QAAT,IAAqBH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAArD,EAAwD,OAAA;QACxD2jC,IAAI,CAAChD,KAAL,GAAapvB,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASkyB,IAAI,CAAChD,KAAd,EAAqBwD,OAAO,CAACP,QAA7B,CAAT,EAAiDhzB,MAAM,CAACif,QAAxD,CAAb,CAAA;IACAsU,IAAAA,OAAO,CAACG,QAAR,CACGj9B,UADH,CACcgJ,MAAM,CAACO,MAAP,CAAcC,KAD5B,EAEGzJ,SAFH,CAEc,4BAA2Bu8B,IAAI,CAAChD,KAAM,CAFpD,CAAA,CAAA,CAAA,CAAA;QAGA0C,YAAY,GAAGM,IAAI,CAAChD,KAApB,CAAA;IACAoD,IAAAA,SAAS,GAAG,KAAZ,CAAA;QACA,IAAIJ,IAAI,CAAChD,KAAL,KAAe,CAAnB,EAAsBwD,OAAO,CAACjO,QAAR,GAAmBlvB,SAAnB,CAAA;IACvB,GAAA;;MACD,SAASkgB,YAAT,CAAsBnf,CAAtB,EAAyB;IACvB,IAAA,MAAMkL,MAAM,GAAG5C,MAAM,CAAC4C,MAAtB,CAAA;IACA,IAAA,IAAI,CAACkxB,OAAO,CAACG,QAAT,IAAqBH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAArD,EAAwD,OAAA;QACxD,IAAI6wB,KAAK,CAAClJ,SAAV,EAAqB,OAAA;QACrB,IAAI1U,MAAM,CAACE,OAAP,IAAkBpL,CAAC,CAACwB,UAAxB,EAAoCxB,CAAC,CAACmhB,cAAF,EAAA,CAAA;QACpC2H,KAAK,CAAClJ,SAAN,GAAkB,IAAlB,CAAA;QACAkJ,KAAK,CAAC+T,YAAN,CAAmBjjB,CAAnB,GAAuB5Z,CAAC,CAACyf,IAAF,KAAW,YAAX,GAA0Bzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBC,KAA7C,GAAqDzgB,CAAC,CAACygB,KAA9E,CAAA;QACAqI,KAAK,CAAC+T,YAAN,CAAmBhjB,CAAnB,GAAuB7Z,CAAC,CAACyf,IAAF,KAAW,YAAX,GAA0Bzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBG,KAA7C,GAAqD3gB,CAAC,CAAC2gB,KAA9E,CAAA;IACD,GAAA;;MACD,SAASsB,WAAT,CAAqBjiB,CAArB,EAAwB;IACtB,IAAA,MAAM47B,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;IACA,IAAA,IAAI,CAACQ,OAAO,CAACG,QAAT,IAAqBH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAArD,EAAwD,OAAA;QACxDqQ,MAAM,CAAC+X,UAAP,GAAoB,KAApB,CAAA;QACA,IAAI,CAACyI,KAAK,CAAClJ,SAAP,IAAoB,CAACwc,OAAO,CAACjO,QAAjC,EAA2C,OAAA;;IAE3C,IAAA,IAAI,CAACrF,KAAK,CAACjJ,OAAX,EAAoB;UAClBiJ,KAAK,CAACxd,KAAN,GAAc8wB,OAAO,CAACG,QAAR,CAAiB,CAAjB,CAAA,CAAoBr6B,WAAlC,CAAA;UACA4mB,KAAK,CAACtd,MAAN,GAAe4wB,OAAO,CAACG,QAAR,CAAiB,CAAjB,CAAA,CAAoBl6B,YAAnC,CAAA;IACAymB,MAAAA,KAAK,CAAClI,MAAN,GAAe5a,YAAY,CAACo2B,OAAO,CAACI,YAAR,CAAqB,CAArB,CAAD,EAA0B,GAA1B,CAAZ,IAA8C,CAA7D,CAAA;IACA1T,MAAAA,KAAK,CAACjI,MAAN,GAAe7a,YAAY,CAACo2B,OAAO,CAACI,YAAR,CAAqB,CAArB,CAAD,EAA0B,GAA1B,CAAZ,IAA8C,CAA7D,CAAA;UACAJ,OAAO,CAACC,UAAR,GAAqBD,OAAO,CAACjO,QAAR,CAAiB,CAAjB,CAAA,CAAoBjsB,WAAzC,CAAA;UACAk6B,OAAO,CAACE,WAAR,GAAsBF,OAAO,CAACjO,QAAR,CAAiB,CAAjB,CAAA,CAAoB9rB,YAA1C,CAAA;IACA+5B,MAAAA,OAAO,CAACI,YAAR,CAAqBl9B,UAArB,CAAgC,CAAhC,CAAA,CAAA;IACD,KAdqB;;;QAgBtB,MAAMu+B,WAAW,GAAG/U,KAAK,CAACxd,KAAN,GAAcswB,IAAI,CAAChD,KAAvC,CAAA;QACA,MAAMkF,YAAY,GAAGhV,KAAK,CAACtd,MAAN,GAAeowB,IAAI,CAAChD,KAAzC,CAAA;QAEA,IAAIiF,WAAW,GAAGzB,OAAO,CAACC,UAAtB,IAAoCyB,YAAY,GAAG1B,OAAO,CAACE,WAA/D,EAA4E,OAAA;IAE5ExT,IAAAA,KAAK,CAAC2T,IAAN,GAAajzB,IAAI,CAACE,GAAL,CAAS0yB,OAAO,CAACC,UAAR,GAAqB,CAArB,GAAyBwB,WAAW,GAAG,CAAhD,EAAmD,CAAnD,CAAb,CAAA;IACA/U,IAAAA,KAAK,CAAC6T,IAAN,GAAa,CAAC7T,KAAK,CAAC2T,IAApB,CAAA;IACA3T,IAAAA,KAAK,CAAC4T,IAAN,GAAalzB,IAAI,CAACE,GAAL,CAAS0yB,OAAO,CAACE,WAAR,GAAsB,CAAtB,GAA0BwB,YAAY,GAAG,CAAlD,EAAqD,CAArD,CAAb,CAAA;IACAhV,IAAAA,KAAK,CAAC8T,IAAN,GAAa,CAAC9T,KAAK,CAAC4T,IAApB,CAAA;QAEA5T,KAAK,CAACgU,cAAN,CAAqBljB,CAArB,GAAyB5Z,CAAC,CAACyf,IAAF,KAAW,WAAX,GAAyBzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBC,KAA5C,GAAoDzgB,CAAC,CAACygB,KAA/E,CAAA;QACAqI,KAAK,CAACgU,cAAN,CAAqBjjB,CAArB,GAAyB7Z,CAAC,CAACyf,IAAF,KAAW,WAAX,GAAyBzf,CAAC,CAACwgB,aAAF,CAAgB,CAAhB,EAAmBG,KAA5C,GAAoD3gB,CAAC,CAAC2gB,KAA/E,CAAA;;IAEA,IAAA,IAAI,CAACmI,KAAK,CAACjJ,OAAP,IAAkB,CAACmc,SAAvB,EAAkC;IAChC,MAAA,IACE1zB,MAAM,CAAC6H,YAAP,EAAA,KACE3G,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAAC2T,IAAjB,CAAA,KAA2BjzB,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAAClI,MAAjB,CAA3B,IACAkI,KAAK,CAACgU,cAAN,CAAqBljB,CAArB,GAAyBkP,KAAK,CAAC+T,YAAN,CAAmBjjB,CAD7C,IAEEpQ,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAAC6T,IAAjB,CAAA,KAA2BnzB,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAAClI,MAAjB,CAA3B,IACCkI,KAAK,CAACgU,cAAN,CAAqBljB,CAArB,GAAyBkP,KAAK,CAAC+T,YAAN,CAAmBjjB,CAJhD,CADF,EAME;YACAkP,KAAK,CAAClJ,SAAN,GAAkB,KAAlB,CAAA;IACA,QAAA,OAAA;IACD,OAAA;;IACD,MAAA,IACE,CAACtX,MAAM,CAAC6H,YAAP,EAAD,KACE3G,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAAC4T,IAAjB,CAA2BlzB,KAAAA,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAACjI,MAAjB,CAA3B,IACAiI,KAAK,CAACgU,cAAN,CAAqBjjB,CAArB,GAAyBiP,KAAK,CAAC+T,YAAN,CAAmBhjB,CAD7C,IAEErQ,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAAC8T,IAAjB,CAA2BpzB,KAAAA,IAAI,CAACsK,KAAL,CAAWgV,KAAK,CAACjI,MAAjB,CAA3B,IACCiI,KAAK,CAACgU,cAAN,CAAqBjjB,CAArB,GAAyBiP,KAAK,CAAC+T,YAAN,CAAmBhjB,CAJhD,CADF,EAME;YACAiP,KAAK,CAAClJ,SAAN,GAAkB,KAAlB,CAAA;IACA,QAAA,OAAA;IACD,OAAA;IACF,KAAA;;QACD,IAAI5f,CAAC,CAACwB,UAAN,EAAkB;IAChBxB,MAAAA,CAAC,CAACmhB,cAAF,EAAA,CAAA;IACD,KAAA;;IACDnhB,IAAAA,CAAC,CAAC6iB,eAAF,EAAA,CAAA;QAEAiG,KAAK,CAACjJ,OAAN,GAAgB,IAAhB,CAAA;IACAiJ,IAAAA,KAAK,CAACvI,QAAN,GAAiBuI,KAAK,CAACgU,cAAN,CAAqBljB,CAArB,GAAyBkP,KAAK,CAAC+T,YAAN,CAAmBjjB,CAA5C,GAAgDkP,KAAK,CAAClI,MAAvE,CAAA;IACAkI,IAAAA,KAAK,CAACpI,QAAN,GAAiBoI,KAAK,CAACgU,cAAN,CAAqBjjB,CAArB,GAAyBiP,KAAK,CAAC+T,YAAN,CAAmBhjB,CAA5C,GAAgDiP,KAAK,CAACjI,MAAvE,CAAA;;IAEA,IAAA,IAAIiI,KAAK,CAACvI,QAAN,GAAiBuI,KAAK,CAAC2T,IAA3B,EAAiC;UAC/B3T,KAAK,CAACvI,QAAN,GAAiBuI,KAAK,CAAC2T,IAAN,GAAa,CAAb,GAAiB,CAAC3T,KAAK,CAAC2T,IAAN,GAAa3T,KAAK,CAACvI,QAAnB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;IACD,KAAA;;IACD,IAAA,IAAIuI,KAAK,CAACvI,QAAN,GAAiBuI,KAAK,CAAC6T,IAA3B,EAAiC;UAC/B7T,KAAK,CAACvI,QAAN,GAAiBuI,KAAK,CAAC6T,IAAN,GAAa,CAAb,GAAiB,CAAC7T,KAAK,CAACvI,QAAN,GAAiBuI,KAAK,CAAC6T,IAAvB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;IACD,KAAA;;IAED,IAAA,IAAI7T,KAAK,CAACpI,QAAN,GAAiBoI,KAAK,CAAC4T,IAA3B,EAAiC;UAC/B5T,KAAK,CAACpI,QAAN,GAAiBoI,KAAK,CAAC4T,IAAN,GAAa,CAAb,GAAiB,CAAC5T,KAAK,CAAC4T,IAAN,GAAa5T,KAAK,CAACpI,QAAnB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;IACD,KAAA;;IACD,IAAA,IAAIoI,KAAK,CAACpI,QAAN,GAAiBoI,KAAK,CAAC8T,IAA3B,EAAiC;UAC/B9T,KAAK,CAACpI,QAAN,GAAiBoI,KAAK,CAAC8T,IAAN,GAAa,CAAb,GAAiB,CAAC9T,KAAK,CAACpI,QAAN,GAAiBoI,KAAK,CAAC8T,IAAvB,GAA8B,CAA/B,KAAqC,GAAvE,CAAA;IACD,KAxEqB;;;IA2EtB,IAAA,IAAI,CAACvR,QAAQ,CAAC0R,aAAd,EAA6B1R,QAAQ,CAAC0R,aAAT,GAAyBjU,KAAK,CAACgU,cAAN,CAAqBljB,CAA9C,CAAA;IAC7B,IAAA,IAAI,CAACyR,QAAQ,CAAC2R,aAAd,EAA6B3R,QAAQ,CAAC2R,aAAT,GAAyBlU,KAAK,CAACgU,cAAN,CAAqBjjB,CAA9C,CAAA;IAC7B,IAAA,IAAI,CAACwR,QAAQ,CAAC4R,QAAd,EAAwB5R,QAAQ,CAAC4R,QAAT,GAAoBniC,IAAI,CAACgL,GAAL,EAApB,CAAA;QACxBulB,QAAQ,CAACzR,CAAT,GACE,CAACkP,KAAK,CAACgU,cAAN,CAAqBljB,CAArB,GAAyByR,QAAQ,CAAC0R,aAAnC,KAAqDjiC,IAAI,CAACgL,GAAL,KAAaulB,QAAQ,CAAC4R,QAA3E,CAAA,GAAuF,CADzF,CAAA;QAEA5R,QAAQ,CAACxR,CAAT,GACE,CAACiP,KAAK,CAACgU,cAAN,CAAqBjjB,CAArB,GAAyBwR,QAAQ,CAAC2R,aAAnC,KAAqDliC,IAAI,CAACgL,GAAL,KAAaulB,QAAQ,CAAC4R,QAA3E,CAAA,GAAuF,CADzF,CAAA;QAEA,IAAIzzB,IAAI,CAACwK,GAAL,CAAS8U,KAAK,CAACgU,cAAN,CAAqBljB,CAArB,GAAyByR,QAAQ,CAAC0R,aAA3C,IAA4D,CAAhE,EAAmE1R,QAAQ,CAACzR,CAAT,GAAa,CAAb,CAAA;QACnE,IAAIpQ,IAAI,CAACwK,GAAL,CAAS8U,KAAK,CAACgU,cAAN,CAAqBjjB,CAArB,GAAyBwR,QAAQ,CAAC2R,aAA3C,IAA4D,CAAhE,EAAmE3R,QAAQ,CAACxR,CAAT,GAAa,CAAb,CAAA;IACnEwR,IAAAA,QAAQ,CAAC0R,aAAT,GAAyBjU,KAAK,CAACgU,cAAN,CAAqBljB,CAA9C,CAAA;IACAyR,IAAAA,QAAQ,CAAC2R,aAAT,GAAyBlU,KAAK,CAACgU,cAAN,CAAqBjjB,CAA9C,CAAA;IACAwR,IAAAA,QAAQ,CAAC4R,QAAT,GAAoBniC,IAAI,CAACgL,GAAL,EAApB,CAAA;IAEAs2B,IAAAA,OAAO,CAACI,YAAR,CAAqBn9B,SAArB,CAAgC,CAAA,YAAA,EAAcypB,KAAK,CAACvI,QAAS,CAAA,IAAA,EAAMuI,KAAK,CAACpI,QAAS,CAAlF,KAAA,CAAA,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAAS4C,UAAT,GAAsB;IACpB,IAAA,MAAMsY,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;IACA,IAAA,IAAI,CAACQ,OAAO,CAACG,QAAT,IAAqBH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAArD,EAAwD,OAAA;;QACxD,IAAI,CAAC6wB,KAAK,CAAClJ,SAAP,IAAoB,CAACkJ,KAAK,CAACjJ,OAA/B,EAAwC;UACtCiJ,KAAK,CAAClJ,SAAN,GAAkB,KAAlB,CAAA;UACAkJ,KAAK,CAACjJ,OAAN,GAAgB,KAAhB,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;QACDiJ,KAAK,CAAClJ,SAAN,GAAkB,KAAlB,CAAA;QACAkJ,KAAK,CAACjJ,OAAN,GAAgB,KAAhB,CAAA;QACA,IAAIke,iBAAiB,GAAG,GAAxB,CAAA;QACA,IAAIC,iBAAiB,GAAG,GAAxB,CAAA;IACA,IAAA,MAAMC,iBAAiB,GAAG5S,QAAQ,CAACzR,CAAT,GAAamkB,iBAAvC,CAAA;IACA,IAAA,MAAMG,YAAY,GAAGpV,KAAK,CAACvI,QAAN,GAAiB0d,iBAAtC,CAAA;IACA,IAAA,MAAME,iBAAiB,GAAG9S,QAAQ,CAACxR,CAAT,GAAamkB,iBAAvC,CAAA;QACA,MAAMI,YAAY,GAAGtV,KAAK,CAACpI,QAAN,GAAiByd,iBAAtC,CAfoB;;QAkBpB,IAAI9S,QAAQ,CAACzR,CAAT,KAAe,CAAnB,EACEmkB,iBAAiB,GAAGv0B,IAAI,CAACwK,GAAL,CAAS,CAACkqB,YAAY,GAAGpV,KAAK,CAACvI,QAAtB,IAAkC8K,QAAQ,CAACzR,CAApD,CAApB,CAAA;QACF,IAAIyR,QAAQ,CAACxR,CAAT,KAAe,CAAnB,EACEmkB,iBAAiB,GAAGx0B,IAAI,CAACwK,GAAL,CAAS,CAACoqB,YAAY,GAAGtV,KAAK,CAACpI,QAAtB,IAAkC2K,QAAQ,CAACxR,CAApD,CAApB,CAAA;QACF,MAAMwkB,gBAAgB,GAAG70B,IAAI,CAACC,GAAL,CAASs0B,iBAAT,EAA4BC,iBAA5B,CAAzB,CAAA;QAEAlV,KAAK,CAACvI,QAAN,GAAiB2d,YAAjB,CAAA;IACApV,IAAAA,KAAK,CAACpI,QAAN,GAAiB0d,YAAjB,CAzBoB;;QA4BpB,MAAMP,WAAW,GAAG/U,KAAK,CAACxd,KAAN,GAAcswB,IAAI,CAAChD,KAAvC,CAAA;QACA,MAAMkF,YAAY,GAAGhV,KAAK,CAACtd,MAAN,GAAeowB,IAAI,CAAChD,KAAzC,CAAA;IACA9P,IAAAA,KAAK,CAAC2T,IAAN,GAAajzB,IAAI,CAACE,GAAL,CAAS0yB,OAAO,CAACC,UAAR,GAAqB,CAArB,GAAyBwB,WAAW,GAAG,CAAhD,EAAmD,CAAnD,CAAb,CAAA;IACA/U,IAAAA,KAAK,CAAC6T,IAAN,GAAa,CAAC7T,KAAK,CAAC2T,IAApB,CAAA;IACA3T,IAAAA,KAAK,CAAC4T,IAAN,GAAalzB,IAAI,CAACE,GAAL,CAAS0yB,OAAO,CAACE,WAAR,GAAsB,CAAtB,GAA0BwB,YAAY,GAAG,CAAlD,EAAqD,CAArD,CAAb,CAAA;IACAhV,IAAAA,KAAK,CAAC8T,IAAN,GAAa,CAAC9T,KAAK,CAAC4T,IAApB,CAAA;QACA5T,KAAK,CAACvI,QAAN,GAAiB/W,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASof,KAAK,CAACvI,QAAf,EAAyBuI,KAAK,CAAC6T,IAA/B,CAAT,EAA+C7T,KAAK,CAAC2T,IAArD,CAAjB,CAAA;QACA3T,KAAK,CAACpI,QAAN,GAAiBlX,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASof,KAAK,CAACpI,QAAf,EAAyBoI,KAAK,CAAC8T,IAA/B,CAAT,EAA+C9T,KAAK,CAAC4T,IAArD,CAAjB,CAAA;IAEAN,IAAAA,OAAO,CAACI,YAAR,CACGl9B,UADH,CACc++B,gBADd,CAEGh/B,CAAAA,SAFH,CAEc,CAAA,YAAA,EAAcypB,KAAK,CAACvI,QAAS,OAAMuI,KAAK,CAACpI,QAAS,CAFhE,KAAA,CAAA,CAAA,CAAA;IAGD,GAAA;;IACD,EAAA,SAAS4d,eAAT,GAA2B;IACzB,IAAA,MAAM1C,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;;QACA,IAAIQ,OAAO,CAACjO,QAAR,IAAoB7lB,MAAM,CAACsQ,aAAP,KAAyBtQ,MAAM,CAAC6N,WAAxD,EAAqE;UACnE,IAAIimB,OAAO,CAACG,QAAZ,EAAsB;IACpBH,QAAAA,OAAO,CAACG,QAAR,CAAiBl9B,SAAjB,CAA2B,6BAA3B,CAAA,CAAA;IACD,OAAA;;UACD,IAAI+8B,OAAO,CAACI,YAAZ,EAA0B;IACxBJ,QAAAA,OAAO,CAACI,YAAR,CAAqBn9B,SAArB,CAA+B,oBAA/B,CAAA,CAAA;IACD,OAAA;;UAEDu8B,IAAI,CAAChD,KAAL,GAAa,CAAb,CAAA;IACA0C,MAAAA,YAAY,GAAG,CAAf,CAAA;UAEAc,OAAO,CAACjO,QAAR,GAAmBlvB,SAAnB,CAAA;UACAm9B,OAAO,CAACG,QAAR,GAAmBt9B,SAAnB,CAAA;UACAm9B,OAAO,CAACI,YAAR,GAAuBv9B,SAAvB,CAAA;IACD,KAAA;IACF,GAAA;;MAED,SAASs/B,MAAT,CAAgBv+B,CAAhB,EAAmB;IACjB,IAAA,MAAM47B,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;IACA,IAAA,MAAM/yB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc+yB,IAA7B,CAAA;;IAEA,IAAA,IAAI,CAACQ,OAAO,CAACjO,QAAb,EAAuB;IACrB,MAAA,IAAInuB,CAAC,IAAIA,CAAC,CAACpI,MAAX,EAAmB;IACjBwkC,QAAAA,OAAO,CAACjO,QAAR,GAAmB7wB,CAAC,CAAC0C,CAAC,CAACpI,MAAH,CAAD,CAAYsN,OAAZ,CAAqB,IAAGoD,MAAM,CAACO,MAAP,CAAc2I,UAAW,EAAjD,CAAnB,CAAA;IACD,OAAA;;IACD,MAAA,IAAI,CAAC4qB,OAAO,CAACjO,QAAb,EAAuB;IACrB,QAAA,IAAI7lB,MAAM,CAACO,MAAP,CAAcuI,OAAd,IAAyB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA/C,IAA0D/I,MAAM,CAAC8I,OAArE,EAA8E;IAC5EgrB,UAAAA,OAAO,CAACjO,QAAR,GAAmB7lB,MAAM,CAAC2G,UAAP,CAAkBlW,QAAlB,CAA4B,CAAA,CAAA,EAAGuP,MAAM,CAACO,MAAP,CAAciP,gBAAiB,EAA9D,CAAnB,CAAA;IACD,SAFD,MAEO;IACLskB,UAAAA,OAAO,CAACjO,QAAR,GAAmB7lB,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAnB,CAAA;IACD,SAAA;IACF,OAAA;;UAEDimB,OAAO,CAACG,QAAR,GAAmBH,OAAO,CAACjO,QAAR,CAChBhpB,IADgB,CACV,CAAG0D,CAAAA,EAAAA,MAAM,CAACizB,cAAe,EADf,CAEhB/3B,CAAAA,EAFgB,CAEb,CAFa,CAGhBoB,CAAAA,IAHgB,CAGX,gDAHW,CAIhBpB,CAAAA,EAJgB,CAIb,CAJa,CAAnB,CAAA;IAKAq4B,MAAAA,OAAO,CAACI,YAAR,GAAuBJ,OAAO,CAACG,QAAR,CAAiBv3B,MAAjB,CAAyB,CAAG6D,CAAAA,EAAAA,MAAM,CAACizB,cAAe,EAAlD,CAAvB,CAAA;IACD,KAAA;;QACD,IACE,CAACM,OAAO,CAACG,QAAT,IACAH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAD5B,IAEA,CAACmkC,OAAO,CAACI,YAFT,IAGAJ,OAAO,CAACI,YAAR,CAAqBvkC,MAArB,KAAgC,CAJlC,EAME,OAAA;;IACF,IAAA,IAAIqQ,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzBtK,MAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+Q,QAAvB,GAAkC,QAAlC,CAAA;IACA1B,MAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuBulC,WAAvB,GAAqC,MAArC,CAAA;IACD,KAAA;;QAEDpC,OAAO,CAACjO,QAAR,CAAiBrwB,QAAjB,CAA2B,CAAE+K,EAAAA,MAAM,CAACkzB,gBAAiB,CAArD,CAAA,CAAA,CAAA;IAEA,IAAA,IAAI0C,MAAJ,CAAA;IACA,IAAA,IAAIC,MAAJ,CAAA;IACA,IAAA,IAAIC,OAAJ,CAAA;IACA,IAAA,IAAIC,OAAJ,CAAA;IACA,IAAA,IAAItc,KAAJ,CAAA;IACA,IAAA,IAAIC,KAAJ,CAAA;IACA,IAAA,IAAIsc,UAAJ,CAAA;IACA,IAAA,IAAIC,UAAJ,CAAA;IACA,IAAA,IAAIC,UAAJ,CAAA;IACA,IAAA,IAAIC,WAAJ,CAAA;IACA,IAAA,IAAInB,WAAJ,CAAA;IACA,IAAA,IAAIC,YAAJ,CAAA;IACA,IAAA,IAAImB,aAAJ,CAAA;IACA,IAAA,IAAIC,aAAJ,CAAA;IACA,IAAA,IAAIC,aAAJ,CAAA;IACA,IAAA,IAAIC,aAAJ,CAAA;IACA,IAAA,IAAI/C,UAAJ,CAAA;IACA,IAAA,IAAIC,WAAJ,CAAA;;QAEA,IAAI,OAAOxT,KAAK,CAAC+T,YAAN,CAAmBjjB,CAA1B,KAAgC,WAAhC,IAA+C5Z,CAAnD,EAAsD;IACpDy+B,MAAAA,MAAM,GAAGz+B,CAAC,CAACyf,IAAF,KAAW,UAAX,GAAwBzf,CAAC,CAACmiB,cAAF,CAAiB,CAAjB,CAAA,CAAoB1B,KAA5C,GAAoDzgB,CAAC,CAACygB,KAA/D,CAAA;IACAie,MAAAA,MAAM,GAAG1+B,CAAC,CAACyf,IAAF,KAAW,UAAX,GAAwBzf,CAAC,CAACmiB,cAAF,CAAiB,CAAjB,CAAA,CAAoBxB,KAA5C,GAAoD3gB,CAAC,CAAC2gB,KAA/D,CAAA;IACD,KAHD,MAGO;IACL8d,MAAAA,MAAM,GAAG3V,KAAK,CAAC+T,YAAN,CAAmBjjB,CAA5B,CAAA;IACA8kB,MAAAA,MAAM,GAAG5V,KAAK,CAAC+T,YAAN,CAAmBhjB,CAA5B,CAAA;IACD,KAAA;;IAED+hB,IAAAA,IAAI,CAAChD,KAAL,GAAawD,OAAO,CAACI,YAAR,CAAqB39B,IAArB,CAA0B,kBAA1B,CAAiDgK,IAAAA,MAAM,CAACgzB,QAArE,CAAA;QACAP,YAAY,GAAGc,OAAO,CAACI,YAAR,CAAqB39B,IAArB,CAA0B,kBAA1B,CAAA,IAAiDgK,MAAM,CAACgzB,QAAvE,CAAA;;IACA,IAAA,IAAI77B,CAAJ,EAAO;IACLq8B,MAAAA,UAAU,GAAGD,OAAO,CAACjO,QAAR,CAAiB,CAAjB,EAAoBjsB,WAAjC,CAAA;IACAo6B,MAAAA,WAAW,GAAGF,OAAO,CAACjO,QAAR,CAAiB,CAAjB,EAAoB9rB,YAAlC,CAAA;UACAs8B,OAAO,GAAGvC,OAAO,CAACjO,QAAR,CAAiB7rB,MAAjB,EAAA,CAA0BU,IAA1B,GAAiCvH,MAAM,CAACqH,OAAlD,CAAA;UACA87B,OAAO,GAAGxC,OAAO,CAACjO,QAAR,CAAiB7rB,MAAjB,EAAA,CAA0BS,GAA1B,GAAgCtH,MAAM,CAACmH,OAAjD,CAAA;IACA0f,MAAAA,KAAK,GAAGqc,OAAO,GAAGtC,UAAU,GAAG,CAAvB,GAA2BoC,MAAnC,CAAA;IACAlc,MAAAA,KAAK,GAAGqc,OAAO,GAAGtC,WAAW,GAAG,CAAxB,GAA4BoC,MAApC,CAAA;IAEAK,MAAAA,UAAU,GAAG3C,OAAO,CAACG,QAAR,CAAiB,CAAjB,EAAoBr6B,WAAjC,CAAA;IACA88B,MAAAA,WAAW,GAAG5C,OAAO,CAACG,QAAR,CAAiB,CAAjB,EAAoBl6B,YAAlC,CAAA;IACAw7B,MAAAA,WAAW,GAAGkB,UAAU,GAAGnD,IAAI,CAAChD,KAAhC,CAAA;IACAkF,MAAAA,YAAY,GAAGkB,WAAW,GAAGpD,IAAI,CAAChD,KAAlC,CAAA;IAEAqG,MAAAA,aAAa,GAAGz1B,IAAI,CAACE,GAAL,CAAS2yB,UAAU,GAAG,CAAb,GAAiBwB,WAAW,GAAG,CAAxC,EAA2C,CAA3C,CAAhB,CAAA;IACAqB,MAAAA,aAAa,GAAG11B,IAAI,CAACE,GAAL,CAAS4yB,WAAW,GAAG,CAAd,GAAkBwB,YAAY,GAAG,CAA1C,EAA6C,CAA7C,CAAhB,CAAA;UACAqB,aAAa,GAAG,CAACF,aAAjB,CAAA;UACAG,aAAa,GAAG,CAACF,aAAjB,CAAA;IAEAL,MAAAA,UAAU,GAAGvc,KAAK,GAAGsZ,IAAI,CAAChD,KAA1B,CAAA;IACAkG,MAAAA,UAAU,GAAGvc,KAAK,GAAGqZ,IAAI,CAAChD,KAA1B,CAAA;;UAEA,IAAIiG,UAAU,GAAGI,aAAjB,EAAgC;IAC9BJ,QAAAA,UAAU,GAAGI,aAAb,CAAA;IACD,OAAA;;UACD,IAAIJ,UAAU,GAAGM,aAAjB,EAAgC;IAC9BN,QAAAA,UAAU,GAAGM,aAAb,CAAA;IACD,OAAA;;UAED,IAAIL,UAAU,GAAGI,aAAjB,EAAgC;IAC9BJ,QAAAA,UAAU,GAAGI,aAAb,CAAA;IACD,OAAA;;UACD,IAAIJ,UAAU,GAAGM,aAAjB,EAAgC;IAC9BN,QAAAA,UAAU,GAAGM,aAAb,CAAA;IACD,OAAA;IACF,KAlCD,MAkCO;IACLP,MAAAA,UAAU,GAAG,CAAb,CAAA;IACAC,MAAAA,UAAU,GAAG,CAAb,CAAA;IACD,KAAA;;IACD1C,IAAAA,OAAO,CAACI,YAAR,CACGl9B,UADH,CACc,GADd,CAEGD,CAAAA,SAFH,CAEc,CAAA,YAAA,EAAcw/B,UAAW,CAAA,IAAA,EAAMC,UAAW,CAFxD,KAAA,CAAA,CAAA,CAAA;IAGA1C,IAAAA,OAAO,CAACG,QAAR,CAAiBj9B,UAAjB,CAA4B,GAA5B,CAAiCD,CAAAA,SAAjC,CAA4C,CAAA,yBAAA,EAA2Bu8B,IAAI,CAAChD,KAAM,CAAlF,CAAA,CAAA,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASyG,OAAT,GAAmB;IACjB,IAAA,MAAMzD,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;IACA,IAAA,MAAM/yB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc+yB,IAA7B,CAAA;;IAEA,IAAA,IAAI,CAACQ,OAAO,CAACjO,QAAb,EAAuB;IACrB,MAAA,IAAI7lB,MAAM,CAACO,MAAP,CAAcuI,OAAd,IAAyB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA/C,IAA0D/I,MAAM,CAAC8I,OAArE,EAA8E;IAC5EgrB,QAAAA,OAAO,CAACjO,QAAR,GAAmB7lB,MAAM,CAAC2G,UAAP,CAAkBlW,QAAlB,CAA4B,CAAA,CAAA,EAAGuP,MAAM,CAACO,MAAP,CAAciP,gBAAiB,EAA9D,CAAnB,CAAA;IACD,OAFD,MAEO;IACLskB,QAAAA,OAAO,CAACjO,QAAR,GAAmB7lB,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAnB,CAAA;IACD,OAAA;;UACDimB,OAAO,CAACG,QAAR,GAAmBH,OAAO,CAACjO,QAAR,CAChBhpB,IADgB,CACV,CAAG0D,CAAAA,EAAAA,MAAM,CAACizB,cAAe,EADf,CAEhB/3B,CAAAA,EAFgB,CAEb,CAFa,CAGhBoB,CAAAA,IAHgB,CAGX,gDAHW,CAIhBpB,CAAAA,EAJgB,CAIb,CAJa,CAAnB,CAAA;IAKAq4B,MAAAA,OAAO,CAACI,YAAR,GAAuBJ,OAAO,CAACG,QAAR,CAAiBv3B,MAAjB,CAAyB,CAAG6D,CAAAA,EAAAA,MAAM,CAACizB,cAAe,EAAlD,CAAvB,CAAA;IACD,KAAA;;QACD,IACE,CAACM,OAAO,CAACG,QAAT,IACAH,OAAO,CAACG,QAAR,CAAiBtkC,MAAjB,KAA4B,CAD5B,IAEA,CAACmkC,OAAO,CAACI,YAFT,IAGAJ,OAAO,CAACI,YAAR,CAAqBvkC,MAArB,KAAgC,CAJlC,EAME,OAAA;;IACF,IAAA,IAAIqQ,MAAM,CAACO,MAAP,CAAc+J,OAAlB,EAA2B;IACzBtK,MAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuB+Q,QAAvB,GAAkC,EAAlC,CAAA;IACA1B,MAAAA,MAAM,CAACS,SAAP,CAAiB9P,KAAjB,CAAuBulC,WAAvB,GAAqC,EAArC,CAAA;IACD,KAAA;;QACD5C,IAAI,CAAChD,KAAL,GAAa,CAAb,CAAA;IACA0C,IAAAA,YAAY,GAAG,CAAf,CAAA;QACAc,OAAO,CAACI,YAAR,CAAqBl9B,UAArB,CAAgC,GAAhC,CAAA,CAAqCD,SAArC,CAA+C,oBAA/C,CAAA,CAAA;QACA+8B,OAAO,CAACG,QAAR,CAAiBj9B,UAAjB,CAA4B,GAA5B,CAAA,CAAiCD,SAAjC,CAA2C,6BAA3C,CAAA,CAAA;QACA+8B,OAAO,CAACjO,QAAR,CAAiB7vB,WAAjB,CAA8B,CAAEuK,EAAAA,MAAM,CAACkzB,gBAAiB,CAAxD,CAAA,CAAA,CAAA;QACAK,OAAO,CAACjO,QAAR,GAAmBlvB,SAAnB,CAAA;IACD,GAtd8D;;;MAyd/D,SAASqgC,UAAT,CAAoBt/B,CAApB,EAAuB;IACrB,IAAA,MAAM47B,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;;QAEA,IAAIA,IAAI,CAAChD,KAAL,IAAcgD,IAAI,CAAChD,KAAL,KAAe,CAAjC,EAAoC;IAClC;UACAyG,OAAO,EAAA,CAAA;IACR,KAHD,MAGO;IACL;UACAd,MAAM,CAACv+B,CAAD,CAAN,CAAA;IACD,KAAA;IACF,GAAA;;IAED,EAAA,SAASu/B,YAAT,GAAwB;IACtB,IAAA,MAAMt1B,OAAO,GAAG3B,MAAM,CAAC2B,OAAvB,CAAA;IACA,IAAA,MAAMM,eAAe,GACnBjC,MAAM,CAACid,WAAP,CAAmBG,KAAnB,KAA6B,YAA7B,IACAzb,OAAO,CAACM,eADR,IAEAjC,MAAM,CAACO,MAAP,CAAcgd,gBAFd,GAGI;IAAEC,MAAAA,OAAO,EAAE,IAAX;IAAiBhmB,MAAAA,OAAO,EAAE,KAAA;IAA1B,KAHJ,GAII,KALN,CAAA;IAMA,IAAA,MAAM0/B,yBAAyB,GAAGv1B,OAAO,CAACM,eAAR,GAC9B;IAAEub,MAAAA,OAAO,EAAE,KAAX;IAAkBhmB,MAAAA,OAAO,EAAE,IAAA;IAA3B,KAD8B,GAE9B,IAFJ,CAAA;QAGA,OAAO;UAAEyK,eAAF;IAAmBi1B,MAAAA,yBAAAA;SAA1B,CAAA;IACD,GAAA;;IAED,EAAA,SAASC,gBAAT,GAA4B;IAC1B,IAAA,OAAQ,IAAGn3B,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAApC,CAAA,CAAA;IACD,GAAA;;MAED,SAASkuB,cAAT,CAAwBnwB,MAAxB,EAAgC;QAC9B,MAAM;IAAEhF,MAAAA,eAAAA;IAAF,KAAA,GAAsBg1B,YAAY,EAAxC,CAAA;QACA,MAAMI,aAAa,GAAGF,gBAAgB,EAAtC,CAAA;QACAn3B,MAAM,CAAC2G,UAAP,CAAkBM,MAAlB,CAAA,CAA0B,cAA1B,EAA0CowB,aAA1C,EAAyDnC,cAAzD,EAAyEjzB,eAAzE,CAAA,CAAA;QACAjC,MAAM,CAAC2G,UAAP,CAAkBM,MAAlB,CAAA,CAA0B,eAA1B,EAA2CowB,aAA3C,EAA0DjC,eAA1D,EAA2EnzB,eAA3E,CAAA,CAAA;QACAjC,MAAM,CAAC2G,UAAP,CAAkBM,MAAlB,CAAA,CAA0B,YAA1B,EAAwCowB,aAAxC,EAAuD/B,YAAvD,EAAqErzB,eAArE,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASq1B,cAAT,GAA0B;IACxB,IAAA,IAAI3D,eAAJ,EAAqB,OAAA;IACrBA,IAAAA,eAAe,GAAG,IAAlB,CAAA;QACAyD,cAAc,CAAC,IAAD,CAAd,CAAA;IACD,GAAA;;IACD,EAAA,SAASG,eAAT,GAA2B;QACzB,IAAI,CAAC5D,eAAL,EAAsB,OAAA;IACtBA,IAAAA,eAAe,GAAG,KAAlB,CAAA;QACAyD,cAAc,CAAC,KAAD,CAAd,CAAA;IACD,GAvgB8D;;;IA0gB/D,EAAA,SAAStY,MAAT,GAAkB;IAChB,IAAA,MAAMwU,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;QACA,IAAIA,IAAI,CAACvqB,OAAT,EAAkB,OAAA;QAClBuqB,IAAI,CAACvqB,OAAL,GAAe,IAAf,CAAA;IACA,IAAA,MAAMpH,OAAO,GAAG3B,MAAM,CAAC2B,OAAvB,CAAA;QACA,MAAM;UAAEM,eAAF;IAAmBi1B,MAAAA,yBAAAA;IAAnB,KAAA,GAAiDD,YAAY,EAAnE,CAAA;IACA,IAAA,MAAMI,aAAa,GAAGF,gBAAgB,EAAtC,CANgB;;QAShB,IAAIx1B,OAAO,CAACU,QAAZ,EAAsB;IACpBrC,MAAAA,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CAAqB6I,MAAM,CAACid,WAAP,CAAmBG,KAAxC,EAA+Cka,cAA/C,EAA+Dr1B,eAA/D,CAAA,CAAA;IACAjC,MAAAA,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CAAqB6I,MAAM,CAACid,WAAP,CAAmBK,GAAxC,EAA6Cia,eAA7C,EAA8Dt1B,eAA9D,CAAA,CAAA;SAFF,MAGO,IAAIjC,MAAM,CAACid,WAAP,CAAmBG,KAAnB,KAA6B,YAAjC,EAA+C;IACpDpd,MAAAA,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CACE6I,MAAM,CAACid,WAAP,CAAmBG,KADrB,EAEEia,aAFF,EAGEnC,cAHF,EAIEjzB,eAJF,CAAA,CAAA;IAMAjC,MAAAA,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CACE6I,MAAM,CAACid,WAAP,CAAmBI,IADrB,EAEEga,aAFF,EAGEjC,eAHF,EAIE8B,yBAJF,CAAA,CAAA;IAMAl3B,MAAAA,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CAAqB6I,MAAM,CAACid,WAAP,CAAmBK,GAAxC,EAA6C+Z,aAA7C,EAA4D/B,YAA5D,EAA0ErzB,eAA1E,CAAA,CAAA;;IACA,MAAA,IAAIjC,MAAM,CAACid,WAAP,CAAmBQ,MAAvB,EAA+B;IAC7Bzd,QAAAA,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CACE6I,MAAM,CAACid,WAAP,CAAmBQ,MADrB,EAEE4Z,aAFF,EAGE/B,YAHF,EAIErzB,eAJF,CAAA,CAAA;IAMD,OAAA;IACF,KAlCe;;;QAqChBjC,MAAM,CAAC2G,UAAP,CAAkBxP,EAAlB,CACE6I,MAAM,CAACid,WAAP,CAAmBI,IADrB,EAEG,IAAGrd,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBE,cAAe,CAFxC,CAAA,EAGE7Z,WAHF,EAIEud,yBAJF,CAAA,CAAA;IAMD,GAAA;;IACD,EAAA,SAASrY,OAAT,GAAmB;IACjB,IAAA,MAAMyU,IAAI,GAAGtzB,MAAM,CAACszB,IAApB,CAAA;IACA,IAAA,IAAI,CAACA,IAAI,CAACvqB,OAAV,EAAmB,OAAA;IACnB,IAAA,MAAMpH,OAAO,GAAG3B,MAAM,CAAC2B,OAAvB,CAAA;QACA2xB,IAAI,CAACvqB,OAAL,GAAe,KAAf,CAAA;QAEA,MAAM;UAAE9G,eAAF;IAAmBi1B,MAAAA,yBAAAA;IAAnB,KAAA,GAAiDD,YAAY,EAAnE,CAAA;IACA,IAAA,MAAMI,aAAa,GAAGF,gBAAgB,EAAtC,CAPiB;;QAUjB,IAAIx1B,OAAO,CAACU,QAAZ,EAAsB;IACpBrC,MAAAA,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CAAsBuH,MAAM,CAACid,WAAP,CAAmBG,KAAzC,EAAgDka,cAAhD,EAAgEr1B,eAAhE,CAAA,CAAA;IACAjC,MAAAA,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CAAsBuH,MAAM,CAACid,WAAP,CAAmBK,GAAzC,EAA8Cia,eAA9C,EAA+Dt1B,eAA/D,CAAA,CAAA;SAFF,MAGO,IAAIjC,MAAM,CAACid,WAAP,CAAmBG,KAAnB,KAA6B,YAAjC,EAA+C;IACpDpd,MAAAA,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CACEuH,MAAM,CAACid,WAAP,CAAmBG,KADrB,EAEEia,aAFF,EAGEnC,cAHF,EAIEjzB,eAJF,CAAA,CAAA;IAMAjC,MAAAA,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CACEuH,MAAM,CAACid,WAAP,CAAmBI,IADrB,EAEEga,aAFF,EAGEjC,eAHF,EAIE8B,yBAJF,CAAA,CAAA;IAMAl3B,MAAAA,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CAAsBuH,MAAM,CAACid,WAAP,CAAmBK,GAAzC,EAA8C+Z,aAA9C,EAA6D/B,YAA7D,EAA2ErzB,eAA3E,CAAA,CAAA;;IACA,MAAA,IAAIjC,MAAM,CAACid,WAAP,CAAmBQ,MAAvB,EAA+B;IAC7Bzd,QAAAA,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CACEuH,MAAM,CAACid,WAAP,CAAmBQ,MADrB,EAEE4Z,aAFF,EAGE/B,YAHF,EAIErzB,eAJF,CAAA,CAAA;IAMD,OAAA;IACF,KAnCgB;;;QAsCjBjC,MAAM,CAAC2G,UAAP,CAAkBlO,GAAlB,CACEuH,MAAM,CAACid,WAAP,CAAmBI,IADrB,EAEG,IAAGrd,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBE,cAAe,CAFxC,CAAA,EAGE7Z,WAHF,EAIEud,yBAJF,CAAA,CAAA;IAMD,GAAA;;MAED//B,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBvqB,OAAvB,EAAgC;UAC9B+V,MAAM,EAAA,CAAA;IACP,KAAA;IACF,GAJC,CAAF,CAAA;MAKA3nB,EAAE,CAAC,SAAD,EAAY,MAAM;QAClB0nB,OAAO,EAAA,CAAA;IACR,GAFC,CAAF,CAAA;IAGA1nB,EAAAA,EAAE,CAAC,YAAD,EAAe,CAACk2B,EAAD,EAAK31B,CAAL,KAAW;IAC1B,IAAA,IAAI,CAACsI,MAAM,CAACszB,IAAP,CAAYvqB,OAAjB,EAA0B,OAAA;QAC1B8N,YAAY,CAACnf,CAAD,CAAZ,CAAA;IACD,GAHC,CAAF,CAAA;IAIAP,EAAAA,EAAE,CAAC,UAAD,EAAa,CAACk2B,EAAD,EAAK31B,CAAL,KAAW;IACxB,IAAA,IAAI,CAACsI,MAAM,CAACszB,IAAP,CAAYvqB,OAAjB,EAA0B,OAAA;QAC1BiS,UAAU,CAAA,CAAV,CAAA;IACD,GAHC,CAAF,CAAA;IAIA7jB,EAAAA,EAAE,CAAC,WAAD,EAAc,CAACk2B,EAAD,EAAK31B,CAAL,KAAW;QACzB,IACE,CAACsI,MAAM,CAAC+R,SAAR,IACA/R,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBvqB,OADnB,IAEA/I,MAAM,CAACszB,IAAP,CAAYvqB,OAFZ,IAGA/I,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBl9B,MAJrB,EAKE;UACA4gC,UAAU,CAACt/B,CAAD,CAAV,CAAA;IACD,KAAA;IACF,GATC,CAAF,CAAA;MAUAP,EAAE,CAAC,eAAD,EAAkB,MAAM;IACxB,IAAA,IAAI6I,MAAM,CAACszB,IAAP,CAAYvqB,OAAZ,IAAuB/I,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBvqB,OAA9C,EAAuD;UACrDitB,eAAe,EAAA,CAAA;IAChB,KAAA;IACF,GAJC,CAAF,CAAA;MAKA7+B,EAAE,CAAC,aAAD,EAAgB,MAAM;IACtB,IAAA,IAAI6I,MAAM,CAACszB,IAAP,CAAYvqB,OAAZ,IAAuB/I,MAAM,CAACO,MAAP,CAAc+yB,IAAd,CAAmBvqB,OAA1C,IAAqD/I,MAAM,CAACO,MAAP,CAAc+J,OAAvE,EAAgF;UAC9E0rB,eAAe,EAAA,CAAA;IAChB,KAAA;IACF,GAJC,CAAF,CAAA;IAMA5mC,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACszB,IAArB,EAA2B;QACzBxU,MADyB;QAEzBD,OAFyB;IAGzB2Y,IAAAA,EAAE,EAAEvB,MAHqB;IAIzBwB,IAAAA,GAAG,EAAEV,OAJoB;IAKzB3gC,IAAAA,MAAM,EAAE4gC,UAAAA;OALV,CAAA,CAAA;IAOD;;ICjpBc,SAASU,IAAT,CAAkD,IAAA,EAAA;MAAA,IAApC;QAAE13B,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;IAC/DqB,EAAAA,YAAY,CAAC;IACX6gB,IAAAA,IAAI,EAAE;IACJoR,MAAAA,WAAW,EAAE,KADT;IAEJ5uB,MAAAA,OAAO,EAAE,KAFL;IAGJ6uB,MAAAA,YAAY,EAAE,KAHV;IAIJC,MAAAA,kBAAkB,EAAE,CAJhB;IAKJC,MAAAA,qBAAqB,EAAE,KALnB;IAMJC,MAAAA,gBAAgB,EAAE,EANd;IAQJC,MAAAA,YAAY,EAAE,aARV;IASJC,MAAAA,YAAY,EAAE,qBATV;IAUJC,MAAAA,WAAW,EAAE,oBAVT;IAWJC,MAAAA,cAAc,EAAE,uBAAA;IAXZ,KAAA;IADK,GAAD,CAAZ,CAAA;MAgBAn4B,MAAM,CAACumB,IAAP,GAAc,EAAd,CAAA;MAEA,IAAI6R,qBAAqB,GAAG,KAA5B,CAAA;MACA,IAAIC,kBAAkB,GAAG,KAAzB,CAAA;;IAEA,EAAA,SAASC,WAAT,CAAqBv9B,KAArB,EAA4Bw9B,eAA5B,EAAoD;IAAA,IAAA,IAAxBA,eAAwB,KAAA,KAAA,CAAA,EAAA;IAAxBA,MAAAA,eAAwB,GAAN,IAAM,CAAA;IAAA,KAAA;;IAClD,IAAA,MAAMh4B,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcgmB,IAA7B,CAAA;IACA,IAAA,IAAI,OAAOxrB,KAAP,KAAiB,WAArB,EAAkC,OAAA;IAClC,IAAA,IAAIiF,MAAM,CAACiJ,MAAP,CAActZ,MAAd,KAAyB,CAA7B,EAAgC,OAAA;IAChC,IAAA,MAAMkZ,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA1D,CAAA;IAEA,IAAA,MAAM8c,QAAQ,GAAGhd,SAAS,GACtB7I,MAAM,CAAC2G,UAAP,CAAkBlW,QAAlB,CACG,CAAGuP,CAAAA,EAAAA,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAA4BnO,0BAAAA,EAAAA,KAAM,CADjE,EAAA,CAAA,CADsB,GAItBiF,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBV,KAAjB,CAJJ,CAAA;IAMA,IAAA,MAAMy9B,OAAO,GAAG3S,QAAQ,CAAChpB,IAAT,CACb,IAAG0D,MAAM,CAACy3B,YAAa,CAAQz3B,MAAAA,EAAAA,MAAM,CAAC23B,WAAY,CAAA,OAAA,EAAS33B,MAAM,CAAC03B,YAAa,GADlE,CAAhB,CAAA;;QAGA,IACEpS,QAAQ,CAACxvB,QAAT,CAAkBkK,MAAM,CAACy3B,YAAzB,CACA,IAAA,CAACnS,QAAQ,CAACxvB,QAAT,CAAkBkK,MAAM,CAAC23B,WAAzB,CADD,IAEA,CAACrS,QAAQ,CAACxvB,QAAT,CAAkBkK,MAAM,CAAC03B,YAAzB,CAHH,EAIE;IACAO,MAAAA,OAAO,CAACrkC,IAAR,CAAa0xB,QAAQ,CAAC,CAAD,CAArB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAI2S,OAAO,CAAC7oC,MAAR,KAAmB,CAAvB,EAA0B,OAAA;IAE1B6oC,IAAAA,OAAO,CAAC19B,IAAR,CAAcslB,OAAD,IAAa;IACxB,MAAA,MAAM6T,QAAQ,GAAGj/B,CAAC,CAACorB,OAAD,CAAlB,CAAA;IACA6T,MAAAA,QAAQ,CAACz+B,QAAT,CAAkB+K,MAAM,CAAC03B,YAAzB,CAAA,CAAA;IAEA,MAAA,MAAMQ,UAAU,GAAGxE,QAAQ,CAAC19B,IAAT,CAAc,iBAAd,CAAnB,CAAA;IACA,MAAA,MAAMhH,GAAG,GAAG0kC,QAAQ,CAAC19B,IAAT,CAAc,UAAd,CAAZ,CAAA;IACA,MAAA,MAAM8pB,MAAM,GAAG4T,QAAQ,CAAC19B,IAAT,CAAc,aAAd,CAAf,CAAA;IACA,MAAA,MAAM+pB,KAAK,GAAG2T,QAAQ,CAAC19B,IAAT,CAAc,YAAd,CAAd,CAAA;IACA,MAAA,MAAMmiC,UAAU,GAAGzE,QAAQ,CAACv3B,MAAT,CAAgB,SAAhB,CAAnB,CAAA;IAEAsD,MAAAA,MAAM,CAACmgB,SAAP,CAAiB8T,QAAQ,CAAC,CAAD,CAAzB,EAA8B1kC,GAAG,IAAIkpC,UAArC,EAAiDpY,MAAjD,EAAyDC,KAAzD,EAAgE,KAAhE,EAAuE,MAAM;YAC3E,IACE,OAAOtgB,MAAP,KAAkB,WAAlB,IACAA,MAAM,KAAK,IADX,IAEA,CAACA,MAFD,IAGCA,MAAM,IAAI,CAACA,MAAM,CAACO,MAHnB,IAIAP,MAAM,CAACyE,SALT,EAOE,OAAA;;IACF,QAAA,IAAIg0B,UAAJ,EAAgB;IACdxE,UAAAA,QAAQ,CAACt5B,GAAT,CAAa,kBAAb,EAAkC,CAAA,KAAA,EAAO89B,UAAW,CAApD,EAAA,CAAA,CAAA,CAAA;cACAxE,QAAQ,CAACp9B,UAAT,CAAoB,iBAApB,CAAA,CAAA;IACD,SAHD,MAGO;IACL,UAAA,IAAIwpB,MAAJ,EAAY;IACV4T,YAAAA,QAAQ,CAAC19B,IAAT,CAAc,QAAd,EAAwB8pB,MAAxB,CAAA,CAAA;gBACA4T,QAAQ,CAACp9B,UAAT,CAAoB,aAApB,CAAA,CAAA;IACD,WAAA;;IACD,UAAA,IAAIypB,KAAJ,EAAW;IACT2T,YAAAA,QAAQ,CAAC19B,IAAT,CAAc,OAAd,EAAuB+pB,KAAvB,CAAA,CAAA;gBACA2T,QAAQ,CAACp9B,UAAT,CAAoB,YAApB,CAAA,CAAA;IACD,WAAA;;cACD,IAAI6hC,UAAU,CAAC/oC,MAAf,EAAuB;gBACrB+oC,UAAU,CAACjoC,QAAX,CAAoB,QAApB,EAA8BqK,IAA9B,CAAoC69B,QAAD,IAAc;IAC/C,cAAA,MAAMC,OAAO,GAAG5jC,CAAC,CAAC2jC,QAAD,CAAjB,CAAA;;IAEA,cAAA,IAAIC,OAAO,CAACriC,IAAR,CAAa,aAAb,CAAJ,EAAiC;oBAC/BqiC,OAAO,CAACriC,IAAR,CAAa,QAAb,EAAuBqiC,OAAO,CAACriC,IAAR,CAAa,aAAb,CAAvB,CAAA,CAAA;oBACAqiC,OAAO,CAAC/hC,UAAR,CAAmB,aAAnB,CAAA,CAAA;IACD,eAAA;iBANH,CAAA,CAAA;IAQD,WAAA;;IACD,UAAA,IAAItH,GAAJ,EAAS;IACP0kC,YAAAA,QAAQ,CAAC19B,IAAT,CAAc,KAAd,EAAqBhH,GAArB,CAAA,CAAA;gBACA0kC,QAAQ,CAACp9B,UAAT,CAAoB,UAApB,CAAA,CAAA;IACD,WAAA;IACF,SAAA;;YAEDo9B,QAAQ,CAACz+B,QAAT,CAAkB+K,MAAM,CAAC23B,WAAzB,CAAA,CAAsCliC,WAAtC,CAAkDuK,MAAM,CAAC03B,YAAzD,CAAA,CAAA;YACApS,QAAQ,CAAChpB,IAAT,CAAe,CAAA,CAAA,EAAG0D,MAAM,CAAC43B,cAAe,CAAxC,CAAA,CAAA,CAA2CliC,MAA3C,EAAA,CAAA;;IACA,QAAA,IAAI+J,MAAM,CAACO,MAAP,CAAcwP,IAAd,IAAsBwoB,eAA1B,EAA2C;IACzC,UAAA,MAAMM,kBAAkB,GAAGhT,QAAQ,CAACtvB,IAAT,CAAc,yBAAd,CAA3B,CAAA;;cACA,IAAIsvB,QAAQ,CAACxvB,QAAT,CAAkB2J,MAAM,CAACO,MAAP,CAAcyP,mBAAhC,CAAJ,EAA0D;IACxD,YAAA,MAAM8oB,aAAa,GAAG94B,MAAM,CAAC2G,UAAP,CAAkBlW,QAAlB,CACnB,CAA4BooC,0BAAAA,EAAAA,kBAAmB,WAAU74B,MAAM,CAACO,MAAP,CAAcyP,mBAAoB,GADxE,CAAtB,CAAA;IAGAsoB,YAAAA,WAAW,CAACQ,aAAa,CAAC/9B,KAAd,EAAD,EAAwB,KAAxB,CAAX,CAAA;IACD,WALD,MAKO;IACL,YAAA,MAAMg+B,eAAe,GAAG/4B,MAAM,CAAC2G,UAAP,CAAkBlW,QAAlB,CACrB,CAAGuP,CAAAA,EAAAA,MAAM,CAACO,MAAP,CAAcyP,mBAAoB,CAA4B6oB,0BAAAA,EAAAA,kBAAmB,IAD/D,CAAxB,CAAA;IAGAP,YAAAA,WAAW,CAACS,eAAe,CAACh+B,KAAhB,EAAD,EAA0B,KAA1B,CAAX,CAAA;IACD,WAAA;IACF,SAAA;;IACDsJ,QAAAA,IAAI,CAAC,gBAAD,EAAmBwhB,QAAQ,CAAC,CAAD,CAA3B,EAAgCoO,QAAQ,CAAC,CAAD,CAAxC,CAAJ,CAAA;;IACA,QAAA,IAAIj0B,MAAM,CAACO,MAAP,CAAc8O,UAAlB,EAA8B;IAC5BrP,UAAAA,MAAM,CAACuN,gBAAP,EAAA,CAAA;IACD,SAAA;WAxDH,CAAA,CAAA;IA2DAlJ,MAAAA,IAAI,CAAC,eAAD,EAAkBwhB,QAAQ,CAAC,CAAD,CAA1B,EAA+BoO,QAAQ,CAAC,CAAD,CAAvC,CAAJ,CAAA;SArEF,CAAA,CAAA;IAuED,GAAA;;IAED,EAAA,SAASzN,IAAT,GAAgB;QACd,MAAM;UAAE7f,UAAF;IAAcpG,MAAAA,MAAM,EAAEoiB,YAAtB;UAAoC1Z,MAApC;IAA4C4E,MAAAA,WAAAA;IAA5C,KAAA,GAA4D7N,MAAlE,CAAA;QACA,MAAM6I,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkB6Z,YAAY,CAAC7Z,OAAb,CAAqBC,OAAzD,CAAA;IACA,IAAA,MAAMxI,MAAM,GAAGoiB,YAAY,CAAC4D,IAA5B,CAAA;IAEA,IAAA,IAAI1b,aAAa,GAAG8X,YAAY,CAAC9X,aAAjC,CAAA;;QACA,IAAIA,aAAa,KAAK,MAAtB,EAA8B;IAC5BA,MAAAA,aAAa,GAAG,CAAhB,CAAA;IACD,KAAA;;QAED,SAASmuB,UAAT,CAAoBj+B,KAApB,EAA2B;IACzB,MAAA,IAAI8N,SAAJ,EAAe;IACb,QAAA,IACElC,UAAU,CAAClW,QAAX,CAAqB,CAAGkyB,CAAAA,EAAAA,YAAY,CAACzZ,UAAW,CAA4BnO,0BAAAA,EAAAA,KAAM,CAAlF,EAAA,CAAA,CAAA,CACGpL,MAFL,EAGE;IACA,UAAA,OAAO,IAAP,CAAA;IACD,SAAA;WANH,MAOO,IAAIsZ,MAAM,CAAClO,KAAD,CAAV,EAAmB,OAAO,IAAP,CAAA;;IAC1B,MAAA,OAAO,KAAP,CAAA;IACD,KAAA;;QAED,SAASoR,UAAT,CAAoBqX,OAApB,EAA6B;IAC3B,MAAA,IAAI3a,SAAJ,EAAe;YACb,OAAO7T,CAAC,CAACwuB,OAAD,CAAD,CAAWjtB,IAAX,CAAgB,yBAAhB,CAAP,CAAA;IACD,OAAA;;IACD,MAAA,OAAOvB,CAAC,CAACwuB,OAAD,CAAD,CAAWzoB,KAAX,EAAP,CAAA;IACD,KAAA;;IAED,IAAA,IAAI,CAACs9B,kBAAL,EAAyBA,kBAAkB,GAAG,IAArB,CAAA;;IACzB,IAAA,IAAIr4B,MAAM,CAACO,MAAP,CAAc0M,mBAAlB,EAAuC;IACrCtG,MAAAA,UAAU,CAAClW,QAAX,CAAqB,CAAA,CAAA,EAAGkyB,YAAY,CAACxU,iBAAkB,CAAA,CAAvD,CAA0DrT,CAAAA,IAA1D,CAAgE0oB,OAAD,IAAa;YAC1E,MAAMzoB,KAAK,GAAG8N,SAAS,GAAG7T,CAAC,CAACwuB,OAAD,CAAD,CAAWjtB,IAAX,CAAgB,yBAAhB,CAAH,GAAgDvB,CAAC,CAACwuB,OAAD,CAAD,CAAWzoB,KAAX,EAAvE,CAAA;YACAu9B,WAAW,CAACv9B,KAAD,CAAX,CAAA;WAFF,CAAA,CAAA;IAID,KALD,MAKO,IAAI8P,aAAa,GAAG,CAApB,EAAuB;IAC5B,MAAA,KAAK,IAAInW,CAAC,GAAGmZ,WAAb,EAA0BnZ,CAAC,GAAGmZ,WAAW,GAAGhD,aAA5C,EAA2DnW,CAAC,IAAI,CAAhE,EAAmE;YACjE,IAAIskC,UAAU,CAACtkC,CAAD,CAAd,EAAmB4jC,WAAW,CAAC5jC,CAAD,CAAX,CAAA;IACpB,OAAA;IACF,KAJM,MAIA;UACL4jC,WAAW,CAACzqB,WAAD,CAAX,CAAA;IACD,KAAA;;QACD,IAAItN,MAAM,CAACq3B,YAAX,EAAyB;IACvB,MAAA,IAAI/sB,aAAa,GAAG,CAAhB,IAAsBtK,MAAM,CAACs3B,kBAAP,IAA6Bt3B,MAAM,CAACs3B,kBAAP,GAA4B,CAAnF,EAAuF;IACrF,QAAA,MAAMoB,MAAM,GAAG14B,MAAM,CAACs3B,kBAAtB,CAAA;IACA,QAAA,MAAMjU,GAAG,GAAG1iB,IAAI,CAAC0M,IAAL,CAAU/C,aAAV,CAAZ,CAAA;YACA,MAAMquB,QAAQ,GAAGh4B,IAAI,CAACE,GAAL,CAASyM,WAAW,GAAG+V,GAAd,GAAoB1iB,IAAI,CAACC,GAAL,CAAS83B,MAAT,EAAiBrV,GAAjB,CAA7B,EAAoD3a,MAAM,CAACtZ,MAA3D,CAAjB,CAAA;YACA,MAAMwpC,QAAQ,GAAGj4B,IAAI,CAACC,GAAL,CAAS0M,WAAW,GAAG3M,IAAI,CAACC,GAAL,CAASyiB,GAAT,EAAcqV,MAAd,CAAvB,EAA8C,CAA9C,CAAjB,CAJqF;;IAMrF,QAAA,KAAK,IAAIvkC,CAAC,GAAGmZ,WAAW,GAAG+V,GAA3B,EAAgClvB,CAAC,GAAGwkC,QAApC,EAA8CxkC,CAAC,IAAI,CAAnD,EAAsD;cACpD,IAAIskC,UAAU,CAACtkC,CAAD,CAAd,EAAmB4jC,WAAW,CAAC5jC,CAAD,CAAX,CAAA;IACpB,SARoF;;;IAUrF,QAAA,KAAK,IAAIA,CAAC,GAAGykC,QAAb,EAAuBzkC,CAAC,GAAGmZ,WAA3B,EAAwCnZ,CAAC,IAAI,CAA7C,EAAgD;cAC9C,IAAIskC,UAAU,CAACtkC,CAAD,CAAd,EAAmB4jC,WAAW,CAAC5jC,CAAD,CAAX,CAAA;IACpB,SAAA;IACF,OAbD,MAaO;YACL,MAAMub,SAAS,GAAGtJ,UAAU,CAAClW,QAAX,CAAqB,CAAA,CAAA,EAAGkyB,YAAY,CAAClT,cAAe,CAAA,CAApD,CAAlB,CAAA;IACA,QAAA,IAAIQ,SAAS,CAACtgB,MAAV,GAAmB,CAAvB,EAA0B2oC,WAAW,CAACnsB,UAAU,CAAC8D,SAAD,CAAX,CAAX,CAAA;YAE1B,MAAMC,SAAS,GAAGvJ,UAAU,CAAClW,QAAX,CAAqB,CAAA,CAAA,EAAGkyB,YAAY,CAACjT,cAAe,CAAA,CAApD,CAAlB,CAAA;IACA,QAAA,IAAIQ,SAAS,CAACvgB,MAAV,GAAmB,CAAvB,EAA0B2oC,WAAW,CAACnsB,UAAU,CAAC+D,SAAD,CAAX,CAAX,CAAA;IAC3B,OAAA;IACF,KAAA;IACF,GAAA;;IACD,EAAA,SAASkpB,iBAAT,GAA6B;QAC3B,MAAMjmC,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,IAAA,IAAI,CAAC+M,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;QACjC,MAAM40B,cAAc,GAAGr5B,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBwR,gBAAnB,GACnB/iC,CAAC,CAACgL,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBwR,gBAApB,CADkB,GAEnB/iC,CAAC,CAAC7B,MAAD,CAFL,CAAA;IAGA,IAAA,MAAMmmC,QAAQ,GAAGD,cAAc,CAAC,CAAD,CAAd,KAAsBlmC,MAAvC,CAAA;IACA,IAAA,MAAMomC,kBAAkB,GAAGD,QAAQ,GAAGnmC,MAAM,CAACylB,UAAV,GAAuBygB,cAAc,CAAC,CAAD,CAAd,CAAkBz/B,WAA5E,CAAA;IACA,IAAA,MAAM4/B,mBAAmB,GAAGF,QAAQ,GAAGnmC,MAAM,CAACksB,WAAV,GAAwBga,cAAc,CAAC,CAAD,CAAd,CAAkBt/B,YAA9E,CAAA;IACA,IAAA,MAAM+uB,YAAY,GAAG9oB,MAAM,CAACyG,GAAP,CAAWzM,MAAX,EAArB,CAAA;QACA,MAAM;IAAE0O,MAAAA,YAAY,EAAEC,GAAAA;IAAhB,KAAA,GAAwB3I,MAA9B,CAAA;QAEA,IAAIyoB,MAAM,GAAG,KAAb,CAAA;IAEA,IAAA,IAAI9f,GAAJ,EAASmgB,YAAY,CAACpuB,IAAb,IAAqBsF,MAAM,CAACyG,GAAP,CAAW,CAAX,CAAA,CAAclM,UAAnC,CAAA;QACT,MAAMwuB,WAAW,GAAG,CAClB,CAACD,YAAY,CAACpuB,IAAd,EAAoBouB,YAAY,CAACruB,GAAjC,CADkB,EAElB,CAACquB,YAAY,CAACpuB,IAAb,GAAoBsF,MAAM,CAACgD,KAA5B,EAAmC8lB,YAAY,CAACruB,GAAhD,CAFkB,EAGlB,CAACquB,YAAY,CAACpuB,IAAd,EAAoBouB,YAAY,CAACruB,GAAb,GAAmBuF,MAAM,CAACkD,MAA9C,CAHkB,EAIlB,CAAC4lB,YAAY,CAACpuB,IAAb,GAAoBsF,MAAM,CAACgD,KAA5B,EAAmC8lB,YAAY,CAACruB,GAAb,GAAmBuF,MAAM,CAACkD,MAA7D,CAJkB,CAApB,CAAA;;IAMA,IAAA,KAAK,IAAIxO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGq0B,WAAW,CAACp5B,MAAhC,EAAwC+E,CAAC,IAAI,CAA7C,EAAgD;IAC9C,MAAA,MAAM6qB,KAAK,GAAGwJ,WAAW,CAACr0B,CAAD,CAAzB,CAAA;;UACA,IACE6qB,KAAK,CAAC,CAAD,CAAL,IAAY,CAAZ,IACAA,KAAK,CAAC,CAAD,CAAL,IAAYga,kBADZ,IAEAha,KAAK,CAAC,CAAD,CAAL,IAAY,CAFZ,IAGAA,KAAK,CAAC,CAAD,CAAL,IAAYia,mBAJd,EAKE;IACA,QAAA,IAAIja,KAAK,CAAC,CAAD,CAAL,KAAa,CAAb,IAAkBA,KAAK,CAAC,CAAD,CAAL,KAAa,CAAnC,EAAsC,SADtC;;IAEAkJ,QAAAA,MAAM,GAAG,IAAT,CAAA;IACD,OAAA;IACF,KAAA;;QAED,MAAMxmB,eAAe,GACnBjC,MAAM,CAACid,WAAP,CAAmBG,KAAnB,KAA6B,YAA7B,IACApd,MAAM,CAAC2B,OAAP,CAAeM,eADf,IAEAjC,MAAM,CAACO,MAAP,CAAcgd,gBAFd,GAGI;IAAEC,MAAAA,OAAO,EAAE,IAAX;IAAiBhmB,MAAAA,OAAO,EAAE,KAAA;IAA1B,KAHJ,GAII,KALN,CAAA;;IAOA,IAAA,IAAIixB,MAAJ,EAAY;UACVjC,IAAI,EAAA,CAAA;IACJ6S,MAAAA,cAAc,CAAC5gC,GAAf,CAAmB,QAAnB,EAA6B2gC,iBAA7B,EAAgDn3B,eAAhD,CAAA,CAAA;IACD,KAHD,MAGO,IAAI,CAACm2B,qBAAL,EAA4B;IACjCA,MAAAA,qBAAqB,GAAG,IAAxB,CAAA;IACAiB,MAAAA,cAAc,CAACliC,EAAf,CAAkB,QAAlB,EAA4BiiC,iBAA5B,EAA+Cn3B,eAA/C,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;MAED9K,EAAE,CAAC,YAAD,EAAe,MAAM;IACrB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBxd,OAAnB,IAA8B/I,MAAM,CAACO,MAAP,CAAcugB,aAAhD,EAA+D;IAC7D9gB,MAAAA,MAAM,CAACO,MAAP,CAAcugB,aAAd,GAA8B,KAA9B,CAAA;IACD,KAAA;IACF,GAJC,CAAF,CAAA;MAKA3pB,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBxd,OAAvB,EAAgC;IAC9B,MAAA,IAAI/I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBoR,WAAvB,EAAoC;YAClCyB,iBAAiB,EAAA,CAAA;IAClB,OAFD,MAEO;YACL5S,IAAI,EAAA,CAAA;IACL,OAAA;IACF,KAAA;IACF,GARC,CAAF,CAAA;MASArvB,EAAE,CAAC,QAAD,EAAW,MAAM;QACjB,IACE6I,MAAM,CAACO,MAAP,CAAcmZ,QAAd,IACA1Z,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuB3Q,OADvB,IAEA,CAAC/I,MAAM,CAACO,MAAP,CAAcmZ,QAAd,CAAuBqS,MAH1B,EAIE;UACAvF,IAAI,EAAA,CAAA;IACL,KAAA;IACF,GARC,CAAF,CAAA;MASArvB,EAAE,CAAC,qDAAD,EAAwD,MAAM;IAC9D,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBxd,OAAvB,EAAgC;IAC9B,MAAA,IAAI/I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBoR,WAAvB,EAAoC;YAClCyB,iBAAiB,EAAA,CAAA;IAClB,OAFD,MAEO;YACL5S,IAAI,EAAA,CAAA;IACL,OAAA;IACF,KAAA;IACF,GARC,CAAF,CAAA;MASArvB,EAAE,CAAC,iBAAD,EAAoB,MAAM;IAC1B,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBxd,OAAvB,EAAgC;IAC9B,MAAA,IACE/I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBuR,qBAAnB,IACC,CAAC93B,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBuR,qBAApB,IAA6C,CAACO,kBAFjD,EAGE;IACA,QAAA,IAAIr4B,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBoR,WAAvB,EAAoC;cAClCyB,iBAAiB,EAAA,CAAA;IAClB,SAFD,MAEO;cACL5S,IAAI,EAAA,CAAA;IACL,SAAA;IACF,OAAA;IACF,KAAA;IACF,GAbC,CAAF,CAAA;MAcArvB,EAAE,CAAC,eAAD,EAAkB,MAAM;IACxB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBxd,OAAnB,IAA8B,CAAC/I,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBuR,qBAAtD,EAA6E;IAC3E,MAAA,IAAI93B,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmBoR,WAAvB,EAAoC;YAClCyB,iBAAiB,EAAA,CAAA;IAClB,OAFD,MAEO;YACL5S,IAAI,EAAA,CAAA;IACL,OAAA;IACF,KAAA;IACF,GARC,CAAF,CAAA;MASArvB,EAAE,CAAC,aAAD,EAAgB,MAAM;QACtB,MAAM;UAAEovB,IAAF;UAAQjc,OAAR;UAAiB2C,mBAAjB;UAAsC8M,mBAAtC;IAA2Dc,MAAAA,eAAAA;SAC/D7a,GAAAA,MAAM,CAACO,MADT,CAAA;;IAEA,IAAA,IACEgmB,IAAI,CAACxd,OAAL,KACCuB,OAAO,IAAK2C,mBAAmB,KAAK8M,mBAAmB,IAAIc,eAAe,KAAK,CAAhD,CADhC,CADF,EAGE;UACA2L,IAAI,EAAA,CAAA;IACL,KAAA;IACF,GATC,CAAF,CAAA;MAWArvB,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB,IAAA,IAAI,CAAC6I,MAAM,CAACyG,GAAZ,EAAiB,OAAA;QACjBzG,MAAM,CAACyG,GAAP,CACG5J,IADH,CACS,CAAGmD,CAAAA,EAAAA,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmB0R,YAAa,CAAA,CAD5C,CAEGjiC,CAAAA,WAFH,CAEegK,MAAM,CAACO,MAAP,CAAcgmB,IAAd,CAAmB0R,YAFlC,CAAA,CAAA;IAGD,GALC,CAAF,CAAA;IAOA7oC,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACumB,IAArB,EAA2B;QACzBC,IADyB;IAEzB8R,IAAAA,WAAAA;OAFF,CAAA,CAAA;IAID;;IC1TD;IAGe,SAASmB,UAAT,CAAkD,IAAA,EAAA;MAAA,IAA9B;QAAEz5B,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC/DuO,EAAAA,YAAY,CAAC;IACXg0B,IAAAA,UAAU,EAAE;IACVC,MAAAA,OAAO,EAAEhjC,SADC;IAEVijC,MAAAA,OAAO,EAAE,KAFC;UAGVC,EAAE,EAAE,OAHM;;IAAA,KAAA;IADD,GAAD,CAAZ,CAAA;MAQA75B,MAAM,CAAC05B,UAAP,GAAoB;IAClBC,IAAAA,OAAO,EAAEhjC,SAAAA;OADX,CAAA;;IAIA,EAAA,SAASmjC,YAAT,CAAsBxoB,CAAtB,EAAyBC,CAAzB,EAA4B;IAC1B,IAAA,MAAMwoB,YAAY,GAAI,SAASvoC,MAAT,GAAkB;IACtC,MAAA,IAAI0nC,QAAJ,CAAA;IACA,MAAA,IAAIC,QAAJ,CAAA;IACA,MAAA,IAAIa,KAAJ,CAAA;IACA,MAAA,OAAO,CAACC,KAAD,EAAQ1lB,GAAR,KAAgB;YACrB4kB,QAAQ,GAAG,CAAC,CAAZ,CAAA;YACAD,QAAQ,GAAGe,KAAK,CAACtqC,MAAjB,CAAA;;IACA,QAAA,OAAOupC,QAAQ,GAAGC,QAAX,GAAsB,CAA7B,EAAgC;IAC9Ba,UAAAA,KAAK,GAAId,QAAQ,GAAGC,QAAZ,IAAyB,CAAjC,CAAA;;IACA,UAAA,IAAIc,KAAK,CAACD,KAAD,CAAL,IAAgBzlB,GAApB,EAAyB;IACvB4kB,YAAAA,QAAQ,GAAGa,KAAX,CAAA;IACD,WAFD,MAEO;IACLd,YAAAA,QAAQ,GAAGc,KAAX,CAAA;IACD,WAAA;IACF,SAAA;;IACD,QAAA,OAAOd,QAAP,CAAA;WAXF,CAAA;IAaD,KAjBoB,EAArB,CAAA;;QAkBA,IAAK5nB,CAAAA,CAAL,GAASA,CAAT,CAAA;QACA,IAAKC,CAAAA,CAAL,GAASA,CAAT,CAAA;QACA,IAAKqD,CAAAA,SAAL,GAAiBtD,CAAC,CAAC3hB,MAAF,GAAW,CAA5B,CArB0B;IAuB1B;IACA;;IACA,IAAA,IAAIuqC,EAAJ,CAAA;IACA,IAAA,IAAIC,EAAJ,CAAA;;IAEA,IAAA,IAAA,CAAKC,WAAL,GAAmB,SAASA,WAAT,CAAqBrF,EAArB,EAAyB;IAC1C,MAAA,IAAI,CAACA,EAAL,EAAS,OAAO,CAAP,CADiC;;IAI1CoF,MAAAA,EAAE,GAAGJ,YAAY,CAAC,KAAKzoB,CAAN,EAASyjB,EAAT,CAAjB,CAAA;IACAmF,MAAAA,EAAE,GAAGC,EAAE,GAAG,CAAV,CAL0C;IAQ1C;;IACA,MAAA,OACG,CAACpF,EAAE,GAAG,IAAKzjB,CAAAA,CAAL,CAAO4oB,EAAP,CAAN,KAAqB,IAAA,CAAK3oB,CAAL,CAAO4oB,EAAP,CAAa,GAAA,IAAA,CAAK5oB,CAAL,CAAO2oB,EAAP,CAAlC,CAAD,IAAmD,IAAK5oB,CAAAA,CAAL,CAAO6oB,EAAP,IAAa,IAAK7oB,CAAAA,CAAL,CAAO4oB,EAAP,CAAhE,CAA8E,GAAA,IAAA,CAAK3oB,CAAL,CAAO2oB,EAAP,CADhF,CAAA;SATF,CAAA;;IAaA,IAAA,OAAO,IAAP,CAAA;IACD,GAvD8D;;;MAyD/D,SAASG,sBAAT,CAAgCzkC,CAAhC,EAAmC;IACjC,IAAA,IAAI,CAACoK,MAAM,CAAC05B,UAAP,CAAkBY,MAAvB,EAA+B;IAC7Bt6B,MAAAA,MAAM,CAAC05B,UAAP,CAAkBY,MAAlB,GAA2Bt6B,MAAM,CAACO,MAAP,CAAcwP,IAAd,GACvB,IAAI+pB,YAAJ,CAAiB95B,MAAM,CAACqJ,UAAxB,EAAoCzT,CAAC,CAACyT,UAAtC,CADuB,GAEvB,IAAIywB,YAAJ,CAAiB95B,MAAM,CAACoJ,QAAxB,EAAkCxT,CAAC,CAACwT,QAApC,CAFJ,CAAA;IAGD,KAAA;IACF,GAAA;;IACD,EAAA,SAASgI,YAAT,CAAsBmpB,EAAtB,EAA0BlpB,YAA1B,EAAwC;IACtC,IAAA,MAAMmpB,UAAU,GAAGx6B,MAAM,CAAC05B,UAAP,CAAkBC,OAArC,CAAA;IACA,IAAA,IAAI7qB,UAAJ,CAAA;IACA,IAAA,IAAI2rB,mBAAJ,CAAA;IACA,IAAA,MAAMpY,MAAM,GAAGriB,MAAM,CAAC7Q,WAAtB,CAAA;;QACA,SAASurC,sBAAT,CAAgC9kC,CAAhC,EAAmC;IACjC;IACA;IACA;IACA;IACA,MAAA,MAAMwK,SAAS,GAAGJ,MAAM,CAAC0I,YAAP,GAAsB,CAAC1I,MAAM,CAACI,SAA9B,GAA0CJ,MAAM,CAACI,SAAnE,CAAA;;UACA,IAAIJ,MAAM,CAACO,MAAP,CAAcm5B,UAAd,CAAyBG,EAAzB,KAAgC,OAApC,EAA6C;IAC3CQ,QAAAA,sBAAsB,CAACzkC,CAAD,CAAtB,CAD2C;IAG3C;;IACA6kC,QAAAA,mBAAmB,GAAG,CAACz6B,MAAM,CAAC05B,UAAP,CAAkBY,MAAlB,CAAyBF,WAAzB,CAAqC,CAACh6B,SAAtC,CAAvB,CAAA;IACD,OAAA;;IAED,MAAA,IAAI,CAACq6B,mBAAD,IAAwBz6B,MAAM,CAACO,MAAP,CAAcm5B,UAAd,CAAyBG,EAAzB,KAAgC,WAA5D,EAAyE;IACvE/qB,QAAAA,UAAU,GACR,CAAClZ,CAAC,CAACoZ,YAAF,EAAA,GAAmBpZ,CAAC,CAAC2Y,YAAF,EAApB,KAAyCvO,MAAM,CAACgP,YAAP,EAAA,GAAwBhP,MAAM,CAACuO,YAAP,EAAjE,CADF,CAAA;IAEAksB,QAAAA,mBAAmB,GAAG,CAACr6B,SAAS,GAAGJ,MAAM,CAACuO,YAAP,EAAb,IAAsCO,UAAtC,GAAmDlZ,CAAC,CAAC2Y,YAAF,EAAzE,CAAA;IACD,OAAA;;IAED,MAAA,IAAIvO,MAAM,CAACO,MAAP,CAAcm5B,UAAd,CAAyBE,OAA7B,EAAsC;IACpCa,QAAAA,mBAAmB,GAAG7kC,CAAC,CAACoZ,YAAF,KAAmByrB,mBAAzC,CAAA;IACD,OAAA;;UACD7kC,CAAC,CAACiZ,cAAF,CAAiB4rB,mBAAjB,CAAA,CAAA;IACA7kC,MAAAA,CAAC,CAACwb,YAAF,CAAeqpB,mBAAf,EAAoCz6B,MAApC,CAAA,CAAA;IACApK,MAAAA,CAAC,CAACwa,iBAAF,EAAA,CAAA;IACAxa,MAAAA,CAAC,CAAC0Z,mBAAF,EAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAI1b,KAAK,CAACM,OAAN,CAAcsmC,UAAd,CAAJ,EAA+B;IAC7B,MAAA,KAAK,IAAI9lC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG8lC,UAAU,CAAC7qC,MAA/B,EAAuC+E,CAAC,IAAI,CAA5C,EAA+C;IAC7C,QAAA,IAAI8lC,UAAU,CAAC9lC,CAAD,CAAV,KAAkB2c,YAAlB,IAAkCmpB,UAAU,CAAC9lC,CAAD,CAAV,YAAyB2tB,MAA/D,EAAuE;IACrEqY,UAAAA,sBAAsB,CAACF,UAAU,CAAC9lC,CAAD,CAAX,CAAtB,CAAA;IACD,SAAA;IACF,OAAA;SALH,MAMO,IAAI8lC,UAAU,YAAYnY,MAAtB,IAAgChR,YAAY,KAAKmpB,UAArD,EAAiE;UACtEE,sBAAsB,CAACF,UAAD,CAAtB,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,SAAS/sB,aAAT,CAAuBxW,QAAvB,EAAiCoa,YAAjC,EAA+C;IAC7C,IAAA,MAAMgR,MAAM,GAAGriB,MAAM,CAAC7Q,WAAtB,CAAA;IACA,IAAA,MAAMqrC,UAAU,GAAGx6B,MAAM,CAAC05B,UAAP,CAAkBC,OAArC,CAAA;IACA,IAAA,IAAIjlC,CAAJ,CAAA;;QACA,SAASimC,uBAAT,CAAiC/kC,CAAjC,EAAoC;IAClCA,MAAAA,CAAC,CAAC6X,aAAF,CAAgBxW,QAAhB,EAA0B+I,MAA1B,CAAA,CAAA;;UACA,IAAI/I,QAAQ,KAAK,CAAjB,EAAoB;IAClBrB,QAAAA,CAAC,CAAC4c,eAAF,EAAA,CAAA;;IACA,QAAA,IAAI5c,CAAC,CAAC2K,MAAF,CAAS8O,UAAb,EAAyB;IACvB/R,UAAAA,QAAQ,CAAC,MAAM;IACb1H,YAAAA,CAAC,CAAC2X,gBAAF,EAAA,CAAA;IACD,WAFO,CAAR,CAAA;IAGD,SAAA;;IACD3X,QAAAA,CAAC,CAAC+Q,UAAF,CAAarN,aAAb,CAA2B,MAAM;cAC/B,IAAI,CAACkhC,UAAL,EAAiB,OAAA;;IACjB,UAAA,IAAI5kC,CAAC,CAAC2K,MAAF,CAASwP,IAAT,IAAiB/P,MAAM,CAACO,MAAP,CAAcm5B,UAAd,CAAyBG,EAAzB,KAAgC,OAArD,EAA8D;IAC5DjkC,YAAAA,CAAC,CAACse,OAAF,EAAA,CAAA;IACD,WAAA;;IACDte,UAAAA,CAAC,CAAC0D,aAAF,EAAA,CAAA;aALF,CAAA,CAAA;IAOD,OAAA;IACF,KAAA;;IACD,IAAA,IAAI1F,KAAK,CAACM,OAAN,CAAcsmC,UAAd,CAAJ,EAA+B;IAC7B,MAAA,KAAK9lC,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAG8lC,UAAU,CAAC7qC,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,QAAA,IAAI8lC,UAAU,CAAC9lC,CAAD,CAAV,KAAkB2c,YAAlB,IAAkCmpB,UAAU,CAAC9lC,CAAD,CAAV,YAAyB2tB,MAA/D,EAAuE;IACrEsY,UAAAA,uBAAuB,CAACH,UAAU,CAAC9lC,CAAD,CAAX,CAAvB,CAAA;IACD,SAAA;IACF,OAAA;SALH,MAMO,IAAI8lC,UAAU,YAAYnY,MAAtB,IAAgChR,YAAY,KAAKmpB,UAArD,EAAiE;UACtEG,uBAAuB,CAACH,UAAD,CAAvB,CAAA;IACD,KAAA;IACF,GAAA;;IAED,EAAA,SAASI,YAAT,GAAwB;IACtB,IAAA,IAAI,CAAC56B,MAAM,CAAC05B,UAAP,CAAkBC,OAAvB,EAAgC,OAAA;;IAChC,IAAA,IAAI35B,MAAM,CAAC05B,UAAP,CAAkBY,MAAtB,EAA8B;IAC5Bt6B,MAAAA,MAAM,CAAC05B,UAAP,CAAkBY,MAAlB,GAA2B3jC,SAA3B,CAAA;IACA,MAAA,OAAOqJ,MAAM,CAAC05B,UAAP,CAAkBY,MAAzB,CAAA;IACD,KAAA;IACF,GAAA;;MACDnjC,EAAE,CAAC,YAAD,EAAe,MAAM;QACrB6I,MAAM,CAAC05B,UAAP,CAAkBC,OAAlB,GAA4B35B,MAAM,CAACO,MAAP,CAAcm5B,UAAd,CAAyBC,OAArD,CAAA;IACD,GAFC,CAAF,CAAA;MAGAxiC,EAAE,CAAC,QAAD,EAAW,MAAM;QACjByjC,YAAY,EAAA,CAAA;IACb,GAFC,CAAF,CAAA;MAGAzjC,EAAE,CAAC,QAAD,EAAW,MAAM;QACjByjC,YAAY,EAAA,CAAA;IACb,GAFC,CAAF,CAAA;MAGAzjC,EAAE,CAAC,gBAAD,EAAmB,MAAM;QACzByjC,YAAY,EAAA,CAAA;IACb,GAFC,CAAF,CAAA;MAGAzjC,EAAE,CAAC,cAAD,EAAiB,CAACk2B,EAAD,EAAKjtB,SAAL,EAAgBiR,YAAhB,KAAiC;IAClD,IAAA,IAAI,CAACrR,MAAM,CAAC05B,UAAP,CAAkBC,OAAvB,EAAgC,OAAA;IAChC35B,IAAAA,MAAM,CAAC05B,UAAP,CAAkBtoB,YAAlB,CAA+BhR,SAA/B,EAA0CiR,YAA1C,CAAA,CAAA;IACD,GAHC,CAAF,CAAA;MAIAla,EAAE,CAAC,eAAD,EAAkB,CAACk2B,EAAD,EAAKp2B,QAAL,EAAeoa,YAAf,KAAgC;IAClD,IAAA,IAAI,CAACrR,MAAM,CAAC05B,UAAP,CAAkBC,OAAvB,EAAgC,OAAA;IAChC35B,IAAAA,MAAM,CAAC05B,UAAP,CAAkBjsB,aAAlB,CAAgCxW,QAAhC,EAA0Coa,YAA1C,CAAA,CAAA;IACD,GAHC,CAAF,CAAA;IAKAjiB,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAAC05B,UAArB,EAAiC;QAC/BtoB,YAD+B;IAE/B3D,IAAAA,aAAAA;OAFF,CAAA,CAAA;IAID;;IC3Kc,SAASotB,IAAT,CAA4C,IAAA,EAAA;MAAA,IAA9B;QAAE76B,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IACzDuO,EAAAA,YAAY,CAAC;IACXo1B,IAAAA,IAAI,EAAE;IACJ/xB,MAAAA,OAAO,EAAE,IADL;IAEJgyB,MAAAA,iBAAiB,EAAE,qBAFf;IAGJC,MAAAA,gBAAgB,EAAE,gBAHd;IAIJC,MAAAA,gBAAgB,EAAE,YAJd;IAKJC,MAAAA,iBAAiB,EAAE,yBALf;IAMJC,MAAAA,gBAAgB,EAAE,wBANd;IAOJC,MAAAA,uBAAuB,EAAE,uBAPrB;IAQJC,MAAAA,iBAAiB,EAAE,8BARf;IASJC,MAAAA,gBAAgB,EAAE,IATd;IAUJC,MAAAA,+BAA+B,EAAE,IAV7B;IAWJC,MAAAA,0BAA0B,EAAE,IAXxB;IAYJC,MAAAA,SAAS,EAAE,OAZP;IAaJzoC,MAAAA,EAAE,EAAE,IAAA;IAbA,KAAA;IADK,GAAD,CAAZ,CAAA;MAkBA,IAAI0oC,UAAU,GAAG,IAAjB,CAAA;;MAEA,SAASC,MAAT,CAAgBC,OAAhB,EAAyB;QACvB,MAAMC,YAAY,GAAGH,UAArB,CAAA;IACA,IAAA,IAAIG,YAAY,CAAClsC,MAAb,KAAwB,CAA5B,EAA+B,OAAA;QAC/BksC,YAAY,CAAC5mC,IAAb,CAAkB,EAAlB,CAAA,CAAA;QACA4mC,YAAY,CAAC5mC,IAAb,CAAkB2mC,OAAlB,CAAA,CAAA;IACD,GAAA;;MAED,SAASE,eAAT,CAAyB3zB,IAAzB,EAAoC;IAAA,IAAA,IAAXA,IAAW,KAAA,KAAA,CAAA,EAAA;IAAXA,MAAAA,IAAW,GAAJ,EAAI,CAAA;IAAA,KAAA;;IAClC,IAAA,MAAM4zB,UAAU,GAAG,MAAM76B,IAAI,CAAC86B,KAAL,CAAW,EAAA,GAAK96B,IAAI,CAAC+6B,MAAL,EAAhB,CAAA,CAA+Bz9B,QAA/B,CAAwC,EAAxC,CAAzB,CAAA;;QACA,OAAO,GAAA,CAAI09B,MAAJ,CAAW/zB,IAAX,CAAA,CAAiBjK,OAAjB,CAAyB,IAAzB,EAA+B69B,UAA/B,CAAP,CAAA;IACD,GAAA;;MACD,SAASI,eAAT,CAAyB11B,GAAzB,EAA8B;IAC5BA,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,UAAT,EAAqB,GAArB,CAAA,CAAA;IACD,GAAA;;MACD,SAAS6lC,kBAAT,CAA4B31B,GAA5B,EAAiC;IAC/BA,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,UAAT,EAAqB,IAArB,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAAS8lC,SAAT,CAAmB51B,GAAnB,EAAwB61B,IAAxB,EAA8B;IAC5B71B,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,MAAT,EAAiB+lC,IAAjB,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASC,oBAAT,CAA8B91B,GAA9B,EAAmC+1B,WAAnC,EAAgD;IAC9C/1B,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,sBAAT,EAAiCimC,WAAjC,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASC,aAAT,CAAuBh2B,GAAvB,EAA4Bi2B,QAA5B,EAAsC;IACpCj2B,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,eAAT,EAA0BmmC,QAA1B,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASC,UAAT,CAAoBl2B,GAApB,EAAyB+B,KAAzB,EAAgC;IAC9B/B,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,YAAT,EAAuBiS,KAAvB,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAASo0B,OAAT,CAAiBn2B,GAAjB,EAAsBzT,EAAtB,EAA0B;IACxByT,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,IAAT,EAAevD,EAAf,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,SAAS6pC,SAAT,CAAmBp2B,GAAnB,EAAwBq2B,IAAxB,EAA8B;IAC5Br2B,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,WAAT,EAAsBumC,IAAtB,CAAA,CAAA;IACD,GAAA;;MACD,SAASC,SAAT,CAAmBt2B,GAAnB,EAAwB;IACtBA,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,eAAT,EAA0B,IAA1B,CAAA,CAAA;IACD,GAAA;;MACD,SAASymC,QAAT,CAAkBv2B,GAAlB,EAAuB;IACrBA,IAAAA,GAAG,CAAClQ,IAAJ,CAAS,eAAT,EAA0B,KAA1B,CAAA,CAAA;IACD,GAAA;;MAED,SAAS0mC,iBAAT,CAA2BvlC,CAA3B,EAA8B;QAC5B,IAAIA,CAAC,CAACmwB,OAAF,KAAc,EAAd,IAAoBnwB,CAAC,CAACmwB,OAAF,KAAc,EAAtC,EAA0C,OAAA;IAC1C,IAAA,MAAMtnB,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcu6B,IAA7B,CAAA;IACA,IAAA,MAAM7jB,SAAS,GAAGjiB,CAAC,CAAC0C,CAAC,CAACpI,MAAH,CAAnB,CAAA;;QACA,IAAI0Q,MAAM,CAACic,UAAP,IAAqBjc,MAAM,CAACic,UAAP,CAAkB4Q,OAAvC,IAAkD5V,SAAS,CAACnf,EAAV,CAAakI,MAAM,CAACic,UAAP,CAAkB4Q,OAA/B,CAAtD,EAA+F;IAC7F,MAAA,IAAI,EAAE7sB,MAAM,CAACkP,KAAP,IAAgB,CAAClP,MAAM,CAACO,MAAP,CAAcwP,IAAjC,CAAJ,EAA4C;IAC1C/P,QAAAA,MAAM,CAAC4T,SAAP,EAAA,CAAA;IACD,OAAA;;UACD,IAAI5T,MAAM,CAACkP,KAAX,EAAkB;IAChBysB,QAAAA,MAAM,CAACp7B,MAAM,CAAC46B,gBAAR,CAAN,CAAA;IACD,OAFD,MAEO;IACLQ,QAAAA,MAAM,CAACp7B,MAAM,CAAC06B,gBAAR,CAAN,CAAA;IACD,OAAA;IACF,KAAA;;QACD,IAAIj7B,MAAM,CAACic,UAAP,IAAqBjc,MAAM,CAACic,UAAP,CAAkB6Q,OAAvC,IAAkD7V,SAAS,CAACnf,EAAV,CAAakI,MAAM,CAACic,UAAP,CAAkB6Q,OAA/B,CAAtD,EAA+F;IAC7F,MAAA,IAAI,EAAE9sB,MAAM,CAACiP,WAAP,IAAsB,CAACjP,MAAM,CAACO,MAAP,CAAcwP,IAAvC,CAAJ,EAAkD;IAChD/P,QAAAA,MAAM,CAACqU,SAAP,EAAA,CAAA;IACD,OAAA;;UACD,IAAIrU,MAAM,CAACiP,WAAX,EAAwB;IACtB0sB,QAAAA,MAAM,CAACp7B,MAAM,CAAC26B,iBAAR,CAAN,CAAA;IACD,OAFD,MAEO;IACLS,QAAAA,MAAM,CAACp7B,MAAM,CAACy6B,gBAAR,CAAN,CAAA;IACD,OAAA;IACF,KAAA;;IAED,IAAA,IACEh7B,MAAM,CAACutB,UAAP,IACAtW,SAAS,CAACnf,EAAV,CAAa41B,iBAAiB,CAAC1tB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBiB,WAA1B,CAA9B,CAFF,EAGE;IACAvX,MAAAA,SAAS,CAAC,CAAD,CAAT,CAAaimB,KAAb,EAAA,CAAA;IACD,KAAA;IACF,GAAA;;IAED,EAAA,SAASC,gBAAT,GAA4B;IAC1B,IAAA,IAAIn9B,MAAM,CAACO,MAAP,CAAcwP,IAAd,IAAsB/P,MAAM,CAACO,MAAP,CAAc6T,MAApC,IAA8C,CAACpU,MAAM,CAACic,UAA1D,EAAsE,OAAA;QACtE,MAAM;UAAE4Q,OAAF;IAAWC,MAAAA,OAAAA;SAAY9sB,GAAAA,MAAM,CAACic,UAApC,CAAA;;IAEA,IAAA,IAAI6Q,OAAO,IAAIA,OAAO,CAACn9B,MAAR,GAAiB,CAAhC,EAAmC;UACjC,IAAIqQ,MAAM,CAACiP,WAAX,EAAwB;YACtB8tB,SAAS,CAACjQ,OAAD,CAAT,CAAA;YACAsP,kBAAkB,CAACtP,OAAD,CAAlB,CAAA;IACD,OAHD,MAGO;YACLkQ,QAAQ,CAAClQ,OAAD,CAAR,CAAA;YACAqP,eAAe,CAACrP,OAAD,CAAf,CAAA;IACD,OAAA;IACF,KAAA;;IACD,IAAA,IAAID,OAAO,IAAIA,OAAO,CAACl9B,MAAR,GAAiB,CAAhC,EAAmC;UACjC,IAAIqQ,MAAM,CAACkP,KAAX,EAAkB;YAChB6tB,SAAS,CAAClQ,OAAD,CAAT,CAAA;YACAuP,kBAAkB,CAACvP,OAAD,CAAlB,CAAA;IACD,OAHD,MAGO;YACLmQ,QAAQ,CAACnQ,OAAD,CAAR,CAAA;YACAsP,eAAe,CAACtP,OAAD,CAAf,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;IAED,EAAA,SAASuQ,aAAT,GAAyB;IACvB,IAAA,OAAOp9B,MAAM,CAACutB,UAAP,IAAqBvtB,MAAM,CAACutB,UAAP,CAAkB4B,OAAvC,IAAkDnvB,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,CAA0Bx/B,MAAnF,CAAA;IACD,GAAA;;IAED,EAAA,SAAS0tC,sBAAT,GAAkC;QAChC,OAAOD,aAAa,MAAMp9B,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBC,SAAnD,CAAA;IACD,GAAA;;IAED,EAAA,SAAS8P,gBAAT,GAA4B;IAC1B,IAAA,MAAM/8B,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcu6B,IAA7B,CAAA;QACA,IAAI,CAACsC,aAAa,EAAlB,EAAsB,OAAA;QACtBp9B,MAAM,CAACutB,UAAP,CAAkB4B,OAAlB,CAA0Br0B,IAA1B,CAAgCyiC,QAAD,IAAc;IAC3C,MAAA,MAAM/N,SAAS,GAAGx6B,CAAC,CAACuoC,QAAD,CAAnB,CAAA;;IACA,MAAA,IAAIv9B,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBC,SAA7B,EAAwC;YACtC2O,eAAe,CAAC3M,SAAD,CAAf,CAAA;;YACA,IAAI,CAACxvB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBO,YAA9B,EAA4C;IAC1CuO,UAAAA,SAAS,CAAC7M,SAAD,EAAY,QAAZ,CAAT,CAAA;IACAmN,UAAAA,UAAU,CACRnN,SADQ,EAERjvB,MAAM,CAAC66B,uBAAP,CAA+Bl9B,OAA/B,CAAuC,eAAvC,EAAwDsxB,SAAS,CAACz0B,KAAV,EAAoB,GAAA,CAA5E,CAFQ,CAAV,CAAA;IAID,SAAA;IACF,OAAA;;IACD,MAAA,IAAIy0B,SAAS,CAAC13B,EAAV,CAAc,IAAGkI,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBkB,iBAAkB,CAAA,CAA5D,CAAJ,EAAoE;IAClEe,QAAAA,SAAS,CAACj5B,IAAV,CAAe,cAAf,EAA+B,MAA/B,CAAA,CAAA;IACD,OAFD,MAEO;YACLi5B,SAAS,CAAC34B,UAAV,CAAqB,cAArB,CAAA,CAAA;IACD,OAAA;SAhBH,CAAA,CAAA;IAkBD,GAAA;;MAED,MAAM2mC,SAAS,GAAG,CAAC/2B,GAAD,EAAMg3B,SAAN,EAAiB7B,OAAjB,KAA6B;QAC7CO,eAAe,CAAC11B,GAAD,CAAf,CAAA;;QACA,IAAIA,GAAG,CAAC,CAAD,CAAH,CAAOymB,OAAP,KAAmB,QAAvB,EAAiC;IAC/BmP,MAAAA,SAAS,CAAC51B,GAAD,EAAM,QAAN,CAAT,CAAA;IACAA,MAAAA,GAAG,CAACtP,EAAJ,CAAO,SAAP,EAAkB8lC,iBAAlB,CAAA,CAAA;IACD,KAAA;;IACDN,IAAAA,UAAU,CAACl2B,GAAD,EAAMm1B,OAAN,CAAV,CAAA;IACAa,IAAAA,aAAa,CAACh2B,GAAD,EAAMg3B,SAAN,CAAb,CAAA;OAPF,CAAA;;MAUA,MAAMC,WAAW,GAAIhmC,CAAD,IAAO;IACzB,IAAA,MAAM8rB,OAAO,GAAG9rB,CAAC,CAACpI,MAAF,CAASsN,OAAT,CAAkB,CAAA,CAAA,EAAGoD,MAAM,CAACO,MAAP,CAAc2I,UAAW,EAA9C,CAAhB,CAAA;IACA,IAAA,IAAI,CAACsa,OAAD,IAAY,CAACxjB,MAAM,CAACiJ,MAAP,CAAc00B,QAAd,CAAuBna,OAAvB,CAAjB,EAAkD,OAAA;IAClD,IAAA,MAAMoa,QAAQ,GAAG59B,MAAM,CAACiJ,MAAP,CAActU,OAAd,CAAsB6uB,OAAtB,CAAA,KAAmCxjB,MAAM,CAAC6N,WAA3D,CAAA;IACA,IAAA,MAAMc,SAAS,GACb3O,MAAM,CAACO,MAAP,CAAc0M,mBAAd,IACAjN,MAAM,CAAC2N,aADP,IAEA3N,MAAM,CAAC2N,aAAP,CAAqBgwB,QAArB,CAA8Bna,OAA9B,CAHF,CAAA;QAIA,IAAIoa,QAAQ,IAAIjvB,SAAhB,EAA2B,OAAA;IAC3B3O,IAAAA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAACiJ,MAAP,CAActU,OAAd,CAAsB6uB,OAAtB,CAAf,EAA+C,CAA/C,CAAA,CAAA;OATF,CAAA;;MAYA,MAAM9Y,UAAU,GAAG,MAAM;IACvB,IAAA,MAAMnK,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcu6B,IAA7B,CAAA;;QACA,IAAIv6B,MAAM,CAACi7B,0BAAX,EAAuC;UACrCe,oBAAoB,CAACvnC,CAAC,CAACgL,MAAM,CAACiJ,MAAR,CAAF,EAAmB1I,MAAM,CAACi7B,0BAA1B,CAApB,CAAA;IACD,KAAA;;QACD,IAAIj7B,MAAM,CAACk7B,SAAX,EAAsB;UACpBY,SAAS,CAACrnC,CAAC,CAACgL,MAAM,CAACiJ,MAAR,CAAF,EAAmB1I,MAAM,CAACk7B,SAA1B,CAAT,CAAA;IACD,KAAA;;IAED,IAAA,MAAMtyB,YAAY,GAAGnJ,MAAM,CAACO,MAAP,CAAcwP,IAAd,GACjB/P,MAAM,CAACiJ,MAAP,CAAc3U,MAAd,CAAsBL,EAAD,IAAQ,CAACA,EAAE,CAAC6B,SAAH,CAAaQ,QAAb,CAAsB0J,MAAM,CAACO,MAAP,CAAcyP,mBAApC,CAA9B,CAAA,CACGrgB,MAFc,GAGjBqQ,MAAM,CAACiJ,MAAP,CAActZ,MAHlB,CAAA;;QAIA,IAAI4Q,MAAM,CAAC86B,iBAAX,EAA8B;UAC5Br7B,MAAM,CAACiJ,MAAP,CAAcnO,IAAd,CAAmB,CAAC0oB,OAAD,EAAUzoB,KAAV,KAAoB;IACrC,QAAA,MAAM8qB,QAAQ,GAAG7wB,CAAC,CAACwuB,OAAD,CAAlB,CAAA;YACA,MAAMrX,UAAU,GAAGnM,MAAM,CAACO,MAAP,CAAcwP,IAAd,GACfhI,QAAQ,CAAC8d,QAAQ,CAACtvB,IAAT,CAAc,yBAAd,CAAD,EAA2C,EAA3C,CADO,GAEfwE,KAFJ,CAAA;IAGA,QAAA,MAAM8iC,gBAAgB,GAAGt9B,MAAM,CAAC86B,iBAAP,CACtBn9B,OADsB,CACd,eADc,EACGiO,UAAU,GAAG,CADhB,CAEtBjO,CAAAA,OAFsB,CAEd,sBAFc,EAEUiL,YAFV,CAAzB,CAAA;IAGAwzB,QAAAA,UAAU,CAAC9W,QAAD,EAAWgY,gBAAX,CAAV,CAAA;WARF,CAAA,CAAA;IAUD,KAAA;OAxBH,CAAA;;MA2BA,MAAMv3B,IAAI,GAAG,MAAM;IACjB,IAAA,MAAM/F,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcu6B,IAA7B,CAAA;IAEA96B,IAAAA,MAAM,CAACyG,GAAP,CAAW9K,MAAX,CAAkB+/B,UAAlB,EAHiB;;IAMjB,IAAA,MAAMoC,YAAY,GAAG99B,MAAM,CAACyG,GAA5B,CAAA;;QACA,IAAIlG,MAAM,CAACg7B,+BAAX,EAA4C;IAC1CgB,MAAAA,oBAAoB,CAACuB,YAAD,EAAev9B,MAAM,CAACg7B,+BAAtB,CAApB,CAAA;IACD,KAAA;;QACD,IAAIh7B,MAAM,CAAC+6B,gBAAX,EAA6B;IAC3BqB,MAAAA,UAAU,CAACmB,YAAD,EAAev9B,MAAM,CAAC+6B,gBAAtB,CAAV,CAAA;IACD,KAZgB;;;IAejB,IAAA,MAAM30B,UAAU,GAAG3G,MAAM,CAAC2G,UAA1B,CAAA;IACA,IAAA,MAAM82B,SAAS,GAAGl9B,MAAM,CAACvN,EAAP,IAAa2T,UAAU,CAACpQ,IAAX,CAAgB,IAAhB,CAAb,IAAuC,CAAA,eAAA,EAAiBulC,eAAe,CAAC,EAAD,CAAK,CAA9F,CAAA,CAAA;IACA,IAAA,MAAMgB,IAAI,GAAG98B,MAAM,CAACO,MAAP,CAAc+b,QAAd,IAA0Btc,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBvT,OAAjD,GAA2D,KAA3D,GAAmE,QAAhF,CAAA;IACA6zB,IAAAA,OAAO,CAACj2B,UAAD,EAAa82B,SAAb,CAAP,CAAA;IACAZ,IAAAA,SAAS,CAACl2B,UAAD,EAAam2B,IAAb,CAAT,CAnBiB;;IAsBjBpyB,IAAAA,UAAU,GAtBO;;IAyBjB,IAAA,IAAImiB,OAAJ,CAAA;IACA,IAAA,IAAIC,OAAJ,CAAA;;QACA,IAAI9sB,MAAM,CAACic,UAAP,IAAqBjc,MAAM,CAACic,UAAP,CAAkB4Q,OAA3C,EAAoD;IAClDA,MAAAA,OAAO,GAAG7sB,MAAM,CAACic,UAAP,CAAkB4Q,OAA5B,CAAA;IACD,KAAA;;QACD,IAAI7sB,MAAM,CAACic,UAAP,IAAqBjc,MAAM,CAACic,UAAP,CAAkB6Q,OAA3C,EAAoD;IAClDA,MAAAA,OAAO,GAAG9sB,MAAM,CAACic,UAAP,CAAkB6Q,OAA5B,CAAA;IACD,KAAA;;IAED,IAAA,IAAID,OAAO,IAAIA,OAAO,CAACl9B,MAAvB,EAA+B;UAC7B6tC,SAAS,CAAC3Q,OAAD,EAAU4Q,SAAV,EAAqBl9B,MAAM,CAAC06B,gBAA5B,CAAT,CAAA;IACD,KAAA;;IACD,IAAA,IAAInO,OAAO,IAAIA,OAAO,CAACn9B,MAAvB,EAA+B;UAC7B6tC,SAAS,CAAC1Q,OAAD,EAAU2Q,SAAV,EAAqBl9B,MAAM,CAACy6B,gBAA5B,CAAT,CAAA;IACD,KAvCgB;;;QA0CjB,IAAIqC,sBAAsB,EAA1B,EAA8B;UAC5Br9B,MAAM,CAACutB,UAAP,CAAkB9mB,GAAlB,CAAsBtP,EAAtB,CACE,SADF,EAEEu2B,iBAAiB,CAAC1tB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBiB,WAA1B,CAFnB,EAGEyO,iBAHF,CAAA,CAAA;IAKD,KAhDgB;;;QAmDjBj9B,MAAM,CAACyG,GAAP,CAAWtP,EAAX,CAAc,OAAd,EAAuBumC,WAAvB,EAAoC,IAApC,CAAA,CAAA;OAnDF,CAAA;;IAqDA,EAAA,SAAS92B,OAAT,GAAmB;QACjB,IAAI80B,UAAU,IAAIA,UAAU,CAAC/rC,MAAX,GAAoB,CAAtC,EAAyC+rC,UAAU,CAACzlC,MAAX,EAAA,CAAA;IAEzC,IAAA,IAAI42B,OAAJ,CAAA;IACA,IAAA,IAAIC,OAAJ,CAAA;;QACA,IAAI9sB,MAAM,CAACic,UAAP,IAAqBjc,MAAM,CAACic,UAAP,CAAkB4Q,OAA3C,EAAoD;IAClDA,MAAAA,OAAO,GAAG7sB,MAAM,CAACic,UAAP,CAAkB4Q,OAA5B,CAAA;IACD,KAAA;;QACD,IAAI7sB,MAAM,CAACic,UAAP,IAAqBjc,MAAM,CAACic,UAAP,CAAkB6Q,OAA3C,EAAoD;IAClDA,MAAAA,OAAO,GAAG9sB,MAAM,CAACic,UAAP,CAAkB6Q,OAA5B,CAAA;IACD,KAAA;;IACD,IAAA,IAAID,OAAJ,EAAa;IACXA,MAAAA,OAAO,CAACp0B,GAAR,CAAY,SAAZ,EAAuBwkC,iBAAvB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAInQ,OAAJ,EAAa;IACXA,MAAAA,OAAO,CAACr0B,GAAR,CAAY,SAAZ,EAAuBwkC,iBAAvB,CAAA,CAAA;IACD,KAhBgB;;;QAmBjB,IAAII,sBAAsB,EAA1B,EAA8B;UAC5Br9B,MAAM,CAACutB,UAAP,CAAkB9mB,GAAlB,CAAsBhO,GAAtB,CACE,SADF,EAEEi1B,iBAAiB,CAAC1tB,MAAM,CAACO,MAAP,CAAcgtB,UAAd,CAAyBiB,WAA1B,CAFnB,EAGEyO,iBAHF,CAAA,CAAA;IAKD,KAzBgB;;;QA4BjBj9B,MAAM,CAACyG,GAAP,CAAWhO,GAAX,CAAe,OAAf,EAAwBilC,WAAxB,EAAqC,IAArC,CAAA,CAAA;IACD,GAAA;;MAEDvmC,EAAE,CAAC,YAAD,EAAe,MAAM;IACrBukC,IAAAA,UAAU,GAAG1mC,CAAC,CACX,CAAA,aAAA,EAAegL,MAAM,CAACO,MAAP,CAAcu6B,IAAd,CAAmBC,iBAAkB,CAAA,kDAAA,CADzC,CAAd,CAAA;IAGD,GAJC,CAAF,CAAA;MAMA5jC,EAAE,CAAC,WAAD,EAAc,MAAM;QACpB,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcu6B,IAAd,CAAmB/xB,OAAxB,EAAiC,OAAA;QACjCzC,IAAI,EAAA,CAAA;IACL,GAHC,CAAF,CAAA;MAIAnP,EAAE,CAAC,gEAAD,EAAmE,MAAM;QACzE,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcu6B,IAAd,CAAmB/xB,OAAxB,EAAiC,OAAA;QACjC2B,UAAU,EAAA,CAAA;IACX,GAHC,CAAF,CAAA;MAIAvT,EAAE,CAAC,uCAAD,EAA0C,MAAM;QAChD,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcu6B,IAAd,CAAmB/xB,OAAxB,EAAiC,OAAA;QACjCo0B,gBAAgB,EAAA,CAAA;IACjB,GAHC,CAAF,CAAA;MAIAhmC,EAAE,CAAC,kBAAD,EAAqB,MAAM;QAC3B,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcu6B,IAAd,CAAmB/xB,OAAxB,EAAiC,OAAA;QACjCu0B,gBAAgB,EAAA,CAAA;IACjB,GAHC,CAAF,CAAA;MAIAnmC,EAAE,CAAC,SAAD,EAAY,MAAM;QAClB,IAAI,CAAC6I,MAAM,CAACO,MAAP,CAAcu6B,IAAd,CAAmB/xB,OAAxB,EAAiC,OAAA;QACjCnC,OAAO,EAAA,CAAA;IACR,GAHC,CAAF,CAAA;IAID;;ICvTc,SAASm3B,OAAT,CAA+C,IAAA,EAAA;MAAA,IAA9B;QAAE/9B,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC5DuO,EAAAA,YAAY,CAAC;IACX3T,IAAAA,OAAO,EAAE;IACPgX,MAAAA,OAAO,EAAE,KADF;IAEPi1B,MAAAA,IAAI,EAAE,EAFC;IAGPhsC,MAAAA,YAAY,EAAE,KAHP;IAIPtC,MAAAA,GAAG,EAAE,QAJE;IAKPuuC,MAAAA,SAAS,EAAE,KAAA;IALJ,KAAA;IADE,GAAD,CAAZ,CAAA;MAUA,IAAIv5B,WAAW,GAAG,KAAlB,CAAA;MACA,IAAIw5B,KAAK,GAAG,EAAZ,CAAA;;MAEA,MAAMC,OAAO,GAAIljC,IAAD,IAAU;IACxB,IAAA,OAAOA,IAAI,CACRuD,QADI,EAAA,CAEJN,OAFI,CAEI,MAFJ,EAEY,GAFZ,CAGJA,CAAAA,OAHI,CAGI,UAHJ,EAGgB,EAHhB,CAAA,CAIJA,OAJI,CAII,MAJJ,EAIY,GAJZ,CAAA,CAKJA,OALI,CAKI,KALJ,EAKW,EALX,EAMJA,OANI,CAMI,KANJ,EAMW,EANX,CAAP,CAAA;OADF,CAAA;;MAUA,MAAMkgC,aAAa,GAAIC,WAAD,IAAiB;QACrC,MAAMlrC,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,IAAA,IAAIjC,QAAJ,CAAA;;IACA,IAAA,IAAIqtC,WAAJ,EAAiB;IACfrtC,MAAAA,QAAQ,GAAG,IAAIstC,GAAJ,CAAQD,WAAR,CAAX,CAAA;IACD,KAFD,MAEO;UACLrtC,QAAQ,GAAGmC,MAAM,CAACnC,QAAlB,CAAA;IACD,KAAA;;QACD,MAAMutC,SAAS,GAAGvtC,QAAQ,CAACM,QAAT,CACfsN,KADe,CACT,CADS,CAAA,CAEf/I,KAFe,CAET,GAFS,EAGfvB,MAHe,CAGPkqC,IAAD,IAAUA,IAAI,KAAK,EAHX,CAAlB,CAAA;IAIA,IAAA,MAAM/O,KAAK,GAAG8O,SAAS,CAAC5uC,MAAxB,CAAA;IACA,IAAA,MAAMD,GAAG,GAAG6uC,SAAS,CAAC9O,KAAK,GAAG,CAAT,CAArB,CAAA;IACA,IAAA,MAAM/7B,KAAK,GAAG6qC,SAAS,CAAC9O,KAAK,GAAG,CAAT,CAAvB,CAAA;QACA,OAAO;UAAE//B,GAAF;IAAOgE,MAAAA,KAAAA;SAAd,CAAA;OAfF,CAAA;;IAiBA,EAAA,MAAM+qC,UAAU,GAAG,CAAC/uC,GAAD,EAAMqL,KAAN,KAAgB;QACjC,MAAM5H,MAAM,GAAGF,SAAS,EAAxB,CAAA;QACA,IAAI,CAACyR,WAAD,IAAgB,CAAC1E,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBgX,OAA3C,EAAoD,OAAA;IACpD,IAAA,IAAI/X,QAAJ,CAAA;;IACA,IAAA,IAAIgP,MAAM,CAACO,MAAP,CAAcihB,GAAlB,EAAuB;UACrBxwB,QAAQ,GAAG,IAAIstC,GAAJ,CAAQt+B,MAAM,CAACO,MAAP,CAAcihB,GAAtB,CAAX,CAAA;IACD,KAFD,MAEO;UACLxwB,QAAQ,GAAGmC,MAAM,CAACnC,QAAlB,CAAA;IACD,KAAA;;QACD,MAAM+Z,KAAK,GAAG/K,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBV,KAAjB,CAAd,CAAA;QACA,IAAIrH,KAAK,GAAGyqC,OAAO,CAACpzB,KAAK,CAACxU,IAAN,CAAW,cAAX,CAAD,CAAnB,CAAA;;QACA,IAAIyJ,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBisC,IAAtB,CAA2BruC,MAA3B,GAAoC,CAAxC,EAA2C;UACzC,IAAIquC,IAAI,GAAGh+B,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBisC,IAAjC,CAAA;UACA,IAAIA,IAAI,CAACA,IAAI,CAACruC,MAAL,GAAc,CAAf,CAAJ,KAA0B,GAA9B,EAAmCquC,IAAI,GAAGA,IAAI,CAACp/B,KAAL,CAAW,CAAX,EAAco/B,IAAI,CAACruC,MAAL,GAAc,CAA5B,CAAP,CAAA;IACnC+D,MAAAA,KAAK,GAAI,CAAEsqC,EAAAA,IAAK,IAAGtuC,GAAI,CAAA,CAAA,EAAGgE,KAAM,CAAhC,CAAA,CAAA;SAHF,MAIO,IAAI,CAAC1C,QAAQ,CAACM,QAAT,CAAkBqsC,QAAlB,CAA2BjuC,GAA3B,CAAL,EAAsC;IAC3CgE,MAAAA,KAAK,GAAI,CAAA,EAAEhE,GAAI,CAAA,CAAA,EAAGgE,KAAM,CAAxB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIsM,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBksC,SAA1B,EAAqC;UACnCvqC,KAAK,IAAI1C,QAAQ,CAACQ,MAAlB,CAAA;IACD,KAAA;;IACD,IAAA,MAAMktC,YAAY,GAAGvrC,MAAM,CAACpB,OAAP,CAAe4sC,KAApC,CAAA;;IACA,IAAA,IAAID,YAAY,IAAIA,YAAY,CAAChrC,KAAb,KAAuBA,KAA3C,EAAkD;IAChD,MAAA,OAAA;IACD,KAAA;;IACD,IAAA,IAAIsM,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBC,YAA1B,EAAwC;IACtCmB,MAAAA,MAAM,CAACpB,OAAP,CAAeC,YAAf,CAA4B;IAAE0B,QAAAA,KAAAA;WAA9B,EAAuC,IAAvC,EAA6CA,KAA7C,CAAA,CAAA;IACD,KAFD,MAEO;IACLP,MAAAA,MAAM,CAACpB,OAAP,CAAeE,SAAf,CAAyB;IAAEyB,QAAAA,KAAAA;WAA3B,EAAoC,IAApC,EAA0CA,KAA1C,CAAA,CAAA;IACD,KAAA;OA7BH,CAAA;;MAgCA,MAAMkrC,aAAa,GAAG,CAACp+B,KAAD,EAAQ9M,KAAR,EAAeke,YAAf,KAAgC;IACpD,IAAA,IAAIle,KAAJ,EAAW;UACT,KAAK,IAAIgB,CAAC,GAAG,CAAR,EAAW/E,MAAM,GAAGqQ,MAAM,CAACiJ,MAAP,CAActZ,MAAvC,EAA+C+E,CAAC,GAAG/E,MAAnD,EAA2D+E,CAAC,IAAI,CAAhE,EAAmE;YACjE,MAAMqW,KAAK,GAAG/K,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiB/G,CAAjB,CAAd,CAAA;YACA,MAAMmqC,YAAY,GAAGV,OAAO,CAACpzB,KAAK,CAACxU,IAAN,CAAW,cAAX,CAAD,CAA5B,CAAA;;IACA,QAAA,IAAIsoC,YAAY,KAAKnrC,KAAjB,IAA0B,CAACqX,KAAK,CAAC1U,QAAN,CAAe2J,MAAM,CAACO,MAAP,CAAcyP,mBAA7B,CAA/B,EAAkF;IAChF,UAAA,MAAMjV,KAAK,GAAGgQ,KAAK,CAAChQ,KAAN,EAAd,CAAA;IACAiF,UAAAA,MAAM,CAACyS,OAAP,CAAe1X,KAAf,EAAsByF,KAAtB,EAA6BoR,YAA7B,CAAA,CAAA;IACD,SAAA;IACF,OAAA;IACF,KATD,MASO;IACL5R,MAAAA,MAAM,CAACyS,OAAP,CAAe,CAAf,EAAkBjS,KAAlB,EAAyBoR,YAAzB,CAAA,CAAA;IACD,KAAA;OAZH,CAAA;;MAeA,MAAMktB,kBAAkB,GAAG,MAAM;QAC/BZ,KAAK,GAAGE,aAAa,CAACp+B,MAAM,CAACO,MAAP,CAAcihB,GAAf,CAArB,CAAA;IACAod,IAAAA,aAAa,CAAC5+B,MAAM,CAACO,MAAP,CAAcC,KAAf,EAAsB09B,KAAK,CAACxqC,KAA5B,EAAmC,KAAnC,CAAb,CAAA;OAFF,CAAA;;MAKA,MAAM4S,IAAI,GAAG,MAAM;QACjB,MAAMnT,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACA,IAAA,IAAI,CAAC+M,MAAM,CAACO,MAAP,CAAcxO,OAAnB,EAA4B,OAAA;;QAC5B,IAAI,CAACoB,MAAM,CAACpB,OAAR,IAAmB,CAACoB,MAAM,CAACpB,OAAP,CAAeE,SAAvC,EAAkD;IAChD+N,MAAAA,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBgX,OAAtB,GAAgC,KAAhC,CAAA;IACA/I,MAAAA,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6Bh2B,OAA7B,GAAuC,IAAvC,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACDrE,IAAAA,WAAW,GAAG,IAAd,CAAA;QACAw5B,KAAK,GAAGE,aAAa,CAACp+B,MAAM,CAACO,MAAP,CAAcihB,GAAf,CAArB,CAAA;QACA,IAAI,CAAC0c,KAAK,CAACxuC,GAAP,IAAc,CAACwuC,KAAK,CAACxqC,KAAzB,EAAgC,OAAA;IAChCkrC,IAAAA,aAAa,CAAC,CAAD,EAAIV,KAAK,CAACxqC,KAAV,EAAiBsM,MAAM,CAACO,MAAP,CAAcoQ,kBAA/B,CAAb,CAAA;;QACA,IAAI,CAAC3Q,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBC,YAA3B,EAAyC;IACvCmB,MAAAA,MAAM,CAACrD,gBAAP,CAAwB,UAAxB,EAAoCgvC,kBAApC,CAAA,CAAA;IACD,KAAA;OAdH,CAAA;;MAgBA,MAAMl4B,OAAO,GAAG,MAAM;QACpB,MAAMzT,MAAM,GAAGF,SAAS,EAAxB,CAAA;;QACA,IAAI,CAAC+M,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBC,YAA3B,EAAyC;IACvCmB,MAAAA,MAAM,CAACpD,mBAAP,CAA2B,UAA3B,EAAuC+uC,kBAAvC,CAAA,CAAA;IACD,KAAA;OAJH,CAAA;;MAOA3nC,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBgX,OAA1B,EAAmC;UACjCzC,IAAI,EAAA,CAAA;IACL,KAAA;IACF,GAJC,CAAF,CAAA;MAKAnP,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBgX,OAA1B,EAAmC;UACjCnC,OAAO,EAAA,CAAA;IACR,KAAA;IACF,GAJC,CAAF,CAAA;MAKAzP,EAAE,CAAC,0CAAD,EAA6C,MAAM;IACnD,IAAA,IAAIuN,WAAJ,EAAiB;IACf+5B,MAAAA,UAAU,CAACz+B,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBrC,GAAvB,EAA4BsQ,MAAM,CAAC6N,WAAnC,CAAV,CAAA;IACD,KAAA;IACF,GAJC,CAAF,CAAA;MAKA1W,EAAE,CAAC,aAAD,EAAgB,MAAM;IACtB,IAAA,IAAIuN,WAAW,IAAI1E,MAAM,CAACO,MAAP,CAAc+J,OAAjC,EAA0C;IACxCm0B,MAAAA,UAAU,CAACz+B,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBrC,GAAvB,EAA4BsQ,MAAM,CAAC6N,WAAnC,CAAV,CAAA;IACD,KAAA;IACF,GAJC,CAAF,CAAA;IAKD;;ICvIc,SAASmxB,cAAT,CAA4D,IAAA,EAAA;MAAA,IAApC;QAAEh/B,MAAF;QAAU0F,YAAV;QAAwBrB,IAAxB;IAA8BlN,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;MACzE,IAAIuN,WAAW,GAAG,KAAlB,CAAA;MACA,MAAM/S,QAAQ,GAAGF,WAAW,EAA5B,CAAA;MACA,MAAM0B,MAAM,GAAGF,SAAS,EAAxB,CAAA;IACAyS,EAAAA,YAAY,CAAC;IACXq5B,IAAAA,cAAc,EAAE;IACdh2B,MAAAA,OAAO,EAAE,KADK;IAEd/W,MAAAA,YAAY,EAAE,KAFA;IAGditC,MAAAA,UAAU,EAAE,KAAA;IAHE,KAAA;IADL,GAAD,CAAZ,CAAA;;MAOA,MAAMC,YAAY,GAAG,MAAM;QACzB76B,IAAI,CAAC,YAAD,CAAJ,CAAA;IACA,IAAA,MAAM86B,OAAO,GAAGxtC,QAAQ,CAACX,QAAT,CAAkBC,IAAlB,CAAuBiN,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAhB,CAAA;IACA,IAAA,MAAMkhC,eAAe,GAAGp/B,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAA,CAAqCtX,IAArC,CAA0C,WAA1C,CAAxB,CAAA;;QACA,IAAI4oC,OAAO,KAAKC,eAAhB,EAAiC;IAC/B,MAAA,MAAM1rB,QAAQ,GAAG1T,MAAM,CAAC2G,UAAP,CACdlW,QADc,CACJ,CAAA,CAAA,EAAGuP,MAAM,CAACO,MAAP,CAAc2I,UAAW,CAAA,YAAA,EAAci2B,OAAQ,CAD9C,EAAA,CAAA,CAAA,CAEdpkC,KAFc,EAAjB,CAAA;IAGA,MAAA,IAAI,OAAO2Y,QAAP,KAAoB,WAAxB,EAAqC,OAAA;UACrC1T,MAAM,CAACyS,OAAP,CAAeiB,QAAf,CAAA,CAAA;IACD,KAAA;OAVH,CAAA;;MAYA,MAAM2rB,OAAO,GAAG,MAAM;QACpB,IAAI,CAAC36B,WAAD,IAAgB,CAAC1E,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6Bh2B,OAAlD,EAA2D,OAAA;;IAC3D,IAAA,IACE/I,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6B/sC,YAA7B,IACAmB,MAAM,CAACpB,OADP,IAEAoB,MAAM,CAACpB,OAAP,CAAeC,YAHjB,EAIE;UACAmB,MAAM,CAACpB,OAAP,CAAeC,YAAf,CACE,IADF,EAEE,IAFF,EAGG,CAAGgO,CAAAA,EAAAA,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAA,CAAqCtX,IAArC,CAA0C,WAA1C,CAAuD,CAA3D,CAAA,IAAgE,EAHlE,CAAA,CAAA;UAKA8N,IAAI,CAAC,SAAD,CAAJ,CAAA;IACD,KAXD,MAWO;UACL,MAAM0G,KAAK,GAAG/K,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAd,CAAA;IACA,MAAA,MAAM5c,IAAI,GAAG8Z,KAAK,CAACxU,IAAN,CAAW,WAAX,CAAA,IAA2BwU,KAAK,CAACxU,IAAN,CAAW,cAAX,CAAxC,CAAA;IACA5E,MAAAA,QAAQ,CAACX,QAAT,CAAkBC,IAAlB,GAAyBA,IAAI,IAAI,EAAjC,CAAA;UACAoT,IAAI,CAAC,SAAD,CAAJ,CAAA;IACD,KAAA;OAlBH,CAAA;;MAoBA,MAAMiC,IAAI,GAAG,MAAM;QACjB,IACE,CAACtG,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6Bh2B,OAA9B,IACC/I,MAAM,CAACO,MAAP,CAAcxO,OAAd,IAAyBiO,MAAM,CAACO,MAAP,CAAcxO,OAAd,CAAsBgX,OAFlD,EAIE,OAAA;IACFrE,IAAAA,WAAW,GAAG,IAAd,CAAA;IACA,IAAA,MAAMzT,IAAI,GAAGU,QAAQ,CAACX,QAAT,CAAkBC,IAAlB,CAAuBiN,OAAvB,CAA+B,GAA/B,EAAoC,EAApC,CAAb,CAAA;;IACA,IAAA,IAAIjN,IAAJ,EAAU;UACR,MAAMuP,KAAK,GAAG,CAAd,CAAA;;UACA,KAAK,IAAI9L,CAAC,GAAG,CAAR,EAAW/E,MAAM,GAAGqQ,MAAM,CAACiJ,MAAP,CAActZ,MAAvC,EAA+C+E,CAAC,GAAG/E,MAAnD,EAA2D+E,CAAC,IAAI,CAAhE,EAAmE;YACjE,MAAMqW,KAAK,GAAG/K,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiB/G,CAAjB,CAAd,CAAA;IACA,QAAA,MAAM4qC,SAAS,GAAGv0B,KAAK,CAACxU,IAAN,CAAW,WAAX,CAAA,IAA2BwU,KAAK,CAACxU,IAAN,CAAW,cAAX,CAA7C,CAAA;;IACA,QAAA,IAAI+oC,SAAS,KAAKruC,IAAd,IAAsB,CAAC8Z,KAAK,CAAC1U,QAAN,CAAe2J,MAAM,CAACO,MAAP,CAAcyP,mBAA7B,CAA3B,EAA8E;IAC5E,UAAA,MAAMjV,KAAK,GAAGgQ,KAAK,CAAChQ,KAAN,EAAd,CAAA;IACAiF,UAAAA,MAAM,CAACyS,OAAP,CAAe1X,KAAf,EAAsByF,KAAtB,EAA6BR,MAAM,CAACO,MAAP,CAAcoQ,kBAA3C,EAA+D,IAA/D,CAAA,CAAA;IACD,SAAA;IACF,OAAA;IACF,KAAA;;IACD,IAAA,IAAI3Q,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6BE,UAAjC,EAA6C;UAC3CjqC,CAAC,CAAC7B,MAAD,CAAD,CAAUgE,EAAV,CAAa,YAAb,EAA2B+nC,YAA3B,CAAA,CAAA;IACD,KAAA;OArBH,CAAA;;MAuBA,MAAMt4B,OAAO,GAAG,MAAM;IACpB,IAAA,IAAI5G,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6BE,UAAjC,EAA6C;UAC3CjqC,CAAC,CAAC7B,MAAD,CAAD,CAAUsF,GAAV,CAAc,YAAd,EAA4BymC,YAA5B,CAAA,CAAA;IACD,KAAA;OAHH,CAAA;;MAMA/nC,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6Bh2B,OAAjC,EAA0C;UACxCzC,IAAI,EAAA,CAAA;IACL,KAAA;IACF,GAJC,CAAF,CAAA;MAKAnP,EAAE,CAAC,SAAD,EAAY,MAAM;IAClB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcw+B,cAAd,CAA6Bh2B,OAAjC,EAA0C;UACxCnC,OAAO,EAAA,CAAA;IACR,KAAA;IACF,GAJC,CAAF,CAAA;MAKAzP,EAAE,CAAC,0CAAD,EAA6C,MAAM;IACnD,IAAA,IAAIuN,WAAJ,EAAiB;UACf26B,OAAO,EAAA,CAAA;IACR,KAAA;IACF,GAJC,CAAF,CAAA;MAKAloC,EAAE,CAAC,aAAD,EAAgB,MAAM;IACtB,IAAA,IAAIuN,WAAW,IAAI1E,MAAM,CAACO,MAAP,CAAc+J,OAAjC,EAA0C;UACxC+0B,OAAO,EAAA,CAAA;IACR,KAAA;IACF,GAJC,CAAF,CAAA;IAKD;;IC/FD;IAKe,SAASE,QAAT,CAAsD,IAAA,EAAA;MAAA,IAApC;QAAEv/B,MAAF;QAAU0F,YAAV;QAAwBvO,EAAxB;IAA4BkN,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;IACnE,EAAA,IAAIqlB,OAAJ,CAAA;MAEA1pB,MAAM,CAACsc,QAAP,GAAkB;IAChBC,IAAAA,OAAO,EAAE,KADO;IAEhBC,IAAAA,MAAM,EAAE,KAAA;OAFV,CAAA;IAKA9W,EAAAA,YAAY,CAAC;IACX4W,IAAAA,QAAQ,EAAE;IACRvT,MAAAA,OAAO,EAAE,KADD;IAERxL,MAAAA,KAAK,EAAE,IAFC;IAGRiiC,MAAAA,iBAAiB,EAAE,IAHX;IAIRC,MAAAA,oBAAoB,EAAE,IAJd;IAKRC,MAAAA,eAAe,EAAE,KALT;IAMRC,MAAAA,gBAAgB,EAAE,KANV;IAORC,MAAAA,iBAAiB,EAAE,KAAA;IAPX,KAAA;IADC,GAAD,CAAZ,CAAA;;IAYA,EAAA,SAASnjB,GAAT,GAAe;QACb,MAAMojB,cAAc,GAAG7/B,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBuE,MAAM,CAAC6N,WAAxB,CAAvB,CAAA;QACA,IAAItQ,KAAK,GAAGyC,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuB/e,KAAnC,CAAA;;IACA,IAAA,IAAIsiC,cAAc,CAACtpC,IAAf,CAAoB,sBAApB,CAAJ,EAAiD;IAC/CgH,MAAAA,KAAK,GAAGsiC,cAAc,CAACtpC,IAAf,CAAoB,sBAApB,CAA+CyJ,IAAAA,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuB/e,KAA9E,CAAA;IACD,KAAA;;QACD5K,YAAY,CAAC+2B,OAAD,CAAZ,CAAA;QACAA,OAAO,GAAGpsB,QAAQ,CAAC,MAAM;IACvB,MAAA,IAAIwiC,cAAJ,CAAA;;IACA,MAAA,IAAI9/B,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBqjB,gBAA3B,EAA6C;IAC3C,QAAA,IAAI3/B,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IACtB/P,UAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;IACA4rB,UAAAA,cAAc,GAAG9/B,MAAM,CAACqU,SAAP,CAAiBrU,MAAM,CAACO,MAAP,CAAcC,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB,CAAA;cACA6D,IAAI,CAAC,UAAD,CAAJ,CAAA;IACD,SAJD,MAIO,IAAI,CAACrE,MAAM,CAACiP,WAAZ,EAAyB;IAC9B6wB,UAAAA,cAAc,GAAG9/B,MAAM,CAACqU,SAAP,CAAiBrU,MAAM,CAACO,MAAP,CAAcC,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB,CAAA;cACA6D,IAAI,CAAC,UAAD,CAAJ,CAAA;aAFK,MAGA,IAAI,CAACrE,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBojB,eAA5B,EAA6C;cAClDI,cAAc,GAAG9/B,MAAM,CAACyS,OAAP,CACfzS,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CADR,EAEfqQ,MAAM,CAACO,MAAP,CAAcC,KAFC,EAGf,IAHe,EAIf,IAJe,CAAjB,CAAA;cAMA6D,IAAI,CAAC,UAAD,CAAJ,CAAA;IACD,SARM,MAQA;cACL8nB,IAAI,EAAA,CAAA;IACL,SAAA;IACF,OAnBD,MAmBO,IAAInsB,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IAC7B/P,QAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;IACA4rB,QAAAA,cAAc,GAAG9/B,MAAM,CAAC4T,SAAP,CAAiB5T,MAAM,CAACO,MAAP,CAAcC,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB,CAAA;YACA6D,IAAI,CAAC,UAAD,CAAJ,CAAA;IACD,OAJM,MAIA,IAAI,CAACrE,MAAM,CAACkP,KAAZ,EAAmB;IACxB4wB,QAAAA,cAAc,GAAG9/B,MAAM,CAAC4T,SAAP,CAAiB5T,MAAM,CAACO,MAAP,CAAcC,KAA/B,EAAsC,IAAtC,EAA4C,IAA5C,CAAjB,CAAA;YACA6D,IAAI,CAAC,UAAD,CAAJ,CAAA;WAFK,MAGA,IAAI,CAACrE,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBojB,eAA5B,EAA6C;IAClDI,QAAAA,cAAc,GAAG9/B,MAAM,CAACyS,OAAP,CAAe,CAAf,EAAkBzS,MAAM,CAACO,MAAP,CAAcC,KAAhC,EAAuC,IAAvC,EAA6C,IAA7C,CAAjB,CAAA;YACA6D,IAAI,CAAC,UAAD,CAAJ,CAAA;IACD,OAHM,MAGA;YACL8nB,IAAI,EAAA,CAAA;IACL,OAAA;;IACD,MAAA,IAAInsB,MAAM,CAACO,MAAP,CAAc+J,OAAd,IAAyBtK,MAAM,CAACsc,QAAP,CAAgBC,OAA7C,EAAsDE,GAAG,EAAzD,CAAA,KACK,IAAIqjB,cAAc,KAAK,KAAvB,EAA8B;YACjCrjB,GAAG,EAAA,CAAA;IACJ,OAAA;SArCe,EAsCflf,KAtCe,CAAlB,CAAA;IAuCD,GAAA;;IACD,EAAA,SAAS6f,KAAT,GAAiB;IACf,IAAA,IAAI,OAAOsM,OAAP,KAAmB,WAAvB,EAAoC,OAAO,KAAP,CAAA;IACpC,IAAA,IAAI1pB,MAAM,CAACsc,QAAP,CAAgBC,OAApB,EAA6B,OAAO,KAAP,CAAA;IAC7Bvc,IAAAA,MAAM,CAACsc,QAAP,CAAgBC,OAAhB,GAA0B,IAA1B,CAAA;QACAlY,IAAI,CAAC,eAAD,CAAJ,CAAA;QACAoY,GAAG,EAAA,CAAA;IACH,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;IACD,EAAA,SAAS0P,IAAT,GAAgB;QACd,IAAI,CAACnsB,MAAM,CAACsc,QAAP,CAAgBC,OAArB,EAA8B,OAAO,KAAP,CAAA;IAC9B,IAAA,IAAI,OAAOmN,OAAP,KAAmB,WAAvB,EAAoC,OAAO,KAAP,CAAA;;IAEpC,IAAA,IAAIA,OAAJ,EAAa;UACX/2B,YAAY,CAAC+2B,OAAD,CAAZ,CAAA;IACAA,MAAAA,OAAO,GAAG/yB,SAAV,CAAA;IACD,KAAA;;IACDqJ,IAAAA,MAAM,CAACsc,QAAP,CAAgBC,OAAhB,GAA0B,KAA1B,CAAA;QACAlY,IAAI,CAAC,cAAD,CAAJ,CAAA;IACA,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MACD,SAAS07B,KAAT,CAAev/B,KAAf,EAAsB;IACpB,IAAA,IAAI,CAACR,MAAM,CAACsc,QAAP,CAAgBC,OAArB,EAA8B,OAAA;IAC9B,IAAA,IAAIvc,MAAM,CAACsc,QAAP,CAAgBE,MAApB,EAA4B,OAAA;IAC5B,IAAA,IAAIkN,OAAJ,EAAa/2B,YAAY,CAAC+2B,OAAD,CAAZ,CAAA;IACb1pB,IAAAA,MAAM,CAACsc,QAAP,CAAgBE,MAAhB,GAAyB,IAAzB,CAAA;;IACA,IAAA,IAAIhc,KAAK,KAAK,CAAV,IAAe,CAACR,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBkjB,iBAA3C,EAA8D;IAC5Dx/B,MAAAA,MAAM,CAACsc,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB,CAAA;UACAC,GAAG,EAAA,CAAA;IACJ,KAHD,MAGO;IACL,MAAA,CAAC,eAAD,EAAkB,qBAAlB,EAAyChtB,OAAzC,CAAkD4I,KAAD,IAAW;YAC1D2H,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,EAAqB7W,gBAArB,CAAsCuI,KAAtC,EAA6C29B,eAA7C,CAAA,CAAA;WADF,CAAA,CAAA;IAGD,KAAA;IACF,GAAA;;IACD,EAAA,SAASgK,kBAAT,GAA8B;QAC5B,MAAMruC,QAAQ,GAAGF,WAAW,EAA5B,CAAA;;QACA,IAAIE,QAAQ,CAACsuC,eAAT,KAA6B,QAA7B,IAAyCjgC,MAAM,CAACsc,QAAP,CAAgBC,OAA7D,EAAsE;UACpEwjB,KAAK,EAAA,CAAA;IACN,KAAA;;QACD,IAAIpuC,QAAQ,CAACsuC,eAAT,KAA6B,SAA7B,IAA0CjgC,MAAM,CAACsc,QAAP,CAAgBE,MAA9D,EAAsE;UACpEC,GAAG,EAAA,CAAA;IACHzc,MAAAA,MAAM,CAACsc,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB,CAAA;IACD,KAAA;IACF,GAAA;;MACD,SAASwZ,eAAT,CAAyBt+B,CAAzB,EAA4B;QAC1B,IAAI,CAACsI,MAAD,IAAWA,MAAM,CAACyE,SAAlB,IAA+B,CAACzE,MAAM,CAAC2G,UAA3C,EAAuD,OAAA;QACvD,IAAIjP,CAAC,CAACpI,MAAF,KAAa0Q,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAjB,EAAuC,OAAA;IACvC,IAAA,CAAC,eAAD,EAAkB,qBAAlB,EAAyClX,OAAzC,CAAkD4I,KAAD,IAAW;UAC1D2H,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,EAAqB5W,mBAArB,CAAyCsI,KAAzC,EAAgD29B,eAAhD,CAAA,CAAA;SADF,CAAA,CAAA;IAGAh2B,IAAAA,MAAM,CAACsc,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB,CAAA;;IACA,IAAA,IAAI,CAACxc,MAAM,CAACsc,QAAP,CAAgBC,OAArB,EAA8B;UAC5B4P,IAAI,EAAA,CAAA;IACL,KAFD,MAEO;UACL1P,GAAG,EAAA,CAAA;IACJ,KAAA;IACF,GAAA;;IACD,EAAA,SAASyjB,YAAT,GAAwB;IACtB,IAAA,IAAIlgC,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBmjB,oBAA3B,EAAiD;UAC/CtT,IAAI,EAAA,CAAA;IACL,KAFD,MAEO;UACL9nB,IAAI,CAAC,eAAD,CAAJ,CAAA;UACA07B,KAAK,EAAA,CAAA;IACN,KAAA;;IAED,IAAA,CAAC,eAAD,EAAkB,qBAAlB,EAAyCtwC,OAAzC,CAAkD4I,KAAD,IAAW;UAC1D2H,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,EAAqB5W,mBAArB,CAAyCsI,KAAzC,EAAgD29B,eAAhD,CAAA,CAAA;SADF,CAAA,CAAA;IAGD,GAAA;;IACD,EAAA,SAASmK,YAAT,GAAwB;IACtB,IAAA,IAAIngC,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBmjB,oBAA3B,EAAiD;IAC/C,MAAA,OAAA;IACD,KAAA;;IACDz/B,IAAAA,MAAM,CAACsc,QAAP,CAAgBE,MAAhB,GAAyB,KAAzB,CAAA;QACAnY,IAAI,CAAC,gBAAD,CAAJ,CAAA;QACAoY,GAAG,EAAA,CAAA;IACJ,GAAA;;IACD,EAAA,SAAS2jB,iBAAT,GAA6B;IAC3B,IAAA,IAAIpgC,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBsjB,iBAA3B,EAA8C;IAC5C5/B,MAAAA,MAAM,CAACyG,GAAP,CAAWtP,EAAX,CAAc,YAAd,EAA4B+oC,YAA5B,CAAA,CAAA;IACAlgC,MAAAA,MAAM,CAACyG,GAAP,CAAWtP,EAAX,CAAc,YAAd,EAA4BgpC,YAA5B,CAAA,CAAA;IACD,KAAA;IACF,GAAA;;IACD,EAAA,SAASE,iBAAT,GAA6B;IAC3BrgC,IAAAA,MAAM,CAACyG,GAAP,CAAWhO,GAAX,CAAe,YAAf,EAA6BynC,YAA7B,CAAA,CAAA;IACAlgC,IAAAA,MAAM,CAACyG,GAAP,CAAWhO,GAAX,CAAe,YAAf,EAA6B0nC,YAA7B,CAAA,CAAA;IACD,GAAA;;MAEDhpC,EAAE,CAAC,MAAD,EAAS,MAAM;IACf,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBvT,OAA3B,EAAoC;UAClCqU,KAAK,EAAA,CAAA;UACL,MAAMzrB,QAAQ,GAAGF,WAAW,EAA5B,CAAA;IACAE,MAAAA,QAAQ,CAAC7B,gBAAT,CAA0B,kBAA1B,EAA8CkwC,kBAA9C,CAAA,CAAA;UACAI,iBAAiB,EAAA,CAAA;IAClB,KAAA;IACF,GAPC,CAAF,CAAA;MAQAjpC,EAAE,CAAC,uBAAD,EAA0B,CAACk2B,EAAD,EAAK7sB,KAAL,EAAYsR,QAAZ,KAAyB;IACnD,IAAA,IAAI9R,MAAM,CAACsc,QAAP,CAAgBC,OAApB,EAA6B;UAC3B,IAAIzK,QAAQ,IAAI,CAAC9R,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBmjB,oBAAxC,EAA8D;IAC5Dz/B,QAAAA,MAAM,CAACsc,QAAP,CAAgByjB,KAAhB,CAAsBv/B,KAAtB,CAAA,CAAA;IACD,OAFD,MAEO;YACL2rB,IAAI,EAAA,CAAA;IACL,OAAA;IACF,KAAA;IACF,GARC,CAAF,CAAA;MASAh1B,EAAE,CAAC,iBAAD,EAAoB,MAAM;IAC1B,IAAA,IAAI6I,MAAM,CAACsc,QAAP,CAAgBC,OAApB,EAA6B;IAC3B,MAAA,IAAIvc,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBmjB,oBAA3B,EAAiD;YAC/CtT,IAAI,EAAA,CAAA;IACL,OAFD,MAEO;YACL4T,KAAK,EAAA,CAAA;IACN,OAAA;IACF,KAAA;IACF,GARC,CAAF,CAAA;MASA5oC,EAAE,CAAC,UAAD,EAAa,MAAM;QACnB,IACE6I,MAAM,CAACO,MAAP,CAAc+J,OAAd,IACAtK,MAAM,CAACsc,QAAP,CAAgBE,MADhB,IAEA,CAACxc,MAAM,CAACO,MAAP,CAAc+b,QAAd,CAAuBmjB,oBAH1B,EAIE;UACAhjB,GAAG,EAAA,CAAA;IACJ,KAAA;IACF,GARC,CAAF,CAAA;MASAtlB,EAAE,CAAC,SAAD,EAAY,MAAM;QAClBkpC,iBAAiB,EAAA,CAAA;;IACjB,IAAA,IAAIrgC,MAAM,CAACsc,QAAP,CAAgBC,OAApB,EAA6B;UAC3B4P,IAAI,EAAA,CAAA;IACL,KAAA;;QACD,MAAMx6B,QAAQ,GAAGF,WAAW,EAA5B,CAAA;IACAE,IAAAA,QAAQ,CAAC5B,mBAAT,CAA6B,kBAA7B,EAAiDiwC,kBAAjD,CAAA,CAAA;IACD,GAPC,CAAF,CAAA;IASA5wC,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACsc,QAArB,EAA+B;QAC7ByjB,KAD6B;QAE7BtjB,GAF6B;QAG7BW,KAH6B;IAI7B+O,IAAAA,IAAAA;OAJF,CAAA,CAAA;IAMD;;IC/Mc,SAASmU,KAAT,CAA6C,IAAA,EAAA;MAAA,IAA9B;QAAEtgC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC1DuO,EAAAA,YAAY,CAAC;IACX66B,IAAAA,MAAM,EAAE;IACNvgC,MAAAA,MAAM,EAAE,IADF;IAENwgC,MAAAA,oBAAoB,EAAE,IAFhB;IAGNC,MAAAA,gBAAgB,EAAE,CAHZ;IAINC,MAAAA,qBAAqB,EAAE,2BAJjB;IAKNC,MAAAA,oBAAoB,EAAE,eAAA;IALhB,KAAA;IADG,GAAD,CAAZ,CAAA;MAUA,IAAIj8B,WAAW,GAAG,KAAlB,CAAA;MACA,IAAIk8B,aAAa,GAAG,KAApB,CAAA;MAEA5gC,MAAM,CAACugC,MAAP,GAAgB;IACdvgC,IAAAA,MAAM,EAAE,IAAA;OADV,CAAA;;IAIA,EAAA,SAAS6gC,YAAT,GAAwB;IACtB,IAAA,MAAMC,YAAY,GAAG9gC,MAAM,CAACugC,MAAP,CAAcvgC,MAAnC,CAAA;IACA,IAAA,IAAI,CAAC8gC,YAAD,IAAiBA,YAAY,CAACr8B,SAAlC,EAA6C,OAAA;IAE7C,IAAA,MAAMsM,YAAY,GAAG+vB,YAAY,CAAC/vB,YAAlC,CAAA;IACA,IAAA,MAAMD,YAAY,GAAGgwB,YAAY,CAAChwB,YAAlC,CAAA;IACA,IAAA,IAAIA,YAAY,IAAI9b,CAAC,CAAC8b,YAAD,CAAD,CAAgBza,QAAhB,CAAyB2J,MAAM,CAACO,MAAP,CAAcggC,MAAd,CAAqBG,qBAA9C,CAApB,EACE,OAAA;QACF,IAAI,OAAO3vB,YAAP,KAAwB,WAAxB,IAAuCA,YAAY,KAAK,IAA5D,EAAkE,OAAA;IAClE,IAAA,IAAImE,YAAJ,CAAA;;IACA,IAAA,IAAI4rB,YAAY,CAACvgC,MAAb,CAAoBwP,IAAxB,EAA8B;IAC5BmF,MAAAA,YAAY,GAAGnN,QAAQ,CAAC/S,CAAC,CAAC8rC,YAAY,CAAChwB,YAAd,CAAD,CAA6Bva,IAA7B,CAAkC,yBAAlC,CAAD,EAA+D,EAA/D,CAAvB,CAAA;IACD,KAFD,MAEO;IACL2e,MAAAA,YAAY,GAAGnE,YAAf,CAAA;IACD,KAAA;;IACD,IAAA,IAAI/Q,MAAM,CAACO,MAAP,CAAcwP,IAAlB,EAAwB;IACtB,MAAA,IAAIgxB,YAAY,GAAG/gC,MAAM,CAAC6N,WAA1B,CAAA;;IACA,MAAA,IAAI7N,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBslC,YAAjB,CAAA,CAA+B1qC,QAA/B,CAAwC2J,MAAM,CAACO,MAAP,CAAcyP,mBAAtD,CAAJ,EAAgF;YAC9EhQ,MAAM,CAACkU,OAAP,EAAA,CAD8E;;YAG9ElU,MAAM,CAACmU,WAAP,GAAqBnU,MAAM,CAAC2G,UAAP,CAAkB,CAAlB,CAAA,CAAqBvM,UAA1C,CAAA;YACA2mC,YAAY,GAAG/gC,MAAM,CAAC6N,WAAtB,CAAA;IACD,OAAA;;UACD,MAAM8G,SAAS,GAAG3U,MAAM,CAACiJ,MAAP,CACfxN,EADe,CACZslC,YADY,CAAA,CAEfvkC,OAFe,CAEN,CAAA,0BAAA,EAA4B0Y,YAAa,CAFnC,EAAA,CAAA,CAAA,CAGfzZ,EAHe,CAGZ,CAHY,CAIfV,CAAAA,KAJe,EAAlB,CAAA;UAKA,MAAMqE,SAAS,GAAGY,MAAM,CAACiJ,MAAP,CACfxN,EADe,CACZslC,YADY,CAAA,CAEf3kC,OAFe,CAEN,CAAA,0BAAA,EAA4B8Y,YAAa,CAFnC,EAAA,CAAA,CAAA,CAGfzZ,EAHe,CAGZ,CAHY,CAIfV,CAAAA,KAJe,EAAlB,CAAA;IAKA,MAAA,IAAI,OAAO4Z,SAAP,KAAqB,WAAzB,EAAsCO,YAAY,GAAG9V,SAAf,CAAtC,KACK,IAAI,OAAOA,SAAP,KAAqB,WAAzB,EAAsC8V,YAAY,GAAGP,SAAf,CAAtC,KACA,IAAIvV,SAAS,GAAG2hC,YAAZ,GAA2BA,YAAY,GAAGpsB,SAA9C,EAAyDO,YAAY,GAAG9V,SAAf,CAAzD,KACA8V,YAAY,GAAGP,SAAf,CAAA;IACN,KAAA;;QACD3U,MAAM,CAACyS,OAAP,CAAeyC,YAAf,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,SAAS5O,IAAT,GAAgB;QACd,MAAM;IAAEi6B,MAAAA,MAAM,EAAES,YAAAA;SAAiBhhC,GAAAA,MAAM,CAACO,MAAxC,CAAA;QACA,IAAImE,WAAJ,EAAiB,OAAO,KAAP,CAAA;IACjBA,IAAAA,WAAW,GAAG,IAAd,CAAA;IACA,IAAA,MAAMu8B,WAAW,GAAGjhC,MAAM,CAAC7Q,WAA3B,CAAA;;IACA,IAAA,IAAI6xC,YAAY,CAAChhC,MAAb,YAA+BihC,WAAnC,EAAgD;IAC9CjhC,MAAAA,MAAM,CAACugC,MAAP,CAAcvgC,MAAd,GAAuBghC,YAAY,CAAChhC,MAApC,CAAA;UACA5Q,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACugC,MAAP,CAAcvgC,MAAd,CAAqBqe,cAAnC,EAAmD;IACjDpR,QAAAA,mBAAmB,EAAE,IAD4B;IAEjD+D,QAAAA,mBAAmB,EAAE,KAAA;WAFvB,CAAA,CAAA;UAIA5hB,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACugC,MAAP,CAAcvgC,MAAd,CAAqBO,MAAnC,EAA2C;IACzC0M,QAAAA,mBAAmB,EAAE,IADoB;IAEzC+D,QAAAA,mBAAmB,EAAE,KAAA;WAFvB,CAAA,CAAA;SANF,MAUO,IAAI/hB,QAAQ,CAAC+xC,YAAY,CAAChhC,MAAd,CAAZ,EAAmC;UACxC,MAAMkhC,kBAAkB,GAAG9xC,MAAM,CAAC8Y,MAAP,CAAc,EAAd,EAAkB84B,YAAY,CAAChhC,MAA/B,CAA3B,CAAA;IACA5Q,MAAAA,MAAM,CAAC8Y,MAAP,CAAcg5B,kBAAd,EAAkC;IAChCj0B,QAAAA,mBAAmB,EAAE,IADW;IAEhC+D,QAAAA,mBAAmB,EAAE,KAAA;WAFvB,CAAA,CAAA;UAIAhR,MAAM,CAACugC,MAAP,CAAcvgC,MAAd,GAAuB,IAAIihC,WAAJ,CAAgBC,kBAAhB,CAAvB,CAAA;IACAN,MAAAA,aAAa,GAAG,IAAhB,CAAA;IACD,KAAA;;IACD5gC,IAAAA,MAAM,CAACugC,MAAP,CAAcvgC,MAAd,CAAqByG,GAArB,CAAyBjR,QAAzB,CAAkCwK,MAAM,CAACO,MAAP,CAAcggC,MAAd,CAAqBI,oBAAvD,CAAA,CAAA;QACA3gC,MAAM,CAACugC,MAAP,CAAcvgC,MAAd,CAAqB7I,EAArB,CAAwB,KAAxB,EAA+B0pC,YAA/B,CAAA,CAAA;IACA,IAAA,OAAO,IAAP,CAAA;IACD,GAAA;;MAED,SAAS3f,MAAT,CAAgBxO,OAAhB,EAAyB;IACvB,IAAA,MAAMouB,YAAY,GAAG9gC,MAAM,CAACugC,MAAP,CAAcvgC,MAAnC,CAAA;IACA,IAAA,IAAI,CAAC8gC,YAAD,IAAiBA,YAAY,CAACr8B,SAAlC,EAA6C,OAAA;QAE7C,MAAMoG,aAAa,GACjBi2B,YAAY,CAACvgC,MAAb,CAAoBsK,aAApB,KAAsC,MAAtC,GACIi2B,YAAY,CAAC/sB,oBAAb,EADJ,GAEI+sB,YAAY,CAACvgC,MAAb,CAAoBsK,aAH1B,CAJuB;;QAUvB,IAAIs2B,gBAAgB,GAAG,CAAvB,CAAA;QACA,MAAMC,gBAAgB,GAAGphC,MAAM,CAACO,MAAP,CAAcggC,MAAd,CAAqBG,qBAA9C,CAAA;;IAEA,IAAA,IAAI1gC,MAAM,CAACO,MAAP,CAAcsK,aAAd,GAA8B,CAA9B,IAAmC,CAAC7K,MAAM,CAACO,MAAP,CAAc8J,cAAtD,EAAsE;IACpE82B,MAAAA,gBAAgB,GAAGnhC,MAAM,CAACO,MAAP,CAAcsK,aAAjC,CAAA;IACD,KAAA;;QAED,IAAI,CAAC7K,MAAM,CAACO,MAAP,CAAcggC,MAAd,CAAqBC,oBAA1B,EAAgD;IAC9CW,MAAAA,gBAAgB,GAAG,CAAnB,CAAA;IACD,KAAA;;IAEDA,IAAAA,gBAAgB,GAAGjgC,IAAI,CAACsK,KAAL,CAAW21B,gBAAX,CAAnB,CAAA;IAEAL,IAAAA,YAAY,CAAC73B,MAAb,CAAoBjT,WAApB,CAAgCorC,gBAAhC,CAAA,CAAA;;IACA,IAAA,IACEN,YAAY,CAACvgC,MAAb,CAAoBwP,IAApB,IACC+wB,YAAY,CAACvgC,MAAb,CAAoBuI,OAApB,IAA+Bg4B,YAAY,CAACvgC,MAAb,CAAoBuI,OAApB,CAA4BC,OAF9D,EAGE;IACA,MAAA,KAAK,IAAIrU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGysC,gBAApB,EAAsCzsC,CAAC,IAAI,CAA3C,EAA8C;IAC5CosC,QAAAA,YAAY,CAACn6B,UAAb,CACGlW,QADH,CACa,CAA4BuP,0BAAAA,EAAAA,MAAM,CAACuP,SAAP,GAAmB7a,CAAE,CAAA,EAAA,CAD9D,CAEGc,CAAAA,QAFH,CAEY4rC,gBAFZ,CAAA,CAAA;IAGD,OAAA;IACF,KATD,MASO;IACL,MAAA,KAAK,IAAI1sC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGysC,gBAApB,EAAsCzsC,CAAC,IAAI,CAA3C,EAA8C;IAC5CosC,QAAAA,YAAY,CAAC73B,MAAb,CAAoBxN,EAApB,CAAuBuE,MAAM,CAACuP,SAAP,GAAmB7a,CAA1C,CAA6Cc,CAAAA,QAA7C,CAAsD4rC,gBAAtD,CAAA,CAAA;IACD,OAAA;IACF,KAAA;;QAED,MAAMX,gBAAgB,GAAGzgC,MAAM,CAACO,MAAP,CAAcggC,MAAd,CAAqBE,gBAA9C,CAAA;QACA,MAAMY,SAAS,GAAGZ,gBAAgB,IAAI,CAACK,YAAY,CAACvgC,MAAb,CAAoBwP,IAA3D,CAAA;;QACA,IAAI/P,MAAM,CAACuP,SAAP,KAAqBuxB,YAAY,CAACvxB,SAAlC,IAA+C8xB,SAAnD,EAA8D;IAC5D,MAAA,IAAIC,kBAAkB,GAAGR,YAAY,CAACjzB,WAAtC,CAAA;IACA,MAAA,IAAI0zB,cAAJ,CAAA;IACA,MAAA,IAAIjvB,SAAJ,CAAA;;IACA,MAAA,IAAIwuB,YAAY,CAACvgC,MAAb,CAAoBwP,IAAxB,EAA8B;IAC5B,QAAA,IACE+wB,YAAY,CAAC73B,MAAb,CACGxN,EADH,CACM6lC,kBADN,CAAA,CAEGjrC,QAFH,CAEYyqC,YAAY,CAACvgC,MAAb,CAAoByP,mBAFhC,CADF,EAIE;cACA8wB,YAAY,CAAC5sB,OAAb,EAAA,CADA;;cAGA4sB,YAAY,CAAC3sB,WAAb,GAA2B2sB,YAAY,CAACn6B,UAAb,CAAwB,CAAxB,CAAA,CAA2BvM,UAAtD,CAAA;cACAknC,kBAAkB,GAAGR,YAAY,CAACjzB,WAAlC,CAAA;IACD,SAV2B;;;YAY5B,MAAM2zB,eAAe,GAAGV,YAAY,CAAC73B,MAAb,CACrBxN,EADqB,CAClB6lC,kBADkB,CAErB9kC,CAAAA,OAFqB,CAEZ,CAA4BwD,0BAAAA,EAAAA,MAAM,CAACuP,SAAU,CAFjC,EAAA,CAAA,CAAA,CAGrB9T,EAHqB,CAGlB,CAHkB,CAIrBV,CAAAA,KAJqB,EAAxB,CAAA;YAKA,MAAM0mC,eAAe,GAAGX,YAAY,CAAC73B,MAAb,CACrBxN,EADqB,CAClB6lC,kBADkB,CAErBllC,CAAAA,OAFqB,CAEZ,CAA4B4D,0BAAAA,EAAAA,MAAM,CAACuP,SAAU,CAFjC,EAAA,CAAA,CAAA,CAGrB9T,EAHqB,CAGlB,CAHkB,CAIrBV,CAAAA,KAJqB,EAAxB,CAAA;;IAKA,QAAA,IAAI,OAAOymC,eAAP,KAA2B,WAA/B,EAA4C;IAC1CD,UAAAA,cAAc,GAAGE,eAAjB,CAAA;IACD,SAFD,MAEO,IAAI,OAAOA,eAAP,KAA2B,WAA/B,EAA4C;IACjDF,UAAAA,cAAc,GAAGC,eAAjB,CAAA;aADK,MAEA,IAAIC,eAAe,GAAGH,kBAAlB,KAAyCA,kBAAkB,GAAGE,eAAlE,EAAmF;cACxFD,cAAc,GACZT,YAAY,CAACvgC,MAAb,CAAoBoL,cAApB,GAAqC,CAArC,GAAyC81B,eAAzC,GAA2DH,kBAD7D,CAAA;aADK,MAGA,IAAIG,eAAe,GAAGH,kBAAlB,GAAuCA,kBAAkB,GAAGE,eAAhE,EAAiF;IACtFD,UAAAA,cAAc,GAAGE,eAAjB,CAAA;IACD,SAFM,MAEA;IACLF,UAAAA,cAAc,GAAGC,eAAjB,CAAA;IACD,SAAA;;YACDlvB,SAAS,GAAGtS,MAAM,CAAC6N,WAAP,GAAqB7N,MAAM,CAACsQ,aAA5B,GAA4C,MAA5C,GAAqD,MAAjE,CAAA;IACD,OAnCD,MAmCO;YACLixB,cAAc,GAAGvhC,MAAM,CAACuP,SAAxB,CAAA;YACA+C,SAAS,GAAGivB,cAAc,GAAGvhC,MAAM,CAACsQ,aAAxB,GAAwC,MAAxC,GAAiD,MAA7D,CAAA;IACD,OAAA;;IACD,MAAA,IAAI+wB,SAAJ,EAAe;YACbE,cAAc,IAAIjvB,SAAS,KAAK,MAAd,GAAuBmuB,gBAAvB,GAA0C,CAAC,CAAD,GAAKA,gBAAjE,CAAA;IACD,OAAA;;IAED,MAAA,IACEK,YAAY,CAAC1yB,oBAAb,IACA0yB,YAAY,CAAC1yB,oBAAb,CAAkCzZ,OAAlC,CAA0C4sC,cAA1C,CAAA,GAA4D,CAF9D,EAGE;IACA,QAAA,IAAIT,YAAY,CAACvgC,MAAb,CAAoB8J,cAAxB,EAAwC;cACtC,IAAIk3B,cAAc,GAAGD,kBAArB,EAAyC;IACvCC,YAAAA,cAAc,GAAGA,cAAc,GAAGrgC,IAAI,CAACsK,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAjB,GAAiD,CAAlE,CAAA;IACD,WAFD,MAEO;IACL02B,YAAAA,cAAc,GAAGA,cAAc,GAAGrgC,IAAI,CAACsK,KAAL,CAAWX,aAAa,GAAG,CAA3B,CAAjB,GAAiD,CAAlE,CAAA;IACD,WAAA;IACF,SAND,MAMO,IACL02B,cAAc,GAAGD,kBAAjB,IACAR,YAAY,CAACvgC,MAAb,CAAoBoL,cAApB,KAAuC,CAFlC,EAGL,CAED;;YACDm1B,YAAY,CAACruB,OAAb,CAAqB8uB,cAArB,EAAqC7uB,OAAO,GAAG,CAAH,GAAO/b,SAAnD,CAAA,CAAA;IACD,OAAA;IACF,KAAA;IACF,GAAA;;MAEDQ,EAAE,CAAC,YAAD,EAAe,MAAM;QACrB,MAAM;IAAEopC,MAAAA,MAAAA;SAAWvgC,GAAAA,MAAM,CAACO,MAA1B,CAAA;IACA,IAAA,IAAI,CAACggC,MAAD,IAAW,CAACA,MAAM,CAACvgC,MAAvB,EAA+B,OAAA;QAC/BsG,IAAI,EAAA,CAAA;QACJ4a,MAAM,CAAC,IAAD,CAAN,CAAA;IACD,GALC,CAAF,CAAA;MAMA/pB,EAAE,CAAC,0CAAD,EAA6C,MAAM;QACnD+pB,MAAM,EAAA,CAAA;IACP,GAFC,CAAF,CAAA;IAGA/pB,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACk2B,EAAD,EAAKp2B,QAAL,KAAkB;IACpC,IAAA,MAAM6pC,YAAY,GAAG9gC,MAAM,CAACugC,MAAP,CAAcvgC,MAAnC,CAAA;IACA,IAAA,IAAI,CAAC8gC,YAAD,IAAiBA,YAAY,CAACr8B,SAAlC,EAA6C,OAAA;QAC7Cq8B,YAAY,CAACrzB,aAAb,CAA2BxW,QAA3B,CAAA,CAAA;IACD,GAJC,CAAF,CAAA;MAKAE,EAAE,CAAC,eAAD,EAAkB,MAAM;IACxB,IAAA,MAAM2pC,YAAY,GAAG9gC,MAAM,CAACugC,MAAP,CAAcvgC,MAAnC,CAAA;IACA,IAAA,IAAI,CAAC8gC,YAAD,IAAiBA,YAAY,CAACr8B,SAAlC,EAA6C,OAAA;;IAC7C,IAAA,IAAIm8B,aAAJ,EAAmB;IACjBE,MAAAA,YAAY,CAACl6B,OAAb,EAAA,CAAA;IACD,KAAA;IACF,GANC,CAAF,CAAA;IAQAxX,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACugC,MAArB,EAA6B;QAC3Bj6B,IAD2B;IAE3B4a,IAAAA,MAAAA;OAFF,CAAA,CAAA;IAID;;IChOc,SAASxH,QAAT,CAAwD,IAAA,EAAA;MAAA,IAAtC;QAAE1Z,MAAF;QAAU0F,YAAV;QAAwBrB,IAAxB;IAA8B6C,IAAAA,IAAAA;OAAQ,GAAA,IAAA,CAAA;IACrExB,EAAAA,YAAY,CAAC;IACXgU,IAAAA,QAAQ,EAAE;IACR3Q,MAAAA,OAAO,EAAE,KADD;IAER24B,MAAAA,QAAQ,EAAE,IAFF;IAGRC,MAAAA,aAAa,EAAE,CAHP;IAIRC,MAAAA,cAAc,EAAE,IAJR;IAKRC,MAAAA,mBAAmB,EAAE,CALb;IAMRC,MAAAA,qBAAqB,EAAE,CANf;IAOR/V,MAAAA,MAAM,EAAE,KAPA;IAQRgW,MAAAA,eAAe,EAAE,IAAA;IART,KAAA;IADC,GAAD,CAAZ,CAAA;;IAaA,EAAA,SAASlrB,YAAT,GAAwB;IACtB,IAAA,MAAMzW,SAAS,GAAGJ,MAAM,CAACtC,YAAP,EAAlB,CAAA;QACAsC,MAAM,CAACoR,YAAP,CAAoBhR,SAApB,CAAA,CAAA;QACAJ,MAAM,CAACyN,aAAP,CAAqB,CAArB,CAAA,CAAA;IACAzN,IAAAA,MAAM,CAAC8W,eAAP,CAAuBsM,UAAvB,CAAkCzzB,MAAlC,GAA2C,CAA3C,CAAA;IACAqQ,IAAAA,MAAM,CAAC0Z,QAAP,CAAgBsB,UAAhB,CAA2B;UAAEM,UAAU,EAAEtb,MAAM,CAAC2I,GAAP,GAAa3I,MAAM,CAACI,SAApB,GAAgC,CAACJ,MAAM,CAACI,SAAAA;SAAjF,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,SAASuZ,WAAT,GAAuB;QACrB,MAAM;IAAE7C,MAAAA,eAAe,EAAE3d,IAAnB;IAAyB4d,MAAAA,OAAAA;SAAY/W,GAAAA,MAA3C,CADqB;;IAGrB,IAAA,IAAI7G,IAAI,CAACiqB,UAAL,CAAgBzzB,MAAhB,KAA2B,CAA/B,EAAkC;IAChCwJ,MAAAA,IAAI,CAACiqB,UAAL,CAAgBjvB,IAAhB,CAAqB;YACnB23B,QAAQ,EAAE/U,OAAO,CAAC/W,MAAM,CAAC6H,YAAP,EAAwB,GAAA,QAAxB,GAAmC,QAApC,CADE;YAEnBvH,IAAI,EAAEnH,IAAI,CAAC8f,cAAAA;WAFb,CAAA,CAAA;IAID,KAAA;;IACD9f,IAAAA,IAAI,CAACiqB,UAAL,CAAgBjvB,IAAhB,CAAqB;UACnB23B,QAAQ,EAAE/U,OAAO,CAAC/W,MAAM,CAAC6H,YAAP,EAAwB,GAAA,UAAxB,GAAqC,UAAtC,CADE;IAEnBvH,MAAAA,IAAI,EAAE9C,GAAG,EAAA;SAFX,CAAA,CAAA;IAID,GAAA;;IAED,EAAA,SAASwd,UAAT,CAAoC,KAAA,EAAA;QAAA,IAAhB;IAAEM,MAAAA,UAAAA;SAAc,GAAA,KAAA,CAAA;QAClC,MAAM;UAAE/a,MAAF;UAAUoG,UAAV;IAAsB+B,MAAAA,YAAY,EAAEC,GAApC;UAAyCS,QAAzC;IAAmD0N,MAAAA,eAAe,EAAE3d,IAAAA;SAAS6G,GAAAA,MAAnF,CADkC;;QAGlC,MAAMib,YAAY,GAAGzd,GAAG,EAAxB,CAAA;IACA,IAAA,MAAM0d,QAAQ,GAAGD,YAAY,GAAG9hB,IAAI,CAAC8f,cAArC,CAAA;;IAEA,IAAA,IAAIqC,UAAU,GAAG,CAACtb,MAAM,CAACuO,YAAP,EAAlB,EAAyC;IACvCvO,MAAAA,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAAC6N,WAAtB,CAAA,CAAA;IACA,MAAA,OAAA;IACD,KAAA;;IACD,IAAA,IAAIyN,UAAU,GAAG,CAACtb,MAAM,CAACgP,YAAP,EAAlB,EAAyC;UACvC,IAAIhP,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuByZ,QAAQ,CAACzZ,MAApC,EAA4C;IAC1CqQ,QAAAA,MAAM,CAACyS,OAAP,CAAerJ,QAAQ,CAACzZ,MAAT,GAAkB,CAAjC,CAAA,CAAA;IACD,OAFD,MAEO;YACLqQ,MAAM,CAACyS,OAAP,CAAezS,MAAM,CAACiJ,MAAP,CAActZ,MAAd,GAAuB,CAAtC,CAAA,CAAA;IACD,OAAA;;IACD,MAAA,OAAA;IACD,KAAA;;IAED,IAAA,IAAI4Q,MAAM,CAACmZ,QAAP,CAAgBgoB,QAApB,EAA8B;IAC5B,MAAA,IAAIvoC,IAAI,CAACiqB,UAAL,CAAgBzzB,MAAhB,GAAyB,CAA7B,EAAgC;IAC9B,QAAA,MAAMqyC,aAAa,GAAG7oC,IAAI,CAACiqB,UAAL,CAAgB6e,GAAhB,EAAtB,CAAA;IACA,QAAA,MAAMC,aAAa,GAAG/oC,IAAI,CAACiqB,UAAL,CAAgB6e,GAAhB,EAAtB,CAAA;YAEA,MAAMhN,QAAQ,GAAG+M,aAAa,CAAClW,QAAd,GAAyBoW,aAAa,CAACpW,QAAxD,CAAA;YACA,MAAMxrB,IAAI,GAAG0hC,aAAa,CAAC1hC,IAAd,GAAqB4hC,aAAa,CAAC5hC,IAAhD,CAAA;IACAN,QAAAA,MAAM,CAAC+iB,QAAP,GAAkBkS,QAAQ,GAAG30B,IAA7B,CAAA;YACAN,MAAM,CAAC+iB,QAAP,IAAmB,CAAnB,CAAA;;IACA,QAAA,IAAI7hB,IAAI,CAACwK,GAAL,CAAS1L,MAAM,CAAC+iB,QAAhB,CAAA,GAA4BxiB,MAAM,CAACmZ,QAAP,CAAgBqoB,eAAhD,EAAiE;cAC/D/hC,MAAM,CAAC+iB,QAAP,GAAkB,CAAlB,CAAA;IACD,SAV6B;IAY9B;;;YACA,IAAIziB,IAAI,GAAG,GAAP,IAAc9C,GAAG,EAAKwkC,GAAAA,aAAa,CAAC1hC,IAAtB,GAA6B,GAA/C,EAAoD;cAClDN,MAAM,CAAC+iB,QAAP,GAAkB,CAAlB,CAAA;IACD,SAAA;IACF,OAhBD,MAgBO;YACL/iB,MAAM,CAAC+iB,QAAP,GAAkB,CAAlB,CAAA;IACD,OAAA;;IACD/iB,MAAAA,MAAM,CAAC+iB,QAAP,IAAmBxiB,MAAM,CAACmZ,QAAP,CAAgBooB,qBAAnC,CAAA;IAEA3oC,MAAAA,IAAI,CAACiqB,UAAL,CAAgBzzB,MAAhB,GAAyB,CAAzB,CAAA;IACA,MAAA,IAAIomC,gBAAgB,GAAG,IAAA,GAAOx1B,MAAM,CAACmZ,QAAP,CAAgBioB,aAA9C,CAAA;IACA,MAAA,MAAMQ,gBAAgB,GAAGniC,MAAM,CAAC+iB,QAAP,GAAkBgT,gBAA3C,CAAA;IAEA,MAAA,IAAIqM,WAAW,GAAGpiC,MAAM,CAACI,SAAP,GAAmB+hC,gBAArC,CAAA;IACA,MAAA,IAAIx5B,GAAJ,EAASy5B,WAAW,GAAG,CAACA,WAAf,CAAA;UAET,IAAIC,QAAQ,GAAG,KAAf,CAAA;IACA,MAAA,IAAIC,mBAAJ,CAAA;IACA,MAAA,MAAMC,YAAY,GAAGrhC,IAAI,CAACwK,GAAL,CAAS1L,MAAM,CAAC+iB,QAAhB,CAAA,GAA4B,EAA5B,GAAiCxiB,MAAM,CAACmZ,QAAP,CAAgBmoB,mBAAtE,CAAA;IACA,MAAA,IAAIW,YAAJ,CAAA;;IACA,MAAA,IAAIJ,WAAW,GAAGpiC,MAAM,CAACgP,YAAP,EAAlB,EAAyC;IACvC,QAAA,IAAIzO,MAAM,CAACmZ,QAAP,CAAgBkoB,cAApB,EAAoC;cAClC,IAAIQ,WAAW,GAAGpiC,MAAM,CAACgP,YAAP,EAAd,GAAsC,CAACuzB,YAA3C,EAAyD;IACvDH,YAAAA,WAAW,GAAGpiC,MAAM,CAACgP,YAAP,KAAwBuzB,YAAtC,CAAA;IACD,WAAA;;IACDD,UAAAA,mBAAmB,GAAGtiC,MAAM,CAACgP,YAAP,EAAtB,CAAA;IACAqzB,UAAAA,QAAQ,GAAG,IAAX,CAAA;cACAlpC,IAAI,CAACshB,mBAAL,GAA2B,IAA3B,CAAA;IACD,SAPD,MAOO;IACL2nB,UAAAA,WAAW,GAAGpiC,MAAM,CAACgP,YAAP,EAAd,CAAA;IACD,SAAA;;YACD,IAAIzO,MAAM,CAACwP,IAAP,IAAexP,MAAM,CAAC8J,cAA1B,EAA0Cm4B,YAAY,GAAG,IAAf,CAAA;WAX5C,MAYO,IAAIJ,WAAW,GAAGpiC,MAAM,CAACuO,YAAP,EAAlB,EAAyC;IAC9C,QAAA,IAAIhO,MAAM,CAACmZ,QAAP,CAAgBkoB,cAApB,EAAoC;cAClC,IAAIQ,WAAW,GAAGpiC,MAAM,CAACuO,YAAP,EAAd,GAAsCg0B,YAA1C,EAAwD;IACtDH,YAAAA,WAAW,GAAGpiC,MAAM,CAACuO,YAAP,KAAwBg0B,YAAtC,CAAA;IACD,WAAA;;IACDD,UAAAA,mBAAmB,GAAGtiC,MAAM,CAACuO,YAAP,EAAtB,CAAA;IACA8zB,UAAAA,QAAQ,GAAG,IAAX,CAAA;cACAlpC,IAAI,CAACshB,mBAAL,GAA2B,IAA3B,CAAA;IACD,SAPD,MAOO;IACL2nB,UAAAA,WAAW,GAAGpiC,MAAM,CAACuO,YAAP,EAAd,CAAA;IACD,SAAA;;YACD,IAAIhO,MAAM,CAACwP,IAAP,IAAexP,MAAM,CAAC8J,cAA1B,EAA0Cm4B,YAAY,GAAG,IAAf,CAAA;IAC3C,OAZM,MAYA,IAAIjiC,MAAM,CAACmZ,QAAP,CAAgBqS,MAApB,EAA4B;IACjC,QAAA,IAAI9b,SAAJ,CAAA;;IACA,QAAA,KAAK,IAAI7X,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGgR,QAAQ,CAACzZ,MAA7B,EAAqCyI,CAAC,IAAI,CAA1C,EAA6C;IAC3C,UAAA,IAAIgR,QAAQ,CAAChR,CAAD,CAAR,GAAc,CAACgqC,WAAnB,EAAgC;IAC9BnyB,YAAAA,SAAS,GAAG7X,CAAZ,CAAA;IACA,YAAA,MAAA;IACD,WAAA;IACF,SAAA;;IAED,QAAA,IACE8I,IAAI,CAACwK,GAAL,CAAStC,QAAQ,CAAC6G,SAAD,CAAR,GAAsBmyB,WAA/B,CACElhC,GAAAA,IAAI,CAACwK,GAAL,CAAStC,QAAQ,CAAC6G,SAAS,GAAG,CAAb,CAAR,GAA0BmyB,WAAnC,CADF,IAEApiC,MAAM,CAACkZ,cAAP,KAA0B,MAH5B,EAIE;IACAkpB,UAAAA,WAAW,GAAGh5B,QAAQ,CAAC6G,SAAD,CAAtB,CAAA;IACD,SAND,MAMO;IACLmyB,UAAAA,WAAW,GAAGh5B,QAAQ,CAAC6G,SAAS,GAAG,CAAb,CAAtB,CAAA;IACD,SAAA;;YACDmyB,WAAW,GAAG,CAACA,WAAf,CAAA;IACD,OAAA;;IACD,MAAA,IAAII,YAAJ,EAAkB;YAChBt7B,IAAI,CAAC,eAAD,EAAkB,MAAM;IAC1BlH,UAAAA,MAAM,CAACkU,OAAP,EAAA,CAAA;IACD,SAFG,CAAJ,CAAA;IAGD,OAjF2B;;;IAmF5B,MAAA,IAAIlU,MAAM,CAAC+iB,QAAP,KAAoB,CAAxB,EAA2B;IACzB,QAAA,IAAIpa,GAAJ,EAAS;IACPotB,UAAAA,gBAAgB,GAAG70B,IAAI,CAACwK,GAAL,CAAS,CAAC,CAAC02B,WAAD,GAAepiC,MAAM,CAACI,SAAvB,IAAoCJ,MAAM,CAAC+iB,QAApD,CAAnB,CAAA;IACD,SAFD,MAEO;IACLgT,UAAAA,gBAAgB,GAAG70B,IAAI,CAACwK,GAAL,CAAS,CAAC02B,WAAW,GAAGpiC,MAAM,CAACI,SAAtB,IAAmCJ,MAAM,CAAC+iB,QAAnD,CAAnB,CAAA;IACD,SAAA;;IACD,QAAA,IAAIxiB,MAAM,CAACmZ,QAAP,CAAgBqS,MAApB,EAA4B;IAC1B;IACA;IACA;IACA;IACA;IACA;IACA;IACA,UAAA,MAAM0W,YAAY,GAAGvhC,IAAI,CAACwK,GAAL,CAAS,CAAC/C,GAAG,GAAG,CAACy5B,WAAJ,GAAkBA,WAAtB,IAAqCpiC,MAAM,CAACI,SAArD,CAArB,CAAA;cACA,MAAMsiC,gBAAgB,GAAG1iC,MAAM,CAACsJ,eAAP,CAAuBtJ,MAAM,CAAC6N,WAA9B,CAAzB,CAAA;;cACA,IAAI40B,YAAY,GAAGC,gBAAnB,EAAqC;gBACnC3M,gBAAgB,GAAGx1B,MAAM,CAACC,KAA1B,CAAA;IACD,WAFD,MAEO,IAAIiiC,YAAY,GAAG,CAAA,GAAIC,gBAAvB,EAAyC;IAC9C3M,YAAAA,gBAAgB,GAAGx1B,MAAM,CAACC,KAAP,GAAe,GAAlC,CAAA;IACD,WAFM,MAEA;IACLu1B,YAAAA,gBAAgB,GAAGx1B,MAAM,CAACC,KAAP,GAAe,GAAlC,CAAA;IACD,WAAA;IACF,SAAA;IACF,OAxBD,MAwBO,IAAID,MAAM,CAACmZ,QAAP,CAAgBqS,MAApB,EAA4B;IACjC/rB,QAAAA,MAAM,CAAC8U,cAAP,EAAA,CAAA;IACA,QAAA,OAAA;IACD,OAAA;;IAED,MAAA,IAAIvU,MAAM,CAACmZ,QAAP,CAAgBkoB,cAAhB,IAAkCS,QAAtC,EAAgD;YAC9CriC,MAAM,CAAC6O,cAAP,CAAsByzB,mBAAtB,CAAA,CAAA;YACAtiC,MAAM,CAACyN,aAAP,CAAqBsoB,gBAArB,CAAA,CAAA;YACA/1B,MAAM,CAACoR,YAAP,CAAoBgxB,WAApB,CAAA,CAAA;IACApiC,QAAAA,MAAM,CAACwS,eAAP,CAAuB,IAAvB,EAA6BxS,MAAM,CAACkZ,cAApC,CAAA,CAAA;YACAlZ,MAAM,CAAC+R,SAAP,GAAmB,IAAnB,CAAA;YACApL,UAAU,CAACrN,aAAX,CAAyB,MAAM;cAC7B,IAAI,CAAC0G,MAAD,IAAWA,MAAM,CAACyE,SAAlB,IAA+B,CAACtL,IAAI,CAACshB,mBAAzC,EAA8D,OAAA;cAC9DpW,IAAI,CAAC,gBAAD,CAAJ,CAAA;IACArE,UAAAA,MAAM,CAACyN,aAAP,CAAqBlN,MAAM,CAACC,KAA5B,CAAA,CAAA;IACA9N,UAAAA,UAAU,CAAC,MAAM;gBACfsN,MAAM,CAACoR,YAAP,CAAoBkxB,mBAApB,CAAA,CAAA;gBACA37B,UAAU,CAACrN,aAAX,CAAyB,MAAM;IAC7B,cAAA,IAAI,CAAC0G,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;IACjCzE,cAAAA,MAAM,CAAC1G,aAAP,EAAA,CAAA;iBAFF,CAAA,CAAA;eAFQ,EAMP,CANO,CAAV,CAAA;aAJF,CAAA,CAAA;IAYD,OAlBD,MAkBO,IAAI0G,MAAM,CAAC+iB,QAAX,EAAqB;YAC1B1e,IAAI,CAAC,4BAAD,CAAJ,CAAA;YACArE,MAAM,CAAC6O,cAAP,CAAsBuzB,WAAtB,CAAA,CAAA;YACApiC,MAAM,CAACyN,aAAP,CAAqBsoB,gBAArB,CAAA,CAAA;YACA/1B,MAAM,CAACoR,YAAP,CAAoBgxB,WAApB,CAAA,CAAA;IACApiC,QAAAA,MAAM,CAACwS,eAAP,CAAuB,IAAvB,EAA6BxS,MAAM,CAACkZ,cAApC,CAAA,CAAA;;IACA,QAAA,IAAI,CAAClZ,MAAM,CAAC+R,SAAZ,EAAuB;cACrB/R,MAAM,CAAC+R,SAAP,GAAmB,IAAnB,CAAA;cACApL,UAAU,CAACrN,aAAX,CAAyB,MAAM;IAC7B,YAAA,IAAI,CAAC0G,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;IACjCzE,YAAAA,MAAM,CAAC1G,aAAP,EAAA,CAAA;eAFF,CAAA,CAAA;IAID,SAAA;IACF,OAbM,MAaA;YACL0G,MAAM,CAAC6O,cAAP,CAAsBuzB,WAAtB,CAAA,CAAA;IACD,OAAA;;IAEDpiC,MAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,MAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,KArJD,MAqJO,IAAI/O,MAAM,CAACmZ,QAAP,CAAgBqS,MAApB,EAA4B;IACjC/rB,MAAAA,MAAM,CAAC8U,cAAP,EAAA,CAAA;IACA,MAAA,OAAA;IACD,KAHM,MAGA,IAAIvU,MAAM,CAACmZ,QAAX,EAAqB;UAC1BrV,IAAI,CAAC,4BAAD,CAAJ,CAAA;IACD,KAAA;;IAED,IAAA,IAAI,CAAC9D,MAAM,CAACmZ,QAAP,CAAgBgoB,QAAjB,IAA6BxmB,QAAQ,IAAI3a,MAAM,CAACqb,YAApD,EAAkE;IAChE5b,MAAAA,MAAM,CAAC6O,cAAP,EAAA,CAAA;IACA7O,MAAAA,MAAM,CAACoQ,iBAAP,EAAA,CAAA;IACApQ,MAAAA,MAAM,CAACsP,mBAAP,EAAA,CAAA;IACD,KAAA;IACF,GAAA;;IAEDlgB,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;IACpB0Z,IAAAA,QAAQ,EAAE;UACR7C,YADQ;UAER8C,WAFQ;IAGRqB,MAAAA,UAAAA;IAHQ,KAAA;OADZ,CAAA,CAAA;IAOD;;ICpOc,SAAS2nB,IAAT,CAAwC,IAAA,EAAA;MAAA,IAA1B;QAAE3iC,MAAF;IAAU0F,IAAAA,YAAAA;OAAgB,GAAA,IAAA,CAAA;IACrDA,EAAAA,YAAY,CAAC;IACX8E,IAAAA,IAAI,EAAE;IACJC,MAAAA,IAAI,EAAE,CADF;IAEJiU,MAAAA,IAAI,EAAE,QAAA;IAFF,KAAA;IADK,GAAD,CAAZ,CAAA;IAOA,EAAA,IAAIkkB,sBAAJ,CAAA;IACA,EAAA,IAAIC,YAAJ,CAAA;IACA,EAAA,IAAIC,cAAJ,CAAA;;MAEA,MAAMp4B,UAAU,GAAIvB,YAAD,IAAkB;QACnC,MAAM;IAAE0B,MAAAA,aAAAA;SAAkB7K,GAAAA,MAAM,CAACO,MAAjC,CAAA;QACA,MAAM;UAAEkK,IAAF;IAAQiU,MAAAA,IAAAA;IAAR,KAAA,GAAiB1e,MAAM,CAACO,MAAP,CAAciK,IAArC,CAAA;QACAq4B,YAAY,GAAGD,sBAAsB,GAAGn4B,IAAxC,CAAA;QACAq4B,cAAc,GAAG5hC,IAAI,CAACsK,KAAL,CAAWrC,YAAY,GAAGsB,IAA1B,CAAjB,CAAA;;QACA,IAAIvJ,IAAI,CAACsK,KAAL,CAAWrC,YAAY,GAAGsB,IAA1B,CAAoCtB,KAAAA,YAAY,GAAGsB,IAAvD,EAA6D;IAC3Dm4B,MAAAA,sBAAsB,GAAGz5B,YAAzB,CAAA;IACD,KAFD,MAEO;UACLy5B,sBAAsB,GAAG1hC,IAAI,CAAC0M,IAAL,CAAUzE,YAAY,GAAGsB,IAAzB,CAAA,GAAiCA,IAA1D,CAAA;IACD,KAAA;;IACD,IAAA,IAAII,aAAa,KAAK,MAAlB,IAA4B6T,IAAI,KAAK,KAAzC,EAAgD;UAC9CkkB,sBAAsB,GAAG1hC,IAAI,CAACC,GAAL,CAASyhC,sBAAT,EAAiC/3B,aAAa,GAAGJ,IAAjD,CAAzB,CAAA;IACD,KAAA;OAZH,CAAA;;MAeA,MAAMO,WAAW,GAAG,CAACtW,CAAD,EAAIqW,KAAJ,EAAW5B,YAAX,EAAyBd,iBAAzB,KAA+C;QACjE,MAAM;UAAEsD,cAAF;IAAkB9B,MAAAA,YAAAA;SAAiB7J,GAAAA,MAAM,CAACO,MAAhD,CAAA;QACA,MAAM;UAAEkK,IAAF;IAAQiU,MAAAA,IAAAA;IAAR,KAAA,GAAiB1e,MAAM,CAACO,MAAP,CAAciK,IAArC,CAFiE;;IAIjE,IAAA,IAAIu4B,kBAAJ,CAAA;IACA,IAAA,IAAIC,MAAJ,CAAA;IACA,IAAA,IAAIC,GAAJ,CAAA;;IACA,IAAA,IAAIvkB,IAAI,KAAK,KAAT,IAAkB/S,cAAc,GAAG,CAAvC,EAA0C;IACxC,MAAA,MAAMu3B,UAAU,GAAGhiC,IAAI,CAACsK,KAAL,CAAW9W,CAAC,IAAIiX,cAAc,GAAGlB,IAArB,CAAZ,CAAnB,CAAA;UACA,MAAM04B,iBAAiB,GAAGzuC,CAAC,GAAG+V,IAAI,GAAGkB,cAAP,GAAwBu3B,UAAtD,CAAA;IACA,MAAA,MAAME,cAAc,GAClBF,UAAU,KAAK,CAAf,GACIv3B,cADJ,GAEIzK,IAAI,CAACE,GAAL,CACEF,IAAI,CAAC0M,IAAL,CAAU,CAACzE,YAAY,GAAG+5B,UAAU,GAAGz4B,IAAb,GAAoBkB,cAApC,IAAsDlB,IAAhE,CADF,EAEEkB,cAFF,CAHN,CAAA;UAOAs3B,GAAG,GAAG/hC,IAAI,CAACsK,KAAL,CAAW23B,iBAAiB,GAAGC,cAA/B,CAAN,CAAA;UACAJ,MAAM,GAAGG,iBAAiB,GAAGF,GAAG,GAAGG,cAA1B,GAA2CF,UAAU,GAAGv3B,cAAjE,CAAA;IAEAo3B,MAAAA,kBAAkB,GAAGC,MAAM,GAAIC,GAAG,GAAGL,sBAAP,GAAiCn4B,IAA/D,CAAA;UACAM,KAAK,CAACpQ,GAAN,CAAU;IACR,QAAA,eAAA,EAAiBooC,kBADT;IAERM,QAAAA,KAAK,EAAEN,kBAAAA;WAFT,CAAA,CAAA;IAID,KAlBD,MAkBO,IAAIrkB,IAAI,KAAK,QAAb,EAAuB;UAC5BskB,MAAM,GAAG9hC,IAAI,CAACsK,KAAL,CAAW9W,CAAC,GAAG+V,IAAf,CAAT,CAAA;IACAw4B,MAAAA,GAAG,GAAGvuC,CAAC,GAAGsuC,MAAM,GAAGv4B,IAAnB,CAAA;;IACA,MAAA,IAAIu4B,MAAM,GAAGF,cAAT,IAA4BE,MAAM,KAAKF,cAAX,IAA6BG,GAAG,KAAKx4B,IAAI,GAAG,CAA5E,EAAgF;IAC9Ew4B,QAAAA,GAAG,IAAI,CAAP,CAAA;;YACA,IAAIA,GAAG,IAAIx4B,IAAX,EAAiB;IACfw4B,UAAAA,GAAG,GAAG,CAAN,CAAA;IACAD,UAAAA,MAAM,IAAI,CAAV,CAAA;IACD,SAAA;IACF,OAAA;IACF,KAVM,MAUA;UACLC,GAAG,GAAG/hC,IAAI,CAACsK,KAAL,CAAW9W,CAAC,GAAGmuC,YAAf,CAAN,CAAA;IACAG,MAAAA,MAAM,GAAGtuC,CAAC,GAAGuuC,GAAG,GAAGJ,YAAnB,CAAA;IACD,KAAA;;IACD93B,IAAAA,KAAK,CAACpQ,GAAN,CACE0N,iBAAiB,CAAC,YAAD,CADnB,EAEE46B,GAAG,KAAK,CAAR,GAAYp5B,YAAY,IAAK,GAAEA,YAAa,CAAA,EAAA,CAA5C,GAAkD,EAFpD,CAAA,CAAA;OAvCF,CAAA;;MA6CA,MAAMkC,iBAAiB,GAAG,CAACpB,SAAD,EAAYvB,QAAZ,EAAsBf,iBAAtB,KAA4C;QACpE,MAAM;UAAEwB,YAAF;UAAgBQ,cAAhB;IAAgCe,MAAAA,YAAAA;SAAiBpL,GAAAA,MAAM,CAACO,MAA9D,CAAA;QACA,MAAM;IAAEkK,MAAAA,IAAAA;IAAF,KAAA,GAAWzK,MAAM,CAACO,MAAP,CAAciK,IAA/B,CAAA;QACAxK,MAAM,CAACgK,WAAP,GAAqB,CAACW,SAAS,GAAGd,YAAb,IAA6B+4B,sBAAlD,CAAA;IACA5iC,IAAAA,MAAM,CAACgK,WAAP,GAAqB9I,IAAI,CAAC0M,IAAL,CAAU5N,MAAM,CAACgK,WAAP,GAAqBS,IAA/B,IAAuCZ,YAA5D,CAAA;IACA7J,IAAAA,MAAM,CAAC2G,UAAP,CAAkBhM,GAAlB,CAAsB;UACpB,CAAC0N,iBAAiB,CAAC,OAAD,CAAlB,GAA+B,GAAErI,MAAM,CAACgK,WAAP,GAAqBH,YAAa,CAAA,EAAA,CAAA;SADrE,CAAA,CAAA;;IAGA,IAAA,IAAIQ,cAAJ,EAAoB;IAClBjB,MAAAA,QAAQ,CAACxQ,MAAT,CAAgB,CAAhB,EAAmBwQ,QAAQ,CAACzZ,MAA5B,CAAA,CAAA;UACA,MAAMqc,aAAa,GAAG,EAAtB,CAAA;;IACA,MAAA,KAAK,IAAItX,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG0U,QAAQ,CAACzZ,MAA7B,EAAqC+E,CAAC,IAAI,CAA1C,EAA6C;IAC3C,QAAA,IAAIuX,cAAc,GAAG7C,QAAQ,CAAC1U,CAAD,CAA7B,CAAA;YACA,IAAI0W,YAAJ,EAAkBa,cAAc,GAAG/K,IAAI,CAACsK,KAAL,CAAWS,cAAX,CAAjB,CAAA;IAClB,QAAA,IAAI7C,QAAQ,CAAC1U,CAAD,CAAR,GAAcsL,MAAM,CAACgK,WAAP,GAAqBZ,QAAQ,CAAC,CAAD,CAA/C,EAAoD4C,aAAa,CAAC7X,IAAd,CAAmB8X,cAAnB,CAAA,CAAA;IACrD,OAAA;;IACD7C,MAAAA,QAAQ,CAACjV,IAAT,CAAc,GAAG6X,aAAjB,CAAA,CAAA;IACD,KAAA;OAjBH,CAAA;;MAoBAhM,MAAM,CAACwK,IAAP,GAAc;QACZE,UADY;QAEZM,WAFY;IAGZe,IAAAA,iBAAAA;OAHF,CAAA;IAKD;;ICjGc,SAAS8a,WAAT,CAAqB5d,MAArB,EAA6B;MAC1C,MAAMjJ,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAE2G,UAAF;IAAcpG,IAAAA,MAAAA;IAAd,GAAA,GAAyBP,MAA/B,CAAA;;MACA,IAAIO,MAAM,CAACwP,IAAX,EAAiB;IACf/P,IAAAA,MAAM,CAACgW,WAAP,EAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,OAAO/M,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;IACpD,IAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAV,EAAeiS,UAAU,CAAChL,MAAX,CAAkBsN,MAAM,CAACvU,CAAD,CAAxB,CAAA,CAAA;IAChB,KAAA;IACF,GAJD,MAIO;QACLiS,UAAU,CAAChL,MAAX,CAAkBsN,MAAlB,CAAA,CAAA;IACD,GAAA;;MACD,IAAI1I,MAAM,CAACwP,IAAX,EAAiB;IACf/P,IAAAA,MAAM,CAACmV,UAAP,EAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAAC5U,MAAM,CAAC+D,QAAZ,EAAsB;IACpBtE,IAAAA,MAAM,CAACkhB,MAAP,EAAA,CAAA;IACD,GAAA;IACF;;ICnBc,SAAS4F,YAAT,CAAsB7d,MAAtB,EAA8B;MAC3C,MAAMjJ,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAEO,MAAF;QAAUoG,UAAV;IAAsBkH,IAAAA,WAAAA;IAAtB,GAAA,GAAsC7N,MAA5C,CAAA;;MAEA,IAAIO,MAAM,CAACwP,IAAX,EAAiB;IACf/P,IAAAA,MAAM,CAACgW,WAAP,EAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI3F,cAAc,GAAGxC,WAAW,GAAG,CAAnC,CAAA;;IACA,EAAA,IAAI,OAAO5E,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;IACpD,IAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAV,EAAeiS,UAAU,CAAC3K,OAAX,CAAmBiN,MAAM,CAACvU,CAAD,CAAzB,CAAA,CAAA;IAChB,KAAA;;IACD2b,IAAAA,cAAc,GAAGxC,WAAW,GAAG5E,MAAM,CAACtZ,MAAtC,CAAA;IACD,GALD,MAKO;QACLgX,UAAU,CAAC3K,OAAX,CAAmBiN,MAAnB,CAAA,CAAA;IACD,GAAA;;MACD,IAAI1I,MAAM,CAACwP,IAAX,EAAiB;IACf/P,IAAAA,MAAM,CAACmV,UAAP,EAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAAC5U,MAAM,CAAC+D,QAAZ,EAAsB;IACpBtE,IAAAA,MAAM,CAACkhB,MAAP,EAAA,CAAA;IACD,GAAA;;IACDlhB,EAAAA,MAAM,CAACyS,OAAP,CAAepC,cAAf,EAA+B,CAA/B,EAAkC,KAAlC,CAAA,CAAA;IACD;;ICvBc,SAASizB,QAAT,CAAkBvoC,KAAlB,EAAyBkO,MAAzB,EAAiC;MAC9C,MAAMjJ,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAE2G,UAAF;QAAcpG,MAAd;IAAsBsN,IAAAA,WAAAA;IAAtB,GAAA,GAAsC7N,MAA5C,CAAA;MACA,IAAIujC,iBAAiB,GAAG11B,WAAxB,CAAA;;MACA,IAAItN,MAAM,CAACwP,IAAX,EAAiB;QACfwzB,iBAAiB,IAAIvjC,MAAM,CAAC2T,YAA5B,CAAA;IACA3T,IAAAA,MAAM,CAACgW,WAAP,EAAA,CAAA;IACAhW,IAAAA,MAAM,CAACiJ,MAAP,GAAgBtC,UAAU,CAAClW,QAAX,CAAqB,CAAA,CAAA,EAAG8P,MAAM,CAAC2I,UAAW,CAAA,CAA1C,CAAhB,CAAA;IACD,GAAA;;IACD,EAAA,MAAMs6B,UAAU,GAAGxjC,MAAM,CAACiJ,MAAP,CAActZ,MAAjC,CAAA;;MACA,IAAIoL,KAAK,IAAI,CAAb,EAAgB;QACdiF,MAAM,CAAC8mB,YAAP,CAAoB7d,MAApB,CAAA,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;MACD,IAAIlO,KAAK,IAAIyoC,UAAb,EAAyB;QACvBxjC,MAAM,CAAC6mB,WAAP,CAAmB5d,MAAnB,CAAA,CAAA;IACA,IAAA,OAAA;IACD,GAAA;;MACD,IAAIoH,cAAc,GAAGkzB,iBAAiB,GAAGxoC,KAApB,GAA4BwoC,iBAAiB,GAAG,CAAhD,GAAoDA,iBAAzE,CAAA;MAEA,MAAME,YAAY,GAAG,EAArB,CAAA;;IACA,EAAA,KAAK,IAAI/uC,CAAC,GAAG8uC,UAAU,GAAG,CAA1B,EAA6B9uC,CAAC,IAAIqG,KAAlC,EAAyCrG,CAAC,IAAI,CAA9C,EAAiD;QAC/C,MAAMgvC,YAAY,GAAG1jC,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiB/G,CAAjB,CAArB,CAAA;IACAgvC,IAAAA,YAAY,CAACztC,MAAb,EAAA,CAAA;QACAwtC,YAAY,CAAC5rC,OAAb,CAAqB6rC,YAArB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,OAAOz6B,MAAP,KAAkB,QAAlB,IAA8B,QAAA,IAAYA,MAA9C,EAAsD;IACpD,IAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,IAAIuU,MAAM,CAACvU,CAAD,CAAV,EAAeiS,UAAU,CAAChL,MAAX,CAAkBsN,MAAM,CAACvU,CAAD,CAAxB,CAAA,CAAA;IAChB,KAAA;;QACD2b,cAAc,GACZkzB,iBAAiB,GAAGxoC,KAApB,GAA4BwoC,iBAAiB,GAAGt6B,MAAM,CAACtZ,MAAvD,GAAgE4zC,iBADlE,CAAA;IAED,GAND,MAMO;QACL58B,UAAU,CAAChL,MAAX,CAAkBsN,MAAlB,CAAA,CAAA;IACD,GAAA;;IAED,EAAA,KAAK,IAAIvU,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+uC,YAAY,CAAC9zC,MAAjC,EAAyC+E,CAAC,IAAI,CAA9C,EAAiD;IAC/CiS,IAAAA,UAAU,CAAChL,MAAX,CAAkB8nC,YAAY,CAAC/uC,CAAD,CAA9B,CAAA,CAAA;IACD,GAAA;;MAED,IAAI6L,MAAM,CAACwP,IAAX,EAAiB;IACf/P,IAAAA,MAAM,CAACmV,UAAP,EAAA,CAAA;IACD,GAAA;;IACD,EAAA,IAAI,CAAC5U,MAAM,CAAC+D,QAAZ,EAAsB;IACpBtE,IAAAA,MAAM,CAACkhB,MAAP,EAAA,CAAA;IACD,GAAA;;MACD,IAAI3gB,MAAM,CAACwP,IAAX,EAAiB;QACf/P,MAAM,CAACyS,OAAP,CAAepC,cAAc,GAAGrQ,MAAM,CAAC2T,YAAvC,EAAqD,CAArD,EAAwD,KAAxD,CAAA,CAAA;IACD,GAFD,MAEO;IACL3T,IAAAA,MAAM,CAACyS,OAAP,CAAepC,cAAf,EAA+B,CAA/B,EAAkC,KAAlC,CAAA,CAAA;IACD,GAAA;IACF;;ICpDc,SAAS+W,WAAT,CAAqBC,aAArB,EAAoC;MACjD,MAAMrnB,MAAM,GAAG,IAAf,CAAA;MACA,MAAM;QAAEO,MAAF;QAAUoG,UAAV;IAAsBkH,IAAAA,WAAAA;IAAtB,GAAA,GAAsC7N,MAA5C,CAAA;MAEA,IAAIujC,iBAAiB,GAAG11B,WAAxB,CAAA;;MACA,IAAItN,MAAM,CAACwP,IAAX,EAAiB;QACfwzB,iBAAiB,IAAIvjC,MAAM,CAAC2T,YAA5B,CAAA;IACA3T,IAAAA,MAAM,CAACgW,WAAP,EAAA,CAAA;IACAhW,IAAAA,MAAM,CAACiJ,MAAP,GAAgBtC,UAAU,CAAClW,QAAX,CAAqB,CAAA,CAAA,EAAG8P,MAAM,CAAC2I,UAAW,CAAA,CAA1C,CAAhB,CAAA;IACD,GAAA;;MACD,IAAImH,cAAc,GAAGkzB,iBAArB,CAAA;IACA,EAAA,IAAII,aAAJ,CAAA;;IAEA,EAAA,IAAI,OAAOtc,aAAP,KAAyB,QAAzB,IAAqC,QAAA,IAAYA,aAArD,EAAoE;IAClE,IAAA,KAAK,IAAI3yB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2yB,aAAa,CAAC13B,MAAlC,EAA0C+E,CAAC,IAAI,CAA/C,EAAkD;IAChDivC,MAAAA,aAAa,GAAGtc,aAAa,CAAC3yB,CAAD,CAA7B,CAAA;IACA,MAAA,IAAIsL,MAAM,CAACiJ,MAAP,CAAc06B,aAAd,CAAJ,EAAkC3jC,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBkoC,aAAjB,EAAgC1tC,MAAhC,EAAA,CAAA;IAClC,MAAA,IAAI0tC,aAAa,GAAGtzB,cAApB,EAAoCA,cAAc,IAAI,CAAlB,CAAA;IACrC,KAAA;;QACDA,cAAc,GAAGnP,IAAI,CAACC,GAAL,CAASkP,cAAT,EAAyB,CAAzB,CAAjB,CAAA;IACD,GAPD,MAOO;IACLszB,IAAAA,aAAa,GAAGtc,aAAhB,CAAA;IACA,IAAA,IAAIrnB,MAAM,CAACiJ,MAAP,CAAc06B,aAAd,CAAJ,EAAkC3jC,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiBkoC,aAAjB,EAAgC1tC,MAAhC,EAAA,CAAA;IAClC,IAAA,IAAI0tC,aAAa,GAAGtzB,cAApB,EAAoCA,cAAc,IAAI,CAAlB,CAAA;QACpCA,cAAc,GAAGnP,IAAI,CAACC,GAAL,CAASkP,cAAT,EAAyB,CAAzB,CAAjB,CAAA;IACD,GAAA;;MAED,IAAI9P,MAAM,CAACwP,IAAX,EAAiB;IACf/P,IAAAA,MAAM,CAACmV,UAAP,EAAA,CAAA;IACD,GAAA;;IAED,EAAA,IAAI,CAAC5U,MAAM,CAAC+D,QAAZ,EAAsB;IACpBtE,IAAAA,MAAM,CAACkhB,MAAP,EAAA,CAAA;IACD,GAAA;;MACD,IAAI3gB,MAAM,CAACwP,IAAX,EAAiB;QACf/P,MAAM,CAACyS,OAAP,CAAepC,cAAc,GAAGrQ,MAAM,CAAC2T,YAAvC,EAAqD,CAArD,EAAwD,KAAxD,CAAA,CAAA;IACD,GAFD,MAEO;IACL3T,IAAAA,MAAM,CAACyS,OAAP,CAAepC,cAAf,EAA+B,CAA/B,EAAkC,KAAlC,CAAA,CAAA;IACD,GAAA;IACF;;ICvCc,SAASiX,eAAT,GAA2B;MACxC,MAAMtnB,MAAM,GAAG,IAAf,CAAA;MAEA,MAAMqnB,aAAa,GAAG,EAAtB,CAAA;;IACA,EAAA,KAAK,IAAI3yB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsL,MAAM,CAACiJ,MAAP,CAActZ,MAAlC,EAA0C+E,CAAC,IAAI,CAA/C,EAAkD;QAChD2yB,aAAa,CAAClzB,IAAd,CAAmBO,CAAnB,CAAA,CAAA;IACD,GAAA;;MACDsL,MAAM,CAAConB,WAAP,CAAmBC,aAAnB,CAAA,CAAA;IACD;;ICFc,SAASuc,YAAT,CAAkC,IAAA,EAAA;MAAA,IAAZ;IAAE5jC,IAAAA,MAAAA;OAAU,GAAA,IAAA,CAAA;IAC/C5Q,EAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAd,EAAsB;IACpB6mB,IAAAA,WAAW,EAAEA,WAAW,CAACjJ,IAAZ,CAAiB5d,MAAjB,CADO;IAEpB8mB,IAAAA,YAAY,EAAEA,YAAY,CAAClJ,IAAb,CAAkB5d,MAAlB,CAFM;IAGpBsjC,IAAAA,QAAQ,EAAEA,QAAQ,CAAC1lB,IAAT,CAAc5d,MAAd,CAHU;IAIpBonB,IAAAA,WAAW,EAAEA,WAAW,CAACxJ,IAAZ,CAAiB5d,MAAjB,CAJO;IAKpBsnB,IAAAA,eAAe,EAAEA,eAAe,CAAC1J,IAAhB,CAAqB5d,MAArB,CAAA;OALnB,CAAA,CAAA;IAOD;;ICdc,SAAS6jC,UAAT,CAAoBtjC,MAApB,EAA4B;MACzC,MAAM;QACJsL,MADI;QAEJ7L,MAFI;QAGJ7I,EAHI;QAIJia,YAJI;QAKJ3D,aALI;QAMJq2B,eANI;QAOJC,WAPI;QAQJC,eARI;IASJC,IAAAA,eAAAA;IATI,GAAA,GAUF1jC,MAVJ,CAAA;MAYApJ,EAAE,CAAC,YAAD,EAAe,MAAM;IACrB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcsL,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;IACrC7L,IAAAA,MAAM,CAACtK,UAAP,CAAkBvB,IAAlB,CAAwB,CAAA,EAAE6L,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAAA,EAAEvB,MAAO,CAAxE,CAAA,CAAA,CAAA;;IACA,IAAA,IAAIk4B,WAAW,IAAIA,WAAW,EAA9B,EAAkC;UAChC/jC,MAAM,CAACtK,UAAP,CAAkBvB,IAAlB,CAAwB,CAAE6L,EAAAA,MAAM,CAACO,MAAP,CAAc6M,sBAAuB,CAA/D,EAAA,CAAA,CAAA,CAAA;IACD,KAAA;;IAED,IAAA,MAAM82B,qBAAqB,GAAGJ,eAAe,GAAGA,eAAe,EAAlB,GAAuB,EAApE,CAAA;IAEA10C,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACO,MAArB,EAA6B2jC,qBAA7B,CAAA,CAAA;IACA90C,IAAAA,MAAM,CAAC8Y,MAAP,CAAclI,MAAM,CAACqe,cAArB,EAAqC6lB,qBAArC,CAAA,CAAA;IACD,GAXC,CAAF,CAAA;MAYA/sC,EAAE,CAAC,cAAD,EAAiB,MAAM;IACvB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcsL,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;QACrCuF,YAAY,EAAA,CAAA;IACb,GAHC,CAAF,CAAA;IAIAja,EAAAA,EAAE,CAAC,eAAD,EAAkB,CAACk2B,EAAD,EAAKp2B,QAAL,KAAkB;IACpC,IAAA,IAAI+I,MAAM,CAACO,MAAP,CAAcsL,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;QACrC4B,aAAa,CAACxW,QAAD,CAAb,CAAA;IACD,GAHC,CAAF,CAAA;MAKAE,EAAE,CAAC,eAAD,EAAkB,MAAM;IACxB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcsL,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;;IACrC,IAAA,IAAIm4B,eAAJ,EAAqB;UACnB,IAAI,CAACC,eAAD,IAAoB,CAACA,eAAe,EAAGE,CAAAA,YAA3C,EAAyD,OADtC;;IAGnBnkC,MAAAA,MAAM,CAACiJ,MAAP,CAAcnO,IAAd,CAAoB0oB,OAAD,IAAa;IAC9B,QAAA,MAAMqC,QAAQ,GAAG7lB,MAAM,CAAChL,CAAP,CAASwuB,OAAT,CAAjB,CAAA;IACAqC,QAAAA,QAAQ,CACLhpB,IADH,CAEI,8GAFJ,EAIG5G,MAJH,EAAA,CAAA;IAKD,OAPD,EAHmB;;UAYnB+tC,eAAe,EAAA,CAAA;IAChB,KAAA;IACF,GAhBC,CAAF,CAAA;IAkBA,EAAA,IAAII,sBAAJ,CAAA;MACAjtC,EAAE,CAAC,eAAD,EAAkB,MAAM;IACxB,IAAA,IAAI6I,MAAM,CAACO,MAAP,CAAcsL,MAAd,KAAyBA,MAA7B,EAAqC,OAAA;;IACrC,IAAA,IAAI,CAAC7L,MAAM,CAACiJ,MAAP,CAActZ,MAAnB,EAA2B;IACzBy0C,MAAAA,sBAAsB,GAAG,IAAzB,CAAA;IACD,KAAA;;IACDvxC,IAAAA,qBAAqB,CAAC,MAAM;UAC1B,IAAIuxC,sBAAsB,IAAIpkC,MAAM,CAACiJ,MAAjC,IAA2CjJ,MAAM,CAACiJ,MAAP,CAActZ,MAA7D,EAAqE;YACnEyhB,YAAY,EAAA,CAAA;IACZgzB,QAAAA,sBAAsB,GAAG,KAAzB,CAAA;IACD,OAAA;IACF,KALoB,CAArB,CAAA;IAMD,GAXC,CAAF,CAAA;IAYD;;ICjEc,SAASC,YAAT,CAAsBC,YAAtB,EAAoCze,QAApC,EAA8C;MAC3D,IAAIye,YAAY,CAACC,WAAjB,EAA8B;QAC5B,OAAO1e,QAAQ,CAAChpB,IAAT,CAAcynC,YAAY,CAACC,WAA3B,CAAwC5pC,CAAAA,GAAxC,CAA4C;IACjD,MAAA,qBAAA,EAAuB,QAD0B;UAEjD,6BAA+B,EAAA,QAAA;IAFkB,KAA5C,CAAP,CAAA;IAID,GAAA;;IACD,EAAA,OAAOkrB,QAAP,CAAA;IACD;;ICRc,SAAS2e,0BAAT,CAAkF,IAAA,EAAA;MAAA,IAA9C;QAAExkC,MAAF;QAAU/I,QAAV;QAAoBstC,WAApB;IAAiCE,IAAAA,SAAAA;OAAa,GAAA,IAAA,CAAA;MAC/F,MAAM;QAAEx7B,MAAF;QAAU4E,WAAV;IAAuBlH,IAAAA,UAAAA;IAAvB,GAAA,GAAsC3G,MAA5C,CAAA;;MACA,IAAIA,MAAM,CAACO,MAAP,CAAc2Q,gBAAd,IAAkCja,QAAQ,KAAK,CAAnD,EAAsD;QACpD,IAAIytC,cAAc,GAAG,KAArB,CAAA;IACA,IAAA,IAAIC,oBAAJ,CAAA;;IACA,IAAA,IAAIF,SAAJ,EAAe;UACbE,oBAAoB,GAAGJ,WAAW,GAAGt7B,MAAM,CAACpM,IAAP,CAAY0nC,WAAZ,CAAH,GAA8Bt7B,MAAhE,CAAA;IACD,KAFD,MAEO;IACL07B,MAAAA,oBAAoB,GAAGJ,WAAW,GAC9Bt7B,MAAM,CAACxN,EAAP,CAAUoS,WAAV,CAAA,CAAuBhR,IAAvB,CAA4B0nC,WAA5B,CAD8B,GAE9Bt7B,MAAM,CAACxN,EAAP,CAAUoS,WAAV,CAFJ,CAAA;IAGD,KAAA;;QACD82B,oBAAoB,CAACrrC,aAArB,CAAmC,MAAM;IACvC,MAAA,IAAIorC,cAAJ,EAAoB,OAAA;IACpB,MAAA,IAAI,CAAC1kC,MAAD,IAAWA,MAAM,CAACyE,SAAtB,EAAiC,OAAA;IACjCigC,MAAAA,cAAc,GAAG,IAAjB,CAAA;UACA1kC,MAAM,CAAC+R,SAAP,GAAmB,KAAnB,CAAA;IACA,MAAA,MAAM6yB,aAAa,GAAG,CAAC,qBAAD,EAAwB,eAAxB,CAAtB,CAAA;;IACA,MAAA,KAAK,IAAIlwC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkwC,aAAa,CAACj1C,MAAlC,EAA0C+E,CAAC,IAAI,CAA/C,EAAkD;IAChDiS,QAAAA,UAAU,CAAC7N,OAAX,CAAmB8rC,aAAa,CAAClwC,CAAD,CAAhC,CAAA,CAAA;IACD,OAAA;SARH,CAAA,CAAA;IAUD,GAAA;IACF;;ICnBc,SAASmwC,UAAT,CAAkD,IAAA,EAAA;MAAA,IAA9B;QAAE7kC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC/DuO,EAAAA,YAAY,CAAC;IACXo/B,IAAAA,UAAU,EAAE;IACVC,MAAAA,SAAS,EAAE,KADD;IAEVR,MAAAA,WAAW,EAAE,IAAA;IAFH,KAAA;IADD,GAAD,CAAZ,CAAA;;MAOA,MAAMnzB,YAAY,GAAG,MAAM;QACzB,MAAM;IAAEnI,MAAAA,MAAAA;IAAF,KAAA,GAAajJ,MAAnB,CAAA;IACA,IAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcukC,UAA7B,CAAA;;IACA,IAAA,KAAK,IAAIpwC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;UACzC,MAAMmxB,QAAQ,GAAG7lB,MAAM,CAACiJ,MAAP,CAAcxN,EAAd,CAAiB/G,CAAjB,CAAjB,CAAA;IACA,MAAA,MAAMsF,MAAM,GAAG6rB,QAAQ,CAAC,CAAD,CAAR,CAAY/X,iBAA3B,CAAA;UACA,IAAIk3B,EAAE,GAAG,CAAChrC,MAAV,CAAA;UACA,IAAI,CAACgG,MAAM,CAACO,MAAP,CAAc2Q,gBAAnB,EAAqC8zB,EAAE,IAAIhlC,MAAM,CAACI,SAAb,CAAA;UACrC,IAAI6kC,EAAE,GAAG,CAAT,CAAA;;IACA,MAAA,IAAI,CAACjlC,MAAM,CAAC6H,YAAP,EAAL,EAA4B;IAC1Bo9B,QAAAA,EAAE,GAAGD,EAAL,CAAA;IACAA,QAAAA,EAAE,GAAG,CAAL,CAAA;IACD,OAAA;;UACD,MAAME,YAAY,GAAGllC,MAAM,CAACO,MAAP,CAAcukC,UAAd,CAAyBC,SAAzB,GACjB7jC,IAAI,CAACC,GAAL,CAAS,CAAID,GAAAA,IAAI,CAACwK,GAAL,CAASma,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAArB,CAAb,EAA6C,CAA7C,CADiB,GAEjB,CAAIC,GAAAA,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAAS0kB,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAArB,EAA+B,CAAC,CAAhC,CAAT,EAA6C,CAA7C,CAFR,CAAA;IAIA,MAAA,MAAMgW,SAAS,GAAGotB,YAAY,CAAC9jC,MAAD,EAASslB,QAAT,CAA9B,CAAA;UACA5O,SAAS,CACNtc,GADH,CACO;IACHi3B,QAAAA,OAAO,EAAEsT,YAAAA;IADN,OADP,EAIGnuC,SAJH,CAIc,eAAciuC,EAAG,CAAA,IAAA,EAAMC,EAAG,CAJxC,QAAA,CAAA,CAAA,CAAA;IAKD,KAAA;OAvBH,CAAA;;MAyBA,MAAMx3B,aAAa,GAAIxW,QAAD,IAAc;QAClC,MAAM;IAAEstC,MAAAA,WAAAA;IAAF,KAAA,GAAkBvkC,MAAM,CAACO,MAAP,CAAcukC,UAAtC,CAAA;IACA,IAAA,MAAMK,mBAAmB,GAAGZ,WAAW,GAAGvkC,MAAM,CAACiJ,MAAP,CAAcpM,IAAd,CAAmB0nC,WAAnB,CAAH,GAAqCvkC,MAAM,CAACiJ,MAAnF,CAAA;QACAk8B,mBAAmB,CAACnuC,UAApB,CAA+BC,QAA/B,CAAA,CAAA;IACAutC,IAAAA,0BAA0B,CAAC;UAAExkC,MAAF;UAAU/I,QAAV;UAAoBstC,WAApB;IAAiCE,MAAAA,SAAS,EAAE,IAAA;IAA5C,KAAD,CAA1B,CAAA;OAJF,CAAA;;IAOAZ,EAAAA,UAAU,CAAC;IACTh4B,IAAAA,MAAM,EAAE,MADC;QAET7L,MAFS;QAGT7I,EAHS;QAITia,YAJS;QAKT3D,aALS;IAMTq2B,IAAAA,eAAe,EAAE,OAAO;IACtBj5B,MAAAA,aAAa,EAAE,CADO;IAEtBc,MAAAA,cAAc,EAAE,CAFM;IAGtBsB,MAAAA,mBAAmB,EAAE,IAHC;IAItBpD,MAAAA,YAAY,EAAE,CAJQ;IAKtBqH,MAAAA,gBAAgB,EAAE,CAAClR,MAAM,CAACO,MAAP,CAAc+J,OAAAA;SALlB,CAAA;IANR,GAAD,CAAV,CAAA;IAcD;;ICvDc,SAAS86B,UAAT,CAAkD,IAAA,EAAA;MAAA,IAA9B;QAAEplC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC/DuO,EAAAA,YAAY,CAAC;IACX2/B,IAAAA,UAAU,EAAE;IACVlB,MAAAA,YAAY,EAAE,IADJ;IAEVmB,MAAAA,MAAM,EAAE,IAFE;IAGVC,MAAAA,YAAY,EAAE,EAHJ;IAIVC,MAAAA,WAAW,EAAE,IAAA;IAJH,KAAA;IADD,GAAD,CAAZ,CAAA;;MASA,MAAMC,kBAAkB,GAAG,CAAC5f,QAAD,EAAW5kB,QAAX,EAAqB4G,YAArB,KAAsC;IAC/D,IAAA,IAAI69B,YAAY,GAAG79B,YAAY,GAC3Bge,QAAQ,CAAChpB,IAAT,CAAc,2BAAd,CAD2B,GAE3BgpB,QAAQ,CAAChpB,IAAT,CAAc,0BAAd,CAFJ,CAAA;IAGA,IAAA,IAAI8oC,WAAW,GAAG99B,YAAY,GAC1Bge,QAAQ,CAAChpB,IAAT,CAAc,4BAAd,CAD0B,GAE1BgpB,QAAQ,CAAChpB,IAAT,CAAc,6BAAd,CAFJ,CAAA;;IAGA,IAAA,IAAI6oC,YAAY,CAAC/1C,MAAb,KAAwB,CAA5B,EAA+B;UAC7B+1C,YAAY,GAAG1wC,CAAC,CAAE,CAAkC6S,gCAAAA,EAAAA,YAAY,GAAG,MAAH,GAAY,KAAM,CAAA,QAAA,CAAlE,CAAhB,CAAA;UACAge,QAAQ,CAAClqB,MAAT,CAAgB+pC,YAAhB,CAAA,CAAA;IACD,KAAA;;IACD,IAAA,IAAIC,WAAW,CAACh2C,MAAZ,KAAuB,CAA3B,EAA8B;UAC5Bg2C,WAAW,GAAG3wC,CAAC,CACZ,CAAkC6S,gCAAAA,EAAAA,YAAY,GAAG,OAAH,GAAa,QAAS,CAAA,QAAA,CADxD,CAAf,CAAA;UAGAge,QAAQ,CAAClqB,MAAT,CAAgBgqC,WAAhB,CAAA,CAAA;IACD,KAAA;;QACD,IAAID,YAAY,CAAC/1C,MAAjB,EAAyB+1C,YAAY,CAAC,CAAD,CAAZ,CAAgB/0C,KAAhB,CAAsBihC,OAAtB,GAAgC1wB,IAAI,CAACC,GAAL,CAAS,CAACF,QAAV,EAAoB,CAApB,CAAhC,CAAA;QACzB,IAAI0kC,WAAW,CAACh2C,MAAhB,EAAwBg2C,WAAW,CAAC,CAAD,CAAX,CAAeh1C,KAAf,CAAqBihC,OAArB,GAA+B1wB,IAAI,CAACC,GAAL,CAASF,QAAT,EAAmB,CAAnB,CAA/B,CAAA;OAlB1B,CAAA;;MAqBA,MAAM+iC,eAAe,GAAG,MAAM;IAC5B;IACA,IAAA,MAAMn8B,YAAY,GAAG7H,MAAM,CAAC6H,YAAP,EAArB,CAAA;IACA7H,IAAAA,MAAM,CAACiJ,MAAP,CAAcnO,IAAd,CAAoB0oB,OAAD,IAAa;IAC9B,MAAA,MAAMviB,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASoiB,OAAO,CAACviB,QAAjB,EAA2B,CAA3B,CAAT,EAAwC,CAAC,CAAzC,CAAjB,CAAA;UACAwkC,kBAAkB,CAACzwC,CAAC,CAACwuB,OAAD,CAAF,EAAaviB,QAAb,EAAuB4G,YAAvB,CAAlB,CAAA;SAFF,CAAA,CAAA;OAHF,CAAA;;MASA,MAAMuJ,YAAY,GAAG,MAAM;QACzB,MAAM;UACJ3K,GADI;UAEJE,UAFI;UAGJsC,MAHI;IAIJjG,MAAAA,KAAK,EAAE0lB,WAJH;IAKJxlB,MAAAA,MAAM,EAAEylB,YALJ;IAMJjgB,MAAAA,YAAY,EAAEC,GANV;IAOJR,MAAAA,IAAI,EAAEM,UAPF;IAQJ5E,MAAAA,OAAAA;IARI,KAAA,GASF7D,MATJ,CAAA;IAUA,IAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc8kC,UAA7B,CAAA;IACA,IAAA,MAAMx9B,YAAY,GAAG7H,MAAM,CAAC6H,YAAP,EAArB,CAAA;IACA,IAAA,MAAMgB,SAAS,GAAG7I,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAA1D,CAAA;QACA,IAAI68B,aAAa,GAAG,CAApB,CAAA;IACA,IAAA,IAAIC,aAAJ,CAAA;;QACA,IAAItlC,MAAM,CAAC+kC,MAAX,EAAmB;IACjB,MAAA,IAAIz9B,YAAJ,EAAkB;IAChBg+B,QAAAA,aAAa,GAAGl/B,UAAU,CAAC9J,IAAX,CAAgB,qBAAhB,CAAhB,CAAA;;IACA,QAAA,IAAIgpC,aAAa,CAACl2C,MAAd,KAAyB,CAA7B,EAAgC;IAC9Bk2C,UAAAA,aAAa,GAAG7wC,CAAC,CAAC,wCAAD,CAAjB,CAAA;cACA2R,UAAU,CAAChL,MAAX,CAAkBkqC,aAAlB,CAAA,CAAA;IACD,SAAA;;YACDA,aAAa,CAAClrC,GAAd,CAAkB;cAAEuI,MAAM,EAAG,GAAEwlB,WAAY,CAAA,EAAA,CAAA;aAA3C,CAAA,CAAA;IACD,OAPD,MAOO;IACLmd,QAAAA,aAAa,GAAGp/B,GAAG,CAAC5J,IAAJ,CAAS,qBAAT,CAAhB,CAAA;;IACA,QAAA,IAAIgpC,aAAa,CAACl2C,MAAd,KAAyB,CAA7B,EAAgC;IAC9Bk2C,UAAAA,aAAa,GAAG7wC,CAAC,CAAC,wCAAD,CAAjB,CAAA;cACAyR,GAAG,CAAC9K,MAAJ,CAAWkqC,aAAX,CAAA,CAAA;IACD,SAAA;IACF,OAAA;IACF,KAAA;;IACD,IAAA,KAAK,IAAInxC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,MAAMmxB,QAAQ,GAAG5c,MAAM,CAACxN,EAAP,CAAU/G,CAAV,CAAjB,CAAA;UACA,IAAIyX,UAAU,GAAGzX,CAAjB,CAAA;;IACA,MAAA,IAAImU,SAAJ,EAAe;YACbsD,UAAU,GAAGpE,QAAQ,CAAC8d,QAAQ,CAACtvB,IAAT,CAAc,yBAAd,CAAD,EAA2C,EAA3C,CAArB,CAAA;IACD,OAAA;;IACD,MAAA,IAAIuvC,UAAU,GAAG35B,UAAU,GAAG,EAA9B,CAAA;UACA,IAAI6vB,KAAK,GAAG96B,IAAI,CAACsK,KAAL,CAAWs6B,UAAU,GAAG,GAAxB,CAAZ,CAAA;;IACA,MAAA,IAAIn9B,GAAJ,EAAS;YACPm9B,UAAU,GAAG,CAACA,UAAd,CAAA;YACA9J,KAAK,GAAG96B,IAAI,CAACsK,KAAL,CAAW,CAACs6B,UAAD,GAAc,GAAzB,CAAR,CAAA;IACD,OAAA;;UACD,MAAM7kC,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASykB,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAArB,EAA+B,CAA/B,CAAT,EAA4C,CAAC,CAA7C,CAAjB,CAAA;UACA,IAAI+jC,EAAE,GAAG,CAAT,CAAA;UACA,IAAIC,EAAE,GAAG,CAAT,CAAA;UACA,IAAIc,EAAE,GAAG,CAAT,CAAA;;IACA,MAAA,IAAI55B,UAAU,GAAG,CAAb,KAAmB,CAAvB,EAA0B;IACxB64B,QAAAA,EAAE,GAAG,CAAChJ,KAAD,GAAS,CAAT,GAAavzB,UAAlB,CAAA;IACAs9B,QAAAA,EAAE,GAAG,CAAL,CAAA;WAFF,MAGO,IAAI,CAAC55B,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;IACrC64B,QAAAA,EAAE,GAAG,CAAL,CAAA;IACAe,QAAAA,EAAE,GAAG,CAAC/J,KAAD,GAAS,CAAT,GAAavzB,UAAlB,CAAA;WAFK,MAGA,IAAI,CAAC0D,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;IACrC64B,QAAAA,EAAE,GAAGv8B,UAAU,GAAGuzB,KAAK,GAAG,CAAR,GAAYvzB,UAA9B,CAAA;IACAs9B,QAAAA,EAAE,GAAGt9B,UAAL,CAAA;WAFK,MAGA,IAAI,CAAC0D,UAAU,GAAG,CAAd,IAAmB,CAAnB,KAAyB,CAA7B,EAAgC;YACrC64B,EAAE,GAAG,CAACv8B,UAAN,CAAA;YACAs9B,EAAE,GAAG,IAAIt9B,UAAJ,GAAiBA,UAAU,GAAG,CAAb,GAAiBuzB,KAAvC,CAAA;IACD,OAAA;;IACD,MAAA,IAAIrzB,GAAJ,EAAS;YACPq8B,EAAE,GAAG,CAACA,EAAN,CAAA;IACD,OAAA;;UAED,IAAI,CAACn9B,YAAL,EAAmB;IACjBo9B,QAAAA,EAAE,GAAGD,EAAL,CAAA;IACAA,QAAAA,EAAE,GAAG,CAAL,CAAA;IACD,OAAA;;UAED,MAAMjuC,SAAS,GAAI,CAAU8Q,QAAAA,EAAAA,YAAY,GAAG,CAAH,GAAO,CAACi+B,UAAW,CAAA,aAAA,EAC1Dj+B,YAAY,GAAGi+B,UAAH,GAAgB,CAC7B,CAAA,iBAAA,EAAmBd,EAAG,CAAMC,IAAAA,EAAAA,EAAG,CAAMc,IAAAA,EAAAA,EAAG,CAFzC,GAAA,CAAA,CAAA;;UAGA,IAAI9kC,QAAQ,IAAI,CAAZ,IAAiBA,QAAQ,GAAG,CAAC,CAAjC,EAAoC;IAClC2kC,QAAAA,aAAa,GAAGz5B,UAAU,GAAG,EAAb,GAAkBlL,QAAQ,GAAG,EAA7C,CAAA;YACA,IAAI0H,GAAJ,EAASi9B,aAAa,GAAG,CAACz5B,UAAD,GAAc,EAAd,GAAmBlL,QAAQ,GAAG,EAA9C,CAAA;IACV,OAAA;;UACD4kB,QAAQ,CAAC9uB,SAAT,CAAmBA,SAAnB,CAAA,CAAA;;UACA,IAAIwJ,MAAM,CAAC4jC,YAAX,EAAyB;IACvBsB,QAAAA,kBAAkB,CAAC5f,QAAD,EAAW5kB,QAAX,EAAqB4G,YAArB,CAAlB,CAAA;IACD,OAAA;IACF,KAAA;;QACDlB,UAAU,CAAChM,GAAX,CAAe;IACb,MAAA,0BAAA,EAA6B,CAAW8N,SAAAA,EAAAA,UAAU,GAAG,CAAE,CAD1C,EAAA,CAAA;UAEb,kBAAqB,EAAA,CAAA,SAAA,EAAWA,UAAU,GAAG,CAAE,CAAA,EAAA,CAAA;SAFjD,CAAA,CAAA;;QAKA,IAAIlI,MAAM,CAAC+kC,MAAX,EAAmB;IACjB,MAAA,IAAIz9B,YAAJ,EAAkB;YAChBg+B,aAAa,CAAC9uC,SAAd,CACG,CAAA,iBAAA,EAAmB2xB,WAAW,GAAG,CAAd,GAAkBnoB,MAAM,CAACglC,YAAa,CACxD,IAAA,EAAA,CAAC7c,WAAD,GAAe,CAChB,0CAAyCnoB,MAAM,CAACilC,WAAY,CAH/D,CAAA,CAAA,CAAA,CAAA;IAKD,OAND,MAMO;YACL,MAAMQ,WAAW,GAAG9kC,IAAI,CAACwK,GAAL,CAASk6B,aAAT,IAA0B1kC,IAAI,CAACsK,KAAL,CAAWtK,IAAI,CAACwK,GAAL,CAASk6B,aAAT,CAA0B,GAAA,EAArC,IAA2C,EAAzF,CAAA;IACA,QAAA,MAAM92B,UAAU,GACd,GACC5N,IAAAA,IAAI,CAAC+kC,GAAL,CAAUD,WAAW,GAAG,CAAd,GAAkB9kC,IAAI,CAACK,EAAxB,GAA8B,GAAvC,CAAA,GAA8C,CAA9C,GACCL,IAAI,CAACI,GAAL,CAAU0kC,WAAW,GAAG,CAAd,GAAkB9kC,IAAI,CAACK,EAAxB,GAA8B,GAAvC,CAAA,GAA8C,CAFhD,CADF,CAAA;IAIA,QAAA,MAAM2kC,MAAM,GAAG3lC,MAAM,CAACilC,WAAtB,CAAA;IACA,QAAA,MAAMW,MAAM,GAAG5lC,MAAM,CAACilC,WAAP,GAAqB12B,UAApC,CAAA;IACA,QAAA,MAAM9U,MAAM,GAAGuG,MAAM,CAACglC,YAAtB,CAAA;YACAM,aAAa,CAAC9uC,SAAd,CACG,CAAA,QAAA,EAAUmvC,MAAO,CAAOC,KAAAA,EAAAA,MAAO,sBAAqBxd,YAAY,GAAG,CAAf,GAAmB3uB,MAAO,OAC7E,CAAC2uB,YAAD,GAAgB,CAAhB,GAAoBwd,MACrB,CAHH,mBAAA,CAAA,CAAA,CAAA;IAKD,OAAA;IACF,KAAA;;IACD,IAAA,MAAMC,OAAO,GAAGviC,OAAO,CAACE,QAAR,IAAoBF,OAAO,CAACI,SAA5B,GAAwC,CAACwE,UAAD,GAAc,CAAtD,GAA0D,CAA1E,CAAA;QACA9B,UAAU,CAAC5P,SAAX,CACG,CAAA,kBAAA,EAAoBqvC,OAAQ,CAC3BpmC,YAAAA,EAAAA,MAAM,CAAC6H,YAAP,EAAwB,GAAA,CAAxB,GAA4B+9B,aAC7B,CAAA,aAAA,EAAe5lC,MAAM,CAAC6H,YAAP,KAAwB,CAAC+9B,aAAzB,GAAyC,CAAE,CAH7D,IAAA,CAAA,CAAA,CAAA;IAKAj/B,IAAAA,UAAU,CAAC,CAAD,CAAV,CAAchW,KAAd,CAAoBmP,WAApB,CAAgC,2BAAhC,EAA8D,CAAEsmC,EAAAA,OAAQ,CAAxE,EAAA,CAAA,CAAA,CAAA;OApHF,CAAA;;MAsHA,MAAM34B,aAAa,GAAIxW,QAAD,IAAc;QAClC,MAAM;UAAEwP,GAAF;IAAOwC,MAAAA,MAAAA;IAAP,KAAA,GAAkBjJ,MAAxB,CAAA;QACAiJ,MAAM,CACHjS,UADH,CACcC,QADd,CAAA,CAEG4F,IAFH,CAGI,8GAHJ,CAAA,CAKG7F,UALH,CAKcC,QALd,CAAA,CAAA;;IAMA,IAAA,IAAI+I,MAAM,CAACO,MAAP,CAAc8kC,UAAd,CAAyBC,MAAzB,IAAmC,CAACtlC,MAAM,CAAC6H,YAAP,EAAxC,EAA+D;IAC7DpB,MAAAA,GAAG,CAAC5J,IAAJ,CAAS,qBAAT,CAAgC7F,CAAAA,UAAhC,CAA2CC,QAA3C,CAAA,CAAA;IACD,KAAA;OAVH,CAAA;;IAaA4sC,EAAAA,UAAU,CAAC;IACTh4B,IAAAA,MAAM,EAAE,MADC;QAET7L,MAFS;QAGT7I,EAHS;QAITia,YAJS;QAKT3D,aALS;QAMTu2B,eANS;IAOTC,IAAAA,eAAe,EAAE,MAAMjkC,MAAM,CAACO,MAAP,CAAc8kC,UAP5B;QAQTtB,WAAW,EAAE,MAAM,IARV;IASTD,IAAAA,eAAe,EAAE,OAAO;IACtBj5B,MAAAA,aAAa,EAAE,CADO;IAEtBc,MAAAA,cAAc,EAAE,CAFM;IAGtBsB,MAAAA,mBAAmB,EAAE,IAHC;IAItB4N,MAAAA,eAAe,EAAE,CAJK;IAKtBhR,MAAAA,YAAY,EAAE,CALQ;IAMtBQ,MAAAA,cAAc,EAAE,KANM;IAOtB6G,MAAAA,gBAAgB,EAAE,IAAA;SAPH,CAAA;IATR,GAAD,CAAV,CAAA;IAmBD;;IC/Lc,SAASm1B,YAAT,CAAsB9lC,MAAtB,EAA8BslB,QAA9B,EAAwC3lB,IAAxC,EAA8C;MAC3D,MAAMomC,WAAW,GAAI,CAAA,mBAAA,EAAqBpmC,IAAI,GAAI,IAAGA,IAAK,CAAA,CAAZ,GAAgB,EAAG,CAAjE,CAAA,CAAA;IACA,EAAA,MAAMqmC,gBAAgB,GAAGhmC,MAAM,CAACgkC,WAAP,GAAqB1e,QAAQ,CAAChpB,IAAT,CAAc0D,MAAM,CAACgkC,WAArB,CAArB,GAAyD1e,QAAlF,CAAA;MACA,IAAI2gB,SAAS,GAAGD,gBAAgB,CAAC91C,QAAjB,CAA2B,CAAA,CAAA,EAAG61C,WAAY,CAAA,CAA1C,CAAhB,CAAA;;IAEA,EAAA,IAAI,CAACE,SAAS,CAAC72C,MAAf,EAAuB;IACrB62C,IAAAA,SAAS,GAAGxxC,CAAC,CAAE,CAAA,+BAAA,EAAiCkL,IAAI,GAAI,CAAGA,CAAAA,EAAAA,IAAK,CAAZ,CAAA,GAAgB,EAAG,CAAA,QAAA,CAA1D,CAAb,CAAA;QACAqmC,gBAAgB,CAAC5qC,MAAjB,CAAwB6qC,SAAxB,CAAA,CAAA;IACD,GAAA;;IACD,EAAA,OAAOA,SAAP,CAAA;IACD;;ICNc,SAASC,UAAT,CAAkD,IAAA,EAAA;MAAA,IAA9B;QAAEzmC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAC/DuO,EAAAA,YAAY,CAAC;IACXghC,IAAAA,UAAU,EAAE;IACVvC,MAAAA,YAAY,EAAE,IADJ;IAEVwC,MAAAA,aAAa,EAAE,IAFL;IAGVpC,MAAAA,WAAW,EAAE,IAAA;IAHH,KAAA;IADD,GAAD,CAAZ,CAAA;;MAQA,MAAMkB,kBAAkB,GAAG,CAAC5f,QAAD,EAAW5kB,QAAX,EAAqBV,MAArB,KAAgC;IACzD,IAAA,IAAImlC,YAAY,GAAG1lC,MAAM,CAAC6H,YAAP,EAAA,GACfge,QAAQ,CAAChpB,IAAT,CAAc,2BAAd,CADe,GAEfgpB,QAAQ,CAAChpB,IAAT,CAAc,0BAAd,CAFJ,CAAA;IAGA,IAAA,IAAI8oC,WAAW,GAAG3lC,MAAM,CAAC6H,YAAP,EAAA,GACdge,QAAQ,CAAChpB,IAAT,CAAc,4BAAd,CADc,GAEdgpB,QAAQ,CAAChpB,IAAT,CAAc,6BAAd,CAFJ,CAAA;;IAGA,IAAA,IAAI6oC,YAAY,CAAC/1C,MAAb,KAAwB,CAA5B,EAA+B;IAC7B+1C,MAAAA,YAAY,GAAGW,YAAY,CAAC9lC,MAAD,EAASslB,QAAT,EAAmB7lB,MAAM,CAAC6H,YAAP,EAAA,GAAwB,MAAxB,GAAiC,KAApD,CAA3B,CAAA;IACD,KAAA;;IACD,IAAA,IAAI89B,WAAW,CAACh2C,MAAZ,KAAuB,CAA3B,EAA8B;IAC5Bg2C,MAAAA,WAAW,GAAGU,YAAY,CAAC9lC,MAAD,EAASslB,QAAT,EAAmB7lB,MAAM,CAAC6H,YAAP,EAAA,GAAwB,OAAxB,GAAkC,QAArD,CAA1B,CAAA;IACD,KAAA;;QACD,IAAI69B,YAAY,CAAC/1C,MAAjB,EAAyB+1C,YAAY,CAAC,CAAD,CAAZ,CAAgB/0C,KAAhB,CAAsBihC,OAAtB,GAAgC1wB,IAAI,CAACC,GAAL,CAAS,CAACF,QAAV,EAAoB,CAApB,CAAhC,CAAA;QACzB,IAAI0kC,WAAW,CAACh2C,MAAhB,EAAwBg2C,WAAW,CAAC,CAAD,CAAX,CAAeh1C,KAAf,CAAqBihC,OAArB,GAA+B1wB,IAAI,CAACC,GAAL,CAASF,QAAT,EAAmB,CAAnB,CAA/B,CAAA;OAd1B,CAAA;;MAiBA,MAAM+iC,eAAe,GAAG,MAAM;IAC5B;IACA,IAAA,MAAMzjC,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcmmC,UAA7B,CAAA;IACA1mC,IAAAA,MAAM,CAACiJ,MAAP,CAAcnO,IAAd,CAAoB0oB,OAAD,IAAa;IAC9B,MAAA,MAAMqC,QAAQ,GAAG7wB,CAAC,CAACwuB,OAAD,CAAlB,CAAA;IACA,MAAA,IAAIviB,QAAQ,GAAG4kB,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAA3B,CAAA;;IACA,MAAA,IAAIjB,MAAM,CAACO,MAAP,CAAcmmC,UAAd,CAAyBC,aAA7B,EAA4C;IAC1C1lC,QAAAA,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASoiB,OAAO,CAACviB,QAAjB,EAA2B,CAA3B,CAAT,EAAwC,CAAC,CAAzC,CAAX,CAAA;IACD,OAAA;;IACDwkC,MAAAA,kBAAkB,CAAC5f,QAAD,EAAW5kB,QAAX,EAAqBV,MAArB,CAAlB,CAAA;SANF,CAAA,CAAA;OAHF,CAAA;;MAaA,MAAM6Q,YAAY,GAAG,MAAM;QACzB,MAAM;UAAEnI,MAAF;IAAUP,MAAAA,YAAY,EAAEC,GAAAA;IAAxB,KAAA,GAAgC3I,MAAtC,CAAA;IACA,IAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcmmC,UAA7B,CAAA;;IACA,IAAA,KAAK,IAAIhyC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,MAAMmxB,QAAQ,GAAG5c,MAAM,CAACxN,EAAP,CAAU/G,CAAV,CAAjB,CAAA;IACA,MAAA,IAAIuM,QAAQ,GAAG4kB,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAA3B,CAAA;;IACA,MAAA,IAAIjB,MAAM,CAACO,MAAP,CAAcmmC,UAAd,CAAyBC,aAA7B,EAA4C;YAC1C1lC,QAAQ,GAAGC,IAAI,CAACC,GAAL,CAASD,IAAI,CAACE,GAAL,CAASykB,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAArB,EAA+B,CAA/B,CAAT,EAA4C,CAAC,CAA7C,CAAX,CAAA;IACD,OAAA;;IACD,MAAA,MAAMjH,MAAM,GAAG6rB,QAAQ,CAAC,CAAD,CAAR,CAAY/X,iBAA3B,CAAA;IACA,MAAA,MAAM84B,MAAM,GAAG,CAAC,GAAD,GAAO3lC,QAAtB,CAAA;UACA,IAAI4lC,OAAO,GAAGD,MAAd,CAAA;UACA,IAAIE,OAAO,GAAG,CAAd,CAAA;IACA,MAAA,IAAI9B,EAAE,GAAGhlC,MAAM,CAACO,MAAP,CAAc+J,OAAd,GAAwB,CAACtQ,MAAD,GAAUgG,MAAM,CAACI,SAAzC,GAAqD,CAACpG,MAA/D,CAAA;UACA,IAAIirC,EAAE,GAAG,CAAT,CAAA;;IACA,MAAA,IAAI,CAACjlC,MAAM,CAAC6H,YAAP,EAAL,EAA4B;IAC1Bo9B,QAAAA,EAAE,GAAGD,EAAL,CAAA;IACAA,QAAAA,EAAE,GAAG,CAAL,CAAA;YACA8B,OAAO,GAAG,CAACD,OAAX,CAAA;IACAA,QAAAA,OAAO,GAAG,CAAV,CAAA;WAJF,MAKO,IAAIl+B,GAAJ,EAAS;YACdk+B,OAAO,GAAG,CAACA,OAAX,CAAA;IACD,OAAA;;UAEDhhB,QAAQ,CAAC,CAAD,CAAR,CAAYl1B,KAAZ,CAAkBo2C,MAAlB,GAA2B,CAAC7lC,IAAI,CAACwK,GAAL,CAASxK,IAAI,CAAC86B,KAAL,CAAW/6B,QAAX,CAAT,CAAD,GAAkCgI,MAAM,CAACtZ,MAApE,CAAA;;UAEA,IAAI4Q,MAAM,CAAC4jC,YAAX,EAAyB;IACvBsB,QAAAA,kBAAkB,CAAC5f,QAAD,EAAW5kB,QAAX,EAAqBV,MAArB,CAAlB,CAAA;IACD,OAAA;;UACD,MAAMxJ,SAAS,GAAI,CAAA,YAAA,EAAciuC,EAAG,CAAA,IAAA,EAAMC,EAAG,CAAmB6B,iBAAAA,EAAAA,OAAQ,CAAeD,aAAAA,EAAAA,OAAQ,CAA/F,IAAA,CAAA,CAAA;IACA,MAAA,MAAM5vB,SAAS,GAAGotB,YAAY,CAAC9jC,MAAD,EAASslB,QAAT,CAA9B,CAAA;UACA5O,SAAS,CAAClgB,SAAV,CAAoBA,SAApB,CAAA,CAAA;IACD,KAAA;OAhCH,CAAA;;MAmCA,MAAM0W,aAAa,GAAIxW,QAAD,IAAc;QAClC,MAAM;IAAEstC,MAAAA,WAAAA;IAAF,KAAA,GAAkBvkC,MAAM,CAACO,MAAP,CAAcmmC,UAAtC,CAAA;IACA,IAAA,MAAMvB,mBAAmB,GAAGZ,WAAW,GAAGvkC,MAAM,CAACiJ,MAAP,CAAcpM,IAAd,CAAmB0nC,WAAnB,CAAH,GAAqCvkC,MAAM,CAACiJ,MAAnF,CAAA;QACAk8B,mBAAmB,CAChBnuC,UADH,CACcC,QADd,CAAA,CAEG4F,IAFH,CAGI,8GAHJ,CAAA,CAKG7F,UALH,CAKcC,QALd,CAAA,CAAA;IAMAutC,IAAAA,0BAA0B,CAAC;UAAExkC,MAAF;UAAU/I,QAAV;IAAoBstC,MAAAA,WAAAA;IAApB,KAAD,CAA1B,CAAA;OATF,CAAA;;IAYAV,EAAAA,UAAU,CAAC;IACTh4B,IAAAA,MAAM,EAAE,MADC;QAET7L,MAFS;QAGT7I,EAHS;QAITia,YAJS;QAKT3D,aALS;QAMTu2B,eANS;IAOTC,IAAAA,eAAe,EAAE,MAAMjkC,MAAM,CAACO,MAAP,CAAcmmC,UAP5B;QAQT3C,WAAW,EAAE,MAAM,IARV;IASTD,IAAAA,eAAe,EAAE,OAAO;IACtBj5B,MAAAA,aAAa,EAAE,CADO;IAEtBc,MAAAA,cAAc,EAAE,CAFM;IAGtBsB,MAAAA,mBAAmB,EAAE,IAHC;IAItBpD,MAAAA,YAAY,EAAE,CAJQ;IAKtBqH,MAAAA,gBAAgB,EAAE,CAAClR,MAAM,CAACO,MAAP,CAAc+J,OAAAA;SALlB,CAAA;IATR,GAAD,CAAV,CAAA;IAiBD;;ICzGc,SAAS08B,eAAT,CAAuD,IAAA,EAAA;MAAA,IAA9B;QAAEhnC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IACpEuO,EAAAA,YAAY,CAAC;IACXuhC,IAAAA,eAAe,EAAE;IACfL,MAAAA,MAAM,EAAE,EADO;IAEfM,MAAAA,OAAO,EAAE,CAFM;IAGfC,MAAAA,KAAK,EAAE,GAHQ;IAIf7W,MAAAA,KAAK,EAAE,CAJQ;IAKf8W,MAAAA,QAAQ,EAAE,CALK;IAMfjD,MAAAA,YAAY,EAAE,IANC;IAOfI,MAAAA,WAAW,EAAE,IAAA;IAPE,KAAA;IADN,GAAD,CAAZ,CAAA;;MAYA,MAAMnzB,YAAY,GAAG,MAAM;QACzB,MAAM;IAAEpO,MAAAA,KAAK,EAAE0lB,WAAT;IAAsBxlB,MAAAA,MAAM,EAAEylB,YAA9B;UAA4C1f,MAA5C;IAAoDK,MAAAA,eAAAA;IAApD,KAAA,GAAwEtJ,MAA9E,CAAA;IACA,IAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAc0mC,eAA7B,CAAA;IACA,IAAA,MAAMp/B,YAAY,GAAG7H,MAAM,CAAC6H,YAAP,EAArB,CAAA;IACA,IAAA,MAAM9Q,SAAS,GAAGiJ,MAAM,CAACI,SAAzB,CAAA;IACA,IAAA,MAAMinC,MAAM,GAAGx/B,YAAY,GAAG,CAAC9Q,SAAD,GAAa2xB,WAAW,GAAG,CAA9B,GAAkC,CAAC3xB,SAAD,GAAa4xB,YAAY,GAAG,CAAzF,CAAA;QACA,MAAMie,MAAM,GAAG/+B,YAAY,GAAGtH,MAAM,CAACqmC,MAAV,GAAmB,CAACrmC,MAAM,CAACqmC,MAAtD,CAAA;IACA,IAAA,MAAMxmC,SAAS,GAAGG,MAAM,CAAC4mC,KAAzB,CAPyB;;IASzB,IAAA,KAAK,IAAIzyC,CAAC,GAAG,CAAR,EAAW/E,MAAM,GAAGsZ,MAAM,CAACtZ,MAAhC,EAAwC+E,CAAC,GAAG/E,MAA5C,EAAoD+E,CAAC,IAAI,CAAzD,EAA4D;IAC1D,MAAA,MAAMmxB,QAAQ,GAAG5c,MAAM,CAACxN,EAAP,CAAU/G,CAAV,CAAjB,CAAA;IACA,MAAA,MAAMiW,SAAS,GAAGrB,eAAe,CAAC5U,CAAD,CAAjC,CAAA;IACA,MAAA,MAAM2Z,WAAW,GAAGwX,QAAQ,CAAC,CAAD,CAAR,CAAY/X,iBAAhC,CAAA;UACA,MAAMw5B,YAAY,GAAG,CAACD,MAAM,GAAGh5B,WAAT,GAAuB1D,SAAS,GAAG,CAApC,IAAyCA,SAA9D,CAAA;UACA,MAAM48B,gBAAgB,GACpB,OAAOhnC,MAAM,CAAC6mC,QAAd,KAA2B,UAA3B,GACI7mC,MAAM,CAAC6mC,QAAP,CAAgBE,YAAhB,CADJ,GAEIA,YAAY,GAAG/mC,MAAM,CAAC6mC,QAH5B,CAAA;UAKA,IAAIP,OAAO,GAAGh/B,YAAY,GAAG++B,MAAM,GAAGW,gBAAZ,GAA+B,CAAzD,CAAA;UACA,IAAIT,OAAO,GAAGj/B,YAAY,GAAG,CAAH,GAAO++B,MAAM,GAAGW,gBAA1C,CAX0D;;UAa1D,IAAIC,UAAU,GAAG,CAACpnC,SAAD,GAAac,IAAI,CAACwK,GAAL,CAAS67B,gBAAT,CAA9B,CAAA;IAEA,MAAA,IAAIL,OAAO,GAAG3mC,MAAM,CAAC2mC,OAArB,CAf0D;;IAiB1D,MAAA,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BA,OAAO,CAACvyC,OAAR,CAAgB,GAAhB,CAAyB,KAAA,CAAC,CAA7D,EAAgE;YAC9DuyC,OAAO,GAAIrtC,UAAU,CAAC0G,MAAM,CAAC2mC,OAAR,CAAV,GAA6B,GAA9B,GAAqCv8B,SAA/C,CAAA;IACD,OAAA;;UACD,IAAI6rB,UAAU,GAAG3uB,YAAY,GAAG,CAAH,GAAOq/B,OAAO,GAAGK,gBAA9C,CAAA;UACA,IAAIhR,UAAU,GAAG1uB,YAAY,GAAGq/B,OAAO,GAAGK,gBAAb,GAAgC,CAA7D,CAAA;IAEA,MAAA,IAAIjX,KAAK,GAAG,CAAA,GAAI,CAAC,CAAA,GAAI/vB,MAAM,CAAC+vB,KAAZ,IAAqBpvB,IAAI,CAACwK,GAAL,CAAS67B,gBAAT,CAArC,CAvB0D;;UA0B1D,IAAIrmC,IAAI,CAACwK,GAAL,CAAS6qB,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb,CAAA;UAClC,IAAIr1B,IAAI,CAACwK,GAAL,CAAS8qB,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb,CAAA;UAClC,IAAIt1B,IAAI,CAACwK,GAAL,CAAS87B,UAAT,IAAuB,KAA3B,EAAkCA,UAAU,GAAG,CAAb,CAAA;UAClC,IAAItmC,IAAI,CAACwK,GAAL,CAASm7B,OAAT,IAAoB,KAAxB,EAA+BA,OAAO,GAAG,CAAV,CAAA;UAC/B,IAAI3lC,IAAI,CAACwK,GAAL,CAASo7B,OAAT,IAAoB,KAAxB,EAA+BA,OAAO,GAAG,CAAV,CAAA;UAC/B,IAAI5lC,IAAI,CAACwK,GAAL,CAAS4kB,KAAT,IAAkB,KAAtB,EAA6BA,KAAK,GAAG,CAAR,CAAA;IAE7B,MAAA,MAAMmX,cAAc,GAAI,CAAclR,YAAAA,EAAAA,UAAW,MAAKC,UAAW,CAAA,GAAA,EAAKgR,UAAW,CAAA,aAAA,EAAeV,OAAQ,CAAA,aAAA,EAAeD,OAAQ,CAAA,WAAA,EAAavW,KAAM,CAAlJ,CAAA,CAAA,CAAA;IACA,MAAA,MAAMrZ,SAAS,GAAGotB,YAAY,CAAC9jC,MAAD,EAASslB,QAAT,CAA9B,CAAA;UACA5O,SAAS,CAAClgB,SAAV,CAAoB0wC,cAApB,CAAA,CAAA;UAEA5hB,QAAQ,CAAC,CAAD,CAAR,CAAYl1B,KAAZ,CAAkBo2C,MAAlB,GAA2B,CAAC7lC,IAAI,CAACwK,GAAL,CAASxK,IAAI,CAAC86B,KAAL,CAAWuL,gBAAX,CAAT,CAAD,GAA0C,CAArE,CAAA;;UAEA,IAAIhnC,MAAM,CAAC4jC,YAAX,EAAyB;IACvB;IACA,QAAA,IAAIuD,eAAe,GAAG7/B,YAAY,GAC9Bge,QAAQ,CAAChpB,IAAT,CAAc,2BAAd,CAD8B,GAE9BgpB,QAAQ,CAAChpB,IAAT,CAAc,0BAAd,CAFJ,CAAA;IAGA,QAAA,IAAI8qC,cAAc,GAAG9/B,YAAY,GAC7Bge,QAAQ,CAAChpB,IAAT,CAAc,4BAAd,CAD6B,GAE7BgpB,QAAQ,CAAChpB,IAAT,CAAc,6BAAd,CAFJ,CAAA;;IAGA,QAAA,IAAI6qC,eAAe,CAAC/3C,MAAhB,KAA2B,CAA/B,EAAkC;IAChC+3C,UAAAA,eAAe,GAAGrB,YAAY,CAAC9lC,MAAD,EAASslB,QAAT,EAAmBhe,YAAY,GAAG,MAAH,GAAY,KAA3C,CAA9B,CAAA;IACD,SAAA;;IACD,QAAA,IAAI8/B,cAAc,CAACh4C,MAAf,KAA0B,CAA9B,EAAiC;IAC/Bg4C,UAAAA,cAAc,GAAGtB,YAAY,CAAC9lC,MAAD,EAASslB,QAAT,EAAmBhe,YAAY,GAAG,OAAH,GAAa,QAA5C,CAA7B,CAAA;IACD,SAAA;;IACD,QAAA,IAAI6/B,eAAe,CAAC/3C,MAApB,EACE+3C,eAAe,CAAC,CAAD,CAAf,CAAmB/2C,KAAnB,CAAyBihC,OAAzB,GAAmC2V,gBAAgB,GAAG,CAAnB,GAAuBA,gBAAvB,GAA0C,CAA7E,CAAA;YACF,IAAII,cAAc,CAACh4C,MAAnB,EACEg4C,cAAc,CAAC,CAAD,CAAd,CAAkBh3C,KAAlB,CAAwBihC,OAAxB,GAAkC,CAAC2V,gBAAD,GAAoB,CAApB,GAAwB,CAACA,gBAAzB,GAA4C,CAA9E,CAAA;IACH,OAAA;IACF,KAAA;OAnEH,CAAA;;MAqEA,MAAM95B,aAAa,GAAIxW,QAAD,IAAc;QAClC,MAAM;IAAEstC,MAAAA,WAAAA;IAAF,KAAA,GAAkBvkC,MAAM,CAACO,MAAP,CAAc0mC,eAAtC,CAAA;IACA,IAAA,MAAM9B,mBAAmB,GAAGZ,WAAW,GAAGvkC,MAAM,CAACiJ,MAAP,CAAcpM,IAAd,CAAmB0nC,WAAnB,CAAH,GAAqCvkC,MAAM,CAACiJ,MAAnF,CAAA;QACAk8B,mBAAmB,CAChBnuC,UADH,CACcC,QADd,CAAA,CAEG4F,IAFH,CAGI,8GAHJ,CAAA,CAKG7F,UALH,CAKcC,QALd,CAAA,CAAA;OAHF,CAAA;;IAWA4sC,EAAAA,UAAU,CAAC;IACTh4B,IAAAA,MAAM,EAAE,WADC;QAET7L,MAFS;QAGT7I,EAHS;QAITia,YAJS;QAKT3D,aALS;QAMTs2B,WAAW,EAAE,MAAM,IANV;IAOTD,IAAAA,eAAe,EAAE,OAAO;IACtB72B,MAAAA,mBAAmB,EAAE,IAAA;SADN,CAAA;IAPR,GAAD,CAAV,CAAA;IAWD;;ICvGc,SAAS26B,cAAT,CAAsD,IAAA,EAAA;MAAA,IAA9B;QAAE5nC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IACnEuO,EAAAA,YAAY,CAAC;IACXmiC,IAAAA,cAAc,EAAE;IACdtD,MAAAA,WAAW,EAAE,IADC;IAEduD,MAAAA,aAAa,EAAE,CAFD;IAGdC,MAAAA,iBAAiB,EAAE,KAHL;IAIdC,MAAAA,kBAAkB,EAAE,CAJN;IAKdjE,MAAAA,WAAW,EAAE,IALC;IAMdznC,MAAAA,IAAI,EAAE;IACJ8D,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADP;IAEJwmC,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;IAGJhV,QAAAA,OAAO,EAAE,CAHL;IAIJtB,QAAAA,KAAK,EAAE,CAAA;WAVK;IAYdp0B,MAAAA,IAAI,EAAE;IACJkE,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADP;IAEJwmC,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFJ;IAGJhV,QAAAA,OAAO,EAAE,CAHL;IAIJtB,QAAAA,KAAK,EAAE,CAAA;IAJH,OAAA;IAZQ,KAAA;IADL,GAAD,CAAZ,CAAA;;MAsBA,MAAM2X,iBAAiB,GAAIv0C,KAAD,IAAW;IACnC,IAAA,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B,OAAOA,KAAP,CAAA;QAC/B,OAAQ,CAAA,EAAEA,KAAM,CAAhB,EAAA,CAAA,CAAA;OAFF,CAAA;;MAKA,MAAM0d,YAAY,GAAG,MAAM;QACzB,MAAM;UAAEnI,MAAF;UAAUtC,UAAV;IAAsB2C,MAAAA,eAAAA;IAAtB,KAAA,GAA0CtJ,MAAhD,CAAA;IACA,IAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcsnC,cAA7B,CAAA;QACA,MAAM;IAAEG,MAAAA,kBAAkB,EAAEl5B,UAAAA;IAAtB,KAAA,GAAqCvO,MAA3C,CAAA;IAEA,IAAA,MAAM2nC,gBAAgB,GAAGloC,MAAM,CAACO,MAAP,CAAc8J,cAAvC,CAAA;;IAEA,IAAA,IAAI69B,gBAAJ,EAAsB;IACpB,MAAA,MAAMC,MAAM,GAAG7+B,eAAe,CAAC,CAAD,CAAf,GAAqB,CAArB,GAAyBtJ,MAAM,CAACO,MAAP,CAAciJ,kBAAvC,IAA6D,CAA5E,CAAA;IACA7C,MAAAA,UAAU,CAAC5P,SAAX,CAAsB,CAAA,sBAAA,EAAwBoxC,MAAO,CAArD,IAAA,CAAA,CAAA,CAAA;IACD,KAAA;;IAED,IAAA,KAAK,IAAIzzC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,MAAMmxB,QAAQ,GAAG5c,MAAM,CAACxN,EAAP,CAAU/G,CAAV,CAAjB,CAAA;IACA,MAAA,MAAM4Z,aAAa,GAAGuX,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAAlC,CAAA;UACA,MAAMA,QAAQ,GAAGC,IAAI,CAACE,GAAL,CACfF,IAAI,CAACC,GAAL,CAAS0kB,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAArB,EAA+B,CAACV,MAAM,CAACunC,aAAvC,CADe,EAEfvnC,MAAM,CAACunC,aAFQ,CAAjB,CAAA;UAIA,IAAIl5B,gBAAgB,GAAG3N,QAAvB,CAAA;;UAEA,IAAI,CAACinC,gBAAL,EAAuB;YACrBt5B,gBAAgB,GAAG1N,IAAI,CAACE,GAAL,CACjBF,IAAI,CAACC,GAAL,CAAS0kB,QAAQ,CAAC,CAAD,CAAR,CAAYjX,gBAArB,EAAuC,CAACrO,MAAM,CAACunC,aAA/C,CADiB,EAEjBvnC,MAAM,CAACunC,aAFU,CAAnB,CAAA;IAID,OAAA;;IAED,MAAA,MAAM9tC,MAAM,GAAG6rB,QAAQ,CAAC,CAAD,CAAR,CAAY/X,iBAA3B,CAAA;UACA,MAAMuF,CAAC,GAAG,CAACrT,MAAM,CAACO,MAAP,CAAc+J,OAAd,GAAwB,CAACtQ,MAAD,GAAUgG,MAAM,CAACI,SAAzC,GAAqD,CAACpG,MAAvD,EAA+D,CAA/D,EAAkE,CAAlE,CAAV,CAAA;UACA,MAAMouC,CAAC,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAAV,CAAA;UACA,IAAIC,MAAM,GAAG,KAAb,CAAA;;IACA,MAAA,IAAI,CAACroC,MAAM,CAAC6H,YAAP,EAAL,EAA4B;IAC1BwL,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAOA,CAAC,CAAC,CAAD,CAAR,CAAA;IACAA,QAAAA,CAAC,CAAC,CAAD,CAAD,GAAO,CAAP,CAAA;IACD,OAAA;;IACD,MAAA,IAAIla,IAAI,GAAG;IACTiH,QAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CADF;IAETwmC,QAAAA,MAAM,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,CAFC;IAGTtW,QAAAA,KAAK,EAAE,CAHE;IAITsB,QAAAA,OAAO,EAAE,CAAA;WAJX,CAAA;;UAMA,IAAI3wB,QAAQ,GAAG,CAAf,EAAkB;YAChB9H,IAAI,GAAGoH,MAAM,CAACrE,IAAd,CAAA;IACAmsC,QAAAA,MAAM,GAAG,IAAT,CAAA;IACD,OAHD,MAGO,IAAIpnC,QAAQ,GAAG,CAAf,EAAkB;YACvB9H,IAAI,GAAGoH,MAAM,CAACjE,IAAd,CAAA;IACA+rC,QAAAA,MAAM,GAAG,IAAT,CAAA;IACD,OApCwC;;;IAsCzCh1B,MAAAA,CAAC,CAAC5jB,OAAF,CAAU,CAACiE,KAAD,EAAQqH,KAAR,KAAkB;YAC1BsY,CAAC,CAACtY,KAAD,CAAD,GAAY,CAAA,KAAA,EAAOrH,KAAM,CAAQu0C,MAAAA,EAAAA,iBAAiB,CAAC9uC,IAAI,CAACiH,SAAL,CAAerF,KAAf,CAAD,CAAwB,CAAA,GAAA,EAAKmG,IAAI,CAACwK,GAAL,CAC7EzK,QAAQ,GAAG6N,UADkE,CAE7E,CAFF,EAAA,CAAA,CAAA;IAGD,OAJD,EAtCyC;;IA4CzCs5B,MAAAA,CAAC,CAAC34C,OAAF,CAAU,CAACiE,KAAD,EAAQqH,KAAR,KAAkB;IAC1BqtC,QAAAA,CAAC,CAACrtC,KAAD,CAAD,GAAW5B,IAAI,CAACytC,MAAL,CAAY7rC,KAAZ,CAAA,GAAqBmG,IAAI,CAACwK,GAAL,CAASzK,QAAQ,GAAG6N,UAApB,CAAhC,CAAA;WADF,CAAA,CAAA;UAIA+W,QAAQ,CAAC,CAAD,CAAR,CAAYl1B,KAAZ,CAAkBo2C,MAAlB,GAA2B,CAAC7lC,IAAI,CAACwK,GAAL,CAASxK,IAAI,CAAC86B,KAAL,CAAW1tB,aAAX,CAAT,CAAD,GAAuCrF,MAAM,CAACtZ,MAAzE,CAAA;IAEA,MAAA,MAAM24C,eAAe,GAAGj1B,CAAC,CAAClV,IAAF,CAAO,IAAP,CAAxB,CAAA;IACA,MAAA,MAAMoqC,YAAY,GAAI,CAAA,QAAA,EAAUH,CAAC,CAAC,CAAD,CAAI,CAAA,aAAA,EAAeA,CAAC,CAAC,CAAD,CAAI,CAAA,aAAA,EAAeA,CAAC,CAAC,CAAD,CAAI,CAA7E,IAAA,CAAA,CAAA;IACA,MAAA,MAAMI,WAAW,GACf55B,gBAAgB,GAAG,CAAnB,GACK,CAAQ,MAAA,EAAA,CAAA,GAAI,CAAC,CAAA,GAAIzV,IAAI,CAACm3B,KAAV,IAAmB1hB,gBAAnB,GAAsCE,UAAW,CADlE,CAAA,CAAA,GAEK,CAAQ,MAAA,EAAA,CAAA,GAAI,CAAC,CAAA,GAAI3V,IAAI,CAACm3B,KAAV,IAAmB1hB,gBAAnB,GAAsCE,UAAW,CAHpE,CAAA,CAAA,CAAA;UAIA,MAAM25B,aAAa,GACjB75B,gBAAgB,GAAG,CAAnB,GACI,CAAA,GAAI,CAAC,CAAA,GAAIzV,IAAI,CAACy4B,OAAV,IAAqBhjB,gBAArB,GAAwCE,UADhD,GAEI,CAAA,GAAI,CAAC,CAAA,GAAI3V,IAAI,CAACy4B,OAAV,IAAqBhjB,gBAArB,GAAwCE,UAHlD,CAAA;UAIA,MAAM/X,SAAS,GAAI,CAAA,YAAA,EAAcuxC,eAAgB,CAAA,EAAA,EAAIC,YAAa,CAAGC,CAAAA,EAAAA,WAAY,CAAjF,CAAA,CA5DyC;;UA+DzC,IAAKH,MAAM,IAAIlvC,IAAI,CAACmsC,MAAhB,IAA2B,CAAC+C,MAAhC,EAAwC;IACtC,QAAA,IAAI7B,SAAS,GAAG3gB,QAAQ,CAACp1B,QAAT,CAAkB,sBAAlB,CAAhB,CAAA;;YACA,IAAI+1C,SAAS,CAAC72C,MAAV,KAAqB,CAArB,IAA0BwJ,IAAI,CAACmsC,MAAnC,EAA2C;IACzCkB,UAAAA,SAAS,GAAGH,YAAY,CAAC9lC,MAAD,EAASslB,QAAT,CAAxB,CAAA;IACD,SAAA;;YACD,IAAI2gB,SAAS,CAAC72C,MAAd,EAAsB;IACpB,UAAA,MAAM+4C,aAAa,GAAGnoC,MAAM,CAACwnC,iBAAP,GAClB9mC,QAAQ,IAAI,CAAA,GAAIV,MAAM,CAACunC,aAAf,CADU,GAElB7mC,QAFJ,CAAA;cAGAulC,SAAS,CAAC,CAAD,CAAT,CAAa71C,KAAb,CAAmBihC,OAAnB,GAA6B1wB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASD,IAAI,CAACwK,GAAL,CAASg9B,aAAT,CAAT,EAAkC,CAAlC,CAAT,EAA+C,CAA/C,CAA7B,CAAA;IACD,SAAA;IACF,OAAA;;IAED,MAAA,MAAMzxB,SAAS,GAAGotB,YAAY,CAAC9jC,MAAD,EAASslB,QAAT,CAA9B,CAAA;IACA5O,MAAAA,SAAS,CAAClgB,SAAV,CAAoBA,SAApB,CAAA,CAA+B4D,GAA/B,CAAmC;IAAEi3B,QAAAA,OAAO,EAAE6W,aAAAA;WAA9C,CAAA,CAAA;;UACA,IAAItvC,IAAI,CAAC9H,MAAT,EAAiB;IACf4lB,QAAAA,SAAS,CAACtc,GAAV,CAAc,kBAAd,EAAkCxB,IAAI,CAAC9H,MAAvC,CAAA,CAAA;IACD,OAAA;IACF,KAAA;OA7FH,CAAA;;MAgGA,MAAMoc,aAAa,GAAIxW,QAAD,IAAc;QAClC,MAAM;IAAEstC,MAAAA,WAAAA;IAAF,KAAA,GAAkBvkC,MAAM,CAACO,MAAP,CAAcsnC,cAAtC,CAAA;IACA,IAAA,MAAM1C,mBAAmB,GAAGZ,WAAW,GAAGvkC,MAAM,CAACiJ,MAAP,CAAcpM,IAAd,CAAmB0nC,WAAnB,CAAH,GAAqCvkC,MAAM,CAACiJ,MAAnF,CAAA;QACAk8B,mBAAmB,CAACnuC,UAApB,CAA+BC,QAA/B,CAAA,CAAyC4F,IAAzC,CAA8C,sBAA9C,CAAA,CAAsE7F,UAAtE,CAAiFC,QAAjF,CAAA,CAAA;IAEAutC,IAAAA,0BAA0B,CAAC;UAAExkC,MAAF;UAAU/I,QAAV;UAAoBstC,WAApB;IAAiCE,MAAAA,SAAS,EAAE,IAAA;IAA5C,KAAD,CAA1B,CAAA;OALF,CAAA;;IAQAZ,EAAAA,UAAU,CAAC;IACTh4B,IAAAA,MAAM,EAAE,UADC;QAET7L,MAFS;QAGT7I,EAHS;QAITia,YAJS;QAKT3D,aALS;QAMTs2B,WAAW,EAAE,MAAM/jC,MAAM,CAACO,MAAP,CAAcsnC,cAAd,CAA6B9D,WANvC;IAOTD,IAAAA,eAAe,EAAE,OAAO;IACtB72B,MAAAA,mBAAmB,EAAE,IADC;IAEtBiE,MAAAA,gBAAgB,EAAE,CAAClR,MAAM,CAACO,MAAP,CAAc+J,OAAAA;SAFlB,CAAA;IAPR,GAAD,CAAV,CAAA;IAYD;;IChJc,SAASq+B,WAAT,CAAmD,IAAA,EAAA;MAAA,IAA9B;QAAE3oC,MAAF;QAAU0F,YAAV;IAAwBvO,IAAAA,EAAAA;OAAM,GAAA,IAAA,CAAA;IAChEuO,EAAAA,YAAY,CAAC;IACXkjC,IAAAA,WAAW,EAAE;IACXzE,MAAAA,YAAY,EAAE,IADH;IAEXI,MAAAA,WAAW,EAAE,IAFF;IAGXqC,MAAAA,MAAM,EAAE,IAAA;IAHG,KAAA;IADF,GAAD,CAAZ,CAAA;;MAQA,MAAMx1B,YAAY,GAAG,MAAM;QACzB,MAAM;UAAEnI,MAAF;IAAU4E,MAAAA,WAAAA;IAAV,KAAA,GAA0B7N,MAAhC,CAAA;IACA,IAAA,MAAMO,MAAM,GAAGP,MAAM,CAACO,MAAP,CAAcqoC,WAA7B,CAAA;QACA,MAAM;UAAEpuB,cAAF;IAAkBlD,MAAAA,SAAAA;SAActX,GAAAA,MAAM,CAAC8W,eAA7C,CAAA;IACA,IAAA,MAAM3F,gBAAgB,GAAGnR,MAAM,CAACI,SAAhC,CAAA;;IACA,IAAA,KAAK,IAAI1L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGuU,MAAM,CAACtZ,MAA3B,EAAmC+E,CAAC,IAAI,CAAxC,EAA2C;IACzC,MAAA,MAAMmxB,QAAQ,GAAG5c,MAAM,CAACxN,EAAP,CAAU/G,CAAV,CAAjB,CAAA;IACA,MAAA,MAAM4Z,aAAa,GAAGuX,QAAQ,CAAC,CAAD,CAAR,CAAY5kB,QAAlC,CAAA;IACA,MAAA,MAAMA,QAAQ,GAAGC,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAASmN,aAAT,EAAwB,CAAC,CAAzB,CAAT,EAAsC,CAAtC,CAAjB,CAAA;IACA,MAAA,IAAItU,MAAM,GAAG6rB,QAAQ,CAAC,CAAD,CAAR,CAAY/X,iBAAzB,CAAA;;IACA,MAAA,IAAI9N,MAAM,CAACO,MAAP,CAAc8J,cAAd,IAAgC,CAACrK,MAAM,CAACO,MAAP,CAAc+J,OAAnD,EAA4D;YAC1DtK,MAAM,CAAC2G,UAAP,CAAkB5P,SAAlB,CAA6B,cAAaiJ,MAAM,CAACuO,YAAP,EAAsB,CAAhE,GAAA,CAAA,CAAA,CAAA;IACD,OAAA;;UACD,IAAIvO,MAAM,CAACO,MAAP,CAAc8J,cAAd,IAAgCrK,MAAM,CAACO,MAAP,CAAc+J,OAAlD,EAA2D;IACzDtQ,QAAAA,MAAM,IAAIiP,MAAM,CAAC,CAAD,CAAN,CAAU6E,iBAApB,CAAA;IACD,OAAA;;IACD,MAAA,IAAI+6B,EAAE,GAAG7oC,MAAM,CAACO,MAAP,CAAc+J,OAAd,GAAwB,CAACtQ,MAAD,GAAUgG,MAAM,CAACI,SAAzC,GAAqD,CAACpG,MAA/D,CAAA;UACA,IAAI8uC,EAAE,GAAG,CAAT,CAAA;UACA,MAAMC,EAAE,GAAG,CAAC,GAAD,GAAO7nC,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAlB,CAAA;UACA,IAAIqvB,KAAK,GAAG,CAAZ,CAAA;IACA,MAAA,IAAIsW,MAAM,GAAG,CAAC,CAAD,GAAK3lC,QAAlB,CAAA;UAEA,IAAI+nC,KAAK,GAAG,CAAI9nC,GAAAA,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAA,GAAqB,IAArC,CAAA;UAEA,MAAMkL,UAAU,GACdnM,MAAM,CAAC8I,OAAP,IAAkB9I,MAAM,CAACO,MAAP,CAAcuI,OAAd,CAAsBC,OAAxC,GAAkD/I,MAAM,CAAC8I,OAAP,CAAe8c,IAAf,GAAsBlxB,CAAxE,GAA4EA,CAD9E,CAAA;IAGA,MAAA,MAAMu0C,aAAa,GACjB,CAAC98B,UAAU,KAAK0B,WAAf,IAA8B1B,UAAU,KAAK0B,WAAW,GAAG,CAA5D,KACA5M,QAAQ,GAAG,CADX,IAEAA,QAAQ,GAAG,CAFX,KAGCqW,SAAS,IAAItX,MAAM,CAACO,MAAP,CAAc+J,OAH5B,CAIA6G,IAAAA,gBAAgB,GAAGqJ,cALrB,CAAA;IAMA,MAAA,MAAM0uB,aAAa,GACjB,CAAC/8B,UAAU,KAAK0B,WAAf,IAA8B1B,UAAU,KAAK0B,WAAW,GAAG,CAA5D,KACA5M,QAAQ,GAAG,CADX,IAEAA,QAAQ,GAAG,CAAC,CAFZ,KAGCqW,SAAS,IAAItX,MAAM,CAACO,MAAP,CAAc+J,OAH5B,CAIA6G,IAAAA,gBAAgB,GAAGqJ,cALrB,CAAA;;UAOA,IAAIyuB,aAAa,IAAIC,aAArB,EAAoC;YAClC,MAAMC,WAAW,GAAG,CAAC,CAAA,GAAIjoC,IAAI,CAACwK,GAAL,CAAS,CAACxK,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAqB,GAAA,GAAtB,IAA6B,GAAtC,CAAL,KAAoD,GAAxE,CAAA;IACA2lC,QAAAA,MAAM,IAAI,CAAC,EAAD,GAAM3lC,QAAN,GAAiBkoC,WAA3B,CAAA;IACA7Y,QAAAA,KAAK,IAAI,CAAC,GAAD,GAAO6Y,WAAhB,CAAA;YACAH,KAAK,IAAI,KAAKG,WAAd,CAAA;IACAL,QAAAA,EAAE,GAAI,CAAA,EAAE,CAAC,EAAD,GAAMK,WAAN,GAAoBjoC,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAmB,CAA/C,CAAA,CAAA,CAAA;IACD,OAAA;;UAED,IAAIA,QAAQ,GAAG,CAAf,EAAkB;IAChB;IACA4nC,QAAAA,EAAE,GAAI,CAAA,KAAA,EAAOA,EAAG,CAAA,MAAA,EAAQG,KAAK,GAAG9nC,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAmB,CAAnD,GAAA,CAAA,CAAA;IACD,OAHD,MAGO,IAAIA,QAAQ,GAAG,CAAf,EAAkB;IACvB;IACA4nC,QAAAA,EAAE,GAAI,CAAA,KAAA,EAAOA,EAAG,CAAA,OAAA,EAASG,KAAK,GAAG9nC,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAmB,CAApD,GAAA,CAAA,CAAA;IACD,OAHM,MAGA;YACL4nC,EAAE,GAAI,CAAEA,EAAAA,EAAG,CAAX,EAAA,CAAA,CAAA;IACD,OAAA;;IACD,MAAA,IAAI,CAAC7oC,MAAM,CAAC6H,YAAP,EAAL,EAA4B;YAC1B,MAAMuhC,KAAK,GAAGN,EAAd,CAAA;IACAA,QAAAA,EAAE,GAAGD,EAAL,CAAA;IACAA,QAAAA,EAAE,GAAGO,KAAL,CAAA;IACD,OAAA;;UAED,MAAMZ,WAAW,GACfvnC,QAAQ,GAAG,CAAX,GAAgB,CAAA,EAAE,CAAI,GAAA,CAAC,CAAIqvB,GAAAA,KAAL,IAAcrvB,QAAS,CAAA,CAA7C,GAAkD,CAAE,EAAA,CAAA,GAAI,CAAC,CAAIqvB,GAAAA,KAAL,IAAcrvB,QAAS,CADjF,CAAA,CAAA;IAGA,MAAA,MAAMlK,SAAS,GAAI,CAAA;AACzB,oBAAA,EAAsB8xC,EAAG,CAAA,EAAA,EAAIC,EAAG,CAAA,EAAA,EAAIC,EAAG,CAAA;AACvC,gBAAA,EAAkBxoC,MAAM,CAACqmC,MAAP,GAAgBA,MAAhB,GAAyB,CAAE,CAAA;AAC7C,cAAA,EAAgB4B,WAAY,CAAA;AAC5B,MAJM,CAAA,CAAA;;UAMA,IAAIjoC,MAAM,CAAC4jC,YAAX,EAAyB;IACvB;IACA,QAAA,IAAIqC,SAAS,GAAG3gB,QAAQ,CAAChpB,IAAT,CAAc,sBAAd,CAAhB,CAAA;;IACA,QAAA,IAAI2pC,SAAS,CAAC72C,MAAV,KAAqB,CAAzB,EAA4B;IAC1B62C,UAAAA,SAAS,GAAGH,YAAY,CAAC9lC,MAAD,EAASslB,QAAT,CAAxB,CAAA;IACD,SAAA;;IACD,QAAA,IAAI2gB,SAAS,CAAC72C,MAAd,EACE62C,SAAS,CAAC,CAAD,CAAT,CAAa71C,KAAb,CAAmBihC,OAAnB,GAA6B1wB,IAAI,CAACE,GAAL,CAASF,IAAI,CAACC,GAAL,CAAS,CAACD,IAAI,CAACwK,GAAL,CAASzK,QAAT,CAAA,GAAqB,GAAtB,IAA6B,GAAtC,EAA2C,CAA3C,CAAT,EAAwD,CAAxD,CAA7B,CAAA;IACH,OAAA;;UAED4kB,QAAQ,CAAC,CAAD,CAAR,CAAYl1B,KAAZ,CAAkBo2C,MAAlB,GAA2B,CAAC7lC,IAAI,CAACwK,GAAL,CAASxK,IAAI,CAAC86B,KAAL,CAAW1tB,aAAX,CAAT,CAAD,GAAuCrF,MAAM,CAACtZ,MAAzE,CAAA;IACA,MAAA,MAAMsnB,SAAS,GAAGotB,YAAY,CAAC9jC,MAAD,EAASslB,QAAT,CAA9B,CAAA;UACA5O,SAAS,CAAClgB,SAAV,CAAoBA,SAApB,CAAA,CAAA;IACD,KAAA;OArFH,CAAA;;MAwFA,MAAM0W,aAAa,GAAIxW,QAAD,IAAc;QAClC,MAAM;IAAEstC,MAAAA,WAAAA;IAAF,KAAA,GAAkBvkC,MAAM,CAACO,MAAP,CAAcqoC,WAAtC,CAAA;IACA,IAAA,MAAMzD,mBAAmB,GAAGZ,WAAW,GAAGvkC,MAAM,CAACiJ,MAAP,CAAcpM,IAAd,CAAmB0nC,WAAnB,CAAH,GAAqCvkC,MAAM,CAACiJ,MAAnF,CAAA;QACAk8B,mBAAmB,CAACnuC,UAApB,CAA+BC,QAA/B,CAAA,CAAyC4F,IAAzC,CAA8C,sBAA9C,CAAA,CAAsE7F,UAAtE,CAAiFC,QAAjF,CAAA,CAAA;IAEAutC,IAAAA,0BAA0B,CAAC;UAAExkC,MAAF;UAAU/I,QAAV;IAAoBstC,MAAAA,WAAAA;IAApB,KAAD,CAA1B,CAAA;OALF,CAAA;;IAQAV,EAAAA,UAAU,CAAC;IACTh4B,IAAAA,MAAM,EAAE,OADC;QAET7L,MAFS;QAGT7I,EAHS;QAITia,YAJS;QAKT3D,aALS;QAMTs2B,WAAW,EAAE,MAAM,IANV;IAOTD,IAAAA,eAAe,EAAE,OAAO;IACtB72B,MAAAA,mBAAmB,EAAE,IADC;IAEtBiE,MAAAA,gBAAgB,EAAE,CAAClR,MAAM,CAACO,MAAP,CAAc+J,OAAAA;SAFlB,CAAA;IAPR,GAAD,CAAV,CAAA;IAYD;;IC1HD;IAKA,MAAMkY,OAAO,GAAG,CACd4C,OADc,UAAA,YAAA,YAAA,YAAA,WAAA,UAAA,MAAA,MAAA,YAAA,MAAA,SAAA,gBAAA,UAAA,OAAA,UAAA,MAAA,cAAA,YAAA,YAAA,YAAA,iBAAA,gBAAA,aAAA,CAAhB,CAAA;IAIA/C,MAAM,CAAC0C,GAAP,CAAWvC,OAAX,CAAA;;;;;;;;"} \ No newline at end of file diff --git a/assets/swiper/swiper-bundle.min.css b/assets/swiper/swiper-bundle.min.css new file mode 100644 index 0000000..0b8e21a --- /dev/null +++ b/assets/swiper/swiper-bundle.min.css @@ -0,0 +1,13 @@ +/** + * Swiper 8.3.1 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2022 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: July 13, 2022 + */ + +@font-face{font-family:swiper-icons;src:url('data:application/font-woff;charset=utf-8;base64, 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');font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-pointer-events{touch-action:pan-y}.swiper-pointer-events.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d,.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide,.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-horizontal.swiper-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-vertical.swiper-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-centered>.swiper-wrapper::before{content:'';flex-shrink:0;order:9999}.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-horizontal>.swiper-wrapper::before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-centered.swiper-vertical>.swiper-wrapper::before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper::after{content:'';position:absolute;left:0;top:0;pointer-events:none}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after{width:1px;height:var(--swiper-virtual-size)}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(0px - (var(--swiper-navigation-size)/ 2));z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{opacity:0;cursor:auto;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));display:inline-block;border-radius:50%;background:var(--swiper-pagination-bullet-inactive-color,#000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0;display:block}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}.swiper .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-next+.swiper-slide,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;opacity:.6;z-index:0}.swiper-cube .swiper-cube-shadow:before{content:'';background:#000;position:absolute;left:0;top:0;bottom:0;right:0;filter:blur(50px)}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-creative .swiper-slide{-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{transform-origin:center bottom;-webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden} \ No newline at end of file diff --git a/assets/swiper/swiper-bundle.min.js b/assets/swiper/swiper-bundle.min.js new file mode 100644 index 0000000..54a8f6f --- /dev/null +++ b/assets/swiper/swiper-bundle.min.js @@ -0,0 +1,14 @@ +/** + * Swiper 8.3.1 + * Most modern mobile touch slider and framework with hardware accelerated transitions + * https://swiperjs.com + * + * Copyright 2014-2022 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: July 13, 2022 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Swiper=t()}(this,(function(){"use strict";function e(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function t(s,a){void 0===s&&(s={}),void 0===a&&(a={}),Object.keys(a).forEach((i=>{void 0===s[i]?s[i]=a[i]:e(a[i])&&e(s[i])&&Object.keys(a[i]).length>0&&t(s[i],a[i])}))}const s={body:{},addEventListener(){},removeEventListener(){},activeElement:{blur(){},nodeName:""},querySelector:()=>null,querySelectorAll:()=>[],getElementById:()=>null,createEvent:()=>({initEvent(){}}),createElement:()=>({children:[],childNodes:[],style:{},setAttribute(){},getElementsByTagName:()=>[]}),createElementNS:()=>({}),importNode:()=>null,location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};function a(){const e="undefined"!=typeof document?document:{};return t(e,s),e}const i={document:s,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState(){},pushState(){},go(){},back(){}},CustomEvent:function(){return this},addEventListener(){},removeEventListener(){},getComputedStyle:()=>({getPropertyValue:()=>""}),Image(){},Date(){},screen:{},setTimeout(){},clearTimeout(){},matchMedia:()=>({}),requestAnimationFrame:e=>"undefined"==typeof setTimeout?(e(),null):setTimeout(e,0),cancelAnimationFrame(e){"undefined"!=typeof setTimeout&&clearTimeout(e)}};function r(){const e="undefined"!=typeof window?window:{};return t(e,i),e}class n extends Array{constructor(e){"number"==typeof e?super(e):(super(...e||[]),function(e){const t=e.__proto__;Object.defineProperty(e,"__proto__",{get:()=>t,set(e){t.__proto__=e}})}(this))}}function l(e){void 0===e&&(e=[]);const t=[];return e.forEach((e=>{Array.isArray(e)?t.push(...l(e)):t.push(e)})),t}function o(e,t){return Array.prototype.filter.call(e,t)}function d(e,t){const s=r(),i=a();let l=[];if(!t&&e instanceof n)return e;if(!e)return new n(l);if("string"==typeof e){const s=e.trim();if(s.indexOf("<")>=0&&s.indexOf(">")>=0){let e="div";0===s.indexOf("e.split(" "))));return this.forEach((e=>{e.classList.add(...a)})),this},removeClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));return this.forEach((e=>{e.classList.remove(...a)})),this},hasClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));return o(this,(e=>a.filter((t=>e.classList.contains(t))).length>0)).length>0},toggleClass:function(){for(var e=arguments.length,t=new Array(e),s=0;se.split(" "))));this.forEach((e=>{a.forEach((t=>{e.classList.toggle(t)}))}))},attr:function(e,t){if(1===arguments.length&&"string"==typeof e)return this[0]?this[0].getAttribute(e):void 0;for(let s=0;s=0;e-=1){const i=a[e];r&&i.listener===r||r&&i.listener&&i.listener.dom7proxy&&i.listener.dom7proxy===r?(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1)):r||(s.removeEventListener(t,i.proxyListener,n),a.splice(e,1))}}}return this},trigger:function(){const e=r();for(var t=arguments.length,s=new Array(t),a=0;at>0)),i.dispatchEvent(t),i.dom7EventData=[],delete i.dom7EventData}}}return this},transitionEnd:function(e){const t=this;return e&&t.on("transitionend",(function s(a){a.target===this&&(e.call(this,a),t.off("transitionend",s))})),this},outerWidth:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetWidth+parseFloat(e.getPropertyValue("margin-right"))+parseFloat(e.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null},outerHeight:function(e){if(this.length>0){if(e){const e=this.styles();return this[0].offsetHeight+parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null},styles:function(){const e=r();return this[0]?e.getComputedStyle(this[0],null):{}},offset:function(){if(this.length>0){const e=r(),t=a(),s=this[0],i=s.getBoundingClientRect(),n=t.body,l=s.clientTop||n.clientTop||0,o=s.clientLeft||n.clientLeft||0,d=s===e?e.scrollY:s.scrollTop,c=s===e?e.scrollX:s.scrollLeft;return{top:i.top+d-l,left:i.left+c-o}}return null},css:function(e,t){const s=r();let a;if(1===arguments.length){if("string"!=typeof e){for(a=0;a{e.apply(t,[t,s])})),this):this},html:function(e){if(void 0===e)return this[0]?this[0].innerHTML:null;for(let t=0;tt-1)return d([]);if(e<0){const s=t+e;return d(s<0?[]:[this[s]])}return d([this[e]])},append:function(){let e;const t=a();for(let s=0;s=0;i-=1)this[s].insertBefore(a.childNodes[i],this[s].childNodes[0])}else if(e instanceof n)for(i=0;i0?e?this[0].nextElementSibling&&d(this[0].nextElementSibling).is(e)?d([this[0].nextElementSibling]):d([]):this[0].nextElementSibling?d([this[0].nextElementSibling]):d([]):d([])},nextAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.nextElementSibling;){const a=s.nextElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},prev:function(e){if(this.length>0){const t=this[0];return e?t.previousElementSibling&&d(t.previousElementSibling).is(e)?d([t.previousElementSibling]):d([]):t.previousElementSibling?d([t.previousElementSibling]):d([])}return d([])},prevAll:function(e){const t=[];let s=this[0];if(!s)return d([]);for(;s.previousElementSibling;){const a=s.previousElementSibling;e?d(a).is(e)&&t.push(a):t.push(a),s=a}return d(t)},parent:function(e){const t=[];for(let s=0;s6&&(i=i.split(", ").map((e=>e.replace(",","."))).join(", ")),n=new s.WebKitCSSMatrix("none"===i?"":i)):(n=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),a=n.toString().split(",")),"x"===t&&(i=s.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(i=s.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),i||0}function m(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function f(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function g(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let s=1;st.indexOf(e)<0));for(let t=0,i=s.length;tn?"next":"prev",p=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===o&&(o=l);const e=Math.max(Math.min((l-o)/d,1),0),r=.5-Math.cos(e*Math.PI)/2;let c=n+r*(s-n);if(p(c,s)&&(c=s),t.wrapperEl.scrollTo({[a]:c}),p(c,s))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[a]:c})})),void i.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=i.requestAnimationFrame(u)};u()}let b,x,y;function E(){return b||(b=function(){const e=r(),t=a();return{smoothScroll:t.documentElement&&"scrollBehavior"in t.documentElement.style,touch:!!("ontouchstart"in e||e.DocumentTouch&&t instanceof e.DocumentTouch),passiveListener:function(){let t=!1;try{const s=Object.defineProperty({},"passive",{get(){t=!0}});e.addEventListener("testPassiveListener",null,s)}catch(e){}return t}(),gestures:"ongesturestart"in e}}()),b}function C(e){return void 0===e&&(e={}),x||(x=function(e){let{userAgent:t}=void 0===e?{}:e;const s=E(),a=r(),i=a.navigator.platform,n=t||a.navigator.userAgent,l={ios:!1,android:!1},o=a.screen.width,d=a.screen.height,c=n.match(/(Android);?[\s\/]+([\d.]+)?/);let p=n.match(/(iPad).*OS\s([\d_]+)/);const u=n.match(/(iPod)(.*OS\s([\d_]+))?/),h=!p&&n.match(/(iPhone\sOS|iOS)\s([\d_]+)/),m="Win32"===i;let f="MacIntel"===i;return!p&&f&&s.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(`${o}x${d}`)>=0&&(p=n.match(/(Version)\/([\d.]+)/),p||(p=[0,1,"13_0_0"]),f=!1),c&&!m&&(l.os="android",l.android=!0),(p||h||u)&&(l.os="ios",l.ios=!0),l}(e)),x}function T(){return y||(y=function(){const e=r();return{isSafari:function(){const t=e.navigator.userAgent.toLowerCase();return t.indexOf("safari")>=0&&t.indexOf("chrome")<0&&t.indexOf("android")<0}(),isWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(e.navigator.userAgent)}}()),y}Object.keys(c).forEach((e=>{Object.defineProperty(d.fn,e,{value:c[e],writable:!0})}));var $={on(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;const i=s?"unshift":"push";return e.split(" ").forEach((e=>{a.eventsListeners[e]||(a.eventsListeners[e]=[]),a.eventsListeners[e][i](t)})),a},once(e,t,s){const a=this;if(!a.eventsListeners||a.destroyed)return a;if("function"!=typeof t)return a;function i(){a.off(e,i),i.__emitterProxy&&delete i.__emitterProxy;for(var s=arguments.length,r=new Array(s),n=0;n=0&&t.eventsAnyListeners.splice(s,1),t},off(e,t){const s=this;return!s.eventsListeners||s.destroyed?s:s.eventsListeners?(e.split(" ").forEach((e=>{void 0===t?s.eventsListeners[e]=[]:s.eventsListeners[e]&&s.eventsListeners[e].forEach(((a,i)=>{(a===t||a.__emitterProxy&&a.__emitterProxy===t)&&s.eventsListeners[e].splice(i,1)}))})),s):s},emit(){const e=this;if(!e.eventsListeners||e.destroyed)return e;if(!e.eventsListeners)return e;let t,s,a;for(var i=arguments.length,r=new Array(i),n=0;n{e.eventsAnyListeners&&e.eventsAnyListeners.length&&e.eventsAnyListeners.forEach((e=>{e.apply(a,[t,...s])})),e.eventsListeners&&e.eventsListeners[t]&&e.eventsListeners[t].forEach((e=>{e.apply(a,s)}))})),e}};var S={updateSize:function(){const e=this;let t,s;const a=e.$el;t=void 0!==e.params.width&&null!==e.params.width?e.params.width:a[0].clientWidth,s=void 0!==e.params.height&&null!==e.params.height?e.params.height:a[0].clientHeight,0===t&&e.isHorizontal()||0===s&&e.isVertical()||(t=t-parseInt(a.css("padding-left")||0,10)-parseInt(a.css("padding-right")||0,10),s=s-parseInt(a.css("padding-top")||0,10)-parseInt(a.css("padding-bottom")||0,10),Number.isNaN(t)&&(t=0),Number.isNaN(s)&&(s=0),Object.assign(e,{width:t,height:s,size:e.isHorizontal()?t:s}))},updateSlides:function(){const e=this;function t(t){return e.isHorizontal()?t:{width:"height","margin-top":"margin-left","margin-bottom ":"margin-right","margin-left":"margin-top","margin-right":"margin-bottom","padding-left":"padding-top","padding-right":"padding-bottom",marginRight:"marginBottom"}[t]}function s(e,s){return parseFloat(e.getPropertyValue(t(s))||0)}const a=e.params,{$wrapperEl:i,size:r,rtlTranslate:n,wrongRTL:l}=e,o=e.virtual&&a.virtual.enabled,d=o?e.virtual.slides.length:e.slides.length,c=i.children(`.${e.params.slideClass}`),p=o?e.virtual.slides.length:c.length;let u=[];const h=[],m=[];let f=a.slidesOffsetBefore;"function"==typeof f&&(f=a.slidesOffsetBefore.call(e));let g=a.slidesOffsetAfter;"function"==typeof g&&(g=a.slidesOffsetAfter.call(e));const w=e.snapGrid.length,b=e.slidesGrid.length;let x=a.spaceBetween,y=-f,E=0,C=0;if(void 0===r)return;"string"==typeof x&&x.indexOf("%")>=0&&(x=parseFloat(x.replace("%",""))/100*r),e.virtualSize=-x,n?c.css({marginLeft:"",marginBottom:"",marginTop:""}):c.css({marginRight:"",marginBottom:"",marginTop:""}),a.centeredSlides&&a.cssMode&&(v(e.wrapperEl,"--swiper-centered-offset-before",""),v(e.wrapperEl,"--swiper-centered-offset-after",""));const T=a.grid&&a.grid.rows>1&&e.grid;let $;T&&e.grid.initSlides(p);const S="auto"===a.slidesPerView&&a.breakpoints&&Object.keys(a.breakpoints).filter((e=>void 0!==a.breakpoints[e].slidesPerView)).length>0;for(let i=0;i1&&u.push(e.virtualSize-r)}if(0===u.length&&(u=[0]),0!==a.spaceBetween){const s=e.isHorizontal()&&n?"marginLeft":t("marginRight");c.filter(((e,t)=>!a.cssMode||t!==c.length-1)).css({[s]:`${x}px`})}if(a.centeredSlides&&a.centeredSlidesBounds){let e=0;m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween;const t=e-r;u=u.map((e=>e<0?-f:e>t?t+g:e))}if(a.centerInsufficientSlides){let e=0;if(m.forEach((t=>{e+=t+(a.spaceBetween?a.spaceBetween:0)})),e-=a.spaceBetween,e{u[s]=e-t})),h.forEach(((e,s)=>{h[s]=e+t}))}}if(Object.assign(e,{slides:c,snapGrid:u,slidesGrid:h,slidesSizesGrid:m}),a.centeredSlides&&a.cssMode&&!a.centeredSlidesBounds){v(e.wrapperEl,"--swiper-centered-offset-before",-u[0]+"px"),v(e.wrapperEl,"--swiper-centered-offset-after",e.size/2-m[m.length-1]/2+"px");const t=-e.snapGrid[0],s=-e.slidesGrid[0];e.snapGrid=e.snapGrid.map((e=>e+t)),e.slidesGrid=e.slidesGrid.map((e=>e+s))}if(p!==d&&e.emit("slidesLengthChange"),u.length!==w&&(e.params.watchOverflow&&e.checkOverflow(),e.emit("snapGridLengthChange")),h.length!==b&&e.emit("slidesGridLengthChange"),a.watchSlidesProgress&&e.updateSlidesOffset(),!(o||a.cssMode||"slide"!==a.effect&&"fade"!==a.effect)){const t=`${a.containerModifierClass}backface-hidden`,s=e.$el.hasClass(t);p<=a.maxBackfaceHiddenSlides?s||e.$el.addClass(t):s&&e.$el.removeClass(t)}},updateAutoHeight:function(e){const t=this,s=[],a=t.virtual&&t.params.virtual.enabled;let i,r=0;"number"==typeof e?t.setTransition(e):!0===e&&t.setTransition(t.params.speed);const n=e=>a?t.slides.filter((t=>parseInt(t.getAttribute("data-swiper-slide-index"),10)===e))[0]:t.slides.eq(e)[0];if("auto"!==t.params.slidesPerView&&t.params.slidesPerView>1)if(t.params.centeredSlides)(t.visibleSlides||d([])).each((e=>{s.push(e)}));else for(i=0;it.slides.length&&!a)break;s.push(n(e))}else s.push(n(t.activeIndex));for(i=0;ir?e:r}(r||0===r)&&t.$wrapperEl.css("height",`${r}px`)},updateSlidesOffset:function(){const e=this,t=e.slides;for(let s=0;s=0&&p1&&u<=t.size||p<=0&&u>=t.size)&&(t.visibleSlides.push(l),t.visibleSlidesIndexes.push(e),a.eq(e).addClass(s.slideVisibleClass)),l.progress=i?-d:d,l.originalProgress=i?-c:c}t.visibleSlides=d(t.visibleSlides)},updateProgress:function(e){const t=this;if(void 0===e){const s=t.rtlTranslate?-1:1;e=t&&t.translate&&t.translate*s||0}const s=t.params,a=t.maxTranslate()-t.minTranslate();let{progress:i,isBeginning:r,isEnd:n}=t;const l=r,o=n;0===a?(i=0,r=!0,n=!0):(i=(e-t.minTranslate())/a,r=i<=0,n=i>=1),Object.assign(t,{progress:i,isBeginning:r,isEnd:n}),(s.watchSlidesProgress||s.centeredSlides&&s.autoHeight)&&t.updateSlidesProgress(e),r&&!l&&t.emit("reachBeginning toEdge"),n&&!o&&t.emit("reachEnd toEdge"),(l&&!r||o&&!n)&&t.emit("fromEdge"),t.emit("progress",i)},updateSlidesClasses:function(){const e=this,{slides:t,params:s,$wrapperEl:a,activeIndex:i,realIndex:r}=e,n=e.virtual&&s.virtual.enabled;let l;t.removeClass(`${s.slideActiveClass} ${s.slideNextClass} ${s.slidePrevClass} ${s.slideDuplicateActiveClass} ${s.slideDuplicateNextClass} ${s.slideDuplicatePrevClass}`),l=n?e.$wrapperEl.find(`.${s.slideClass}[data-swiper-slide-index="${i}"]`):t.eq(i),l.addClass(s.slideActiveClass),s.loop&&(l.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${r}"]`).addClass(s.slideDuplicateActiveClass));let o=l.nextAll(`.${s.slideClass}`).eq(0).addClass(s.slideNextClass);s.loop&&0===o.length&&(o=t.eq(0),o.addClass(s.slideNextClass));let d=l.prevAll(`.${s.slideClass}`).eq(0).addClass(s.slidePrevClass);s.loop&&0===d.length&&(d=t.eq(-1),d.addClass(s.slidePrevClass)),s.loop&&(o.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${o.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicateNextClass),d.hasClass(s.slideDuplicateClass)?a.children(`.${s.slideClass}:not(.${s.slideDuplicateClass})[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass):a.children(`.${s.slideClass}.${s.slideDuplicateClass}[data-swiper-slide-index="${d.attr("data-swiper-slide-index")}"]`).addClass(s.slideDuplicatePrevClass)),e.emitSlidesClasses()},updateActiveIndex:function(e){const t=this,s=t.rtlTranslate?t.translate:-t.translate,{slidesGrid:a,snapGrid:i,params:r,activeIndex:n,realIndex:l,snapIndex:o}=t;let d,c=e;if(void 0===c){for(let e=0;e=a[e]&&s=a[e]&&s=a[e]&&(c=e);r.normalizeSlideIndex&&(c<0||void 0===c)&&(c=0)}if(i.indexOf(s)>=0)d=i.indexOf(s);else{const e=Math.min(r.slidesPerGroupSkip,c);d=e+Math.floor((c-e)/r.slidesPerGroup)}if(d>=i.length&&(d=i.length-1),c===n)return void(d!==o&&(t.snapIndex=d,t.emit("snapIndexChange")));const p=parseInt(t.slides.eq(c).attr("data-swiper-slide-index")||c,10);Object.assign(t,{snapIndex:d,realIndex:p,previousIndex:n,activeIndex:c}),t.emit("activeIndexChange"),t.emit("snapIndexChange"),l!==p&&t.emit("realIndexChange"),(t.initialized||t.params.runCallbacksOnInit)&&t.emit("slideChange")},updateClickedSlide:function(e){const t=this,s=t.params,a=d(e).closest(`.${s.slideClass}`)[0];let i,r=!1;if(a)for(let e=0;eo?o:a&&en?"next":r=o.length&&(g=o.length-1),(p||l.initialSlide||0)===(c||0)&&s&&r.emit("beforeSlideChangeStart");const v=-o[g];if(r.updateProgress(v),l.normalizeSlideIndex)for(let e=0;e=s&&t=s&&t=s&&(n=e)}if(r.initialized&&n!==p){if(!r.allowSlideNext&&vr.translate&&v>r.maxTranslate()&&(p||0)!==n)return!1}let b;if(b=n>p?"next":n{r.wrapperEl.style.scrollSnapType="",r._swiperImmediateVirtual=!1}))}else{if(!r.support.smoothScroll)return w({swiper:r,targetPosition:s,side:e?"left":"top"}),!0;h.scrollTo({[e?"left":"top"]:s,behavior:"smooth"})}return!0}return r.setTransition(t),r.setTranslate(v),r.updateActiveIndex(n),r.updateSlidesClasses(),r.emit("beforeTransitionStart",t,a),r.transitionStart(s,b),0===t?r.transitionEnd(s,b):r.animating||(r.animating=!0,r.onSlideToWrapperTransitionEnd||(r.onSlideToWrapperTransitionEnd=function(e){r&&!r.destroyed&&e.target===this&&(r.$wrapperEl[0].removeEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].removeEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd),r.onSlideToWrapperTransitionEnd=null,delete r.onSlideToWrapperTransitionEnd,r.transitionEnd(s,b))}),r.$wrapperEl[0].addEventListener("transitionend",r.onSlideToWrapperTransitionEnd),r.$wrapperEl[0].addEventListener("webkitTransitionEnd",r.onSlideToWrapperTransitionEnd)),!0},slideToLoop:function(e,t,s,a){if(void 0===e&&(e=0),void 0===t&&(t=this.params.speed),void 0===s&&(s=!0),"string"==typeof e){const t=parseInt(e,10);if(!isFinite(t))throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${e}] given.`);e=t}const i=this;let r=e;return i.params.loop&&(r+=i.loopedSlides),i.slideTo(r,t,s,a)},slideNext:function(e,t,s){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);const a=this,{animating:i,enabled:r,params:n}=a;if(!r)return a;let l=n.slidesPerGroup;"auto"===n.slidesPerView&&1===n.slidesPerGroup&&n.slidesPerGroupAuto&&(l=Math.max(a.slidesPerViewDynamic("current",!0),1));const o=a.activeIndexc(e)));let h=n[u.indexOf(p)-1];if(void 0===h&&i.cssMode){let e;n.forEach(((t,s)=>{p>=t&&(e=s)})),void 0!==e&&(h=n[e>0?e-1:e])}let m=0;if(void 0!==h&&(m=l.indexOf(h),m<0&&(m=a.activeIndex-1),"auto"===i.slidesPerView&&1===i.slidesPerGroup&&i.slidesPerGroupAuto&&(m=m-a.slidesPerViewDynamic("previous",!0)+1,m=Math.max(m,0))),i.rewind&&a.isBeginning){const i=a.params.virtual&&a.params.virtual.enabled&&a.virtual?a.virtual.slides.length-1:a.slides.length-1;return a.slideTo(i,e,t,s)}return a.slideTo(m,e,t,s)},slideReset:function(e,t,s){return void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),this.slideTo(this.activeIndex,e,t,s)},slideToClosest:function(e,t,s,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===a&&(a=.5);const i=this;let r=i.activeIndex;const n=Math.min(i.params.slidesPerGroupSkip,r),l=n+Math.floor((r-n)/i.params.slidesPerGroup),o=i.rtlTranslate?i.translate:-i.translate;if(o>=i.snapGrid[l]){const e=i.snapGrid[l];o-e>(i.snapGrid[l+1]-e)*a&&(r+=i.params.slidesPerGroup)}else{const e=i.snapGrid[l-1];o-e<=(i.snapGrid[l]-e)*a&&(r-=i.params.slidesPerGroup)}return r=Math.max(r,0),r=Math.min(r,i.slidesGrid.length-1),i.slideTo(r,e,t,s)},slideToClickedSlide:function(){const e=this,{params:t,$wrapperEl:s}=e,a="auto"===t.slidesPerView?e.slidesPerViewDynamic():t.slidesPerView;let i,r=e.clickedIndex;if(t.loop){if(e.animating)return;i=parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10),t.centeredSlides?re.slides.length-e.loopedSlides+a/2?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r):r>e.slides.length-a?(e.loopFix(),r=s.children(`.${t.slideClass}[data-swiper-slide-index="${i}"]:not(.${t.slideDuplicateClass})`).eq(0).index(),p((()=>{e.slideTo(r)}))):e.slideTo(r)}else e.slideTo(r)}};var z={loopCreate:function(){const e=this,t=a(),{params:s,$wrapperEl:i}=e,r=i.children().length>0?d(i.children()[0].parentNode):i;r.children(`.${s.slideClass}.${s.slideDuplicateClass}`).remove();let n=r.children(`.${s.slideClass}`);if(s.loopFillGroupWithBlank){const e=s.slidesPerGroup-n.length%s.slidesPerGroup;if(e!==s.slidesPerGroup){for(let a=0;an.length&&(e.loopedSlides=n.length);const l=[],o=[];n.each(((t,s)=>{const a=d(t);s=n.length-e.loopedSlides&&l.push(t),a.attr("data-swiper-slide-index",s)}));for(let e=0;e=0;e-=1)r.prepend(d(l[e].cloneNode(!0)).addClass(s.slideDuplicateClass))},loopFix:function(){const e=this;e.emit("beforeLoopFix");const{activeIndex:t,slides:s,loopedSlides:a,allowSlidePrev:i,allowSlideNext:r,snapGrid:n,rtlTranslate:l}=e;let o;e.allowSlidePrev=!0,e.allowSlideNext=!0;const d=-n[t]-e.getTranslate();if(t=s.length-a){o=-s.length+t+a,o+=a;e.slideTo(o,0,!1,!0)&&0!==d&&e.setTranslate((l?-e.translate:e.translate)-d)}e.allowSlidePrev=i,e.allowSlideNext=r,e.emit("loopFix")},loopDestroy:function(){const{$wrapperEl:e,params:t,slides:s}=this;e.children(`.${t.slideClass}.${t.slideDuplicateClass},.${t.slideClass}.${t.slideBlankClass}`).remove(),s.removeAttr("data-swiper-slide-index")}};function L(e){const t=this,s=a(),i=r(),n=t.touchEventsData,{params:l,touches:o,enabled:c}=t;if(!c)return;if(t.animating&&l.preventInteractionOnTransition)return;!t.animating&&l.cssMode&&l.loop&&t.loopFix();let p=e;p.originalEvent&&(p=p.originalEvent);let h=d(p.target);if("wrapper"===l.touchEventsTarget&&!h.closest(t.wrapperEl).length)return;if(n.isTouchEvent="touchstart"===p.type,!n.isTouchEvent&&"which"in p&&3===p.which)return;if(!n.isTouchEvent&&"button"in p&&p.button>0)return;if(n.isTouched&&n.isMoved)return;!!l.noSwipingClass&&""!==l.noSwipingClass&&p.target&&p.target.shadowRoot&&e.path&&e.path[0]&&(h=d(e.path[0]));const m=l.noSwipingSelector?l.noSwipingSelector:`.${l.noSwipingClass}`,f=!(!p.target||!p.target.shadowRoot);if(l.noSwiping&&(f?function(e,t){return void 0===t&&(t=this),function t(s){if(!s||s===a()||s===r())return null;s.assignedSlot&&(s=s.assignedSlot);const i=s.closest(e);return i||s.getRootNode?i||t(s.getRootNode().host):null}(t)}(m,h[0]):h.closest(m)[0]))return void(t.allowClick=!0);if(l.swipeHandler&&!h.closest(l.swipeHandler)[0])return;o.currentX="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,o.currentY="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY;const g=o.currentX,v=o.currentY,w=l.edgeSwipeDetection||l.iOSEdgeSwipeDetection,b=l.edgeSwipeThreshold||l.iOSEdgeSwipeThreshold;if(w&&(g<=b||g>=i.innerWidth-b)){if("prevent"!==w)return;e.preventDefault()}if(Object.assign(n,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),o.startX=g,o.startY=v,n.touchStartTime=u(),t.allowClick=!0,t.updateSize(),t.swipeDirection=void 0,l.threshold>0&&(n.allowThresholdMove=!1),"touchstart"!==p.type){let e=!0;h.is(n.focusableElements)&&(e=!1,"SELECT"===h[0].nodeName&&(n.isTouched=!1)),s.activeElement&&d(s.activeElement).is(n.focusableElements)&&s.activeElement!==h[0]&&s.activeElement.blur();const a=e&&t.allowTouchMove&&l.touchStartPreventDefault;!l.touchStartForcePreventDefault&&!a||h[0].isContentEditable||p.preventDefault()}t.params.freeMode&&t.params.freeMode.enabled&&t.freeMode&&t.animating&&!l.cssMode&&t.freeMode.onTouchStart(),t.emit("touchStart",p)}function O(e){const t=a(),s=this,i=s.touchEventsData,{params:r,touches:n,rtlTranslate:l,enabled:o}=s;if(!o)return;let c=e;if(c.originalEvent&&(c=c.originalEvent),!i.isTouched)return void(i.startMoving&&i.isScrolling&&s.emit("touchMoveOpposite",c));if(i.isTouchEvent&&"touchmove"!==c.type)return;const p="touchmove"===c.type&&c.targetTouches&&(c.targetTouches[0]||c.changedTouches[0]),h="touchmove"===c.type?p.pageX:c.pageX,m="touchmove"===c.type?p.pageY:c.pageY;if(c.preventedByNestedSwiper)return n.startX=h,void(n.startY=m);if(!s.allowTouchMove)return d(c.target).is(i.focusableElements)||(s.allowClick=!1),void(i.isTouched&&(Object.assign(n,{startX:h,startY:m,currentX:h,currentY:m}),i.touchStartTime=u()));if(i.isTouchEvent&&r.touchReleaseOnEdges&&!r.loop)if(s.isVertical()){if(mn.startY&&s.translate>=s.minTranslate())return i.isTouched=!1,void(i.isMoved=!1)}else if(hn.startX&&s.translate>=s.minTranslate())return;if(i.isTouchEvent&&t.activeElement&&c.target===t.activeElement&&d(c.target).is(i.focusableElements))return i.isMoved=!0,void(s.allowClick=!1);if(i.allowTouchCallbacks&&s.emit("touchMove",c),c.targetTouches&&c.targetTouches.length>1)return;n.currentX=h,n.currentY=m;const f=n.currentX-n.startX,g=n.currentY-n.startY;if(s.params.threshold&&Math.sqrt(f**2+g**2)=25&&(e=180*Math.atan2(Math.abs(g),Math.abs(f))/Math.PI,i.isScrolling=s.isHorizontal()?e>r.touchAngle:90-e>r.touchAngle)}if(i.isScrolling&&s.emit("touchMoveOpposite",c),void 0===i.startMoving&&(n.currentX===n.startX&&n.currentY===n.startY||(i.startMoving=!0)),i.isScrolling)return void(i.isTouched=!1);if(!i.startMoving)return;s.allowClick=!1,!r.cssMode&&c.cancelable&&c.preventDefault(),r.touchMoveStopPropagation&&!r.nested&&c.stopPropagation(),i.isMoved||(r.loop&&!r.cssMode&&s.loopFix(),i.startTranslate=s.getTranslate(),s.setTransition(0),s.animating&&s.$wrapperEl.trigger("webkitTransitionEnd transitionend"),i.allowMomentumBounce=!1,!r.grabCursor||!0!==s.allowSlideNext&&!0!==s.allowSlidePrev||s.setGrabCursor(!0),s.emit("sliderFirstMove",c)),s.emit("sliderMove",c),i.isMoved=!0;let v=s.isHorizontal()?f:g;n.diff=v,v*=r.touchRatio,l&&(v=-v),s.swipeDirection=v>0?"prev":"next",i.currentTranslate=v+i.startTranslate;let w=!0,b=r.resistanceRatio;if(r.touchReleaseOnEdges&&(b=0),v>0&&i.currentTranslate>s.minTranslate()?(w=!1,r.resistance&&(i.currentTranslate=s.minTranslate()-1+(-s.minTranslate()+i.startTranslate+v)**b)):v<0&&i.currentTranslatei.startTranslate&&(i.currentTranslate=i.startTranslate),s.allowSlidePrev||s.allowSlideNext||(i.currentTranslate=i.startTranslate),r.threshold>0){if(!(Math.abs(v)>r.threshold||i.allowThresholdMove))return void(i.currentTranslate=i.startTranslate);if(!i.allowThresholdMove)return i.allowThresholdMove=!0,n.startX=n.currentX,n.startY=n.currentY,i.currentTranslate=i.startTranslate,void(n.diff=s.isHorizontal()?n.currentX-n.startX:n.currentY-n.startY)}r.followFinger&&!r.cssMode&&((r.freeMode&&r.freeMode.enabled&&s.freeMode||r.watchSlidesProgress)&&(s.updateActiveIndex(),s.updateSlidesClasses()),s.params.freeMode&&r.freeMode.enabled&&s.freeMode&&s.freeMode.onTouchMove(),s.updateProgress(i.currentTranslate),s.setTranslate(i.currentTranslate))}function I(e){const t=this,s=t.touchEventsData,{params:a,touches:i,rtlTranslate:r,slidesGrid:n,enabled:l}=t;if(!l)return;let o=e;if(o.originalEvent&&(o=o.originalEvent),s.allowTouchCallbacks&&t.emit("touchEnd",o),s.allowTouchCallbacks=!1,!s.isTouched)return s.isMoved&&a.grabCursor&&t.setGrabCursor(!1),s.isMoved=!1,void(s.startMoving=!1);a.grabCursor&&s.isMoved&&s.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);const d=u(),c=d-s.touchStartTime;if(t.allowClick){const e=o.path||o.composedPath&&o.composedPath();t.updateClickedSlide(e&&e[0]||o.target),t.emit("tap click",o),c<300&&d-s.lastClickTime<300&&t.emit("doubleTap doubleClick",o)}if(s.lastClickTime=u(),p((()=>{t.destroyed||(t.allowClick=!0)})),!s.isTouched||!s.isMoved||!t.swipeDirection||0===i.diff||s.currentTranslate===s.startTranslate)return s.isTouched=!1,s.isMoved=!1,void(s.startMoving=!1);let h;if(s.isTouched=!1,s.isMoved=!1,s.startMoving=!1,h=a.followFinger?r?t.translate:-t.translate:-s.currentTranslate,a.cssMode)return;if(t.params.freeMode&&a.freeMode.enabled)return void t.freeMode.onTouchEnd({currentPos:h});let m=0,f=t.slidesSizesGrid[0];for(let e=0;e=n[e]&&h=n[e]&&(m=e,f=n[n.length-1]-n[n.length-2])}let g=null,v=null;a.rewind&&(t.isBeginning?v=t.params.virtual&&t.params.virtual.enabled&&t.virtual?t.virtual.slides.length-1:t.slides.length-1:t.isEnd&&(g=0));const w=(h-n[m])/f,b=ma.longSwipesMs){if(!a.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(w>=a.longSwipesRatio?t.slideTo(a.rewind&&t.isEnd?g:m+b):t.slideTo(m)),"prev"===t.swipeDirection&&(w>1-a.longSwipesRatio?t.slideTo(m+b):null!==v&&w<0&&Math.abs(w)>a.longSwipesRatio?t.slideTo(v):t.slideTo(m))}else{if(!a.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(o.target===t.navigation.nextEl||o.target===t.navigation.prevEl)?o.target===t.navigation.nextEl?t.slideTo(m+b):t.slideTo(m):("next"===t.swipeDirection&&t.slideTo(null!==g?g:m+b),"prev"===t.swipeDirection&&t.slideTo(null!==v?v:m))}}function A(){const e=this,{params:t,el:s}=e;if(s&&0===s.offsetWidth)return;t.breakpoints&&e.setBreakpoint();const{allowSlideNext:a,allowSlidePrev:i,snapGrid:r}=e;e.allowSlideNext=!0,e.allowSlidePrev=!0,e.updateSize(),e.updateSlides(),e.updateSlidesClasses(),("auto"===t.slidesPerView||t.slidesPerView>1)&&e.isEnd&&!e.isBeginning&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),e.autoplay&&e.autoplay.running&&e.autoplay.paused&&e.autoplay.run(),e.allowSlidePrev=i,e.allowSlideNext=a,e.params.watchOverflow&&r!==e.snapGrid&&e.checkOverflow()}function D(e){const t=this;t.enabled&&(t.allowClick||(t.params.preventClicks&&e.preventDefault(),t.params.preventClicksPropagation&&t.animating&&(e.stopPropagation(),e.stopImmediatePropagation())))}function G(){const e=this,{wrapperEl:t,rtlTranslate:s,enabled:a}=e;if(!a)return;let i;e.previousTranslate=e.translate,e.isHorizontal()?e.translate=-t.scrollLeft:e.translate=-t.scrollTop,0===e.translate&&(e.translate=0),e.updateActiveIndex(),e.updateSlidesClasses();const r=e.maxTranslate()-e.minTranslate();i=0===r?0:(e.translate-e.minTranslate())/r,i!==e.progress&&e.updateProgress(s?-e.translate:e.translate),e.emit("setTranslate",e.translate,!1)}let N=!1;function B(){}const H=(e,t)=>{const s=a(),{params:i,touchEvents:r,el:n,wrapperEl:l,device:o,support:d}=e,c=!!i.nested,p="on"===t?"addEventListener":"removeEventListener",u=t;if(d.touch){const t=!("touchstart"!==r.start||!d.passiveListener||!i.passiveListeners)&&{passive:!0,capture:!1};n[p](r.start,e.onTouchStart,t),n[p](r.move,e.onTouchMove,d.passiveListener?{passive:!1,capture:c}:c),n[p](r.end,e.onTouchEnd,t),r.cancel&&n[p](r.cancel,e.onTouchEnd,t)}else n[p](r.start,e.onTouchStart,!1),s[p](r.move,e.onTouchMove,c),s[p](r.end,e.onTouchEnd,!1);(i.preventClicks||i.preventClicksPropagation)&&n[p]("click",e.onClick,!0),i.cssMode&&l[p]("scroll",e.onScroll),i.updateOnWindowResize?e[u](o.ios||o.android?"resize orientationchange observerUpdate":"resize observerUpdate",A,!0):e[u]("observerUpdate",A,!0)};var X={attachEvents:function(){const e=this,t=a(),{params:s,support:i}=e;e.onTouchStart=L.bind(e),e.onTouchMove=O.bind(e),e.onTouchEnd=I.bind(e),s.cssMode&&(e.onScroll=G.bind(e)),e.onClick=D.bind(e),i.touch&&!N&&(t.addEventListener("touchstart",B),N=!0),H(e,"on")},detachEvents:function(){H(this,"off")}};const Y=(e,t)=>e.grid&&t.grid&&t.grid.rows>1;var R={addClasses:function(){const e=this,{classNames:t,params:s,rtl:a,$el:i,device:r,support:n}=e,l=function(e,t){const s=[];return e.forEach((e=>{"object"==typeof e?Object.keys(e).forEach((a=>{e[a]&&s.push(t+a)})):"string"==typeof e&&s.push(t+e)})),s}(["initialized",s.direction,{"pointer-events":!n.touch},{"free-mode":e.params.freeMode&&s.freeMode.enabled},{autoheight:s.autoHeight},{rtl:a},{grid:s.grid&&s.grid.rows>1},{"grid-column":s.grid&&s.grid.rows>1&&"column"===s.grid.fill},{android:r.android},{ios:r.ios},{"css-mode":s.cssMode},{centered:s.cssMode&&s.centeredSlides},{"watch-progress":s.watchSlidesProgress}],s.containerModifierClass);t.push(...l),i.addClass([...t].join(" ")),e.emitContainerClasses()},removeClasses:function(){const{$el:e,classNames:t}=this;e.removeClass(t.join(" ")),this.emitContainerClasses()}};var W={init:!0,direction:"horizontal",touchEventsTarget:"wrapper",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,resizeObserver:!0,nested:!1,createElements:!1,enabled:!0,focusableElements:"input, select, option, textarea, button, video, label",width:null,height:null,preventInteractionOnTransition:!1,userAgent:null,url:null,edgeSwipeDetection:!1,edgeSwipeThreshold:20,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,breakpointsBase:"window",spaceBetween:0,slidesPerView:1,slidesPerGroup:1,slidesPerGroupSkip:0,slidesPerGroupAuto:!1,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!0,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,loopPreventsSlide:!0,rewind:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,maxBackfaceHiddenSlides:10,containerModifierClass:"swiper-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0,_emitClasses:!1};function j(e,t){return function(s){void 0===s&&(s={});const a=Object.keys(s)[0],i=s[a];"object"==typeof i&&null!==i?(["navigation","pagination","scrollbar"].indexOf(a)>=0&&!0===e[a]&&(e[a]={auto:!0}),a in e&&"enabled"in i?(!0===e[a]&&(e[a]={enabled:!0}),"object"!=typeof e[a]||"enabled"in e[a]||(e[a].enabled=!0),e[a]||(e[a]={enabled:!1}),g(t,s)):g(t,s)):g(t,s)}}const _={eventsEmitter:$,update:S,translate:M,transition:{setTransition:function(e,t){const s=this;s.params.cssMode||s.$wrapperEl.transition(e),s.emit("setTransition",e,t)},transitionStart:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;a.cssMode||(a.autoHeight&&s.updateAutoHeight(),P({swiper:s,runCallbacks:e,direction:t,step:"Start"}))},transitionEnd:function(e,t){void 0===e&&(e=!0);const s=this,{params:a}=s;s.animating=!1,a.cssMode||(s.setTransition(0),P({swiper:s,runCallbacks:e,direction:t,step:"End"}))}},slide:k,loop:z,grabCursor:{setGrabCursor:function(e){const t=this;if(t.support.touch||!t.params.simulateTouch||t.params.watchOverflow&&t.isLocked||t.params.cssMode)return;const s="container"===t.params.touchEventsTarget?t.el:t.wrapperEl;s.style.cursor="move",s.style.cursor=e?"grabbing":"grab"},unsetGrabCursor:function(){const e=this;e.support.touch||e.params.watchOverflow&&e.isLocked||e.params.cssMode||(e["container"===e.params.touchEventsTarget?"el":"wrapperEl"].style.cursor="")}},events:X,breakpoints:{setBreakpoint:function(){const e=this,{activeIndex:t,initialized:s,loopedSlides:a=0,params:i,$el:r}=e,n=i.breakpoints;if(!n||n&&0===Object.keys(n).length)return;const l=e.getBreakpoint(n,e.params.breakpointsBase,e.el);if(!l||e.currentBreakpoint===l)return;const o=(l in n?n[l]:void 0)||e.originalParams,d=Y(e,i),c=Y(e,o),p=i.enabled;d&&!c?(r.removeClass(`${i.containerModifierClass}grid ${i.containerModifierClass}grid-column`),e.emitContainerClasses()):!d&&c&&(r.addClass(`${i.containerModifierClass}grid`),(o.grid.fill&&"column"===o.grid.fill||!o.grid.fill&&"column"===i.grid.fill)&&r.addClass(`${i.containerModifierClass}grid-column`),e.emitContainerClasses()),["navigation","pagination","scrollbar"].forEach((t=>{const s=i[t]&&i[t].enabled,a=o[t]&&o[t].enabled;s&&!a&&e[t].disable(),!s&&a&&e[t].enable()}));const u=o.direction&&o.direction!==i.direction,h=i.loop&&(o.slidesPerView!==i.slidesPerView||u);u&&s&&e.changeDirection(),g(e.params,o);const m=e.params.enabled;Object.assign(e,{allowTouchMove:e.params.allowTouchMove,allowSlideNext:e.params.allowSlideNext,allowSlidePrev:e.params.allowSlidePrev}),p&&!m?e.disable():!p&&m&&e.enable(),e.currentBreakpoint=l,e.emit("_beforeBreakpoint",o),h&&s&&(e.loopDestroy(),e.loopCreate(),e.updateSlides(),e.slideTo(t-a+e.loopedSlides,0,!1)),e.emit("breakpoint",o)},getBreakpoint:function(e,t,s){if(void 0===t&&(t="window"),!e||"container"===t&&!s)return;let a=!1;const i=r(),n="window"===t?i.innerHeight:s.clientHeight,l=Object.keys(e).map((e=>{if("string"==typeof e&&0===e.indexOf("@")){const t=parseFloat(e.substr(1));return{value:n*t,point:e}}return{value:e,point:e}}));l.sort(((e,t)=>parseInt(e.value,10)-parseInt(t.value,10)));for(let e=0;es}else e.isLocked=1===e.snapGrid.length;!0===s.allowSlideNext&&(e.allowSlideNext=!e.isLocked),!0===s.allowSlidePrev&&(e.allowSlidePrev=!e.isLocked),t&&t!==e.isLocked&&(e.isEnd=!1),t!==e.isLocked&&e.emit(e.isLocked?"lock":"unlock")}},classes:R,images:{loadImage:function(e,t,s,a,i,n){const l=r();let o;function c(){n&&n()}d(e).parent("picture")[0]||e.complete&&i?c():t?(o=new l.Image,o.onload=c,o.onerror=c,a&&(o.sizes=a),s&&(o.srcset=s),t&&(o.src=t)):c()},preloadImages:function(){const e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(let s=0;s1){const e=[];return d(t.el).each((s=>{const a=g({},t,{el:s});e.push(new V(a))})),e}const r=this;r.__swiper__=!0,r.support=E(),r.device=C({userAgent:t.userAgent}),r.browser=T(),r.eventsListeners={},r.eventsAnyListeners=[],r.modules=[...r.__modules__],t.modules&&Array.isArray(t.modules)&&r.modules.push(...t.modules);const n={};r.modules.forEach((e=>{e({swiper:r,extendParams:j(t,n),on:r.on.bind(r),once:r.once.bind(r),off:r.off.bind(r),emit:r.emit.bind(r)})}));const l=g({},W,n);return r.params=g({},l,q,t),r.originalParams=g({},r.params),r.passedParams=g({},t),r.params&&r.params.on&&Object.keys(r.params.on).forEach((e=>{r.on(e,r.params.on[e])})),r.params&&r.params.onAny&&r.onAny(r.params.onAny),r.$=d,Object.assign(r,{enabled:r.params.enabled,el:e,classNames:[],slides:d(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:()=>"horizontal"===r.params.direction,isVertical:()=>"vertical"===r.params.direction,activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:r.params.allowSlideNext,allowSlidePrev:r.params.allowSlidePrev,touchEvents:function(){const e=["touchstart","touchmove","touchend","touchcancel"],t=["pointerdown","pointermove","pointerup"];return r.touchEventsTouch={start:e[0],move:e[1],end:e[2],cancel:e[3]},r.touchEventsDesktop={start:t[0],move:t[1],end:t[2]},r.support.touch||!r.params.simulateTouch?r.touchEventsTouch:r.touchEventsDesktop}(),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,focusableElements:r.params.focusableElements,lastClickTime:u(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:r.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),r.emit("_swiper"),r.params.init&&r.init(),r}enable(){const e=this;e.enabled||(e.enabled=!0,e.params.grabCursor&&e.setGrabCursor(),e.emit("enable"))}disable(){const e=this;e.enabled&&(e.enabled=!1,e.params.grabCursor&&e.unsetGrabCursor(),e.emit("disable"))}setProgress(e,t){const s=this;e=Math.min(Math.max(e,0),1);const a=s.minTranslate(),i=(s.maxTranslate()-a)*e+a;s.translateTo(i,void 0===t?0:t),s.updateActiveIndex(),s.updateSlidesClasses()}emitContainerClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=e.el.className.split(" ").filter((t=>0===t.indexOf("swiper")||0===t.indexOf(e.params.containerModifierClass)));e.emit("_containerClasses",t.join(" "))}getSlideClasses(e){const t=this;return t.destroyed?"":e.className.split(" ").filter((e=>0===e.indexOf("swiper-slide")||0===e.indexOf(t.params.slideClass))).join(" ")}emitSlidesClasses(){const e=this;if(!e.params._emitClasses||!e.el)return;const t=[];e.slides.each((s=>{const a=e.getSlideClasses(s);t.push({slideEl:s,classNames:a}),e.emit("_slideClass",s,a)})),e.emit("_slideClasses",t)}slidesPerViewDynamic(e,t){void 0===e&&(e="current"),void 0===t&&(t=!1);const{params:s,slides:a,slidesGrid:i,slidesSizesGrid:r,size:n,activeIndex:l}=this;let o=1;if(s.centeredSlides){let e,t=a[l].swiperSlideSize;for(let s=l+1;sn&&(e=!0));for(let s=l-1;s>=0;s-=1)a[s]&&!e&&(t+=a[s].swiperSlideSize,o+=1,t>n&&(e=!0))}else if("current"===e)for(let e=l+1;e=0;e-=1){i[l]-i[e]1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0),i||a()),s.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}changeDirection(e,t){void 0===t&&(t=!0);const s=this,a=s.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(s.$el.removeClass(`${s.params.containerModifierClass}${a}`).addClass(`${s.params.containerModifierClass}${e}`),s.emitContainerClasses(),s.params.direction=e,s.slides.each((t=>{"vertical"===e?t.style.width="":t.style.height=""})),s.emit("changeDirection"),t&&s.update()),s}changeLanguageDirection(e){const t=this;t.rtl&&"rtl"===e||!t.rtl&&"ltr"===e||(t.rtl="rtl"===e,t.rtlTranslate="horizontal"===t.params.direction&&t.rtl,t.rtl?(t.$el.addClass(`${t.params.containerModifierClass}rtl`),t.el.dir="rtl"):(t.$el.removeClass(`${t.params.containerModifierClass}rtl`),t.el.dir="ltr"),t.update())}mount(e){const t=this;if(t.mounted)return!0;const s=d(e||t.params.el);if(!(e=s[0]))return!1;e.swiper=t;const i=()=>`.${(t.params.wrapperClass||"").trim().split(" ").join(".")}`;let r=(()=>{if(e&&e.shadowRoot&&e.shadowRoot.querySelector){const t=d(e.shadowRoot.querySelector(i()));return t.children=e=>s.children(e),t}return s.children?s.children(i()):d(s).children(i())})();if(0===r.length&&t.params.createElements){const e=a().createElement("div");r=d(e),e.className=t.params.wrapperClass,s.append(e),s.children(`.${t.params.slideClass}`).each((e=>{r.append(e)}))}return Object.assign(t,{$el:s,el:e,$wrapperEl:r,wrapperEl:r[0],mounted:!0,rtl:"rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction"),rtlTranslate:"horizontal"===t.params.direction&&("rtl"===e.dir.toLowerCase()||"rtl"===s.css("direction")),wrongRTL:"-webkit-box"===r.css("display")}),!0}init(e){const t=this;if(t.initialized)return t;return!1===t.mount(e)||(t.emit("beforeInit"),t.params.breakpoints&&t.setBreakpoint(),t.addClasses(),t.params.loop&&t.loopCreate(),t.updateSize(),t.updateSlides(),t.params.watchOverflow&&t.checkOverflow(),t.params.grabCursor&&t.enabled&&t.setGrabCursor(),t.params.preloadImages&&t.preloadImages(),t.params.loop?t.slideTo(t.params.initialSlide+t.loopedSlides,0,t.params.runCallbacksOnInit,!1,!0):t.slideTo(t.params.initialSlide,0,t.params.runCallbacksOnInit,!1,!0),t.attachEvents(),t.initialized=!0,t.emit("init"),t.emit("afterInit")),t}destroy(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);const s=this,{params:a,$el:i,$wrapperEl:r,slides:n}=s;return void 0===s.params||s.destroyed||(s.emit("beforeDestroy"),s.initialized=!1,s.detachEvents(),a.loop&&s.loopDestroy(),t&&(s.removeClasses(),i.removeAttr("style"),r.removeAttr("style"),n&&n.length&&n.removeClass([a.slideVisibleClass,a.slideActiveClass,a.slideNextClass,a.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),s.emit("destroy"),Object.keys(s.eventsListeners).forEach((e=>{s.off(e)})),!1!==e&&(s.$el[0].swiper=null,function(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}(s)),s.destroyed=!0),null}static extendDefaults(e){g(q,e)}static get extendedDefaults(){return q}static get defaults(){return W}static installModule(e){V.prototype.__modules__||(V.prototype.__modules__=[]);const t=V.prototype.__modules__;"function"==typeof e&&t.indexOf(e)<0&&t.push(e)}static use(e){return Array.isArray(e)?(e.forEach((e=>V.installModule(e))),V):(V.installModule(e),V)}}function F(e,t,s,i){const r=a();return e.params.createElements&&Object.keys(i).forEach((a=>{if(!s[a]&&!0===s.auto){let n=e.$el.children(`.${i[a]}`)[0];n||(n=r.createElement("div"),n.className=i[a],e.$el.append(n)),s[a]=n,t[a]=n}})),s}function U(e){return void 0===e&&(e=""),`.${e.trim().replace(/([\.:!\/])/g,"\\$1").replace(/ /g,".")}`}function K(e){const t=this,{$wrapperEl:s,params:a}=t;if(a.loop&&t.loopDestroy(),"object"==typeof e&&"length"in e)for(let t=0;t=l)return void s.appendSlide(t);let o=n>e?n+1:n;const d=[];for(let t=l-1;t>=e;t-=1){const e=s.slides.eq(t);e.remove(),d.unshift(e)}if("object"==typeof t&&"length"in t){for(let e=0;ee?n+t.length:n}else a.append(t);for(let e=0;e{if(s.params.effect!==t)return;s.classNames.push(`${s.params.containerModifierClass}${t}`),l&&l()&&s.classNames.push(`${s.params.containerModifierClass}3d`);const e=n?n():{};Object.assign(s.params,e),Object.assign(s.originalParams,e)})),a("setTranslate",(()=>{s.params.effect===t&&i()})),a("setTransition",((e,a)=>{s.params.effect===t&&r(a)})),a("transitionEnd",(()=>{if(s.params.effect===t&&o){if(!d||!d().slideShadows)return;s.slides.each((e=>{s.$(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").remove()})),o()}})),a("virtualUpdate",(()=>{s.params.effect===t&&(s.slides.length||(c=!0),requestAnimationFrame((()=>{c&&s.slides&&s.slides.length&&(i(),c=!1)})))}))}function se(e,t){return e.transformEl?t.find(e.transformEl).css({"backface-visibility":"hidden","-webkit-backface-visibility":"hidden"}):t}function ae(e){let{swiper:t,duration:s,transformEl:a,allSlides:i}=e;const{slides:r,activeIndex:n,$wrapperEl:l}=t;if(t.params.virtualTranslate&&0!==s){let e,s=!1;e=i?a?r.find(a):r:a?r.eq(n).find(a):r.eq(n),e.transitionEnd((()=>{if(s)return;if(!t||t.destroyed)return;s=!0,t.animating=!1;const e=["webkitTransitionEnd","transitionend"];for(let t=0;t`),i.append(r)),r}Object.keys(_).forEach((e=>{Object.keys(_[e]).forEach((t=>{V.prototype[t]=_[e][t]}))})),V.use([function(e){let{swiper:t,on:s,emit:a}=e;const i=r();let n=null,l=null;const o=()=>{t&&!t.destroyed&&t.initialized&&(a("beforeResize"),a("resize"))},d=()=>{t&&!t.destroyed&&t.initialized&&a("orientationchange")};s("init",(()=>{t.params.resizeObserver&&void 0!==i.ResizeObserver?t&&!t.destroyed&&t.initialized&&(n=new ResizeObserver((e=>{l=i.requestAnimationFrame((()=>{const{width:s,height:a}=t;let i=s,r=a;e.forEach((e=>{let{contentBoxSize:s,contentRect:a,target:n}=e;n&&n!==t.el||(i=a?a.width:(s[0]||s).inlineSize,r=a?a.height:(s[0]||s).blockSize)})),i===s&&r===a||o()}))})),n.observe(t.el)):(i.addEventListener("resize",o),i.addEventListener("orientationchange",d))})),s("destroy",(()=>{l&&i.cancelAnimationFrame(l),n&&n.unobserve&&t.el&&(n.unobserve(t.el),n=null),i.removeEventListener("resize",o),i.removeEventListener("orientationchange",d)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=[],l=r(),o=function(e,t){void 0===t&&(t={});const s=new(l.MutationObserver||l.WebkitMutationObserver)((e=>{if(1===e.length)return void i("observerUpdate",e[0]);const t=function(){i("observerUpdate",e[0])};l.requestAnimationFrame?l.requestAnimationFrame(t):l.setTimeout(t,0)}));s.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),n.push(s)};s({observer:!1,observeParents:!1,observeSlideChildren:!1}),a("init",(()=>{if(t.params.observer){if(t.params.observeParents){const e=t.$el.parents();for(let t=0;t{n.forEach((e=>{e.disconnect()})),n.splice(0,n.length)}))}]);const re=[function(e){let t,{swiper:s,extendParams:a,on:i,emit:r}=e;function n(e,t){const a=s.params.virtual;if(a.cache&&s.virtual.cache[t])return s.virtual.cache[t];const i=a.renderSlide?d(a.renderSlide.call(s,e,t)):d(`
${e}
`);return i.attr("data-swiper-slide-index")||i.attr("data-swiper-slide-index",t),a.cache&&(s.virtual.cache[t]=i),i}function l(e){const{slidesPerView:t,slidesPerGroup:a,centeredSlides:i}=s.params,{addSlidesBefore:l,addSlidesAfter:o}=s.params.virtual,{from:d,to:c,slides:p,slidesGrid:u,offset:h}=s.virtual;s.params.cssMode||s.updateActiveIndex();const m=s.activeIndex||0;let f,g,v;f=s.rtlTranslate?"right":s.isHorizontal()?"left":"top",i?(g=Math.floor(t/2)+a+o,v=Math.floor(t/2)+a+l):(g=t+(a-1)+o,v=a+l);const w=Math.max((m||0)-v,0),b=Math.min((m||0)+g,p.length-1),x=(s.slidesGrid[w]||0)-(s.slidesGrid[0]||0);function y(){s.updateSlides(),s.updateProgress(),s.updateSlidesClasses(),s.lazy&&s.params.lazy.enabled&&s.lazy.load(),r("virtualUpdate")}if(Object.assign(s.virtual,{from:w,to:b,offset:x,slidesGrid:s.slidesGrid}),d===w&&c===b&&!e)return s.slidesGrid!==u&&x!==h&&s.slides.css(f,`${x}px`),s.updateProgress(),void r("virtualUpdate");if(s.params.virtual.renderExternal)return s.params.virtual.renderExternal.call(s,{offset:x,from:w,to:b,slides:function(){const e=[];for(let t=w;t<=b;t+=1)e.push(p[t]);return e}()}),void(s.params.virtual.renderExternalUpdate?y():r("virtualUpdate"));const E=[],C=[];if(e)s.$wrapperEl.find(`.${s.params.slideClass}`).remove();else for(let e=d;e<=c;e+=1)(eb)&&s.$wrapperEl.find(`.${s.params.slideClass}[data-swiper-slide-index="${e}"]`).remove();for(let t=0;t=w&&t<=b&&(void 0===c||e?C.push(t):(t>c&&C.push(t),t{s.$wrapperEl.append(n(p[e],e))})),E.sort(((e,t)=>t-e)).forEach((e=>{s.$wrapperEl.prepend(n(p[e],e))})),s.$wrapperEl.children(".swiper-slide").css(f,`${x}px`),y()}a({virtual:{enabled:!1,slides:[],cache:!0,renderSlide:null,renderExternal:null,renderExternalUpdate:!0,addSlidesBefore:0,addSlidesAfter:0}}),s.virtual={cache:{},from:void 0,to:void 0,slides:[],offset:0,slidesGrid:[]},i("beforeInit",(()=>{s.params.virtual.enabled&&(s.virtual.slides=s.params.virtual.slides,s.classNames.push(`${s.params.containerModifierClass}virtual`),s.params.watchSlidesProgress=!0,s.originalParams.watchSlidesProgress=!0,s.params.initialSlide||l())})),i("setTranslate",(()=>{s.params.virtual.enabled&&(s.params.cssMode&&!s._immediateVirtual?(clearTimeout(t),t=setTimeout((()=>{l()}),100)):l())})),i("init update resize",(()=>{s.params.virtual.enabled&&s.params.cssMode&&v(s.wrapperEl,"--swiper-virtual-size",`${s.virtualSize}px`)})),Object.assign(s.virtual,{appendSlide:function(e){if("object"==typeof e&&"length"in e)for(let t=0;t{const a=e[s],r=a.attr("data-swiper-slide-index");r&&a.attr("data-swiper-slide-index",parseInt(r,10)+i),t[parseInt(s,10)+i]=a})),s.virtual.cache=t}l(!0),s.slideTo(a,0)},removeSlide:function(e){if(null==e)return;let t=s.activeIndex;if(Array.isArray(e))for(let a=e.length-1;a>=0;a-=1)s.virtual.slides.splice(e[a],1),s.params.virtual.cache&&delete s.virtual.cache[e[a]],e[a]0&&0===t.$el.parents(`.${t.params.slideActiveClass}`).length)return;const a=t.$el,i=a[0].clientWidth,r=a[0].clientHeight,n=o.innerWidth,l=o.innerHeight,d=t.$el.offset();s&&(d.left-=t.$el[0].scrollLeft);const c=[[d.left,d.top],[d.left+i,d.top],[d.left,d.top+r],[d.left+i,d.top+r]];for(let t=0;t=0&&s[0]<=n&&s[1]>=0&&s[1]<=l){if(0===s[0]&&0===s[1])continue;e=!0}}if(!e)return}t.isHorizontal()?((d||c||p||u)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),((c||u)&&!s||(d||p)&&s)&&t.slideNext(),((d||p)&&!s||(c||u)&&s)&&t.slidePrev()):((d||c||h||m)&&(a.preventDefault?a.preventDefault():a.returnValue=!1),(c||m)&&t.slideNext(),(d||h)&&t.slidePrev()),n("keyPress",i)}}function p(){t.keyboard.enabled||(d(l).on("keydown",c),t.keyboard.enabled=!0)}function u(){t.keyboard.enabled&&(d(l).off("keydown",c),t.keyboard.enabled=!1)}t.keyboard={enabled:!1},s({keyboard:{enabled:!1,onlyInViewport:!0,pageUpDown:!0}}),i("init",(()=>{t.params.keyboard.enabled&&p()})),i("destroy",(()=>{t.keyboard.enabled&&u()})),Object.assign(t.keyboard,{enable:p,disable:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();let l;s({mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarget:"container",thresholdDelta:null,thresholdTime:null}}),t.mousewheel={enabled:!1};let o,c=u();const h=[];function m(){t.enabled&&(t.mouseEntered=!0)}function f(){t.enabled&&(t.mouseEntered=!1)}function g(e){return!(t.params.mousewheel.thresholdDelta&&e.delta=6&&u()-c<60||(e.direction<0?t.isEnd&&!t.params.loop||t.animating||(t.slideNext(),i("scroll",e.raw)):t.isBeginning&&!t.params.loop||t.animating||(t.slidePrev(),i("scroll",e.raw)),c=(new n.Date).getTime(),!1)))}function v(e){let s=e,a=!0;if(!t.enabled)return;const r=t.params.mousewheel;t.params.cssMode&&s.preventDefault();let n=t.$el;if("container"!==t.params.mousewheel.eventsTarget&&(n=d(t.params.mousewheel.eventsTarget)),!t.mouseEntered&&!n[0].contains(s.target)&&!r.releaseOnEdges)return!0;s.originalEvent&&(s=s.originalEvent);let c=0;const m=t.rtlTranslate?-1:1,f=function(e){let t=0,s=0,a=0,i=0;return"detail"in e&&(s=e.detail),"wheelDelta"in e&&(s=-e.wheelDelta/120),"wheelDeltaY"in e&&(s=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=s,s=0),a=10*t,i=10*s,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(a=e.deltaX),e.shiftKey&&!a&&(a=i,i=0),(a||i)&&e.deltaMode&&(1===e.deltaMode?(a*=40,i*=40):(a*=800,i*=800)),a&&!t&&(t=a<1?-1:1),i&&!s&&(s=i<1?-1:1),{spinX:t,spinY:s,pixelX:a,pixelY:i}}(s);if(r.forceToAxis)if(t.isHorizontal()){if(!(Math.abs(f.pixelX)>Math.abs(f.pixelY)))return!0;c=-f.pixelX*m}else{if(!(Math.abs(f.pixelY)>Math.abs(f.pixelX)))return!0;c=-f.pixelY}else c=Math.abs(f.pixelX)>Math.abs(f.pixelY)?-f.pixelX*m:-f.pixelY;if(0===c)return!0;r.invert&&(c=-c);let v=t.getTranslate()+c*r.sensitivity;if(v>=t.minTranslate()&&(v=t.minTranslate()),v<=t.maxTranslate()&&(v=t.maxTranslate()),a=!!t.params.loop||!(v===t.minTranslate()||v===t.maxTranslate()),a&&t.params.nested&&s.stopPropagation(),t.params.freeMode&&t.params.freeMode.enabled){const e={time:u(),delta:Math.abs(c),direction:Math.sign(c)},a=o&&e.time=t.minTranslate()&&(n=t.minTranslate()),n<=t.maxTranslate()&&(n=t.maxTranslate()),t.setTransition(0),t.setTranslate(n),t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses(),(!d&&t.isBeginning||!u&&t.isEnd)&&t.updateSlidesClasses(),t.params.freeMode.sticky){clearTimeout(l),l=void 0,h.length>=15&&h.shift();const s=h.length?h[h.length-1]:void 0,a=h[0];if(h.push(e),s&&(e.delta>s.delta||e.direction!==s.direction))h.splice(0);else if(h.length>=15&&e.time-a.time<500&&a.delta-e.delta>=1&&e.delta<=6){const s=c>0?.8:.2;o=e,h.splice(0),l=p((()=>{t.slideToClosest(t.params.speed,!0,void 0,s)}),0)}l||(l=p((()=>{o=e,h.splice(0),t.slideToClosest(t.params.speed,!0,void 0,.5)}),500))}if(a||i("scroll",s),t.params.autoplay&&t.params.autoplayDisableOnInteraction&&t.autoplay.stop(),n===t.minTranslate()||n===t.maxTranslate())return!0}}else{const s={time:u(),delta:Math.abs(c),direction:Math.sign(c),raw:e};h.length>=2&&h.shift();const a=h.length?h[h.length-1]:void 0;if(h.push(s),a?(s.direction!==a.direction||s.delta>a.delta||s.time>a.time+150)&&g(s):g(s),function(e){const s=t.params.mousewheel;if(e.direction<0){if(t.isEnd&&!t.params.loop&&s.releaseOnEdges)return!0}else if(t.isBeginning&&!t.params.loop&&s.releaseOnEdges)return!0;return!1}(s))return!0}return s.preventDefault?s.preventDefault():s.returnValue=!1,!1}function w(e){let s=t.$el;"container"!==t.params.mousewheel.eventsTarget&&(s=d(t.params.mousewheel.eventsTarget)),s[e]("mouseenter",m),s[e]("mouseleave",f),s[e]("wheel",v)}function b(){return t.params.cssMode?(t.wrapperEl.removeEventListener("wheel",v),!0):!t.mousewheel.enabled&&(w("on"),t.mousewheel.enabled=!0,!0)}function x(){return t.params.cssMode?(t.wrapperEl.addEventListener(event,v),!0):!!t.mousewheel.enabled&&(w("off"),t.mousewheel.enabled=!1,!0)}a("init",(()=>{!t.params.mousewheel.enabled&&t.params.cssMode&&x(),t.params.mousewheel.enabled&&b()})),a("destroy",(()=>{t.params.cssMode&&b(),t.mousewheel.enabled&&x()})),Object.assign(t.mousewheel,{enable:b,disable:x})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;function r(e){let s;return e&&(s=d(e),t.params.uniqueNavElements&&"string"==typeof e&&s.length>1&&1===t.$el.find(e).length&&(s=t.$el.find(e))),s}function n(e,s){const a=t.params.navigation;e&&e.length>0&&(e[s?"addClass":"removeClass"](a.disabledClass),e[0]&&"BUTTON"===e[0].tagName&&(e[0].disabled=s),t.params.watchOverflow&&t.enabled&&e[t.isLocked?"addClass":"removeClass"](a.lockClass))}function l(){if(t.params.loop)return;const{$nextEl:e,$prevEl:s}=t.navigation;n(s,t.isBeginning&&!t.params.rewind),n(e,t.isEnd&&!t.params.rewind)}function o(e){e.preventDefault(),(!t.isBeginning||t.params.loop||t.params.rewind)&&(t.slidePrev(),i("navigationPrev"))}function c(e){e.preventDefault(),(!t.isEnd||t.params.loop||t.params.rewind)&&(t.slideNext(),i("navigationNext"))}function p(){const e=t.params.navigation;if(t.params.navigation=F(t,t.originalParams.navigation,t.params.navigation,{nextEl:"swiper-button-next",prevEl:"swiper-button-prev"}),!e.nextEl&&!e.prevEl)return;const s=r(e.nextEl),a=r(e.prevEl);s&&s.length>0&&s.on("click",c),a&&a.length>0&&a.on("click",o),Object.assign(t.navigation,{$nextEl:s,nextEl:s&&s[0],$prevEl:a,prevEl:a&&a[0]}),t.enabled||(s&&s.addClass(e.lockClass),a&&a.addClass(e.lockClass))}function u(){const{$nextEl:e,$prevEl:s}=t.navigation;e&&e.length&&(e.off("click",c),e.removeClass(t.params.navigation.disabledClass)),s&&s.length&&(s.off("click",o),s.removeClass(t.params.navigation.disabledClass))}s({navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock",navigationDisabledClass:"swiper-navigation-disabled"}}),t.navigation={nextEl:null,$nextEl:null,prevEl:null,$prevEl:null},a("init",(()=>{!1===t.params.navigation.enabled?h():(p(),l())})),a("toEdge fromEdge lock unlock",(()=>{l()})),a("destroy",(()=>{u()})),a("enable disable",(()=>{const{$nextEl:e,$prevEl:s}=t.navigation;e&&e[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass),s&&s[t.enabled?"removeClass":"addClass"](t.params.navigation.lockClass)})),a("click",((e,s)=>{const{$nextEl:a,$prevEl:r}=t.navigation,n=s.target;if(t.params.navigation.hideOnClick&&!d(n).is(r)&&!d(n).is(a)){if(t.pagination&&t.params.pagination&&t.params.pagination.clickable&&(t.pagination.el===n||t.pagination.el.contains(n)))return;let e;a?e=a.hasClass(t.params.navigation.hiddenClass):r&&(e=r.hasClass(t.params.navigation.hiddenClass)),i(!0===e?"navigationShow":"navigationHide"),a&&a.toggleClass(t.params.navigation.hiddenClass),r&&r.toggleClass(t.params.navigation.hiddenClass)}}));const h=()=>{t.$el.addClass(t.params.navigation.navigationDisabledClass),u()};Object.assign(t.navigation,{enable:()=>{t.$el.removeClass(t.params.navigation.navigationDisabledClass),p(),l()},disable:h,update:l,init:p,destroy:u})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const r="swiper-pagination";let n;s({pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:e=>e,formatFractionTotal:e=>e,bulletClass:`${r}-bullet`,bulletActiveClass:`${r}-bullet-active`,modifierClass:`${r}-`,currentClass:`${r}-current`,totalClass:`${r}-total`,hiddenClass:`${r}-hidden`,progressbarFillClass:`${r}-progressbar-fill`,progressbarOppositeClass:`${r}-progressbar-opposite`,clickableClass:`${r}-clickable`,lockClass:`${r}-lock`,horizontalClass:`${r}-horizontal`,verticalClass:`${r}-vertical`,paginationDisabledClass:`${r}-disabled`}}),t.pagination={el:null,$el:null,bullets:[]};let l=0;function o(){return!t.params.pagination.el||!t.pagination.el||!t.pagination.$el||0===t.pagination.$el.length}function c(e,s){const{bulletActiveClass:a}=t.params.pagination;e[s]().addClass(`${a}-${s}`)[s]().addClass(`${a}-${s}-${s}`)}function p(){const e=t.rtl,s=t.params.pagination;if(o())return;const a=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,r=t.pagination.$el;let p;const u=t.params.loop?Math.ceil((a-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;if(t.params.loop?(p=Math.ceil((t.activeIndex-t.loopedSlides)/t.params.slidesPerGroup),p>a-1-2*t.loopedSlides&&(p-=a-2*t.loopedSlides),p>u-1&&(p-=u),p<0&&"bullets"!==t.params.paginationType&&(p=u+p)):p=void 0!==t.snapIndex?t.snapIndex:t.activeIndex||0,"bullets"===s.type&&t.pagination.bullets&&t.pagination.bullets.length>0){const a=t.pagination.bullets;let i,o,u;if(s.dynamicBullets&&(n=a.eq(0)[t.isHorizontal()?"outerWidth":"outerHeight"](!0),r.css(t.isHorizontal()?"width":"height",n*(s.dynamicMainBullets+4)+"px"),s.dynamicMainBullets>1&&void 0!==t.previousIndex&&(l+=p-(t.previousIndex-t.loopedSlides||0),l>s.dynamicMainBullets-1?l=s.dynamicMainBullets-1:l<0&&(l=0)),i=Math.max(p-l,0),o=i+(Math.min(a.length,s.dynamicMainBullets)-1),u=(o+i)/2),a.removeClass(["","-next","-next-next","-prev","-prev-prev","-main"].map((e=>`${s.bulletActiveClass}${e}`)).join(" ")),r.length>1)a.each((e=>{const t=d(e),a=t.index();a===p&&t.addClass(s.bulletActiveClass),s.dynamicBullets&&(a>=i&&a<=o&&t.addClass(`${s.bulletActiveClass}-main`),a===i&&c(t,"prev"),a===o&&c(t,"next"))}));else{const e=a.eq(p),r=e.index();if(e.addClass(s.bulletActiveClass),s.dynamicBullets){const e=a.eq(i),n=a.eq(o);for(let e=i;e<=o;e+=1)a.eq(e).addClass(`${s.bulletActiveClass}-main`);if(t.params.loop)if(r>=a.length){for(let e=s.dynamicMainBullets;e>=0;e-=1)a.eq(a.length-e).addClass(`${s.bulletActiveClass}-main`);a.eq(a.length-s.dynamicMainBullets-1).addClass(`${s.bulletActiveClass}-prev`)}else c(e,"prev"),c(n,"next");else c(e,"prev"),c(n,"next")}}if(s.dynamicBullets){const i=Math.min(a.length,s.dynamicMainBullets+4),r=(n*i-n)/2-u*n,l=e?"right":"left";a.css(t.isHorizontal()?l:"top",`${r}px`)}}if("fraction"===s.type&&(r.find(U(s.currentClass)).text(s.formatFractionCurrent(p+1)),r.find(U(s.totalClass)).text(s.formatFractionTotal(u))),"progressbar"===s.type){let e;e=s.progressbarOpposite?t.isHorizontal()?"vertical":"horizontal":t.isHorizontal()?"horizontal":"vertical";const a=(p+1)/u;let i=1,n=1;"horizontal"===e?i=a:n=a,r.find(U(s.progressbarFillClass)).transform(`translate3d(0,0,0) scaleX(${i}) scaleY(${n})`).transition(t.params.speed)}"custom"===s.type&&s.renderCustom?(r.html(s.renderCustom(t,p+1,u)),i("paginationRender",r[0])):i("paginationUpdate",r[0]),t.params.watchOverflow&&t.enabled&&r[t.isLocked?"addClass":"removeClass"](s.lockClass)}function u(){const e=t.params.pagination;if(o())return;const s=t.virtual&&t.params.virtual.enabled?t.virtual.slides.length:t.slides.length,a=t.pagination.$el;let r="";if("bullets"===e.type){let i=t.params.loop?Math.ceil((s-2*t.loopedSlides)/t.params.slidesPerGroup):t.snapGrid.length;t.params.freeMode&&t.params.freeMode.enabled&&!t.params.loop&&i>s&&(i=s);for(let s=0;s`;a.html(r),t.pagination.bullets=a.find(U(e.bulletClass))}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(t,e.currentClass,e.totalClass):` / `,a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(t,e.progressbarFillClass):``,a.html(r)),"custom"!==e.type&&i("paginationRender",t.pagination.$el[0])}function h(){t.params.pagination=F(t,t.originalParams.pagination,t.params.pagination,{el:"swiper-pagination"});const e=t.params.pagination;if(!e.el)return;let s=d(e.el);0!==s.length&&(t.params.uniqueNavElements&&"string"==typeof e.el&&s.length>1&&(s=t.$el.find(e.el),s.length>1&&(s=s.filter((e=>d(e).parents(".swiper")[0]===t.el)))),"bullets"===e.type&&e.clickable&&s.addClass(e.clickableClass),s.addClass(e.modifierClass+e.type),s.addClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),"bullets"===e.type&&e.dynamicBullets&&(s.addClass(`${e.modifierClass}${e.type}-dynamic`),l=0,e.dynamicMainBullets<1&&(e.dynamicMainBullets=1)),"progressbar"===e.type&&e.progressbarOpposite&&s.addClass(e.progressbarOppositeClass),e.clickable&&s.on("click",U(e.bulletClass),(function(e){e.preventDefault();let s=d(this).index()*t.params.slidesPerGroup;t.params.loop&&(s+=t.loopedSlides),t.slideTo(s)})),Object.assign(t.pagination,{$el:s,el:s[0]}),t.enabled||s.addClass(e.lockClass))}function m(){const e=t.params.pagination;if(o())return;const s=t.pagination.$el;s.removeClass(e.hiddenClass),s.removeClass(e.modifierClass+e.type),s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.pagination.bullets&&t.pagination.bullets.removeClass&&t.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&s.off("click",U(e.bulletClass))}a("init",(()=>{!1===t.params.pagination.enabled?f():(h(),u(),p())})),a("activeIndexChange",(()=>{(t.params.loop||void 0===t.snapIndex)&&p()})),a("snapIndexChange",(()=>{t.params.loop||p()})),a("slidesLengthChange",(()=>{t.params.loop&&(u(),p())})),a("snapGridLengthChange",(()=>{t.params.loop||(u(),p())})),a("destroy",(()=>{m()})),a("enable disable",(()=>{const{$el:e}=t.pagination;e&&e[t.enabled?"removeClass":"addClass"](t.params.pagination.lockClass)})),a("lock unlock",(()=>{p()})),a("click",((e,s)=>{const a=s.target,{$el:r}=t.pagination;if(t.params.pagination.el&&t.params.pagination.hideOnClick&&r&&r.length>0&&!d(a).hasClass(t.params.pagination.bulletClass)){if(t.navigation&&(t.navigation.nextEl&&a===t.navigation.nextEl||t.navigation.prevEl&&a===t.navigation.prevEl))return;const e=r.hasClass(t.params.pagination.hiddenClass);i(!0===e?"paginationShow":"paginationHide"),r.toggleClass(t.params.pagination.hiddenClass)}}));const f=()=>{t.$el.addClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.addClass(t.params.pagination.paginationDisabledClass),m()};Object.assign(t.pagination,{enable:()=>{t.$el.removeClass(t.params.pagination.paginationDisabledClass),t.pagination.$el&&t.pagination.$el.removeClass(t.params.pagination.paginationDisabledClass),h(),u(),p()},disable:f,render:u,update:p,init:h,destroy:m})},function(e){let{swiper:t,extendParams:s,on:i,emit:r}=e;const n=a();let l,o,c,u,h=!1,m=null,f=null;function g(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e,rtlTranslate:s,progress:a}=t,{$dragEl:i,$el:r}=e,n=t.params.scrollbar;let l=o,d=(c-o)*a;s?(d=-d,d>0?(l=o-d,d=0):-d+o>c&&(l=c+d)):d<0?(l=o+d,d=0):d+o>c&&(l=c-d),t.isHorizontal()?(i.transform(`translate3d(${d}px, 0, 0)`),i[0].style.width=`${l}px`):(i.transform(`translate3d(0px, ${d}px, 0)`),i[0].style.height=`${l}px`),n.hide&&(clearTimeout(m),r[0].style.opacity=1,m=setTimeout((()=>{r[0].style.opacity=0,r.transition(400)}),1e3))}function v(){if(!t.params.scrollbar.el||!t.scrollbar.el)return;const{scrollbar:e}=t,{$dragEl:s,$el:a}=e;s[0].style.width="",s[0].style.height="",c=t.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,u=t.size/(t.virtualSize+t.params.slidesOffsetBefore-(t.params.centeredSlides?t.snapGrid[0]:0)),o="auto"===t.params.scrollbar.dragSize?c*u:parseInt(t.params.scrollbar.dragSize,10),t.isHorizontal()?s[0].style.width=`${o}px`:s[0].style.height=`${o}px`,a[0].style.display=u>=1?"none":"",t.params.scrollbar.hide&&(a[0].style.opacity=0),t.params.watchOverflow&&t.enabled&&e.$el[t.isLocked?"addClass":"removeClass"](t.params.scrollbar.lockClass)}function w(e){return t.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY}function b(e){const{scrollbar:s,rtlTranslate:a}=t,{$el:i}=s;let r;r=(w(e)-i.offset()[t.isHorizontal()?"left":"top"]-(null!==l?l:o/2))/(c-o),r=Math.max(Math.min(r,1),0),a&&(r=1-r);const n=t.minTranslate()+(t.maxTranslate()-t.minTranslate())*r;t.updateProgress(n),t.setTranslate(n),t.updateActiveIndex(),t.updateSlidesClasses()}function x(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n,$dragEl:o}=a;h=!0,l=e.target===o[0]||e.target===o?w(e)-e.target.getBoundingClientRect()[t.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),i.transition(100),o.transition(100),b(e),clearTimeout(f),n.transition(0),s.hide&&n.css("opacity",1),t.params.cssMode&&t.$wrapperEl.css("scroll-snap-type","none"),r("scrollbarDragStart",e)}function y(e){const{scrollbar:s,$wrapperEl:a}=t,{$el:i,$dragEl:n}=s;h&&(e.preventDefault?e.preventDefault():e.returnValue=!1,b(e),a.transition(0),i.transition(0),n.transition(0),r("scrollbarDragMove",e))}function E(e){const s=t.params.scrollbar,{scrollbar:a,$wrapperEl:i}=t,{$el:n}=a;h&&(h=!1,t.params.cssMode&&(t.$wrapperEl.css("scroll-snap-type",""),i.transition("")),s.hide&&(clearTimeout(f),f=p((()=>{n.css("opacity",0),n.transition(400)}),1e3)),r("scrollbarDragEnd",e),s.snapOnRelease&&t.slideToClosest())}function C(e){const{scrollbar:s,touchEventsTouch:a,touchEventsDesktop:i,params:r,support:l}=t,o=s.$el;if(!o)return;const d=o[0],c=!(!l.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},p=!(!l.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};if(!d)return;const u="on"===e?"addEventListener":"removeEventListener";l.touch?(d[u](a.start,x,c),d[u](a.move,y,c),d[u](a.end,E,p)):(d[u](i.start,x,c),n[u](i.move,y,c),n[u](i.end,E,p))}function T(){const{scrollbar:e,$el:s}=t;t.params.scrollbar=F(t,t.originalParams.scrollbar,t.params.scrollbar,{el:"swiper-scrollbar"});const a=t.params.scrollbar;if(!a.el)return;let i=d(a.el);t.params.uniqueNavElements&&"string"==typeof a.el&&i.length>1&&1===s.find(a.el).length&&(i=s.find(a.el)),i.addClass(t.isHorizontal()?a.horizontalClass:a.verticalClass);let r=i.find(`.${t.params.scrollbar.dragClass}`);0===r.length&&(r=d(`
`),i.append(r)),Object.assign(e,{$el:i,el:i[0],$dragEl:r,dragEl:r[0]}),a.draggable&&t.params.scrollbar.el&&t.scrollbar.el&&C("on"),i&&i[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)}function $(){const e=t.params.scrollbar,s=t.scrollbar.$el;s&&s.removeClass(t.isHorizontal()?e.horizontalClass:e.verticalClass),t.params.scrollbar.el&&t.scrollbar.el&&C("off")}s({scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag",scrollbarDisabledClass:"swiper-scrollbar-disabled",horizontalClass:"swiper-scrollbar-horizontal",verticalClass:"swiper-scrollbar-vertical"}}),t.scrollbar={el:null,dragEl:null,$el:null,$dragEl:null},i("init",(()=>{!1===t.params.scrollbar.enabled?S():(T(),v(),g())})),i("update resize observerUpdate lock unlock",(()=>{v()})),i("setTranslate",(()=>{g()})),i("setTransition",((e,s)=>{!function(e){t.params.scrollbar.el&&t.scrollbar.el&&t.scrollbar.$dragEl.transition(e)}(s)})),i("enable disable",(()=>{const{$el:e}=t.scrollbar;e&&e[t.enabled?"removeClass":"addClass"](t.params.scrollbar.lockClass)})),i("destroy",(()=>{$()}));const S=()=>{t.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.addClass(t.params.scrollbar.scrollbarDisabledClass),$()};Object.assign(t.scrollbar,{enable:()=>{t.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),t.scrollbar.$el&&t.scrollbar.$el.removeClass(t.params.scrollbar.scrollbarDisabledClass),T(),v(),g()},disable:S,updateSize:v,setTranslate:g,init:T,destroy:$})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({parallax:{enabled:!1}});const i=(e,s)=>{const{rtl:a}=t,i=d(e),r=a?-1:1,n=i.attr("data-swiper-parallax")||"0";let l=i.attr("data-swiper-parallax-x"),o=i.attr("data-swiper-parallax-y");const c=i.attr("data-swiper-parallax-scale"),p=i.attr("data-swiper-parallax-opacity");if(l||o?(l=l||"0",o=o||"0"):t.isHorizontal()?(l=n,o="0"):(o=n,l="0"),l=l.indexOf("%")>=0?parseInt(l,10)*s*r+"%":l*s*r+"px",o=o.indexOf("%")>=0?parseInt(o,10)*s+"%":o*s+"px",null!=p){const e=p-(p-1)*(1-Math.abs(s));i[0].style.opacity=e}if(null==c)i.transform(`translate3d(${l}, ${o}, 0px)`);else{const e=c-(c-1)*(1-Math.abs(s));i.transform(`translate3d(${l}, ${o}, 0px) scale(${e})`)}},r=()=>{const{$el:e,slides:s,progress:a,snapGrid:r}=t;e.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,a)})),s.each(((e,s)=>{let n=e.progress;t.params.slidesPerGroup>1&&"auto"!==t.params.slidesPerView&&(n+=Math.ceil(s/2)-a*(r.length-1)),n=Math.min(Math.max(n,-1),1),d(e).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((e=>{i(e,n)}))}))};a("beforeInit",(()=>{t.params.parallax.enabled&&(t.params.watchSlidesProgress=!0,t.originalParams.watchSlidesProgress=!0)})),a("init",(()=>{t.params.parallax.enabled&&r()})),a("setTranslate",(()=>{t.params.parallax.enabled&&r()})),a("setTransition",((e,s)=>{t.params.parallax.enabled&&function(e){void 0===e&&(e=t.params.speed);const{$el:s}=t;s.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((t=>{const s=d(t);let a=parseInt(s.attr("data-swiper-parallax-duration"),10)||e;0===e&&(a=0),s.transition(a)}))}(s)}))},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;const n=r();s({zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}}),t.zoom={enabled:!1};let l,o,c,p=1,u=!1;const m={$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},f={isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},g={x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0};let v=1;function w(e){if(e.targetTouches.length<2)return 1;const t=e.targetTouches[0].pageX,s=e.targetTouches[0].pageY,a=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt((a-t)**2+(i-s)**2)}function b(e){const s=t.support,a=t.params.zoom;if(o=!1,c=!1,!s.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;o=!0,m.scaleStart=w(e)}m.$slideEl&&m.$slideEl.length||(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`),0===m.$slideEl.length&&(m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`),m.maxRatio=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,0!==m.$imageWrapEl.length)?(m.$imageEl&&m.$imageEl.transition(0),u=!0):m.$imageEl=void 0}function x(e){const s=t.support,a=t.params.zoom,i=t.zoom;if(!s.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;c=!0,m.scaleMove=w(e)}m.$imageEl&&0!==m.$imageEl.length?(s.gestures?i.scale=e.scale*p:i.scale=m.scaleMove/m.scaleStart*p,i.scale>m.maxRatio&&(i.scale=m.maxRatio-1+(i.scale-m.maxRatio+1)**.5),i.scalef.touchesStart.x))return void(f.isTouched=!1);if(!t.isHorizontal()&&(Math.floor(f.minY)===Math.floor(f.startY)&&f.touchesCurrent.yf.touchesStart.y))return void(f.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),f.isMoved=!0,f.currentX=f.touchesCurrent.x-f.touchesStart.x+f.startX,f.currentY=f.touchesCurrent.y-f.touchesStart.y+f.startY,f.currentXf.maxX&&(f.currentX=f.maxX-1+(f.currentX-f.maxX+1)**.8),f.currentYf.maxY&&(f.currentY=f.maxY-1+(f.currentY-f.maxY+1)**.8),g.prevPositionX||(g.prevPositionX=f.touchesCurrent.x),g.prevPositionY||(g.prevPositionY=f.touchesCurrent.y),g.prevTime||(g.prevTime=Date.now()),g.x=(f.touchesCurrent.x-g.prevPositionX)/(Date.now()-g.prevTime)/2,g.y=(f.touchesCurrent.y-g.prevPositionY)/(Date.now()-g.prevTime)/2,Math.abs(f.touchesCurrent.x-g.prevPositionX)<2&&(g.x=0),Math.abs(f.touchesCurrent.y-g.prevPositionY)<2&&(g.y=0),g.prevPositionX=f.touchesCurrent.x,g.prevPositionY=f.touchesCurrent.y,g.prevTime=Date.now(),m.$imageWrapEl.transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}}function C(){const e=t.zoom;m.$slideEl&&t.previousIndex!==t.activeIndex&&(m.$imageEl&&m.$imageEl.transform("translate3d(0,0,0) scale(1)"),m.$imageWrapEl&&m.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,p=1,m.$slideEl=void 0,m.$imageEl=void 0,m.$imageWrapEl=void 0)}function T(e){const s=t.zoom,a=t.params.zoom;if(m.$slideEl||(e&&e.target&&(m.$slideEl=d(e.target).closest(`.${t.params.slideClass}`)),m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex)),m.$imageEl=m.$slideEl.find(`.${a.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${a.containerClass}`)),!m.$imageEl||0===m.$imageEl.length||!m.$imageWrapEl||0===m.$imageWrapEl.length)return;let i,r,l,o,c,u,h,g,v,w,b,x,y,E,C,T,$,S;t.params.cssMode&&(t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.touchAction="none"),m.$slideEl.addClass(`${a.zoomedSlideClass}`),void 0===f.touchesStart.x&&e?(i="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,r="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(i=f.touchesStart.x,r=f.touchesStart.y),s.scale=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,p=m.$imageWrapEl.attr("data-swiper-zoom")||a.maxRatio,e?($=m.$slideEl[0].offsetWidth,S=m.$slideEl[0].offsetHeight,l=m.$slideEl.offset().left+n.scrollX,o=m.$slideEl.offset().top+n.scrollY,c=l+$/2-i,u=o+S/2-r,v=m.$imageEl[0].offsetWidth,w=m.$imageEl[0].offsetHeight,b=v*s.scale,x=w*s.scale,y=Math.min($/2-b/2,0),E=Math.min(S/2-x/2,0),C=-y,T=-E,h=c*s.scale,g=u*s.scale,hC&&(h=C),gT&&(g=T)):(h=0,g=0),m.$imageWrapEl.transition(300).transform(`translate3d(${h}px, ${g}px,0)`),m.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${s.scale})`)}function $(){const e=t.zoom,s=t.params.zoom;m.$slideEl||(t.params.virtual&&t.params.virtual.enabled&&t.virtual?m.$slideEl=t.$wrapperEl.children(`.${t.params.slideActiveClass}`):m.$slideEl=t.slides.eq(t.activeIndex),m.$imageEl=m.$slideEl.find(`.${s.containerClass}`).eq(0).find("picture, img, svg, canvas, .swiper-zoom-target").eq(0),m.$imageWrapEl=m.$imageEl.parent(`.${s.containerClass}`)),m.$imageEl&&0!==m.$imageEl.length&&m.$imageWrapEl&&0!==m.$imageWrapEl.length&&(t.params.cssMode&&(t.wrapperEl.style.overflow="",t.wrapperEl.style.touchAction=""),e.scale=1,p=1,m.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),m.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),m.$slideEl.removeClass(`${s.zoomedSlideClass}`),m.$slideEl=void 0)}function S(e){const s=t.zoom;s.scale&&1!==s.scale?$():T(e)}function M(){const e=t.support;return{passiveListener:!("touchstart"!==t.touchEvents.start||!e.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1},activeListenerWithCapture:!e.passiveListener||{passive:!1,capture:!0}}}function P(){return`.${t.params.slideClass}`}function k(e){const{passiveListener:s}=M(),a=P();t.$wrapperEl[e]("gesturestart",a,b,s),t.$wrapperEl[e]("gesturechange",a,x,s),t.$wrapperEl[e]("gestureend",a,y,s)}function z(){l||(l=!0,k("on"))}function L(){l&&(l=!1,k("off"))}function O(){const e=t.zoom;if(e.enabled)return;e.enabled=!0;const s=t.support,{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.on(t.touchEvents.start,z,a),t.$wrapperEl.on(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.on(t.touchEvents.start,r,b,a),t.$wrapperEl.on(t.touchEvents.move,r,x,i),t.$wrapperEl.on(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.on(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.on(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}function I(){const e=t.zoom;if(!e.enabled)return;const s=t.support;e.enabled=!1;const{passiveListener:a,activeListenerWithCapture:i}=M(),r=P();s.gestures?(t.$wrapperEl.off(t.touchEvents.start,z,a),t.$wrapperEl.off(t.touchEvents.end,L,a)):"touchstart"===t.touchEvents.start&&(t.$wrapperEl.off(t.touchEvents.start,r,b,a),t.$wrapperEl.off(t.touchEvents.move,r,x,i),t.$wrapperEl.off(t.touchEvents.end,r,y,a),t.touchEvents.cancel&&t.$wrapperEl.off(t.touchEvents.cancel,r,y,a)),t.$wrapperEl.off(t.touchEvents.move,`.${t.params.zoom.containerClass}`,E,i)}Object.defineProperty(t.zoom,"scale",{get:()=>v,set(e){if(v!==e){const t=m.$imageEl?m.$imageEl[0]:void 0,s=m.$slideEl?m.$slideEl[0]:void 0;i("zoomChange",e,t,s)}v=e}}),a("init",(()=>{t.params.zoom.enabled&&O()})),a("destroy",(()=>{I()})),a("touchStart",((e,s)=>{t.zoom.enabled&&function(e){const s=t.device;m.$imageEl&&0!==m.$imageEl.length&&(f.isTouched||(s.android&&e.cancelable&&e.preventDefault(),f.isTouched=!0,f.touchesStart.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.touchesStart.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY))}(s)})),a("touchEnd",((e,s)=>{t.zoom.enabled&&function(){const e=t.zoom;if(!m.$imageEl||0===m.$imageEl.length)return;if(!f.isTouched||!f.isMoved)return f.isTouched=!1,void(f.isMoved=!1);f.isTouched=!1,f.isMoved=!1;let s=300,a=300;const i=g.x*s,r=f.currentX+i,n=g.y*a,l=f.currentY+n;0!==g.x&&(s=Math.abs((r-f.currentX)/g.x)),0!==g.y&&(a=Math.abs((l-f.currentY)/g.y));const o=Math.max(s,a);f.currentX=r,f.currentY=l;const d=f.width*e.scale,c=f.height*e.scale;f.minX=Math.min(m.slideWidth/2-d/2,0),f.maxX=-f.minX,f.minY=Math.min(m.slideHeight/2-c/2,0),f.maxY=-f.minY,f.currentX=Math.max(Math.min(f.currentX,f.maxX),f.minX),f.currentY=Math.max(Math.min(f.currentY,f.maxY),f.minY),m.$imageWrapEl.transition(o).transform(`translate3d(${f.currentX}px, ${f.currentY}px,0)`)}()})),a("doubleTap",((e,s)=>{!t.animating&&t.params.zoom.enabled&&t.zoom.enabled&&t.params.zoom.toggle&&S(s)})),a("transitionEnd",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&C()})),a("slideChange",(()=>{t.zoom.enabled&&t.params.zoom.enabled&&t.params.cssMode&&C()})),Object.assign(t.zoom,{enable:O,disable:I,in:T,out:$,toggle:S})},function(e){let{swiper:t,extendParams:s,on:a,emit:i}=e;s({lazy:{checkInView:!1,enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,scrollingElement:"",elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}}),t.lazy={};let n=!1,l=!1;function o(e,s){void 0===s&&(s=!0);const a=t.params.lazy;if(void 0===e)return;if(0===t.slides.length)return;const r=t.virtual&&t.params.virtual.enabled?t.$wrapperEl.children(`.${t.params.slideClass}[data-swiper-slide-index="${e}"]`):t.slides.eq(e),n=r.find(`.${a.elementClass}:not(.${a.loadedClass}):not(.${a.loadingClass})`);!r.hasClass(a.elementClass)||r.hasClass(a.loadedClass)||r.hasClass(a.loadingClass)||n.push(r[0]),0!==n.length&&n.each((e=>{const n=d(e);n.addClass(a.loadingClass);const l=n.attr("data-background"),c=n.attr("data-src"),p=n.attr("data-srcset"),u=n.attr("data-sizes"),h=n.parent("picture");t.loadImage(n[0],c||l,p,u,!1,(()=>{if(null!=t&&t&&(!t||t.params)&&!t.destroyed){if(l?(n.css("background-image",`url("${l}")`),n.removeAttr("data-background")):(p&&(n.attr("srcset",p),n.removeAttr("data-srcset")),u&&(n.attr("sizes",u),n.removeAttr("data-sizes")),h.length&&h.children("source").each((e=>{const t=d(e);t.attr("data-srcset")&&(t.attr("srcset",t.attr("data-srcset")),t.removeAttr("data-srcset"))})),c&&(n.attr("src",c),n.removeAttr("data-src"))),n.addClass(a.loadedClass).removeClass(a.loadingClass),r.find(`.${a.preloaderClass}`).remove(),t.params.loop&&s){const e=r.attr("data-swiper-slide-index");if(r.hasClass(t.params.slideDuplicateClass)){o(t.$wrapperEl.children(`[data-swiper-slide-index="${e}"]:not(.${t.params.slideDuplicateClass})`).index(),!1)}else{o(t.$wrapperEl.children(`.${t.params.slideDuplicateClass}[data-swiper-slide-index="${e}"]`).index(),!1)}}i("lazyImageReady",r[0],n[0]),t.params.autoHeight&&t.updateAutoHeight()}})),i("lazyImageLoad",r[0],n[0])}))}function c(){const{$wrapperEl:e,params:s,slides:a,activeIndex:i}=t,r=t.virtual&&s.virtual.enabled,n=s.lazy;let c=s.slidesPerView;function p(t){if(r){if(e.children(`.${s.slideClass}[data-swiper-slide-index="${t}"]`).length)return!0}else if(a[t])return!0;return!1}function u(e){return r?d(e).attr("data-swiper-slide-index"):d(e).index()}if("auto"===c&&(c=0),l||(l=!0),t.params.watchSlidesProgress)e.children(`.${s.slideVisibleClass}`).each((e=>{o(r?d(e).attr("data-swiper-slide-index"):d(e).index())}));else if(c>1)for(let e=i;e1||n.loadPrevNextAmount&&n.loadPrevNextAmount>1){const e=n.loadPrevNextAmount,t=Math.ceil(c),s=Math.min(i+t+Math.max(e,t),a.length),r=Math.max(i-Math.max(t,e),0);for(let e=i+t;e0&&o(u(t));const a=e.children(`.${s.slidePrevClass}`);a.length>0&&o(u(a))}}function p(){const e=r();if(!t||t.destroyed)return;const s=t.params.lazy.scrollingElement?d(t.params.lazy.scrollingElement):d(e),a=s[0]===e,i=a?e.innerWidth:s[0].offsetWidth,l=a?e.innerHeight:s[0].offsetHeight,o=t.$el.offset(),{rtlTranslate:u}=t;let h=!1;u&&(o.left-=t.$el[0].scrollLeft);const m=[[o.left,o.top],[o.left+t.width,o.top],[o.left,o.top+t.height],[o.left+t.width,o.top+t.height]];for(let e=0;e=0&&t[0]<=i&&t[1]>=0&&t[1]<=l){if(0===t[0]&&0===t[1])continue;h=!0}}const f=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener||!t.params.passiveListeners)&&{passive:!0,capture:!1};h?(c(),s.off("scroll",p,f)):n||(n=!0,s.on("scroll",p,f))}a("beforeInit",(()=>{t.params.lazy.enabled&&t.params.preloadImages&&(t.params.preloadImages=!1)})),a("init",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("scroll",(()=>{t.params.freeMode&&t.params.freeMode.enabled&&!t.params.freeMode.sticky&&c()})),a("scrollbarDragMove resize _freeModeNoMomentumRelease",(()=>{t.params.lazy.enabled&&(t.params.lazy.checkInView?p():c())})),a("transitionStart",(()=>{t.params.lazy.enabled&&(t.params.lazy.loadOnTransitionStart||!t.params.lazy.loadOnTransitionStart&&!l)&&(t.params.lazy.checkInView?p():c())})),a("transitionEnd",(()=>{t.params.lazy.enabled&&!t.params.lazy.loadOnTransitionStart&&(t.params.lazy.checkInView?p():c())})),a("slideChange",(()=>{const{lazy:e,cssMode:s,watchSlidesProgress:a,touchReleaseOnEdges:i,resistanceRatio:r}=t.params;e.enabled&&(s||a&&(i||0===r))&&c()})),a("destroy",(()=>{t.$el&&t.$el.find(`.${t.params.lazy.loadingClass}`).removeClass(t.params.lazy.loadingClass)})),Object.assign(t.lazy,{load:c,loadInSlide:o})},function(e){let{swiper:t,extendParams:s,on:a}=e;function i(e,t){const s=function(){let e,t,s;return(a,i)=>{for(t=-1,e=a.length;e-t>1;)s=e+t>>1,a[s]<=i?t=s:e=s;return e}}();let a,i;return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(i=s(this.x,e),a=i-1,(e-this.x[a])*(this.y[i]-this.y[a])/(this.x[i]-this.x[a])+this.y[a]):0},this}function r(){t.controller.control&&t.controller.spline&&(t.controller.spline=void 0,delete t.controller.spline)}s({controller:{control:void 0,inverse:!1,by:"slide"}}),t.controller={control:void 0},a("beforeInit",(()=>{t.controller.control=t.params.controller.control})),a("update",(()=>{r()})),a("resize",(()=>{r()})),a("observerUpdate",(()=>{r()})),a("setTranslate",((e,s,a)=>{t.controller.control&&t.controller.setTranslate(s,a)})),a("setTransition",((e,s,a)=>{t.controller.control&&t.controller.setTransition(s,a)})),Object.assign(t.controller,{setTranslate:function(e,s){const a=t.controller.control;let r,n;const l=t.constructor;function o(e){const s=t.rtlTranslate?-t.translate:t.translate;"slide"===t.params.controller.by&&(!function(e){t.controller.spline||(t.controller.spline=t.params.loop?new i(t.slidesGrid,e.slidesGrid):new i(t.snapGrid,e.snapGrid))}(e),n=-t.controller.spline.interpolate(-s)),n&&"container"!==t.params.controller.by||(r=(e.maxTranslate()-e.minTranslate())/(t.maxTranslate()-t.minTranslate()),n=(s-t.minTranslate())*r+e.minTranslate()),t.params.controller.inverse&&(n=e.maxTranslate()-n),e.updateProgress(n),e.setTranslate(n,t),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(a))for(let e=0;e{s.updateAutoHeight()})),s.$wrapperEl.transitionEnd((()=>{i&&(s.params.loop&&"slide"===t.params.controller.by&&s.loopFix(),s.transitionEnd())})))}if(Array.isArray(i))for(r=0;r{n(e),"BUTTON"!==e[0].tagName&&(o(e,"button"),e.on("keydown",m)),p(e,s),function(e,t){e.attr("aria-controls",t)}(e,t)},w=e=>{const s=e.target.closest(`.${t.params.slideClass}`);if(!s||!t.slides.includes(s))return;const a=t.slides.indexOf(s)===t.activeIndex,i=t.params.watchSlidesProgress&&t.visibleSlides&&t.visibleSlides.includes(s);a||i||t.slideTo(t.slides.indexOf(s),0)},b=()=>{const e=t.params.a11y;e.itemRoleDescriptionMessage&&c(d(t.slides),e.itemRoleDescriptionMessage),e.slideRole&&o(d(t.slides),e.slideRole);const s=t.params.loop?t.slides.filter((e=>!e.classList.contains(t.params.slideDuplicateClass))).length:t.slides.length;e.slideLabelMessage&&t.slides.each(((a,i)=>{const r=d(a),n=t.params.loop?parseInt(r.attr("data-swiper-slide-index"),10):i;p(r,e.slideLabelMessage.replace(/\{\{index\}\}/,n+1).replace(/\{\{slidesLength\}\}/,s))}))},x=()=>{const e=t.params.a11y;t.$el.append(i);const s=t.$el;e.containerRoleDescriptionMessage&&c(s,e.containerRoleDescriptionMessage),e.containerMessage&&p(s,e.containerMessage);const a=t.$wrapperEl,r=e.id||a.attr("id")||`swiper-wrapper-${n=16,void 0===n&&(n=16),"x".repeat(n).replace(/x/g,(()=>Math.round(16*Math.random()).toString(16)))}`;var n;const l=t.params.autoplay&&t.params.autoplay.enabled?"off":"polite";var o;let d,u;o=r,a.attr("id",o),function(e,t){e.attr("aria-live",t)}(a,l),b(),t.navigation&&t.navigation.$nextEl&&(d=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(u=t.navigation.$prevEl),d&&d.length&&v(d,r,e.nextSlideMessage),u&&u.length&&v(u,r,e.prevSlideMessage),g()&&t.pagination.$el.on("keydown",U(t.params.pagination.bulletClass),m),t.$el.on("focus",w,!0)};a("beforeInit",(()=>{i=d(``)})),a("afterInit",(()=>{t.params.a11y.enabled&&x()})),a("slidesLengthChange snapGridLengthChange slidesGridLengthChange",(()=>{t.params.a11y.enabled&&b()})),a("fromEdge toEdge afterInit lock unlock",(()=>{t.params.a11y.enabled&&function(){if(t.params.loop||t.params.rewind||!t.navigation)return;const{$nextEl:e,$prevEl:s}=t.navigation;s&&s.length>0&&(t.isBeginning?(u(s),l(s)):(h(s),n(s))),e&&e.length>0&&(t.isEnd?(u(e),l(e)):(h(e),n(e)))}()})),a("paginationUpdate",(()=>{t.params.a11y.enabled&&function(){const e=t.params.a11y;f()&&t.pagination.bullets.each((s=>{const a=d(s);t.params.pagination.clickable&&(n(a),t.params.pagination.renderBullet||(o(a,"button"),p(a,e.paginationBulletMessage.replace(/\{\{index\}\}/,a.index()+1)))),a.is(`.${t.params.pagination.bulletActiveClass}`)?a.attr("aria-current","true"):a.removeAttr("aria-current")}))}()})),a("destroy",(()=>{t.params.a11y.enabled&&function(){let e,s;i&&i.length>0&&i.remove(),t.navigation&&t.navigation.$nextEl&&(e=t.navigation.$nextEl),t.navigation&&t.navigation.$prevEl&&(s=t.navigation.$prevEl),e&&e.off("keydown",m),s&&s.off("keydown",m),g()&&t.pagination.$el.off("keydown",U(t.params.pagination.bulletClass),m),t.$el.off("focus",w,!0)}()}))},function(e){let{swiper:t,extendParams:s,on:a}=e;s({history:{enabled:!1,root:"",replaceState:!1,key:"slides",keepQuery:!1}});let i=!1,n={};const l=e=>e.toString().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-").replace(/^-+/,"").replace(/-+$/,""),o=e=>{const t=r();let s;s=e?new URL(e):t.location;const a=s.pathname.slice(1).split("/").filter((e=>""!==e)),i=a.length;return{key:a[i-2],value:a[i-1]}},d=(e,s)=>{const a=r();if(!i||!t.params.history.enabled)return;let n;n=t.params.url?new URL(t.params.url):a.location;const o=t.slides.eq(s);let d=l(o.attr("data-history"));if(t.params.history.root.length>0){let s=t.params.history.root;"/"===s[s.length-1]&&(s=s.slice(0,s.length-1)),d=`${s}/${e}/${d}`}else n.pathname.includes(e)||(d=`${e}/${d}`);t.params.history.keepQuery&&(d+=n.search);const c=a.history.state;c&&c.value===d||(t.params.history.replaceState?a.history.replaceState({value:d},null,d):a.history.pushState({value:d},null,d))},c=(e,s,a)=>{if(s)for(let i=0,r=t.slides.length;i{n=o(t.params.url),c(t.params.speed,n.value,!1)};a("init",(()=>{t.params.history.enabled&&(()=>{const e=r();if(t.params.history){if(!e.history||!e.history.pushState)return t.params.history.enabled=!1,void(t.params.hashNavigation.enabled=!0);i=!0,n=o(t.params.url),(n.key||n.value)&&(c(0,n.value,t.params.runCallbacksOnInit),t.params.history.replaceState||e.addEventListener("popstate",p))}})()})),a("destroy",(()=>{t.params.history.enabled&&(()=>{const e=r();t.params.history.replaceState||e.removeEventListener("popstate",p)})()})),a("transitionEnd _freeModeNoMomentumRelease",(()=>{i&&d(t.params.history.key,t.activeIndex)})),a("slideChange",(()=>{i&&t.params.cssMode&&d(t.params.history.key,t.activeIndex)}))},function(e){let{swiper:t,extendParams:s,emit:i,on:n}=e,l=!1;const o=a(),c=r();s({hashNavigation:{enabled:!1,replaceState:!1,watchState:!1}});const p=()=>{i("hashChange");const e=o.location.hash.replace("#","");if(e!==t.slides.eq(t.activeIndex).attr("data-hash")){const s=t.$wrapperEl.children(`.${t.params.slideClass}[data-hash="${e}"]`).index();if(void 0===s)return;t.slideTo(s)}},u=()=>{if(l&&t.params.hashNavigation.enabled)if(t.params.hashNavigation.replaceState&&c.history&&c.history.replaceState)c.history.replaceState(null,null,`#${t.slides.eq(t.activeIndex).attr("data-hash")}`||""),i("hashSet");else{const e=t.slides.eq(t.activeIndex),s=e.attr("data-hash")||e.attr("data-history");o.location.hash=s||"",i("hashSet")}};n("init",(()=>{t.params.hashNavigation.enabled&&(()=>{if(!t.params.hashNavigation.enabled||t.params.history&&t.params.history.enabled)return;l=!0;const e=o.location.hash.replace("#","");if(e){const s=0;for(let a=0,i=t.slides.length;a{t.params.hashNavigation.enabled&&t.params.hashNavigation.watchState&&d(c).off("hashchange",p)})),n("transitionEnd _freeModeNoMomentumRelease",(()=>{l&&u()})),n("slideChange",(()=>{l&&t.params.cssMode&&u()}))},function(e){let t,{swiper:s,extendParams:i,on:r,emit:n}=e;function l(){const e=s.slides.eq(s.activeIndex);let a=s.params.autoplay.delay;e.attr("data-swiper-autoplay")&&(a=e.attr("data-swiper-autoplay")||s.params.autoplay.delay),clearTimeout(t),t=p((()=>{let e;s.params.autoplay.reverseDirection?s.params.loop?(s.loopFix(),e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.isBeginning?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(s.slides.length-1,s.params.speed,!0,!0),n("autoplay")):(e=s.slidePrev(s.params.speed,!0,!0),n("autoplay")):s.params.loop?(s.loopFix(),e=s.slideNext(s.params.speed,!0,!0),n("autoplay")):s.isEnd?s.params.autoplay.stopOnLastSlide?d():(e=s.slideTo(0,s.params.speed,!0,!0),n("autoplay")):(e=s.slideNext(s.params.speed,!0,!0),n("autoplay")),(s.params.cssMode&&s.autoplay.running||!1===e)&&l()}),a)}function o(){return void 0===t&&(!s.autoplay.running&&(s.autoplay.running=!0,n("autoplayStart"),l(),!0))}function d(){return!!s.autoplay.running&&(void 0!==t&&(t&&(clearTimeout(t),t=void 0),s.autoplay.running=!1,n("autoplayStop"),!0))}function c(e){s.autoplay.running&&(s.autoplay.paused||(t&&clearTimeout(t),s.autoplay.paused=!0,0!==e&&s.params.autoplay.waitForTransition?["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].addEventListener(e,h)})):(s.autoplay.paused=!1,l())))}function u(){const e=a();"hidden"===e.visibilityState&&s.autoplay.running&&c(),"visible"===e.visibilityState&&s.autoplay.paused&&(l(),s.autoplay.paused=!1)}function h(e){s&&!s.destroyed&&s.$wrapperEl&&e.target===s.$wrapperEl[0]&&(["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)})),s.autoplay.paused=!1,s.autoplay.running?l():d())}function m(){s.params.autoplay.disableOnInteraction?d():(n("autoplayPause"),c()),["transitionend","webkitTransitionEnd"].forEach((e=>{s.$wrapperEl[0].removeEventListener(e,h)}))}function f(){s.params.autoplay.disableOnInteraction||(s.autoplay.paused=!1,n("autoplayResume"),l())}s.autoplay={running:!1,paused:!1},i({autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1,pauseOnMouseEnter:!1}}),r("init",(()=>{if(s.params.autoplay.enabled){o();a().addEventListener("visibilitychange",u),s.params.autoplay.pauseOnMouseEnter&&(s.$el.on("mouseenter",m),s.$el.on("mouseleave",f))}})),r("beforeTransitionStart",((e,t,a)=>{s.autoplay.running&&(a||!s.params.autoplay.disableOnInteraction?s.autoplay.pause(t):d())})),r("sliderFirstMove",(()=>{s.autoplay.running&&(s.params.autoplay.disableOnInteraction?d():c())})),r("touchEnd",(()=>{s.params.cssMode&&s.autoplay.paused&&!s.params.autoplay.disableOnInteraction&&l()})),r("destroy",(()=>{s.$el.off("mouseenter",m),s.$el.off("mouseleave",f),s.autoplay.running&&d();a().removeEventListener("visibilitychange",u)})),Object.assign(s.autoplay,{pause:c,run:l,start:o,stop:d})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({thumbs:{swiper:null,multipleActiveThumbs:!0,autoScrollOffset:0,slideThumbActiveClass:"swiper-slide-thumb-active",thumbsContainerClass:"swiper-thumbs"}});let i=!1,r=!1;function n(){const e=t.thumbs.swiper;if(!e||e.destroyed)return;const s=e.clickedIndex,a=e.clickedSlide;if(a&&d(a).hasClass(t.params.thumbs.slideThumbActiveClass))return;if(null==s)return;let i;if(i=e.params.loop?parseInt(d(e.clickedSlide).attr("data-swiper-slide-index"),10):s,t.params.loop){let e=t.activeIndex;t.slides.eq(e).hasClass(t.params.slideDuplicateClass)&&(t.loopFix(),t._clientLeft=t.$wrapperEl[0].clientLeft,e=t.activeIndex);const s=t.slides.eq(e).prevAll(`[data-swiper-slide-index="${i}"]`).eq(0).index(),a=t.slides.eq(e).nextAll(`[data-swiper-slide-index="${i}"]`).eq(0).index();i=void 0===s?a:void 0===a?s:a-e1&&!t.params.centeredSlides&&(i=t.params.slidesPerView),t.params.thumbs.multipleActiveThumbs||(i=1),i=Math.floor(i),s.slides.removeClass(r),s.params.loop||s.params.virtual&&s.params.virtual.enabled)for(let e=0;e1?a:o:a-ot.previousIndex?"next":"prev"}else i=t.realIndex,r=i>t.previousIndex?"next":"prev";l&&(i+="next"===r?n:-1*n),s.visibleSlidesIndexes&&s.visibleSlidesIndexes.indexOf(i)<0&&(s.params.centeredSlides?i=i>o?i-Math.floor(a/2)+1:i+Math.floor(a/2)-1:i>o&&s.params.slidesPerGroup,s.slideTo(i,e?0:void 0))}}t.thumbs={swiper:null},a("beforeInit",(()=>{const{thumbs:e}=t.params;e&&e.swiper&&(l(),o(!0))})),a("slideChange update resize observerUpdate",(()=>{o()})),a("setTransition",((e,s)=>{const a=t.thumbs.swiper;a&&!a.destroyed&&a.setTransition(s)})),a("beforeDestroy",(()=>{const e=t.thumbs.swiper;e&&!e.destroyed&&r&&e.destroy()})),Object.assign(t.thumbs,{init:l,update:o})},function(e){let{swiper:t,extendParams:s,emit:a,once:i}=e;s({freeMode:{enabled:!1,momentum:!0,momentumRatio:1,momentumBounce:!0,momentumBounceRatio:1,momentumVelocityRatio:1,sticky:!1,minimumVelocity:.02}}),Object.assign(t,{freeMode:{onTouchStart:function(){const e=t.getTranslate();t.setTranslate(e),t.setTransition(0),t.touchEventsData.velocities.length=0,t.freeMode.onTouchEnd({currentPos:t.rtl?t.translate:-t.translate})},onTouchMove:function(){const{touchEventsData:e,touches:s}=t;0===e.velocities.length&&e.velocities.push({position:s[t.isHorizontal()?"startX":"startY"],time:e.touchStartTime}),e.velocities.push({position:s[t.isHorizontal()?"currentX":"currentY"],time:u()})},onTouchEnd:function(e){let{currentPos:s}=e;const{params:r,$wrapperEl:n,rtlTranslate:l,snapGrid:o,touchEventsData:d}=t,c=u()-d.touchStartTime;if(s<-t.minTranslate())t.slideTo(t.activeIndex);else if(s>-t.maxTranslate())t.slides.length1){const e=d.velocities.pop(),s=d.velocities.pop(),a=e.position-s.position,i=e.time-s.time;t.velocity=a/i,t.velocity/=2,Math.abs(t.velocity)150||u()-e.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeMode.momentumVelocityRatio,d.velocities.length=0;let e=1e3*r.freeMode.momentumRatio;const s=t.velocity*e;let c=t.translate+s;l&&(c=-c);let p,h=!1;const m=20*Math.abs(t.velocity)*r.freeMode.momentumBounceRatio;let f;if(ct.minTranslate())r.freeMode.momentumBounce?(c-t.minTranslate()>m&&(c=t.minTranslate()+m),p=t.minTranslate(),h=!0,d.allowMomentumBounce=!0):c=t.minTranslate(),r.loop&&r.centeredSlides&&(f=!0);else if(r.freeMode.sticky){let e;for(let t=0;t-c){e=t;break}c=Math.abs(o[e]-c){t.loopFix()})),0!==t.velocity){if(e=l?Math.abs((-c-t.translate)/t.velocity):Math.abs((c-t.translate)/t.velocity),r.freeMode.sticky){const s=Math.abs((l?-c:c)-t.translate),a=t.slidesSizesGrid[t.activeIndex];e=s{t&&!t.destroyed&&d.allowMomentumBounce&&(a("momentumBounce"),t.setTransition(r.speed),setTimeout((()=>{t.setTranslate(p),n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()}))}),0))}))):t.velocity?(a("_freeModeNoMomentumRelease"),t.updateProgress(c),t.setTransition(e),t.setTranslate(c),t.transitionStart(!0,t.swipeDirection),t.animating||(t.animating=!0,n.transitionEnd((()=>{t&&!t.destroyed&&t.transitionEnd()})))):t.updateProgress(c),t.updateActiveIndex(),t.updateSlidesClasses()}else{if(r.freeMode.sticky)return void t.slideToClosest();r.freeMode&&a("_freeModeNoMomentumRelease")}(!r.freeMode.momentum||c>=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}}}})},function(e){let t,s,a,{swiper:i,extendParams:r}=e;r({grid:{rows:1,fill:"column"}}),i.grid={initSlides:e=>{const{slidesPerView:r}=i.params,{rows:n,fill:l}=i.params.grid;s=t/n,a=Math.floor(e/n),t=Math.floor(e/n)===e/n?e:Math.ceil(e/n)*n,"auto"!==r&&"row"===l&&(t=Math.max(t,r*n))},updateSlide:(e,r,n,l)=>{const{slidesPerGroup:o,spaceBetween:d}=i.params,{rows:c,fill:p}=i.params.grid;let u,h,m;if("row"===p&&o>1){const s=Math.floor(e/(o*c)),a=e-c*o*s,i=0===s?o:Math.min(Math.ceil((n-s*c*o)/c),o);m=Math.floor(a/i),h=a-m*i+s*o,u=h+m*t/c,r.css({"-webkit-order":u,order:u})}else"column"===p?(h=Math.floor(e/c),m=e-h*c,(h>a||h===a&&m===c-1)&&(m+=1,m>=c&&(m=0,h+=1))):(m=Math.floor(e/s),h=e-m*s);r.css(l("margin-top"),0!==m?d&&`${d}px`:"")},updateWrapperSize:(e,s,a)=>{const{spaceBetween:r,centeredSlides:n,roundLengths:l}=i.params,{rows:o}=i.params.grid;if(i.virtualSize=(e+r)*t,i.virtualSize=Math.ceil(i.virtualSize/o)-r,i.$wrapperEl.css({[a("width")]:`${i.virtualSize+r}px`}),n){s.splice(0,s.length);const e=[];for(let t=0;t{const{slides:e}=t,s=t.params.fadeEffect;for(let a=0;a{const{transformEl:s}=t.params.fadeEffect;(s?t.slides.find(s):t.slides).transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}});const i=(e,t,s)=>{let a=s?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),i=s?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===a.length&&(a=d(`
`),e.append(a)),0===i.length&&(i=d(`
`),e.append(i)),a.length&&(a[0].style.opacity=Math.max(-t,0)),i.length&&(i[0].style.opacity=Math.max(t,0))};te({effect:"cube",swiper:t,on:a,setTranslate:()=>{const{$el:e,$wrapperEl:s,slides:a,width:r,height:n,rtlTranslate:l,size:o,browser:c}=t,p=t.params.cubeEffect,u=t.isHorizontal(),h=t.virtual&&t.params.virtual.enabled;let m,f=0;p.shadow&&(u?(m=s.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),s.append(m)),m.css({height:`${r}px`})):(m=e.find(".swiper-cube-shadow"),0===m.length&&(m=d('
'),e.append(m))));for(let e=0;e-1&&(f=90*s+90*d,l&&(f=90*-s-90*d)),t.transform(v),p.slideShadows&&i(t,d,u)}if(s.css({"-webkit-transform-origin":`50% 50% -${o/2}px`,"transform-origin":`50% 50% -${o/2}px`}),p.shadow)if(u)m.transform(`translate3d(0px, ${r/2+p.shadowOffset}px, ${-r/2}px) rotateX(90deg) rotateZ(0deg) scale(${p.shadowScale})`);else{const e=Math.abs(f)-90*Math.floor(Math.abs(f)/90),t=1.5-(Math.sin(2*e*Math.PI/360)/2+Math.cos(2*e*Math.PI/360)/2),s=p.shadowScale,a=p.shadowScale/t,i=p.shadowOffset;m.transform(`scale3d(${s}, 1, ${a}) translate3d(0px, ${n/2+i}px, ${-n/2/a}px) rotateX(-90deg)`)}const g=c.isSafari||c.isWebView?-o/2:0;s.transform(`translate3d(0px,0,${g}px) rotateX(${t.isHorizontal()?0:f}deg) rotateY(${t.isHorizontal()?-f:0}deg)`),s[0].style.setProperty("--swiper-cube-translate-z",`${g}px`)},setTransition:e=>{const{$el:s,slides:a}=t;a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.cubeEffect.shadow&&!t.isHorizontal()&&s.find(".swiper-cube-shadow").transition(e)},recreateShadows:()=>{const e=t.isHorizontal();t.slides.each((t=>{const s=Math.max(Math.min(t.progress,1),-1);i(d(t),s,e)}))},getEffectParams:()=>t.params.cubeEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({flipEffect:{slideShadows:!0,limitRotation:!0,transformEl:null}});const i=(e,s,a)=>{let i=t.isHorizontal()?e.find(".swiper-slide-shadow-left"):e.find(".swiper-slide-shadow-top"),r=t.isHorizontal()?e.find(".swiper-slide-shadow-right"):e.find(".swiper-slide-shadow-bottom");0===i.length&&(i=ie(a,e,t.isHorizontal()?"left":"top")),0===r.length&&(r=ie(a,e,t.isHorizontal()?"right":"bottom")),i.length&&(i[0].style.opacity=Math.max(-s,0)),r.length&&(r[0].style.opacity=Math.max(s,0))};te({effect:"flip",swiper:t,on:a,setTranslate:()=>{const{slides:e,rtlTranslate:s}=t,a=t.params.flipEffect;for(let r=0;r{const{transformEl:s}=t.params.flipEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),ae({swiper:t,duration:e,transformEl:s})},recreateShadows:()=>{const e=t.params.flipEffect;t.slides.each((s=>{const a=d(s);let r=a[0].progress;t.params.flipEffect.limitRotation&&(r=Math.max(Math.min(s.progress,1),-1)),i(a,r,e)}))},getEffectParams:()=>t.params.flipEffect,perspective:()=>!0,overwriteParams:()=>({slidesPerView:1,slidesPerGroup:1,watchSlidesProgress:!0,spaceBetween:0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({coverflowEffect:{rotate:50,stretch:0,depth:100,scale:1,modifier:1,slideShadows:!0,transformEl:null}}),te({effect:"coverflow",swiper:t,on:a,setTranslate:()=>{const{width:e,height:s,slides:a,slidesSizesGrid:i}=t,r=t.params.coverflowEffect,n=t.isHorizontal(),l=t.translate,o=n?e/2-l:s/2-l,d=n?r.rotate:-r.rotate,c=r.depth;for(let e=0,t=a.length;e0?p:0),s.length&&(s[0].style.opacity=-p>0?-p:0)}}},setTransition:e=>{const{transformEl:s}=t.params.coverflowEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({creativeEffect:{transformEl:null,limitProgress:1,shadowPerProgress:!1,progressMultiplier:1,perspective:!0,prev:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1},next:{translate:[0,0,0],rotate:[0,0,0],opacity:1,scale:1}}});const i=e=>"string"==typeof e?e:`${e}px`;te({effect:"creative",swiper:t,on:a,setTranslate:()=>{const{slides:e,$wrapperEl:s,slidesSizesGrid:a}=t,r=t.params.creativeEffect,{progressMultiplier:n}=r,l=t.params.centeredSlides;if(l){const e=a[0]/2-t.params.slidesOffsetBefore||0;s.transform(`translateX(calc(50% - ${e}px))`)}for(let s=0;s0&&(f=r.prev,m=!0),u.forEach(((e,t)=>{u[t]=`calc(${e}px + (${i(f.translate[t])} * ${Math.abs(d*n)}))`})),h.forEach(((e,t)=>{h[t]=f.rotate[t]*Math.abs(d*n)})),a[0].style.zIndex=-Math.abs(Math.round(o))+e.length;const g=u.join(", "),v=`rotateX(${h[0]}deg) rotateY(${h[1]}deg) rotateZ(${h[2]}deg)`,w=c<0?`scale(${1+(1-f.scale)*c*n})`:`scale(${1-(1-f.scale)*c*n})`,b=c<0?1+(1-f.opacity)*c*n:1-(1-f.opacity)*c*n,x=`translate3d(${g}) ${v} ${w}`;if(m&&f.shadow||!m){let e=a.children(".swiper-slide-shadow");if(0===e.length&&f.shadow&&(e=ie(r,a)),e.length){const t=r.shadowPerProgress?d*(1/r.limitProgress):d;e[0].style.opacity=Math.min(Math.max(Math.abs(t),0),1)}}const y=se(r,a);y.transform(x).css({opacity:b}),f.origin&&y.css("transform-origin",f.origin)}},setTransition:e=>{const{transformEl:s}=t.params.creativeEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s,allSlides:!0})},perspective:()=>t.params.creativeEffect.perspective,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})},function(e){let{swiper:t,extendParams:s,on:a}=e;s({cardsEffect:{slideShadows:!0,transformEl:null,rotate:!0}}),te({effect:"cards",swiper:t,on:a,setTranslate:()=>{const{slides:e,activeIndex:s}=t,a=t.params.cardsEffect,{startTranslate:i,isTouched:r}=t.touchEventsData,n=t.translate;for(let l=0;l0&&c<1&&(r||t.params.cssMode)&&n-1&&(r||t.params.cssMode)&&n>i;if(b||x){const e=(1-Math.abs((Math.abs(c)-.5)/.5))**.5;g+=-28*c*e,f+=-.5*e,v+=96*e,h=-25*e*Math.abs(c)+"%"}if(u=c<0?`calc(${u}px + (${v*Math.abs(c)}%))`:c>0?`calc(${u}px + (-${v*Math.abs(c)}%))`:`${u}px`,!t.isHorizontal()){const e=h;h=u,u=e}const y=c<0?""+(1+(1-f)*c):""+(1-(1-f)*c),E=`\n translate3d(${u}, ${h}, ${m}px)\n rotateZ(${a.rotate?g:0}deg)\n scale(${y})\n `;if(a.slideShadows){let e=o.find(".swiper-slide-shadow");0===e.length&&(e=ie(a,o)),e.length&&(e[0].style.opacity=Math.min(Math.max((Math.abs(c)-.5)/.5,0),1))}o[0].style.zIndex=-Math.abs(Math.round(d))+e.length;se(a,o).transform(E)}},setTransition:e=>{const{transformEl:s}=t.params.cardsEffect;(s?t.slides.find(s):t.slides).transition(e).find(".swiper-slide-shadow").transition(e),ae({swiper:t,duration:e,transformEl:s})},perspective:()=>!0,overwriteParams:()=>({watchSlidesProgress:!0,virtualTranslate:!t.params.cssMode})})}];return V.use(re),V})); +//# sourceMappingURL=swiper-bundle.min.js.map \ No newline at end of file diff --git a/assets/swiper/swiper-bundle.min.js.map b/assets/swiper/swiper-bundle.min.js.map new file mode 100644 index 0000000..1889dbd --- /dev/null +++ b/assets/swiper/swiper-bundle.min.js.map @@ -0,0 +1 @@ +{"version":3,"file":"swiper-bundle.min.js","names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","Dom7","Array","items","super","proto","__proto__","defineProperty","get","set","value","makeReactive","arrayFlat","arr","res","el","isArray","push","arrayFilter","prototype","filter","call","$","selector","context","html","trim","indexOf","toCreate","tempParent","innerHTML","i","a","qsa","nodeType","uniqueArray","arrayUnique","fn","Methods","addClass","_len","arguments","classes","_key","classNames","map","c","split","classList","add","removeClass","_len2","_key2","remove","hasClass","_len4","_key4","className","contains","toggleClass","_len3","_key3","toggle","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","duration","transitionDuration","on","_len5","args","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","parents","k","handleEvent","undefined","events","j","event","dom7LiveListeners","proxyListener","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","splice","trigger","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","parseFloat","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","prop","each","index","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","parent","parentNode","closest","find","foundElements","found","removeChild","nextTick","delay","now","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","currentStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","o","slice","isNode","node","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","deviceCached","browser","getSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","getDevice","overrides","_temp","platform","ua","device","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","os","calcDevice","getBrowser","isSafari","toLowerCase","isWebView","test","calcBrowser","methodName","writable","eventsEmitter","priority","self","eventsListeners","destroyed","method","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","emit","update","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","assign","size","updateSlides","getDirectionLabel","property","marginRight","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","slideSize","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","floor","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","_","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","ceil","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","activeSlide","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","x","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","step","slideTo","initial","Error","indexAsNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","transitionStart","transitionEnd","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","diff","loopDestroy","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","base","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","composedPath","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","passiveListeners","passive","move","end","cancel","updateOnWindowResize","events$1","attachEvents","bind","detachEvents","isGridEnabled","addClasses","suffixes","entries","prefix","resultClasses","item","prepareClasses","autoheight","fill","centered","emitContainerClasses","removeClasses","defaults","init","resizeObserver","createElements","url","breakpointsBase","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","transition","moving","isLocked","cursor","unsetGrabCursor","breakpoint","getBreakpoint","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","complete","onload","onerror","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","extendParams","swiperParams","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","options","getWrapper","wrapper","destroy","deleteInstance","cleanStyles","object","deleteProps","static","newDefaults","module","m","installModule","createElementIfNotDefined","checkProps","element","classesToSelector","appendSlide","observer","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","effectInit","overwriteParams","perspective","recreateShadows","getEffectParams","requireUpdateOnVirtual","overwriteParamsResult","_s","slideShadows","effectTarget","effectParams","$slideEl","transformEl","effectVirtualTransitionEnd","allSlides","$transitionEndTarget","eventTriggered","triggerEvents","createShadow","shadowClass","$shadowContainer","$shadowEl","prototypeGroup","protoMethod","use","animationFrame","resizeHandler","orientationChangeHandler","ResizeObserver","newWidth","_ref2","contentBoxSize","contentRect","inlineSize","blockSize","observe","unobserve","observers","attach","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observeParents","observeSlideChildren","containerParents","disconnect","cssModeTimeout","renderSlide","cache","force","addSlidesBefore","addSlidesAfter","from","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","timeout","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","raw","rtlFactor","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","sign","ignoreWheelEvents","position","sticky","shift","prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","releaseScroll","getEl","toggleEl","disabled","disabledClass","tagName","lockClass","$nextEl","$prevEl","onPrevClick","onNextClick","hideOnClick","hiddenClass","navigationDisabledClass","targetEl","pagination","clickable","isHidden","pfx","bulletSize","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","number","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","paginationDisabledClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","total","paginationType","firstIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","$dragEl","newSize","newPos","hide","opacity","display","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","draggable","scrollbarDisabledClass","parallax","setTransform","p","currentOpacity","currentScale","_swiper","parallaxEl","$parallaxEl","parallaxDuration","zoom","maxRatio","containerClass","zoomedSlideClass","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","isScaling","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","onTransitionEnd","zoomIn","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","touchAction","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","slideExist","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","LinearSpline","binarySearch","guess","array","i1","i3","interpolate","removeSpline","controller","control","spline","inverse","by","_t","controlled","controlledTranslate","setControlledTranslate","getInterpolateFunction","setControlledTransition","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notify","message","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","click","hasPagination","hasClickablePagination","initNavEl","wrapperId","controls","addElControls","handleFocus","includes","isActive","isVisible","$containerEl","repeat","round","random","live","addElLive","updateNavigation","bulletEl","updatePagination","root","keepQuery","paths","slugify","getPathValues","urlOverride","URL","pathArray","part","setHistory","currentState","state","scrollToSlide","setHistoryPopState","hashNavigation","watchState","onHashChange","newHash","setHash","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","thumbsToActivate","thumbActiveClass","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","lastMoveEvent","pop","velocityEvent","distance","momentumDistance","newPosition","afterBouncePosition","doBounce","bounceAmount","needsLoopFix","moveDistance","currentSlideSize","slidesNumberEvenToRows","slidesPerRow","numFullColumns","newSlideOrderIndex","column","row","groupIndex","slideIndexInGroup","columnsInGroup","order","fadeEffect","crossFade","tx","ty","slideOpacity","cubeEffect","shadow","shadowOffset","shadowScale","createSlideShadows","shadowBefore","shadowAfter","$cubeShadowEl","wrapperRotate","slideAngle","tz","shadowAngle","sin","scale1","scale2","zFactor","flipEffect","limitRotation","rotateY","rotateX","zIndex","coverflowEffect","rotate","stretch","depth","modifier","center","centerOffset","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","getTranslateValue","isCenteredSlides","margin","r","custom","translateString","rotateString","scaleString","opacityString","shadowOpacity","cardsEffect","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY"],"sources":["../node_modules/ssr-window/ssr-window.esm.js","../node_modules/dom7/dom7.esm.js","../src/shared/dom.js","../src/shared/utils.js","../src/shared/get-support.js","../src/shared/get-device.js","../src/shared/get-browser.js","../src/core/events-emitter.js","../src/core/update/index.js","../src/core/update/updateSize.js","../src/core/update/updateSlides.js","../src/core/update/updateAutoHeight.js","../src/core/update/updateSlidesOffset.js","../src/core/update/updateSlidesProgress.js","../src/core/update/updateProgress.js","../src/core/update/updateSlidesClasses.js","../src/core/update/updateActiveIndex.js","../src/core/update/updateClickedSlide.js","../src/core/translate/index.js","../src/core/translate/getTranslate.js","../src/core/translate/setTranslate.js","../src/core/translate/minTranslate.js","../src/core/translate/maxTranslate.js","../src/core/translate/translateTo.js","../src/core/transition/transitionEmit.js","../src/core/slide/index.js","../src/core/slide/slideTo.js","../src/core/slide/slideToLoop.js","../src/core/slide/slideNext.js","../src/core/slide/slidePrev.js","../src/core/slide/slideReset.js","../src/core/slide/slideToClosest.js","../src/core/slide/slideToClickedSlide.js","../src/core/loop/index.js","../src/core/loop/loopCreate.js","../src/core/loop/loopFix.js","../src/core/loop/loopDestroy.js","../src/core/events/onTouchStart.js","../src/core/events/onTouchMove.js","../src/core/events/onTouchEnd.js","../src/core/events/onResize.js","../src/core/events/onClick.js","../src/core/events/onScroll.js","../src/core/events/index.js","../src/core/breakpoints/setBreakpoint.js","../src/core/classes/index.js","../src/core/classes/addClasses.js","../src/core/classes/removeClasses.js","../src/core/check-overflow/index.js","../src/core/defaults.js","../src/core/moduleExtendParams.js","../src/core/core.js","../src/core/transition/index.js","../src/core/transition/setTransition.js","../src/core/transition/transitionStart.js","../src/core/transition/transitionEnd.js","../src/core/grab-cursor/index.js","../src/core/grab-cursor/setGrabCursor.js","../src/core/grab-cursor/unsetGrabCursor.js","../src/core/breakpoints/index.js","../src/core/breakpoints/getBreakpoint.js","../src/core/images/index.js","../src/core/images/loadImage.js","../src/core/images/preloadImages.js","../src/shared/create-element-if-not-defined.js","../src/shared/classes-to-selector.js","../src/modules/manipulation/methods/appendSlide.js","../src/modules/manipulation/methods/prependSlide.js","../src/modules/manipulation/methods/addSlide.js","../src/modules/manipulation/methods/removeSlide.js","../src/modules/manipulation/methods/removeAllSlides.js","../src/shared/effect-init.js","../src/shared/effect-target.js","../src/shared/effect-virtual-transition-end.js","../src/shared/create-shadow.js","../src/core/modules/resize/resize.js","../src/core/modules/observer/observer.js","../src/swiper.js","../src/modules/virtual/virtual.js","../src/modules/keyboard/keyboard.js","../src/modules/mousewheel/mousewheel.js","../src/modules/navigation/navigation.js","../src/modules/pagination/pagination.js","../src/modules/scrollbar/scrollbar.js","../src/modules/parallax/parallax.js","../src/modules/zoom/zoom.js","../src/modules/lazy/lazy.js","../src/modules/controller/controller.js","../src/modules/a11y/a11y.js","../src/modules/history/history.js","../src/modules/hash-navigation/hash-navigation.js","../src/modules/autoplay/autoplay.js","../src/modules/thumbs/thumbs.js","../src/modules/free-mode/free-mode.js","../src/modules/grid/grid.js","../src/modules/manipulation/manipulation.js","../src/modules/effect-fade/effect-fade.js","../src/modules/effect-cube/effect-cube.js","../src/modules/effect-flip/effect-flip.js","../src/modules/effect-coverflow/effect-coverflow.js","../src/modules/effect-creative/effect-creative.js","../src/modules/effect-cards/effect-cards.js"],"sourcesContent":["/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.4\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2022, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: January 11, 2022\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf(' c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import {\r\n $,\r\n addClass,\r\n removeClass,\r\n hasClass,\r\n toggleClass,\r\n attr,\r\n removeAttr,\r\n transform,\r\n transition,\r\n on,\r\n off,\r\n trigger,\r\n transitionEnd,\r\n outerWidth,\r\n outerHeight,\r\n styles,\r\n offset,\r\n css,\r\n each,\r\n html,\r\n text,\r\n is,\r\n index,\r\n eq,\r\n append,\r\n prepend,\r\n next,\r\n nextAll,\r\n prev,\r\n prevAll,\r\n parent,\r\n parents,\r\n closest,\r\n find,\r\n children,\r\n filter,\r\n remove,\r\n} from 'dom7';\r\n\r\nconst Methods = {\r\n addClass,\r\n removeClass,\r\n hasClass,\r\n toggleClass,\r\n attr,\r\n removeAttr,\r\n transform,\r\n transition,\r\n on,\r\n off,\r\n trigger,\r\n transitionEnd,\r\n outerWidth,\r\n outerHeight,\r\n styles,\r\n offset,\r\n css,\r\n each,\r\n html,\r\n text,\r\n is,\r\n index,\r\n eq,\r\n append,\r\n prepend,\r\n next,\r\n nextAll,\r\n prev,\r\n prevAll,\r\n parent,\r\n parents,\r\n closest,\r\n find,\r\n children,\r\n filter,\r\n remove,\r\n};\r\n\r\nObject.keys(Methods).forEach((methodName) => {\r\n Object.defineProperty($.fn, methodName, { value: Methods[methodName], writable: true });\r\n});\r\n\r\nexport default $;\r\n","import { getWindow } from 'ssr-window';\r\n\r\nfunction deleteProps(obj) {\r\n const object = obj;\r\n Object.keys(object).forEach((key) => {\r\n try {\r\n object[key] = null;\r\n } catch (e) {\r\n // no getter for object\r\n }\r\n try {\r\n delete object[key];\r\n } catch (e) {\r\n // something got wrong\r\n }\r\n });\r\n}\r\nfunction nextTick(callback, delay = 0) {\r\n return setTimeout(callback, delay);\r\n}\r\nfunction now() {\r\n return Date.now();\r\n}\r\nfunction getComputedStyle(el) {\r\n const window = getWindow();\r\n let style;\r\n if (window.getComputedStyle) {\r\n style = window.getComputedStyle(el, null);\r\n }\r\n if (!style && el.currentStyle) {\r\n style = el.currentStyle;\r\n }\r\n if (!style) {\r\n style = el.style;\r\n }\r\n\r\n return style;\r\n}\r\nfunction getTranslate(el, axis = 'x') {\r\n const window = getWindow();\r\n let matrix;\r\n let curTransform;\r\n let transformMatrix;\r\n\r\n const curStyle = getComputedStyle(el, null);\r\n\r\n if (window.WebKitCSSMatrix) {\r\n curTransform = curStyle.transform || curStyle.webkitTransform;\r\n if (curTransform.split(',').length > 6) {\r\n curTransform = curTransform\r\n .split(', ')\r\n .map((a) => a.replace(',', '.'))\r\n .join(', ');\r\n }\r\n // Some old versions of Webkit choke when 'none' is passed; pass\r\n // empty string instead in this case\r\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\r\n } else {\r\n transformMatrix =\r\n curStyle.MozTransform ||\r\n curStyle.OTransform ||\r\n curStyle.MsTransform ||\r\n curStyle.msTransform ||\r\n curStyle.transform ||\r\n curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\r\n matrix = transformMatrix.toString().split(',');\r\n }\r\n\r\n if (axis === 'x') {\r\n // Latest Chrome and webkits Fix\r\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\r\n // Crazy IE10 Matrix\r\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\r\n // Normal Browsers\r\n else curTransform = parseFloat(matrix[4]);\r\n }\r\n if (axis === 'y') {\r\n // Latest Chrome and webkits Fix\r\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\r\n // Crazy IE10 Matrix\r\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\r\n // Normal Browsers\r\n else curTransform = parseFloat(matrix[5]);\r\n }\r\n return curTransform || 0;\r\n}\r\nfunction isObject(o) {\r\n return (\r\n typeof o === 'object' &&\r\n o !== null &&\r\n o.constructor &&\r\n Object.prototype.toString.call(o).slice(8, -1) === 'Object'\r\n );\r\n}\r\nfunction isNode(node) {\r\n // eslint-disable-next-line\r\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\r\n return node instanceof HTMLElement;\r\n }\r\n return node && (node.nodeType === 1 || node.nodeType === 11);\r\n}\r\nfunction extend(...args) {\r\n const to = Object(args[0]);\r\n const noExtend = ['__proto__', 'constructor', 'prototype'];\r\n for (let i = 1; i < args.length; i += 1) {\r\n const nextSource = args[i];\r\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\r\n const keysArray = Object.keys(Object(nextSource)).filter((key) => noExtend.indexOf(key) < 0);\r\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\r\n const nextKey = keysArray[nextIndex];\r\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\r\n if (desc !== undefined && desc.enumerable) {\r\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\r\n if (nextSource[nextKey].__swiper__) {\r\n to[nextKey] = nextSource[nextKey];\r\n } else {\r\n extend(to[nextKey], nextSource[nextKey]);\r\n }\r\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\r\n to[nextKey] = {};\r\n if (nextSource[nextKey].__swiper__) {\r\n to[nextKey] = nextSource[nextKey];\r\n } else {\r\n extend(to[nextKey], nextSource[nextKey]);\r\n }\r\n } else {\r\n to[nextKey] = nextSource[nextKey];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return to;\r\n}\r\n\r\nfunction setCSSProperty(el, varName, varValue) {\r\n el.style.setProperty(varName, varValue);\r\n}\r\n\r\nfunction animateCSSModeScroll({ swiper, targetPosition, side }) {\r\n const window = getWindow();\r\n const startPosition = -swiper.translate;\r\n let startTime = null;\r\n let time;\r\n const duration = swiper.params.speed;\r\n\r\n swiper.wrapperEl.style.scrollSnapType = 'none';\r\n window.cancelAnimationFrame(swiper.cssModeFrameID);\r\n\r\n const dir = targetPosition > startPosition ? 'next' : 'prev';\r\n\r\n const isOutOfBound = (current, target) => {\r\n return (dir === 'next' && current >= target) || (dir === 'prev' && current <= target);\r\n };\r\n\r\n const animate = () => {\r\n time = new Date().getTime();\r\n if (startTime === null) {\r\n startTime = time;\r\n }\r\n\r\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\r\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\r\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\r\n\r\n if (isOutOfBound(currentPosition, targetPosition)) {\r\n currentPosition = targetPosition;\r\n }\r\n swiper.wrapperEl.scrollTo({\r\n [side]: currentPosition,\r\n });\r\n if (isOutOfBound(currentPosition, targetPosition)) {\r\n swiper.wrapperEl.style.overflow = 'hidden';\r\n swiper.wrapperEl.style.scrollSnapType = '';\r\n setTimeout(() => {\r\n swiper.wrapperEl.style.overflow = '';\r\n swiper.wrapperEl.scrollTo({\r\n [side]: currentPosition,\r\n });\r\n });\r\n window.cancelAnimationFrame(swiper.cssModeFrameID);\r\n return;\r\n }\r\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\r\n };\r\n animate();\r\n}\r\n\r\nexport {\r\n animateCSSModeScroll,\r\n deleteProps,\r\n nextTick,\r\n now,\r\n getTranslate,\r\n isObject,\r\n extend,\r\n getComputedStyle,\r\n setCSSProperty,\r\n};\r\n","import { getWindow, getDocument } from 'ssr-window';\r\n\r\nlet support;\r\n\r\nfunction calcSupport() {\r\n const window = getWindow();\r\n const document = getDocument();\r\n\r\n return {\r\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\r\n\r\n touch: !!(\r\n 'ontouchstart' in window ||\r\n (window.DocumentTouch && document instanceof window.DocumentTouch)\r\n ),\r\n\r\n passiveListener: (function checkPassiveListener() {\r\n let supportsPassive = false;\r\n try {\r\n const opts = Object.defineProperty({}, 'passive', {\r\n // eslint-disable-next-line\r\n get() {\r\n supportsPassive = true;\r\n },\r\n });\r\n window.addEventListener('testPassiveListener', null, opts);\r\n } catch (e) {\r\n // No support\r\n }\r\n return supportsPassive;\r\n })(),\r\n\r\n gestures: (function checkGestures() {\r\n return 'ongesturestart' in window;\r\n })(),\r\n };\r\n}\r\n\r\nfunction getSupport() {\r\n if (!support) {\r\n support = calcSupport();\r\n }\r\n return support;\r\n}\r\n\r\nexport { getSupport };\r\n","import { getWindow } from 'ssr-window';\r\nimport { getSupport } from './get-support.js';\r\n\r\nlet deviceCached;\r\n\r\nfunction calcDevice({ userAgent } = {}) {\r\n const support = getSupport();\r\n const window = getWindow();\r\n const platform = window.navigator.platform;\r\n const ua = userAgent || window.navigator.userAgent;\r\n\r\n const device = {\r\n ios: false,\r\n android: false,\r\n };\r\n\r\n const screenWidth = window.screen.width;\r\n const screenHeight = window.screen.height;\r\n\r\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\r\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\r\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\r\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\r\n const windows = platform === 'Win32';\r\n let macos = platform === 'MacIntel';\r\n\r\n // iPadOs 13 fix\r\n const iPadScreens = [\r\n '1024x1366',\r\n '1366x1024',\r\n '834x1194',\r\n '1194x834',\r\n '834x1112',\r\n '1112x834',\r\n '768x1024',\r\n '1024x768',\r\n '820x1180',\r\n '1180x820',\r\n '810x1080',\r\n '1080x810',\r\n ];\r\n if (\r\n !ipad &&\r\n macos &&\r\n support.touch &&\r\n iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0\r\n ) {\r\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\r\n if (!ipad) ipad = [0, 1, '13_0_0'];\r\n macos = false;\r\n }\r\n\r\n // Android\r\n if (android && !windows) {\r\n device.os = 'android';\r\n device.android = true;\r\n }\r\n if (ipad || iphone || ipod) {\r\n device.os = 'ios';\r\n device.ios = true;\r\n }\r\n\r\n // Export object\r\n return device;\r\n}\r\n\r\nfunction getDevice(overrides = {}) {\r\n if (!deviceCached) {\r\n deviceCached = calcDevice(overrides);\r\n }\r\n return deviceCached;\r\n}\r\n\r\nexport { getDevice };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nlet browser;\r\n\r\nfunction calcBrowser() {\r\n const window = getWindow();\r\n function isSafari() {\r\n const ua = window.navigator.userAgent.toLowerCase();\r\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\r\n }\r\n return {\r\n isSafari: isSafari(),\r\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent),\r\n };\r\n}\r\n\r\nfunction getBrowser() {\r\n if (!browser) {\r\n browser = calcBrowser();\r\n }\r\n return browser;\r\n}\r\n\r\nexport { getBrowser };\r\n","/* eslint-disable no-underscore-dangle */\r\n\r\nexport default {\r\n on(events, handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n const method = priority ? 'unshift' : 'push';\r\n events.split(' ').forEach((event) => {\r\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\r\n self.eventsListeners[event][method](handler);\r\n });\r\n return self;\r\n },\r\n\r\n once(events, handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n function onceHandler(...args) {\r\n self.off(events, onceHandler);\r\n if (onceHandler.__emitterProxy) {\r\n delete onceHandler.__emitterProxy;\r\n }\r\n handler.apply(self, args);\r\n }\r\n onceHandler.__emitterProxy = handler;\r\n return self.on(events, onceHandler, priority);\r\n },\r\n\r\n onAny(handler, priority) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (typeof handler !== 'function') return self;\r\n const method = priority ? 'unshift' : 'push';\r\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\r\n self.eventsAnyListeners[method](handler);\r\n }\r\n return self;\r\n },\r\n\r\n offAny(handler) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsAnyListeners) return self;\r\n const index = self.eventsAnyListeners.indexOf(handler);\r\n if (index >= 0) {\r\n self.eventsAnyListeners.splice(index, 1);\r\n }\r\n return self;\r\n },\r\n\r\n off(events, handler) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsListeners) return self;\r\n events.split(' ').forEach((event) => {\r\n if (typeof handler === 'undefined') {\r\n self.eventsListeners[event] = [];\r\n } else if (self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach((eventHandler, index) => {\r\n if (\r\n eventHandler === handler ||\r\n (eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler)\r\n ) {\r\n self.eventsListeners[event].splice(index, 1);\r\n }\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n\r\n emit(...args) {\r\n const self = this;\r\n if (!self.eventsListeners || self.destroyed) return self;\r\n if (!self.eventsListeners) return self;\r\n let events;\r\n let data;\r\n let context;\r\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\r\n events = args[0];\r\n data = args.slice(1, args.length);\r\n context = self;\r\n } else {\r\n events = args[0].events;\r\n data = args[0].data;\r\n context = args[0].context || self;\r\n }\r\n data.unshift(context);\r\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\r\n\r\n eventsArray.forEach((event) => {\r\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\r\n self.eventsAnyListeners.forEach((eventHandler) => {\r\n eventHandler.apply(context, [event, ...data]);\r\n });\r\n }\r\n if (self.eventsListeners && self.eventsListeners[event]) {\r\n self.eventsListeners[event].forEach((eventHandler) => {\r\n eventHandler.apply(context, data);\r\n });\r\n }\r\n });\r\n return self;\r\n },\r\n};\r\n","import updateSize from './updateSize.js';\r\nimport updateSlides from './updateSlides.js';\r\nimport updateAutoHeight from './updateAutoHeight.js';\r\nimport updateSlidesOffset from './updateSlidesOffset.js';\r\nimport updateSlidesProgress from './updateSlidesProgress.js';\r\nimport updateProgress from './updateProgress.js';\r\nimport updateSlidesClasses from './updateSlidesClasses.js';\r\nimport updateActiveIndex from './updateActiveIndex.js';\r\nimport updateClickedSlide from './updateClickedSlide.js';\r\n\r\nexport default {\r\n updateSize,\r\n updateSlides,\r\n updateAutoHeight,\r\n updateSlidesOffset,\r\n updateSlidesProgress,\r\n updateProgress,\r\n updateSlidesClasses,\r\n updateActiveIndex,\r\n updateClickedSlide,\r\n};\r\n","export default function updateSize() {\r\n const swiper = this;\r\n let width;\r\n let height;\r\n const $el = swiper.$el;\r\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\r\n width = swiper.params.width;\r\n } else {\r\n width = $el[0].clientWidth;\r\n }\r\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\r\n height = swiper.params.height;\r\n } else {\r\n height = $el[0].clientHeight;\r\n }\r\n if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) {\r\n return;\r\n }\r\n\r\n // Subtract paddings\r\n width =\r\n width -\r\n parseInt($el.css('padding-left') || 0, 10) -\r\n parseInt($el.css('padding-right') || 0, 10);\r\n height =\r\n height -\r\n parseInt($el.css('padding-top') || 0, 10) -\r\n parseInt($el.css('padding-bottom') || 0, 10);\r\n\r\n if (Number.isNaN(width)) width = 0;\r\n if (Number.isNaN(height)) height = 0;\r\n\r\n Object.assign(swiper, {\r\n width,\r\n height,\r\n size: swiper.isHorizontal() ? width : height,\r\n });\r\n}\r\n","import { setCSSProperty } from '../../shared/utils.js';\r\n\r\nexport default function updateSlides() {\r\n const swiper = this;\r\n function getDirectionLabel(property) {\r\n if (swiper.isHorizontal()) {\r\n return property;\r\n }\r\n // prettier-ignore\r\n return {\r\n 'width': 'height',\r\n 'margin-top': 'margin-left',\r\n 'margin-bottom ': 'margin-right',\r\n 'margin-left': 'margin-top',\r\n 'margin-right': 'margin-bottom',\r\n 'padding-left': 'padding-top',\r\n 'padding-right': 'padding-bottom',\r\n 'marginRight': 'marginBottom',\r\n }[property];\r\n }\r\n function getDirectionPropertyValue(node, label) {\r\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\r\n }\r\n\r\n const params = swiper.params;\r\n\r\n const { $wrapperEl, size: swiperSize, rtlTranslate: rtl, wrongRTL } = swiper;\r\n const isVirtual = swiper.virtual && params.virtual.enabled;\r\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\r\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\r\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\r\n let snapGrid = [];\r\n const slidesGrid = [];\r\n const slidesSizesGrid = [];\r\n\r\n let offsetBefore = params.slidesOffsetBefore;\r\n if (typeof offsetBefore === 'function') {\r\n offsetBefore = params.slidesOffsetBefore.call(swiper);\r\n }\r\n\r\n let offsetAfter = params.slidesOffsetAfter;\r\n if (typeof offsetAfter === 'function') {\r\n offsetAfter = params.slidesOffsetAfter.call(swiper);\r\n }\r\n\r\n const previousSnapGridLength = swiper.snapGrid.length;\r\n const previousSlidesGridLength = swiper.slidesGrid.length;\r\n\r\n let spaceBetween = params.spaceBetween;\r\n let slidePosition = -offsetBefore;\r\n let prevSlideSize = 0;\r\n let index = 0;\r\n if (typeof swiperSize === 'undefined') {\r\n return;\r\n }\r\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\r\n spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize;\r\n }\r\n\r\n swiper.virtualSize = -spaceBetween;\r\n\r\n // reset margins\r\n if (rtl) slides.css({ marginLeft: '', marginBottom: '', marginTop: '' });\r\n else slides.css({ marginRight: '', marginBottom: '', marginTop: '' });\r\n\r\n // reset cssMode offsets\r\n if (params.centeredSlides && params.cssMode) {\r\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\r\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\r\n }\r\n\r\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\r\n if (gridEnabled) {\r\n swiper.grid.initSlides(slidesLength);\r\n }\r\n\r\n // Calc slides\r\n let slideSize;\r\n\r\n const shouldResetSlideSize =\r\n params.slidesPerView === 'auto' &&\r\n params.breakpoints &&\r\n Object.keys(params.breakpoints).filter((key) => {\r\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\r\n }).length > 0;\r\n\r\n for (let i = 0; i < slidesLength; i += 1) {\r\n slideSize = 0;\r\n const slide = slides.eq(i);\r\n if (gridEnabled) {\r\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\r\n }\r\n if (slide.css('display') === 'none') continue; // eslint-disable-line\r\n\r\n if (params.slidesPerView === 'auto') {\r\n if (shouldResetSlideSize) {\r\n slides[i].style[getDirectionLabel('width')] = ``;\r\n }\r\n const slideStyles = getComputedStyle(slide[0]);\r\n const currentTransform = slide[0].style.transform;\r\n const currentWebKitTransform = slide[0].style.webkitTransform;\r\n if (currentTransform) {\r\n slide[0].style.transform = 'none';\r\n }\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = 'none';\r\n }\r\n if (params.roundLengths) {\r\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\r\n } else {\r\n // eslint-disable-next-line\r\n const width = getDirectionPropertyValue(slideStyles, 'width');\r\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\r\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\r\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\r\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\r\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\r\n if (boxSizing && boxSizing === 'border-box') {\r\n slideSize = width + marginLeft + marginRight;\r\n } else {\r\n const { clientWidth, offsetWidth } = slide[0];\r\n slideSize =\r\n width +\r\n paddingLeft +\r\n paddingRight +\r\n marginLeft +\r\n marginRight +\r\n (offsetWidth - clientWidth);\r\n }\r\n }\r\n if (currentTransform) {\r\n slide[0].style.transform = currentTransform;\r\n }\r\n if (currentWebKitTransform) {\r\n slide[0].style.webkitTransform = currentWebKitTransform;\r\n }\r\n if (params.roundLengths) slideSize = Math.floor(slideSize);\r\n } else {\r\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\r\n if (params.roundLengths) slideSize = Math.floor(slideSize);\r\n\r\n if (slides[i]) {\r\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\r\n }\r\n }\r\n if (slides[i]) {\r\n slides[i].swiperSlideSize = slideSize;\r\n }\r\n slidesSizesGrid.push(slideSize);\r\n\r\n if (params.centeredSlides) {\r\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\r\n if (prevSlideSize === 0 && i !== 0)\r\n slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\r\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\r\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\r\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\r\n slidesGrid.push(slidePosition);\r\n } else {\r\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\r\n if (\r\n (index - Math.min(swiper.params.slidesPerGroupSkip, index)) %\r\n swiper.params.slidesPerGroup ===\r\n 0\r\n )\r\n snapGrid.push(slidePosition);\r\n slidesGrid.push(slidePosition);\r\n slidePosition = slidePosition + slideSize + spaceBetween;\r\n }\r\n\r\n swiper.virtualSize += slideSize + spaceBetween;\r\n\r\n prevSlideSize = slideSize;\r\n\r\n index += 1;\r\n }\r\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\r\n\r\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\r\n $wrapperEl.css({ width: `${swiper.virtualSize + params.spaceBetween}px` });\r\n }\r\n if (params.setWrapperSize) {\r\n $wrapperEl.css({\r\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`,\r\n });\r\n }\r\n\r\n if (gridEnabled) {\r\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\r\n }\r\n\r\n // Remove last grid elements depending on width\r\n if (!params.centeredSlides) {\r\n const newSlidesGrid = [];\r\n for (let i = 0; i < snapGrid.length; i += 1) {\r\n let slidesGridItem = snapGrid[i];\r\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\r\n newSlidesGrid.push(slidesGridItem);\r\n }\r\n }\r\n snapGrid = newSlidesGrid;\r\n\r\n if (\r\n Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) >\r\n 1\r\n ) {\r\n snapGrid.push(swiper.virtualSize - swiperSize);\r\n }\r\n }\r\n if (snapGrid.length === 0) snapGrid = [0];\r\n\r\n if (params.spaceBetween !== 0) {\r\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\r\n slides\r\n .filter((_, slideIndex) => {\r\n if (!params.cssMode) return true;\r\n if (slideIndex === slides.length - 1) {\r\n return false;\r\n }\r\n return true;\r\n })\r\n .css({ [key]: `${spaceBetween}px` });\r\n }\r\n\r\n if (params.centeredSlides && params.centeredSlidesBounds) {\r\n let allSlidesSize = 0;\r\n slidesSizesGrid.forEach((slideSizeValue) => {\r\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n allSlidesSize -= params.spaceBetween;\r\n const maxSnap = allSlidesSize - swiperSize;\r\n snapGrid = snapGrid.map((snap) => {\r\n if (snap < 0) return -offsetBefore;\r\n if (snap > maxSnap) return maxSnap + offsetAfter;\r\n return snap;\r\n });\r\n }\r\n\r\n if (params.centerInsufficientSlides) {\r\n let allSlidesSize = 0;\r\n slidesSizesGrid.forEach((slideSizeValue) => {\r\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\r\n });\r\n allSlidesSize -= params.spaceBetween;\r\n if (allSlidesSize < swiperSize) {\r\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\r\n snapGrid.forEach((snap, snapIndex) => {\r\n snapGrid[snapIndex] = snap - allSlidesOffset;\r\n });\r\n slidesGrid.forEach((snap, snapIndex) => {\r\n slidesGrid[snapIndex] = snap + allSlidesOffset;\r\n });\r\n }\r\n }\r\n\r\n Object.assign(swiper, {\r\n slides,\r\n snapGrid,\r\n slidesGrid,\r\n slidesSizesGrid,\r\n });\r\n\r\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\r\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\r\n setCSSProperty(\r\n swiper.wrapperEl,\r\n '--swiper-centered-offset-after',\r\n `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`,\r\n );\r\n const addToSnapGrid = -swiper.snapGrid[0];\r\n const addToSlidesGrid = -swiper.slidesGrid[0];\r\n swiper.snapGrid = swiper.snapGrid.map((v) => v + addToSnapGrid);\r\n swiper.slidesGrid = swiper.slidesGrid.map((v) => v + addToSlidesGrid);\r\n }\r\n\r\n if (slidesLength !== previousSlidesLength) {\r\n swiper.emit('slidesLengthChange');\r\n }\r\n if (snapGrid.length !== previousSnapGridLength) {\r\n if (swiper.params.watchOverflow) swiper.checkOverflow();\r\n swiper.emit('snapGridLengthChange');\r\n }\r\n if (slidesGrid.length !== previousSlidesGridLength) {\r\n swiper.emit('slidesGridLengthChange');\r\n }\r\n\r\n if (params.watchSlidesProgress) {\r\n swiper.updateSlidesOffset();\r\n }\r\n\r\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\r\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\r\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\r\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\r\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\r\n } else if (hasClassBackfaceClassAdded) {\r\n swiper.$el.removeClass(backFaceHiddenClass);\r\n }\r\n }\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function updateAutoHeight(speed) {\r\n const swiper = this;\r\n const activeSlides = [];\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n let newHeight = 0;\r\n let i;\r\n if (typeof speed === 'number') {\r\n swiper.setTransition(speed);\r\n } else if (speed === true) {\r\n swiper.setTransition(swiper.params.speed);\r\n }\r\n\r\n const getSlideByIndex = (index) => {\r\n if (isVirtual) {\r\n return swiper.slides.filter(\r\n (el) => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index,\r\n )[0];\r\n }\r\n return swiper.slides.eq(index)[0];\r\n };\r\n // Find slides currently in view\r\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\r\n if (swiper.params.centeredSlides) {\r\n (swiper.visibleSlides || $([])).each((slide) => {\r\n activeSlides.push(slide);\r\n });\r\n } else {\r\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\r\n const index = swiper.activeIndex + i;\r\n if (index > swiper.slides.length && !isVirtual) break;\r\n activeSlides.push(getSlideByIndex(index));\r\n }\r\n }\r\n } else {\r\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\r\n }\r\n\r\n // Find new height from highest slide in view\r\n for (i = 0; i < activeSlides.length; i += 1) {\r\n if (typeof activeSlides[i] !== 'undefined') {\r\n const height = activeSlides[i].offsetHeight;\r\n newHeight = height > newHeight ? height : newHeight;\r\n }\r\n }\r\n\r\n // Update Height\r\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\r\n}\r\n","export default function updateSlidesOffset() {\r\n const swiper = this;\r\n const slides = swiper.slides;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n slides[i].swiperSlideOffset = swiper.isHorizontal()\r\n ? slides[i].offsetLeft\r\n : slides[i].offsetTop;\r\n }\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function updateSlidesProgress(translate = (this && this.translate) || 0) {\r\n const swiper = this;\r\n const params = swiper.params;\r\n\r\n const { slides, rtlTranslate: rtl, snapGrid } = swiper;\r\n\r\n if (slides.length === 0) return;\r\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\r\n\r\n let offsetCenter = -translate;\r\n if (rtl) offsetCenter = translate;\r\n\r\n // Visible Slides\r\n slides.removeClass(params.slideVisibleClass);\r\n\r\n swiper.visibleSlidesIndexes = [];\r\n swiper.visibleSlides = [];\r\n\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const slide = slides[i];\r\n let slideOffset = slide.swiperSlideOffset;\r\n if (params.cssMode && params.centeredSlides) {\r\n slideOffset -= slides[0].swiperSlideOffset;\r\n }\r\n\r\n const slideProgress =\r\n (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) /\r\n (slide.swiperSlideSize + params.spaceBetween);\r\n const originalSlideProgress =\r\n (offsetCenter -\r\n snapGrid[0] +\r\n (params.centeredSlides ? swiper.minTranslate() : 0) -\r\n slideOffset) /\r\n (slide.swiperSlideSize + params.spaceBetween);\r\n const slideBefore = -(offsetCenter - slideOffset);\r\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\r\n const isVisible =\r\n (slideBefore >= 0 && slideBefore < swiper.size - 1) ||\r\n (slideAfter > 1 && slideAfter <= swiper.size) ||\r\n (slideBefore <= 0 && slideAfter >= swiper.size);\r\n if (isVisible) {\r\n swiper.visibleSlides.push(slide);\r\n swiper.visibleSlidesIndexes.push(i);\r\n slides.eq(i).addClass(params.slideVisibleClass);\r\n }\r\n slide.progress = rtl ? -slideProgress : slideProgress;\r\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\r\n }\r\n swiper.visibleSlides = $(swiper.visibleSlides);\r\n}\r\n","export default function updateProgress(translate) {\r\n const swiper = this;\r\n if (typeof translate === 'undefined') {\r\n const multiplier = swiper.rtlTranslate ? -1 : 1;\r\n // eslint-disable-next-line\r\n translate = (swiper && swiper.translate && swiper.translate * multiplier) || 0;\r\n }\r\n const params = swiper.params;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n let { progress, isBeginning, isEnd } = swiper;\r\n const wasBeginning = isBeginning;\r\n const wasEnd = isEnd;\r\n if (translatesDiff === 0) {\r\n progress = 0;\r\n isBeginning = true;\r\n isEnd = true;\r\n } else {\r\n progress = (translate - swiper.minTranslate()) / translatesDiff;\r\n isBeginning = progress <= 0;\r\n isEnd = progress >= 1;\r\n }\r\n Object.assign(swiper, {\r\n progress,\r\n isBeginning,\r\n isEnd,\r\n });\r\n\r\n if (params.watchSlidesProgress || (params.centeredSlides && params.autoHeight))\r\n swiper.updateSlidesProgress(translate);\r\n\r\n if (isBeginning && !wasBeginning) {\r\n swiper.emit('reachBeginning toEdge');\r\n }\r\n if (isEnd && !wasEnd) {\r\n swiper.emit('reachEnd toEdge');\r\n }\r\n if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) {\r\n swiper.emit('fromEdge');\r\n }\r\n\r\n swiper.emit('progress', progress);\r\n}\r\n","export default function updateSlidesClasses() {\r\n const swiper = this;\r\n\r\n const { slides, params, $wrapperEl, activeIndex, realIndex } = swiper;\r\n const isVirtual = swiper.virtual && params.virtual.enabled;\r\n\r\n slides.removeClass(\r\n `${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`,\r\n );\r\n\r\n let activeSlide;\r\n if (isVirtual) {\r\n activeSlide = swiper.$wrapperEl.find(\r\n `.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`,\r\n );\r\n } else {\r\n activeSlide = slides.eq(activeIndex);\r\n }\r\n\r\n // Active classes\r\n activeSlide.addClass(params.slideActiveClass);\r\n\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`,\r\n )\r\n .addClass(params.slideDuplicateActiveClass);\r\n } else {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`,\r\n )\r\n .addClass(params.slideDuplicateActiveClass);\r\n }\r\n }\r\n // Next Slide\r\n let nextSlide = activeSlide\r\n .nextAll(`.${params.slideClass}`)\r\n .eq(0)\r\n .addClass(params.slideNextClass);\r\n if (params.loop && nextSlide.length === 0) {\r\n nextSlide = slides.eq(0);\r\n nextSlide.addClass(params.slideNextClass);\r\n }\r\n // Prev Slide\r\n let prevSlide = activeSlide\r\n .prevAll(`.${params.slideClass}`)\r\n .eq(0)\r\n .addClass(params.slidePrevClass);\r\n if (params.loop && prevSlide.length === 0) {\r\n prevSlide = slides.eq(-1);\r\n prevSlide.addClass(params.slidePrevClass);\r\n }\r\n if (params.loop) {\r\n // Duplicate to all looped slides\r\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}:not(.${\r\n params.slideDuplicateClass\r\n })[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicateNextClass);\r\n } else {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${\r\n params.slideDuplicateClass\r\n }[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicateNextClass);\r\n }\r\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}:not(.${\r\n params.slideDuplicateClass\r\n })[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicatePrevClass);\r\n } else {\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${\r\n params.slideDuplicateClass\r\n }[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`,\r\n )\r\n .addClass(params.slideDuplicatePrevClass);\r\n }\r\n }\r\n swiper.emitSlidesClasses();\r\n}\r\n","export default function updateActiveIndex(newActiveIndex) {\r\n const swiper = this;\r\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n const {\r\n slidesGrid,\r\n snapGrid,\r\n params,\r\n activeIndex: previousIndex,\r\n realIndex: previousRealIndex,\r\n snapIndex: previousSnapIndex,\r\n } = swiper;\r\n let activeIndex = newActiveIndex;\r\n let snapIndex;\r\n if (typeof activeIndex === 'undefined') {\r\n for (let i = 0; i < slidesGrid.length; i += 1) {\r\n if (typeof slidesGrid[i + 1] !== 'undefined') {\r\n if (\r\n translate >= slidesGrid[i] &&\r\n translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2\r\n ) {\r\n activeIndex = i;\r\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\r\n activeIndex = i + 1;\r\n }\r\n } else if (translate >= slidesGrid[i]) {\r\n activeIndex = i;\r\n }\r\n }\r\n // Normalize slideIndex\r\n if (params.normalizeSlideIndex) {\r\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\r\n }\r\n }\r\n if (snapGrid.indexOf(translate) >= 0) {\r\n snapIndex = snapGrid.indexOf(translate);\r\n } else {\r\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\r\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\r\n }\r\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n if (activeIndex === previousIndex) {\r\n if (snapIndex !== previousSnapIndex) {\r\n swiper.snapIndex = snapIndex;\r\n swiper.emit('snapIndexChange');\r\n }\r\n return;\r\n }\r\n\r\n // Get real index\r\n const realIndex = parseInt(\r\n swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex,\r\n 10,\r\n );\r\n\r\n Object.assign(swiper, {\r\n snapIndex,\r\n realIndex,\r\n previousIndex,\r\n activeIndex,\r\n });\r\n swiper.emit('activeIndexChange');\r\n swiper.emit('snapIndexChange');\r\n if (previousRealIndex !== realIndex) {\r\n swiper.emit('realIndexChange');\r\n }\r\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\r\n swiper.emit('slideChange');\r\n }\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function updateClickedSlide(e) {\r\n const swiper = this;\r\n const params = swiper.params;\r\n const slide = $(e).closest(`.${params.slideClass}`)[0];\r\n let slideFound = false;\r\n let slideIndex;\r\n\r\n if (slide) {\r\n for (let i = 0; i < swiper.slides.length; i += 1) {\r\n if (swiper.slides[i] === slide) {\r\n slideFound = true;\r\n slideIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (slide && slideFound) {\r\n swiper.clickedSlide = slide;\r\n if (swiper.virtual && swiper.params.virtual.enabled) {\r\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n swiper.clickedIndex = slideIndex;\r\n }\r\n } else {\r\n swiper.clickedSlide = undefined;\r\n swiper.clickedIndex = undefined;\r\n return;\r\n }\r\n if (\r\n params.slideToClickedSlide &&\r\n swiper.clickedIndex !== undefined &&\r\n swiper.clickedIndex !== swiper.activeIndex\r\n ) {\r\n swiper.slideToClickedSlide();\r\n }\r\n}\r\n","import getTranslate from './getTranslate.js';\r\nimport setTranslate from './setTranslate.js';\r\nimport minTranslate from './minTranslate.js';\r\nimport maxTranslate from './maxTranslate.js';\r\nimport translateTo from './translateTo.js';\r\n\r\nexport default {\r\n getTranslate,\r\n setTranslate,\r\n minTranslate,\r\n maxTranslate,\r\n translateTo,\r\n};\r\n","import { getTranslate } from '../../shared/utils.js';\r\n\r\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\r\n const swiper = this;\r\n\r\n const { params, rtlTranslate: rtl, translate, $wrapperEl } = swiper;\r\n\r\n if (params.virtualTranslate) {\r\n return rtl ? -translate : translate;\r\n }\r\n if (params.cssMode) {\r\n return translate;\r\n }\r\n\r\n let currentTranslate = getTranslate($wrapperEl[0], axis);\r\n if (rtl) currentTranslate = -currentTranslate;\r\n\r\n return currentTranslate || 0;\r\n}\r\n","export default function setTranslate(translate, byController) {\r\n const swiper = this;\r\n const { rtlTranslate: rtl, params, $wrapperEl, wrapperEl, progress } = swiper;\r\n let x = 0;\r\n let y = 0;\r\n const z = 0;\r\n\r\n if (swiper.isHorizontal()) {\r\n x = rtl ? -translate : translate;\r\n } else {\r\n y = translate;\r\n }\r\n\r\n if (params.roundLengths) {\r\n x = Math.floor(x);\r\n y = Math.floor(y);\r\n }\r\n\r\n if (params.cssMode) {\r\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\r\n } else if (!params.virtualTranslate) {\r\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\r\n }\r\n swiper.previousTranslate = swiper.translate;\r\n swiper.translate = swiper.isHorizontal() ? x : y;\r\n\r\n // Check if we need to update progress\r\n let newProgress;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n if (newProgress !== progress) {\r\n swiper.updateProgress(translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, byController);\r\n}\r\n","export default function minTranslate() {\r\n return -this.snapGrid[0];\r\n}\r\n","export default function maxTranslate() {\r\n return -this.snapGrid[this.snapGrid.length - 1];\r\n}\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\r\n\r\nexport default function translateTo(\r\n translate = 0,\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n translateBounds = true,\r\n internal,\r\n) {\r\n const swiper = this;\r\n\r\n const { params, wrapperEl } = swiper;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return false;\r\n }\r\n\r\n const minTranslate = swiper.minTranslate();\r\n const maxTranslate = swiper.maxTranslate();\r\n let newTranslate;\r\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;\r\n else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;\r\n else newTranslate = translate;\r\n\r\n // Update progress\r\n swiper.updateProgress(newTranslate);\r\n\r\n if (params.cssMode) {\r\n const isH = swiper.isHorizontal();\r\n if (speed === 0) {\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\r\n } else {\r\n if (!swiper.support.smoothScroll) {\r\n animateCSSModeScroll({ swiper, targetPosition: -newTranslate, side: isH ? 'left' : 'top' });\r\n return true;\r\n }\r\n wrapperEl.scrollTo({\r\n [isH ? 'left' : 'top']: -newTranslate,\r\n behavior: 'smooth',\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n if (speed === 0) {\r\n swiper.setTransition(0);\r\n swiper.setTranslate(newTranslate);\r\n if (runCallbacks) {\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.emit('transitionEnd');\r\n }\r\n } else {\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(newTranslate);\r\n if (runCallbacks) {\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.emit('transitionStart');\r\n }\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n if (!swiper.onTranslateToWrapperTransitionEnd) {\r\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) return;\r\n if (e.target !== this) return;\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'transitionend',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n swiper.onTranslateToWrapperTransitionEnd = null;\r\n delete swiper.onTranslateToWrapperTransitionEnd;\r\n if (runCallbacks) {\r\n swiper.emit('transitionEnd');\r\n }\r\n };\r\n }\r\n swiper.$wrapperEl[0].addEventListener(\r\n 'transitionend',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n swiper.$wrapperEl[0].addEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onTranslateToWrapperTransitionEnd,\r\n );\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n","export default function transitionEmit({ swiper, runCallbacks, direction, step }) {\r\n const { activeIndex, previousIndex } = swiper;\r\n let dir = direction;\r\n if (!dir) {\r\n if (activeIndex > previousIndex) dir = 'next';\r\n else if (activeIndex < previousIndex) dir = 'prev';\r\n else dir = 'reset';\r\n }\r\n\r\n swiper.emit(`transition${step}`);\r\n\r\n if (runCallbacks && activeIndex !== previousIndex) {\r\n if (dir === 'reset') {\r\n swiper.emit(`slideResetTransition${step}`);\r\n return;\r\n }\r\n swiper.emit(`slideChangeTransition${step}`);\r\n if (dir === 'next') {\r\n swiper.emit(`slideNextTransition${step}`);\r\n } else {\r\n swiper.emit(`slidePrevTransition${step}`);\r\n }\r\n }\r\n}\r\n","import slideTo from './slideTo.js';\r\nimport slideToLoop from './slideToLoop.js';\r\nimport slideNext from './slideNext.js';\r\nimport slidePrev from './slidePrev.js';\r\nimport slideReset from './slideReset.js';\r\nimport slideToClosest from './slideToClosest.js';\r\nimport slideToClickedSlide from './slideToClickedSlide.js';\r\n\r\nexport default {\r\n slideTo,\r\n slideToLoop,\r\n slideNext,\r\n slidePrev,\r\n slideReset,\r\n slideToClosest,\r\n slideToClickedSlide,\r\n};\r\n","import { animateCSSModeScroll } from '../../shared/utils.js';\r\n\r\nexport default function slideTo(\r\n index = 0,\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n initial,\r\n) {\r\n if (typeof index !== 'number' && typeof index !== 'string') {\r\n throw new Error(\r\n `The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`,\r\n );\r\n }\r\n\r\n if (typeof index === 'string') {\r\n /**\r\n * The `index` argument converted from `string` to `number`.\r\n * @type {number}\r\n */\r\n const indexAsNumber = parseInt(index, 10);\r\n\r\n /**\r\n * Determines whether the `index` argument is a valid `number`\r\n * after being converted from the `string` type.\r\n * @type {boolean}\r\n */\r\n const isValidNumber = isFinite(indexAsNumber);\r\n\r\n if (!isValidNumber) {\r\n throw new Error(\r\n `The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`,\r\n );\r\n }\r\n\r\n // Knowing that the converted `index` is a valid number,\r\n // we can update the original argument's value.\r\n index = indexAsNumber;\r\n }\r\n\r\n const swiper = this;\r\n let slideIndex = index;\r\n if (slideIndex < 0) slideIndex = 0;\r\n\r\n const {\r\n params,\r\n snapGrid,\r\n slidesGrid,\r\n previousIndex,\r\n activeIndex,\r\n rtlTranslate: rtl,\r\n wrapperEl,\r\n enabled,\r\n } = swiper;\r\n\r\n if (\r\n (swiper.animating && params.preventInteractionOnTransition) ||\r\n (!enabled && !internal && !initial)\r\n ) {\r\n return false;\r\n }\r\n\r\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\r\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\r\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\r\n\r\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\r\n swiper.emit('beforeSlideChangeStart');\r\n }\r\n\r\n const translate = -snapGrid[snapIndex];\r\n\r\n // Update progress\r\n swiper.updateProgress(translate);\r\n\r\n // Normalize slideIndex\r\n if (params.normalizeSlideIndex) {\r\n for (let i = 0; i < slidesGrid.length; i += 1) {\r\n const normalizedTranslate = -Math.floor(translate * 100);\r\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\r\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\r\n if (typeof slidesGrid[i + 1] !== 'undefined') {\r\n if (\r\n normalizedTranslate >= normalizedGrid &&\r\n normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2\r\n ) {\r\n slideIndex = i;\r\n } else if (\r\n normalizedTranslate >= normalizedGrid &&\r\n normalizedTranslate < normalizedGridNext\r\n ) {\r\n slideIndex = i + 1;\r\n }\r\n } else if (normalizedTranslate >= normalizedGrid) {\r\n slideIndex = i;\r\n }\r\n }\r\n }\r\n // Directions locks\r\n if (swiper.initialized && slideIndex !== activeIndex) {\r\n if (\r\n !swiper.allowSlideNext &&\r\n translate < swiper.translate &&\r\n translate < swiper.minTranslate()\r\n ) {\r\n return false;\r\n }\r\n if (\r\n !swiper.allowSlidePrev &&\r\n translate > swiper.translate &&\r\n translate > swiper.maxTranslate()\r\n ) {\r\n if ((activeIndex || 0) !== slideIndex) return false;\r\n }\r\n }\r\n\r\n let direction;\r\n if (slideIndex > activeIndex) direction = 'next';\r\n else if (slideIndex < activeIndex) direction = 'prev';\r\n else direction = 'reset';\r\n\r\n // Update Index\r\n if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) {\r\n swiper.updateActiveIndex(slideIndex);\r\n // Update Height\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n swiper.updateSlidesClasses();\r\n if (params.effect !== 'slide') {\r\n swiper.setTranslate(translate);\r\n }\r\n if (direction !== 'reset') {\r\n swiper.transitionStart(runCallbacks, direction);\r\n swiper.transitionEnd(runCallbacks, direction);\r\n }\r\n return false;\r\n }\r\n if (params.cssMode) {\r\n const isH = swiper.isHorizontal();\r\n const t = rtl ? translate : -translate;\r\n if (speed === 0) {\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n if (isVirtual) {\r\n swiper.wrapperEl.style.scrollSnapType = 'none';\r\n swiper._immediateVirtual = true;\r\n }\r\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\r\n if (isVirtual) {\r\n requestAnimationFrame(() => {\r\n swiper.wrapperEl.style.scrollSnapType = '';\r\n swiper._swiperImmediateVirtual = false;\r\n });\r\n }\r\n } else {\r\n if (!swiper.support.smoothScroll) {\r\n animateCSSModeScroll({ swiper, targetPosition: t, side: isH ? 'left' : 'top' });\r\n return true;\r\n }\r\n wrapperEl.scrollTo({\r\n [isH ? 'left' : 'top']: t,\r\n behavior: 'smooth',\r\n });\r\n }\r\n return true;\r\n }\r\n\r\n swiper.setTransition(speed);\r\n swiper.setTranslate(translate);\r\n swiper.updateActiveIndex(slideIndex);\r\n swiper.updateSlidesClasses();\r\n swiper.emit('beforeTransitionStart', speed, internal);\r\n swiper.transitionStart(runCallbacks, direction);\r\n\r\n if (speed === 0) {\r\n swiper.transitionEnd(runCallbacks, direction);\r\n } else if (!swiper.animating) {\r\n swiper.animating = true;\r\n if (!swiper.onSlideToWrapperTransitionEnd) {\r\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\r\n if (!swiper || swiper.destroyed) return;\r\n if (e.target !== this) return;\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'transitionend',\r\n swiper.onSlideToWrapperTransitionEnd,\r\n );\r\n swiper.$wrapperEl[0].removeEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onSlideToWrapperTransitionEnd,\r\n );\r\n swiper.onSlideToWrapperTransitionEnd = null;\r\n delete swiper.onSlideToWrapperTransitionEnd;\r\n swiper.transitionEnd(runCallbacks, direction);\r\n };\r\n }\r\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\r\n swiper.$wrapperEl[0].addEventListener(\r\n 'webkitTransitionEnd',\r\n swiper.onSlideToWrapperTransitionEnd,\r\n );\r\n }\r\n\r\n return true;\r\n}\r\n","export default function slideToLoop(\r\n index = 0,\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n) {\r\n if (typeof index === 'string') {\r\n /**\r\n * The `index` argument converted from `string` to `number`.\r\n * @type {number}\r\n */\r\n const indexAsNumber = parseInt(index, 10);\r\n\r\n /**\r\n * Determines whether the `index` argument is a valid `number`\r\n * after being converted from the `string` type.\r\n * @type {boolean}\r\n */\r\n const isValidNumber = isFinite(indexAsNumber);\r\n\r\n if (!isValidNumber) {\r\n throw new Error(\r\n `The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`,\r\n );\r\n }\r\n\r\n // Knowing that the converted `index` is a valid number,\r\n // we can update the original argument's value.\r\n index = indexAsNumber;\r\n }\r\n\r\n const swiper = this;\r\n let newIndex = index;\r\n if (swiper.params.loop) {\r\n newIndex += swiper.loopedSlides;\r\n }\r\n\r\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n const { animating, enabled, params } = swiper;\r\n if (!enabled) return swiper;\r\n let perGroup = params.slidesPerGroup;\r\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\r\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\r\n }\r\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\r\n if (params.loop) {\r\n if (animating && params.loopPreventsSlide) return false;\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n if (params.rewind && swiper.isEnd) {\r\n return swiper.slideTo(0, speed, runCallbacks, internal);\r\n }\r\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n const { params, animating, snapGrid, slidesGrid, rtlTranslate, enabled } = swiper;\r\n if (!enabled) return swiper;\r\n\r\n if (params.loop) {\r\n if (animating && params.loopPreventsSlide) return false;\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n }\r\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n function normalize(val) {\r\n if (val < 0) return -Math.floor(Math.abs(val));\r\n return Math.floor(val);\r\n }\r\n const normalizedTranslate = normalize(translate);\r\n const normalizedSnapGrid = snapGrid.map((val) => normalize(val));\r\n\r\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\r\n if (typeof prevSnap === 'undefined' && params.cssMode) {\r\n let prevSnapIndex;\r\n snapGrid.forEach((snap, snapIndex) => {\r\n if (normalizedTranslate >= snap) {\r\n // prevSnap = snap;\r\n prevSnapIndex = snapIndex;\r\n }\r\n });\r\n if (typeof prevSnapIndex !== 'undefined') {\r\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\r\n }\r\n }\r\n let prevIndex = 0;\r\n if (typeof prevSnap !== 'undefined') {\r\n prevIndex = slidesGrid.indexOf(prevSnap);\r\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\r\n if (\r\n params.slidesPerView === 'auto' &&\r\n params.slidesPerGroup === 1 &&\r\n params.slidesPerGroupAuto\r\n ) {\r\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\r\n prevIndex = Math.max(prevIndex, 0);\r\n }\r\n }\r\n if (params.rewind && swiper.isBeginning) {\r\n const lastIndex =\r\n swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\r\n ? swiper.virtual.slides.length - 1\r\n : swiper.slides.length - 1;\r\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\r\n }\r\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\r\n const swiper = this;\r\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\r\n}\r\n","/* eslint no-unused-vars: \"off\" */\r\nexport default function slideToClosest(\r\n speed = this.params.speed,\r\n runCallbacks = true,\r\n internal,\r\n threshold = 0.5,\r\n) {\r\n const swiper = this;\r\n let index = swiper.activeIndex;\r\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\r\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\r\n\r\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\r\n\r\n if (translate >= swiper.snapGrid[snapIndex]) {\r\n // The current translate is on or after the current snap index, so the choice\r\n // is between the current index and the one after it.\r\n const currentSnap = swiper.snapGrid[snapIndex];\r\n const nextSnap = swiper.snapGrid[snapIndex + 1];\r\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\r\n index += swiper.params.slidesPerGroup;\r\n }\r\n } else {\r\n // The current translate is before the current snap index, so the choice\r\n // is between the current index and the one before it.\r\n const prevSnap = swiper.snapGrid[snapIndex - 1];\r\n const currentSnap = swiper.snapGrid[snapIndex];\r\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\r\n index -= swiper.params.slidesPerGroup;\r\n }\r\n }\r\n index = Math.max(index, 0);\r\n index = Math.min(index, swiper.slidesGrid.length - 1);\r\n\r\n return swiper.slideTo(index, speed, runCallbacks, internal);\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport { nextTick } from '../../shared/utils.js';\r\n\r\nexport default function slideToClickedSlide() {\r\n const swiper = this;\r\n const { params, $wrapperEl } = swiper;\r\n\r\n const slidesPerView =\r\n params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\r\n let slideToIndex = swiper.clickedIndex;\r\n let realIndex;\r\n if (params.loop) {\r\n if (swiper.animating) return;\r\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n if (params.centeredSlides) {\r\n if (\r\n slideToIndex < swiper.loopedSlides - slidesPerView / 2 ||\r\n slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2\r\n ) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl\r\n .children(\r\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\r\n )\r\n .eq(0)\r\n .index();\r\n\r\n nextTick(() => {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\r\n swiper.loopFix();\r\n slideToIndex = $wrapperEl\r\n .children(\r\n `.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`,\r\n )\r\n .eq(0)\r\n .index();\r\n\r\n nextTick(() => {\r\n swiper.slideTo(slideToIndex);\r\n });\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n } else {\r\n swiper.slideTo(slideToIndex);\r\n }\r\n}\r\n","import loopCreate from './loopCreate.js';\r\nimport loopFix from './loopFix.js';\r\nimport loopDestroy from './loopDestroy.js';\r\n\r\nexport default {\r\n loopCreate,\r\n loopFix,\r\n loopDestroy,\r\n};\r\n","import { getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function loopCreate() {\r\n const swiper = this;\r\n const document = getDocument();\r\n const { params, $wrapperEl } = swiper;\r\n // Remove duplicated slides\r\n const $selector =\r\n $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\r\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\r\n\r\n let slides = $selector.children(`.${params.slideClass}`);\r\n\r\n if (params.loopFillGroupWithBlank) {\r\n const blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup);\r\n if (blankSlidesNum !== params.slidesPerGroup) {\r\n for (let i = 0; i < blankSlidesNum; i += 1) {\r\n const blankNode = $(document.createElement('div')).addClass(\r\n `${params.slideClass} ${params.slideBlankClass}`,\r\n );\r\n $selector.append(blankNode);\r\n }\r\n slides = $selector.children(`.${params.slideClass}`);\r\n }\r\n }\r\n\r\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\r\n\r\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\r\n swiper.loopedSlides += params.loopAdditionalSlides;\r\n if (swiper.loopedSlides > slides.length) {\r\n swiper.loopedSlides = slides.length;\r\n }\r\n\r\n const prependSlides = [];\r\n const appendSlides = [];\r\n slides.each((el, index) => {\r\n const slide = $(el);\r\n if (index < swiper.loopedSlides) {\r\n appendSlides.push(el);\r\n }\r\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\r\n prependSlides.push(el);\r\n }\r\n slide.attr('data-swiper-slide-index', index);\r\n });\r\n for (let i = 0; i < appendSlides.length; i += 1) {\r\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\r\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\r\n }\r\n}\r\n","export default function loopFix() {\r\n const swiper = this;\r\n\r\n swiper.emit('beforeLoopFix');\r\n\r\n const {\r\n activeIndex,\r\n slides,\r\n loopedSlides,\r\n allowSlidePrev,\r\n allowSlideNext,\r\n snapGrid,\r\n rtlTranslate: rtl,\r\n } = swiper;\r\n let newIndex;\r\n swiper.allowSlidePrev = true;\r\n swiper.allowSlideNext = true;\r\n\r\n const snapTranslate = -snapGrid[activeIndex];\r\n const diff = snapTranslate - swiper.getTranslate();\r\n\r\n // Fix For Negative Oversliding\r\n if (activeIndex < loopedSlides) {\r\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\r\n newIndex += loopedSlides;\r\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n if (slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n } else if (activeIndex >= slides.length - loopedSlides) {\r\n // Fix For Positive Oversliding\r\n newIndex = -slides.length + activeIndex + loopedSlides;\r\n newIndex += loopedSlides;\r\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\r\n if (slideChanged && diff !== 0) {\r\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\r\n }\r\n }\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n\r\n swiper.emit('loopFix');\r\n}\r\n","export default function loopDestroy() {\r\n const swiper = this;\r\n const { $wrapperEl, params, slides } = swiper;\r\n $wrapperEl\r\n .children(\r\n `.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`,\r\n )\r\n .remove();\r\n slides.removeAttr('data-swiper-slide-index');\r\n}\r\n","import { getWindow, getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { now } from '../../shared/utils.js';\r\n\r\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\r\nfunction closestElement(selector, base = this) {\r\n function __closestFrom(el) {\r\n if (!el || el === getDocument() || el === getWindow()) return null;\r\n if (el.assignedSlot) el = el.assignedSlot;\r\n const found = el.closest(selector);\r\n if (!found && !el.getRootNode) {\r\n return null;\r\n }\r\n return found || __closestFrom(el.getRootNode().host);\r\n }\r\n return __closestFrom(base);\r\n}\r\n\r\nexport default function onTouchStart(event) {\r\n const swiper = this;\r\n const document = getDocument();\r\n const window = getWindow();\r\n\r\n const data = swiper.touchEventsData;\r\n const { params, touches, enabled } = swiper;\r\n if (!enabled) return;\r\n\r\n if (swiper.animating && params.preventInteractionOnTransition) {\r\n return;\r\n }\r\n if (!swiper.animating && params.cssMode && params.loop) {\r\n swiper.loopFix();\r\n }\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n let $targetEl = $(e.target);\r\n\r\n if (params.touchEventsTarget === 'wrapper') {\r\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\r\n }\r\n data.isTouchEvent = e.type === 'touchstart';\r\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\r\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\r\n if (data.isTouched && data.isMoved) return;\r\n\r\n // change target el for shadow root component\r\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\r\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\r\n $targetEl = $(event.path[0]);\r\n }\r\n\r\n const noSwipingSelector = params.noSwipingSelector\r\n ? params.noSwipingSelector\r\n : `.${params.noSwipingClass}`;\r\n const isTargetShadow = !!(e.target && e.target.shadowRoot);\r\n\r\n // use closestElement for shadow root element to get the actual closest for nested shadow root element\r\n if (\r\n params.noSwiping &&\r\n (isTargetShadow\r\n ? closestElement(noSwipingSelector, $targetEl[0])\r\n : $targetEl.closest(noSwipingSelector)[0])\r\n ) {\r\n swiper.allowClick = true;\r\n return;\r\n }\r\n\r\n if (params.swipeHandler) {\r\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\r\n }\r\n\r\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n const startX = touches.currentX;\r\n const startY = touches.currentY;\r\n\r\n // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\r\n\r\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\r\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\r\n if (\r\n edgeSwipeDetection &&\r\n (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)\r\n ) {\r\n if (edgeSwipeDetection === 'prevent') {\r\n event.preventDefault();\r\n } else {\r\n return;\r\n }\r\n }\r\n\r\n Object.assign(data, {\r\n isTouched: true,\r\n isMoved: false,\r\n allowTouchCallbacks: true,\r\n isScrolling: undefined,\r\n startMoving: undefined,\r\n });\r\n\r\n touches.startX = startX;\r\n touches.startY = startY;\r\n data.touchStartTime = now();\r\n swiper.allowClick = true;\r\n swiper.updateSize();\r\n swiper.swipeDirection = undefined;\r\n if (params.threshold > 0) data.allowThresholdMove = false;\r\n if (e.type !== 'touchstart') {\r\n let preventDefault = true;\r\n if ($targetEl.is(data.focusableElements)) {\r\n preventDefault = false;\r\n if ($targetEl[0].nodeName === 'SELECT') {\r\n data.isTouched = false;\r\n }\r\n }\r\n if (\r\n document.activeElement &&\r\n $(document.activeElement).is(data.focusableElements) &&\r\n document.activeElement !== $targetEl[0]\r\n ) {\r\n document.activeElement.blur();\r\n }\r\n\r\n const shouldPreventDefault =\r\n preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\r\n if (\r\n (params.touchStartForcePreventDefault || shouldPreventDefault) &&\r\n !$targetEl[0].isContentEditable\r\n ) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (\r\n swiper.params.freeMode &&\r\n swiper.params.freeMode.enabled &&\r\n swiper.freeMode &&\r\n swiper.animating &&\r\n !params.cssMode\r\n ) {\r\n swiper.freeMode.onTouchStart();\r\n }\r\n swiper.emit('touchStart', e);\r\n}\r\n","import { getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { now } from '../../shared/utils.js';\r\n\r\nexport default function onTouchMove(event) {\r\n const document = getDocument();\r\n const swiper = this;\r\n const data = swiper.touchEventsData;\r\n const { params, touches, rtlTranslate: rtl, enabled } = swiper;\r\n if (!enabled) return;\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n if (!data.isTouched) {\r\n if (data.startMoving && data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n return;\r\n }\r\n if (data.isTouchEvent && e.type !== 'touchmove') return;\r\n const targetTouch =\r\n e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\r\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\r\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\r\n if (e.preventedByNestedSwiper) {\r\n touches.startX = pageX;\r\n touches.startY = pageY;\r\n return;\r\n }\r\n if (!swiper.allowTouchMove) {\r\n if (!$(e.target).is(data.focusableElements)) {\r\n swiper.allowClick = false;\r\n }\r\n if (data.isTouched) {\r\n Object.assign(touches, {\r\n startX: pageX,\r\n startY: pageY,\r\n currentX: pageX,\r\n currentY: pageY,\r\n });\r\n data.touchStartTime = now();\r\n }\r\n return;\r\n }\r\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\r\n if (swiper.isVertical()) {\r\n // Vertical\r\n if (\r\n (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) ||\r\n (pageY > touches.startY && swiper.translate >= swiper.minTranslate())\r\n ) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n return;\r\n }\r\n } else if (\r\n (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) ||\r\n (pageX > touches.startX && swiper.translate >= swiper.minTranslate())\r\n ) {\r\n return;\r\n }\r\n }\r\n if (data.isTouchEvent && document.activeElement) {\r\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\r\n data.isMoved = true;\r\n swiper.allowClick = false;\r\n return;\r\n }\r\n }\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchMove', e);\r\n }\r\n if (e.targetTouches && e.targetTouches.length > 1) return;\r\n\r\n touches.currentX = pageX;\r\n touches.currentY = pageY;\r\n\r\n const diffX = touches.currentX - touches.startX;\r\n const diffY = touches.currentY - touches.startY;\r\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold)\r\n return;\r\n\r\n if (typeof data.isScrolling === 'undefined') {\r\n let touchAngle;\r\n if (\r\n (swiper.isHorizontal() && touches.currentY === touches.startY) ||\r\n (swiper.isVertical() && touches.currentX === touches.startX)\r\n ) {\r\n data.isScrolling = false;\r\n } else {\r\n // eslint-disable-next-line\r\n if (diffX * diffX + diffY * diffY >= 25) {\r\n touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI;\r\n data.isScrolling = swiper.isHorizontal()\r\n ? touchAngle > params.touchAngle\r\n : 90 - touchAngle > params.touchAngle;\r\n }\r\n }\r\n }\r\n if (data.isScrolling) {\r\n swiper.emit('touchMoveOpposite', e);\r\n }\r\n if (typeof data.startMoving === 'undefined') {\r\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\r\n data.startMoving = true;\r\n }\r\n }\r\n if (data.isScrolling) {\r\n data.isTouched = false;\r\n return;\r\n }\r\n if (!data.startMoving) {\r\n return;\r\n }\r\n swiper.allowClick = false;\r\n if (!params.cssMode && e.cancelable) {\r\n e.preventDefault();\r\n }\r\n if (params.touchMoveStopPropagation && !params.nested) {\r\n e.stopPropagation();\r\n }\r\n\r\n if (!data.isMoved) {\r\n if (params.loop && !params.cssMode) {\r\n swiper.loopFix();\r\n }\r\n data.startTranslate = swiper.getTranslate();\r\n swiper.setTransition(0);\r\n if (swiper.animating) {\r\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\r\n }\r\n data.allowMomentumBounce = false;\r\n // Grab Cursor\r\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\r\n swiper.setGrabCursor(true);\r\n }\r\n swiper.emit('sliderFirstMove', e);\r\n }\r\n swiper.emit('sliderMove', e);\r\n data.isMoved = true;\r\n\r\n let diff = swiper.isHorizontal() ? diffX : diffY;\r\n touches.diff = diff;\r\n\r\n diff *= params.touchRatio;\r\n if (rtl) diff = -diff;\r\n\r\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\r\n data.currentTranslate = diff + data.startTranslate;\r\n\r\n let disableParentSwiper = true;\r\n let resistanceRatio = params.resistanceRatio;\r\n if (params.touchReleaseOnEdges) {\r\n resistanceRatio = 0;\r\n }\r\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance)\r\n data.currentTranslate =\r\n swiper.minTranslate() -\r\n 1 +\r\n (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\r\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\r\n disableParentSwiper = false;\r\n if (params.resistance)\r\n data.currentTranslate =\r\n swiper.maxTranslate() +\r\n 1 -\r\n (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\r\n }\r\n\r\n if (disableParentSwiper) {\r\n e.preventedByNestedSwiper = true;\r\n }\r\n\r\n // Directions locks\r\n if (\r\n !swiper.allowSlideNext &&\r\n swiper.swipeDirection === 'next' &&\r\n data.currentTranslate < data.startTranslate\r\n ) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n if (\r\n !swiper.allowSlidePrev &&\r\n swiper.swipeDirection === 'prev' &&\r\n data.currentTranslate > data.startTranslate\r\n ) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\r\n data.currentTranslate = data.startTranslate;\r\n }\r\n\r\n // Threshold\r\n if (params.threshold > 0) {\r\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\r\n if (!data.allowThresholdMove) {\r\n data.allowThresholdMove = true;\r\n touches.startX = touches.currentX;\r\n touches.startY = touches.currentY;\r\n data.currentTranslate = data.startTranslate;\r\n touches.diff = swiper.isHorizontal()\r\n ? touches.currentX - touches.startX\r\n : touches.currentY - touches.startY;\r\n return;\r\n }\r\n } else {\r\n data.currentTranslate = data.startTranslate;\r\n return;\r\n }\r\n }\r\n\r\n if (!params.followFinger || params.cssMode) return;\r\n\r\n // Update active index in free mode\r\n if (\r\n (params.freeMode && params.freeMode.enabled && swiper.freeMode) ||\r\n params.watchSlidesProgress\r\n ) {\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\r\n swiper.freeMode.onTouchMove();\r\n }\r\n // Update progress\r\n swiper.updateProgress(data.currentTranslate);\r\n // Update translate\r\n swiper.setTranslate(data.currentTranslate);\r\n}\r\n","import { now, nextTick } from '../../shared/utils.js';\r\n\r\nexport default function onTouchEnd(event) {\r\n const swiper = this;\r\n const data = swiper.touchEventsData;\r\n\r\n const { params, touches, rtlTranslate: rtl, slidesGrid, enabled } = swiper;\r\n if (!enabled) return;\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent;\r\n if (data.allowTouchCallbacks) {\r\n swiper.emit('touchEnd', e);\r\n }\r\n data.allowTouchCallbacks = false;\r\n if (!data.isTouched) {\r\n if (data.isMoved && params.grabCursor) {\r\n swiper.setGrabCursor(false);\r\n }\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n // Return Grab Cursor\r\n if (\r\n params.grabCursor &&\r\n data.isMoved &&\r\n data.isTouched &&\r\n (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)\r\n ) {\r\n swiper.setGrabCursor(false);\r\n }\r\n\r\n // Time diff\r\n const touchEndTime = now();\r\n const timeDiff = touchEndTime - data.touchStartTime;\r\n\r\n // Tap, doubleTap, Click\r\n if (swiper.allowClick) {\r\n const pathTree = e.path || (e.composedPath && e.composedPath());\r\n swiper.updateClickedSlide((pathTree && pathTree[0]) || e.target);\r\n swiper.emit('tap click', e);\r\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\r\n swiper.emit('doubleTap doubleClick', e);\r\n }\r\n }\r\n\r\n data.lastClickTime = now();\r\n nextTick(() => {\r\n if (!swiper.destroyed) swiper.allowClick = true;\r\n });\r\n\r\n if (\r\n !data.isTouched ||\r\n !data.isMoved ||\r\n !swiper.swipeDirection ||\r\n touches.diff === 0 ||\r\n data.currentTranslate === data.startTranslate\r\n ) {\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n return;\r\n }\r\n data.isTouched = false;\r\n data.isMoved = false;\r\n data.startMoving = false;\r\n\r\n let currentPos;\r\n if (params.followFinger) {\r\n currentPos = rtl ? swiper.translate : -swiper.translate;\r\n } else {\r\n currentPos = -data.currentTranslate;\r\n }\r\n\r\n if (params.cssMode) {\r\n return;\r\n }\r\n\r\n if (swiper.params.freeMode && params.freeMode.enabled) {\r\n swiper.freeMode.onTouchEnd({ currentPos });\r\n return;\r\n }\r\n\r\n // Find current slide\r\n let stopIndex = 0;\r\n let groupSize = swiper.slidesSizesGrid[0];\r\n for (\r\n let i = 0;\r\n i < slidesGrid.length;\r\n i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup\r\n ) {\r\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\r\n if (typeof slidesGrid[i + increment] !== 'undefined') {\r\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\r\n }\r\n } else if (currentPos >= slidesGrid[i]) {\r\n stopIndex = i;\r\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\r\n }\r\n }\r\n\r\n let rewindFirstIndex = null;\r\n let rewindLastIndex = null;\r\n if (params.rewind) {\r\n if (swiper.isBeginning) {\r\n rewindLastIndex =\r\n swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual\r\n ? swiper.virtual.slides.length - 1\r\n : swiper.slides.length - 1;\r\n } else if (swiper.isEnd) {\r\n rewindFirstIndex = 0;\r\n }\r\n }\r\n // Find current slide size\r\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\r\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\r\n if (timeDiff > params.longSwipesMs) {\r\n // Long touches\r\n if (!params.longSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (swiper.swipeDirection === 'next') {\r\n if (ratio >= params.longSwipesRatio)\r\n swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);\r\n else swiper.slideTo(stopIndex);\r\n }\r\n if (swiper.swipeDirection === 'prev') {\r\n if (ratio > 1 - params.longSwipesRatio) {\r\n swiper.slideTo(stopIndex + increment);\r\n } else if (\r\n rewindLastIndex !== null &&\r\n ratio < 0 &&\r\n Math.abs(ratio) > params.longSwipesRatio\r\n ) {\r\n swiper.slideTo(rewindLastIndex);\r\n } else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n } else {\r\n // Short swipes\r\n if (!params.shortSwipes) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n const isNavButtonTarget =\r\n swiper.navigation &&\r\n (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\r\n if (!isNavButtonTarget) {\r\n if (swiper.swipeDirection === 'next') {\r\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\r\n }\r\n if (swiper.swipeDirection === 'prev') {\r\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\r\n }\r\n } else if (e.target === swiper.navigation.nextEl) {\r\n swiper.slideTo(stopIndex + increment);\r\n } else {\r\n swiper.slideTo(stopIndex);\r\n }\r\n }\r\n}\r\n","export default function onResize() {\r\n const swiper = this;\r\n\r\n const { params, el } = swiper;\r\n\r\n if (el && el.offsetWidth === 0) return;\r\n\r\n // Breakpoints\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n // Save locks\r\n const { allowSlideNext, allowSlidePrev, snapGrid } = swiper;\r\n\r\n // Disable locks on resize\r\n swiper.allowSlideNext = true;\r\n swiper.allowSlidePrev = true;\r\n\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n\r\n swiper.updateSlidesClasses();\r\n if (\r\n (params.slidesPerView === 'auto' || params.slidesPerView > 1) &&\r\n swiper.isEnd &&\r\n !swiper.isBeginning &&\r\n !swiper.params.centeredSlides\r\n ) {\r\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n\r\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\r\n swiper.autoplay.run();\r\n }\r\n // Return locks after resize\r\n swiper.allowSlidePrev = allowSlidePrev;\r\n swiper.allowSlideNext = allowSlideNext;\r\n\r\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n}\r\n","export default function onClick(e) {\r\n const swiper = this;\r\n if (!swiper.enabled) return;\r\n if (!swiper.allowClick) {\r\n if (swiper.params.preventClicks) e.preventDefault();\r\n if (swiper.params.preventClicksPropagation && swiper.animating) {\r\n e.stopPropagation();\r\n e.stopImmediatePropagation();\r\n }\r\n }\r\n}\r\n","export default function onScroll() {\r\n const swiper = this;\r\n const { wrapperEl, rtlTranslate, enabled } = swiper;\r\n if (!enabled) return;\r\n swiper.previousTranslate = swiper.translate;\r\n if (swiper.isHorizontal()) {\r\n swiper.translate = -wrapperEl.scrollLeft;\r\n } else {\r\n swiper.translate = -wrapperEl.scrollTop;\r\n }\r\n // eslint-disable-next-line\r\n if (swiper.translate === 0) swiper.translate = 0;\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n let newProgress;\r\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\r\n if (translatesDiff === 0) {\r\n newProgress = 0;\r\n } else {\r\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\r\n }\r\n if (newProgress !== swiper.progress) {\r\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\r\n }\r\n\r\n swiper.emit('setTranslate', swiper.translate, false);\r\n}\r\n","import { getDocument } from 'ssr-window';\r\n\r\nimport onTouchStart from './onTouchStart.js';\r\nimport onTouchMove from './onTouchMove.js';\r\nimport onTouchEnd from './onTouchEnd.js';\r\nimport onResize from './onResize.js';\r\nimport onClick from './onClick.js';\r\nimport onScroll from './onScroll.js';\r\n\r\nlet dummyEventAttached = false;\r\nfunction dummyEventListener() {}\r\n\r\nconst events = (swiper, method) => {\r\n const document = getDocument();\r\n const { params, touchEvents, el, wrapperEl, device, support } = swiper;\r\n const capture = !!params.nested;\r\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\r\n const swiperMethod = method;\r\n\r\n // Touch Events\r\n if (!support.touch) {\r\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\r\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\r\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\r\n } else {\r\n const passiveListener =\r\n touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\r\n el[domMethod](\r\n touchEvents.move,\r\n swiper.onTouchMove,\r\n support.passiveListener ? { passive: false, capture } : capture,\r\n );\r\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\r\n if (touchEvents.cancel) {\r\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\r\n }\r\n }\r\n // Prevent Links Clicks\r\n if (params.preventClicks || params.preventClicksPropagation) {\r\n el[domMethod]('click', swiper.onClick, true);\r\n }\r\n if (params.cssMode) {\r\n wrapperEl[domMethod]('scroll', swiper.onScroll);\r\n }\r\n\r\n // Resize handler\r\n if (params.updateOnWindowResize) {\r\n swiper[swiperMethod](\r\n device.ios || device.android\r\n ? 'resize orientationchange observerUpdate'\r\n : 'resize observerUpdate',\r\n onResize,\r\n true,\r\n );\r\n } else {\r\n swiper[swiperMethod]('observerUpdate', onResize, true);\r\n }\r\n};\r\n\r\nfunction attachEvents() {\r\n const swiper = this;\r\n const document = getDocument();\r\n const { params, support } = swiper;\r\n\r\n swiper.onTouchStart = onTouchStart.bind(swiper);\r\n swiper.onTouchMove = onTouchMove.bind(swiper);\r\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\r\n\r\n if (params.cssMode) {\r\n swiper.onScroll = onScroll.bind(swiper);\r\n }\r\n\r\n swiper.onClick = onClick.bind(swiper);\r\n\r\n if (support.touch && !dummyEventAttached) {\r\n document.addEventListener('touchstart', dummyEventListener);\r\n dummyEventAttached = true;\r\n }\r\n\r\n events(swiper, 'on');\r\n}\r\n\r\nfunction detachEvents() {\r\n const swiper = this;\r\n events(swiper, 'off');\r\n}\r\n\r\nexport default {\r\n attachEvents,\r\n detachEvents,\r\n};\r\n","import { extend } from '../../shared/utils.js';\r\n\r\nconst isGridEnabled = (swiper, params) => {\r\n return swiper.grid && params.grid && params.grid.rows > 1;\r\n};\r\n\r\nexport default function setBreakpoint() {\r\n const swiper = this;\r\n const { activeIndex, initialized, loopedSlides = 0, params, $el } = swiper;\r\n const breakpoints = params.breakpoints;\r\n if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) return;\r\n\r\n // Get breakpoint for window width and update parameters\r\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\r\n\r\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\r\n\r\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\r\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\r\n const wasMultiRow = isGridEnabled(swiper, params);\r\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\r\n\r\n const wasEnabled = params.enabled;\r\n\r\n if (wasMultiRow && !isMultiRow) {\r\n $el.removeClass(\r\n `${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`,\r\n );\r\n swiper.emitContainerClasses();\r\n } else if (!wasMultiRow && isMultiRow) {\r\n $el.addClass(`${params.containerModifierClass}grid`);\r\n if (\r\n (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column') ||\r\n (!breakpointParams.grid.fill && params.grid.fill === 'column')\r\n ) {\r\n $el.addClass(`${params.containerModifierClass}grid-column`);\r\n }\r\n swiper.emitContainerClasses();\r\n }\r\n\r\n // Toggle navigation, pagination, scrollbar\r\n ['navigation', 'pagination', 'scrollbar'].forEach((prop) => {\r\n const wasModuleEnabled = params[prop] && params[prop].enabled;\r\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\r\n if (wasModuleEnabled && !isModuleEnabled) {\r\n swiper[prop].disable();\r\n }\r\n if (!wasModuleEnabled && isModuleEnabled) {\r\n swiper[prop].enable();\r\n }\r\n });\r\n\r\n const directionChanged =\r\n breakpointParams.direction && breakpointParams.direction !== params.direction;\r\n const needsReLoop =\r\n params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\r\n\r\n if (directionChanged && initialized) {\r\n swiper.changeDirection();\r\n }\r\n extend(swiper.params, breakpointParams);\r\n\r\n const isEnabled = swiper.params.enabled;\r\n\r\n Object.assign(swiper, {\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n });\r\n\r\n if (wasEnabled && !isEnabled) {\r\n swiper.disable();\r\n } else if (!wasEnabled && isEnabled) {\r\n swiper.enable();\r\n }\r\n\r\n swiper.currentBreakpoint = breakpoint;\r\n\r\n swiper.emit('_beforeBreakpoint', breakpointParams);\r\n\r\n if (needsReLoop && initialized) {\r\n swiper.loopDestroy();\r\n swiper.loopCreate();\r\n swiper.updateSlides();\r\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\r\n }\r\n\r\n swiper.emit('breakpoint', breakpointParams);\r\n}\r\n","import addClasses from './addClasses.js';\r\nimport removeClasses from './removeClasses.js';\r\n\r\nexport default { addClasses, removeClasses };\r\n","function prepareClasses(entries, prefix) {\r\n const resultClasses = [];\r\n entries.forEach((item) => {\r\n if (typeof item === 'object') {\r\n Object.keys(item).forEach((classNames) => {\r\n if (item[classNames]) {\r\n resultClasses.push(prefix + classNames);\r\n }\r\n });\r\n } else if (typeof item === 'string') {\r\n resultClasses.push(prefix + item);\r\n }\r\n });\r\n return resultClasses;\r\n}\r\n\r\nexport default function addClasses() {\r\n const swiper = this;\r\n const { classNames, params, rtl, $el, device, support } = swiper;\r\n // prettier-ignore\r\n const suffixes = prepareClasses([\r\n 'initialized',\r\n params.direction,\r\n { 'pointer-events': !support.touch },\r\n { 'free-mode': swiper.params.freeMode && params.freeMode.enabled },\r\n { 'autoheight': params.autoHeight },\r\n { 'rtl': rtl },\r\n { 'grid': params.grid && params.grid.rows > 1 },\r\n { 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column' },\r\n { 'android': device.android },\r\n { 'ios': device.ios },\r\n { 'css-mode': params.cssMode },\r\n { 'centered': params.cssMode && params.centeredSlides },\r\n { 'watch-progress': params.watchSlidesProgress },\r\n ], params.containerModifierClass);\r\n classNames.push(...suffixes);\r\n $el.addClass([...classNames].join(' '));\r\n swiper.emitContainerClasses();\r\n}\r\n","export default function removeClasses() {\r\n const swiper = this;\r\n const { $el, classNames } = swiper;\r\n\r\n $el.removeClass(classNames.join(' '));\r\n swiper.emitContainerClasses();\r\n}\r\n","function checkOverflow() {\r\n const swiper = this;\r\n const { isLocked: wasLocked, params } = swiper;\r\n const { slidesOffsetBefore } = params;\r\n\r\n if (slidesOffsetBefore) {\r\n const lastSlideIndex = swiper.slides.length - 1;\r\n const lastSlideRightEdge =\r\n swiper.slidesGrid[lastSlideIndex] +\r\n swiper.slidesSizesGrid[lastSlideIndex] +\r\n slidesOffsetBefore * 2;\r\n swiper.isLocked = swiper.size > lastSlideRightEdge;\r\n } else {\r\n swiper.isLocked = swiper.snapGrid.length === 1;\r\n }\r\n if (params.allowSlideNext === true) {\r\n swiper.allowSlideNext = !swiper.isLocked;\r\n }\r\n if (params.allowSlidePrev === true) {\r\n swiper.allowSlidePrev = !swiper.isLocked;\r\n }\r\n\r\n if (wasLocked && wasLocked !== swiper.isLocked) {\r\n swiper.isEnd = false;\r\n }\r\n if (wasLocked !== swiper.isLocked) {\r\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\r\n }\r\n}\r\n\r\nexport default { checkOverflow };\r\n","export default {\r\n init: true,\r\n direction: 'horizontal',\r\n touchEventsTarget: 'wrapper',\r\n initialSlide: 0,\r\n speed: 300,\r\n cssMode: false,\r\n updateOnWindowResize: true,\r\n resizeObserver: true,\r\n nested: false,\r\n createElements: false,\r\n enabled: true,\r\n focusableElements: 'input, select, option, textarea, button, video, label',\r\n\r\n // Overrides\r\n width: null,\r\n height: null,\r\n\r\n //\r\n preventInteractionOnTransition: false,\r\n\r\n // ssr\r\n userAgent: null,\r\n url: null,\r\n\r\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\r\n edgeSwipeDetection: false,\r\n edgeSwipeThreshold: 20,\r\n\r\n // Autoheight\r\n autoHeight: false,\r\n\r\n // Set wrapper width\r\n setWrapperSize: false,\r\n\r\n // Virtual Translate\r\n virtualTranslate: false,\r\n\r\n // Effects\r\n effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\r\n\r\n // Breakpoints\r\n breakpoints: undefined,\r\n breakpointsBase: 'window',\r\n\r\n // Slides grid\r\n spaceBetween: 0,\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n slidesPerGroupSkip: 0,\r\n slidesPerGroupAuto: false,\r\n centeredSlides: false,\r\n centeredSlidesBounds: false,\r\n slidesOffsetBefore: 0, // in px\r\n slidesOffsetAfter: 0, // in px\r\n normalizeSlideIndex: true,\r\n centerInsufficientSlides: false,\r\n\r\n // Disable swiper and hide navigation when container not overflow\r\n watchOverflow: true,\r\n\r\n // Round length\r\n roundLengths: false,\r\n\r\n // Touches\r\n touchRatio: 1,\r\n touchAngle: 45,\r\n simulateTouch: true,\r\n shortSwipes: true,\r\n longSwipes: true,\r\n longSwipesRatio: 0.5,\r\n longSwipesMs: 300,\r\n followFinger: true,\r\n allowTouchMove: true,\r\n threshold: 0,\r\n touchMoveStopPropagation: false,\r\n touchStartPreventDefault: true,\r\n touchStartForcePreventDefault: false,\r\n touchReleaseOnEdges: false,\r\n\r\n // Unique Navigation Elements\r\n uniqueNavElements: true,\r\n\r\n // Resistance\r\n resistance: true,\r\n resistanceRatio: 0.85,\r\n\r\n // Progress\r\n watchSlidesProgress: false,\r\n\r\n // Cursor\r\n grabCursor: false,\r\n\r\n // Clicks\r\n preventClicks: true,\r\n preventClicksPropagation: true,\r\n slideToClickedSlide: false,\r\n\r\n // Images\r\n preloadImages: true,\r\n updateOnImagesReady: true,\r\n\r\n // loop\r\n loop: false,\r\n loopAdditionalSlides: 0,\r\n loopedSlides: null,\r\n loopFillGroupWithBlank: false,\r\n loopPreventsSlide: true,\r\n\r\n // rewind\r\n rewind: false,\r\n\r\n // Swiping/no swiping\r\n allowSlidePrev: true,\r\n allowSlideNext: true,\r\n swipeHandler: null, // '.swipe-handler',\r\n noSwiping: true,\r\n noSwipingClass: 'swiper-no-swiping',\r\n noSwipingSelector: null,\r\n\r\n // Passive Listeners\r\n passiveListeners: true,\r\n\r\n maxBackfaceHiddenSlides: 10,\r\n\r\n // NS\r\n containerModifierClass: 'swiper-', // NEW\r\n slideClass: 'swiper-slide',\r\n slideBlankClass: 'swiper-slide-invisible-blank',\r\n slideActiveClass: 'swiper-slide-active',\r\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\r\n slideVisibleClass: 'swiper-slide-visible',\r\n slideDuplicateClass: 'swiper-slide-duplicate',\r\n slideNextClass: 'swiper-slide-next',\r\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\r\n slidePrevClass: 'swiper-slide-prev',\r\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\r\n wrapperClass: 'swiper-wrapper',\r\n\r\n // Callbacks\r\n runCallbacksOnInit: true,\r\n\r\n // Internals\r\n _emitClasses: false,\r\n};\r\n","import { extend } from '../shared/utils.js';\r\n\r\nexport default function moduleExtendParams(params, allModulesParams) {\r\n return function extendParams(obj = {}) {\r\n const moduleParamName = Object.keys(obj)[0];\r\n const moduleParams = obj[moduleParamName];\r\n if (typeof moduleParams !== 'object' || moduleParams === null) {\r\n extend(allModulesParams, obj);\r\n return;\r\n }\r\n if (\r\n ['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 &&\r\n params[moduleParamName] === true\r\n ) {\r\n params[moduleParamName] = { auto: true };\r\n }\r\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\r\n extend(allModulesParams, obj);\r\n return;\r\n }\r\n if (params[moduleParamName] === true) {\r\n params[moduleParamName] = { enabled: true };\r\n }\r\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\r\n params[moduleParamName].enabled = true;\r\n }\r\n if (!params[moduleParamName]) params[moduleParamName] = { enabled: false };\r\n extend(allModulesParams, obj);\r\n };\r\n}\r\n","/* eslint no-param-reassign: \"off\" */\r\nimport { getDocument } from 'ssr-window';\r\nimport $ from '../shared/dom.js';\r\nimport { extend, now, deleteProps } from '../shared/utils.js';\r\nimport { getSupport } from '../shared/get-support.js';\r\nimport { getDevice } from '../shared/get-device.js';\r\nimport { getBrowser } from '../shared/get-browser.js';\r\n\r\nimport Resize from './modules/resize/resize.js';\r\nimport Observer from './modules/observer/observer.js';\r\n\r\nimport eventsEmitter from './events-emitter.js';\r\n\r\nimport update from './update/index.js';\r\nimport translate from './translate/index.js';\r\nimport transition from './transition/index.js';\r\nimport slide from './slide/index.js';\r\nimport loop from './loop/index.js';\r\nimport grabCursor from './grab-cursor/index.js';\r\nimport events from './events/index.js';\r\nimport breakpoints from './breakpoints/index.js';\r\nimport classes from './classes/index.js';\r\nimport images from './images/index.js';\r\nimport checkOverflow from './check-overflow/index.js';\r\n\r\nimport defaults from './defaults.js';\r\nimport moduleExtendParams from './moduleExtendParams.js';\r\n\r\nconst prototypes = {\r\n eventsEmitter,\r\n update,\r\n translate,\r\n transition,\r\n slide,\r\n loop,\r\n grabCursor,\r\n events,\r\n breakpoints,\r\n checkOverflow,\r\n classes,\r\n images,\r\n};\r\n\r\nconst extendedDefaults = {};\r\n\r\nclass Swiper {\r\n constructor(...args) {\r\n let el;\r\n let params;\r\n if (\r\n args.length === 1 &&\r\n args[0].constructor &&\r\n Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object'\r\n ) {\r\n params = args[0];\r\n } else {\r\n [el, params] = args;\r\n }\r\n if (!params) params = {};\r\n\r\n params = extend({}, params);\r\n if (el && !params.el) params.el = el;\r\n\r\n if (params.el && $(params.el).length > 1) {\r\n const swipers = [];\r\n $(params.el).each((containerEl) => {\r\n const newParams = extend({}, params, { el: containerEl });\r\n swipers.push(new Swiper(newParams));\r\n });\r\n return swipers;\r\n }\r\n\r\n // Swiper Instance\r\n const swiper = this;\r\n swiper.__swiper__ = true;\r\n swiper.support = getSupport();\r\n swiper.device = getDevice({ userAgent: params.userAgent });\r\n swiper.browser = getBrowser();\r\n\r\n swiper.eventsListeners = {};\r\n swiper.eventsAnyListeners = [];\r\n swiper.modules = [...swiper.__modules__];\r\n if (params.modules && Array.isArray(params.modules)) {\r\n swiper.modules.push(...params.modules);\r\n }\r\n\r\n const allModulesParams = {};\r\n\r\n swiper.modules.forEach((mod) => {\r\n mod({\r\n swiper,\r\n extendParams: moduleExtendParams(params, allModulesParams),\r\n on: swiper.on.bind(swiper),\r\n once: swiper.once.bind(swiper),\r\n off: swiper.off.bind(swiper),\r\n emit: swiper.emit.bind(swiper),\r\n });\r\n });\r\n\r\n // Extend defaults with modules params\r\n const swiperParams = extend({}, defaults, allModulesParams);\r\n\r\n // Extend defaults with passed params\r\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\r\n swiper.originalParams = extend({}, swiper.params);\r\n swiper.passedParams = extend({}, params);\r\n\r\n // add event listeners\r\n if (swiper.params && swiper.params.on) {\r\n Object.keys(swiper.params.on).forEach((eventName) => {\r\n swiper.on(eventName, swiper.params.on[eventName]);\r\n });\r\n }\r\n if (swiper.params && swiper.params.onAny) {\r\n swiper.onAny(swiper.params.onAny);\r\n }\r\n\r\n // Save Dom lib\r\n swiper.$ = $;\r\n\r\n // Extend Swiper\r\n Object.assign(swiper, {\r\n enabled: swiper.params.enabled,\r\n el,\r\n\r\n // Classes\r\n classNames: [],\r\n\r\n // Slides\r\n slides: $(),\r\n slidesGrid: [],\r\n snapGrid: [],\r\n slidesSizesGrid: [],\r\n\r\n // isDirection\r\n isHorizontal() {\r\n return swiper.params.direction === 'horizontal';\r\n },\r\n isVertical() {\r\n return swiper.params.direction === 'vertical';\r\n },\r\n\r\n // Indexes\r\n activeIndex: 0,\r\n realIndex: 0,\r\n\r\n //\r\n isBeginning: true,\r\n isEnd: false,\r\n\r\n // Props\r\n translate: 0,\r\n previousTranslate: 0,\r\n progress: 0,\r\n velocity: 0,\r\n animating: false,\r\n\r\n // Locks\r\n allowSlideNext: swiper.params.allowSlideNext,\r\n allowSlidePrev: swiper.params.allowSlidePrev,\r\n\r\n // Touch Events\r\n touchEvents: (function touchEvents() {\r\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\r\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\r\n\r\n swiper.touchEventsTouch = {\r\n start: touch[0],\r\n move: touch[1],\r\n end: touch[2],\r\n cancel: touch[3],\r\n };\r\n swiper.touchEventsDesktop = {\r\n start: desktop[0],\r\n move: desktop[1],\r\n end: desktop[2],\r\n };\r\n return swiper.support.touch || !swiper.params.simulateTouch\r\n ? swiper.touchEventsTouch\r\n : swiper.touchEventsDesktop;\r\n })(),\r\n touchEventsData: {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n allowTouchCallbacks: undefined,\r\n touchStartTime: undefined,\r\n isScrolling: undefined,\r\n currentTranslate: undefined,\r\n startTranslate: undefined,\r\n allowThresholdMove: undefined,\r\n // Form elements to match\r\n focusableElements: swiper.params.focusableElements,\r\n // Last click time\r\n lastClickTime: now(),\r\n clickTimeout: undefined,\r\n // Velocities\r\n velocities: [],\r\n allowMomentumBounce: undefined,\r\n isTouchEvent: undefined,\r\n startMoving: undefined,\r\n },\r\n\r\n // Clicks\r\n allowClick: true,\r\n\r\n // Touches\r\n allowTouchMove: swiper.params.allowTouchMove,\r\n\r\n touches: {\r\n startX: 0,\r\n startY: 0,\r\n currentX: 0,\r\n currentY: 0,\r\n diff: 0,\r\n },\r\n\r\n // Images\r\n imagesToLoad: [],\r\n imagesLoaded: 0,\r\n });\r\n\r\n swiper.emit('_swiper');\r\n\r\n // Init\r\n if (swiper.params.init) {\r\n swiper.init();\r\n }\r\n\r\n // Return app instance\r\n return swiper;\r\n }\r\n\r\n enable() {\r\n const swiper = this;\r\n if (swiper.enabled) return;\r\n swiper.enabled = true;\r\n if (swiper.params.grabCursor) {\r\n swiper.setGrabCursor();\r\n }\r\n swiper.emit('enable');\r\n }\r\n\r\n disable() {\r\n const swiper = this;\r\n if (!swiper.enabled) return;\r\n swiper.enabled = false;\r\n if (swiper.params.grabCursor) {\r\n swiper.unsetGrabCursor();\r\n }\r\n swiper.emit('disable');\r\n }\r\n\r\n setProgress(progress, speed) {\r\n const swiper = this;\r\n progress = Math.min(Math.max(progress, 0), 1);\r\n const min = swiper.minTranslate();\r\n const max = swiper.maxTranslate();\r\n const current = (max - min) * progress + min;\r\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n emitContainerClasses() {\r\n const swiper = this;\r\n if (!swiper.params._emitClasses || !swiper.el) return;\r\n const cls = swiper.el.className.split(' ').filter((className) => {\r\n return (\r\n className.indexOf('swiper') === 0 ||\r\n className.indexOf(swiper.params.containerModifierClass) === 0\r\n );\r\n });\r\n swiper.emit('_containerClasses', cls.join(' '));\r\n }\r\n\r\n getSlideClasses(slideEl) {\r\n const swiper = this;\r\n if (swiper.destroyed) return '';\r\n\r\n return slideEl.className\r\n .split(' ')\r\n .filter((className) => {\r\n return (\r\n className.indexOf('swiper-slide') === 0 ||\r\n className.indexOf(swiper.params.slideClass) === 0\r\n );\r\n })\r\n .join(' ');\r\n }\r\n\r\n emitSlidesClasses() {\r\n const swiper = this;\r\n if (!swiper.params._emitClasses || !swiper.el) return;\r\n const updates = [];\r\n swiper.slides.each((slideEl) => {\r\n const classNames = swiper.getSlideClasses(slideEl);\r\n updates.push({ slideEl, classNames });\r\n swiper.emit('_slideClass', slideEl, classNames);\r\n });\r\n swiper.emit('_slideClasses', updates);\r\n }\r\n\r\n slidesPerViewDynamic(view = 'current', exact = false) {\r\n const swiper = this;\r\n const { params, slides, slidesGrid, slidesSizesGrid, size: swiperSize, activeIndex } = swiper;\r\n let spv = 1;\r\n if (params.centeredSlides) {\r\n let slideSize = slides[activeIndex].swiperSlideSize;\r\n let breakLoop;\r\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\r\n if (slides[i] && !breakLoop) {\r\n slideSize += slides[i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) breakLoop = true;\r\n }\r\n }\r\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\r\n if (slides[i] && !breakLoop) {\r\n slideSize += slides[i].swiperSlideSize;\r\n spv += 1;\r\n if (slideSize > swiperSize) breakLoop = true;\r\n }\r\n }\r\n } else {\r\n // eslint-disable-next-line\r\n if (view === 'current') {\r\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\r\n const slideInView = exact\r\n ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize\r\n : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\r\n if (slideInView) {\r\n spv += 1;\r\n }\r\n }\r\n } else {\r\n // previous\r\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\r\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\r\n if (slideInView) {\r\n spv += 1;\r\n }\r\n }\r\n }\r\n }\r\n return spv;\r\n }\r\n\r\n update() {\r\n const swiper = this;\r\n if (!swiper || swiper.destroyed) return;\r\n const { snapGrid, params } = swiper;\r\n // Breakpoints\r\n if (params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n swiper.updateSize();\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n\r\n function setTranslate() {\r\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\r\n const newTranslate = Math.min(\r\n Math.max(translateValue, swiper.maxTranslate()),\r\n swiper.minTranslate(),\r\n );\r\n swiper.setTranslate(newTranslate);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n let translated;\r\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\r\n setTranslate();\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n } else {\r\n if (\r\n (swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) &&\r\n swiper.isEnd &&\r\n !swiper.params.centeredSlides\r\n ) {\r\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\r\n } else {\r\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\r\n }\r\n if (!translated) {\r\n setTranslate();\r\n }\r\n }\r\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\r\n swiper.checkOverflow();\r\n }\r\n swiper.emit('update');\r\n }\r\n\r\n changeDirection(newDirection, needUpdate = true) {\r\n const swiper = this;\r\n const currentDirection = swiper.params.direction;\r\n if (!newDirection) {\r\n // eslint-disable-next-line\r\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\r\n }\r\n if (\r\n newDirection === currentDirection ||\r\n (newDirection !== 'horizontal' && newDirection !== 'vertical')\r\n ) {\r\n return swiper;\r\n }\r\n\r\n swiper.$el\r\n .removeClass(`${swiper.params.containerModifierClass}${currentDirection}`)\r\n .addClass(`${swiper.params.containerModifierClass}${newDirection}`);\r\n swiper.emitContainerClasses();\r\n\r\n swiper.params.direction = newDirection;\r\n\r\n swiper.slides.each((slideEl) => {\r\n if (newDirection === 'vertical') {\r\n slideEl.style.width = '';\r\n } else {\r\n slideEl.style.height = '';\r\n }\r\n });\r\n\r\n swiper.emit('changeDirection');\r\n if (needUpdate) swiper.update();\r\n\r\n return swiper;\r\n }\r\n\r\n changeLanguageDirection(direction) {\r\n const swiper = this;\r\n if ((swiper.rtl && direction === 'rtl') || (!swiper.rtl && direction === 'ltr')) return;\r\n swiper.rtl = direction === 'rtl';\r\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\r\n if (swiper.rtl) {\r\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\r\n swiper.el.dir = 'rtl';\r\n } else {\r\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\r\n swiper.el.dir = 'ltr';\r\n }\r\n swiper.update();\r\n }\r\n\r\n mount(el) {\r\n const swiper = this;\r\n if (swiper.mounted) return true;\r\n\r\n // Find el\r\n const $el = $(el || swiper.params.el);\r\n el = $el[0];\r\n\r\n if (!el) {\r\n return false;\r\n }\r\n\r\n el.swiper = swiper;\r\n\r\n const getWrapperSelector = () => {\r\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\r\n };\r\n\r\n const getWrapper = () => {\r\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\r\n const res = $(el.shadowRoot.querySelector(getWrapperSelector()));\r\n // Children needs to return slot items\r\n res.children = (options) => $el.children(options);\r\n return res;\r\n }\r\n if (!$el.children) {\r\n return $($el).children(getWrapperSelector());\r\n }\r\n return $el.children(getWrapperSelector());\r\n };\r\n // Find Wrapper\r\n let $wrapperEl = getWrapper();\r\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\r\n const document = getDocument();\r\n const wrapper = document.createElement('div');\r\n $wrapperEl = $(wrapper);\r\n wrapper.className = swiper.params.wrapperClass;\r\n $el.append(wrapper);\r\n $el.children(`.${swiper.params.slideClass}`).each((slideEl) => {\r\n $wrapperEl.append(slideEl);\r\n });\r\n }\r\n\r\n Object.assign(swiper, {\r\n $el,\r\n el,\r\n $wrapperEl,\r\n wrapperEl: $wrapperEl[0],\r\n mounted: true,\r\n\r\n // RTL\r\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\r\n rtlTranslate:\r\n swiper.params.direction === 'horizontal' &&\r\n (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\r\n wrongRTL: $wrapperEl.css('display') === '-webkit-box',\r\n });\r\n\r\n return true;\r\n }\r\n\r\n init(el) {\r\n const swiper = this;\r\n if (swiper.initialized) return swiper;\r\n\r\n const mounted = swiper.mount(el);\r\n if (mounted === false) return swiper;\r\n\r\n swiper.emit('beforeInit');\r\n\r\n // Set breakpoint\r\n if (swiper.params.breakpoints) {\r\n swiper.setBreakpoint();\r\n }\r\n\r\n // Add Classes\r\n swiper.addClasses();\r\n\r\n // Create loop\r\n if (swiper.params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n // Update size\r\n swiper.updateSize();\r\n\r\n // Update slides\r\n swiper.updateSlides();\r\n\r\n if (swiper.params.watchOverflow) {\r\n swiper.checkOverflow();\r\n }\r\n\r\n // Set Grab Cursor\r\n if (swiper.params.grabCursor && swiper.enabled) {\r\n swiper.setGrabCursor();\r\n }\r\n\r\n if (swiper.params.preloadImages) {\r\n swiper.preloadImages();\r\n }\r\n\r\n // Slide To Initial Slide\r\n if (swiper.params.loop) {\r\n swiper.slideTo(\r\n swiper.params.initialSlide + swiper.loopedSlides,\r\n 0,\r\n swiper.params.runCallbacksOnInit,\r\n false,\r\n true,\r\n );\r\n } else {\r\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\r\n }\r\n\r\n // Attach events\r\n swiper.attachEvents();\r\n\r\n // Init Flag\r\n swiper.initialized = true;\r\n\r\n // Emit\r\n swiper.emit('init');\r\n swiper.emit('afterInit');\r\n\r\n return swiper;\r\n }\r\n\r\n destroy(deleteInstance = true, cleanStyles = true) {\r\n const swiper = this;\r\n const { params, $el, $wrapperEl, slides } = swiper;\r\n\r\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\r\n return null;\r\n }\r\n\r\n swiper.emit('beforeDestroy');\r\n\r\n // Init Flag\r\n swiper.initialized = false;\r\n\r\n // Detach events\r\n swiper.detachEvents();\r\n\r\n // Destroy loop\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n\r\n // Cleanup styles\r\n if (cleanStyles) {\r\n swiper.removeClasses();\r\n $el.removeAttr('style');\r\n $wrapperEl.removeAttr('style');\r\n if (slides && slides.length) {\r\n slides\r\n .removeClass(\r\n [\r\n params.slideVisibleClass,\r\n params.slideActiveClass,\r\n params.slideNextClass,\r\n params.slidePrevClass,\r\n ].join(' '),\r\n )\r\n .removeAttr('style')\r\n .removeAttr('data-swiper-slide-index');\r\n }\r\n }\r\n\r\n swiper.emit('destroy');\r\n\r\n // Detach emitter events\r\n Object.keys(swiper.eventsListeners).forEach((eventName) => {\r\n swiper.off(eventName);\r\n });\r\n\r\n if (deleteInstance !== false) {\r\n swiper.$el[0].swiper = null;\r\n deleteProps(swiper);\r\n }\r\n swiper.destroyed = true;\r\n\r\n return null;\r\n }\r\n\r\n static extendDefaults(newDefaults) {\r\n extend(extendedDefaults, newDefaults);\r\n }\r\n\r\n static get extendedDefaults() {\r\n return extendedDefaults;\r\n }\r\n\r\n static get defaults() {\r\n return defaults;\r\n }\r\n\r\n static installModule(mod) {\r\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\r\n const modules = Swiper.prototype.__modules__;\r\n\r\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\r\n modules.push(mod);\r\n }\r\n }\r\n\r\n static use(module) {\r\n if (Array.isArray(module)) {\r\n module.forEach((m) => Swiper.installModule(m));\r\n return Swiper;\r\n }\r\n Swiper.installModule(module);\r\n return Swiper;\r\n }\r\n}\r\n\r\nObject.keys(prototypes).forEach((prototypeGroup) => {\r\n Object.keys(prototypes[prototypeGroup]).forEach((protoMethod) => {\r\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\r\n });\r\n});\r\n\r\nSwiper.use([Resize, Observer]);\r\n\r\nexport default Swiper;\r\n","import setTransition from './setTransition.js';\r\nimport transitionStart from './transitionStart.js';\r\nimport transitionEnd from './transitionEnd.js';\r\n\r\nexport default {\r\n setTransition,\r\n transitionStart,\r\n transitionEnd,\r\n};\r\n","export default function setTransition(duration, byController) {\r\n const swiper = this;\r\n\r\n if (!swiper.params.cssMode) {\r\n swiper.$wrapperEl.transition(duration);\r\n }\r\n\r\n swiper.emit('setTransition', duration, byController);\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionStart(runCallbacks = true, direction) {\r\n const swiper = this;\r\n const { params } = swiper;\r\n if (params.cssMode) return;\r\n if (params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n\r\n transitionEmit({ swiper, runCallbacks, direction, step: 'Start' });\r\n}\r\n","import transitionEmit from './transitionEmit.js';\r\n\r\nexport default function transitionEnd(runCallbacks = true, direction) {\r\n const swiper = this;\r\n const { params } = swiper;\r\n swiper.animating = false;\r\n if (params.cssMode) return;\r\n swiper.setTransition(0);\r\n\r\n transitionEmit({ swiper, runCallbacks, direction, step: 'End' });\r\n}\r\n","import setGrabCursor from './setGrabCursor.js';\r\nimport unsetGrabCursor from './unsetGrabCursor.js';\r\n\r\nexport default {\r\n setGrabCursor,\r\n unsetGrabCursor,\r\n};\r\n","export default function setGrabCursor(moving) {\r\n const swiper = this;\r\n if (\r\n swiper.support.touch ||\r\n !swiper.params.simulateTouch ||\r\n (swiper.params.watchOverflow && swiper.isLocked) ||\r\n swiper.params.cssMode\r\n )\r\n return;\r\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\r\n el.style.cursor = 'move';\r\n el.style.cursor = moving ? 'grabbing' : 'grab';\r\n}\r\n","export default function unsetGrabCursor() {\r\n const swiper = this;\r\n if (\r\n swiper.support.touch ||\r\n (swiper.params.watchOverflow && swiper.isLocked) ||\r\n swiper.params.cssMode\r\n ) {\r\n return;\r\n }\r\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\r\n}\r\n","import setBreakpoint from './setBreakpoint.js';\r\nimport getBreakpoint from './getBreakpoint.js';\r\n\r\nexport default { setBreakpoint, getBreakpoint };\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\r\n if (!breakpoints || (base === 'container' && !containerEl)) return undefined;\r\n let breakpoint = false;\r\n\r\n const window = getWindow();\r\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\r\n\r\n const points = Object.keys(breakpoints).map((point) => {\r\n if (typeof point === 'string' && point.indexOf('@') === 0) {\r\n const minRatio = parseFloat(point.substr(1));\r\n const value = currentHeight * minRatio;\r\n return { value, point };\r\n }\r\n return { value: point, point };\r\n });\r\n\r\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\r\n for (let i = 0; i < points.length; i += 1) {\r\n const { point, value } = points[i];\r\n if (base === 'window') {\r\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\r\n breakpoint = point;\r\n }\r\n } else if (value <= containerEl.clientWidth) {\r\n breakpoint = point;\r\n }\r\n }\r\n return breakpoint || 'max';\r\n}\r\n","import loadImage from './loadImage.js';\r\nimport preloadImages from './preloadImages.js';\r\n\r\nexport default {\r\n loadImage,\r\n preloadImages,\r\n};\r\n","import { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\r\n const window = getWindow();\r\n let image;\r\n function onReady() {\r\n if (callback) callback();\r\n }\r\n const isPicture = $(imageEl).parent('picture')[0];\r\n\r\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\r\n if (src) {\r\n image = new window.Image();\r\n image.onload = onReady;\r\n image.onerror = onReady;\r\n if (sizes) {\r\n image.sizes = sizes;\r\n }\r\n if (srcset) {\r\n image.srcset = srcset;\r\n }\r\n if (src) {\r\n image.src = src;\r\n }\r\n } else {\r\n onReady();\r\n }\r\n } else {\r\n // image already loaded...\r\n onReady();\r\n }\r\n}\r\n","export default function preloadImages() {\r\n const swiper = this;\r\n swiper.imagesToLoad = swiper.$el.find('img');\r\n function onReady() {\r\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\r\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\r\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\r\n if (swiper.params.updateOnImagesReady) swiper.update();\r\n swiper.emit('imagesReady');\r\n }\r\n }\r\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\r\n const imageEl = swiper.imagesToLoad[i];\r\n swiper.loadImage(\r\n imageEl,\r\n imageEl.currentSrc || imageEl.getAttribute('src'),\r\n imageEl.srcset || imageEl.getAttribute('srcset'),\r\n imageEl.sizes || imageEl.getAttribute('sizes'),\r\n true,\r\n onReady,\r\n );\r\n }\r\n}\r\n","import { getDocument } from 'ssr-window';\r\n\r\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\r\n const document = getDocument();\r\n if (swiper.params.createElements) {\r\n Object.keys(checkProps).forEach((key) => {\r\n if (!params[key] && params.auto === true) {\r\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\r\n if (!element) {\r\n element = document.createElement('div');\r\n element.className = checkProps[key];\r\n swiper.$el.append(element);\r\n }\r\n params[key] = element;\r\n originalParams[key] = element;\r\n }\r\n });\r\n }\r\n return params;\r\n}\r\n","export default function classesToSelector(classes = '') {\r\n return `.${classes\r\n .trim()\r\n .replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\r\n .replace(/ /g, '.')}`;\r\n}\r\n","export default function appendSlide(slides) {\r\n const swiper = this;\r\n const { $wrapperEl, params } = swiper;\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.append(slides[i]);\r\n }\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n}\r\n","export default function prependSlide(slides) {\r\n const swiper = this;\r\n const { params, $wrapperEl, activeIndex } = swiper;\r\n\r\n if (params.loop) {\r\n swiper.loopDestroy();\r\n }\r\n let newActiveIndex = activeIndex + 1;\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.prepend(slides[i]);\r\n }\r\n newActiveIndex = activeIndex + slides.length;\r\n } else {\r\n $wrapperEl.prepend(slides);\r\n }\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n}\r\n","export default function addSlide(index, slides) {\r\n const swiper = this;\r\n const { $wrapperEl, params, activeIndex } = swiper;\r\n let activeIndexBuffer = activeIndex;\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\r\n }\r\n const baseLength = swiper.slides.length;\r\n if (index <= 0) {\r\n swiper.prependSlide(slides);\r\n return;\r\n }\r\n if (index >= baseLength) {\r\n swiper.appendSlide(slides);\r\n return;\r\n }\r\n let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\r\n\r\n const slidesBuffer = [];\r\n for (let i = baseLength - 1; i >= index; i -= 1) {\r\n const currentSlide = swiper.slides.eq(i);\r\n currentSlide.remove();\r\n slidesBuffer.unshift(currentSlide);\r\n }\r\n\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) $wrapperEl.append(slides[i]);\r\n }\r\n newActiveIndex =\r\n activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\r\n } else {\r\n $wrapperEl.append(slides);\r\n }\r\n\r\n for (let i = 0; i < slidesBuffer.length; i += 1) {\r\n $wrapperEl.append(slidesBuffer[i]);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n}\r\n","export default function removeSlide(slidesIndexes) {\r\n const swiper = this;\r\n const { params, $wrapperEl, activeIndex } = swiper;\r\n\r\n let activeIndexBuffer = activeIndex;\r\n if (params.loop) {\r\n activeIndexBuffer -= swiper.loopedSlides;\r\n swiper.loopDestroy();\r\n swiper.slides = $wrapperEl.children(`.${params.slideClass}`);\r\n }\r\n let newActiveIndex = activeIndexBuffer;\r\n let indexToRemove;\r\n\r\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\r\n for (let i = 0; i < slidesIndexes.length; i += 1) {\r\n indexToRemove = slidesIndexes[i];\r\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n }\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n } else {\r\n indexToRemove = slidesIndexes;\r\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\r\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\r\n newActiveIndex = Math.max(newActiveIndex, 0);\r\n }\r\n\r\n if (params.loop) {\r\n swiper.loopCreate();\r\n }\r\n\r\n if (!params.observer) {\r\n swiper.update();\r\n }\r\n if (params.loop) {\r\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\r\n } else {\r\n swiper.slideTo(newActiveIndex, 0, false);\r\n }\r\n}\r\n","export default function removeAllSlides() {\r\n const swiper = this;\r\n\r\n const slidesIndexes = [];\r\n for (let i = 0; i < swiper.slides.length; i += 1) {\r\n slidesIndexes.push(i);\r\n }\r\n swiper.removeSlide(slidesIndexes);\r\n}\r\n","export default function effectInit(params) {\r\n const {\r\n effect,\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n overwriteParams,\r\n perspective,\r\n recreateShadows,\r\n getEffectParams,\r\n } = params;\r\n\r\n on('beforeInit', () => {\r\n if (swiper.params.effect !== effect) return;\r\n swiper.classNames.push(`${swiper.params.containerModifierClass}${effect}`);\r\n if (perspective && perspective()) {\r\n swiper.classNames.push(`${swiper.params.containerModifierClass}3d`);\r\n }\r\n\r\n const overwriteParamsResult = overwriteParams ? overwriteParams() : {};\r\n\r\n Object.assign(swiper.params, overwriteParamsResult);\r\n Object.assign(swiper.originalParams, overwriteParamsResult);\r\n });\r\n on('setTranslate', () => {\r\n if (swiper.params.effect !== effect) return;\r\n setTranslate();\r\n });\r\n on('setTransition', (_s, duration) => {\r\n if (swiper.params.effect !== effect) return;\r\n setTransition(duration);\r\n });\r\n\r\n on('transitionEnd', () => {\r\n if (swiper.params.effect !== effect) return;\r\n if (recreateShadows) {\r\n if (!getEffectParams || !getEffectParams().slideShadows) return;\r\n // remove shadows\r\n swiper.slides.each((slideEl) => {\r\n const $slideEl = swiper.$(slideEl);\r\n $slideEl\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .remove();\r\n });\r\n // create new one\r\n recreateShadows();\r\n }\r\n });\r\n\r\n let requireUpdateOnVirtual;\r\n on('virtualUpdate', () => {\r\n if (swiper.params.effect !== effect) return;\r\n if (!swiper.slides.length) {\r\n requireUpdateOnVirtual = true;\r\n }\r\n requestAnimationFrame(() => {\r\n if (requireUpdateOnVirtual && swiper.slides && swiper.slides.length) {\r\n setTranslate();\r\n requireUpdateOnVirtual = false;\r\n }\r\n });\r\n });\r\n}\r\n","export default function effectTarget(effectParams, $slideEl) {\r\n if (effectParams.transformEl) {\r\n return $slideEl.find(effectParams.transformEl).css({\r\n 'backface-visibility': 'hidden',\r\n '-webkit-backface-visibility': 'hidden',\r\n });\r\n }\r\n return $slideEl;\r\n}\r\n","export default function effectVirtualTransitionEnd({ swiper, duration, transformEl, allSlides }) {\r\n const { slides, activeIndex, $wrapperEl } = swiper;\r\n if (swiper.params.virtualTranslate && duration !== 0) {\r\n let eventTriggered = false;\r\n let $transitionEndTarget;\r\n if (allSlides) {\r\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\r\n } else {\r\n $transitionEndTarget = transformEl\r\n ? slides.eq(activeIndex).find(transformEl)\r\n : slides.eq(activeIndex);\r\n }\r\n $transitionEndTarget.transitionEnd(() => {\r\n if (eventTriggered) return;\r\n if (!swiper || swiper.destroyed) return;\r\n eventTriggered = true;\r\n swiper.animating = false;\r\n const triggerEvents = ['webkitTransitionEnd', 'transitionend'];\r\n for (let i = 0; i < triggerEvents.length; i += 1) {\r\n $wrapperEl.trigger(triggerEvents[i]);\r\n }\r\n });\r\n }\r\n}\r\n","import $ from './dom.js';\r\n\r\nexport default function createShadow(params, $slideEl, side) {\r\n const shadowClass = `swiper-slide-shadow${side ? `-${side}` : ''}`;\r\n const $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\r\n let $shadowEl = $shadowContainer.children(`.${shadowClass}`);\r\n\r\n if (!$shadowEl.length) {\r\n $shadowEl = $(`
`);\r\n $shadowContainer.append($shadowEl);\r\n }\r\n return $shadowEl;\r\n}\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function Resize({ swiper, on, emit }) {\r\n const window = getWindow();\r\n let observer = null;\r\n let animationFrame = null;\r\n\r\n const resizeHandler = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n emit('beforeResize');\r\n emit('resize');\r\n };\r\n\r\n const createObserver = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n observer = new ResizeObserver((entries) => {\r\n animationFrame = window.requestAnimationFrame(() => {\r\n const { width, height } = swiper;\r\n let newWidth = width;\r\n let newHeight = height;\r\n entries.forEach(({ contentBoxSize, contentRect, target }) => {\r\n if (target && target !== swiper.el) return;\r\n newWidth = contentRect\r\n ? contentRect.width\r\n : (contentBoxSize[0] || contentBoxSize).inlineSize;\r\n newHeight = contentRect\r\n ? contentRect.height\r\n : (contentBoxSize[0] || contentBoxSize).blockSize;\r\n });\r\n if (newWidth !== width || newHeight !== height) {\r\n resizeHandler();\r\n }\r\n });\r\n });\r\n observer.observe(swiper.el);\r\n };\r\n\r\n const removeObserver = () => {\r\n if (animationFrame) {\r\n window.cancelAnimationFrame(animationFrame);\r\n }\r\n if (observer && observer.unobserve && swiper.el) {\r\n observer.unobserve(swiper.el);\r\n observer = null;\r\n }\r\n };\r\n\r\n const orientationChangeHandler = () => {\r\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\r\n emit('orientationchange');\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\r\n createObserver();\r\n return;\r\n }\r\n window.addEventListener('resize', resizeHandler);\r\n window.addEventListener('orientationchange', orientationChangeHandler);\r\n });\r\n\r\n on('destroy', () => {\r\n removeObserver();\r\n window.removeEventListener('resize', resizeHandler);\r\n window.removeEventListener('orientationchange', orientationChangeHandler);\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function Observer({ swiper, extendParams, on, emit }) {\r\n const observers = [];\r\n const window = getWindow();\r\n const attach = (target, options = {}) => {\r\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\r\n const observer = new ObserverFunc((mutations) => {\r\n // The observerUpdate event should only be triggered\r\n // once despite the number of mutations. Additional\r\n // triggers are redundant and are very costly\r\n if (mutations.length === 1) {\r\n emit('observerUpdate', mutations[0]);\r\n return;\r\n }\r\n const observerUpdate = function observerUpdate() {\r\n emit('observerUpdate', mutations[0]);\r\n };\r\n\r\n if (window.requestAnimationFrame) {\r\n window.requestAnimationFrame(observerUpdate);\r\n } else {\r\n window.setTimeout(observerUpdate, 0);\r\n }\r\n });\r\n\r\n observer.observe(target, {\r\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\r\n childList: typeof options.childList === 'undefined' ? true : options.childList,\r\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData,\r\n });\r\n\r\n observers.push(observer);\r\n };\r\n const init = () => {\r\n if (!swiper.params.observer) return;\r\n if (swiper.params.observeParents) {\r\n const containerParents = swiper.$el.parents();\r\n for (let i = 0; i < containerParents.length; i += 1) {\r\n attach(containerParents[i]);\r\n }\r\n }\r\n // Observe container\r\n attach(swiper.$el[0], {\r\n childList: swiper.params.observeSlideChildren,\r\n });\r\n\r\n // Observe wrapper\r\n attach(swiper.$wrapperEl[0], { attributes: false });\r\n };\r\n const destroy = () => {\r\n observers.forEach((observer) => {\r\n observer.disconnect();\r\n });\r\n observers.splice(0, observers.length);\r\n };\r\n\r\n extendParams({\r\n observer: false,\r\n observeParents: false,\r\n observeSlideChildren: false,\r\n });\r\n on('init', init);\r\n on('destroy', destroy);\r\n}\r\n","// Swiper Class\r\nimport Swiper from './core/core.js';\r\n\r\n//IMPORT_MODULES\r\n\r\nconst modules = [\r\n //INSTALL_MODULES\r\n];\r\n\r\nSwiper.use(modules);\r\n\r\n//EXPORT\r\n","import $ from '../../shared/dom.js';\r\nimport { setCSSProperty } from '../../shared/utils.js';\r\n\r\nexport default function Virtual({ swiper, extendParams, on, emit }) {\r\n extendParams({\r\n virtual: {\r\n enabled: false,\r\n slides: [],\r\n cache: true,\r\n renderSlide: null,\r\n renderExternal: null,\r\n renderExternalUpdate: true,\r\n addSlidesBefore: 0,\r\n addSlidesAfter: 0,\r\n },\r\n });\r\n\r\n let cssModeTimeout;\r\n\r\n swiper.virtual = {\r\n cache: {},\r\n from: undefined,\r\n to: undefined,\r\n slides: [],\r\n offset: 0,\r\n slidesGrid: [],\r\n };\r\n\r\n function renderSlide(slide, index) {\r\n const params = swiper.params.virtual;\r\n if (params.cache && swiper.virtual.cache[index]) {\r\n return swiper.virtual.cache[index];\r\n }\r\n const $slideEl = params.renderSlide\r\n ? $(params.renderSlide.call(swiper, slide, index))\r\n : $(\r\n `
${slide}
`,\r\n );\r\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\r\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\r\n return $slideEl;\r\n }\r\n\r\n function update(force) {\r\n const { slidesPerView, slidesPerGroup, centeredSlides } = swiper.params;\r\n const { addSlidesBefore, addSlidesAfter } = swiper.params.virtual;\r\n const {\r\n from: previousFrom,\r\n to: previousTo,\r\n slides,\r\n slidesGrid: previousSlidesGrid,\r\n offset: previousOffset,\r\n } = swiper.virtual;\r\n if (!swiper.params.cssMode) {\r\n swiper.updateActiveIndex();\r\n }\r\n\r\n const activeIndex = swiper.activeIndex || 0;\r\n\r\n let offsetProp;\r\n if (swiper.rtlTranslate) offsetProp = 'right';\r\n else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\r\n\r\n let slidesAfter;\r\n let slidesBefore;\r\n if (centeredSlides) {\r\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\r\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\r\n } else {\r\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\r\n slidesBefore = slidesPerGroup + addSlidesBefore;\r\n }\r\n const from = Math.max((activeIndex || 0) - slidesBefore, 0);\r\n const to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\r\n const offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\r\n\r\n Object.assign(swiper.virtual, {\r\n from,\r\n to,\r\n offset,\r\n slidesGrid: swiper.slidesGrid,\r\n });\r\n\r\n function onRendered() {\r\n swiper.updateSlides();\r\n swiper.updateProgress();\r\n swiper.updateSlidesClasses();\r\n if (swiper.lazy && swiper.params.lazy.enabled) {\r\n swiper.lazy.load();\r\n }\r\n emit('virtualUpdate');\r\n }\r\n\r\n if (previousFrom === from && previousTo === to && !force) {\r\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\r\n swiper.slides.css(offsetProp, `${offset}px`);\r\n }\r\n swiper.updateProgress();\r\n emit('virtualUpdate');\r\n return;\r\n }\r\n if (swiper.params.virtual.renderExternal) {\r\n swiper.params.virtual.renderExternal.call(swiper, {\r\n offset,\r\n from,\r\n to,\r\n slides: (function getSlides() {\r\n const slidesToRender = [];\r\n for (let i = from; i <= to; i += 1) {\r\n slidesToRender.push(slides[i]);\r\n }\r\n return slidesToRender;\r\n })(),\r\n });\r\n if (swiper.params.virtual.renderExternalUpdate) {\r\n onRendered();\r\n } else {\r\n emit('virtualUpdate');\r\n }\r\n return;\r\n }\r\n const prependIndexes = [];\r\n const appendIndexes = [];\r\n if (force) {\r\n swiper.$wrapperEl.find(`.${swiper.params.slideClass}`).remove();\r\n } else {\r\n for (let i = previousFrom; i <= previousTo; i += 1) {\r\n if (i < from || i > to) {\r\n swiper.$wrapperEl\r\n .find(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${i}\"]`)\r\n .remove();\r\n }\r\n }\r\n }\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (i >= from && i <= to) {\r\n if (typeof previousTo === 'undefined' || force) {\r\n appendIndexes.push(i);\r\n } else {\r\n if (i > previousTo) appendIndexes.push(i);\r\n if (i < previousFrom) prependIndexes.push(i);\r\n }\r\n }\r\n }\r\n appendIndexes.forEach((index) => {\r\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\r\n });\r\n prependIndexes\r\n .sort((a, b) => b - a)\r\n .forEach((index) => {\r\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\r\n });\r\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, `${offset}px`);\r\n onRendered();\r\n }\r\n\r\n function appendSlide(slides) {\r\n if (typeof slides === 'object' && 'length' in slides) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\r\n }\r\n } else {\r\n swiper.virtual.slides.push(slides);\r\n }\r\n update(true);\r\n }\r\n function prependSlide(slides) {\r\n const activeIndex = swiper.activeIndex;\r\n let newActiveIndex = activeIndex + 1;\r\n let numberOfNewSlides = 1;\r\n\r\n if (Array.isArray(slides)) {\r\n for (let i = 0; i < slides.length; i += 1) {\r\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\r\n }\r\n newActiveIndex = activeIndex + slides.length;\r\n numberOfNewSlides = slides.length;\r\n } else {\r\n swiper.virtual.slides.unshift(slides);\r\n }\r\n if (swiper.params.virtual.cache) {\r\n const cache = swiper.virtual.cache;\r\n const newCache = {};\r\n Object.keys(cache).forEach((cachedIndex) => {\r\n const $cachedEl = cache[cachedIndex];\r\n const cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\r\n if (cachedElIndex) {\r\n $cachedEl.attr(\r\n 'data-swiper-slide-index',\r\n parseInt(cachedElIndex, 10) + numberOfNewSlides,\r\n );\r\n }\r\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\r\n });\r\n swiper.virtual.cache = newCache;\r\n }\r\n update(true);\r\n swiper.slideTo(newActiveIndex, 0);\r\n }\r\n function removeSlide(slidesIndexes) {\r\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\r\n let activeIndex = swiper.activeIndex;\r\n if (Array.isArray(slidesIndexes)) {\r\n for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\r\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\r\n if (swiper.params.virtual.cache) {\r\n delete swiper.virtual.cache[slidesIndexes[i]];\r\n }\r\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\r\n activeIndex = Math.max(activeIndex, 0);\r\n }\r\n } else {\r\n swiper.virtual.slides.splice(slidesIndexes, 1);\r\n if (swiper.params.virtual.cache) {\r\n delete swiper.virtual.cache[slidesIndexes];\r\n }\r\n if (slidesIndexes < activeIndex) activeIndex -= 1;\r\n activeIndex = Math.max(activeIndex, 0);\r\n }\r\n update(true);\r\n swiper.slideTo(activeIndex, 0);\r\n }\r\n function removeAllSlides() {\r\n swiper.virtual.slides = [];\r\n if (swiper.params.virtual.cache) {\r\n swiper.virtual.cache = {};\r\n }\r\n update(true);\r\n swiper.slideTo(0, 0);\r\n }\r\n\r\n on('beforeInit', () => {\r\n if (!swiper.params.virtual.enabled) return;\r\n swiper.virtual.slides = swiper.params.virtual.slides;\r\n swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\r\n\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n\r\n if (!swiper.params.initialSlide) {\r\n update();\r\n }\r\n });\r\n on('setTranslate', () => {\r\n if (!swiper.params.virtual.enabled) return;\r\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\r\n clearTimeout(cssModeTimeout);\r\n cssModeTimeout = setTimeout(() => {\r\n update();\r\n }, 100);\r\n } else {\r\n update();\r\n }\r\n });\r\n on('init update resize', () => {\r\n if (!swiper.params.virtual.enabled) return;\r\n if (swiper.params.cssMode) {\r\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\r\n }\r\n });\r\n\r\n Object.assign(swiper.virtual, {\r\n appendSlide,\r\n prependSlide,\r\n removeSlide,\r\n removeAllSlides,\r\n update,\r\n });\r\n}\r\n","/* eslint-disable consistent-return */\r\nimport { getWindow, getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Keyboard({ swiper, extendParams, on, emit }) {\r\n const document = getDocument();\r\n const window = getWindow();\r\n swiper.keyboard = {\r\n enabled: false,\r\n };\r\n extendParams({\r\n keyboard: {\r\n enabled: false,\r\n onlyInViewport: true,\r\n pageUpDown: true,\r\n },\r\n });\r\n\r\n function handle(event) {\r\n if (!swiper.enabled) return;\r\n\r\n const { rtlTranslate: rtl } = swiper;\r\n let e = event;\r\n if (e.originalEvent) e = e.originalEvent; // jquery fix\r\n const kc = e.keyCode || e.charCode;\r\n const pageUpDown = swiper.params.keyboard.pageUpDown;\r\n const isPageUp = pageUpDown && kc === 33;\r\n const isPageDown = pageUpDown && kc === 34;\r\n const isArrowLeft = kc === 37;\r\n const isArrowRight = kc === 39;\r\n const isArrowUp = kc === 38;\r\n const isArrowDown = kc === 40;\r\n // Directions locks\r\n if (\r\n !swiper.allowSlideNext &&\r\n ((swiper.isHorizontal() && isArrowRight) ||\r\n (swiper.isVertical() && isArrowDown) ||\r\n isPageDown)\r\n ) {\r\n return false;\r\n }\r\n if (\r\n !swiper.allowSlidePrev &&\r\n ((swiper.isHorizontal() && isArrowLeft) || (swiper.isVertical() && isArrowUp) || isPageUp)\r\n ) {\r\n return false;\r\n }\r\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\r\n return undefined;\r\n }\r\n if (\r\n document.activeElement &&\r\n document.activeElement.nodeName &&\r\n (document.activeElement.nodeName.toLowerCase() === 'input' ||\r\n document.activeElement.nodeName.toLowerCase() === 'textarea')\r\n ) {\r\n return undefined;\r\n }\r\n if (\r\n swiper.params.keyboard.onlyInViewport &&\r\n (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)\r\n ) {\r\n let inView = false;\r\n // Check that swiper should be inside of visible area of window\r\n if (\r\n swiper.$el.parents(`.${swiper.params.slideClass}`).length > 0 &&\r\n swiper.$el.parents(`.${swiper.params.slideActiveClass}`).length === 0\r\n ) {\r\n return undefined;\r\n }\r\n\r\n const $el = swiper.$el;\r\n const swiperWidth = $el[0].clientWidth;\r\n const swiperHeight = $el[0].clientHeight;\r\n const windowWidth = window.innerWidth;\r\n const windowHeight = window.innerHeight;\r\n const swiperOffset = swiper.$el.offset();\r\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n const swiperCoord = [\r\n [swiperOffset.left, swiperOffset.top],\r\n [swiperOffset.left + swiperWidth, swiperOffset.top],\r\n [swiperOffset.left, swiperOffset.top + swiperHeight],\r\n [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight],\r\n ];\r\n for (let i = 0; i < swiperCoord.length; i += 1) {\r\n const point = swiperCoord[i];\r\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\r\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\r\n inView = true;\r\n }\r\n }\r\n if (!inView) return undefined;\r\n }\r\n if (swiper.isHorizontal()) {\r\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n }\r\n if (((isPageDown || isArrowRight) && !rtl) || ((isPageUp || isArrowLeft) && rtl))\r\n swiper.slideNext();\r\n if (((isPageUp || isArrowLeft) && !rtl) || ((isPageDown || isArrowRight) && rtl))\r\n swiper.slidePrev();\r\n } else {\r\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n }\r\n if (isPageDown || isArrowDown) swiper.slideNext();\r\n if (isPageUp || isArrowUp) swiper.slidePrev();\r\n }\r\n emit('keyPress', kc);\r\n return undefined;\r\n }\r\n function enable() {\r\n if (swiper.keyboard.enabled) return;\r\n $(document).on('keydown', handle);\r\n swiper.keyboard.enabled = true;\r\n }\r\n function disable() {\r\n if (!swiper.keyboard.enabled) return;\r\n $(document).off('keydown', handle);\r\n swiper.keyboard.enabled = false;\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.keyboard.enabled) {\r\n enable();\r\n }\r\n });\r\n on('destroy', () => {\r\n if (swiper.keyboard.enabled) {\r\n disable();\r\n }\r\n });\r\n\r\n Object.assign(swiper.keyboard, {\r\n enable,\r\n disable,\r\n });\r\n}\r\n","/* eslint-disable consistent-return */\r\nimport { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { now, nextTick } from '../../shared/utils.js';\r\n\r\nexport default function Mousewheel({ swiper, extendParams, on, emit }) {\r\n const window = getWindow();\r\n\r\n extendParams({\r\n mousewheel: {\r\n enabled: false,\r\n releaseOnEdges: false,\r\n invert: false,\r\n forceToAxis: false,\r\n sensitivity: 1,\r\n eventsTarget: 'container',\r\n thresholdDelta: null,\r\n thresholdTime: null,\r\n },\r\n });\r\n\r\n swiper.mousewheel = {\r\n enabled: false,\r\n };\r\n\r\n let timeout;\r\n let lastScrollTime = now();\r\n let lastEventBeforeSnap;\r\n const recentWheelEvents = [];\r\n\r\n function normalize(e) {\r\n // Reasonable defaults\r\n const PIXEL_STEP = 10;\r\n const LINE_HEIGHT = 40;\r\n const PAGE_HEIGHT = 800;\r\n\r\n let sX = 0;\r\n let sY = 0; // spinX, spinY\r\n let pX = 0;\r\n let pY = 0; // pixelX, pixelY\r\n\r\n // Legacy\r\n if ('detail' in e) {\r\n sY = e.detail;\r\n }\r\n if ('wheelDelta' in e) {\r\n sY = -e.wheelDelta / 120;\r\n }\r\n if ('wheelDeltaY' in e) {\r\n sY = -e.wheelDeltaY / 120;\r\n }\r\n if ('wheelDeltaX' in e) {\r\n sX = -e.wheelDeltaX / 120;\r\n }\r\n\r\n // side scrolling on FF with DOMMouseScroll\r\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\r\n sX = sY;\r\n sY = 0;\r\n }\r\n\r\n pX = sX * PIXEL_STEP;\r\n pY = sY * PIXEL_STEP;\r\n\r\n if ('deltaY' in e) {\r\n pY = e.deltaY;\r\n }\r\n if ('deltaX' in e) {\r\n pX = e.deltaX;\r\n }\r\n\r\n if (e.shiftKey && !pX) {\r\n // if user scrolls with shift he wants horizontal scroll\r\n pX = pY;\r\n pY = 0;\r\n }\r\n\r\n if ((pX || pY) && e.deltaMode) {\r\n if (e.deltaMode === 1) {\r\n // delta in LINE units\r\n pX *= LINE_HEIGHT;\r\n pY *= LINE_HEIGHT;\r\n } else {\r\n // delta in PAGE units\r\n pX *= PAGE_HEIGHT;\r\n pY *= PAGE_HEIGHT;\r\n }\r\n }\r\n\r\n // Fall-back if spin cannot be determined\r\n if (pX && !sX) {\r\n sX = pX < 1 ? -1 : 1;\r\n }\r\n if (pY && !sY) {\r\n sY = pY < 1 ? -1 : 1;\r\n }\r\n\r\n return {\r\n spinX: sX,\r\n spinY: sY,\r\n pixelX: pX,\r\n pixelY: pY,\r\n };\r\n }\r\n function handleMouseEnter() {\r\n if (!swiper.enabled) return;\r\n swiper.mouseEntered = true;\r\n }\r\n function handleMouseLeave() {\r\n if (!swiper.enabled) return;\r\n swiper.mouseEntered = false;\r\n }\r\n function animateSlider(newEvent) {\r\n if (\r\n swiper.params.mousewheel.thresholdDelta &&\r\n newEvent.delta < swiper.params.mousewheel.thresholdDelta\r\n ) {\r\n // Prevent if delta of wheel scroll delta is below configured threshold\r\n return false;\r\n }\r\n\r\n if (\r\n swiper.params.mousewheel.thresholdTime &&\r\n now() - lastScrollTime < swiper.params.mousewheel.thresholdTime\r\n ) {\r\n // Prevent if time between scrolls is below configured threshold\r\n return false;\r\n }\r\n\r\n // If the movement is NOT big enough and\r\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\r\n // Don't go any further (avoid insignificant scroll movement).\r\n if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\r\n // Return false as a default\r\n return true;\r\n }\r\n // If user is scrolling towards the end:\r\n // If the slider hasn't hit the latest slide or\r\n // if the slider is a loop and\r\n // if the slider isn't moving right now:\r\n // Go to next slide and\r\n // emit a scroll event.\r\n // Else (the user is scrolling towards the beginning) and\r\n // if the slider hasn't hit the first slide or\r\n // if the slider is a loop and\r\n // if the slider isn't moving right now:\r\n // Go to prev slide and\r\n // emit a scroll event.\r\n if (newEvent.direction < 0) {\r\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\r\n swiper.slideNext();\r\n emit('scroll', newEvent.raw);\r\n }\r\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\r\n swiper.slidePrev();\r\n emit('scroll', newEvent.raw);\r\n }\r\n // If you got here is because an animation has been triggered so store the current time\r\n lastScrollTime = new window.Date().getTime();\r\n // Return false as a default\r\n return false;\r\n }\r\n function releaseScroll(newEvent) {\r\n const params = swiper.params.mousewheel;\r\n if (newEvent.direction < 0) {\r\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\r\n // Return true to animate scroll on edges\r\n return true;\r\n }\r\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\r\n // Return true to animate scroll on edges\r\n return true;\r\n }\r\n return false;\r\n }\r\n function handle(event) {\r\n let e = event;\r\n let disableParentSwiper = true;\r\n if (!swiper.enabled) return;\r\n const params = swiper.params.mousewheel;\r\n\r\n if (swiper.params.cssMode) {\r\n e.preventDefault();\r\n }\r\n\r\n let target = swiper.$el;\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges)\r\n return true;\r\n\r\n if (e.originalEvent) e = e.originalEvent; // jquery fix\r\n let delta = 0;\r\n const rtlFactor = swiper.rtlTranslate ? -1 : 1;\r\n\r\n const data = normalize(e);\r\n\r\n if (params.forceToAxis) {\r\n if (swiper.isHorizontal()) {\r\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;\r\n else return true;\r\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;\r\n else return true;\r\n } else {\r\n delta =\r\n Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\r\n }\r\n\r\n if (delta === 0) return true;\r\n\r\n if (params.invert) delta = -delta;\r\n\r\n // Get the scroll positions\r\n let positions = swiper.getTranslate() + delta * params.sensitivity;\r\n\r\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\r\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\r\n\r\n // When loop is true:\r\n // the disableParentSwiper will be true.\r\n // When loop is false:\r\n // if the scroll positions is not on edge,\r\n // then the disableParentSwiper will be true.\r\n // if the scroll on edge positions,\r\n // then the disableParentSwiper will be false.\r\n disableParentSwiper = swiper.params.loop\r\n ? true\r\n : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\r\n\r\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\r\n\r\n if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\r\n // Register the new event in a variable which stores the relevant data\r\n const newEvent = {\r\n time: now(),\r\n delta: Math.abs(delta),\r\n direction: Math.sign(delta),\r\n raw: event,\r\n };\r\n\r\n // Keep the most recent events\r\n if (recentWheelEvents.length >= 2) {\r\n recentWheelEvents.shift(); // only store the last N events\r\n }\r\n const prevEvent = recentWheelEvents.length\r\n ? recentWheelEvents[recentWheelEvents.length - 1]\r\n : undefined;\r\n recentWheelEvents.push(newEvent);\r\n\r\n // If there is at least one previous recorded event:\r\n // If direction has changed or\r\n // if the scroll is quicker than the previous one:\r\n // Animate the slider.\r\n // Else (this is the first time the wheel is moved):\r\n // Animate the slider.\r\n if (prevEvent) {\r\n if (\r\n newEvent.direction !== prevEvent.direction ||\r\n newEvent.delta > prevEvent.delta ||\r\n newEvent.time > prevEvent.time + 150\r\n ) {\r\n animateSlider(newEvent);\r\n }\r\n } else {\r\n animateSlider(newEvent);\r\n }\r\n\r\n // If it's time to release the scroll:\r\n // Return now so you don't hit the preventDefault.\r\n if (releaseScroll(newEvent)) {\r\n return true;\r\n }\r\n } else {\r\n // Freemode or scrollContainer:\r\n\r\n // If we recently snapped after a momentum scroll, then ignore wheel events\r\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\r\n // or if it's a new scroll (larger delta or inverse sign as last event before\r\n // an end-of-momentum snap).\r\n const newEvent = {\r\n time: now(),\r\n delta: Math.abs(delta),\r\n direction: Math.sign(delta),\r\n };\r\n const ignoreWheelEvents =\r\n lastEventBeforeSnap &&\r\n newEvent.time < lastEventBeforeSnap.time + 500 &&\r\n newEvent.delta <= lastEventBeforeSnap.delta &&\r\n newEvent.direction === lastEventBeforeSnap.direction;\r\n if (!ignoreWheelEvents) {\r\n lastEventBeforeSnap = undefined;\r\n\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n }\r\n let position = swiper.getTranslate() + delta * params.sensitivity;\r\n const wasBeginning = swiper.isBeginning;\r\n const wasEnd = swiper.isEnd;\r\n\r\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\r\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\r\n\r\n swiper.setTransition(0);\r\n swiper.setTranslate(position);\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n\r\n if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) {\r\n swiper.updateSlidesClasses();\r\n }\r\n\r\n if (swiper.params.freeMode.sticky) {\r\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\r\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\r\n // 1. do all N events have decreasing or same (absolute value) delta?\r\n // 2. did all N events arrive in the last M (M=500?) msecs?\r\n // 3. does the earliest event have an (absolute value) delta that's\r\n // at least P (P=1?) larger than the most recent event's delta?\r\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\r\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\r\n // Snap immediately and ignore remaining wheel events in this scroll.\r\n // See comment above for \"remaining wheel events in this scroll\" determination.\r\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\r\n clearTimeout(timeout);\r\n timeout = undefined;\r\n if (recentWheelEvents.length >= 15) {\r\n recentWheelEvents.shift(); // only store the last N events\r\n }\r\n const prevEvent = recentWheelEvents.length\r\n ? recentWheelEvents[recentWheelEvents.length - 1]\r\n : undefined;\r\n const firstEvent = recentWheelEvents[0];\r\n recentWheelEvents.push(newEvent);\r\n if (\r\n prevEvent &&\r\n (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)\r\n ) {\r\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\r\n recentWheelEvents.splice(0);\r\n } else if (\r\n recentWheelEvents.length >= 15 &&\r\n newEvent.time - firstEvent.time < 500 &&\r\n firstEvent.delta - newEvent.delta >= 1 &&\r\n newEvent.delta <= 6\r\n ) {\r\n // We're at the end of the deceleration of a momentum scroll, so there's no need\r\n // to wait for more events. Snap ASAP on the next tick.\r\n // Also, because there's some remaining momentum we'll bias the snap in the\r\n // direction of the ongoing scroll because it's better UX for the scroll to snap\r\n // in the same direction as the scroll instead of reversing to snap. Therefore,\r\n // if it's already scrolled more than 20% in the current direction, keep going.\r\n const snapToThreshold = delta > 0 ? 0.8 : 0.2;\r\n lastEventBeforeSnap = newEvent;\r\n recentWheelEvents.splice(0);\r\n timeout = nextTick(() => {\r\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n }, 0); // no delay; move on next tick\r\n }\r\n if (!timeout) {\r\n // if we get here, then we haven't detected the end of a momentum scroll, so\r\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\r\n // for 500ms.\r\n timeout = nextTick(() => {\r\n const snapToThreshold = 0.5;\r\n lastEventBeforeSnap = newEvent;\r\n recentWheelEvents.splice(0);\r\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\r\n }, 500);\r\n }\r\n }\r\n\r\n // Emit event\r\n if (!ignoreWheelEvents) emit('scroll', e);\r\n\r\n // Stop autoplay\r\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction)\r\n swiper.autoplay.stop();\r\n // Return page scroll on edge positions\r\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\r\n }\r\n }\r\n\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n return false;\r\n }\r\n\r\n function events(method) {\r\n let target = swiper.$el;\r\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\r\n target = $(swiper.params.mousewheel.eventsTarget);\r\n }\r\n target[method]('mouseenter', handleMouseEnter);\r\n target[method]('mouseleave', handleMouseLeave);\r\n target[method]('wheel', handle);\r\n }\r\n\r\n function enable() {\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.removeEventListener('wheel', handle);\r\n return true;\r\n }\r\n if (swiper.mousewheel.enabled) return false;\r\n events('on');\r\n swiper.mousewheel.enabled = true;\r\n return true;\r\n }\r\n function disable() {\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.addEventListener(event, handle);\r\n return true;\r\n }\r\n if (!swiper.mousewheel.enabled) return false;\r\n events('off');\r\n swiper.mousewheel.enabled = false;\r\n return true;\r\n }\r\n\r\n on('init', () => {\r\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\r\n disable();\r\n }\r\n if (swiper.params.mousewheel.enabled) enable();\r\n });\r\n on('destroy', () => {\r\n if (swiper.params.cssMode) {\r\n enable();\r\n }\r\n if (swiper.mousewheel.enabled) disable();\r\n });\r\n\r\n Object.assign(swiper.mousewheel, {\r\n enable,\r\n disable,\r\n });\r\n}\r\n","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Navigation({ swiper, extendParams, on, emit }) {\r\n extendParams({\r\n navigation: {\r\n nextEl: null,\r\n prevEl: null,\r\n\r\n hideOnClick: false,\r\n disabledClass: 'swiper-button-disabled',\r\n hiddenClass: 'swiper-button-hidden',\r\n lockClass: 'swiper-button-lock',\r\n navigationDisabledClass: 'swiper-navigation-disabled',\r\n },\r\n });\r\n\r\n swiper.navigation = {\r\n nextEl: null,\r\n $nextEl: null,\r\n prevEl: null,\r\n $prevEl: null,\r\n };\r\n\r\n function getEl(el) {\r\n let $el;\r\n if (el) {\r\n $el = $(el);\r\n if (\r\n swiper.params.uniqueNavElements &&\r\n typeof el === 'string' &&\r\n $el.length > 1 &&\r\n swiper.$el.find(el).length === 1\r\n ) {\r\n $el = swiper.$el.find(el);\r\n }\r\n }\r\n return $el;\r\n }\r\n\r\n function toggleEl($el, disabled) {\r\n const params = swiper.params.navigation;\r\n if ($el && $el.length > 0) {\r\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\r\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\r\n if (swiper.params.watchOverflow && swiper.enabled) {\r\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n }\r\n }\r\n function update() {\r\n // Update Navigation Buttons\r\n if (swiper.params.loop) return;\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n\r\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\r\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\r\n }\r\n function onPrevClick(e) {\r\n e.preventDefault();\r\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\r\n swiper.slidePrev();\r\n emit('navigationPrev');\r\n }\r\n function onNextClick(e) {\r\n e.preventDefault();\r\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\r\n swiper.slideNext();\r\n emit('navigationNext');\r\n }\r\n function init() {\r\n const params = swiper.params.navigation;\r\n\r\n swiper.params.navigation = createElementIfNotDefined(\r\n swiper,\r\n swiper.originalParams.navigation,\r\n swiper.params.navigation,\r\n {\r\n nextEl: 'swiper-button-next',\r\n prevEl: 'swiper-button-prev',\r\n },\r\n );\r\n if (!(params.nextEl || params.prevEl)) return;\r\n\r\n const $nextEl = getEl(params.nextEl);\r\n const $prevEl = getEl(params.prevEl);\r\n\r\n if ($nextEl && $nextEl.length > 0) {\r\n $nextEl.on('click', onNextClick);\r\n }\r\n if ($prevEl && $prevEl.length > 0) {\r\n $prevEl.on('click', onPrevClick);\r\n }\r\n\r\n Object.assign(swiper.navigation, {\r\n $nextEl,\r\n nextEl: $nextEl && $nextEl[0],\r\n $prevEl,\r\n prevEl: $prevEl && $prevEl[0],\r\n });\r\n\r\n if (!swiper.enabled) {\r\n if ($nextEl) $nextEl.addClass(params.lockClass);\r\n if ($prevEl) $prevEl.addClass(params.lockClass);\r\n }\r\n }\r\n function destroy() {\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n if ($nextEl && $nextEl.length) {\r\n $nextEl.off('click', onNextClick);\r\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n if ($prevEl && $prevEl.length) {\r\n $prevEl.off('click', onPrevClick);\r\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\r\n }\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.navigation.enabled === false) {\r\n // eslint-disable-next-line\r\n disable();\r\n } else {\r\n init();\r\n update();\r\n }\r\n });\r\n on('toEdge fromEdge lock unlock', () => {\r\n update();\r\n });\r\n on('destroy', () => {\r\n destroy();\r\n });\r\n on('enable disable', () => {\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n if ($nextEl) {\r\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\r\n }\r\n if ($prevEl) {\r\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\r\n }\r\n });\r\n on('click', (_s, e) => {\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n const targetEl = e.target;\r\n if (\r\n swiper.params.navigation.hideOnClick &&\r\n !$(targetEl).is($prevEl) &&\r\n !$(targetEl).is($nextEl)\r\n ) {\r\n if (\r\n swiper.pagination &&\r\n swiper.params.pagination &&\r\n swiper.params.pagination.clickable &&\r\n (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))\r\n )\r\n return;\r\n let isHidden;\r\n if ($nextEl) {\r\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\r\n } else if ($prevEl) {\r\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\r\n }\r\n if (isHidden === true) {\r\n emit('navigationShow');\r\n } else {\r\n emit('navigationHide');\r\n }\r\n if ($nextEl) {\r\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n if ($prevEl) {\r\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\r\n }\r\n }\r\n });\r\n\r\n const enable = () => {\r\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\r\n init();\r\n update();\r\n };\r\n\r\n const disable = () => {\r\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\r\n destroy();\r\n };\r\n\r\n Object.assign(swiper.navigation, {\r\n enable,\r\n disable,\r\n update,\r\n init,\r\n destroy,\r\n });\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport classesToSelector from '../../shared/classes-to-selector.js';\r\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\r\n\r\nexport default function Pagination({ swiper, extendParams, on, emit }) {\r\n const pfx = 'swiper-pagination';\r\n extendParams({\r\n pagination: {\r\n el: null,\r\n bulletElement: 'span',\r\n clickable: false,\r\n hideOnClick: false,\r\n renderBullet: null,\r\n renderProgressbar: null,\r\n renderFraction: null,\r\n renderCustom: null,\r\n progressbarOpposite: false,\r\n type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom'\r\n dynamicBullets: false,\r\n dynamicMainBullets: 1,\r\n formatFractionCurrent: (number) => number,\r\n formatFractionTotal: (number) => number,\r\n bulletClass: `${pfx}-bullet`,\r\n bulletActiveClass: `${pfx}-bullet-active`,\r\n modifierClass: `${pfx}-`,\r\n currentClass: `${pfx}-current`,\r\n totalClass: `${pfx}-total`,\r\n hiddenClass: `${pfx}-hidden`,\r\n progressbarFillClass: `${pfx}-progressbar-fill`,\r\n progressbarOppositeClass: `${pfx}-progressbar-opposite`,\r\n clickableClass: `${pfx}-clickable`,\r\n lockClass: `${pfx}-lock`,\r\n horizontalClass: `${pfx}-horizontal`,\r\n verticalClass: `${pfx}-vertical`,\r\n paginationDisabledClass: `${pfx}-disabled`,\r\n },\r\n });\r\n\r\n swiper.pagination = {\r\n el: null,\r\n $el: null,\r\n bullets: [],\r\n };\r\n\r\n let bulletSize;\r\n let dynamicBulletIndex = 0;\r\n\r\n function isPaginationDisabled() {\r\n return (\r\n !swiper.params.pagination.el ||\r\n !swiper.pagination.el ||\r\n !swiper.pagination.$el ||\r\n swiper.pagination.$el.length === 0\r\n );\r\n }\r\n\r\n function setSideBullets($bulletEl, position) {\r\n const { bulletActiveClass } = swiper.params.pagination;\r\n $bulletEl[position]()\r\n .addClass(`${bulletActiveClass}-${position}`)\r\n [position]()\r\n .addClass(`${bulletActiveClass}-${position}-${position}`);\r\n }\r\n\r\n function update() {\r\n // Render || Update Pagination bullets/items\r\n const rtl = swiper.rtl;\r\n const params = swiper.params.pagination;\r\n if (isPaginationDisabled()) return;\r\n const slidesLength =\r\n swiper.virtual && swiper.params.virtual.enabled\r\n ? swiper.virtual.slides.length\r\n : swiper.slides.length;\r\n const $el = swiper.pagination.$el;\r\n // Current/Total\r\n let current;\r\n const total = swiper.params.loop\r\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\r\n : swiper.snapGrid.length;\r\n if (swiper.params.loop) {\r\n current = Math.ceil(\r\n (swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup,\r\n );\r\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\r\n current -= slidesLength - swiper.loopedSlides * 2;\r\n }\r\n if (current > total - 1) current -= total;\r\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\r\n } else if (typeof swiper.snapIndex !== 'undefined') {\r\n current = swiper.snapIndex;\r\n } else {\r\n current = swiper.activeIndex || 0;\r\n }\r\n // Types\r\n if (\r\n params.type === 'bullets' &&\r\n swiper.pagination.bullets &&\r\n swiper.pagination.bullets.length > 0\r\n ) {\r\n const bullets = swiper.pagination.bullets;\r\n let firstIndex;\r\n let lastIndex;\r\n let midIndex;\r\n if (params.dynamicBullets) {\r\n bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\r\n $el.css(\r\n swiper.isHorizontal() ? 'width' : 'height',\r\n `${bulletSize * (params.dynamicMainBullets + 4)}px`,\r\n );\r\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\r\n dynamicBulletIndex += current - (swiper.previousIndex - swiper.loopedSlides || 0);\r\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\r\n dynamicBulletIndex = params.dynamicMainBullets - 1;\r\n } else if (dynamicBulletIndex < 0) {\r\n dynamicBulletIndex = 0;\r\n }\r\n }\r\n firstIndex = Math.max(current - dynamicBulletIndex, 0);\r\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\r\n midIndex = (lastIndex + firstIndex) / 2;\r\n }\r\n bullets.removeClass(\r\n ['', '-next', '-next-next', '-prev', '-prev-prev', '-main']\r\n .map((suffix) => `${params.bulletActiveClass}${suffix}`)\r\n .join(' '),\r\n );\r\n if ($el.length > 1) {\r\n bullets.each((bullet) => {\r\n const $bullet = $(bullet);\r\n const bulletIndex = $bullet.index();\r\n if (bulletIndex === current) {\r\n $bullet.addClass(params.bulletActiveClass);\r\n }\r\n if (params.dynamicBullets) {\r\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\r\n $bullet.addClass(`${params.bulletActiveClass}-main`);\r\n }\r\n if (bulletIndex === firstIndex) {\r\n setSideBullets($bullet, 'prev');\r\n }\r\n if (bulletIndex === lastIndex) {\r\n setSideBullets($bullet, 'next');\r\n }\r\n }\r\n });\r\n } else {\r\n const $bullet = bullets.eq(current);\r\n const bulletIndex = $bullet.index();\r\n $bullet.addClass(params.bulletActiveClass);\r\n if (params.dynamicBullets) {\r\n const $firstDisplayedBullet = bullets.eq(firstIndex);\r\n const $lastDisplayedBullet = bullets.eq(lastIndex);\r\n for (let i = firstIndex; i <= lastIndex; i += 1) {\r\n bullets.eq(i).addClass(`${params.bulletActiveClass}-main`);\r\n }\r\n if (swiper.params.loop) {\r\n if (bulletIndex >= bullets.length) {\r\n for (let i = params.dynamicMainBullets; i >= 0; i -= 1) {\r\n bullets.eq(bullets.length - i).addClass(`${params.bulletActiveClass}-main`);\r\n }\r\n bullets\r\n .eq(bullets.length - params.dynamicMainBullets - 1)\r\n .addClass(`${params.bulletActiveClass}-prev`);\r\n } else {\r\n setSideBullets($firstDisplayedBullet, 'prev');\r\n setSideBullets($lastDisplayedBullet, 'next');\r\n }\r\n } else {\r\n setSideBullets($firstDisplayedBullet, 'prev');\r\n setSideBullets($lastDisplayedBullet, 'next');\r\n }\r\n }\r\n }\r\n if (params.dynamicBullets) {\r\n const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\r\n const bulletsOffset =\r\n (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\r\n const offsetProp = rtl ? 'right' : 'left';\r\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', `${bulletsOffset}px`);\r\n }\r\n }\r\n if (params.type === 'fraction') {\r\n $el\r\n .find(classesToSelector(params.currentClass))\r\n .text(params.formatFractionCurrent(current + 1));\r\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\r\n }\r\n if (params.type === 'progressbar') {\r\n let progressbarDirection;\r\n if (params.progressbarOpposite) {\r\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\r\n } else {\r\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\r\n }\r\n const scale = (current + 1) / total;\r\n let scaleX = 1;\r\n let scaleY = 1;\r\n if (progressbarDirection === 'horizontal') {\r\n scaleX = scale;\r\n } else {\r\n scaleY = scale;\r\n }\r\n $el\r\n .find(classesToSelector(params.progressbarFillClass))\r\n .transform(`translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`)\r\n .transition(swiper.params.speed);\r\n }\r\n if (params.type === 'custom' && params.renderCustom) {\r\n $el.html(params.renderCustom(swiper, current + 1, total));\r\n emit('paginationRender', $el[0]);\r\n } else {\r\n emit('paginationUpdate', $el[0]);\r\n }\r\n if (swiper.params.watchOverflow && swiper.enabled) {\r\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\r\n }\r\n }\r\n function render() {\r\n // Render Container\r\n const params = swiper.params.pagination;\r\n if (isPaginationDisabled()) return;\r\n const slidesLength =\r\n swiper.virtual && swiper.params.virtual.enabled\r\n ? swiper.virtual.slides.length\r\n : swiper.slides.length;\r\n\r\n const $el = swiper.pagination.$el;\r\n let paginationHTML = '';\r\n if (params.type === 'bullets') {\r\n let numberOfBullets = swiper.params.loop\r\n ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup)\r\n : swiper.snapGrid.length;\r\n if (\r\n swiper.params.freeMode &&\r\n swiper.params.freeMode.enabled &&\r\n !swiper.params.loop &&\r\n numberOfBullets > slidesLength\r\n ) {\r\n numberOfBullets = slidesLength;\r\n }\r\n for (let i = 0; i < numberOfBullets; i += 1) {\r\n if (params.renderBullet) {\r\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\r\n } else {\r\n paginationHTML += `<${params.bulletElement} class=\"${params.bulletClass}\">`;\r\n }\r\n }\r\n $el.html(paginationHTML);\r\n\r\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\r\n }\r\n if (params.type === 'fraction') {\r\n if (params.renderFraction) {\r\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\r\n } else {\r\n paginationHTML =\r\n `` +\r\n ' / ' +\r\n ``;\r\n }\r\n $el.html(paginationHTML);\r\n }\r\n if (params.type === 'progressbar') {\r\n if (params.renderProgressbar) {\r\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\r\n } else {\r\n paginationHTML = ``;\r\n }\r\n $el.html(paginationHTML);\r\n }\r\n if (params.type !== 'custom') {\r\n emit('paginationRender', swiper.pagination.$el[0]);\r\n }\r\n }\r\n function init() {\r\n swiper.params.pagination = createElementIfNotDefined(\r\n swiper,\r\n swiper.originalParams.pagination,\r\n swiper.params.pagination,\r\n { el: 'swiper-pagination' },\r\n );\r\n const params = swiper.params.pagination;\r\n if (!params.el) return;\r\n\r\n let $el = $(params.el);\r\n if ($el.length === 0) return;\r\n\r\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\r\n $el = swiper.$el.find(params.el);\r\n // check if it belongs to another nested Swiper\r\n if ($el.length > 1) {\r\n $el = $el.filter((el) => {\r\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\r\n return true;\r\n });\r\n }\r\n }\r\n\r\n if (params.type === 'bullets' && params.clickable) {\r\n $el.addClass(params.clickableClass);\r\n }\r\n\r\n $el.addClass(params.modifierClass + params.type);\r\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n\r\n if (params.type === 'bullets' && params.dynamicBullets) {\r\n $el.addClass(`${params.modifierClass}${params.type}-dynamic`);\r\n dynamicBulletIndex = 0;\r\n if (params.dynamicMainBullets < 1) {\r\n params.dynamicMainBullets = 1;\r\n }\r\n }\r\n if (params.type === 'progressbar' && params.progressbarOpposite) {\r\n $el.addClass(params.progressbarOppositeClass);\r\n }\r\n\r\n if (params.clickable) {\r\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\r\n e.preventDefault();\r\n let index = $(this).index() * swiper.params.slidesPerGroup;\r\n if (swiper.params.loop) index += swiper.loopedSlides;\r\n swiper.slideTo(index);\r\n });\r\n }\r\n\r\n Object.assign(swiper.pagination, {\r\n $el,\r\n el: $el[0],\r\n });\r\n\r\n if (!swiper.enabled) {\r\n $el.addClass(params.lockClass);\r\n }\r\n }\r\n function destroy() {\r\n const params = swiper.params.pagination;\r\n if (isPaginationDisabled()) return;\r\n const $el = swiper.pagination.$el;\r\n\r\n $el.removeClass(params.hiddenClass);\r\n $el.removeClass(params.modifierClass + params.type);\r\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass)\r\n swiper.pagination.bullets.removeClass(params.bulletActiveClass);\r\n if (params.clickable) {\r\n $el.off('click', classesToSelector(params.bulletClass));\r\n }\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.pagination.enabled === false) {\r\n // eslint-disable-next-line\r\n disable();\r\n } else {\r\n init();\r\n render();\r\n update();\r\n }\r\n });\r\n on('activeIndexChange', () => {\r\n if (swiper.params.loop) {\r\n update();\r\n } else if (typeof swiper.snapIndex === 'undefined') {\r\n update();\r\n }\r\n });\r\n on('snapIndexChange', () => {\r\n if (!swiper.params.loop) {\r\n update();\r\n }\r\n });\r\n on('slidesLengthChange', () => {\r\n if (swiper.params.loop) {\r\n render();\r\n update();\r\n }\r\n });\r\n on('snapGridLengthChange', () => {\r\n if (!swiper.params.loop) {\r\n render();\r\n update();\r\n }\r\n });\r\n on('destroy', () => {\r\n destroy();\r\n });\r\n on('enable disable', () => {\r\n const { $el } = swiper.pagination;\r\n if ($el) {\r\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\r\n }\r\n });\r\n on('lock unlock', () => {\r\n update();\r\n });\r\n on('click', (_s, e) => {\r\n const targetEl = e.target;\r\n const { $el } = swiper.pagination;\r\n if (\r\n swiper.params.pagination.el &&\r\n swiper.params.pagination.hideOnClick &&\r\n $el &&\r\n $el.length > 0 &&\r\n !$(targetEl).hasClass(swiper.params.pagination.bulletClass)\r\n ) {\r\n if (\r\n swiper.navigation &&\r\n ((swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl) ||\r\n (swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl))\r\n )\r\n return;\r\n const isHidden = $el.hasClass(swiper.params.pagination.hiddenClass);\r\n if (isHidden === true) {\r\n emit('paginationShow');\r\n } else {\r\n emit('paginationHide');\r\n }\r\n $el.toggleClass(swiper.params.pagination.hiddenClass);\r\n }\r\n });\r\n\r\n const enable = () => {\r\n swiper.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\r\n if (swiper.pagination.$el) {\r\n swiper.pagination.$el.removeClass(swiper.params.pagination.paginationDisabledClass);\r\n }\r\n init();\r\n render();\r\n update();\r\n };\r\n\r\n const disable = () => {\r\n swiper.$el.addClass(swiper.params.pagination.paginationDisabledClass);\r\n if (swiper.pagination.$el) {\r\n swiper.pagination.$el.addClass(swiper.params.pagination.paginationDisabledClass);\r\n }\r\n destroy();\r\n };\r\n\r\n Object.assign(swiper.pagination, {\r\n enable,\r\n disable,\r\n render,\r\n update,\r\n init,\r\n destroy,\r\n });\r\n}\r\n","import { getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { nextTick } from '../../shared/utils.js';\r\nimport createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\r\n\r\nexport default function Scrollbar({ swiper, extendParams, on, emit }) {\r\n const document = getDocument();\r\n\r\n let isTouched = false;\r\n let timeout = null;\r\n let dragTimeout = null;\r\n let dragStartPos;\r\n let dragSize;\r\n let trackSize;\r\n let divider;\r\n\r\n extendParams({\r\n scrollbar: {\r\n el: null,\r\n dragSize: 'auto',\r\n hide: false,\r\n draggable: false,\r\n snapOnRelease: true,\r\n lockClass: 'swiper-scrollbar-lock',\r\n dragClass: 'swiper-scrollbar-drag',\r\n scrollbarDisabledClass: 'swiper-scrollbar-disabled',\r\n horizontalClass: `swiper-scrollbar-horizontal`,\r\n verticalClass: `swiper-scrollbar-vertical`,\r\n },\r\n });\r\n\r\n swiper.scrollbar = {\r\n el: null,\r\n dragEl: null,\r\n $el: null,\r\n $dragEl: null,\r\n };\r\n\r\n function setTranslate() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n const { scrollbar, rtlTranslate: rtl, progress } = swiper;\r\n const { $dragEl, $el } = scrollbar;\r\n const params = swiper.params.scrollbar;\r\n\r\n let newSize = dragSize;\r\n let newPos = (trackSize - dragSize) * progress;\r\n if (rtl) {\r\n newPos = -newPos;\r\n if (newPos > 0) {\r\n newSize = dragSize - newPos;\r\n newPos = 0;\r\n } else if (-newPos + dragSize > trackSize) {\r\n newSize = trackSize + newPos;\r\n }\r\n } else if (newPos < 0) {\r\n newSize = dragSize + newPos;\r\n newPos = 0;\r\n } else if (newPos + dragSize > trackSize) {\r\n newSize = trackSize - newPos;\r\n }\r\n if (swiper.isHorizontal()) {\r\n $dragEl.transform(`translate3d(${newPos}px, 0, 0)`);\r\n $dragEl[0].style.width = `${newSize}px`;\r\n } else {\r\n $dragEl.transform(`translate3d(0px, ${newPos}px, 0)`);\r\n $dragEl[0].style.height = `${newSize}px`;\r\n }\r\n if (params.hide) {\r\n clearTimeout(timeout);\r\n $el[0].style.opacity = 1;\r\n timeout = setTimeout(() => {\r\n $el[0].style.opacity = 0;\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n }\r\n function setTransition(duration) {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n swiper.scrollbar.$dragEl.transition(duration);\r\n }\r\n function updateSize() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n\r\n const { scrollbar } = swiper;\r\n const { $dragEl, $el } = scrollbar;\r\n\r\n $dragEl[0].style.width = '';\r\n $dragEl[0].style.height = '';\r\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\r\n\r\n divider =\r\n swiper.size /\r\n (swiper.virtualSize +\r\n swiper.params.slidesOffsetBefore -\r\n (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\r\n if (swiper.params.scrollbar.dragSize === 'auto') {\r\n dragSize = trackSize * divider;\r\n } else {\r\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\r\n }\r\n\r\n if (swiper.isHorizontal()) {\r\n $dragEl[0].style.width = `${dragSize}px`;\r\n } else {\r\n $dragEl[0].style.height = `${dragSize}px`;\r\n }\r\n\r\n if (divider >= 1) {\r\n $el[0].style.display = 'none';\r\n } else {\r\n $el[0].style.display = '';\r\n }\r\n if (swiper.params.scrollbar.hide) {\r\n $el[0].style.opacity = 0;\r\n }\r\n\r\n if (swiper.params.watchOverflow && swiper.enabled) {\r\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](\r\n swiper.params.scrollbar.lockClass,\r\n );\r\n }\r\n }\r\n function getPointerPosition(e) {\r\n if (swiper.isHorizontal()) {\r\n return e.type === 'touchstart' || e.type === 'touchmove'\r\n ? e.targetTouches[0].clientX\r\n : e.clientX;\r\n }\r\n return e.type === 'touchstart' || e.type === 'touchmove'\r\n ? e.targetTouches[0].clientY\r\n : e.clientY;\r\n }\r\n function setDragPosition(e) {\r\n const { scrollbar, rtlTranslate: rtl } = swiper;\r\n const { $el } = scrollbar;\r\n\r\n let positionRatio;\r\n positionRatio =\r\n (getPointerPosition(e) -\r\n $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] -\r\n (dragStartPos !== null ? dragStartPos : dragSize / 2)) /\r\n (trackSize - dragSize);\r\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\r\n if (rtl) {\r\n positionRatio = 1 - positionRatio;\r\n }\r\n\r\n const position =\r\n swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\r\n\r\n swiper.updateProgress(position);\r\n swiper.setTranslate(position);\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n function onDragStart(e) {\r\n const params = swiper.params.scrollbar;\r\n const { scrollbar, $wrapperEl } = swiper;\r\n const { $el, $dragEl } = scrollbar;\r\n isTouched = true;\r\n dragStartPos =\r\n e.target === $dragEl[0] || e.target === $dragEl\r\n ? getPointerPosition(e) -\r\n e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top']\r\n : null;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n $wrapperEl.transition(100);\r\n $dragEl.transition(100);\r\n setDragPosition(e);\r\n\r\n clearTimeout(dragTimeout);\r\n\r\n $el.transition(0);\r\n if (params.hide) {\r\n $el.css('opacity', 1);\r\n }\r\n if (swiper.params.cssMode) {\r\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\r\n }\r\n emit('scrollbarDragStart', e);\r\n }\r\n function onDragMove(e) {\r\n const { scrollbar, $wrapperEl } = swiper;\r\n const { $el, $dragEl } = scrollbar;\r\n\r\n if (!isTouched) return;\r\n if (e.preventDefault) e.preventDefault();\r\n else e.returnValue = false;\r\n setDragPosition(e);\r\n $wrapperEl.transition(0);\r\n $el.transition(0);\r\n $dragEl.transition(0);\r\n emit('scrollbarDragMove', e);\r\n }\r\n function onDragEnd(e) {\r\n const params = swiper.params.scrollbar;\r\n const { scrollbar, $wrapperEl } = swiper;\r\n const { $el } = scrollbar;\r\n\r\n if (!isTouched) return;\r\n isTouched = false;\r\n if (swiper.params.cssMode) {\r\n swiper.$wrapperEl.css('scroll-snap-type', '');\r\n $wrapperEl.transition('');\r\n }\r\n if (params.hide) {\r\n clearTimeout(dragTimeout);\r\n dragTimeout = nextTick(() => {\r\n $el.css('opacity', 0);\r\n $el.transition(400);\r\n }, 1000);\r\n }\r\n emit('scrollbarDragEnd', e);\r\n if (params.snapOnRelease) {\r\n swiper.slideToClosest();\r\n }\r\n }\r\n\r\n function events(method) {\r\n const { scrollbar, touchEventsTouch, touchEventsDesktop, params, support } = swiper;\r\n const $el = scrollbar.$el;\r\n if (!$el) return;\r\n const target = $el[0];\r\n const activeListener =\r\n support.passiveListener && params.passiveListeners\r\n ? { passive: false, capture: false }\r\n : false;\r\n const passiveListener =\r\n support.passiveListener && params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n if (!target) return;\r\n const eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\r\n if (!support.touch) {\r\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\r\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\r\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\r\n } else {\r\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\r\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\r\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\r\n }\r\n }\r\n\r\n function enableDraggable() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n events('on');\r\n }\r\n function disableDraggable() {\r\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\r\n events('off');\r\n }\r\n function init() {\r\n const { scrollbar, $el: $swiperEl } = swiper;\r\n swiper.params.scrollbar = createElementIfNotDefined(\r\n swiper,\r\n swiper.originalParams.scrollbar,\r\n swiper.params.scrollbar,\r\n { el: 'swiper-scrollbar' },\r\n );\r\n const params = swiper.params.scrollbar;\r\n if (!params.el) return;\r\n\r\n let $el = $(params.el);\r\n if (\r\n swiper.params.uniqueNavElements &&\r\n typeof params.el === 'string' &&\r\n $el.length > 1 &&\r\n $swiperEl.find(params.el).length === 1\r\n ) {\r\n $el = $swiperEl.find(params.el);\r\n }\r\n\r\n $el.addClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n\r\n let $dragEl = $el.find(`.${swiper.params.scrollbar.dragClass}`);\r\n if ($dragEl.length === 0) {\r\n $dragEl = $(`
`);\r\n $el.append($dragEl);\r\n }\r\n\r\n Object.assign(scrollbar, {\r\n $el,\r\n el: $el[0],\r\n $dragEl,\r\n dragEl: $dragEl[0],\r\n });\r\n\r\n if (params.draggable) {\r\n enableDraggable();\r\n }\r\n\r\n if ($el) {\r\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\r\n }\r\n }\r\n function destroy() {\r\n const params = swiper.params.scrollbar;\r\n const $el = swiper.scrollbar.$el;\r\n if ($el) {\r\n $el.removeClass(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\r\n }\r\n\r\n disableDraggable();\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.scrollbar.enabled === false) {\r\n // eslint-disable-next-line\r\n disable();\r\n } else {\r\n init();\r\n updateSize();\r\n setTranslate();\r\n }\r\n });\r\n on('update resize observerUpdate lock unlock', () => {\r\n updateSize();\r\n });\r\n on('setTranslate', () => {\r\n setTranslate();\r\n });\r\n on('setTransition', (_s, duration) => {\r\n setTransition(duration);\r\n });\r\n on('enable disable', () => {\r\n const { $el } = swiper.scrollbar;\r\n if ($el) {\r\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\r\n }\r\n });\r\n on('destroy', () => {\r\n destroy();\r\n });\r\n\r\n const enable = () => {\r\n swiper.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n if (swiper.scrollbar.$el) {\r\n swiper.scrollbar.$el.removeClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n }\r\n init();\r\n updateSize();\r\n setTranslate();\r\n };\r\n\r\n const disable = () => {\r\n swiper.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n if (swiper.scrollbar.$el) {\r\n swiper.scrollbar.$el.addClass(swiper.params.scrollbar.scrollbarDisabledClass);\r\n }\r\n destroy();\r\n };\r\n\r\n Object.assign(swiper.scrollbar, {\r\n enable,\r\n disable,\r\n updateSize,\r\n setTranslate,\r\n init,\r\n destroy,\r\n });\r\n}\r\n","import $ from '../../shared/dom.js';\r\n\r\nexport default function Parallax({ swiper, extendParams, on }) {\r\n extendParams({\r\n parallax: {\r\n enabled: false,\r\n },\r\n });\r\n\r\n const setTransform = (el, progress) => {\r\n const { rtl } = swiper;\r\n\r\n const $el = $(el);\r\n const rtlFactor = rtl ? -1 : 1;\r\n\r\n const p = $el.attr('data-swiper-parallax') || '0';\r\n let x = $el.attr('data-swiper-parallax-x');\r\n let y = $el.attr('data-swiper-parallax-y');\r\n const scale = $el.attr('data-swiper-parallax-scale');\r\n const opacity = $el.attr('data-swiper-parallax-opacity');\r\n\r\n if (x || y) {\r\n x = x || '0';\r\n y = y || '0';\r\n } else if (swiper.isHorizontal()) {\r\n x = p;\r\n y = '0';\r\n } else {\r\n y = p;\r\n x = '0';\r\n }\r\n\r\n if (x.indexOf('%') >= 0) {\r\n x = `${parseInt(x, 10) * progress * rtlFactor}%`;\r\n } else {\r\n x = `${x * progress * rtlFactor}px`;\r\n }\r\n if (y.indexOf('%') >= 0) {\r\n y = `${parseInt(y, 10) * progress}%`;\r\n } else {\r\n y = `${y * progress}px`;\r\n }\r\n\r\n if (typeof opacity !== 'undefined' && opacity !== null) {\r\n const currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\r\n $el[0].style.opacity = currentOpacity;\r\n }\r\n if (typeof scale === 'undefined' || scale === null) {\r\n $el.transform(`translate3d(${x}, ${y}, 0px)`);\r\n } else {\r\n const currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\r\n $el.transform(`translate3d(${x}, ${y}, 0px) scale(${currentScale})`);\r\n }\r\n };\r\n\r\n const setTranslate = () => {\r\n const { $el, slides, progress, snapGrid } = swiper;\r\n $el\r\n .children(\r\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\r\n )\r\n .each((el) => {\r\n setTransform(el, progress);\r\n });\r\n slides.each((slideEl, slideIndex) => {\r\n let slideProgress = slideEl.progress;\r\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\r\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\r\n }\r\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\r\n $(slideEl)\r\n .find(\r\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\r\n )\r\n .each((el) => {\r\n setTransform(el, slideProgress);\r\n });\r\n });\r\n };\r\n\r\n const setTransition = (duration = swiper.params.speed) => {\r\n const { $el } = swiper;\r\n $el\r\n .find(\r\n '[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]',\r\n )\r\n .each((parallaxEl) => {\r\n const $parallaxEl = $(parallaxEl);\r\n let parallaxDuration =\r\n parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\r\n if (duration === 0) parallaxDuration = 0;\r\n $parallaxEl.transition(parallaxDuration);\r\n });\r\n };\r\n\r\n on('beforeInit', () => {\r\n if (!swiper.params.parallax.enabled) return;\r\n swiper.params.watchSlidesProgress = true;\r\n swiper.originalParams.watchSlidesProgress = true;\r\n });\r\n on('init', () => {\r\n if (!swiper.params.parallax.enabled) return;\r\n setTranslate();\r\n });\r\n on('setTranslate', () => {\r\n if (!swiper.params.parallax.enabled) return;\r\n setTranslate();\r\n });\r\n on('setTransition', (_swiper, duration) => {\r\n if (!swiper.params.parallax.enabled) return;\r\n setTransition(duration);\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\nimport { getTranslate } from '../../shared/utils.js';\r\n\r\nexport default function Zoom({ swiper, extendParams, on, emit }) {\r\n const window = getWindow();\r\n extendParams({\r\n zoom: {\r\n enabled: false,\r\n maxRatio: 3,\r\n minRatio: 1,\r\n toggle: true,\r\n containerClass: 'swiper-zoom-container',\r\n zoomedSlideClass: 'swiper-slide-zoomed',\r\n },\r\n });\r\n\r\n swiper.zoom = {\r\n enabled: false,\r\n };\r\n\r\n let currentScale = 1;\r\n let isScaling = false;\r\n let gesturesEnabled;\r\n let fakeGestureTouched;\r\n let fakeGestureMoved;\r\n const gesture = {\r\n $slideEl: undefined,\r\n slideWidth: undefined,\r\n slideHeight: undefined,\r\n $imageEl: undefined,\r\n $imageWrapEl: undefined,\r\n maxRatio: 3,\r\n };\r\n const image = {\r\n isTouched: undefined,\r\n isMoved: undefined,\r\n currentX: undefined,\r\n currentY: undefined,\r\n minX: undefined,\r\n minY: undefined,\r\n maxX: undefined,\r\n maxY: undefined,\r\n width: undefined,\r\n height: undefined,\r\n startX: undefined,\r\n startY: undefined,\r\n touchesStart: {},\r\n touchesCurrent: {},\r\n };\r\n const velocity = {\r\n x: undefined,\r\n y: undefined,\r\n prevPositionX: undefined,\r\n prevPositionY: undefined,\r\n prevTime: undefined,\r\n };\r\n\r\n let scale = 1;\r\n Object.defineProperty(swiper.zoom, 'scale', {\r\n get() {\r\n return scale;\r\n },\r\n set(value) {\r\n if (scale !== value) {\r\n const imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\r\n const slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\r\n emit('zoomChange', value, imageEl, slideEl);\r\n }\r\n scale = value;\r\n },\r\n });\r\n\r\n function getDistanceBetweenTouches(e) {\r\n if (e.targetTouches.length < 2) return 1;\r\n const x1 = e.targetTouches[0].pageX;\r\n const y1 = e.targetTouches[0].pageY;\r\n const x2 = e.targetTouches[1].pageX;\r\n const y2 = e.targetTouches[1].pageY;\r\n const distance = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2);\r\n return distance;\r\n }\r\n\r\n // Events\r\n function onGestureStart(e) {\r\n const support = swiper.support;\r\n const params = swiper.params.zoom;\r\n fakeGestureTouched = false;\r\n fakeGestureMoved = false;\r\n if (!support.gestures) {\r\n if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) {\r\n return;\r\n }\r\n fakeGestureTouched = true;\r\n gesture.scaleStart = getDistanceBetweenTouches(e);\r\n }\r\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\r\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\r\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n gesture.$imageEl = gesture.$slideEl\r\n .find(`.${params.containerClass}`)\r\n .eq(0)\r\n .find('picture, img, svg, canvas, .swiper-zoom-target')\r\n .eq(0);\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n if (gesture.$imageWrapEl.length === 0) {\r\n gesture.$imageEl = undefined;\r\n return;\r\n }\r\n }\r\n if (gesture.$imageEl) {\r\n gesture.$imageEl.transition(0);\r\n }\r\n isScaling = true;\r\n }\r\n function onGestureChange(e) {\r\n const support = swiper.support;\r\n const params = swiper.params.zoom;\r\n const zoom = swiper.zoom;\r\n if (!support.gestures) {\r\n if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) {\r\n return;\r\n }\r\n fakeGestureMoved = true;\r\n gesture.scaleMove = getDistanceBetweenTouches(e);\r\n }\r\n\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\r\n if (e.type === 'gesturechange') onGestureStart(e);\r\n return;\r\n }\r\n if (support.gestures) {\r\n zoom.scale = e.scale * currentScale;\r\n } else {\r\n zoom.scale = (gesture.scaleMove / gesture.scaleStart) * currentScale;\r\n }\r\n if (zoom.scale > gesture.maxRatio) {\r\n zoom.scale = gesture.maxRatio - 1 + (zoom.scale - gesture.maxRatio + 1) ** 0.5;\r\n }\r\n if (zoom.scale < params.minRatio) {\r\n zoom.scale = params.minRatio + 1 - (params.minRatio - zoom.scale + 1) ** 0.5;\r\n }\r\n gesture.$imageEl.transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n }\r\n function onGestureEnd(e) {\r\n const device = swiper.device;\r\n const support = swiper.support;\r\n const params = swiper.params.zoom;\r\n const zoom = swiper.zoom;\r\n if (!support.gestures) {\r\n if (!fakeGestureTouched || !fakeGestureMoved) {\r\n return;\r\n }\r\n if (\r\n e.type !== 'touchend' ||\r\n (e.type === 'touchend' && e.changedTouches.length < 2 && !device.android)\r\n ) {\r\n return;\r\n }\r\n fakeGestureTouched = false;\r\n fakeGestureMoved = false;\r\n }\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\r\n gesture.$imageEl\r\n .transition(swiper.params.speed)\r\n .transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n currentScale = zoom.scale;\r\n isScaling = false;\r\n if (zoom.scale === 1) gesture.$slideEl = undefined;\r\n }\r\n function onTouchStart(e) {\r\n const device = swiper.device;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n if (image.isTouched) return;\r\n if (device.android && e.cancelable) e.preventDefault();\r\n image.isTouched = true;\r\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\r\n }\r\n function onTouchMove(e) {\r\n const zoom = swiper.zoom;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n swiper.allowClick = false;\r\n if (!image.isTouched || !gesture.$slideEl) return;\r\n\r\n if (!image.isMoved) {\r\n image.width = gesture.$imageEl[0].offsetWidth;\r\n image.height = gesture.$imageEl[0].offsetHeight;\r\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\r\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\r\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\r\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\r\n gesture.$imageWrapEl.transition(0);\r\n }\r\n // Define if we need image drag\r\n const scaledWidth = image.width * zoom.scale;\r\n const scaledHeight = image.height * zoom.scale;\r\n\r\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\r\n\r\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\r\n image.maxY = -image.minY;\r\n\r\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\r\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\r\n\r\n if (!image.isMoved && !isScaling) {\r\n if (\r\n swiper.isHorizontal() &&\r\n ((Math.floor(image.minX) === Math.floor(image.startX) &&\r\n image.touchesCurrent.x < image.touchesStart.x) ||\r\n (Math.floor(image.maxX) === Math.floor(image.startX) &&\r\n image.touchesCurrent.x > image.touchesStart.x))\r\n ) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n if (\r\n !swiper.isHorizontal() &&\r\n ((Math.floor(image.minY) === Math.floor(image.startY) &&\r\n image.touchesCurrent.y < image.touchesStart.y) ||\r\n (Math.floor(image.maxY) === Math.floor(image.startY) &&\r\n image.touchesCurrent.y > image.touchesStart.y))\r\n ) {\r\n image.isTouched = false;\r\n return;\r\n }\r\n }\r\n if (e.cancelable) {\r\n e.preventDefault();\r\n }\r\n e.stopPropagation();\r\n\r\n image.isMoved = true;\r\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\r\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\r\n\r\n if (image.currentX < image.minX) {\r\n image.currentX = image.minX + 1 - (image.minX - image.currentX + 1) ** 0.8;\r\n }\r\n if (image.currentX > image.maxX) {\r\n image.currentX = image.maxX - 1 + (image.currentX - image.maxX + 1) ** 0.8;\r\n }\r\n\r\n if (image.currentY < image.minY) {\r\n image.currentY = image.minY + 1 - (image.minY - image.currentY + 1) ** 0.8;\r\n }\r\n if (image.currentY > image.maxY) {\r\n image.currentY = image.maxY - 1 + (image.currentY - image.maxY + 1) ** 0.8;\r\n }\r\n\r\n // Velocity\r\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\r\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\r\n if (!velocity.prevTime) velocity.prevTime = Date.now();\r\n velocity.x =\r\n (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\r\n velocity.y =\r\n (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\r\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\r\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\r\n velocity.prevPositionX = image.touchesCurrent.x;\r\n velocity.prevPositionY = image.touchesCurrent.y;\r\n velocity.prevTime = Date.now();\r\n\r\n gesture.$imageWrapEl.transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\r\n }\r\n function onTouchEnd() {\r\n const zoom = swiper.zoom;\r\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\r\n if (!image.isTouched || !image.isMoved) {\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n return;\r\n }\r\n image.isTouched = false;\r\n image.isMoved = false;\r\n let momentumDurationX = 300;\r\n let momentumDurationY = 300;\r\n const momentumDistanceX = velocity.x * momentumDurationX;\r\n const newPositionX = image.currentX + momentumDistanceX;\r\n const momentumDistanceY = velocity.y * momentumDurationY;\r\n const newPositionY = image.currentY + momentumDistanceY;\r\n\r\n // Fix duration\r\n if (velocity.x !== 0)\r\n momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\r\n if (velocity.y !== 0)\r\n momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\r\n const momentumDuration = Math.max(momentumDurationX, momentumDurationY);\r\n\r\n image.currentX = newPositionX;\r\n image.currentY = newPositionY;\r\n\r\n // Define if we need image drag\r\n const scaledWidth = image.width * zoom.scale;\r\n const scaledHeight = image.height * zoom.scale;\r\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\r\n image.maxX = -image.minX;\r\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\r\n image.maxY = -image.minY;\r\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\r\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\r\n\r\n gesture.$imageWrapEl\r\n .transition(momentumDuration)\r\n .transform(`translate3d(${image.currentX}px, ${image.currentY}px,0)`);\r\n }\r\n function onTransitionEnd() {\r\n const zoom = swiper.zoom;\r\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\r\n if (gesture.$imageEl) {\r\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\r\n }\r\n if (gesture.$imageWrapEl) {\r\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\r\n }\r\n\r\n zoom.scale = 1;\r\n currentScale = 1;\r\n\r\n gesture.$slideEl = undefined;\r\n gesture.$imageEl = undefined;\r\n gesture.$imageWrapEl = undefined;\r\n }\r\n }\r\n\r\n function zoomIn(e) {\r\n const zoom = swiper.zoom;\r\n const params = swiper.params.zoom;\r\n\r\n if (!gesture.$slideEl) {\r\n if (e && e.target) {\r\n gesture.$slideEl = $(e.target).closest(`.${swiper.params.slideClass}`);\r\n }\r\n if (!gesture.$slideEl) {\r\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\r\n } else {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n }\r\n\r\n gesture.$imageEl = gesture.$slideEl\r\n .find(`.${params.containerClass}`)\r\n .eq(0)\r\n .find('picture, img, svg, canvas, .swiper-zoom-target')\r\n .eq(0);\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n }\r\n if (\r\n !gesture.$imageEl ||\r\n gesture.$imageEl.length === 0 ||\r\n !gesture.$imageWrapEl ||\r\n gesture.$imageWrapEl.length === 0\r\n )\r\n return;\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.style.overflow = 'hidden';\r\n swiper.wrapperEl.style.touchAction = 'none';\r\n }\r\n\r\n gesture.$slideEl.addClass(`${params.zoomedSlideClass}`);\r\n\r\n let touchX;\r\n let touchY;\r\n let offsetX;\r\n let offsetY;\r\n let diffX;\r\n let diffY;\r\n let translateX;\r\n let translateY;\r\n let imageWidth;\r\n let imageHeight;\r\n let scaledWidth;\r\n let scaledHeight;\r\n let translateMinX;\r\n let translateMinY;\r\n let translateMaxX;\r\n let translateMaxY;\r\n let slideWidth;\r\n let slideHeight;\r\n\r\n if (typeof image.touchesStart.x === 'undefined' && e) {\r\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\r\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\r\n } else {\r\n touchX = image.touchesStart.x;\r\n touchY = image.touchesStart.y;\r\n }\r\n\r\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\r\n if (e) {\r\n slideWidth = gesture.$slideEl[0].offsetWidth;\r\n slideHeight = gesture.$slideEl[0].offsetHeight;\r\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\r\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\r\n diffX = offsetX + slideWidth / 2 - touchX;\r\n diffY = offsetY + slideHeight / 2 - touchY;\r\n\r\n imageWidth = gesture.$imageEl[0].offsetWidth;\r\n imageHeight = gesture.$imageEl[0].offsetHeight;\r\n scaledWidth = imageWidth * zoom.scale;\r\n scaledHeight = imageHeight * zoom.scale;\r\n\r\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\r\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\r\n translateMaxX = -translateMinX;\r\n translateMaxY = -translateMinY;\r\n\r\n translateX = diffX * zoom.scale;\r\n translateY = diffY * zoom.scale;\r\n\r\n if (translateX < translateMinX) {\r\n translateX = translateMinX;\r\n }\r\n if (translateX > translateMaxX) {\r\n translateX = translateMaxX;\r\n }\r\n\r\n if (translateY < translateMinY) {\r\n translateY = translateMinY;\r\n }\r\n if (translateY > translateMaxY) {\r\n translateY = translateMaxY;\r\n }\r\n } else {\r\n translateX = 0;\r\n translateY = 0;\r\n }\r\n gesture.$imageWrapEl\r\n .transition(300)\r\n .transform(`translate3d(${translateX}px, ${translateY}px,0)`);\r\n gesture.$imageEl.transition(300).transform(`translate3d(0,0,0) scale(${zoom.scale})`);\r\n }\r\n function zoomOut() {\r\n const zoom = swiper.zoom;\r\n const params = swiper.params.zoom;\r\n\r\n if (!gesture.$slideEl) {\r\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\r\n gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`);\r\n } else {\r\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\r\n }\r\n gesture.$imageEl = gesture.$slideEl\r\n .find(`.${params.containerClass}`)\r\n .eq(0)\r\n .find('picture, img, svg, canvas, .swiper-zoom-target')\r\n .eq(0);\r\n gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`);\r\n }\r\n if (\r\n !gesture.$imageEl ||\r\n gesture.$imageEl.length === 0 ||\r\n !gesture.$imageWrapEl ||\r\n gesture.$imageWrapEl.length === 0\r\n )\r\n return;\r\n if (swiper.params.cssMode) {\r\n swiper.wrapperEl.style.overflow = '';\r\n swiper.wrapperEl.style.touchAction = '';\r\n }\r\n zoom.scale = 1;\r\n currentScale = 1;\r\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\r\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\r\n gesture.$slideEl.removeClass(`${params.zoomedSlideClass}`);\r\n gesture.$slideEl = undefined;\r\n }\r\n\r\n // Toggle Zoom\r\n function zoomToggle(e) {\r\n const zoom = swiper.zoom;\r\n\r\n if (zoom.scale && zoom.scale !== 1) {\r\n // Zoom Out\r\n zoomOut();\r\n } else {\r\n // Zoom In\r\n zoomIn(e);\r\n }\r\n }\r\n\r\n function getListeners() {\r\n const support = swiper.support;\r\n const passiveListener =\r\n swiper.touchEvents.start === 'touchstart' &&\r\n support.passiveListener &&\r\n swiper.params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n const activeListenerWithCapture = support.passiveListener\r\n ? { passive: false, capture: true }\r\n : true;\r\n return { passiveListener, activeListenerWithCapture };\r\n }\r\n\r\n function getSlideSelector() {\r\n return `.${swiper.params.slideClass}`;\r\n }\r\n\r\n function toggleGestures(method) {\r\n const { passiveListener } = getListeners();\r\n const slideSelector = getSlideSelector();\r\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\r\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\r\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\r\n }\r\n function enableGestures() {\r\n if (gesturesEnabled) return;\r\n gesturesEnabled = true;\r\n toggleGestures('on');\r\n }\r\n function disableGestures() {\r\n if (!gesturesEnabled) return;\r\n gesturesEnabled = false;\r\n toggleGestures('off');\r\n }\r\n\r\n // Attach/Detach Events\r\n function enable() {\r\n const zoom = swiper.zoom;\r\n if (zoom.enabled) return;\r\n zoom.enabled = true;\r\n const support = swiper.support;\r\n const { passiveListener, activeListenerWithCapture } = getListeners();\r\n const slideSelector = getSlideSelector();\r\n\r\n // Scale image\r\n if (support.gestures) {\r\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.start,\r\n slideSelector,\r\n onGestureStart,\r\n passiveListener,\r\n );\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.move,\r\n slideSelector,\r\n onGestureChange,\r\n activeListenerWithCapture,\r\n );\r\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\r\n if (swiper.touchEvents.cancel) {\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.cancel,\r\n slideSelector,\r\n onGestureEnd,\r\n passiveListener,\r\n );\r\n }\r\n }\r\n\r\n // Move image\r\n swiper.$wrapperEl.on(\r\n swiper.touchEvents.move,\r\n `.${swiper.params.zoom.containerClass}`,\r\n onTouchMove,\r\n activeListenerWithCapture,\r\n );\r\n }\r\n function disable() {\r\n const zoom = swiper.zoom;\r\n if (!zoom.enabled) return;\r\n const support = swiper.support;\r\n zoom.enabled = false;\r\n\r\n const { passiveListener, activeListenerWithCapture } = getListeners();\r\n const slideSelector = getSlideSelector();\r\n\r\n // Scale image\r\n if (support.gestures) {\r\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\r\n } else if (swiper.touchEvents.start === 'touchstart') {\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.start,\r\n slideSelector,\r\n onGestureStart,\r\n passiveListener,\r\n );\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.move,\r\n slideSelector,\r\n onGestureChange,\r\n activeListenerWithCapture,\r\n );\r\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\r\n if (swiper.touchEvents.cancel) {\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.cancel,\r\n slideSelector,\r\n onGestureEnd,\r\n passiveListener,\r\n );\r\n }\r\n }\r\n\r\n // Move image\r\n swiper.$wrapperEl.off(\r\n swiper.touchEvents.move,\r\n `.${swiper.params.zoom.containerClass}`,\r\n onTouchMove,\r\n activeListenerWithCapture,\r\n );\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.zoom.enabled) {\r\n enable();\r\n }\r\n });\r\n on('destroy', () => {\r\n disable();\r\n });\r\n on('touchStart', (_s, e) => {\r\n if (!swiper.zoom.enabled) return;\r\n onTouchStart(e);\r\n });\r\n on('touchEnd', (_s, e) => {\r\n if (!swiper.zoom.enabled) return;\r\n onTouchEnd(e);\r\n });\r\n on('doubleTap', (_s, e) => {\r\n if (\r\n !swiper.animating &&\r\n swiper.params.zoom.enabled &&\r\n swiper.zoom.enabled &&\r\n swiper.params.zoom.toggle\r\n ) {\r\n zoomToggle(e);\r\n }\r\n });\r\n on('transitionEnd', () => {\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\r\n onTransitionEnd();\r\n }\r\n });\r\n on('slideChange', () => {\r\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\r\n onTransitionEnd();\r\n }\r\n });\r\n\r\n Object.assign(swiper.zoom, {\r\n enable,\r\n disable,\r\n in: zoomIn,\r\n out: zoomOut,\r\n toggle: zoomToggle,\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Lazy({ swiper, extendParams, on, emit }) {\r\n extendParams({\r\n lazy: {\r\n checkInView: false,\r\n enabled: false,\r\n loadPrevNext: false,\r\n loadPrevNextAmount: 1,\r\n loadOnTransitionStart: false,\r\n scrollingElement: '',\r\n\r\n elementClass: 'swiper-lazy',\r\n loadingClass: 'swiper-lazy-loading',\r\n loadedClass: 'swiper-lazy-loaded',\r\n preloaderClass: 'swiper-lazy-preloader',\r\n },\r\n });\r\n\r\n swiper.lazy = {};\r\n\r\n let scrollHandlerAttached = false;\r\n let initialImageLoaded = false;\r\n\r\n function loadInSlide(index, loadInDuplicate = true) {\r\n const params = swiper.params.lazy;\r\n if (typeof index === 'undefined') return;\r\n if (swiper.slides.length === 0) return;\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n\r\n const $slideEl = isVirtual\r\n ? swiper.$wrapperEl.children(\r\n `.${swiper.params.slideClass}[data-swiper-slide-index=\"${index}\"]`,\r\n )\r\n : swiper.slides.eq(index);\r\n\r\n const $images = $slideEl.find(\r\n `.${params.elementClass}:not(.${params.loadedClass}):not(.${params.loadingClass})`,\r\n );\r\n if (\r\n $slideEl.hasClass(params.elementClass) &&\r\n !$slideEl.hasClass(params.loadedClass) &&\r\n !$slideEl.hasClass(params.loadingClass)\r\n ) {\r\n $images.push($slideEl[0]);\r\n }\r\n if ($images.length === 0) return;\r\n\r\n $images.each((imageEl) => {\r\n const $imageEl = $(imageEl);\r\n $imageEl.addClass(params.loadingClass);\r\n\r\n const background = $imageEl.attr('data-background');\r\n const src = $imageEl.attr('data-src');\r\n const srcset = $imageEl.attr('data-srcset');\r\n const sizes = $imageEl.attr('data-sizes');\r\n const $pictureEl = $imageEl.parent('picture');\r\n\r\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, () => {\r\n if (\r\n typeof swiper === 'undefined' ||\r\n swiper === null ||\r\n !swiper ||\r\n (swiper && !swiper.params) ||\r\n swiper.destroyed\r\n )\r\n return;\r\n if (background) {\r\n $imageEl.css('background-image', `url(\"${background}\")`);\r\n $imageEl.removeAttr('data-background');\r\n } else {\r\n if (srcset) {\r\n $imageEl.attr('srcset', srcset);\r\n $imageEl.removeAttr('data-srcset');\r\n }\r\n if (sizes) {\r\n $imageEl.attr('sizes', sizes);\r\n $imageEl.removeAttr('data-sizes');\r\n }\r\n if ($pictureEl.length) {\r\n $pictureEl.children('source').each((sourceEl) => {\r\n const $source = $(sourceEl);\r\n\r\n if ($source.attr('data-srcset')) {\r\n $source.attr('srcset', $source.attr('data-srcset'));\r\n $source.removeAttr('data-srcset');\r\n }\r\n });\r\n }\r\n if (src) {\r\n $imageEl.attr('src', src);\r\n $imageEl.removeAttr('data-src');\r\n }\r\n }\r\n\r\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\r\n $slideEl.find(`.${params.preloaderClass}`).remove();\r\n if (swiper.params.loop && loadInDuplicate) {\r\n const slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\r\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\r\n const originalSlide = swiper.$wrapperEl.children(\r\n `[data-swiper-slide-index=\"${slideOriginalIndex}\"]:not(.${swiper.params.slideDuplicateClass})`,\r\n );\r\n loadInSlide(originalSlide.index(), false);\r\n } else {\r\n const duplicatedSlide = swiper.$wrapperEl.children(\r\n `.${swiper.params.slideDuplicateClass}[data-swiper-slide-index=\"${slideOriginalIndex}\"]`,\r\n );\r\n loadInSlide(duplicatedSlide.index(), false);\r\n }\r\n }\r\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\r\n if (swiper.params.autoHeight) {\r\n swiper.updateAutoHeight();\r\n }\r\n });\r\n\r\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\r\n });\r\n }\r\n\r\n function load() {\r\n const { $wrapperEl, params: swiperParams, slides, activeIndex } = swiper;\r\n const isVirtual = swiper.virtual && swiperParams.virtual.enabled;\r\n const params = swiperParams.lazy;\r\n\r\n let slidesPerView = swiperParams.slidesPerView;\r\n if (slidesPerView === 'auto') {\r\n slidesPerView = 0;\r\n }\r\n\r\n function slideExist(index) {\r\n if (isVirtual) {\r\n if (\r\n $wrapperEl.children(`.${swiperParams.slideClass}[data-swiper-slide-index=\"${index}\"]`)\r\n .length\r\n ) {\r\n return true;\r\n }\r\n } else if (slides[index]) return true;\r\n return false;\r\n }\r\n\r\n function slideIndex(slideEl) {\r\n if (isVirtual) {\r\n return $(slideEl).attr('data-swiper-slide-index');\r\n }\r\n return $(slideEl).index();\r\n }\r\n\r\n if (!initialImageLoaded) initialImageLoaded = true;\r\n if (swiper.params.watchSlidesProgress) {\r\n $wrapperEl.children(`.${swiperParams.slideVisibleClass}`).each((slideEl) => {\r\n const index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\r\n loadInSlide(index);\r\n });\r\n } else if (slidesPerView > 1) {\r\n for (let i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\r\n if (slideExist(i)) loadInSlide(i);\r\n }\r\n } else {\r\n loadInSlide(activeIndex);\r\n }\r\n if (params.loadPrevNext) {\r\n if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) {\r\n const amount = params.loadPrevNextAmount;\r\n const spv = Math.ceil(slidesPerView);\r\n const maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\r\n const minIndex = Math.max(activeIndex - Math.max(spv, amount), 0);\r\n // Next Slides\r\n for (let i = activeIndex + spv; i < maxIndex; i += 1) {\r\n if (slideExist(i)) loadInSlide(i);\r\n }\r\n // Prev Slides\r\n for (let i = minIndex; i < activeIndex; i += 1) {\r\n if (slideExist(i)) loadInSlide(i);\r\n }\r\n } else {\r\n const nextSlide = $wrapperEl.children(`.${swiperParams.slideNextClass}`);\r\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\r\n\r\n const prevSlide = $wrapperEl.children(`.${swiperParams.slidePrevClass}`);\r\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\r\n }\r\n }\r\n }\r\n function checkInViewOnLoad() {\r\n const window = getWindow();\r\n if (!swiper || swiper.destroyed) return;\r\n const $scrollElement = swiper.params.lazy.scrollingElement\r\n ? $(swiper.params.lazy.scrollingElement)\r\n : $(window);\r\n const isWindow = $scrollElement[0] === window;\r\n const scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\r\n const scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\r\n const swiperOffset = swiper.$el.offset();\r\n const { rtlTranslate: rtl } = swiper;\r\n\r\n let inView = false;\r\n\r\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\r\n const swiperCoord = [\r\n [swiperOffset.left, swiperOffset.top],\r\n [swiperOffset.left + swiper.width, swiperOffset.top],\r\n [swiperOffset.left, swiperOffset.top + swiper.height],\r\n [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height],\r\n ];\r\n for (let i = 0; i < swiperCoord.length; i += 1) {\r\n const point = swiperCoord[i];\r\n if (\r\n point[0] >= 0 &&\r\n point[0] <= scrollElementWidth &&\r\n point[1] >= 0 &&\r\n point[1] <= scrollElementHeight\r\n ) {\r\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\r\n inView = true;\r\n }\r\n }\r\n\r\n const passiveListener =\r\n swiper.touchEvents.start === 'touchstart' &&\r\n swiper.support.passiveListener &&\r\n swiper.params.passiveListeners\r\n ? { passive: true, capture: false }\r\n : false;\r\n\r\n if (inView) {\r\n load();\r\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\r\n } else if (!scrollHandlerAttached) {\r\n scrollHandlerAttached = true;\r\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\r\n }\r\n }\r\n\r\n on('beforeInit', () => {\r\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\r\n swiper.params.preloadImages = false;\r\n }\r\n });\r\n on('init', () => {\r\n if (swiper.params.lazy.enabled) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n });\r\n on('scroll', () => {\r\n if (\r\n swiper.params.freeMode &&\r\n swiper.params.freeMode.enabled &&\r\n !swiper.params.freeMode.sticky\r\n ) {\r\n load();\r\n }\r\n });\r\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', () => {\r\n if (swiper.params.lazy.enabled) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n });\r\n on('transitionStart', () => {\r\n if (swiper.params.lazy.enabled) {\r\n if (\r\n swiper.params.lazy.loadOnTransitionStart ||\r\n (!swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded)\r\n ) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n }\r\n });\r\n on('transitionEnd', () => {\r\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\r\n if (swiper.params.lazy.checkInView) {\r\n checkInViewOnLoad();\r\n } else {\r\n load();\r\n }\r\n }\r\n });\r\n on('slideChange', () => {\r\n const { lazy, cssMode, watchSlidesProgress, touchReleaseOnEdges, resistanceRatio } =\r\n swiper.params;\r\n if (\r\n lazy.enabled &&\r\n (cssMode || (watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0)))\r\n ) {\r\n load();\r\n }\r\n });\r\n\r\n on('destroy', () => {\r\n if (!swiper.$el) return;\r\n swiper.$el\r\n .find(`.${swiper.params.lazy.loadingClass}`)\r\n .removeClass(swiper.params.lazy.loadingClass);\r\n });\r\n\r\n Object.assign(swiper.lazy, {\r\n load,\r\n loadInSlide,\r\n });\r\n}\r\n","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\r\nimport { nextTick } from '../../shared/utils.js';\r\n\r\nexport default function Controller({ swiper, extendParams, on }) {\r\n extendParams({\r\n controller: {\r\n control: undefined,\r\n inverse: false,\r\n by: 'slide', // or 'container'\r\n },\r\n });\r\n\r\n swiper.controller = {\r\n control: undefined,\r\n };\r\n\r\n function LinearSpline(x, y) {\r\n const binarySearch = (function search() {\r\n let maxIndex;\r\n let minIndex;\r\n let guess;\r\n return (array, val) => {\r\n minIndex = -1;\r\n maxIndex = array.length;\r\n while (maxIndex - minIndex > 1) {\r\n guess = (maxIndex + minIndex) >> 1;\r\n if (array[guess] <= val) {\r\n minIndex = guess;\r\n } else {\r\n maxIndex = guess;\r\n }\r\n }\r\n return maxIndex;\r\n };\r\n })();\r\n this.x = x;\r\n this.y = y;\r\n this.lastIndex = x.length - 1;\r\n // Given an x value (x2), return the expected y2 value:\r\n // (x1,y1) is the known point before given value,\r\n // (x3,y3) is the known point after given value.\r\n let i1;\r\n let i3;\r\n\r\n this.interpolate = function interpolate(x2) {\r\n if (!x2) return 0;\r\n\r\n // Get the indexes of x1 and x3 (the array indexes before and after given x2):\r\n i3 = binarySearch(this.x, x2);\r\n i1 = i3 - 1;\r\n\r\n // We have our indexes i1 & i3, so we can calculate already:\r\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\r\n return (\r\n ((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1]) + this.y[i1]\r\n );\r\n };\r\n return this;\r\n }\r\n // xxx: for now i will just save one spline function to to\r\n function getInterpolateFunction(c) {\r\n if (!swiper.controller.spline) {\r\n swiper.controller.spline = swiper.params.loop\r\n ? new LinearSpline(swiper.slidesGrid, c.slidesGrid)\r\n : new LinearSpline(swiper.snapGrid, c.snapGrid);\r\n }\r\n }\r\n function setTranslate(_t, byController) {\r\n const controlled = swiper.controller.control;\r\n let multiplier;\r\n let controlledTranslate;\r\n const Swiper = swiper.constructor;\r\n function setControlledTranslate(c) {\r\n // this will create an Interpolate function based on the snapGrids\r\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\r\n // it makes sense to create this only once and recall it for the interpolation\r\n // the function does a lot of value caching for performance\r\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\r\n if (swiper.params.controller.by === 'slide') {\r\n getInterpolateFunction(c);\r\n // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\r\n // but it did not work out\r\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\r\n }\r\n\r\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\r\n multiplier =\r\n (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\r\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\r\n }\r\n\r\n if (swiper.params.controller.inverse) {\r\n controlledTranslate = c.maxTranslate() - controlledTranslate;\r\n }\r\n c.updateProgress(controlledTranslate);\r\n c.setTranslate(controlledTranslate, swiper);\r\n c.updateActiveIndex();\r\n c.updateSlidesClasses();\r\n }\r\n if (Array.isArray(controlled)) {\r\n for (let i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTranslate(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTranslate(controlled);\r\n }\r\n }\r\n function setTransition(duration, byController) {\r\n const Swiper = swiper.constructor;\r\n const controlled = swiper.controller.control;\r\n let i;\r\n function setControlledTransition(c) {\r\n c.setTransition(duration, swiper);\r\n if (duration !== 0) {\r\n c.transitionStart();\r\n if (c.params.autoHeight) {\r\n nextTick(() => {\r\n c.updateAutoHeight();\r\n });\r\n }\r\n c.$wrapperEl.transitionEnd(() => {\r\n if (!controlled) return;\r\n if (c.params.loop && swiper.params.controller.by === 'slide') {\r\n c.loopFix();\r\n }\r\n c.transitionEnd();\r\n });\r\n }\r\n }\r\n if (Array.isArray(controlled)) {\r\n for (i = 0; i < controlled.length; i += 1) {\r\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\r\n setControlledTransition(controlled[i]);\r\n }\r\n }\r\n } else if (controlled instanceof Swiper && byController !== controlled) {\r\n setControlledTransition(controlled);\r\n }\r\n }\r\n\r\n function removeSpline() {\r\n if (!swiper.controller.control) return;\r\n if (swiper.controller.spline) {\r\n swiper.controller.spline = undefined;\r\n delete swiper.controller.spline;\r\n }\r\n }\r\n on('beforeInit', () => {\r\n swiper.controller.control = swiper.params.controller.control;\r\n });\r\n on('update', () => {\r\n removeSpline();\r\n });\r\n on('resize', () => {\r\n removeSpline();\r\n });\r\n on('observerUpdate', () => {\r\n removeSpline();\r\n });\r\n on('setTranslate', (_s, translate, byController) => {\r\n if (!swiper.controller.control) return;\r\n swiper.controller.setTranslate(translate, byController);\r\n });\r\n on('setTransition', (_s, duration, byController) => {\r\n if (!swiper.controller.control) return;\r\n swiper.controller.setTransition(duration, byController);\r\n });\r\n\r\n Object.assign(swiper.controller, {\r\n setTranslate,\r\n setTransition,\r\n });\r\n}\r\n","import classesToSelector from '../../shared/classes-to-selector.js';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function A11y({ swiper, extendParams, on }) {\r\n extendParams({\r\n a11y: {\r\n enabled: true,\r\n notificationClass: 'swiper-notification',\r\n prevSlideMessage: 'Previous slide',\r\n nextSlideMessage: 'Next slide',\r\n firstSlideMessage: 'This is the first slide',\r\n lastSlideMessage: 'This is the last slide',\r\n paginationBulletMessage: 'Go to slide {{index}}',\r\n slideLabelMessage: '{{index}} / {{slidesLength}}',\r\n containerMessage: null,\r\n containerRoleDescriptionMessage: null,\r\n itemRoleDescriptionMessage: null,\r\n slideRole: 'group',\r\n id: null,\r\n },\r\n });\r\n\r\n let liveRegion = null;\r\n\r\n function notify(message) {\r\n const notification = liveRegion;\r\n if (notification.length === 0) return;\r\n notification.html('');\r\n notification.html(message);\r\n }\r\n\r\n function getRandomNumber(size = 16) {\r\n const randomChar = () => Math.round(16 * Math.random()).toString(16);\r\n return 'x'.repeat(size).replace(/x/g, randomChar);\r\n }\r\n function makeElFocusable($el) {\r\n $el.attr('tabIndex', '0');\r\n }\r\n function makeElNotFocusable($el) {\r\n $el.attr('tabIndex', '-1');\r\n }\r\n function addElRole($el, role) {\r\n $el.attr('role', role);\r\n }\r\n function addElRoleDescription($el, description) {\r\n $el.attr('aria-roledescription', description);\r\n }\r\n function addElControls($el, controls) {\r\n $el.attr('aria-controls', controls);\r\n }\r\n function addElLabel($el, label) {\r\n $el.attr('aria-label', label);\r\n }\r\n function addElId($el, id) {\r\n $el.attr('id', id);\r\n }\r\n function addElLive($el, live) {\r\n $el.attr('aria-live', live);\r\n }\r\n function disableEl($el) {\r\n $el.attr('aria-disabled', true);\r\n }\r\n function enableEl($el) {\r\n $el.attr('aria-disabled', false);\r\n }\r\n\r\n function onEnterOrSpaceKey(e) {\r\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\r\n const params = swiper.params.a11y;\r\n const $targetEl = $(e.target);\r\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\r\n if (!(swiper.isEnd && !swiper.params.loop)) {\r\n swiper.slideNext();\r\n }\r\n if (swiper.isEnd) {\r\n notify(params.lastSlideMessage);\r\n } else {\r\n notify(params.nextSlideMessage);\r\n }\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\r\n if (!(swiper.isBeginning && !swiper.params.loop)) {\r\n swiper.slidePrev();\r\n }\r\n if (swiper.isBeginning) {\r\n notify(params.firstSlideMessage);\r\n } else {\r\n notify(params.prevSlideMessage);\r\n }\r\n }\r\n\r\n if (\r\n swiper.pagination &&\r\n $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))\r\n ) {\r\n $targetEl[0].click();\r\n }\r\n }\r\n\r\n function updateNavigation() {\r\n if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\r\n const { $nextEl, $prevEl } = swiper.navigation;\r\n\r\n if ($prevEl && $prevEl.length > 0) {\r\n if (swiper.isBeginning) {\r\n disableEl($prevEl);\r\n makeElNotFocusable($prevEl);\r\n } else {\r\n enableEl($prevEl);\r\n makeElFocusable($prevEl);\r\n }\r\n }\r\n if ($nextEl && $nextEl.length > 0) {\r\n if (swiper.isEnd) {\r\n disableEl($nextEl);\r\n makeElNotFocusable($nextEl);\r\n } else {\r\n enableEl($nextEl);\r\n makeElFocusable($nextEl);\r\n }\r\n }\r\n }\r\n\r\n function hasPagination() {\r\n return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\r\n }\r\n\r\n function hasClickablePagination() {\r\n return hasPagination() && swiper.params.pagination.clickable;\r\n }\r\n\r\n function updatePagination() {\r\n const params = swiper.params.a11y;\r\n if (!hasPagination()) return;\r\n swiper.pagination.bullets.each((bulletEl) => {\r\n const $bulletEl = $(bulletEl);\r\n if (swiper.params.pagination.clickable) {\r\n makeElFocusable($bulletEl);\r\n if (!swiper.params.pagination.renderBullet) {\r\n addElRole($bulletEl, 'button');\r\n addElLabel(\r\n $bulletEl,\r\n params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1),\r\n );\r\n }\r\n }\r\n if ($bulletEl.is(`.${swiper.params.pagination.bulletActiveClass}`)) {\r\n $bulletEl.attr('aria-current', 'true');\r\n } else {\r\n $bulletEl.removeAttr('aria-current');\r\n }\r\n });\r\n }\r\n\r\n const initNavEl = ($el, wrapperId, message) => {\r\n makeElFocusable($el);\r\n if ($el[0].tagName !== 'BUTTON') {\r\n addElRole($el, 'button');\r\n $el.on('keydown', onEnterOrSpaceKey);\r\n }\r\n addElLabel($el, message);\r\n addElControls($el, wrapperId);\r\n };\r\n\r\n const handleFocus = (e) => {\r\n const slideEl = e.target.closest(`.${swiper.params.slideClass}`);\r\n if (!slideEl || !swiper.slides.includes(slideEl)) return;\r\n const isActive = swiper.slides.indexOf(slideEl) === swiper.activeIndex;\r\n const isVisible =\r\n swiper.params.watchSlidesProgress &&\r\n swiper.visibleSlides &&\r\n swiper.visibleSlides.includes(slideEl);\r\n if (isActive || isVisible) return;\r\n swiper.slideTo(swiper.slides.indexOf(slideEl), 0);\r\n };\r\n\r\n const initSlides = () => {\r\n const params = swiper.params.a11y;\r\n if (params.itemRoleDescriptionMessage) {\r\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\r\n }\r\n if (params.slideRole) {\r\n addElRole($(swiper.slides), params.slideRole);\r\n }\r\n\r\n const slidesLength = swiper.params.loop\r\n ? swiper.slides.filter((el) => !el.classList.contains(swiper.params.slideDuplicateClass))\r\n .length\r\n : swiper.slides.length;\r\n if (params.slideLabelMessage) {\r\n swiper.slides.each((slideEl, index) => {\r\n const $slideEl = $(slideEl);\r\n const slideIndex = swiper.params.loop\r\n ? parseInt($slideEl.attr('data-swiper-slide-index'), 10)\r\n : index;\r\n const ariaLabelMessage = params.slideLabelMessage\r\n .replace(/\\{\\{index\\}\\}/, slideIndex + 1)\r\n .replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\r\n addElLabel($slideEl, ariaLabelMessage);\r\n });\r\n }\r\n };\r\n\r\n const init = () => {\r\n const params = swiper.params.a11y;\r\n\r\n swiper.$el.append(liveRegion);\r\n\r\n // Container\r\n const $containerEl = swiper.$el;\r\n if (params.containerRoleDescriptionMessage) {\r\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\r\n }\r\n if (params.containerMessage) {\r\n addElLabel($containerEl, params.containerMessage);\r\n }\r\n\r\n // Wrapper\r\n const $wrapperEl = swiper.$wrapperEl;\r\n const wrapperId = params.id || $wrapperEl.attr('id') || `swiper-wrapper-${getRandomNumber(16)}`;\r\n const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\r\n addElId($wrapperEl, wrapperId);\r\n addElLive($wrapperEl, live);\r\n\r\n // Slide\r\n initSlides();\r\n\r\n // Navigation\r\n let $nextEl;\r\n let $prevEl;\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n\r\n if ($nextEl && $nextEl.length) {\r\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\r\n }\r\n if ($prevEl && $prevEl.length) {\r\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\r\n }\r\n\r\n // Pagination\r\n if (hasClickablePagination()) {\r\n swiper.pagination.$el.on(\r\n 'keydown',\r\n classesToSelector(swiper.params.pagination.bulletClass),\r\n onEnterOrSpaceKey,\r\n );\r\n }\r\n\r\n // Tab focus\r\n swiper.$el.on('focus', handleFocus, true);\r\n };\r\n function destroy() {\r\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\r\n\r\n let $nextEl;\r\n let $prevEl;\r\n if (swiper.navigation && swiper.navigation.$nextEl) {\r\n $nextEl = swiper.navigation.$nextEl;\r\n }\r\n if (swiper.navigation && swiper.navigation.$prevEl) {\r\n $prevEl = swiper.navigation.$prevEl;\r\n }\r\n if ($nextEl) {\r\n $nextEl.off('keydown', onEnterOrSpaceKey);\r\n }\r\n if ($prevEl) {\r\n $prevEl.off('keydown', onEnterOrSpaceKey);\r\n }\r\n\r\n // Pagination\r\n if (hasClickablePagination()) {\r\n swiper.pagination.$el.off(\r\n 'keydown',\r\n classesToSelector(swiper.params.pagination.bulletClass),\r\n onEnterOrSpaceKey,\r\n );\r\n }\r\n\r\n // Tab focus\r\n swiper.$el.off('focus', handleFocus, true);\r\n }\r\n\r\n on('beforeInit', () => {\r\n liveRegion = $(\r\n ``,\r\n );\r\n });\r\n\r\n on('afterInit', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n init();\r\n });\r\n on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n initSlides();\r\n });\r\n on('fromEdge toEdge afterInit lock unlock', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n updateNavigation();\r\n });\r\n on('paginationUpdate', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n updatePagination();\r\n });\r\n on('destroy', () => {\r\n if (!swiper.params.a11y.enabled) return;\r\n destroy();\r\n });\r\n}\r\n","import { getWindow } from 'ssr-window';\r\n\r\nexport default function History({ swiper, extendParams, on }) {\r\n extendParams({\r\n history: {\r\n enabled: false,\r\n root: '',\r\n replaceState: false,\r\n key: 'slides',\r\n keepQuery: false,\r\n },\r\n });\r\n\r\n let initialized = false;\r\n let paths = {};\r\n\r\n const slugify = (text) => {\r\n return text\r\n .toString()\r\n .replace(/\\s+/g, '-')\r\n .replace(/[^\\w-]+/g, '')\r\n .replace(/--+/g, '-')\r\n .replace(/^-+/, '')\r\n .replace(/-+$/, '');\r\n };\r\n\r\n const getPathValues = (urlOverride) => {\r\n const window = getWindow();\r\n let location;\r\n if (urlOverride) {\r\n location = new URL(urlOverride);\r\n } else {\r\n location = window.location;\r\n }\r\n const pathArray = location.pathname\r\n .slice(1)\r\n .split('/')\r\n .filter((part) => part !== '');\r\n const total = pathArray.length;\r\n const key = pathArray[total - 2];\r\n const value = pathArray[total - 1];\r\n return { key, value };\r\n };\r\n const setHistory = (key, index) => {\r\n const window = getWindow();\r\n if (!initialized || !swiper.params.history.enabled) return;\r\n let location;\r\n if (swiper.params.url) {\r\n location = new URL(swiper.params.url);\r\n } else {\r\n location = window.location;\r\n }\r\n const slide = swiper.slides.eq(index);\r\n let value = slugify(slide.attr('data-history'));\r\n if (swiper.params.history.root.length > 0) {\r\n let root = swiper.params.history.root;\r\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\r\n value = `${root}/${key}/${value}`;\r\n } else if (!location.pathname.includes(key)) {\r\n value = `${key}/${value}`;\r\n }\r\n if (swiper.params.history.keepQuery) {\r\n value += location.search;\r\n }\r\n const currentState = window.history.state;\r\n if (currentState && currentState.value === value) {\r\n return;\r\n }\r\n if (swiper.params.history.replaceState) {\r\n window.history.replaceState({ value }, null, value);\r\n } else {\r\n window.history.pushState({ value }, null, value);\r\n }\r\n };\r\n\r\n const scrollToSlide = (speed, value, runCallbacks) => {\r\n if (value) {\r\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n const slide = swiper.slides.eq(i);\r\n const slideHistory = slugify(slide.attr('data-history'));\r\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n const index = slide.index();\r\n swiper.slideTo(index, speed, runCallbacks);\r\n }\r\n }\r\n } else {\r\n swiper.slideTo(0, speed, runCallbacks);\r\n }\r\n };\r\n\r\n const setHistoryPopState = () => {\r\n paths = getPathValues(swiper.params.url);\r\n scrollToSlide(swiper.params.speed, paths.value, false);\r\n };\r\n\r\n const init = () => {\r\n const window = getWindow();\r\n if (!swiper.params.history) return;\r\n if (!window.history || !window.history.pushState) {\r\n swiper.params.history.enabled = false;\r\n swiper.params.hashNavigation.enabled = true;\r\n return;\r\n }\r\n initialized = true;\r\n paths = getPathValues(swiper.params.url);\r\n if (!paths.key && !paths.value) return;\r\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\r\n if (!swiper.params.history.replaceState) {\r\n window.addEventListener('popstate', setHistoryPopState);\r\n }\r\n };\r\n const destroy = () => {\r\n const window = getWindow();\r\n if (!swiper.params.history.replaceState) {\r\n window.removeEventListener('popstate', setHistoryPopState);\r\n }\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.history.enabled) {\r\n init();\r\n }\r\n });\r\n on('destroy', () => {\r\n if (swiper.params.history.enabled) {\r\n destroy();\r\n }\r\n });\r\n on('transitionEnd _freeModeNoMomentumRelease', () => {\r\n if (initialized) {\r\n setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n });\r\n on('slideChange', () => {\r\n if (initialized && swiper.params.cssMode) {\r\n setHistory(swiper.params.history.key, swiper.activeIndex);\r\n }\r\n });\r\n}\r\n","import { getWindow, getDocument } from 'ssr-window';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function HashNavigation({ swiper, extendParams, emit, on }) {\r\n let initialized = false;\r\n const document = getDocument();\r\n const window = getWindow();\r\n extendParams({\r\n hashNavigation: {\r\n enabled: false,\r\n replaceState: false,\r\n watchState: false,\r\n },\r\n });\r\n const onHashChange = () => {\r\n emit('hashChange');\r\n const newHash = document.location.hash.replace('#', '');\r\n const activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\r\n if (newHash !== activeSlideHash) {\r\n const newIndex = swiper.$wrapperEl\r\n .children(`.${swiper.params.slideClass}[data-hash=\"${newHash}\"]`)\r\n .index();\r\n if (typeof newIndex === 'undefined') return;\r\n swiper.slideTo(newIndex);\r\n }\r\n };\r\n const setHash = () => {\r\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\r\n if (\r\n swiper.params.hashNavigation.replaceState &&\r\n window.history &&\r\n window.history.replaceState\r\n ) {\r\n window.history.replaceState(\r\n null,\r\n null,\r\n `#${swiper.slides.eq(swiper.activeIndex).attr('data-hash')}` || '',\r\n );\r\n emit('hashSet');\r\n } else {\r\n const slide = swiper.slides.eq(swiper.activeIndex);\r\n const hash = slide.attr('data-hash') || slide.attr('data-history');\r\n document.location.hash = hash || '';\r\n emit('hashSet');\r\n }\r\n };\r\n const init = () => {\r\n if (\r\n !swiper.params.hashNavigation.enabled ||\r\n (swiper.params.history && swiper.params.history.enabled)\r\n )\r\n return;\r\n initialized = true;\r\n const hash = document.location.hash.replace('#', '');\r\n if (hash) {\r\n const speed = 0;\r\n for (let i = 0, length = swiper.slides.length; i < length; i += 1) {\r\n const slide = swiper.slides.eq(i);\r\n const slideHash = slide.attr('data-hash') || slide.attr('data-history');\r\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\r\n const index = slide.index();\r\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\r\n }\r\n }\r\n }\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(window).on('hashchange', onHashChange);\r\n }\r\n };\r\n const destroy = () => {\r\n if (swiper.params.hashNavigation.watchState) {\r\n $(window).off('hashchange', onHashChange);\r\n }\r\n };\r\n\r\n on('init', () => {\r\n if (swiper.params.hashNavigation.enabled) {\r\n init();\r\n }\r\n });\r\n on('destroy', () => {\r\n if (swiper.params.hashNavigation.enabled) {\r\n destroy();\r\n }\r\n });\r\n on('transitionEnd _freeModeNoMomentumRelease', () => {\r\n if (initialized) {\r\n setHash();\r\n }\r\n });\r\n on('slideChange', () => {\r\n if (initialized && swiper.params.cssMode) {\r\n setHash();\r\n }\r\n });\r\n}\r\n","/* eslint no-underscore-dangle: \"off\" */\r\n/* eslint no-use-before-define: \"off\" */\r\nimport { getDocument } from 'ssr-window';\r\nimport { nextTick } from '../../shared/utils.js';\r\n\r\nexport default function Autoplay({ swiper, extendParams, on, emit }) {\r\n let timeout;\r\n\r\n swiper.autoplay = {\r\n running: false,\r\n paused: false,\r\n };\r\n\r\n extendParams({\r\n autoplay: {\r\n enabled: false,\r\n delay: 3000,\r\n waitForTransition: true,\r\n disableOnInteraction: true,\r\n stopOnLastSlide: false,\r\n reverseDirection: false,\r\n pauseOnMouseEnter: false,\r\n },\r\n });\r\n\r\n function run() {\r\n const $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\r\n let delay = swiper.params.autoplay.delay;\r\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\r\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\r\n }\r\n clearTimeout(timeout);\r\n timeout = nextTick(() => {\r\n let autoplayResult;\r\n if (swiper.params.autoplay.reverseDirection) {\r\n if (swiper.params.loop) {\r\n swiper.loopFix();\r\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.isBeginning) {\r\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n autoplayResult = swiper.slideTo(\r\n swiper.slides.length - 1,\r\n swiper.params.speed,\r\n true,\r\n true,\r\n );\r\n emit('autoplay');\r\n } else {\r\n stop();\r\n }\r\n } else if (swiper.params.loop) {\r\n swiper.loopFix();\r\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.isEnd) {\r\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\r\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\r\n emit('autoplay');\r\n } else {\r\n stop();\r\n }\r\n if (swiper.params.cssMode && swiper.autoplay.running) run();\r\n else if (autoplayResult === false) {\r\n run();\r\n }\r\n }, delay);\r\n }\r\n function start() {\r\n if (typeof timeout !== 'undefined') return false;\r\n if (swiper.autoplay.running) return false;\r\n swiper.autoplay.running = true;\r\n emit('autoplayStart');\r\n run();\r\n return true;\r\n }\r\n function stop() {\r\n if (!swiper.autoplay.running) return false;\r\n if (typeof timeout === 'undefined') return false;\r\n\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = undefined;\r\n }\r\n swiper.autoplay.running = false;\r\n emit('autoplayStop');\r\n return true;\r\n }\r\n function pause(speed) {\r\n if (!swiper.autoplay.running) return;\r\n if (swiper.autoplay.paused) return;\r\n if (timeout) clearTimeout(timeout);\r\n swiper.autoplay.paused = true;\r\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\r\n swiper.autoplay.paused = false;\r\n run();\r\n } else {\r\n ['transitionend', 'webkitTransitionEnd'].forEach((event) => {\r\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\r\n });\r\n }\r\n }\r\n function onVisibilityChange() {\r\n const document = getDocument();\r\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\r\n pause();\r\n }\r\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\r\n run();\r\n swiper.autoplay.paused = false;\r\n }\r\n }\r\n function onTransitionEnd(e) {\r\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\r\n if (e.target !== swiper.$wrapperEl[0]) return;\r\n ['transitionend', 'webkitTransitionEnd'].forEach((event) => {\r\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\r\n });\r\n swiper.autoplay.paused = false;\r\n if (!swiper.autoplay.running) {\r\n stop();\r\n } else {\r\n run();\r\n }\r\n }\r\n function onMouseEnter() {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n stop();\r\n } else {\r\n emit('autoplayPause');\r\n pause();\r\n }\r\n\r\n ['transitionend', 'webkitTransitionEnd'].forEach((event) => {\r\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\r\n });\r\n }\r\n function onMouseLeave() {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n return;\r\n }\r\n swiper.autoplay.paused = false;\r\n emit('autoplayResume');\r\n run();\r\n }\r\n function attachMouseEvents() {\r\n if (swiper.params.autoplay.pauseOnMouseEnter) {\r\n swiper.$el.on('mouseenter', onMouseEnter);\r\n swiper.$el.on('mouseleave', onMouseLeave);\r\n }\r\n }\r\n function detachMouseEvents() {\r\n swiper.$el.off('mouseenter', onMouseEnter);\r\n swiper.$el.off('mouseleave', onMouseLeave);\r\n }\r\n\r\n on('init', () => {\r\n if (swiper.params.autoplay.enabled) {\r\n start();\r\n const document = getDocument();\r\n document.addEventListener('visibilitychange', onVisibilityChange);\r\n attachMouseEvents();\r\n }\r\n });\r\n on('beforeTransitionStart', (_s, speed, internal) => {\r\n if (swiper.autoplay.running) {\r\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\r\n swiper.autoplay.pause(speed);\r\n } else {\r\n stop();\r\n }\r\n }\r\n });\r\n on('sliderFirstMove', () => {\r\n if (swiper.autoplay.running) {\r\n if (swiper.params.autoplay.disableOnInteraction) {\r\n stop();\r\n } else {\r\n pause();\r\n }\r\n }\r\n });\r\n on('touchEnd', () => {\r\n if (\r\n swiper.params.cssMode &&\r\n swiper.autoplay.paused &&\r\n !swiper.params.autoplay.disableOnInteraction\r\n ) {\r\n run();\r\n }\r\n });\r\n on('destroy', () => {\r\n detachMouseEvents();\r\n if (swiper.autoplay.running) {\r\n stop();\r\n }\r\n const document = getDocument();\r\n document.removeEventListener('visibilitychange', onVisibilityChange);\r\n });\r\n\r\n Object.assign(swiper.autoplay, {\r\n pause,\r\n run,\r\n start,\r\n stop,\r\n });\r\n}\r\n","import { isObject } from '../../shared/utils.js';\r\nimport $ from '../../shared/dom.js';\r\n\r\nexport default function Thumb({ swiper, extendParams, on }) {\r\n extendParams({\r\n thumbs: {\r\n swiper: null,\r\n multipleActiveThumbs: true,\r\n autoScrollOffset: 0,\r\n slideThumbActiveClass: 'swiper-slide-thumb-active',\r\n thumbsContainerClass: 'swiper-thumbs',\r\n },\r\n });\r\n\r\n let initialized = false;\r\n let swiperCreated = false;\r\n\r\n swiper.thumbs = {\r\n swiper: null,\r\n };\r\n\r\n function onThumbClick() {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n\r\n const clickedIndex = thumbsSwiper.clickedIndex;\r\n const clickedSlide = thumbsSwiper.clickedSlide;\r\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass))\r\n return;\r\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\r\n let slideToIndex;\r\n if (thumbsSwiper.params.loop) {\r\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\r\n } else {\r\n slideToIndex = clickedIndex;\r\n }\r\n if (swiper.params.loop) {\r\n let currentIndex = swiper.activeIndex;\r\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\r\n swiper.loopFix();\r\n // eslint-disable-next-line\r\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\r\n currentIndex = swiper.activeIndex;\r\n }\r\n const prevIndex = swiper.slides\r\n .eq(currentIndex)\r\n .prevAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n const nextIndex = swiper.slides\r\n .eq(currentIndex)\r\n .nextAll(`[data-swiper-slide-index=\"${slideToIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;\r\n else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;\r\n else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;\r\n else slideToIndex = prevIndex;\r\n }\r\n swiper.slideTo(slideToIndex);\r\n }\r\n\r\n function init() {\r\n const { thumbs: thumbsParams } = swiper.params;\r\n if (initialized) return false;\r\n initialized = true;\r\n const SwiperClass = swiper.constructor;\r\n if (thumbsParams.swiper instanceof SwiperClass) {\r\n swiper.thumbs.swiper = thumbsParams.swiper;\r\n Object.assign(swiper.thumbs.swiper.originalParams, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n Object.assign(swiper.thumbs.swiper.params, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n } else if (isObject(thumbsParams.swiper)) {\r\n const thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\r\n Object.assign(thumbsSwiperParams, {\r\n watchSlidesProgress: true,\r\n slideToClickedSlide: false,\r\n });\r\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\r\n swiperCreated = true;\r\n }\r\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\r\n swiper.thumbs.swiper.on('tap', onThumbClick);\r\n return true;\r\n }\r\n\r\n function update(initial) {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n\r\n const slidesPerView =\r\n thumbsSwiper.params.slidesPerView === 'auto'\r\n ? thumbsSwiper.slidesPerViewDynamic()\r\n : thumbsSwiper.params.slidesPerView;\r\n\r\n // Activate thumbs\r\n let thumbsToActivate = 1;\r\n const thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\r\n\r\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\r\n thumbsToActivate = swiper.params.slidesPerView;\r\n }\r\n\r\n if (!swiper.params.thumbs.multipleActiveThumbs) {\r\n thumbsToActivate = 1;\r\n }\r\n\r\n thumbsToActivate = Math.floor(thumbsToActivate);\r\n\r\n thumbsSwiper.slides.removeClass(thumbActiveClass);\r\n if (\r\n thumbsSwiper.params.loop ||\r\n (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)\r\n ) {\r\n for (let i = 0; i < thumbsToActivate; i += 1) {\r\n thumbsSwiper.$wrapperEl\r\n .children(`[data-swiper-slide-index=\"${swiper.realIndex + i}\"]`)\r\n .addClass(thumbActiveClass);\r\n }\r\n } else {\r\n for (let i = 0; i < thumbsToActivate; i += 1) {\r\n thumbsSwiper.slides.eq(swiper.realIndex + i).addClass(thumbActiveClass);\r\n }\r\n }\r\n\r\n const autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\r\n const useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\r\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\r\n let currentThumbsIndex = thumbsSwiper.activeIndex;\r\n let newThumbsIndex;\r\n let direction;\r\n if (thumbsSwiper.params.loop) {\r\n if (\r\n thumbsSwiper.slides\r\n .eq(currentThumbsIndex)\r\n .hasClass(thumbsSwiper.params.slideDuplicateClass)\r\n ) {\r\n thumbsSwiper.loopFix();\r\n // eslint-disable-next-line\r\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\r\n currentThumbsIndex = thumbsSwiper.activeIndex;\r\n }\r\n // Find actual thumbs index to slide to\r\n const prevThumbsIndex = thumbsSwiper.slides\r\n .eq(currentThumbsIndex)\r\n .prevAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n const nextThumbsIndex = thumbsSwiper.slides\r\n .eq(currentThumbsIndex)\r\n .nextAll(`[data-swiper-slide-index=\"${swiper.realIndex}\"]`)\r\n .eq(0)\r\n .index();\r\n if (typeof prevThumbsIndex === 'undefined') {\r\n newThumbsIndex = nextThumbsIndex;\r\n } else if (typeof nextThumbsIndex === 'undefined') {\r\n newThumbsIndex = prevThumbsIndex;\r\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\r\n newThumbsIndex =\r\n thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\r\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\r\n newThumbsIndex = nextThumbsIndex;\r\n } else {\r\n newThumbsIndex = prevThumbsIndex;\r\n }\r\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\r\n } else {\r\n newThumbsIndex = swiper.realIndex;\r\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\r\n }\r\n if (useOffset) {\r\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\r\n }\r\n\r\n if (\r\n thumbsSwiper.visibleSlidesIndexes &&\r\n thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0\r\n ) {\r\n if (thumbsSwiper.params.centeredSlides) {\r\n if (newThumbsIndex > currentThumbsIndex) {\r\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\r\n } else {\r\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\r\n }\r\n } else if (\r\n newThumbsIndex > currentThumbsIndex &&\r\n thumbsSwiper.params.slidesPerGroup === 1\r\n ) {\r\n // newThumbsIndex = newThumbsIndex - slidesPerView + 1;\r\n }\r\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\r\n }\r\n }\r\n }\r\n\r\n on('beforeInit', () => {\r\n const { thumbs } = swiper.params;\r\n if (!thumbs || !thumbs.swiper) return;\r\n init();\r\n update(true);\r\n });\r\n on('slideChange update resize observerUpdate', () => {\r\n update();\r\n });\r\n on('setTransition', (_s, duration) => {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n thumbsSwiper.setTransition(duration);\r\n });\r\n on('beforeDestroy', () => {\r\n const thumbsSwiper = swiper.thumbs.swiper;\r\n if (!thumbsSwiper || thumbsSwiper.destroyed) return;\r\n if (swiperCreated) {\r\n thumbsSwiper.destroy();\r\n }\r\n });\r\n\r\n Object.assign(swiper.thumbs, {\r\n init,\r\n update,\r\n });\r\n}\r\n","import { now } from '../../shared/utils.js';\r\n\r\nexport default function freeMode({ swiper, extendParams, emit, once }) {\r\n extendParams({\r\n freeMode: {\r\n enabled: false,\r\n momentum: true,\r\n momentumRatio: 1,\r\n momentumBounce: true,\r\n momentumBounceRatio: 1,\r\n momentumVelocityRatio: 1,\r\n sticky: false,\r\n minimumVelocity: 0.02,\r\n },\r\n });\r\n\r\n function onTouchStart() {\r\n const translate = swiper.getTranslate();\r\n swiper.setTranslate(translate);\r\n swiper.setTransition(0);\r\n swiper.touchEventsData.velocities.length = 0;\r\n swiper.freeMode.onTouchEnd({ currentPos: swiper.rtl ? swiper.translate : -swiper.translate });\r\n }\r\n\r\n function onTouchMove() {\r\n const { touchEventsData: data, touches } = swiper;\r\n // Velocity\r\n if (data.velocities.length === 0) {\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\r\n time: data.touchStartTime,\r\n });\r\n }\r\n data.velocities.push({\r\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\r\n time: now(),\r\n });\r\n }\r\n\r\n function onTouchEnd({ currentPos }) {\r\n const { params, $wrapperEl, rtlTranslate: rtl, snapGrid, touchEventsData: data } = swiper;\r\n // Time diff\r\n const touchEndTime = now();\r\n const timeDiff = touchEndTime - data.touchStartTime;\r\n\r\n if (currentPos < -swiper.minTranslate()) {\r\n swiper.slideTo(swiper.activeIndex);\r\n return;\r\n }\r\n if (currentPos > -swiper.maxTranslate()) {\r\n if (swiper.slides.length < snapGrid.length) {\r\n swiper.slideTo(snapGrid.length - 1);\r\n } else {\r\n swiper.slideTo(swiper.slides.length - 1);\r\n }\r\n return;\r\n }\r\n\r\n if (params.freeMode.momentum) {\r\n if (data.velocities.length > 1) {\r\n const lastMoveEvent = data.velocities.pop();\r\n const velocityEvent = data.velocities.pop();\r\n\r\n const distance = lastMoveEvent.position - velocityEvent.position;\r\n const time = lastMoveEvent.time - velocityEvent.time;\r\n swiper.velocity = distance / time;\r\n swiper.velocity /= 2;\r\n if (Math.abs(swiper.velocity) < params.freeMode.minimumVelocity) {\r\n swiper.velocity = 0;\r\n }\r\n // this implies that the user stopped moving a finger then released.\r\n // There would be no events with distance zero, so the last event is stale.\r\n if (time > 150 || now() - lastMoveEvent.time > 300) {\r\n swiper.velocity = 0;\r\n }\r\n } else {\r\n swiper.velocity = 0;\r\n }\r\n swiper.velocity *= params.freeMode.momentumVelocityRatio;\r\n\r\n data.velocities.length = 0;\r\n let momentumDuration = 1000 * params.freeMode.momentumRatio;\r\n const momentumDistance = swiper.velocity * momentumDuration;\r\n\r\n let newPosition = swiper.translate + momentumDistance;\r\n if (rtl) newPosition = -newPosition;\r\n\r\n let doBounce = false;\r\n let afterBouncePosition;\r\n const bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeMode.momentumBounceRatio;\r\n let needsLoopFix;\r\n if (newPosition < swiper.maxTranslate()) {\r\n if (params.freeMode.momentumBounce) {\r\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\r\n newPosition = swiper.maxTranslate() - bounceAmount;\r\n }\r\n afterBouncePosition = swiper.maxTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.maxTranslate();\r\n }\r\n if (params.loop && params.centeredSlides) needsLoopFix = true;\r\n } else if (newPosition > swiper.minTranslate()) {\r\n if (params.freeMode.momentumBounce) {\r\n if (newPosition - swiper.minTranslate() > bounceAmount) {\r\n newPosition = swiper.minTranslate() + bounceAmount;\r\n }\r\n afterBouncePosition = swiper.minTranslate();\r\n doBounce = true;\r\n data.allowMomentumBounce = true;\r\n } else {\r\n newPosition = swiper.minTranslate();\r\n }\r\n if (params.loop && params.centeredSlides) needsLoopFix = true;\r\n } else if (params.freeMode.sticky) {\r\n let nextSlide;\r\n for (let j = 0; j < snapGrid.length; j += 1) {\r\n if (snapGrid[j] > -newPosition) {\r\n nextSlide = j;\r\n break;\r\n }\r\n }\r\n\r\n if (\r\n Math.abs(snapGrid[nextSlide] - newPosition) <\r\n Math.abs(snapGrid[nextSlide - 1] - newPosition) ||\r\n swiper.swipeDirection === 'next'\r\n ) {\r\n newPosition = snapGrid[nextSlide];\r\n } else {\r\n newPosition = snapGrid[nextSlide - 1];\r\n }\r\n newPosition = -newPosition;\r\n }\r\n if (needsLoopFix) {\r\n once('transitionEnd', () => {\r\n swiper.loopFix();\r\n });\r\n }\r\n // Fix duration\r\n if (swiper.velocity !== 0) {\r\n if (rtl) {\r\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\r\n } else {\r\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\r\n }\r\n if (params.freeMode.sticky) {\r\n // If freeMode.sticky is active and the user ends a swipe with a slow-velocity\r\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\r\n // It's easy to see this when simulating touch with mouse events. To fix this,\r\n // limit single-slide swipes to the default slide duration. This also has the\r\n // nice side effect of matching slide speed if the user stopped moving before\r\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\r\n // For faster swipes, also apply limits (albeit higher ones).\r\n const moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\r\n const currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\r\n if (moveDistance < currentSlideSize) {\r\n momentumDuration = params.speed;\r\n } else if (moveDistance < 2 * currentSlideSize) {\r\n momentumDuration = params.speed * 1.5;\r\n } else {\r\n momentumDuration = params.speed * 2.5;\r\n }\r\n }\r\n } else if (params.freeMode.sticky) {\r\n swiper.slideToClosest();\r\n return;\r\n }\r\n\r\n if (params.freeMode.momentumBounce && doBounce) {\r\n swiper.updateProgress(afterBouncePosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(() => {\r\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\r\n emit('momentumBounce');\r\n swiper.setTransition(params.speed);\r\n setTimeout(() => {\r\n swiper.setTranslate(afterBouncePosition);\r\n $wrapperEl.transitionEnd(() => {\r\n if (!swiper || swiper.destroyed) return;\r\n swiper.transitionEnd();\r\n });\r\n }, 0);\r\n });\r\n } else if (swiper.velocity) {\r\n emit('_freeModeNoMomentumRelease');\r\n swiper.updateProgress(newPosition);\r\n swiper.setTransition(momentumDuration);\r\n swiper.setTranslate(newPosition);\r\n swiper.transitionStart(true, swiper.swipeDirection);\r\n if (!swiper.animating) {\r\n swiper.animating = true;\r\n $wrapperEl.transitionEnd(() => {\r\n if (!swiper || swiper.destroyed) return;\r\n swiper.transitionEnd();\r\n });\r\n }\r\n } else {\r\n swiper.updateProgress(newPosition);\r\n }\r\n\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n } else if (params.freeMode.sticky) {\r\n swiper.slideToClosest();\r\n return;\r\n } else if (params.freeMode) {\r\n emit('_freeModeNoMomentumRelease');\r\n }\r\n\r\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\r\n swiper.updateProgress();\r\n swiper.updateActiveIndex();\r\n swiper.updateSlidesClasses();\r\n }\r\n }\r\n\r\n Object.assign(swiper, {\r\n freeMode: {\r\n onTouchStart,\r\n onTouchMove,\r\n onTouchEnd,\r\n },\r\n });\r\n}\r\n","export default function Grid({ swiper, extendParams }) {\r\n extendParams({\r\n grid: {\r\n rows: 1,\r\n fill: 'column',\r\n },\r\n });\r\n\r\n let slidesNumberEvenToRows;\r\n let slidesPerRow;\r\n let numFullColumns;\r\n\r\n const initSlides = (slidesLength) => {\r\n const { slidesPerView } = swiper.params;\r\n const { rows, fill } = swiper.params.grid;\r\n slidesPerRow = slidesNumberEvenToRows / rows;\r\n numFullColumns = Math.floor(slidesLength / rows);\r\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\r\n slidesNumberEvenToRows = slidesLength;\r\n } else {\r\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\r\n }\r\n if (slidesPerView !== 'auto' && fill === 'row') {\r\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\r\n }\r\n };\r\n\r\n const updateSlide = (i, slide, slidesLength, getDirectionLabel) => {\r\n const { slidesPerGroup, spaceBetween } = swiper.params;\r\n const { rows, fill } = swiper.params.grid;\r\n // Set slides order\r\n let newSlideOrderIndex;\r\n let column;\r\n let row;\r\n if (fill === 'row' && slidesPerGroup > 1) {\r\n const groupIndex = Math.floor(i / (slidesPerGroup * rows));\r\n const slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\r\n const columnsInGroup =\r\n groupIndex === 0\r\n ? slidesPerGroup\r\n : Math.min(\r\n Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows),\r\n slidesPerGroup,\r\n );\r\n row = Math.floor(slideIndexInGroup / columnsInGroup);\r\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\r\n\r\n newSlideOrderIndex = column + (row * slidesNumberEvenToRows) / rows;\r\n slide.css({\r\n '-webkit-order': newSlideOrderIndex,\r\n order: newSlideOrderIndex,\r\n });\r\n } else if (fill === 'column') {\r\n column = Math.floor(i / rows);\r\n row = i - column * rows;\r\n if (column > numFullColumns || (column === numFullColumns && row === rows - 1)) {\r\n row += 1;\r\n if (row >= rows) {\r\n row = 0;\r\n column += 1;\r\n }\r\n }\r\n } else {\r\n row = Math.floor(i / slidesPerRow);\r\n column = i - row * slidesPerRow;\r\n }\r\n slide.css(\r\n getDirectionLabel('margin-top'),\r\n row !== 0 ? spaceBetween && `${spaceBetween}px` : '',\r\n );\r\n };\r\n\r\n const updateWrapperSize = (slideSize, snapGrid, getDirectionLabel) => {\r\n const { spaceBetween, centeredSlides, roundLengths } = swiper.params;\r\n const { rows } = swiper.params.grid;\r\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\r\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\r\n swiper.$wrapperEl.css({\r\n [getDirectionLabel('width')]: `${swiper.virtualSize + spaceBetween}px`,\r\n });\r\n if (centeredSlides) {\r\n snapGrid.splice(0, snapGrid.length);\r\n const newSlidesGrid = [];\r\n for (let i = 0; i < snapGrid.length; i += 1) {\r\n let slidesGridItem = snapGrid[i];\r\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\r\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\r\n }\r\n snapGrid.push(...newSlidesGrid);\r\n }\r\n };\r\n\r\n swiper.grid = {\r\n initSlides,\r\n updateSlide,\r\n updateWrapperSize,\r\n };\r\n}\r\n","import appendSlide from './methods/appendSlide.js';\r\nimport prependSlide from './methods/prependSlide.js';\r\nimport addSlide from './methods/addSlide.js';\r\nimport removeSlide from './methods/removeSlide.js';\r\nimport removeAllSlides from './methods/removeAllSlides.js';\r\n\r\nexport default function Manipulation({ swiper }) {\r\n Object.assign(swiper, {\r\n appendSlide: appendSlide.bind(swiper),\r\n prependSlide: prependSlide.bind(swiper),\r\n addSlide: addSlide.bind(swiper),\r\n removeSlide: removeSlide.bind(swiper),\r\n removeAllSlides: removeAllSlides.bind(swiper),\r\n });\r\n}\r\n","import effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectFade({ swiper, extendParams, on }) {\r\n extendParams({\r\n fadeEffect: {\r\n crossFade: false,\r\n transformEl: null,\r\n },\r\n });\r\n\r\n const setTranslate = () => {\r\n const { slides } = swiper;\r\n const params = swiper.params.fadeEffect;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = swiper.slides.eq(i);\r\n const offset = $slideEl[0].swiperSlideOffset;\r\n let tx = -offset;\r\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\r\n let ty = 0;\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n const slideOpacity = swiper.params.fadeEffect.crossFade\r\n ? Math.max(1 - Math.abs($slideEl[0].progress), 0)\r\n : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\r\n\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl\r\n .css({\r\n opacity: slideOpacity,\r\n })\r\n .transform(`translate3d(${tx}px, ${ty}px, 0px)`);\r\n }\r\n };\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.fadeEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements.transition(duration);\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl, allSlides: true });\r\n };\r\n\r\n effectInit({\r\n effect: 'fade',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n overwriteParams: () => ({\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\n\r\nexport default function EffectCube({ swiper, extendParams, on }) {\r\n extendParams({\r\n cubeEffect: {\r\n slideShadows: true,\r\n shadow: true,\r\n shadowOffset: 20,\r\n shadowScale: 0.94,\r\n },\r\n });\r\n\r\n const createSlideShadows = ($slideEl, progress, isHorizontal) => {\r\n let shadowBefore = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-left')\r\n : $slideEl.find('.swiper-slide-shadow-top');\r\n let shadowAfter = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-right')\r\n : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = $(`
`);\r\n $slideEl.append(shadowBefore);\r\n }\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = $(\r\n `
`,\r\n );\r\n $slideEl.append(shadowAfter);\r\n }\r\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n };\r\n\r\n const recreateShadows = () => {\r\n // create new ones\r\n const isHorizontal = swiper.isHorizontal();\r\n swiper.slides.each((slideEl) => {\r\n const progress = Math.max(Math.min(slideEl.progress, 1), -1);\r\n createSlideShadows($(slideEl), progress, isHorizontal);\r\n });\r\n };\r\n\r\n const setTranslate = () => {\r\n const {\r\n $el,\r\n $wrapperEl,\r\n slides,\r\n width: swiperWidth,\r\n height: swiperHeight,\r\n rtlTranslate: rtl,\r\n size: swiperSize,\r\n browser,\r\n } = swiper;\r\n const params = swiper.params.cubeEffect;\r\n const isHorizontal = swiper.isHorizontal();\r\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\r\n let wrapperRotate = 0;\r\n let $cubeShadowEl;\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $wrapperEl.append($cubeShadowEl);\r\n }\r\n $cubeShadowEl.css({ height: `${swiperWidth}px` });\r\n } else {\r\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\r\n if ($cubeShadowEl.length === 0) {\r\n $cubeShadowEl = $('
');\r\n $el.append($cubeShadowEl);\r\n }\r\n }\r\n }\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n let slideIndex = i;\r\n if (isVirtual) {\r\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\r\n }\r\n let slideAngle = slideIndex * 90;\r\n let round = Math.floor(slideAngle / 360);\r\n if (rtl) {\r\n slideAngle = -slideAngle;\r\n round = Math.floor(-slideAngle / 360);\r\n }\r\n const progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n let tx = 0;\r\n let ty = 0;\r\n let tz = 0;\r\n if (slideIndex % 4 === 0) {\r\n tx = -round * 4 * swiperSize;\r\n tz = 0;\r\n } else if ((slideIndex - 1) % 4 === 0) {\r\n tx = 0;\r\n tz = -round * 4 * swiperSize;\r\n } else if ((slideIndex - 2) % 4 === 0) {\r\n tx = swiperSize + round * 4 * swiperSize;\r\n tz = swiperSize;\r\n } else if ((slideIndex - 3) % 4 === 0) {\r\n tx = -swiperSize;\r\n tz = 3 * swiperSize + swiperSize * 4 * round;\r\n }\r\n if (rtl) {\r\n tx = -tx;\r\n }\r\n\r\n if (!isHorizontal) {\r\n ty = tx;\r\n tx = 0;\r\n }\r\n\r\n const transform = `rotateX(${isHorizontal ? 0 : -slideAngle}deg) rotateY(${\r\n isHorizontal ? slideAngle : 0\r\n }deg) translate3d(${tx}px, ${ty}px, ${tz}px)`;\r\n if (progress <= 1 && progress > -1) {\r\n wrapperRotate = slideIndex * 90 + progress * 90;\r\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\r\n }\r\n $slideEl.transform(transform);\r\n if (params.slideShadows) {\r\n createSlideShadows($slideEl, progress, isHorizontal);\r\n }\r\n }\r\n $wrapperEl.css({\r\n '-webkit-transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n 'transform-origin': `50% 50% -${swiperSize / 2}px`,\r\n });\r\n\r\n if (params.shadow) {\r\n if (isHorizontal) {\r\n $cubeShadowEl.transform(\r\n `translate3d(0px, ${swiperWidth / 2 + params.shadowOffset}px, ${\r\n -swiperWidth / 2\r\n }px) rotateX(90deg) rotateZ(0deg) scale(${params.shadowScale})`,\r\n );\r\n } else {\r\n const shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\r\n const multiplier =\r\n 1.5 -\r\n (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2 +\r\n Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2);\r\n const scale1 = params.shadowScale;\r\n const scale2 = params.shadowScale / multiplier;\r\n const offset = params.shadowOffset;\r\n $cubeShadowEl.transform(\r\n `scale3d(${scale1}, 1, ${scale2}) translate3d(0px, ${swiperHeight / 2 + offset}px, ${\r\n -swiperHeight / 2 / scale2\r\n }px) rotateX(-90deg)`,\r\n );\r\n }\r\n }\r\n const zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\r\n $wrapperEl.transform(\r\n `translate3d(0px,0,${zFactor}px) rotateX(${\r\n swiper.isHorizontal() ? 0 : wrapperRotate\r\n }deg) rotateY(${swiper.isHorizontal() ? -wrapperRotate : 0}deg)`,\r\n );\r\n $wrapperEl[0].style.setProperty('--swiper-cube-translate-z', `${zFactor}px`);\r\n };\r\n const setTransition = (duration) => {\r\n const { $el, slides } = swiper;\r\n slides\r\n .transition(duration)\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .transition(duration);\r\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\r\n $el.find('.swiper-cube-shadow').transition(duration);\r\n }\r\n };\r\n\r\n effectInit({\r\n effect: 'cube',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n recreateShadows,\r\n getEffectParams: () => swiper.params.cubeEffect,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n resistanceRatio: 0,\r\n spaceBetween: 0,\r\n centeredSlides: false,\r\n virtualTranslate: true,\r\n }),\r\n });\r\n}\r\n","import $ from '../../shared/dom.js';\r\nimport createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectFlip({ swiper, extendParams, on }) {\r\n extendParams({\r\n flipEffect: {\r\n slideShadows: true,\r\n limitRotation: true,\r\n transformEl: null,\r\n },\r\n });\r\n\r\n const createSlideShadows = ($slideEl, progress, params) => {\r\n let shadowBefore = swiper.isHorizontal()\r\n ? $slideEl.find('.swiper-slide-shadow-left')\r\n : $slideEl.find('.swiper-slide-shadow-top');\r\n let shadowAfter = swiper.isHorizontal()\r\n ? $slideEl.find('.swiper-slide-shadow-right')\r\n : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if (shadowBefore.length === 0) {\r\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\r\n }\r\n if (shadowAfter.length === 0) {\r\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\r\n }\r\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\r\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\r\n };\r\n\r\n const recreateShadows = () => {\r\n // Set shadows\r\n const params = swiper.params.flipEffect;\r\n swiper.slides.each((slideEl) => {\r\n const $slideEl = $(slideEl);\r\n let progress = $slideEl[0].progress;\r\n if (swiper.params.flipEffect.limitRotation) {\r\n progress = Math.max(Math.min(slideEl.progress, 1), -1);\r\n }\r\n createSlideShadows($slideEl, progress, params);\r\n });\r\n };\r\n\r\n const setTranslate = () => {\r\n const { slides, rtlTranslate: rtl } = swiper;\r\n const params = swiper.params.flipEffect;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n let progress = $slideEl[0].progress;\r\n if (swiper.params.flipEffect.limitRotation) {\r\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\r\n }\r\n const offset = $slideEl[0].swiperSlideOffset;\r\n const rotate = -180 * progress;\r\n let rotateY = rotate;\r\n let rotateX = 0;\r\n let tx = swiper.params.cssMode ? -offset - swiper.translate : -offset;\r\n let ty = 0;\r\n if (!swiper.isHorizontal()) {\r\n ty = tx;\r\n tx = 0;\r\n rotateX = -rotateY;\r\n rotateY = 0;\r\n } else if (rtl) {\r\n rotateY = -rotateY;\r\n }\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\r\n\r\n if (params.slideShadows) {\r\n createSlideShadows($slideEl, progress, params);\r\n }\r\n const transform = `translate3d(${tx}px, ${ty}px, 0px) rotateX(${rotateX}deg) rotateY(${rotateY}deg)`;\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(transform);\r\n }\r\n };\r\n\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.flipEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements\r\n .transition(duration)\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .transition(duration);\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl });\r\n };\r\n\r\n effectInit({\r\n effect: 'flip',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n recreateShadows,\r\n getEffectParams: () => swiper.params.flipEffect,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n slidesPerView: 1,\r\n slidesPerGroup: 1,\r\n watchSlidesProgress: true,\r\n spaceBetween: 0,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","import createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\n\r\nexport default function EffectCoverflow({ swiper, extendParams, on }) {\r\n extendParams({\r\n coverflowEffect: {\r\n rotate: 50,\r\n stretch: 0,\r\n depth: 100,\r\n scale: 1,\r\n modifier: 1,\r\n slideShadows: true,\r\n transformEl: null,\r\n },\r\n });\r\n\r\n const setTranslate = () => {\r\n const { width: swiperWidth, height: swiperHeight, slides, slidesSizesGrid } = swiper;\r\n const params = swiper.params.coverflowEffect;\r\n const isHorizontal = swiper.isHorizontal();\r\n const transform = swiper.translate;\r\n const center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\r\n const rotate = isHorizontal ? params.rotate : -params.rotate;\r\n const translate = params.depth;\r\n // Each slide offset from center\r\n for (let i = 0, length = slides.length; i < length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n const slideSize = slidesSizesGrid[i];\r\n const slideOffset = $slideEl[0].swiperSlideOffset;\r\n const centerOffset = (center - slideOffset - slideSize / 2) / slideSize;\r\n const offsetMultiplier =\r\n typeof params.modifier === 'function'\r\n ? params.modifier(centerOffset)\r\n : centerOffset * params.modifier;\r\n\r\n let rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\r\n let rotateX = isHorizontal ? 0 : rotate * offsetMultiplier;\r\n // var rotateZ = 0\r\n let translateZ = -translate * Math.abs(offsetMultiplier);\r\n\r\n let stretch = params.stretch;\r\n // Allow percentage to make a relative stretch for responsive sliders\r\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\r\n stretch = (parseFloat(params.stretch) / 100) * slideSize;\r\n }\r\n let translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\r\n let translateX = isHorizontal ? stretch * offsetMultiplier : 0;\r\n\r\n let scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier);\r\n\r\n // Fix for ultra small values\r\n if (Math.abs(translateX) < 0.001) translateX = 0;\r\n if (Math.abs(translateY) < 0.001) translateY = 0;\r\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\r\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\r\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\r\n if (Math.abs(scale) < 0.001) scale = 0;\r\n\r\n const slideTransform = `translate3d(${translateX}px,${translateY}px,${translateZ}px) rotateX(${rotateX}deg) rotateY(${rotateY}deg) scale(${scale})`;\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(slideTransform);\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\r\n\r\n if (params.slideShadows) {\r\n // Set shadows\r\n let $shadowBeforeEl = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-left')\r\n : $slideEl.find('.swiper-slide-shadow-top');\r\n let $shadowAfterEl = isHorizontal\r\n ? $slideEl.find('.swiper-slide-shadow-right')\r\n : $slideEl.find('.swiper-slide-shadow-bottom');\r\n if ($shadowBeforeEl.length === 0) {\r\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\r\n }\r\n if ($shadowAfterEl.length === 0) {\r\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\r\n }\r\n if ($shadowBeforeEl.length)\r\n $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\r\n if ($shadowAfterEl.length)\r\n $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\r\n }\r\n }\r\n };\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.coverflowEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements\r\n .transition(duration)\r\n .find(\r\n '.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left',\r\n )\r\n .transition(duration);\r\n };\r\n\r\n effectInit({\r\n effect: 'coverflow',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n watchSlidesProgress: true,\r\n }),\r\n });\r\n}\r\n","import createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectCreative({ swiper, extendParams, on }) {\r\n extendParams({\r\n creativeEffect: {\r\n transformEl: null,\r\n limitProgress: 1,\r\n shadowPerProgress: false,\r\n progressMultiplier: 1,\r\n perspective: true,\r\n prev: {\r\n translate: [0, 0, 0],\r\n rotate: [0, 0, 0],\r\n opacity: 1,\r\n scale: 1,\r\n },\r\n next: {\r\n translate: [0, 0, 0],\r\n rotate: [0, 0, 0],\r\n opacity: 1,\r\n scale: 1,\r\n },\r\n },\r\n });\r\n\r\n const getTranslateValue = (value) => {\r\n if (typeof value === 'string') return value;\r\n return `${value}px`;\r\n };\r\n\r\n const setTranslate = () => {\r\n const { slides, $wrapperEl, slidesSizesGrid } = swiper;\r\n const params = swiper.params.creativeEffect;\r\n const { progressMultiplier: multiplier } = params;\r\n\r\n const isCenteredSlides = swiper.params.centeredSlides;\r\n\r\n if (isCenteredSlides) {\r\n const margin = slidesSizesGrid[0] / 2 - swiper.params.slidesOffsetBefore || 0;\r\n $wrapperEl.transform(`translateX(calc(50% - ${margin}px))`);\r\n }\r\n\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n const slideProgress = $slideEl[0].progress;\r\n const progress = Math.min(\r\n Math.max($slideEl[0].progress, -params.limitProgress),\r\n params.limitProgress,\r\n );\r\n let originalProgress = progress;\r\n\r\n if (!isCenteredSlides) {\r\n originalProgress = Math.min(\r\n Math.max($slideEl[0].originalProgress, -params.limitProgress),\r\n params.limitProgress,\r\n );\r\n }\r\n\r\n const offset = $slideEl[0].swiperSlideOffset;\r\n const t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\r\n const r = [0, 0, 0];\r\n let custom = false;\r\n if (!swiper.isHorizontal()) {\r\n t[1] = t[0];\r\n t[0] = 0;\r\n }\r\n let data = {\r\n translate: [0, 0, 0],\r\n rotate: [0, 0, 0],\r\n scale: 1,\r\n opacity: 1,\r\n };\r\n if (progress < 0) {\r\n data = params.next;\r\n custom = true;\r\n } else if (progress > 0) {\r\n data = params.prev;\r\n custom = true;\r\n }\r\n // set translate\r\n t.forEach((value, index) => {\r\n t[index] = `calc(${value}px + (${getTranslateValue(data.translate[index])} * ${Math.abs(\r\n progress * multiplier,\r\n )}))`;\r\n });\r\n // set rotates\r\n r.forEach((value, index) => {\r\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\r\n });\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\r\n\r\n const translateString = t.join(', ');\r\n const rotateString = `rotateX(${r[0]}deg) rotateY(${r[1]}deg) rotateZ(${r[2]}deg)`;\r\n const scaleString =\r\n originalProgress < 0\r\n ? `scale(${1 + (1 - data.scale) * originalProgress * multiplier})`\r\n : `scale(${1 - (1 - data.scale) * originalProgress * multiplier})`;\r\n const opacityString =\r\n originalProgress < 0\r\n ? 1 + (1 - data.opacity) * originalProgress * multiplier\r\n : 1 - (1 - data.opacity) * originalProgress * multiplier;\r\n const transform = `translate3d(${translateString}) ${rotateString} ${scaleString}`;\r\n\r\n // Set shadows\r\n if ((custom && data.shadow) || !custom) {\r\n let $shadowEl = $slideEl.children('.swiper-slide-shadow');\r\n if ($shadowEl.length === 0 && data.shadow) {\r\n $shadowEl = createShadow(params, $slideEl);\r\n }\r\n if ($shadowEl.length) {\r\n const shadowOpacity = params.shadowPerProgress\r\n ? progress * (1 / params.limitProgress)\r\n : progress;\r\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\r\n }\r\n }\r\n\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(transform).css({ opacity: opacityString });\r\n if (data.origin) {\r\n $targetEl.css('transform-origin', data.origin);\r\n }\r\n }\r\n };\r\n\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.creativeEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\r\n\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl, allSlides: true });\r\n };\r\n\r\n effectInit({\r\n effect: 'creative',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n perspective: () => swiper.params.creativeEffect.perspective,\r\n overwriteParams: () => ({\r\n watchSlidesProgress: true,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n","import createShadow from '../../shared/create-shadow.js';\r\nimport effectInit from '../../shared/effect-init.js';\r\nimport effectTarget from '../../shared/effect-target.js';\r\nimport effectVirtualTransitionEnd from '../../shared/effect-virtual-transition-end.js';\r\n\r\nexport default function EffectCards({ swiper, extendParams, on }) {\r\n extendParams({\r\n cardsEffect: {\r\n slideShadows: true,\r\n transformEl: null,\r\n rotate: true,\r\n },\r\n });\r\n\r\n const setTranslate = () => {\r\n const { slides, activeIndex } = swiper;\r\n const params = swiper.params.cardsEffect;\r\n const { startTranslate, isTouched } = swiper.touchEventsData;\r\n const currentTranslate = swiper.translate;\r\n for (let i = 0; i < slides.length; i += 1) {\r\n const $slideEl = slides.eq(i);\r\n const slideProgress = $slideEl[0].progress;\r\n const progress = Math.min(Math.max(slideProgress, -4), 4);\r\n let offset = $slideEl[0].swiperSlideOffset;\r\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\r\n swiper.$wrapperEl.transform(`translateX(${swiper.minTranslate()}px)`);\r\n }\r\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\r\n offset -= slides[0].swiperSlideOffset;\r\n }\r\n let tX = swiper.params.cssMode ? -offset - swiper.translate : -offset;\r\n let tY = 0;\r\n const tZ = -100 * Math.abs(progress);\r\n let scale = 1;\r\n let rotate = -2 * progress;\r\n\r\n let tXAdd = 8 - Math.abs(progress) * 0.75;\r\n\r\n const slideIndex =\r\n swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.from + i : i;\r\n\r\n const isSwipeToNext =\r\n (slideIndex === activeIndex || slideIndex === activeIndex - 1) &&\r\n progress > 0 &&\r\n progress < 1 &&\r\n (isTouched || swiper.params.cssMode) &&\r\n currentTranslate < startTranslate;\r\n const isSwipeToPrev =\r\n (slideIndex === activeIndex || slideIndex === activeIndex + 1) &&\r\n progress < 0 &&\r\n progress > -1 &&\r\n (isTouched || swiper.params.cssMode) &&\r\n currentTranslate > startTranslate;\r\n\r\n if (isSwipeToNext || isSwipeToPrev) {\r\n const subProgress = (1 - Math.abs((Math.abs(progress) - 0.5) / 0.5)) ** 0.5;\r\n rotate += -28 * progress * subProgress;\r\n scale += -0.5 * subProgress;\r\n tXAdd += 96 * subProgress;\r\n tY = `${-25 * subProgress * Math.abs(progress)}%`;\r\n }\r\n\r\n if (progress < 0) {\r\n // next\r\n tX = `calc(${tX}px + (${tXAdd * Math.abs(progress)}%))`;\r\n } else if (progress > 0) {\r\n // prev\r\n tX = `calc(${tX}px + (-${tXAdd * Math.abs(progress)}%))`;\r\n } else {\r\n tX = `${tX}px`;\r\n }\r\n if (!swiper.isHorizontal()) {\r\n const prevY = tY;\r\n tY = tX;\r\n tX = prevY;\r\n }\r\n\r\n const scaleString =\r\n progress < 0 ? `${1 + (1 - scale) * progress}` : `${1 - (1 - scale) * progress}`;\r\n\r\n const transform = `\r\n translate3d(${tX}, ${tY}, ${tZ}px)\r\n rotateZ(${params.rotate ? rotate : 0}deg)\r\n scale(${scaleString})\r\n `;\r\n\r\n if (params.slideShadows) {\r\n // Set shadows\r\n let $shadowEl = $slideEl.find('.swiper-slide-shadow');\r\n if ($shadowEl.length === 0) {\r\n $shadowEl = createShadow(params, $slideEl);\r\n }\r\n if ($shadowEl.length)\r\n $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\r\n }\r\n\r\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\r\n const $targetEl = effectTarget(params, $slideEl);\r\n $targetEl.transform(transform);\r\n }\r\n };\r\n\r\n const setTransition = (duration) => {\r\n const { transformEl } = swiper.params.cardsEffect;\r\n const $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\r\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\r\n\r\n effectVirtualTransitionEnd({ swiper, duration, transformEl });\r\n };\r\n\r\n effectInit({\r\n effect: 'cards',\r\n swiper,\r\n on,\r\n setTranslate,\r\n setTransition,\r\n perspective: () => true,\r\n overwriteParams: () => ({\r\n watchSlidesProgress: true,\r\n virtualTranslate: !swiper.params.cssMode,\r\n }),\r\n });\r\n}\r\n"],"mappings":"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"} \ No newline at end of file diff --git a/css/app.css b/css/app.css index c3803a5..a3c74f6 100644 --- a/css/app.css +++ b/css/app.css @@ -1025,6 +1025,9 @@ button:focus { } .cta--button { + height: -webkit-fit-content; + height: -moz-fit-content; + height: fit-content; border-radius: 9999px; padding-left: 2rem; padding-right: 2rem; @@ -1037,6 +1040,15 @@ button:focus { border-radius: 9999px; } +.cta--circular { + display: flex; + aspect-ratio: 1 / 1; + width: 3rem; + align-items: center; + justify-content: center; + border-radius: 9999px; +} + .cta--primary { --tw-bg-opacity: 1; background-color: rgb(47 1 84 / var(--tw-bg-opacity)); @@ -1044,10 +1056,43 @@ button:focus { color: rgb(255 255 255 / var(--tw-text-opacity)); } +.cta--primary:hover { + --tw-bg-opacity: 1; + background-color: rgb(19 0 35 / var(--tw-bg-opacity)); +} + +.cta--secondary { + --tw-bg-opacity: 1; + background-color: rgb(223 30 30 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + +.cta--secondary:hover { + --tw-bg-opacity: 1; + background-color: rgb(152 3 3 / var(--tw-bg-opacity)); +} + +.cta--outline { + border-width: 2px; + background-color: transparent; +} + +.cta--outline:hover { + background-color: rgb(239, 239, 239, 0.6); +} + .cta--shadowed { box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); } +.cta--shadowed:hover { + --tw-bg-opacity: 1; + background-color: rgb(223 30 30 / var(--tw-bg-opacity)); + --tw-text-opacity: 1; + color: rgb(255 255 255 / var(--tw-text-opacity)); +} + .cta--streched::after { position: absolute; content: var(--tw-content); @@ -1057,16 +1102,11 @@ button:focus { left: 0px; } -.cta--outline { - border-width: 2px; - background-color: transparent; -} - .cta.cta--button.cta--outline { --tw-border-opacity: 1; border-color: rgb(0 0 0 / var(--tw-border-opacity)); --tw-text-opacity: 1; - color: rgb(47 1 84 / var(--tw-text-opacity)); + color: rgb(0 0 0 / var(--tw-text-opacity)); } .cta--read-more { @@ -1084,11 +1124,11 @@ button:focus { color: rgb(223 30 30 / var(--tw-text-opacity)); } -.cta--read-more .icon { +.cta--with-arrow-button .cta_arrow_button { transition: transform 0.3s ease-in-out; } -.cta--read-more:hover .icon { +.cta--with-arrow-button:hover .cta_arrow_button { filter: invert(27%) sepia(69%) saturate(6074%) hue-rotate(348deg) brightness(87%) contrast(100%); transform: translateX(3px); @@ -1115,6 +1155,31 @@ button:focus { transform: translateY(1px); } +&.card-acoustique:hover .cta_arrow_button, &.card-petites-coproprietes:hover .cta_arrow_button { + filter: invert(27%) sepia(88%) saturate(1302%) + hue-rotate(206deg) brightness(105%) contrast(114%); +} + +&.card-au-quotidien:hover .cta_arrow_button, &.card-isolation:hover .cta_arrow_button { + filter: invert(21%) sepia(94%) saturate(3059%) + hue-rotate(26deg) brightness(98%) contrast(98%); +} + +&.card-energies:hover .cta_arrow_button, &.card-urbanisme:hover .cta_arrow_button { + filter: invert(28%) sepia(89%) saturate(1188%) + hue-rotate(131deg) brightness(95%) contrast(98%); +} + +&.card-location:hover .cta_arrow_button { + filter: invert(13%) sepia(71%) saturate(4425%) + hue-rotate(338deg) brightness(109%) contrast(117%); +} + +&.card-patrimoine:hover .cta_arrow_button { + filter: invert(25%) sepia(79%) saturate(6075%) + hue-rotate(263deg) brightness(99%) contrast(96%); +} + .card-post { position: relative; border-radius: 1.5rem; @@ -1282,6 +1347,7 @@ button:focus { } .card-frequent-question { + position: relative; border-radius: 1.5rem; padding: 2rem; box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); @@ -1298,8 +1364,14 @@ button:focus { font-weight: 700; } -.card-frequent-question__tags_container { +.card-frequent-question__details-container { margin-top: 1rem; + display: flex; + align-items: center; + justify-content: space-between; +} + +.card-frequent-question__tags_container { display: flex; flex-wrap: wrap; -moz-column-gap: 0.75rem; @@ -1314,6 +1386,125 @@ button:focus { padding-right: 1rem; } +.card-frequent-question.card-acoustique:hover .cta_arrow_button, .card-frequent-question.card-petites-coproprietes:hover .cta_arrow_button { + filter: invert(27%) sepia(88%) saturate(1302%) + hue-rotate(206deg) brightness(105%) contrast(114%); +} + +.card-frequent-question.card-au-quotidien:hover .cta_arrow_button, .card-frequent-question.card-isolation:hover .cta_arrow_button { + filter: invert(21%) sepia(94%) saturate(3059%) + hue-rotate(26deg) brightness(98%) contrast(98%); +} + +.card-frequent-question.card-energies:hover .cta_arrow_button, .card-frequent-question.card-urbanisme:hover .cta_arrow_button { + filter: invert(28%) sepia(89%) saturate(1188%) + hue-rotate(131deg) brightness(95%) contrast(98%); +} + +.card-frequent-question.card-location:hover .cta_arrow_button { + filter: invert(13%) sepia(71%) saturate(4425%) + hue-rotate(338deg) brightness(109%) contrast(117%); +} + +.card-frequent-question.card-patrimoine:hover .cta_arrow_button { + filter: invert(25%) sepia(79%) saturate(6075%) + hue-rotate(263deg) brightness(99%) contrast(96%); +} + +.card-thematique { + position: relative; + display: flex; + flex-direction: column; + border-radius: 1.5rem; + padding: 2rem; + transition: all 0.3s ease-in-out; + box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.15); +} + +.card-thematique__thumbnail { + width: 100%; + align-self: flex-end; + max-height: 250px; + width: auto; + margin-top: -110px; + margin-right: 0px; +} + +.card-thematique__title { + padding-bottom: 1rem; + font-size: 1.125rem; + line-height: 1.75rem; + font-weight: 700; +} + +.card-thematique__descritpion { +} + +.card-thematique__cta { + display: flex; + align-items: center; + justify-content: space-between; + padding-top: 2rem; + font-weight: 700; +} + +.card-thematique__cta::after { + position: absolute; + content: var(--tw-content); + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; +} + +.card-thematique__cta:hover { + opacity: 1; +} + +.card-thematique__cta { + transition: font-weight 0.3s ease-in-out; +} + +.card-thematique__cta .cta_arrow_button { + display: block; + width: 50px; + height: 50px; +} + +.card-thematique:hover { + transform: scale(1.02) translateY(-10px); + box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.15); +} + +.card-thematique:hover .cta_arrow_button { + opacity: 1; +} + +.card-thematique.card-acoustique:hover .cta_arrow_button, .card-thematique.card-petites-coproprietes:hover .cta_arrow_button { + filter: invert(27%) sepia(88%) saturate(1302%) + hue-rotate(206deg) brightness(105%) contrast(114%); +} + +.card-thematique.card-au-quotidien:hover .cta_arrow_button, .card-thematique.card-isolation:hover .cta_arrow_button { + filter: invert(21%) sepia(94%) saturate(3059%) + hue-rotate(26deg) brightness(98%) contrast(98%); +} + +.card-thematique.card-energies:hover .cta_arrow_button, .card-thematique.card-urbanisme:hover .cta_arrow_button { + filter: invert(28%) sepia(89%) saturate(1188%) + hue-rotate(131deg) brightness(95%) contrast(98%); +} + +.card-thematique.card-location:hover .cta_arrow_button { + filter: invert(13%) sepia(71%) saturate(4425%) + hue-rotate(338deg) brightness(109%) contrast(117%); +} + +.card-thematique.card-patrimoine:hover .cta_arrow_button { + filter: invert(25%) sepia(79%) saturate(6075%) + hue-rotate(263deg) brightness(99%) contrast(96%); +} + /* ########### LAYOUT ############ */ .primary-menu-container { @@ -1729,6 +1920,18 @@ button#burger-menu-toggle:hover path { display: none; } +.site-footer__navigation-menu .extra_details { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +.site-footer__navigation-menu .extra_details .social-networks { + display: flex; + gap: 1rem; +} + .site-footer__partenaires { grid-column: span 2 / span 2; display: flex; @@ -1871,18 +2074,41 @@ article > *:not(.entry-content), row-gap: 2rem; } -.menu-homegrade-footer > li.menu-item > a { +.menu-homegrade-footer li.menu-item a:hover { + --tw-text-opacity: 1; + color: rgb(223 30 30 / var(--tw-text-opacity)); +} + +.menu-homegrade-footer > li.menu-item { + order: 5; +} + +.menu-homegrade-footer > li.menu-item-has-children { + order: 1; +} + +.menu-homegrade-footer > li.menu-item > a, + .menu-homegrade-footer h6.page-group-title { margin-bottom: 0.5rem; display: block; font-weight: 700; } +.menu-homegrade-footer h6.page-group-title { + cursor: not-allowed; + /* order: 1; */ +} + .menu-homegrade-footer .sub-menu li { margin-top: 0.25rem; margin-bottom: 0.25rem; display: block; } +.menu-homegrade-footer .wpml-ls-menu-item { + display: none; +} + /* ########### BLOCKS ############ */ /* Home */ @@ -2129,6 +2355,29 @@ article > *:not(.entry-content), margin-left: auto; } +.swiper { + width: 600px; + height: 300px; + background-color: green; +} + +/* .swiper-slide { + background-color: red !important; + text-align: center; + font-size: 18px; + background: #fff; + display: flex; + justify-content: center; + align-items: center; +} + +.swiper-slide img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; +} */ + .section-show-thematiques { padding-top: 2rem; padding-bottom: 8rem; @@ -2145,102 +2394,6 @@ article > *:not(.entry-content), padding-top: 4rem; } -.section-show-thematiques .card-thematique { - position: relative; - display: flex; - flex-direction: column; - border-radius: 1.5rem; - --tw-bg-opacity: 1; - background-color: rgb(255 255 255 / var(--tw-bg-opacity)); - padding: 2rem; - transition: all 0.3s ease-in-out; - box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.15); -} - -.section-show-thematiques .card-thematique__thumbnail { - width: 100%; - align-self: flex-end; - max-height: 250px; - width: auto; - margin-top: -110px; - margin-right: 0px; -} - -.section-show-thematiques .card-thematique__title { - padding-bottom: 1rem; - font-size: 1.125rem; - line-height: 1.75rem; - font-weight: 700; -} - -.section-show-thematiques .card-thematique__descritpion { -} - -.section-show-thematiques .card-thematique__cta { - display: flex; - align-items: center; - justify-content: space-between; - padding-top: 2rem; - font-weight: 700; -} - -.section-show-thematiques .card-thematique__cta::after { - position: absolute; - content: var(--tw-content); - top: 0px; - right: 0px; - bottom: 0px; - left: 0px; -} - -.section-show-thematiques .card-thematique__cta:hover { - opacity: 1; -} - -.section-show-thematiques .card-thematique__cta { - transition: font-weight 0.3s ease-in-out; -} - -.section-show-thematiques .card-thematique__cta .cta_arrow_button { - display: block; - width: 50px; - height: 50px; -} - -.section-show-thematiques .card-thematique:hover { - transform: scale(1.02) translateY(-10px); - box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.15); -} - -.section-show-thematiques .card-thematique:hover .cta_arrow_button { - opacity: 1; -} - -.section-show-thematiques .card-thematique.card-acoustique:hover .cta_arrow_button, .section-show-thematiques .card-thematique.card-petites-coproprietes:hover .cta_arrow_button { - filter: invert(27%) sepia(88%) saturate(1302%) - hue-rotate(206deg) brightness(105%) contrast(114%); -} - -.section-show-thematiques .card-thematique.card-au-quotidien:hover .cta_arrow_button, .section-show-thematiques .card-thematique.card-isolation:hover .cta_arrow_button { - filter: invert(21%) sepia(94%) saturate(3059%) - hue-rotate(26deg) brightness(98%) contrast(98%); -} - -.section-show-thematiques .card-thematique.card-energies:hover .cta_arrow_button, .section-show-thematiques .card-thematique.card-urbanisme:hover .cta_arrow_button { - filter: invert(28%) sepia(89%) saturate(1188%) - hue-rotate(131deg) brightness(95%) contrast(98%); -} - -.section-show-thematiques .card-thematique.card-location:hover .cta_arrow_button { - filter: invert(13%) sepia(71%) saturate(4425%) - hue-rotate(338deg) brightness(109%) contrast(117%); -} - -.section-show-thematiques .card-thematique.card-patrimoine:hover .cta_arrow_button { - filter: invert(25%) sepia(79%) saturate(6075%) - hue-rotate(263deg) brightness(99%) contrast(96%); -} - #block-demarches-administratives.card-large-content-container--has-illustration { padding-top: 16rem; } @@ -2273,6 +2426,27 @@ article > *:not(.entry-content), column-gap: 2rem; } +/* ########### PAGE ############ */ + +.demo-components .title { + padding-bottom: 4rem; + text-align: center; + font-size: 1.875rem; + line-height: 2.25rem; + font-weight: 700; +} + +.demo-components .buttons { + padding-top: 8rem; + padding-bottom: 8rem; +} + +.demo-components .buttons .buttons-example { + display: flex; + justify-content: center; + gap: 2rem; +} + .hover\:bg-primary:hover { --tw-bg-opacity: 1; background-color: rgb(47 1 84 / var(--tw-bg-opacity)); diff --git a/demo-components.php b/demo-components.php new file mode 100644 index 0000000..9a38c48 --- /dev/null +++ b/demo-components.php @@ -0,0 +1,41 @@ + + + + + + +
+ +
+ +
Slide 1
+
Slide 2
+
Slide 3
+ ... +
+ +
+ + +
+ + + +
+
+ + + - - - @@ -105,6 +115,8 @@ + + \ No newline at end of file diff --git a/front-page.php b/front-page.php index e683a00..b610799 100755 --- a/front-page.php +++ b/front-page.php @@ -1,17 +1,16 @@ - - - + + - + - + get('Version'), true); + wp_register_script('testjs', get_template_directory_uri() . '/template-blocks/home/show-thematiques/test.js', array('tailpress'), $theme->get('Version'), true); +} + + + + +add_action('init', 'my_register_blocks_scripts'); +add_action('wp_enqueue_scripts', 'my_register_blocks_scripts'); +add_action('enqueue_block_editor_assets', 'my_register_blocks_scripts'); + + diff --git a/includes/init.php b/includes/init.php index 6139625..eb411c1 100644 --- a/includes/init.php +++ b/includes/init.php @@ -55,20 +55,20 @@ function tailpress_enqueue_scripts() wp_enqueue_style('tailpress', tailpress_asset('css/app.css'), array(), $theme->get('Version')); wp_enqueue_script('tailpress', tailpress_asset('js/app.js'), array(), $theme->get('Version')); + // wp_register_script('showthematiquejs', get_template_directory_uri() . '/template-blocks/home/show-thematiques/show-thematiques.js', array('swiperjs', 'swipercss'), $theme->get('Version')); + wp_enqueue_script('showthematiquejs', get_template_directory_uri() . '/template-blocks/home/show-thematiques/show-thematiques.js', array('swiperjs'), $theme->get('Version')); + + // wp_enqueue_script('swiperjs', get_template_directory_uri() . '/assets/swiper/swiper-bundle.min.js', array('tailpress'), $theme->get('Version'), true); + wp_enqueue_style('swipercss', get_template_directory_uri() . '/assets/swiper/swiper-bundle.min.css', array(), $theme->get('Version')); + // wp_register_style('swipercss', get_template_directory_uri() . '/assets/swiper/swiper-bundle.min.css', array(), $theme->get('Version')); } +add_action('wp_enqueue_scripts', 'tailpress_enqueue_scripts'); /* ----------------------------------------------------------- - Enqueue Theme assets 🡒 Back - -----------------------------------------------------------*/ +Enqueue Theme assets 🡒 Back +-----------------------------------------------------------*/ +add_action('enqueue_block_editor_assets', 'tailpress_enqueue_scripts'); -function enqueue_gutenberg_back_styles() -{ - wp_enqueue_style('tailpress_back', tailpress_asset('css/app.css'), array()); -} -add_action('enqueue_block_editor_assets', 'enqueue_gutenberg_back_styles'); - - -add_action('wp_enqueue_scripts', 'tailpress_enqueue_scripts'); /** * Get asset path. @@ -126,4 +126,4 @@ function tailpress_nav_menu_add_submenu_class($classes, $args, $depth) return $classes; } -add_filter('nav_menu_submenu_css_class', 'tailpress_nav_menu_add_submenu_class', 10, 3); +add_filter('nav_menu_submenu_css_class', 'tailpress_nav_menu_add_submenu_class', 10, 3); \ No newline at end of file diff --git a/includes/navwalker.php b/includes/navwalker.php index bbc908b..2d03e82 100644 --- a/includes/navwalker.php +++ b/includes/navwalker.php @@ -7,10 +7,18 @@ function wrap_parent_menu_item_buttons($output, $item, $depth, $args) { - + // #### MENU HOMEGRADE HEADER if ($args->theme_location === "homegrade" && $args->menu_class === "menu-homegrade-header" && in_array('menu-item-has-children', $item->classes, true)) { $output = ''; } + + // #### MENU HOMEGRADE FOOTER + if ($args->theme_location === "homegrade" && $args->menu_class === "menu-homegrade-footer" && in_array('menu-item-has-children', $item->classes, true)) { + $output = '
' . $item->title . '
'; + write_log("YOOO ITEM"); + write_log($item); + } + if ($args->theme_location === "renovateur") { $page_icon = get_field('page_icon', $item->object_id); @@ -32,4 +40,4 @@ function wrap_parent_menu_item_buttons($output, $item, $depth, $args) } return $output; } -add_filter('walker_nav_menu_start_el', 'wrap_parent_menu_item_buttons', 10, 4); \ No newline at end of file +add_filter('walker_nav_menu_start_el', 'wrap_parent_menu_item_buttons', 10, 4); diff --git a/includes/rooting.php b/includes/rooting.php new file mode 100644 index 0000000..a82b23b --- /dev/null +++ b/includes/rooting.php @@ -0,0 +1,13 @@ +is_404 = false; + status_header(200); + include(dirname(__DIR__, 1) . '/demo-components.php'); + exit(); + } +} diff --git a/resources/css/app.css b/resources/css/app.css index 13b778e..52d8fdd 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -12,11 +12,13 @@ /* ########### COMPONENTS ############ */ @import './components/cta.css'; +@import './components/card.css'; @import './components/card-post.css'; @import './components/card-large-content.css'; @import './components/section-titling.css'; @import '../../template-components/card-frequent_question.css'; +@import '../../template-components/card-thematique.css'; /* ########### LAYOUT ############ */ @import './layout/header.css'; @@ -35,3 +37,6 @@ @import '../../template-blocks/home/show-thematiques/show-thematiques.css'; @import '../../template-blocks/home/demarches-administratives/demarches-administratives.css'; @import '../../template-blocks/home/questions-frequentes/questions-frequentes.css'; + +/* ########### PAGE ############ */ +@import './pages/demo-components.css'; diff --git a/resources/css/components/card.css b/resources/css/components/card.css new file mode 100644 index 0000000..c78c43d --- /dev/null +++ b/resources/css/components/card.css @@ -0,0 +1,28 @@ +&.card-acoustique:hover, +&.card-petites-coproprietes:hover { + .cta_arrow_button { + @apply filter-acoustique-coproprietes; + } +} +&.card-au-quotidien:hover, +&.card-isolation:hover { + .cta_arrow_button { + @apply filter-isolation-quotidien; + } +} +&.card-energies:hover, +&.card-urbanisme:hover { + .cta_arrow_button { + @apply filter-energies-urbanisme; + } +} +&.card-location:hover { + .cta_arrow_button { + @apply filter-location; + } +} +&.card-patrimoine:hover { + .cta_arrow_button { + @apply filter-patrimoine; + } +} diff --git a/resources/css/components/cta.css b/resources/css/components/cta.css index ab1834d..c196d5b 100644 --- a/resources/css/components/cta.css +++ b/resources/css/components/cta.css @@ -1,31 +1,45 @@ .cta { @apply block w-fit my-2 text-base font-bold; &--button { - @apply rounded-full px-8 py-4 focus:rounded-full font-bold; + @apply rounded-full px-8 py-4 focus:rounded-full font-bold h-fit; + } + &--circular { + @apply rounded-full aspect-square w-12 flex items-center justify-center; } &--primary { - @apply bg-primary text-white; + @apply bg-primary text-white + hover:bg-primary-hover; + } + &--secondary { + @apply bg-secondary text-white + hover:bg-secondary-hover; + } + + &--outline { + @apply border-2 bg-transparent hover:bg-gray; } &--shadowed { @apply shadowed; + &:hover { + @apply bg-secondary text-white; + } } &--streched { @apply after:absolute after:inset-0; } - &--outline { - @apply border-2 bg-transparent; - } &.cta--button.cta--outline { - @apply border-black text-primary; + @apply border-black text-black; } &--read-more { - @apply flex text-primary hover:text-secondary w-full justify-between items-center mt-auto; - .icon { + @apply flex text-primary hover:text-secondary w-full justify-between items-center mt-auto; + } + &--with-arrow-button { + .cta_arrow_button { transition: transform 0.3s ease-in-out; } - &:hover .icon { + &:hover .cta_arrow_button { filter: invert(27%) sepia(69%) saturate(6074%) hue-rotate(348deg) brightness(87%) contrast(100%); transform: translateX(3px); diff --git a/resources/css/layout/footer.css b/resources/css/layout/footer.css index e3f6714..7e8749f 100644 --- a/resources/css/layout/footer.css +++ b/resources/css/layout/footer.css @@ -29,6 +29,14 @@ @apply hidden; } } + + .extra_details { + @apply flex flex-wrap items-center justify-between; + + .social-networks { + @apply flex gap-4; + } + } } &__partenaires { @apply flex col-span-2 justify-center items-center gap-12; diff --git a/resources/css/layout/menu-homegrade.css b/resources/css/layout/menu-homegrade.css index 1b39096..74f1f13 100644 --- a/resources/css/layout/menu-homegrade.css +++ b/resources/css/layout/menu-homegrade.css @@ -1,10 +1,30 @@ .menu-homegrade-footer { @apply grid grid-cols-4 gap-y-8 mt-8; - > li.menu-item > a { + li.menu-item a { + @apply hover:text-secondary; + } + > li.menu-item { + order: 5; + } + > li.menu-item-has-children { + order: 1; + } + + > li.menu-item > a, + h6.page-group-title { @apply font-bold mb-2 block; } + h6.page-group-title { + cursor: not-allowed; + /* order: 1; */ + } + .sub-menu li { @apply block my-1; } + + .wpml-ls-menu-item { + @apply hidden; + } } diff --git a/resources/css/pages/demo-components.css b/resources/css/pages/demo-components.css new file mode 100644 index 0000000..bf333af --- /dev/null +++ b/resources/css/pages/demo-components.css @@ -0,0 +1,11 @@ +.demo-components { + .title { + @apply text-3xl font-bold text-center pb-16; + } + .buttons { + @apply py-32; + .buttons-example { + @apply flex justify-center gap-8; + } + } +} diff --git a/resources/img/graphic-assets/icone-social-facebook.svg b/resources/img/graphic-assets/icone-social-facebook.svg new file mode 100644 index 0000000..8d88f33 --- /dev/null +++ b/resources/img/graphic-assets/icone-social-facebook.svg @@ -0,0 +1,3 @@ + + + diff --git a/resources/img/graphic-assets/icone-social-youtube.svg b/resources/img/graphic-assets/icone-social-youtube.svg new file mode 100644 index 0000000..89061bd --- /dev/null +++ b/resources/img/graphic-assets/icone-social-youtube.svg @@ -0,0 +1,3 @@ + + + diff --git a/template-blocks/home/aides-financieres/aides-financieres.php b/template-blocks/home/aides-financieres/aides-financieres.php index 550e1e2..0e7150c 100755 --- a/template-blocks/home/aides-financieres/aides-financieres.php +++ b/template-blocks/home/aides-financieres/aides-financieres.php @@ -27,7 +27,6 @@ $renolution_datas = get_field('renolution_datas'); - diff --git a/template-blocks/home/aides-financieres/block.json b/template-blocks/home/aides-financieres/block.json index a5f1ba7..9639b9b 100644 --- a/template-blocks/home/aides-financieres/block.json +++ b/template-blocks/home/aides-financieres/block.json @@ -15,6 +15,6 @@ ], "acf": { "mode": "auto", - "renderTemplate": "aides-financieres.php" + "renderTemplate": "aides-financieres.php" } } \ No newline at end of file diff --git a/template-blocks/home/latest-news/latest-news.php b/template-blocks/home/latest-news/latest-news.php index 1c30fa0..32fc132 100644 --- a/template-blocks/home/latest-news/latest-news.php +++ b/template-blocks/home/latest-news/latest-news.php @@ -22,7 +22,7 @@ $block_titling_datas = get_field('block_titling_datas'); $post_tags = get_the_tags($post['ID']); get_template_part( - 'template-components/card-post', + 'template-components/card-news', null, array( 'card_variant' => 'activite', diff --git a/template-blocks/home/show-thematiques/block.json b/template-blocks/home/show-thematiques/block.json index 08f9ef2..5cdc782 100644 --- a/template-blocks/home/show-thematiques/block.json +++ b/template-blocks/home/show-thematiques/block.json @@ -10,6 +10,11 @@ "keywords": [ "Thématiques" ], + "script": [ + "showthematiquejs", + "testjs" + ], + "viewScript": "show-thematique-js", "acf": { "mode": "auto", "renderTemplate": "show-thematiques.php" diff --git a/template-blocks/home/show-thematiques/show-thematiques.css b/template-blocks/home/show-thematiques/show-thematiques.css index 9093eb9..278356e 100755 --- a/template-blocks/home/show-thematiques/show-thematiques.css +++ b/template-blocks/home/show-thematiques/show-thematiques.css @@ -1,3 +1,25 @@ +.swiper { + width: 600px; + height: 300px; + background-color: green; +} + +/* .swiper-slide { + background-color: red !important; + text-align: center; + font-size: 18px; + background: #fff; + display: flex; + justify-content: center; + align-items: center; +} + +.swiper-slide img { + display: block; + width: 100%; + height: 100%; + object-fit: cover; +} */ .section-show-thematiques { @apply pt-8 pb-32; .thematiques-container { @@ -9,78 +31,4 @@ mx-auto pt-16; } - - .card-thematique { - @apply bg-white flex flex-col p-8 rounded-3xl relative; - transition: all 0.3s ease-in-out; - box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.15); - - &__thumbnail { - @apply w-full self-end; - max-height: 250px; - width: auto; - margin-top: -110px; - margin-right: 0px; - } - &__title { - @apply text-lg font-bold pb-4; - } - &__descritpion { - } - - &__cta { - @apply after:absolute - after:inset-0 - font-bold - hover:opacity-100 - pt-8 - flex - items-center - justify-between; - transition: font-weight 0.3s ease-in-out; - .cta_arrow_button { - @apply block; - width: 50px; - height: 50px; - } - } - - &:hover { - transform: scale(1.02) translateY(-10px); - box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.15); - - .cta_arrow_button { - opacity: 1; - } - } - - &.card-acoustique:hover, - &.card-petites-coproprietes:hover { - .cta_arrow_button { - @apply filter-acoustique-coproprietes; - } - } - &.card-au-quotidien:hover, - &.card-isolation:hover { - .cta_arrow_button { - @apply filter-isolation-quotidien; - } - } - &.card-energies:hover, - &.card-urbanisme:hover { - .cta_arrow_button { - @apply filter-energies-urbanisme; - } - } - &.card-location:hover { - .cta_arrow_button { - @apply filter-location; - } - } - &.card-patrimoine:hover { - .cta_arrow_button { - @apply filter-patrimoine; - } - } - } } diff --git a/template-blocks/home/show-thematiques/show-thematiques.js b/template-blocks/home/show-thematiques/show-thematiques.js new file mode 100644 index 0000000..10f6f55 --- /dev/null +++ b/template-blocks/home/show-thematiques/show-thematiques.js @@ -0,0 +1,9 @@ +window.addEventListener('DOMContentLoaded', (event) => { + mySwiper = new Swiper('.swiper', { + grabCursor: true, + slidesPerView: 2, + pagination: { + el: '.swiper-pagination', + }, + }); +}); diff --git a/template-blocks/home/show-thematiques/show-thematiques.php b/template-blocks/home/show-thematiques/show-thematiques.php index 0f1bca8..ae65292 100755 --- a/template-blocks/home/show-thematiques/show-thematiques.php +++ b/template-blocks/home/show-thematiques/show-thematiques.php @@ -11,7 +11,32 @@ $terms = get_terms(array( ?> + +
+ + +
+ +
+ +
Slide 1
+
Slide 2
+
Slide 3
+ ... +
+ +
+ + +
+ + + +
+
+ +

@@ -21,21 +46,20 @@ $terms = get_terms(array( slug); - ?> -
- -

name ?>

-

description ?>

- - En savoir plus -
- -
-
-
+ + get_template_part( + 'template-components/card-thematique', + null, + array( + 'thematique' => $term, + 'post_ID' => $post_datas->ID, + 'post_title' => $post_datas->post_title, + 'post_excerpt' => $post_datas->post_excerpt, + ) + ); + ?> + diff --git a/template-blocks/home/show-thematiques/test.js b/template-blocks/home/show-thematiques/test.js new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/template-blocks/home/show-thematiques/test.js @@ -0,0 +1 @@ + diff --git a/template-components/card-frequent-question.php b/template-components/card-frequent-question.php index a8dfa24..2e510cd 100644 --- a/template-components/card-frequent-question.php +++ b/template-components/card-frequent-question.php @@ -9,17 +9,23 @@ $thematique_icon = get_field('taxonomy_pictures', $args['thematique'])['icon']; ?> -
+

name ?>

-
    - +
    +
      + -
    • name ?>
    • +
    • name ?>
    • - -
    + +
+ + + Lire la fiche <?php echo $args[name ?>'> + +
\ No newline at end of file diff --git a/template-components/card-frequent_question.css b/template-components/card-frequent_question.css index 09162f6..fc540a4 100644 --- a/template-components/card-frequent_question.css +++ b/template-components/card-frequent_question.css @@ -1,5 +1,5 @@ .card-frequent-question { - @apply shadowed p-8 rounded-3xl; + @apply shadowed p-8 rounded-3xl relative; &__icon { max-width: 80px; @@ -8,12 +8,43 @@ @apply mt-4; @apply text-xl pb-4 font-bold; } - + &__details-container { + @apply mt-4 flex justify-between items-center; + } &__tags_container { - @apply flex flex-wrap gap-x-3 mt-4; + @apply flex flex-wrap gap-x-3; .tag { @apply py-1 px-4 rounded-lg; } } + + &.card-acoustique:hover, + &.card-petites-coproprietes:hover { + .cta_arrow_button { + @apply filter-acoustique-coproprietes; + } + } + &.card-au-quotidien:hover, + &.card-isolation:hover { + .cta_arrow_button { + @apply filter-isolation-quotidien; + } + } + &.card-energies:hover, + &.card-urbanisme:hover { + .cta_arrow_button { + @apply filter-energies-urbanisme; + } + } + &.card-location:hover { + .cta_arrow_button { + @apply filter-location; + } + } + &.card-patrimoine:hover { + .cta_arrow_button { + @apply filter-patrimoine; + } + } } diff --git a/template-components/card-post.php b/template-components/card-news.php similarity index 70% rename from template-components/card-post.php rename to template-components/card-news.php index 96b3024..1902f8f 100644 --- a/template-components/card-post.php +++ b/template-components/card-news.php @@ -14,10 +14,10 @@ $post_tags = $args['post_tags'];

- + - +
diff --git a/template-components/card-thematique.css b/template-components/card-thematique.css new file mode 100644 index 0000000..03e56e0 --- /dev/null +++ b/template-components/card-thematique.css @@ -0,0 +1,73 @@ +.card-thematique { + @apply flex flex-col p-8 rounded-3xl relative; + transition: all 0.3s ease-in-out; + box-shadow: 0px 3px 10px rgba(0, 0, 0, 0.15); + + &__thumbnail { + @apply w-full self-end; + max-height: 250px; + width: auto; + margin-top: -110px; + margin-right: 0px; + } + &__title { + @apply text-lg font-bold pb-4; + } + &__descritpion { + } + + &__cta { + @apply after:absolute + after:inset-0 + font-bold + hover:opacity-100 + pt-8 + flex + items-center + justify-between; + transition: font-weight 0.3s ease-in-out; + .cta_arrow_button { + @apply block; + width: 50px; + height: 50px; + } + } + + &:hover { + transform: scale(1.02) translateY(-10px); + box-shadow: 0px 3px 15px rgba(0, 0, 0, 0.15); + + .cta_arrow_button { + opacity: 1; + } + } + + &.card-acoustique:hover, + &.card-petites-coproprietes:hover { + .cta_arrow_button { + @apply filter-acoustique-coproprietes; + } + } + &.card-au-quotidien:hover, + &.card-isolation:hover { + .cta_arrow_button { + @apply filter-isolation-quotidien; + } + } + &.card-energies:hover, + &.card-urbanisme:hover { + .cta_arrow_button { + @apply filter-energies-urbanisme; + } + } + &.card-location:hover { + .cta_arrow_button { + @apply filter-location; + } + } + &.card-patrimoine:hover { + .cta_arrow_button { + @apply filter-patrimoine; + } + } +} diff --git a/template-components/card-thematique.php b/template-components/card-thematique.php new file mode 100644 index 0000000..e6be7c1 --- /dev/null +++ b/template-components/card-thematique.php @@ -0,0 +1,21 @@ +slug); + +?> +
+ +

name ?>

+

description ?>

+ + + En savoir plus +
+ +
+
+
\ No newline at end of file diff --git a/theme.json b/theme.json index 4c7114f..36f8ea4 100644 --- a/theme.json +++ b/theme.json @@ -14,6 +14,11 @@ "slug": "primary", "color": "#2F0154" }, + { + "name": "Primaire Survol", + "slug": "primary-hover", + "color": "#130023" + }, { "name": "Secondaire", "slug": "secondary", @@ -24,6 +29,11 @@ "slug": "secondary-light", "color": "#FFEDEC" }, + { + "name": "Secondaire Au Survol", + "slug": "secondary-hover", + "color": "#980303" + }, { "name": "Gris", "slug": "gray",