PageSourceSearch

https://elengadotnet.com/front/js/jquery-fancybox.min.js

js elengadotnet.com collected 2026-10-08 17:29:19 UTC 121,436 bytes, 3,318 lines download raw bytes

1// ==================================================
2// fancyBox v3.5.7
3//
4// Licensed GPLv3 for open source use
5// or fancyBox Commercial License for commercial use
6//
7// http://fancyapps.com/fancybox/
8// Copyright 2019 fancyApps
9//
10// ==================================================
11!(function (t, e, n, o) {
12  "use strict";
13  function i(t, e) {
14    var o,
15      i,
16      a,
17      s = [],
18      r = 0;
19    (t && t.isDefaultPrevented()) ||
20      (t.preventDefault(),
21      (e = e || {}),
22      t && t.data && (e = h(t.data.options, e)),
23      (o = e.$target || n(t.currentTarget).trigger("blur")),
24      ((a = n.fancybox.getInstance()) && a.$trigger && a.$trigger.is(o)) ||
25        (e.selector
26          ? (s = n(e.selector))
27          : ((i = o.attr("data-fancybox") || ""),
28            i
29              ? ((s = t.data ? t.data.items : []),
30                (s = s.length
31                  ? s.filter('[data-fancybox="' + i + '"]')
32                  : n('[data-fancybox="' + i + '"]')))
33              : (s = [o])),
34        (r = n(s).index(o)),
35        r < 0 && (r = 0),
36        (a = n.fancybox.open(s, e, r)),
37        (a.$trigger = o)));
38  }
39  if (((t.console = t.console || { info: function (t) {} }), n)) {
40    if (n.fn.fancybox) return void console.info("fancyBox already initialized");
41    var a = {
42        closeExisting: !1,
43        loop: !1,
44        gutter: 50,
45        keyboard: !0,
46        preventCaptionOverlap: !0,
47        arrows: !0,
48        infobar: !0,
49        smallBtn: "auto",
50        toolbar: "auto",
51        buttons: ["zoom", "slideShow", "thumbs", "close"],
52        idleTime: 3,
53        protect: !1,
54        modal: !1,
55        image: { preload: !1 },
56        ajax: { settings: { data: { fancybox: !0 } } },
57        iframe: {
58          tpl: '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" allowfullscreen="allowfullscreen" allow="autoplay; fullscreen" src=""></iframe>',
59          preload: !0,
60          css: {},
61          attr: { scrolling: "auto" },
62        },
63        video: {
64          tpl: '<video class="fancybox-video" controls controlsList="nodownload" poster="{{poster}}"><source src="{{src}}" type="{{format}}" />Sorry, your browser doesn\'t support embedded videos, <a href="{{src}}">download</a> and watch with your favorite video player!</video>',
65          format: "",
66          autoStart: !0,
67        },
68        defaultType: "image",
69        animationEffect: "zoom",
70        animationDuration: 366,
71        zoomOpacity: "auto",
72        transitionEffect: "fade",
73        transitionDuration: 366,
74        slideClass: "",
75        baseClass: "",
76        baseTpl:
77          '<div class="fancybox-container" role="dialog" tabindex="-1"><div class="fancybox-bg"></div><div class="fancybox-inner"><div class="fancybox-infobar"><span data-fancybox-index></span>&nbsp;/&nbsp;<span data-fancybox-count></span></div><div class="fancybox-toolbar">{{buttons}}</div><div class="fancybox-navigation">{{arrows}}</div><div class="fancybox-stage"></div><div class="fancybox-caption"><div class="fancybox-caption__body"></div></div></div></div>',
78        spinnerTpl: '<div class="fancybox-loading"></div>',
79        errorTpl: '<div class="fancybox-error"><p>{{ERROR}}</p></div>',
80        btnTpl: {
81          download:
82            '<a download data-fancybox-download class="fancybox-button fancybox-button--download" title="{{DOWNLOAD}}" href="javascript:;"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.62 17.09V19H5.38v-1.91zm-2.97-6.96L17 11.45l-5 4.87-5-4.87 1.36-1.32 2.68 2.64V5h1.92v7.77z"/></svg></a>',
83          zoom: '<button data-fancybox-zoom class="fancybox-button fancybox-button--zoom" title="{{ZOOM}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M18.7 17.3l-3-3a5.9 5.9 0 0 0-.6-7.6 5.9 5.9 0 0 0-8.4 0 5.9 5.9 0 0 0 0 8.4 5.9 5.9 0 0 0 7.7.7l3 3a1 1 0 0 0 1.3 0c.4-.5.4-1 0-1.5zM8.1 13.8a4 4 0 0 1 0-5.7 4 4 0 0 1 5.7 0 4 4 0 0 1 0 5.7 4 4 0 0 1-5.7 0z"/></svg></button>',
84          close:
85            '<button data-fancybox-close class="fancybox-button fancybox-button--close" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
85<path d="M12 10.6L6.6 5.2 5.2 6.6l5.4 5.4-5.4 5.4 1.4 1.4 5.4-5.4 5.4 5.4 1.4-1.4-5.4-5.4 5.4-5.4-1.4-1.4-5.4 5.4z"/></svg></button>',
86          arrowLeft:
87            '<button data-fancybox-prev class="fancybox-button fancybox-button--arrow_left" title="{{PREV}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.28 15.7l-1.34 1.37L5 12l4.94-5.07 1.34 1.38-2.68 2.72H19v1.94H8.6z"/></svg></div></button>',
88          arrowRight:
89            '<button data-fancybox-next class="fancybox-button fancybox-button--arrow_right" title="{{NEXT}}"><div><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.4 12.97l-2.68 2.72 1.34 1.38L19 12l-4.94-5.07-1.34 1.38 2.68 2.72H5v1.94z"/></svg></div></button>',
90          smallBtn:
91            '<button type="button" data-fancybox-close class="fancybox-button fancybox-close-small" title="{{CLOSE}}"><svg xmlns="http://www.w3.org/2000/svg" version="1" viewBox="0 0 24 24"><path d="M13 12l5-5-1-1-5 5-5-5-1 1 5 5-5 5 1 1 5-5 5 5 1-1z"/></svg></button>',
92        },
93        parentEl: "body",
94        hideScrollbar: !0,
95        autoFocus: !0,
96        backFocus: !0,
97        trapFocus: !0,
98        fullScreen: { autoStart: !1 },
99        touch: { vertical: !0, momentum: !0 },
100        hash: null,
101        media: {},
102        slideShow: { autoStart: !1, speed: 3e3 },
103        thumbs: {
104          autoStart: !1,
105          hideOnClose: !0,
106          parentEl: ".fancybox-container",
107          axis: "y",
108        },
109        wheel: "auto",
110        onInit: n.noop,
111        beforeLoad: n.noop,
112        afterLoad: n.noop,
113        beforeShow: n.noop,
114        afterShow: n.noop,
115        beforeClose: n.noop,
116        afterClose: n.noop,
117        onActivate: n.noop,
118        onDeactivate: n.noop,
119        clickContent: function (t, e) {
120          return "image" === t.type && "zoom";
121        },
122        clickSlide: "close",
123        clickOutside: "close",
124        dblclickContent: !1,
125        dblclickSlide: !1,
126        dblclickOutside: !1,
127        mobile: {
128          preventCaptionOverlap: !1,
129          idleTime: !1,
130          clickContent: function (t, e) {
131            return "image" === t.type && "toggleControls";
132          },
133          clickSlide: function (t, e) {
134            return "image" === t.type ? "toggleControls" : "close";
135          },
136          dblclickContent: function (t, e) {
137            return "image" === t.type && "zoom";
138          },
139          dblclickSlide: function (t, e) {
140            return "image" === t.type && "zoom";
141          },
142        },
143        lang: "en",
144        i18n: {
145          en: {
146            CLOSE: "Close",
147            NEXT: "Next",
148            PREV: "Previous",
149            ERROR:
150              "The requested content cannot be loaded. <br/> Please try again later.",
151            PLAY_START: "Start slideshow",
152            PLAY_STOP: "Pause slideshow",
153            FULL_SCREEN: "Full screen",
154            THUMBS: "Thumbnails",
155            DOWNLOAD: "Download",
156            SHARE: "Share",
157            ZOOM: "Zoom",
158          },
159          de: {
160            CLOSE: "Schlie&szlig;en",
161            NEXT: "Weiter",
162            PREV: "Zur&uuml;ck",
163            ERROR:
164              "Die angeforderten Daten konnten nicht geladen werden. <br/> Bitte versuchen Sie es sp&auml;ter nochmal.",
165            PLAY_START: "Diaschau starten",
166            PLAY_STOP: "Diaschau beenden",
167            FULL_SCREEN: "Vollbild",
168            THUMBS: "Vorschaubilder",
169            DOWNLOAD: "Herunterladen",
170            SHARE: "Teilen",
171            ZOOM: "Vergr&ouml;&szlig;ern",
172          },
173        },
174      },
175      s = n(t),
176      r = n(e),
177      c = 0,
178      l = function (t) {
179        return t && t.hasOwnProperty && t instanceof n;
180      },
181      d = (function () {
182        return (
183          t.requestAnimationFrame ||
184          t.webkitRequestAnimationFrame ||
185          t.mozRequestAnimationFrame ||
186          t.oRequestAnimationFrame ||
187          function (e) {
188            return t.setTimeout(e, 1e3 / 60);
189          }
190        );
191      })(),
192      u = (function () {
193        return (
194          t.cancelAnimationFrame ||
195          t.webkitCancelAnimationFrame ||
196          t.mozCancelAnimationFrame ||
197          t.oCancelAnimationFrame ||
198          function (e) {
199            t.clearTimeout(e);
200          }
201        );
202      })(),
203      f = (function () {
204        var t,
205          n = e.createElement("fakeelement"),
206          o = {
207            transition: "transitionend",
208            OTransition: "oTransitionEnd",
209            MozTransition: "transitionend",
210            WebkitTransition: "webkitTransitionEnd",
211          };
212        for (t in o) if (void 0 !== n.style[t]) return o[t];
213        return "transitionend";
214      })(),
215      p = function (t) {
216        return t && t.length && t[0].offsetHeight;
217      },
218      h = function (t, e) {
219        var o = n.extend(!0, {}, t, e);
220        return (
221          n.each(e, function (t, e) {
222            n.isArray(e) && (o[t] = e);
223          }),
224          o
225        );
226      },
227      g = function (t) {
228        var o, i;
229        return (
230          !(!t || t.ownerDocument !== e) &&
231          (n(".fancybox-container").css("pointer-events", "none"),
232          (o = {
233            x: t.getBoundingClientRect().left + t.offsetWidth / 2,
234            y: t.getBoundingClientRect().top + t.offsetHeight / 2,
235          }),
236          (i = e.elementFromPoint(o.x, o.y) === t),
237          n(".fancybox-container").css("pointer-events", ""),
238          i)
239        );
240      },
241      b = function (t, e, o) {
242        var i = this;
243        (i.opts = h({ index: o }, n.fancybox.defaults)),
244          n.isPlainObject(e) && (i.opts = h(i.opts, e)),
245          n.fancybox.isMobile && (i.opts = h(i.opts, i.opts.mobile)),
246          (i.id = i.opts.id || ++c),
247          (i.currIndex = parseInt(i.opts.index, 10) || 0),
248          (i.prevIndex = null),
249          (i.prevPos = null),
250          (i.currPos = 0),
251          (i.firstRun = !0),
252          (i.group = []),
253          (i.slides = {}),
254          i.addContent(t),
255          i.group.length && i.init();
256      };
257    n.extend(b.prototype, {
258      init: function () {
259        var o,
260          i,
261          a = this,
262          s = a.group[a.currIndex],
263          r = s.opts;
264        r.closeExisting && n.fancybox.close(!0),
265          n("body").addClass("fancybox-active"),
266          !n.fancybox.getInstance() &&
267            !1 !== r.hideScrollbar &&
268            !n.fancybox.isMobile &&
269            e.body.scrollHeight >
269 t.innerHeight &&
270            (n("head").append(
271              '<style id="fancybox-style-noscroll" type="text/css">.compensate-for-scrollbar{margin-right:' +
272                (t.innerWidth - e.documentElement.clientWidth) +
273                "px;}</style>"
274            ),
275            n("body").addClass("compensate-for-scrollbar")),
276          (i = ""),
277          n.each(r.buttons, function (t, e) {
278            i += r.btnTpl[e] || "";
279          }),
280          (o = n(
281            a.translate(
282              a,
283              r.baseTpl
284                .replace("{{buttons}}", i)
285                .replace("{{arrows}}", r.btnTpl.arrowLeft + r.btnTpl.arrowRight)
286            )
287          )
288            .attr("id", "fancybox-container-" + a.id)
289            .addClass(r.baseClass)
290            .data("FancyBox", a)
291            .appendTo(r.parentEl)),
292          (a.$refs = { container: o }),
293          [
294            "bg",
295            "inner",
296            "infobar",
297            "toolbar",
298            "stage",
299            "caption",
300            "navigation",
301          ].forEach(function (t) {
302            a.$refs[t] = o.find(".fancybox-" + t);
303          }),
304          a.trigger("onInit"),
305          a.activate(),
306          a.jumpTo(a.currIndex);
307      },
308      translate: function (t, e) {
309        var n = t.opts.i18n[t.opts.lang] || t.opts.i18n.en;
310        return e.replace(/\{\{(\w+)\}\}/g, function (t, e) {
311          return void 0 === n[e] ? t : n[e];
312        });
313      },
314      addContent: function (t) {
315        var e,
316          o = this,
317          i = n.makeArray(t);
318        n.each(i, function (t, e) {
319          var i,
320            a,
321            s,
322            r,
323            c,
324            l = {},
325            d = {};
326          n.isPlainObject(e)
327            ? ((l = e), (d = e.opts || e))
328            : "object" === n.type(e) && n(e).length
329            ? ((i = n(e)),
330              (d = i.data() || {}),
331              (d = n.extend(!0, {}, d, d.options)),
332              (d.$orig = i),
333              (l.src = o.opts.src || d.src || i.attr("href")),
334              l.type || l.src || ((l.type = "inline"), (l.src = e)))
335            : (l = { type: "html", src: e + "" }),
336            (l.opts = n.extend(!0, {}, o.opts, d)),
337            n.isArray(d.buttons) && (l.opts.buttons = d.buttons),
338            n.fancybox.isMobile &&
339              l.opts.mobile &&
340              (l.opts = h(l.opts, l.opts.mobile)),
341            (a = l.type || l.opts.type),
342            (r = l.src || ""),
343            !a &&
344              r &&
345              ((s = r.match(/\.(mp4|mov|ogv|webm)((\?|#).*)?$/i))
346                ? ((a = "video"),
347                  l.opts.video.format ||
348                    (l.opts.video.format =
349                      "video/" + ("ogv" === s[1] ? "ogg" : s[1])))
350                : r.match(
351                    /(^data:image\/[a-z0-9+\/=]*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg|ico)((\?|#).*)?$)/i
352                  )
353                ? (a = "image")
354                : r.match(/\.(pdf)((\?|#).*)?$/i)
355                ? ((a = "iframe"),
356                  (l = n.extend(!0, l, {
357                    contentType: "pdf",
358                    opts: { iframe: { preload: !1 } },
359                  })))
360                : "#" === r.charAt(0) && (a = "inline")),
361            a ? (l.type = a) : o.trigger("objectNeedsType", l),
362            l.contentType ||
363              (l.contentType =
364                n.inArray(l.type, ["html", "inline", "ajax"]) > -1
365                  ? "html"
366                  : l.type),
367            (l.index = o.group.length),
368            "auto" == l.opts.smallBtn &&
369              (l.opts.smallBtn =
370                n.inArray(l.type, ["html", "inline", "ajax"]) > -1),
371            "auto" === l.opts.toolbar && (l.opts.toolbar = !l.opts.smallBtn),
372            (l.$thumb = l.opts.$thumb || null),
373            l.opts.$trigger &&
374              l.index === o.opts.index &&
375              ((l.$thumb = l.opts.$trigger.find("img:first")),
376              l.$thumb.length && (l.opts.$orig = l.opts.$trigger)),
377            (l.$thumb && l.$thumb.length) ||
378              !l.opts.$orig ||
379              (l.$thumb = l.opts.$orig.find("img:first")),
380            l.$thumb && !l.$thumb.length && (l.$thumb = null),
381            (l.thumb = l.opts.thumb || (l.$thumb ? l.$thumb[0].src : null)),
382            "function" === n.type(l.opts.caption) &&
383              (l.opts.caption = l.opts.caption.apply(e, [o, l])),
384            "function" === n.type(o.opts.caption) &&
385              (l.opts.caption = o.opts.caption.apply(e, [o, l])),
386            l.opts.caption instanceof n ||
387              (l.opts.caption =
388                void 0 === l.opts.caption ? "" : l.opts.caption + ""),
389            "ajax" === l.type &&
390              ((c = r.split(/\s+/, 2)),
391              c.length > 1 &&
392                ((l.src = c.shift()), (l.opts.filter = c.shift()))),
393            l.opts.modal &&
394              (l.opts = n.extend(!0, l.opts, {
395                trapFocus: !0,
396                infobar: 0,
397                toolbar: 0,
398                smallBtn: 0,
399                keyboard: 0,
400                slideShow: 0,
401                fullScreen: 0,
402                thumbs: 0,
403                touch: 0,
404                clickContent: !1,
405                clickSlide: !1,
406                clickOutside: !1,
407                dblclickContent: !1,
408                dblclickSlide: !1,
409                dblclickOutside: !1,
410              })),
411            o.group.push(l);
412        }),
413          Object.keys(o.slides).length &&
414            (o.updateControls(),
415            (e = o.Thumbs) && e.isActive && (e.create(), e.focus()));
416      },
417      addEvents: function () {
418        var e = this;
419        e.removeEvents(),
420          e.$refs.container
421            .on("click.fb-close", "[data-fancybox-close]", function (t) {
422              t.stopPropagation(), t.preventDefault(), e.close(t);
423            })
424            .on(
425              "touchstart.fb-prev click.fb-prev",
426              "[data-fancybox-prev]",
427              function (t) {
428                t.stopPropagation(), t.preventDefault(), e.previous();
429              }
430            )
431            .on(
432              "touchstart.fb-next click.fb-next",
433              "[data-fancybox-next]",
434              function (t) {
435                t.stopPropagation(), t.preventDefault(), e.next();
436              }
437            )
438            .on("click.fb", "[data-fancybox-zoom]", function (t) {
439              e[e.isScaledDown() ? "scaleToActual" : "scaleToFit"]();
440            }),
441          s.on("orientationchange.fb resize.fb", function (t) {
442            t && t.originalEvent && "resize" === t.originalEvent.type
443              ? (e.requestId && u(e.requestId),
444                (e.requestId = d(function () {
445                  e.update(t);
446                })))
447              : (e.current &&
448                  "iframe" === e.current.type &&
449                  e.$refs.stage.hide(),
450                setTimeout(
451                  function () {
452                    e.$refs.stage.show(), e.update(t);
453                  },
454                  n.fancybox.isMobile ? 600 : 250
455                ));
456          }),
457          r.on("keydown.fb", function (t) {
458            var o = n.fancybox ? n.fancybox.getInstance() : null,
459              i = o.current,
460              a = t.keyCode || t.which;
461            if (9 == a) return void (i.opts.trapFocus && e.focus(t));
462            if (
463              !(
464                !i.opts.keyboard ||
465                t.ctrlKey ||
466                t.altKey ||
467                t.shiftKey ||
468                n(t.target).is("input,textarea,video,audio,select")
469              )
470            )
471              return 8 === a || 27 === a
472                ? (t.preventDefault(), void e.close(t))
473                : 37 === a || 38 === a
474                ? (t.preventDefault(), void e.previous())
475                : 39 === a || 40 === a
476                ? (t.preventDefault(), void e.next())
477                : void e.trigger("afterKeydown", t, a);
478          }),
479          e.group[e.currIndex].opts.idleTime &&
480            ((e.idleSecondsCounter = 0),
481            r.on(
482              "mousemove.fb-idle mouseleave.fb-idle mousedown.fb-idle touchstart.fb-idle touchmove.fb-idle scroll.fb-idle keydown.fb-idle",
483              function (t) {
484                (e.idleSecondsCounter = 0),
485                  e.isIdle && e.showControls(),
486                  (e.isIdle = !1);
487              }
488            ),
489            (e.idleInterval = t.setInterval(function () {
490              ++e.idleSecondsCounter >= e.group[e.currIndex].opts.idleTime &&
491                !e.isDragging &&
492                ((e.isIdle = !0), (e.idleSecondsCounter = 0), e.hideControls());
493            }, 1e3)));
494      },
495      removeEvents: function () {
496        var e = this;
497        s.off("orientationchange.fb resize.fb"),
498          r.off("keydown.fb .fb-idle"),
499          this.$refs.container.off(".fb-close .fb-prev .fb-next"),
500          e.idleInterval &&
501            (t.clearInterval(e.idleInterval), (e.idleInterval = null));
502      },
503      previous: function (t) {
504        return this.jumpTo(this.currPos - 1, t);
505      },
506      next: function (t) {
507        return this.jumpTo(this.currPos + 1, t);
508      },
509      jumpTo: function (t, e) {
510        var o,
511          i,
512          a,
513          s,
514          r,
515          c,
516          l,
517          d,
518          u,
519          f = this,
520          h = f.group.length;
521        if (!(f.isDragging || f.isClosing || (f.isAnimating && f.firstRun))) {
522          if (
523            ((t = parseInt(t, 10)),
524            !(a = f.current ? f.current.opts.loop : f.opts.loop) &&
525              (t < 0 || t >= h))
526          )
527            return !1;
528          if (
529            ((o = f.firstRun = !Object.keys(f.slides).length),
530            (r = f.current),
531            (f.prevIndex = f.currIndex),
532            (f.prevPos = f.currPos),
533            (s = f.createSlide(t)),
534            h > 1 &&
535              ((a || s.index < h - 1) && f.createSlide(t + 1),
536              (a || s.index > 0) && f.createSlide(t - 1)),
537            (f.current = s),
538            (f.currIndex = s.index),
539            (f.currPos = s.pos),
540            f.trigger("beforeShow", o),
541            f.updateControls(),
542            (s.forcedDuration = void 0),
543            n.isNumeric(e)
544              ? (s.forcedDuration = e)
545              : (e = s.opts[o ? "animationDuration" : "transitionDuration"]),
546            (e = parseInt(e, 10)),
547            (i = f.isMoved(s)),
548            s.$slide.addClass("fancybox-slide--current"),
549            o)
550          )
551            return (
552              s.opts.animationEffect &&
553                e &&
554                f.$refs.container.css("transition-duration", e + "ms"),
555              f.$refs.container.addClass("fancybox-is-open").trigger("focus"),
556              f.loadSlide(s),
557              void f.preload("image")
558            );
559          (c = n.fancybox.getTranslate(r.$slide)),
560            (l = n.fancybox.getTranslate(f.$refs.stage)),
561            n.each(f.slides, function (t, e) {
562              n.fancybox.stop(e.$slide, !0);
563            }),
564            r.pos !== s.pos && (r.isComplete = !1),
565            r.$slide.removeClass(
566              "fancybox-slide--complete fancybox-slide--current"
567            ),
568            i
569              ? ((u = c.left - (r.pos * c.width + r.pos * r.opts.gutter)),
570                n.each(f.slides, function (t, o) {
571                  o.$slide
572                    .removeClass("fancybox-animated")
573                    .removeClass(function (t, e) {
574                      return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(
575                        " "
576                      );
577                    });
578                  var i = o.pos * c.width + o.pos * o.opts.gutter;
579                  n.fancybox.setTranslate(o.$slide, {
580                    top: 0,
581                    left: i - l.left + u,
582                  }),
583                    o.pos !== s.pos &&
584                      o.$slide.addClass(
585                        "fancybox-slide--" +
586                          (o.pos > s.pos ? "next" : "previous")
587                      ),
588                    p(o.$slide),
589                    n.fancybox.animate(
590                      o.$slide,
591                      {
592                        top: 0,
593                        left:
594                          (o.pos - s.pos) * c.width +
595                          (o.pos - s.pos) * o.opts.gutter,
596                      },
597                      e,
598                      function () {
599                        o.$slide
600                          .css({ transform: "", opacity: "" })
601                          .removeClass(
602                            "fancybox-slide--next fancybox-slide--previous"
603                          ),
604                          o.pos === f.currPos && f.complete();
605                      }
606                    );
607                }))
608              : e &&
609                s.opts.transitionEffect &&
610                ((d =
611                  "fancybox-animated fancybox-fx-" + s.opts.transitionEffect),
612                r.$slide.addClass(
613                  "fancybox-slide--" + (r.pos > s.pos ? "next" : "previous")
614                ),
615                n.fancybox.animate(
616                  r.$slide,
617                  d,
618                  e,
619                  function () {
620                    r.$slide
621                      .removeClass(d)
622                      .removeClass(
623                        "fancybox-slide--next fancybox-slide--previous"
624                      );
625                  },
626                  !1
627                )),
628            s.isLoaded ? f.revealContent(s) : f.loadSlide(s),
629            f.preload("image");
630        }
631      },
632      createSlide: function (t) {
633        var e,
634          o,
635          i = this;
636        return (
637          (o = t % i.group.length),
638          (o = o < 0 ? i.group.length + o : o),
639          !i.slides[t] &&
640            i.group[o] &&
641            ((e = n('<div class="fancybox-slide"></div>').appendTo(
642              i.$refs.stage
643            )),
644            (i.slides[t] = n.extend(!0, {}, i.group[o], {
645              pos: t,
646              $slide: e,
647              isLoaded: !1,
648            })),
649            i.updateSlide(i.slides[t])),
650          i.slides[t]
651        );
652      },
653      scaleToActual: function (t, e, o) {
654        var i,
655          a,
656          s,
657          r,
658          c,
659          l = this,
660          d = l.current,
661          u = d.$content,
662          f = n.fancybox.getTranslate(d.$slide).width,
663          p = n.fancybox.getTranslate(d.$slide).height,
664          h = d.width,
665          g = d.height;
666        l.isAnimating ||
667          l.isMoved() ||
668          !u ||
669          "image" != d.type ||
670          !d.isLoaded ||
671          d.hasError ||
672          ((l.isAnimating = !0),
673          n.fancybox.stop(u),
674          (t = void 0 === t ? 0.5 * f : t),
675          (e = void 0 === e ? 0.5 * p : e),
676          (i = n.fancybox.getTranslate(u)),
677          (i.top -= n.fancybox.getTranslate(d.$slide).top),
678          (i.left -= n.fancybox.getTranslate(d.$slide).left),
679          (r = h / i.width),
680          (c = g / i.height),
681          (a = 0.5 * f - 0.5 * h),
682          (s = 0.5 * p - 0.5 * g),
683          h > f &&
684            ((a = i.left * r - (t * r - t)),
685            a > 0 && (a = 0),
686            a < f - h && (a = f - h)),
687          g > p &&
688            ((s = i.top * c - (e * c - e)),
689            s > 0 && (s = 0),
690            s < p - g && (s = p - g)),
691          l.updateCursor(h, g),
692          n.fancybox.animate(
693            u,
694            { top: s, left: a, scaleX: r, scaleY: c },
695            o || 366,
696            function () {
697              l.isAnimating = !1;
698            }
699          ),
700          l.SlideShow && l.SlideShow.isActive && l.SlideShow.stop());
701      },
702      scaleToFit: function (t) {
703        var e,
704          o = this,
705          i = o.current,
706          a = i.$content;
707        o.isAnimating ||
708          o.isMoved() ||
709          !a ||
710          "image" != i.type ||
711          !i.isLoaded ||
712          i.hasError ||
713          ((o.isAnimating = !0),
714          n.fancybox.stop(a),
715          (e = o.getFitPos(i)),
716          o.updateCursor(e.width, e.height),
717          n.fancybox.animate(
718            a,
719            {
720              top: e.top,
721              left: e.left,
722              scaleX: e.width / a.width(),
723              scaleY: e.height / a.height(),
724            },
725            t || 366,
726            function () {
727              o.isAnimating = !1;
728            }
729          ));
730      },
731      getFitPos: function (t) {
732        var e,
733          o,
734          i,
735          a,
736          s = this,
737          r = t.$content,
738          c = t.$slide,
739          l = t.width || t.opts.width,
740          d = t.height || t.opts.height,
741          u = {};
742        return (
743          !!(t.isLoaded && r && r.length) &&
744          ((e = n.fancybox.getTranslate(s.$refs.stage).width),
745          (o = n.fancybox.getTranslate(s.$refs.stage).height),
746          (e -=
747            parseFloat(c.css("paddingLeft")) +
748            parseFloat(c.css("paddingRight")) +
749            parseFloat(r.css("marginLeft")) +
750            parseFloat(r.css("marginRight"))),
751          (o -=
752            parseFloat(c.css("paddingTop")) +
753            parseFloat(c.css("paddingBottom")) +
754            parseFloat(r.css("marginTop")) +
755            parseFloat(r.css("marginBottom"))),
756          (l && d) || ((l = e), (d = o)),
757          (i = Math.min(1, e / l, o / d)),
758          (l *= i),
759          (d *= i),
760          l > e - 0.5 && (l = e),
761          d > o - 0.5 && (d = o),
762          "image" === t.type
763            ? ((u.top =
764                Math.floor(0.5 * (o - d)) + parseFloat(c.css("paddingTop"))),
765              (u.left =
766                Math.floor(0.5 * (e - l)) + parseFloat(c.css("paddingLeft"))))
767            : "video" === t.contentType &&
768              ((a =
769                t.opts.width && t.opts.height ? l / d : t.opts.ratio || 16 / 9),
770              d > l / a ? (d = l / a) : l > d * a && (l = d * a)),
771          (u.width = l),
772          (u.height = d),
773          u)
774        );
775      },
776      update: function (t) {
777        var e = this;
778        n.each(e.slides, function (n, o) {
779          e.updateSlide(o, t);
780        });
781      },
782      updateSlide: function (t, e) {
783        var o = this,
784          i = t && t.$content,
785          a = t.width || t.opts.width,
786          s = t.height || t.opts.height,
787          r = t.$slide;
788        o.adjustCaption(t),
789          i &&
790            (a || s || "video" === t.contentType) &&
791            !t.hasError &&
792            (n.fancybox.stop(i),
793            n.fancybox.setTranslate(i, o.getFitPos(t)),
794            t.pos === o.currPos && ((o.isAnimating = !1), o.updateCursor(
794))),
795          o.adjustLayout(t),
796          r.length &&
797            (r.trigger("refresh"),
798            t.pos === o.currPos &&
799              o.$refs.toolbar
800                .add(o.$refs.navigation.find(".fancybox-button--arrow_right"))
801                .toggleClass(
802                  "compensate-for-scrollbar",
803                  r.get(0).scrollHeight > r.get(0).clientHeight
804                )),
805          o.trigger("onUpdate", t, e);
806      },
807      centerSlide: function (t) {
808        var e = this,
809          o = e.current,
810          i = o.$slide;
811        !e.isClosing &&
812          o &&
813          (i.siblings().css({ transform: "", opacity: "" }),
814          i
815            .parent()
816            .children()
817            .removeClass("fancybox-slide--previous fancybox-slide--next"),
818          n.fancybox.animate(
819            i,
820            { top: 0, left: 0, opacity: 1 },
821            void 0 === t ? 0 : t,
822            function () {
823              i.css({ transform: "", opacity: "" }),
824                o.isComplete || e.complete();
825            },
826            !1
827          ));
828      },
829      isMoved: function (t) {
830        var e,
831          o,
832          i = t || this.current;
833        return (
834          !!i &&
835          ((o = n.fancybox.getTranslate(this.$refs.stage)),
836          (e = n.fancybox.getTranslate(i.$slide)),
837          !i.$slide.hasClass("fancybox-animated") &&
838            (Math.abs(e.top - o.top) > 0.5 || Math.abs(e.left - o.left) > 0.5))
839        );
840      },
841      updateCursor: function (t, e) {
842        var o,
843          i,
844          a = this,
845          s = a.current,
846          r = a.$refs.container;
847        s &&
848          !a.isClosing &&
849          a.Guestures &&
850          (r.removeClass(
851            "fancybox-is-zoomable fancybox-can-zoomIn fancybox-can-zoomOut fancybox-can-swipe fancybox-can-pan"
852          ),
853          (o = a.canPan(t, e)),
854          (i = !!o || a.isZoomable()),
855          r.toggleClass("fancybox-is-zoomable", i),
856          n("[data-fancybox-zoom]").prop("disabled", !i),
857          o
858            ? r.addClass("fancybox-can-pan")
859            : i &&
860              ("zoom" === s.opts.clickContent ||
861                (n.isFunction(s.opts.clickContent) &&
862                  "zoom" == s.opts.clickContent(s)))
863            ? r.addClass("fancybox-can-zoomIn")
864            : s.opts.touch &&
865              (s.opts.touch.vertical || a.group.length > 1) &&
866              "video" !== s.contentType &&
867              r.addClass("fancybox-can-swipe"));
868      },
869      isZoomable: function () {
870        var t,
871          e = this,
872          n = e.current;
873        if (n && !e.isClosing && "image" === n.type && !n.hasError) {
874          if (!n.isLoaded) return !0;
875          if (
876            (t = e.getFitPos(n)) &&
877            (n.width > t.width || n.height > t.height)
878          )
879            return !0;
880        }
881        return !1;
882      },
883      isScaledDown: function (t, e) {
884        var o = this,
885          i = !1,
886          a = o.current,
887          s = a.$content;
888        return (
889          void 0 !== t && void 0 !== e
890            ? (i = t < a.width && e < a.height)
891            : s &&
892              ((i = n.fancybox.getTranslate(s)),
893              (i = i.width < a.width && i.height < a.height)),
894          i
895        );
896      },
897      canPan: function (t, e) {
898        var o = this,
899          i = o.current,
900          a = null,
901          s = !1;
902        return (
903          "image" === i.type &&
904            (i.isComplete || (t && e)) &&
905            !i.hasError &&
906            ((s = o.getFitPos(i)),
907            void 0 !== t && void 0 !== e
908              ? (a = { width: t, height: e })
909              : i.isComplete && (a = n.fancybox.getTranslate(i.$content)),
910            a &&
911              s &&
912              (s =
913                Math.abs(a.width - s.width) > 1.5 ||
914                Math.abs(a.height - s.height) > 1.5)),
915          s
916        );
917      },
918      loadSlide: function (t) {
919        var e,
920          o,
921          i,
922          a = this;
923        if (!t.isLoading && !t.isLoaded) {
924          if (((t.isLoading = !0), !1 === a.trigger("beforeLoad", t)))
925            return (t.isLoading = !1), !1;
926          switch (
927            ((e = t.type),
928            (o = t.$slide),
929            o.off("refresh").trigger("onReset").addClass(t.opts.slideClass),
930            e)
931          ) {
932            case "image":
933              a.setImage(t);
934              break;
935            case "iframe":
936              a.setIframe(t);
937              break;
938            case "html":
939              a.setContent(t, t.src || t.content);
940              break;
941            case "video":
942              a.setContent(
943                t,
944                t.opts.video.tpl
945                  .replace(/\{\{src\}\}/gi, t.src)
946                  .replace(
947                    "{{format}}",
948                    t.opts.videoFormat || t.opts.video.format || ""
949                  )
950                  .replace("{{poster}}", t.thumb || "")
951              );
952              break;
953            case "inline":
954              n(t.src).length ? a.setContent(t, n(t.src)) : a.setError(t);
955              break;
956            case "ajax":
957              a.showLoading(t),
958                (i = n.ajax(
959                  n.extend({}, t.opts.ajax.settings, {
960                    url: t.src,
961                    success: function (e, n) {
962                      "success" === n && a.setContent(t, e);
963                    },
964                    error: function (e, n) {
965                      e && "abort" !== n && a.setError(t);
966                    },
967                  })
968                )),
969                o.one("onReset", function () {
970                  i.abort();
971                });
972              break;
973            default:
974              a.setError(t);
975          }
976          return !0;
977        }
978      },
979      setImage: function (t) {
980        var o,
981          i = this;
982        setTimeout(function () {
983          var e = t.$image;
984          i.isClosing ||
985            !t.isLoading ||
986            (e && e.length && e[0].complete) ||
987            t.hasError ||
988            i.showLoading(t);
989        }, 50),
990          i.checkSrcset(t),
991          (t.$content = n('<div class="fancybox-content"></div>')
992            .addClass("fancybox-is-hidden")
993            .appendTo(t.$slide.addClass("fancybox-slide--image"))),
994          !1 !== t.opts.preload &&
995            t.opts.width &&
996            t.opts.height &&
997            t.thumb &&
998            ((t.width = t.opts.width),
999            (t.height = t.opts.height),
1000            (o = e.createElement("img")),
1001            (o.onerror = function () {
1002              n(this).remove(), (t.$ghost = null);
1003            }),
1004            (o.onload = function () {
1005              i.afterLoad(t);
1006            }),
1007            (t.$ghost = n(o)
1008              .addClass("fancybox-image")
1009              .appendTo(t.$content)
1010              .attr("src", t.thumb))),
1011          i.setBigImage(t);
1012      },
1013      checkSrcset: function (e) {
1014        var n,
1015          o,
1016          i,
1017          a,
1018          s = e.opts.srcset || e.opts.image.srcset;
1019        if (s) {
1020          (i = t.devicePixelRatio || 1),
1021            (a = t.innerWidth * i),
1022            (o = s.split(",").map(function (t) {
1023              var e = {};
1024              return (
1025                t
1026                  .trim()
1027                  .split(/\s+/)
1028                  .forEach(function (t, n) {
1029                    var o = parseInt(t.substring(0, t.length - 1), 10);
1030                    if (0 === n) return (e.url = t);
1031                    o && ((e.value = o), (e.postfix = t[t.length - 1]));
1032                  }),
1033                e
1034              );
1035            })),
1036            o.sort(function (t, e) {
1037              return t.value - e.value;
1038            });
1039          for (var r = 0; r < o.length; r++) {
1040            var c = o[r];
1041            if (
1042              ("w" === c.postfix && c.value >= a) ||
1043              ("x" === c.postfix && c.value >= i)
1044            ) {
1045              n = c;
1046              break;
1047            }
1048          }
1049          !n && o.length && (n = o[o.length - 1]),
1050            n &&
1051              ((e.src = n.url),
1052              e.width &&
1053                e.height &&
1054                "w" == n.postfix &&
1055                ((e.height = (e.width / e.height) * n.value),
1056                (e.width = n.value)),
1057              (e.opts.srcset = s));
1058        }
1059      },
1060      setBigImage: function (t) {
1061        var o = this,
1062          i = e.createElement("img"),
1063          a = n(i);
1064        (t.$image = a
1065          .one("error", function () {
1066            o.setError(t);
1067          })
1068          .one("load", function () {
1069            var e;
1070            t.$ghost ||
1071              (o.resolveImageSlideSize(
1072                t,
1073                this.naturalWidth,
1074                this.naturalHeight
1075              ),
1076              o.afterLoad(t)),
1077              o.isClosing ||
1078                (t.opts.srcset &&
1079                  ((e = t.opts.sizes),
1080                  (e && "auto" !== e) ||
1081                    (e =
1082                      (t.width / t.height > 1 && s.width() / s.height() > 1
1083                        ? "100"
1084                        : Math.round((t.width / t.height) * 100)) + "vw"),
1085                  a.attr("sizes", e).attr("srcset", t.opts.srcset)),
1086                t.$ghost &&
1087                  setTimeout(function () {
1088                    t.$ghost && !o.isClosing && t.$ghost.hide();
1089                  }, Math.min(300, Math.max(1e3, t.height / 1600))),
1090                o.hideLoading(t));
1091          })
1092          .addClass("fancybox-image")
1093          .attr("src", t.src)
1094          .appendTo(t.$content)),
1095          (i.complete || "complete" == i.readyState) &&
1096          a.naturalWidth &&
1097          a.naturalHeight
1098            ? a.trigger("load")
1099            : i.error && a.trigger("error");
1100      },
1101      resolveImageSlideSize: function (t, e, n) {
1102        var o = parseInt(t.opts.width, 10),
1103          i = parseInt(t.opts.height, 10);
1104        (t.width = e),
1105          (t.height = n),
1106          o > 0 && ((t.width = o), (t.height = Math.floor((o * n) / e))),
1107          i > 0 && ((t.width = Math.floor((i * e) / n)), (t.height = i));
1108      },
1109      setIframe: function (t) {
1110        var e,
1111          o = this,
1112          i = t.opts.iframe,
1113          a = t.$slide;
1114        (t.$content = n(
1115          '<div class="fancybox-content' +
1116            (i.preload ? " fancybox-is-hidden" : "") +
1117            '"></div>'
1118        )
1119          .css(i.css)
1120          .appendTo(a)),
1121          a.addClass("fancybox-slide--" + t.contentType),
1122          (t.$iframe = e =
1123            n(i.tpl.replace(/\{rnd\}/g, new Date().getTime()))
1124              .attr(i.attr)
1125              .appendTo(t.$content)),
1126          i.preload
1127            ? (o.showLoading(t),
1128              e.on("load.fb error.fb", function (e) {
1129                (this.isReady = 1), t.$slide.trigger("refresh"), o.afterLoad(t);
1130              }),
1131              a.on("refresh.fb", function () {
1132                var n,
1133                  o,
1134                  s = t.$content,
1135                  r = i.css.width,
1136                  c = i.css.height;
1137                if (1 === e[0].isReady) {
1138                  try {
1139                    (n = e.contents()), (o = n.find("body"));
1140                  } catch (t) {}
1141                  o &&
1142                    o.length &&
1143                    o.children().length &&
1144                    (a.css("overflow", "visible"),
1145                    s.css({
1146                      width: "100%",
1147                      "max-width": "100%",
1148                      height: "9999px",
1149                    }),
1150                    void 0 === r &&
1151                      (r = Math.ceil(
1152                        Math.max(o[0].clientWidth, o.outerWidth(!0))
1153                      )),
1154                    s.css("width", r || "").css("max-width", ""),
1155                    void 0 === c &&
1156                      (c = Math.ceil(
1157                        Math.max(o[0].clientHeight, o.outerHeight(!0))
1158                      )),
1159                    s.css("height", c || ""),
1160                    a.css("overflow", "auto")),
1161                    s.removeClass("fancybox-is-hidden");
1162                }
1163              }))
1164            : o.afterLoad(t),
1165          e.attr("src", t.src),
1166          a.one("onReset", function () {
1167            try {
1168              n(this)
1169                .find("iframe")
1170                .hide()
1171                .unbind()
1172                .attr("src", "//about:blank");
1173            } catch (t) {}
1174            n(this).off("refresh.fb").empty(),
1175              (t.isLoaded = !1),
1176              (t.isRevealed = !1);
1177          });
1178      },
1179      setContent: function (t, e) {
1180        var o = this;
1181        o.isClosing ||
1182          (o.hideLoading(t),
1183          t.$content && n.fancybox.stop(t.$content),
1184          t.$slide.empty(),
1185          l(e) && e.parent().length
1186            ? ((e.hasClass("fancybox-content") ||
1187                e.parent().hasClass("fancybox-content")) &&
1188                e.parents(".fancybox-slide").trigger("onReset"),
1189              (t.$placeholder = n("<div>").hide().insertAfter(e)),
1190              e.css("display", "inline-block"))
1191            : t.hasError ||
1192              ("string" === n.type(e) &&
1193                (e = n("<div>").append(n.trim(e)).contents()),
1194              t.opts.filter && (e = n("<div>").html(e).find(t.opts.filter))),
1195          t.$slide.one("onReset", function () {
1196            n(this).find("video,audio").trigger("pause"),
1197              t.$placeholder &&
1198                (t.$placeholder
1199                  .after(e.removeClass("fancybox-content").hide())
1200                  .remove(),
1201                (t.$placeholder = null)),
1202              t.$smallBtn && (t.$smallBtn.remove(), (t.$smallBtn = null)),
1203              t.hasError ||
1204                (n(this).empty(), (t.isLoaded = !1), (t.isRevealed = !1));
1205          }),
1206          n(e).appendTo(t.$slide),
1207          n(e).is("video,audio") &&
1208            (n(e).addClass("fancybox-video"),
1209            n(e).wrap("<div></div>"),
1210            (t.contentType = "video"),
1211            (t.opts.width = t.opts.width || n(e).attr("width")),
1212            (t.opts.height = t.opts.height || n(e).attr("height"))),
1213          (t.$content = t.$slide
1214            .children()
1215            .filter("div,form,main,video,audio,article,.fancybox-content")
1216            .first()),
1217          t.$content.siblings().hide(),
1218          t.$content.length ||
1219            (t.$content = t.$slide.wrapInner("<div></div>").children().first()),
1220          t.$content.addClass("fancybox-content"),
1221          t.$slide.addClass("fancybox-slide--" + t.contentType),
1222          o.afterLoad(t));
1223      },
1224      setError: function (t) {
1225        (t.hasError = !0),
1226          t.$slide
1227            .trigger("onReset")
1228            .removeClass("fancybox-slide--" + t.contentType)
1229            .addClass("fancybox-slide--error"),
1230          (t.contentType = "html"),
1231          this.setContent(t, this.translate(t, t.opts.errorTpl)),
1232          t.pos === this.currPos && (this.isAnimating = !1);
1233      },
1234      showLoading: function (t) {
1235        var e = this;
1236        (t = t || e.current) &&
1237          !t.$spinner &&
1238          (t.$spinner = n(e.translate(e, e.opts.spinnerTpl))
1239            .appendTo(t.$slide)
1240            .hide()
1241            .fadeIn("fast"));
1242      },
1243      hideLoading: function (t) {
1244        var e = this;
1245        (t = t || e.current) &&
1246          t.$spinner &&
1247          (t.$spinner.stop().remove(), delete t.$spinner);
1248      },
1249      afterLoad: function (t) {
1250        var e = this;
1251        e.isClosing ||
1252          ((t.isLoading = !1),
1253          (t.isLoaded = !0),
1254          e.trigger("afterLoad", t),
1255          e.hideLoading(t),
1256          !t.opts.smallBtn ||
1257            (t.$smallBtn && t.$smallBtn.length) ||
1258            (t.$smallBtn = n(e.translate(t, t.opts.btnTpl.smallBtn)).appendTo(
1259              t.$content
1260            )),
1261          t.opts.protect &&
1262            t.$content &&
1263            !t.hasError &&
1264            (t.$content.on("contextmenu.fb", function (t) {
1265              return 2 == t.button && t.preventDefault(), !0;
1266            }),
1267            "image" === t.type &&
1268              n('<div class="fancybox-spaceball"></div>').appendTo(t.$content)),
1269          e.adjustCaption(t),
1270          e.adjustLayout(t),
1271          t.pos === e.currPos && e.updateCursor(),
1272          e.revealContent(t));
1273      },
1274      adjustCaption: function (t) {
1275        var e,
1276          n = this,
1277          o = t || n.current,
1278          i = o.opts.caption,
1279          a = o.opts.preventCaptionOverlap,
1280          s = n.$refs.caption,
1281          r = !1;
1282        s.toggleClass("fancybox-caption--separate", a),
1283          a &&
1284            i &&
1285            i.length &&
1286            (o.pos !== n.currPos
1287              ? ((e = s.clone().appendTo(s.parent())),
1288                e.children().eq(0).empty().html(i),
1289                (r = e.outerHeight(!0)),
1290                e.empty().remove())
1291              : n.$caption && (r = n.$caption.outerHeight(!0)),
1292            o.$slide.css("padding-bottom", r || ""));
1293      },
1294      adjustLayout: function (t) {
1295        var e,
1296          n,
1297          o,
1298          i,
1299          a = this,
1300          s = t || a.current;
1301        s.isLoaded &&
1302          !0 !== s.opts.disableLayoutFix &&
1303          (s.$content.css("margin-bottom", ""),
1304          s.$content.outerHeight() > s.$slide.height() + 0.5 &&
1305            ((o = s.$slide[0].style["padding-bottom"]),
1306            (i = s.$slide.css("padding-bottom")),
1307            parseFloat(i) > 0 &&
1308              ((e = s.$slide[0].scrollHeight),
1309              s.$slide.css("padding-bottom", 0),
1310              Math.abs(e - s.$slide[0].scrollHeight) < 1 && (n = i),
1311              s.$slide.css("padding-bottom", o))),
1312          s.$content.css("margin-bottom", n));
1313      },
1314      revealContent: function (t) {
1315        var e,
1316          o,
1317          i,
1318          a,
1319          s = this,
1320          r = t.$slide,
1321          c = !1,
1322          l = !1,
1323          d = s.isMoved(t),
1324          u = t.isRevealed;
1325        return (
1326          (t.isRevealed = !0),
1327          (e = t.opts[s.firstRun ? "animationEffect" : "transitionEffect"]),
1328          (i = t.opts[s.firstRun ? "animationDuration" : "transitionDuration"]),
1329          (i = parseInt(
1330            void 0 === t.forcedDuration ? i : t.forcedDuration,
1331            10
1332          )),
1333          (!d && t.pos === s.currPos && i) || (e = !1),
1334          "zoom" === e &&
1335            (t.pos === s.currPos &&
1336            i &&
1337            "image" === t.type &&
1338            !t.hasError &&
1339            (l = s.getThumbPos(t))
1340              ? (c = s.getFitPos(t))
1341              : (e = "fade")),
1342          "zoom" === e
1343            ? ((s.isAnimating = !0),
1344              (c.scaleX = c.width / l.width),
1345              (c.scaleY = c.height / l.height),
1346              (a = t.opts.zoomOpacity),
1347              "auto" == a &&
1348                (a = Math.abs(t.width / t.height - l.width / l.height) > 0.1),
1349              a && ((l.opacity = 0.1), (c.opacity = 1)),
1350              n.fancybox.setTranslate(
1351                t.$content.removeClass("fancybox-is-hidden"),
1352                l
1353              ),
1354              p(t.$content),
1355              void n.fancybox.animate(t.$content, c, i, function () {
1356                (s.isAnimating = !1), s.complete();
1357              }))
1358            : (s.updateSlide(t),
1359              e
1360                ? (n.fancybox.stop(r),
1361                  (o =
1362                    "fancybox-slide--" +
1363                    (t.pos >= s.prevPos ? "next" : "previous") +
1364                    " fancybox-animated fancybox-fx-" +
1365                    e),
1366                  r.addClass(o).removeClass("fancybox-slide--current"),
1367                  t.$content.removeClass("fancybox-is-hidden"),
1368                  p(r),
1369                  "image" !== t.type && t.$content.hide().show(0),
1370                  void n.fancybox.animate(
1371                    r,
1372                    "fancybox-slide--current",
1373                    i,
1374                    function () {
1375                      r.removeClass(o).css({ transform: "", opacity: "" }),
1376                        t.pos === s.currPos && s.complete();
1377                    },
1378                    !0
1379                  ))
1380                : (t.$content.removeClass("fancybox-is-hidden"),
1381                  u ||
1382                    !d ||
1383                    "image" !== t.type ||
1384                    t.hasError ||
1385                    t.$content.hide().fadeIn("fast"),
1386                  void (t.pos === s.currPos && s.complete())))
1387        );
1388      },
1389      getThumbPos: function (t) {
1390        var e,
1391          o,
1392          i,
1393          a,
1394          s,
1395          r = !1,
1396          c = t.$thumb;
1397        return (
1398          !(!c || !g(c[0])) &&
1399          ((e = n.fancybox.getTranslate(c)),
1400          (o = parseFloat(c.css("border-top-width") || 0)),
1401          (i = parseFloat(c.css("border-right-width") || 0)),
1402          (a = parseFloat(c.css("border-bottom-width") || 0)),
1403          (s = parseFloat(c.css("border-left-width") || 0)),
1404          (r = {
1405            top: e.top + o,
1406            left: e.left + s,
1407            width: e.width - i - s,
1408            height: e.height - o - a,
1409            scaleX: 1,
1410            scaleY: 1,
1411          }),
1412          e.width > 0 && e.height > 0 && r)
1413        );
1414      },
1415      complete: function () {
1416        var t,
1417          e = this,
1418          o = e.current,
1419          i = {};
1420        !e.isMoved() &&
1421          o.isLoaded &&
1422          (o.isComplete ||
1423            ((o.isComplete = !0),
1424            o.$slide.siblings().trigger("onReset"),
1425            e.preload("inline"),
1426            p(o.$slide),
1427            o.$slide.addClass("fancybox-slide--complete"),
1428            n.each(e.slides, function (t, o) {
1429              o.pos >= e.currPos - 1 && o.pos <= e.currPos + 1
1430                ? (i[o.pos] = o)
1431                : o && (n.fancybox.stop(o.$slide), o.$slide.off().remove());
1432            }),
1433            (e.slides = i)),
1434          (e.isAnimating = !1),
1435          e.updateCursor(),
1436          e.trigger("afterShow"),
1437          o.opts.video.autoStart &&
1438            o.$slide
1439              .find("video,audio")
1440              .filter(":visible:first")
1441              .trigger("play")
1442              .one("ended", function () {
1443                Document.exitFullscreen
1444                  ? Document.exitFullscreen()
1445                  : this.webkitExitFullscreen && this.webkitExitFullscreen(),
1446                  e.next();
1447              }),
1448          o.opts.autoFocus &&
1449            "html" === o.contentType &&
1450            ((t = o.$content.find("input[autofocus]:enabled:visible:first")),
1451            t.length ? t.trigger("focus") : e.focus(null, !0)),
1452          o.$slide.scrollTop(0).scrollLeft(0));
1453      },
1454      preload: function (t) {
1455        var e,
1456          n,
1457          o = this;
1458        o.group.length < 2 ||
1459          ((n = o.slides[o.currPos + 1]),
1460          (e = o.slides[o.currPos - 1]),
1461          e && e.type === t && o.loadSlide(e),
1462          n && n.type === t && o.loadSlide(n));
1463      },
1464      focus: function (t, o) {
1465        var i,
1466          a,
1467          s = this,
1468          r = [
1469            "a[href]",
1470            "area[href]",
1471            'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',
1472            "select:not([disabled]):not([aria-hidden])",
1473            "textarea:not([disabled]):not([aria-hidden])",
1474            "button:not([disabled]):not([aria-hidden])",
1475            "iframe",
1476            "object",
1477            "embed",
1478            "video",
1479            "audio",
1480            "[contenteditable]",
1481            '[tabindex]:not([tabindex^="-"])',
1482          ].join(",");
1483        s.isClosing ||
1484          ((i =
1485            !t && s.current && s.current.isComplete
1486              ? s.current.$slide.find(
1487                  "*:visible" + (o ? ":not(.fancybox-close-small)" : "")
1488                )
1489              : s.$refs.container.find("*:visible")),
1490          (i = i.filter(r).filter(function () {
1491            return (
1492              "hidden" !== n(this).css("visibility") &&
1493              !n(this).hasClass("disabled")
1494            );
1495          })),
1496          i.length
1497            ? ((a = i.index(e.activeElement)),
1498              t && t.shiftKey
1499                ? (a < 0 || 0 == a) &&
1500                  (t.preventDefault(), i.eq(i.length - 1).trigger("focus"))
1501                : (a < 0 || a == i.length - 1) &&
1502                  (t && t.preventDefault(), i.eq(0).trigger("focus")))
1503            : s.$refs.container.trigger("focus"));
1504      },
1505      activate: function () {
1506        var t = this;
1507        n(".fancybox-container").each(function () {
1508          var e = n(this).data("FancyBox");
1509          e &&
1510            e.id !== t.id &&
1511            !e.isClosing &&
1512            (e.trigger("onDeactivate"), e.removeEvents(), (e.isVisible = !1));
1513        }),
1514          (t.isVisible = !0),
1515          (t.current || t.isIdle) && (t.update(), t.updateControls()),
1516          t.trigger("onActivate"),
1517          t.addEvents();
1518      },
1519      close: function (t, e) {
1520        var o,
1521          i,
1522          a,
1523          s,
1524          r,
1525          c,
1526          l,
1527          u = this,
1528          f = u.current,
1529          h = function () {
1530            u.cleanUp(t);
1531          };
1532        return (
1533          !u.isClosing &&
1534          ((u.isClosing = !0),
1535          !1 === u.trigger("beforeClose", t)
1536            ? ((u.isClosing = !1),
1537              d(function () {
1538                u.update();
1539              }),
1540              !1)
1541            : (u.removeEvents(),
1542              (a = f.$content),
1543              (o = f.opts.animationEffect),
1544              (i = n.isNumeric(e) ? e : o ? f.opts.animationDuration : 0),
1545              f.$slide.removeClass(
1546                "fancybox-slide--complete fancybox-slide--next fancybox-slide--previous fancybox-animated"
1547              ),
1548              !0 !== t ? n.fancybox.stop(f.$slide) : (o = !1),
1549              f.$slide.siblings().trigger("onReset").remove(),
1550              i &&
1551                u.$refs.container
1552                  .removeClass("fancybox-is-open")
1553                  .addClass("fancybox-is-closing")
1554                  .css("transition-duration", i + "ms"),
1555              u.hideLoading(f),
1556              u.hideControls(!0),
1557              u.updateCursor(),
1558              "zoom" !== o ||
1559                (a &&
1560                  i &&
1561                  "image" === f.type &&
1562                  !u.isMoved() &&
1563                  !f.hasError &&
1564                  (l = u.getThumbPos(f))) ||
1565                (o = "fade"),
1566              "zoom" === o
1567                ? (n.fancybox.stop(a),
1568                  (s = n.fancybox.getTranslate(a)),
1569                  (c = {
1570                    top: s.top,
1571                    left: s.left,
1572                    scaleX: s.width / l.width,
1573                    scaleY: s.height / l.height,
1574                    width: l.width,
1575                    height: l.height,
1576                  }),
1577                  (r = f.opts.zoomOpacity),
1578                  "auto" == r &&
1579                    (r =
1580                      Math.abs(f.width / f.height - l.width / l.height) > 0.1),
1581                  r && (l.opacity = 0),
1582                  n.fancybox.setTranslate(a, c),
1583                  p(a),
1584                  n.fancybox.animate(a, l, i, h),
1585                  !0)
1586                : (o && i
1587                    ? n.fancybox.animate(
1588                        f.$slide
1589                          .addClass("fancybox-slide--previous")
1590                          .removeClass("fancybox-slide--current"),
1591                        "fancybox-animated fancybox-fx-" + o,
1592                        i,
1593                        h
1594                      )
1595                    : !0 === t
1596                    ? setTimeout(h, i)
1597                    : h(),
1598                  !0)))
1599        );
1600      },
1601      cleanUp: function (e) {
1602        var o,
1603          i,
1604          a,
1605          s = this,
1606          r = s.current.opts.$orig;
1607        s.current.$slide.trigger("onReset"),
1608          s.$refs.container.empty().remove(),
1609          s.trigger("afterClose", e),
1610          s.current.opts.backFocus &&
1611            ((r && r.length && r.is(":visible")) || (r = s.$trigger),
1612            r &&
1613              r.length &&
1614              ((i = t.scrollX),
1615              (a = t.scrollY),
1616              r.trigger("focus"),
1617              n("html, body").scrollTop(a).scrollLeft(i))),
1618          (s.current = null),
1619          (o = n.fancybox.getInstance()),
1620          o
1621            ? o.activate()
1622            : (n("body").removeClass(
1623                "fancybox-active compensate-for-scrollbar"
1624              ),
1625              n("#fancybox-style-noscroll").remove());
1626      },
1627      trigger: function (t, e) {
1628        var o,
1629          i = Array.prototype.slice.call(arguments, 1),
1630          a = this,
1631          s = e && e.opts ? e : a.current;
1632        if (
1633          (s ? i.unshift(s) : (s = a),
1634          i.unshift(a),
1635          n.isFunction(s.opts[t]) && (o = s.opts[t].apply(s, i)),
1636          !1 === o)
1637        )
1638          return o;
1639        "afterClose" !== t && a.$refs
1640          ? a.$refs.container.trigger(t + ".fb", i)
1641          : r.trigger(t + ".fb", i);
1642      },
1643      updateControls: function () {
1644        var t = this,
1645          o = t.current,
1646          i = o.index,
1647          a = t.$refs.container,
1648          s = t.$refs.caption,
1649          r = o.opts.caption;
1650        o.$slide.trigger("refresh"),
1651          r && r.length
1652            ? ((t.$caption = s), s.children().eq(0).html(r))
1653            : (t.$caption = null),
1654          t.hasHiddenControls || t.isIdle || t.showControls(),
1655          a.find("[data-fancybox-count]").html(t.group.length),
1656          a.find("[data-fancybox-index]").html(i + 1),
1657          a
1658            .find("[data-fancybox-prev]")
1659            .prop("disabled", !o.opts.loop && i <= 0),
1660          a
1661            .find("[data-fancybox-next]")
1662            .prop("disabled", !o.opts.loop && i >= t.group.length - 1),
1663          "image" === o.type
1664            ? a
1665                .find("[data-fancybox-zoom]")
1666                .show()
1667                .end()
1668                .find("[data-fancybox-download]")
1669                .attr("href", o.opts.image.src || o.src)
1670                .show()
1671            : o.opts.toolbar &&
1672              a.find("[data-fancybox-download],[data-fancybox-zoom]").hide(),
1673          n(e.activeElement).is(":hidden,[disabled]") &&
1674            t.$refs.container.trigger("focus");
1675      },
1676      hideControls: function (t) {
1677        var e = this,
1678          n = ["infobar", "toolbar", "nav"];
1679        (!t && e.current.opts.preventCaptionOverlap) || n.push("caption"),
1680          this.$refs.container.removeClass(
1681            n
1682              .map(function (t) {
1683                return "fancybox-show-" + t;
1684              })
1685              .join(" ")
1686          ),
1687          (this.hasHiddenControls = !0);
1688      },
1689      showControls: function () {
1690        var t = this,
1691          e = t.current ? t.current.opts : t.opts,
1692          n = t.$refs.container;
1693        (t.hasHiddenControls = !1),
1694          (t.idleSecondsCounter = 0),
1695          n
1696            .toggleClass("fancybox-show-toolbar", !(!e.toolbar || !e.buttons))
1697            .toggleClass(
1698              "fancybox-show-infobar",
1699              !!(e.infobar && t.group.length > 1)
1700            )
1701            .toggleClass("fancybox-show-caption", !!t.$caption)
1702            .toggleClass(
1703              "fancybox-show-nav",
1704              !!(e.arrows && t.group.length > 1)
1705            )
1706            .toggleClass("fancybox-is-modal", !!e.modal);
1707      },
1708      toggleControls: function () {
1709        this.hasHiddenControls ? this.showControls() : this.hideControls();
1710      },
1711    }),
1712      (n.fancybox = {
1713        version: "3.5.7",
1714        defaults: a,
1715        getInstance: function (t) {
1716          var e = n(
1717              '.fancybox-container:not(".fancybox-is-closing"):last'
1718            ).data("FancyBox"),
1719            o = Array.prototype.slice.call(arguments, 1);
1720          return (
1721            e instanceof b &&
1722            ("string" === n.type(t)
1723              ? e[t].apply(e, o)
1724              : "function" === n.type(t) && t.apply(e, o),
1725            e)
1726          );
1727        },
1728        open: function (t, e, n) {
1729          return new b(t, e, n);
1730        },
1731        close: function (t) {
1732          var e = this.getInstance();
1733          e && (e.close(), !0 === t && this.close(t));
1734        },
1735        destroy: function () {
1736          this.close(!0), r.add("body").off("click.fb-start", "**");
1737        },
1738        isMobile:
1739          /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
1740            navigator.userAgent
1741          ),
1742        use3d: (function () {
1743          var n = e.createElement("div");
1744          return (
1745            t.getComputedStyle &&
1746            t.getComputedStyle(n) &&
1747            t.getComputedStyle(n).getPropertyValue("transform") &&
1748            !(e.documentMode && e.documentMode < 11)
1749          );
1750        })(),
1751        getTranslate: function (t) {
1752          var e;
1753          return (
1754            !(!t || !t.length) &&
1755            ((e = t[0].getBoundingClientRect()),
1756            {
1757              top: e.top || 0,
1758              left: e.left || 0,
1759              width: e.width,
1760              height: e.height,
1761              opacity: parseFloat(t.css("opacity")),
1762            })
1763          );
1764        },
1765        setTranslate: function (t, e) {
1766          var n = "",
1767            o = {};
1768          if (t && e)
1769            return (
1770              (void 0 === e.left && void 0 === e.top) ||
1771                ((n =
1772                  (void 0 === e.left ? t.position().left : e.left) +
1773                  "px, " +
1774                  (void 0 === e.top ? t.position().top : e.top) +
1775                  "px"),
1776                (n = this.use3d
1777                  ? "translate3d(" + n + ", 0px)"
1778                  : "translate(" + n + ")")),
1779              void 0 !== e.scaleX && void 0 !== e.scaleY
1780                ? (n += " scale(" + e.scaleX + ", " + e.scaleY + ")")
1781                : void 0 !== e.scaleX && (n += " scaleX(" + e.scaleX + ")"),
1782              n.length && (o.transform = n),
1783              void 0 !== e.opacity && (o.opacity = e.opacity),
1784              void 0 !== e.width && (o.width = e.width),
1785              void 0 !== e.height && (o.height = e.height),
1786              t.css(o)
1787            );
1788        },
1789        animate: function (t, e, o, i, a) {
1790          var s,
1791            r = this;
1792          n.isFunction(o) && ((i = o), (o = null)),
1793            r.stop(t),
1794            (s = r.getTranslate(t)),
1795            t.on(f, function (c) {
1796              (!c ||
1797                !c.originalEvent ||
1798                (t.is(c.originalEvent.target) &&
1799                  "z-index" != c.originalEvent.propertyName)) &&
1800                (r.stop(t),
1801                n.isNumeric(o) && t.css("transition-duration", ""),
1802                n.isPlainObject(e)
1803                  ? void 0 !== e.scaleX &&
1804                    void 0 !== e.scaleY &&
1805                    r.setTranslate(t, {
1806                      top: e.top,
1807                      left: e.left,
1808                      width: s.width * e.scaleX,
1809                      height: s.height * e.scaleY,
1810                      scaleX: 1,
1811                      scaleY: 1,
1812                    })
1813                  : !0 !== a && t.removeClass(e),
1814                n.isFunction(i) && i(c));
1815            }),
1816            n.isNumeric(o) && t.css("transition-duration", o + "ms"),
1817            n.isPlainObject(e)
1818              ? (void 0 !== e.scaleX &&
1819                  void 0 !== e.scaleY &&
1820                  (delete e.width,
1821                  delete e.height,
1822                  t.parent().hasClass("fancybox-slide--image") &&
1823                    t.parent().addClass("fancybox-is-scaling")),
1824                n.fancybox.setTranslate(t, e))
1825              : t.addClass(e),
1826            t.data(
1827              "timer",
1828              setTimeout(function () {
1829                t.trigger(f);
1830              }, o + 33)
1831            );
1832        },
1833        stop: function (t, e) {
1834          t &&
1835            t.length &&
1836            (clearTimeout(t.data("timer")),
1837            e && t.trigger(f),
1838            t.off(f).css("transition-duration", ""),
1839            t.parent().removeClass("fancybox-is-scaling"));
1840        },
1841      }),
1842      (n.fn.fancybox = function (t) {
1843        var e;
1844        return (
1845          (t = t || {}),
1846          (e = t.selector || !1),
1847          e
1848            ? n("body")
1849                .off("click.fb-start", e)
1850                .on("click.fb-start", e, { options: t }, i)
1851            : this.off("click.fb-start").on(
1852                "click.fb-start",
1853                { items: this, options: t },
1854                i
1855              ),
1856          this
1857        );
1858      }),
1859      r.on("click.fb-start", "[data-fancybox]", i),
1860      r.on("click.fb-start", "[data-fancybox-trigger]", function (t) {
1861        n('[data-fancybox="' + n(this).attr("data-fancybox-trigger") + '"]')
1862          .eq(n(this).attr("data-fancybox-index") || 0)
1863          .trigger("click.fb-start", { $trigger: n(this) });
1864      }),
1865      (function () {
1866        var t = null;
1867        r.on("mousedown mouseup focus blur", ".fancybox-button", function (e) {
1868          switch (e.type) {
1869            case "mousedown":
1870              t = n(this);
1871              break;
1872            case "mouseup":
1873              t = null;
1874              break;
1875            case "focusin":
1876              n(".fancybox-button").removeClass("fancybox-focus"),
1877                n(this).is(t) ||
1878                  n(this).is("[disabled]") ||
1879                  n(this).addClass("fancybox-focus");
1880              break;
1881            case "focusout":
1882              n(".fancybox-button").removeClass("fancybox-focus");
1883          }
1884        });
1885      })();
1886  }
1887})(window, document, jQuery),
1888  (function (t) {
1889    "use strict";
1890    var e = {
1891        youtube: {
1892          matcher:
1893            /(youtube\.com|youtu\.be|youtube\-nocookie\.com)\/(watch\?(.*&)?v=|v\/|u\/|embed\/?)?(videoseries\?list=(.*)|[\w-]{11}|\?listType=(.*)&list=(.*))(.*)/i,
1894          params: {
1895            autoplay: 1,
1896            autohide: 1,
1897            fs: 1,
1898            rel: 0,
1899            hd: 1,
1900            wmode: "transparent",
1901            enablejsapi: 1,
1902            html5: 1,
1903          },
1904          paramPlace: 8,
1905          type: "iframe",
1906          url: "https://www.youtube-nocookie.com/embed/$4",
1907          thumb: "https://img.youtube.com/vi/$4/hqdefault.jpg",
1908        },
1909        vimeo: {
1910          matcher: /^.+vimeo.com\/(.*\/)?([\d]+)(.*)?/,
1911          params: {
1912            autoplay: 1,
1913            hd: 1,
1914            show_title: 1,
1915            show_byline: 1,
1916            show_portrait: 0,
1917            fullscreen: 1,
1918          },
1919          paramPlace: 3,
1920          type: "iframe",
1921          url: "//player.vimeo.com/video/$2",
1922        },
1923        instagram: {
1924          matcher: /(instagr\.am|instagram\.com)\/p\/([a-zA-Z0-9_\-]+)\/?/i,
1925          type: "image",
1926          url: "//$1/p/$2/media/?size=l",
1927        },
1928        gmap_place: {
1929          matcher:
1930            /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(((maps\/(place\/(.*)\/)?\@(.*),(\d+.?\d+?)z))|(\?ll=))(.*)?/i,
1931          type: "iframe",
1932          url: function (t) {
1933            return (
1934              "//maps.google." +
1935              t[2] +
1936              "/?ll=" +
1937              (t[9]
1938                ? t[9] +
1939                  "&z=" +
1940                  Math.floor(t[10]) +
1941                  (t[12] ? t[12].replace(/^\//, "&") : "")
1942                : t[12] + ""
1943              ).replace(/\?/, "&") +
1944              "&output=" +
1945              (t[12] && t[12].indexOf("layer=c") > 0 ? "svembed" : "embed")
1946            );
1947          },
1948        },
1949        gmap_search: {
1950          matcher:
1951            /(maps\.)?google\.([a-z]{2,3}(\.[a-z]{2})?)\/(maps\/search\/)(.*)/i,
1952          type: "iframe",
1953          url: function (t) {
1954            return (
1955              "//maps.google." +
1956              t[2] +
1957              "/maps?q=" +
1958              t[5].replace("query=", "q=").replace("api=1", "") +
1959              "&output=embed"
1960            );
1961          },
1962        },
1963      },
1964      n = function (e, n, o) {
1965        if (e)
1966          return (
1967            (o = o || ""),
1968            "object" === t.type(o) && (o = t.param(o, !0)),
1969            t.each(n, function (t, n) {
1970              e = e.replace("$" + t, n || "");
1971            }),
1972            o.length && (e += (e.indexOf("?") > 0 ? "&" : "?") + o),
1973            e
1974          );
1975      };
1976    t(document).on("objectNeedsType.fb", function (o, i, a) {
1977      var s,
1978        r,
1979        c,
1980        l,
1981        d,
1982        u,
1983        f,
1984        p = a.src || "",
1985        h = !1;
1986      (s = t.extend(!0, {}, e, a.opts.media)),
1987        t.each(s, function (e, o) {
1988          if ((c = p.match(o.matcher))) {
1989            if (
1990              ((h = o.type), (f = e), (u = {}), o.paramPlace && c[o.paramPlace])
1991            ) {
1992              (d = c[o.paramPlace]),
1993                "?" == d[0] && (d = d.substring(1)),
1994                (d = d.split("&"));
1995              for (var i = 0; i < d.length; ++i) {
1996                var s = d[i].split("=", 2);
1997                2 == s.length &&
1998                  (u[s[0]] = decodeURIComponent(s[1].replace(/\+/g, " ")));
1999              }
2000            }
2001            return (
2002              (l = t.extend(!0, {}, o.params, a.opts[e], u)),
2003              (p =
2004                "function" === t.type(o.url)
2005                  ? o.url.call(this, c, l, a)
2006                  : n(o.url, c, l)),
2007              (r =
2008                "function" === t.type(o.thumb)
2009                  ? o.thumb.call(this, c, l, a)
2010                  : n(o.thumb, c)),
2011              "youtube" === e
2012                ? (p = p.replace(/&t=((\d+)m)?(\d+)s/, function (t, e, n, o) {
2013                    return (
2014                      "&start=" +
2015                      ((n ? 60 * parseInt(n, 10) : 0) + parseInt(o, 10))
2016                    );
2017                  }))
2018                : "vimeo" === e && (p = p.replace("&%23", "#")),
2019              !1
2020            );
2021          }
2022        }),
2023        h
2024          ? (a.opts.thumb ||
2025              (a.opts.$thumb && a.opts.$thumb.length) ||
2026              (a.opts.thumb = r),
2027            "iframe" === h &&
2028              (a.opts = t.extend(!0, a.opts, {
2029                iframe: { preload: !1, attr: { scrolling: "no" } },
2030              })),
2031            t.extend(a, {
2032              type: h,
2033              src: p,
2034              origSrc: a.src,
2035              contentSource: f,
2036              contentType:
2037                "image" === h
2038                  ? "image"
2039                  : "gmap_place" == f || "gmap_search" == f
2040                  ? "map"
2041                  : "video",
2042            }))
2043          : p && (a.type = a.opts.defaultType);
2044    });
2045    var o = {
2046      youtube: {
2047        src: "https://www.youtube.com/iframe_api",
2048        class: "YT",
2049        loading: !1,
2050        loaded: !1,
2051      },
2052      vimeo: {
2053        src: "https://player.vimeo.com/api/player.js",
2054        class: "Vimeo",
2055        loading: !1,
2056        loaded: !1,
2057      },
2058      load: function (t) {
2059        var e,
2060          n = this;
2061        if (this[t].loaded)
2062          return void setTimeout(function () {
2063            n.done(t);
2064          });
2065        this[t].loading ||
2066          ((this[t].loading = !0),
2067          (e = document.createElement("script")),
2068          (e.type = "text/javascript"),
2069          (e.src = this[t].src),
2070          "youtube" === t
2071            ? (window.onYouTubeIframeAPIReady = function () {
2072                (n[t].loaded = !0), n.done(t);
2073              })
2074            : (e.onload = function () {
2075                (n[t].loaded = !0), n.done(t);
2076              }),
2077          document.body.appendChild(e));
2078      },
2079      done: function (e) {
2080        var n, o, i;
2081        "youtube" === e && delete window.onYouTubeIframeAPIReady,
2082          (n = t.fancybox.getInstance()) &&
2083            ((o = n.current.$content.find("iframe")),
2084            "youtube" === e && void 0 !== YT && YT
2085              ? (i = new YT.Player(o.attr("id"), {
2086                  events: {
2087                    onStateChange: function (t) {
2088                      0 == t.data && n.next();
2089                    },
2090                  },
2091                }))
2092              : "vimeo" === e &&
2093                void 0 !== Vimeo &&
2094                Vimeo &&
2095                ((i = new Vimeo.Player(o)),
2096                i.on("ended", function () {
2097                  n.next();
2098                })));
2099      },
2100    };
2101    t(document).on({
2102      "afterShow.fb": function (t, e, n) {
2103        e.group.length > 1 &&
2104          ("youtube" === n.contentSource || "vimeo" === n.contentSource) &&
2105          o.load(n.contentSource);
2106      },
2107    });
2108  })(jQuery),
2109  (function (t, e, n) {
2110    "use strict";
2111    var o = (function () {
2112        return (
2113          t.requestAnimationFrame ||
2114          t.webkitRequestAnimationFrame ||
2115          t.mozRequestAnimationFrame ||
2116          t.oRequestAnimationFrame ||
2117          function (e) {
2118            return t.setTimeout(e, 1e3 / 60);
2119          }
2120        );
2121      })(),
2122      i = (function () {
2123        return (
2124          t.cancelAnimationFrame ||
2125          t.webkitCancelAnimationFrame ||
2126          t.mozCancelAnimationFrame ||
2127          t.oCancelAnimationFrame ||
2128          function (e) {
2129            t.clearTimeout(e);
2130          }
2131        );
2132      })(),
2133      a = function (e) {
2134        var n = [];
2135        (e = e.originalEvent || e || t.e),
2136          (e =
2137            e.touches && e.touches.length
2138              ? e.touches
2139              : e.changedTouches && e.changedTouches.length
2140              ? e.changedTouches
2141              : [e]);
2142        for (var o in e)
2143          e[o].pageX
2144            ? n.push({ x: e[o].pageX, y: e[o].pageY })
2145            : e[o].clientX && n.push({ x: e[o].clientX, y: e[o].clientY });
2146        return n;
2147      },
2148      s = function (t, e, n) {
2149        return e && t
2150          ? "x" === n
2151            ? t.x - e.x
2152            : "y" === n
2153            ? t.y - e.y
2154            : Math.sqrt(Math.pow(t.x - e.x, 2) + Math.pow(t.y - e.y, 2))
2155          : 0;
2156      },
2157      r = function (t) {
2158        if (
2159          t.is(
2160            'a,area,button,[role="button"],input,label,select,summary,textarea,video,audio,iframe'
2161          ) ||
2162          n.isFunction(t.get(0).onclick) ||
2163          t.data("selectable")
2164        )
2165          return !0;
2166        for (var e = 0, o = t[0].attributes, i = o.length; e < i; e++)
2167          if ("data-fancybox-" === o[e].nodeName.substr(0, 14)) return !0;
2168        return !1;
2169      },
2170      c = function (e) {
2171        var n = t.getComputedStyle(e)["overflow-y"],
2172          o = t.getComputedStyle(e)["overflow-x"],
2173          i =
2174            ("scroll" === n || "auto" === n) && e.scrollHeight > e.clientHeight,
2175          a = ("scroll" === o || "auto" === o) && e.scrollWidth > e.clientWidth;
2176        return i || a;
2177      },
2178      l = function (t) {
2179        for (var e = !1; ; ) {
2180          if ((e = c(t.get(0)))) break;
2181          if (
2182            ((t = t.parent()),
2183            !t.length || t.hasClass("fancybox-stage") || t.is("body"))
2184          )
2185            break;
2186        }
2187        return e;
2188      },
2189      d = function (t) {
2190        var e = this;
2191        (e.instance = t),
2192          (e.$bg = t.$refs.bg),
2193          (e.$stage = t.$refs.stage),
2194          (e.$container = t.$refs.container),
2195          e.destroy(),
2196          e.$container.on(
2197            "touchstart.fb.touch mousedown.fb.touch",
2198            n.proxy(e, "ontouchstart")
2199          );
2200      };
2201    (d.prototype.destroy = function () {
2202      var t = this;
2203      t.$container.off(".fb.touch"),
2204        n(e).off(".fb.touch"),
2205        t.requestId && (i(t.requestId), (t.requestId = null)),
2206        t.tapped && (clearTimeout(t.tapped), (t.tapped = null));
2207    }),
2208      (d.prototype.ontouchstart = function (o) {
2209        var i = this,
2210          c = n(o.target),
2211          d = i.instance,
2212          u = d.current,
2213          f = u.$slide,
2214          p = u.$content,
2215          h = "touchstart" == o.type;
2216        if (
2217          (h && i.$container.off("mousedown.fb.touch"),
2218          (!o.originalEvent || 2 != o.originalEvent.button) &&
2219            f.length &&
2220            c.length &&
2221            !r(c) &&
2222            !r(c.parent()) &&
2223            (c.is("img") ||
2224              !(o.originalEvent.clientX > c[0].clientWidth + c.offset().left)))
2225        ) {
2226          if (!u || d.isAnimating || u.$slide.hasClass("fancybox-animated"))
2227            return o.stopPropagation(), void o.preventDefault();
2228          (i.realPoints = i.startPoints = a(o)),
2229            i.startPoints.length &&
2230              (u.touch && o.stopPropagation(),
2231              (i.startEvent = o),
2232              (i.canTap = !0),
2233              (i.$target = c),
2234              (i.$content = p),
2235              (i.opts = u.opts.touch),
2236              (i.isPanning = !1),
2237              (i.isSwiping = !1),
2238              (i.isZooming = !1),
2239              (i.isScrolling = !1),
2240              (i.canPan = d.canPan()),
2241              (i.startTime = new Date().getTime()),
2242              (i.distanceX = i.distanceY = i.distance = 0),
2243              (i.canvasWidth = Math.round(f[0].clientWidth)),
2244              (i.canvasHeight = Math.round(f[0].clientHeight)),
2245              (i.contentLastPos = null),
2246              (i.contentStartPos = n.fancybox.getTranslate(i.$content) || {
2247                top: 0,
2248                left: 0,
2249              }),
2250              (i.sliderStartPos = n.fancybox.getTranslate(f)),
2251              (i.stagePos = n.fancybox.getTranslate(d.$refs.stage)),
2252              (i.sliderStartPos.top -= i.stagePos.top),
2253              (i.sliderStartPos.left -= i.stagePos.left),
2254              (i.contentStartPos.top -= i.stagePos.top),
2255              (i.contentStartPos.left -= i.stagePos.left),
2256              n(e)
2257                .off(".fb.touch")
2258                .on(
2259                  h
2260                    ? "touchend.fb.touch touchcancel.fb.touch"
2261                    : "mouseup.fb.touch mouseleave.fb.touch",
2262                  n.proxy(i, "ontouchend")
2263                )
2264                .on(
2265                  h ? "touchmove.fb.touch" : "mousemove.fb.touch",
2266                  n.proxy(i, "ontouchmove")
2267                ),
2268              n.fancybox.isMobile &&
2269                e.addEventListener("scroll", i.onscroll, !0),
2270              (((i.opts || i.canPan) &&
2271                (c.is(i.$stage) || i.$stage.find(c).length)) ||
2272                (c.is(".fancybox-image") && o.preventDefault(),
2273                n.fancybox.isMobile &&
2274                  c.parents(".fancybox-caption").length)) &&
2275                ((i.isScrollable = l(c) || l(c.parent())),
2276                (n.fancybox.isMobile && i.isScrollable) || o.preventDefault(),
2277                (1 === i.startPoints.length || u.hasError) &&
2278                  (i.canPan
2279                    ? (n.fancybox.stop(i.$content), (i.isPanning = !0))
2280                    : (i.isSwiping = !0),
2281                  i.$container.addClass("fancybox-is-grabbing")),
2282                2 === i.startPoints.length &&
2283                  "image" === u.type &&
2284                  (u.isLoaded || u.$ghost) &&
2285                  ((i.canTap = !1),
2286                  (i.isSwiping = !1),
2287                  (i.isPanning = !1),
2288                  (i.isZooming = !0),
2289                  n.fancybox.stop(i.$content),
2290                  (i.centerPointStartX =
2291                    0.5 * (i.startPoints[0].x + i.startPoints[1].x) -
2292                    n(t).scrollLeft()),
2293                  (i.centerPointStartY =
2294                    0.5 * (i.startPoints[0].y + i.startPoints[1].y) -
2295                    n(t).scrollTop()),
2296                  (i.percentageOfImageAtPinchPointX =
2297                    (i.centerPointStartX - i.contentStartPos.left) /
2298                    i.contentStartPos.width),
2299                  (i.percentageOfImageAtPinchPointY =
2300                    (i.centerPointStartY - i.contentStartPos.top) /
2301                    i.contentStartPos.height),
2302                  (i.startDistanceBetweenFingers = s(
2303                    i.startPoints[0],
2304                    i.startPoints[1]
2305                  )))));
2306        }
2307      }),
2308      (d.prototype.onscroll = function (t) {
2309        var n = this;
2310        (n.isScrolling = !0), e.removeEventListener("scroll", n.onscroll, !0);
2311      }),
2312      (d.prototype.ontouchmove = function (t) {
2313        var e = this;
2314        return void 0 !== t.originalEvent.buttons &&
2315          0 === t.originalEvent.buttons
2316          ? void e.ontouchend(t)
2317          : e.isScrolling
2318          ? void (e.canTap = !1)
2319          : ((e.newPoints = a(t)),
2320            void (
2321              (e.opts || e.canPan) &&
2322              e.newPoints.length &&
2323              e.newPoints.length &&
2324              ((e.isSwiping && !0 === e.isSwiping) || t.preventDefault(),
2325              (e.distanceX = s(e.newPoints[0], e.startPoints[0], "x")),
2326              (e.distanceY = s(e.newPoints[0], e.startPoints[0], "y")),
2327              (e.distance = s(e.newPoints[0], e.startPoints[0])),
2328              e.distance > 0 &&
2329                (e.isSwiping
2330                  ? e.onSwipe(t)
2331                  : e.isPanning
2332                  ? e.onPan()
2333                  : e.isZooming && e.onZoom()))
2334            ));
2335      }),
2336      (d.prototype.onSwipe = function (e) {
2337        var a,
2338          s = this,
2339          r = s.instance,
2340          c = s.isSwiping,
2341          l = s.sliderStartPos.left || 0;
2342        if (!0 !== c)
2343          "x" == c &&
2344            (s.distanceX > 0 &&
2345            (s.instance.group.length < 2 ||
2346              (0 === s.instance.current.index && !s.instance.current.opts.loop))
2347              ? (l += Math.pow(s.distanceX, 0.8))
2348              : s.distanceX < 0 &&
2349                (s.instance.group.length < 2 ||
2350                  (s.instance.current.index === s.instance.group.length - 1 &&
2351                    !s.instance.current.opts.loop))
2352              ? (l -= Math.pow(-s.distanceX, 0.8))
2353              : (l += s.distanceX)),
2354            (s.sliderLastPos = {
2355              top: "x" == c ? 0 : s.sliderStartPos.top + s.distanceY,
2356              left: l,
2357            }),
2358            s.requestId && (i(s.requestId), (s.requestId = null)),
2359            (s.requestId = o(function () {
2360              s.sliderLastPos &&
2361                (n.each(s.instance.slides, function (t, e) {
2362                  var o = e.pos - s.instance.currPos;
2363                  n.fancybox.setTranslate(e.$slide, {
2364                    top: s.sliderLastPos.top,
2365                    left:
2366                      s.sliderLastPos.left +
2367                      o * s.canvasWidth +
2368                      o * e.opts.gutter,
2369                  });
2370                }),
2371                s.$container.addClass("fancybox-is-sliding"));
2372            }));
2373        else if (Math.abs(s.distance) > 10) {
2374          if (
2375            ((s.canTap = !1),
2376            r.group.length < 2 && s.opts.vertical
2377              ? (s.isSwiping = "y")
2378              : r.isDragging ||
2379                !1 === s.opts.vertical ||
2380                ("auto" === s.opts.vertical && n(t).width() > 800)
2381              ? (s.isSwiping = "x")
2382              : ((a = Math.abs(
2383                  (180 * Math.atan2(s.distanceY, s.distanceX)) / Math.PI
2384                )),
2385                (s.isSwiping = a > 45 && a < 135 ? "y" : "x")),
2386            "y" === s.isSwiping && n.fancybox.isMobile && s.isScrollable)
2387          )
2388            return void (s.isScrolling = !0);
2389          (r.isDragging = s.isSwiping),
2390            (s.startPoints = s.newPoints),
2391            n.each(r.slides, function (t, e) {
2392              var o, i;
2393              n.fancybox.stop(e.$slide),
2394                (o = n.fancybox.getTranslate(e.$slide)),
2395                (i = n.fancybox.getTranslate(r.$refs.stage)),
2396                e.$slide
2397                  .css({
2398                    transform: "",
2399                    opacity: "",
2400                    "transition-duration": "",
2401                  })
2402                  .removeClass("fancybox-animated")
2403                  .removeClass(function (t, e) {
2404                    return (e.match(/(^|\s)fancybox-fx-\S+/g) || []).join(" ");
2405                  }),
2406                e.pos === r.current.pos &&
2407                  ((s.sliderStartPos.top = o.top - i.top),
2408                  (s.sliderStartPos.left = o.left - i.left)),
2409                n.fancybox.setTranslate(e.$slide, {
2410                  top: o.top - i.top,
2411                  left: o.left - i.left,
2412                });
2413            }),
2414            r.SlideShow && r.SlideShow.isActive && r.SlideShow.stop();
2415        }
2416      }),
2417      (d.prototype.onPan = function () {
2418        var t = this;
2419        if (s(t.newPoints[0], t.realPoints[0]) < (n.fancybox.isMobile ? 10 : 5))
2420          return void (t.startPoints = t.newPoints);
2421        (t.canTap = !1),
2422          (t.contentLastPos = t.limitMovement()),
2423          t.requestId && i(t.requestId),
2424          (t.requestId = o(function () {
2425            n.fancybox.setTranslate(t.$content, t.contentLastPos);
2426          }));
2427      }),
2428      (d.prototype.limitMovement = function () {
2429        var t,
2430          e,
2431          n,
2432          o,
2433          i,
2434          a,
2435          s = this,
2436          r = s.canvasWidth,
2437          c = s.canvasHeight,
2438          l = s.distanceX,
2439          d = s.distanceY,
2440          u = s.contentStartPos,
2441          f = u.left,
2442          p = u.top,
2443          h = u.width,
2444          g = u.height;
2445        return (
2446          (i = h > r ? f + l : f),
2447          (a = p + d),
2448          (t = Math.max(0, 0.5 * r - 0.5 * h)),
2449          (e = Math.max(0, 0.5 * c - 0.5 * g)),
2450          (n = Math.min(r - h, 0.5 * r - 0.5 * h)),
2451          (o = Math.min(c - g, 0.5 * c - 0.5 * g)),
2452          l > 0 && i > t && (i = t - 1 + Math.pow(-t + f + l, 0.8) || 0),
2453          l < 0 && i < n && (i = n + 1 - Math.pow(n - f - l, 0.8) || 0),
2454          d > 0 && a > e && (a = e - 1 + Math.pow(-e + p + d, 0.8) || 0),
2455          d < 0 && a < o && (a = o + 1 - Math.pow(o - p - d, 0.8) || 0),
2456          { top: a, left: i }
2457        );
2458      }),
2459      (d.prototype.limitPosition = function (t, e, n, o) {
2460        var i = this,
2461          a = i.canvasWidth,
2462          s = i.canvasHeight;
2463        return (
2464          n > a
2465            ? ((t = t > 0 ? 0 : t), (t = t < a - n ? a - n : t))
2466            : (t = Math.max(0, a / 2 - n / 2)),
2467          o > s
2468            ? ((e = e > 0 ? 0 : e), (e = e < s - o ? s - o : e))
2469            : (e = Math.max(0, s / 2 - o / 2)),
2470          { top: e, left: t }
2471        );
2472      }),
2473      (d.prototype.onZoom = function () {
2474        var e = this,
2475          a = e.contentStartPos,
2476          r = a.width,
2477          c = a.height,
2478          l = a.left,
2479          d = a.top,
2480          u = s(e.newPoints[0], e.newPoints[1]),
2481          f = u / e.startDistanceBetweenFingers,
2482          p = Math.floor(r * f),
2483          h = Math.floor(c * f),
2484          g = (r - p) * e.percentageOfImageAtPinchPointX,
2485          b = (c - h) * e.percentageOfImageAtPinchPointY,
2486          m = (e.newPoints[0].x + e.newPoints[1].x) / 2 - n(t).scrollLeft(),
2487          v = (e.newPoints[0].y + e.newPoints[1].y) / 2 - n(t).scrollTop(),
2488          y = m - e.centerPointStartX,
2489          x = v - e.centerPointStartY,
2490          w = l + (g + y),
2491          $ = d + (b + x),
2492          S = { top: $, left: w, scaleX: f, scaleY: f };
2493        (e.canTap = !1),
2494          (e.newWidth = p),
2495          (e.newHeight = h),
2496          (e.contentLastPos = S),
2497          e.requestId && i(e.requestId),
2498          (e.requestId = o(function () {
2499            n.fancybox.setTranslate(e.$content, e.contentLastPos);
2500          }));
2501      }),
2502      (d.prototype.ontouchend = function (t) {
2503        var o = this,
2504          s = o.isSwiping,
2505          r = o.isPanning,
2506          c = o.isZooming,
2507          l = o.isScrolling;
2508        if (
2509          ((o.endPoints = a(t)),
2510          (o.dMs = Math.max(new Date().getTime() - o.startTime, 1)),
2511          o.$container.removeClass("fancybox-is-grabbing"),
2512          n(e).off(".fb.touch"),
2513          e.removeEventListener("scroll", o.onscroll, !0),
2514          o.requestId && (i(o.requestId), (o.requestId = null)),
2515          (o.isSwiping = !1),
2516          (o.isPanning = !1),
2517          (o.isZooming = !1),
2518          (o.isScrolling = !1),
2519          (o.instance.isDragging = !1),
2520          o.canTap)
2521        )
2522          return o.onTap(t);
2523        (o.speed = 100),
2524          (o.velocityX = (o.distanceX / o.dMs) * 0.5),
2525          (o.velocityY = (o.distanceY / o.dMs) * 0.5),
2526          r ? o.endPanning() : c ? o.endZooming() : o.endSwiping(s, l);
2527      }),
2528      (d.prototype.endSwiping = function (t, e) {
2529        var o = this,
2530          i = !1,
2531          a = o.instance.group.length,
2532          s = Math.abs(o.distanceX),
2533          r = "x" == t && a > 1 && ((o.dMs > 130 && s > 10) || s > 50);
2534        (o.sliderLastPos = null),
2535          "y" == t && !e && Math.abs(o.distanceY) > 50
2536            ? (n.fancybox.animate(
2537                o.instance.current.$slide,
2538                {
2539                  top: o.sliderStartPos.top + o.distanceY + 150 * o.velocityY,
2540                  opacity: 0,
2541                },
2542                200
2543              ),
2544              (i = o.instance.close(!0, 250)))
2545            : r && o.distanceX > 0
2546            ? (i = o.instance.previous(300))
2547            : r && o.distanceX < 0 && (i = o.instance.next(300)),
2548          !1 !== i || ("x" != t && "y" != t) || o.instance.centerSlide(200),
2549          o.$container.removeClass("fancybox-is-sliding");
2550      }),
2551      (d.prototype.endPanning = function () {
2552        var t,
2553          e,
2554          o,
2555          i = this;
2556        i.contentLastPos &&
2557          (!1 === i.opts.momentum || i.dMs > 350
2558            ? ((t = i.contentLastPos.left), (e = i.contentLastPos.top))
2559            : ((t = i.contentLastPos.left + 500 * i.velocityX),
2560              (e = i.contentLastPos.top + 500 * i.velocityY)),
2561          (o = i.limitPosition(
2562            t,
2563            e,
2564            i.contentStartPos.width,
2565            i.contentStartPos.height
2566          )),
2567          (o.width = i.contentStartPos.width),
2568          (o.height = i.contentStartPos.height),
2569          n.fancybox.animate(i.$content, o, 366));
2570      }),
2571      (d.prototype.endZooming = function () {
2572        var t,
2573          e,
2574          o,
2575          i,
2576          a = this,
2577          s = a.instance.current,
2578          r = a.newWidth,
2579          c = a.newHeight;
2580        a.contentLastPos &&
2581          ((t = a.contentLastPos.left),
2582          (e = a.contentLastPos.top),
2583          (i = { top: e, left: t, width: r, height: c, scaleX: 1, scaleY: 1 }),
2584          n.fancybox.setTranslate(a.$content, i),
2585          r < a.canvasWidth && c < a.canvasHeight
2586            ? a.instance.scaleToFit(150)
2587            : r > s.width || c > s.height
2588            ? a.instance.scaleToActual(
2589                a.centerPointStartX,
2590                a.centerPointStartY,
2591                150
2592              )
2593            : ((o = a.limitPosition(t, e, r, c)),
2594              n.fancybox.animate(a.$content, o, 150)));
2595      }),
2596      (d.prototype.onTap = function (e) {
2597        var o,
2598          i = this,
2599          s = n(e.target),
2600          r = i.instance,
2601          c = r.current,
2602          l = (e && a(e)) || i.startPoints,
2603          d = l[0] ? l[0].x - n(t).scrollLeft() - i.stagePos.left : 0,
2604          u = l[0] ? l[0].y - n(t).scrollTop() - i.stagePos.top : 0,
2605          f = function (t) {
2606            var o = c.opts[t];
2607            if ((n.isFunction(o) && (o = o.apply(r, [c, e])), o))
2608              switch (o) {
2609                case "close":
2610                  r.close(i.startEvent);
2611                  break;
2612                case "toggleControls":
2613                  r.toggleControls();
2614                  break;
2615                case "next":
2616                  r.next();
2617                  break;
2618                case "nextOrClose":
2619                  r.group.length > 1 ? r.next() : r.close(i.startEvent);
2620                  break;
2621                case "zoom":
2622                  "image" == c.type &&
2623                    (c.isLoaded || c.$ghost) &&
2624                    (r.canPan()
2625                      ? r.scaleToFit()
2626                      : r.isScaledDown()
2627                      ? r.scaleToActual(d, u)
2628                      : r.group.length < 2 && r.close(i.startEvent));
2629              }
2630          };
2631        if (
2632          (!e.originalEvent || 2 != e.originalEvent.button) &&
2633          (s.is("img") || !(d > s[0].clientWidth + s.offset().left))
2634        ) {
2635          if (
2636            s.is(
2637              ".fancybox-bg,.fancybox-inner,.fancybox-outer,.fancybox-container"
2638            )
2639          )
2640            o = "Outside";
2641          else if (s.is(".fancybox-slide")) o = "Slide";
2642          else {
2643            if (
2644              !r.current.$content ||
2645              !r.current.$content.find(s).addBack().filter(s).length
2646            )
2647              return;
2648            o = "Content";
2649          }
2650          if (i.tapped) {
2651            if (
2652              (clearTimeout(i.tapped),
2653              (i.tapped = null),
2654              Math.abs(d - i.tapX) > 50 || Math.abs(u - i.tapY) > 50)
2655            )
2656              return this;
2657            f("dblclick" + o);
2658          } else
2659            (i.tapX = d),
2660              (i.tapY = u),
2661              c.opts["dblclick" + o] &&
2662              c.opts["dblclick" + o] !== c.opts["click" + o]
2663                ? (i.tapped = setTimeout(function () {
2664                    (i.tapped = null), r.isAnimating || f("click" + o);
2665                  }, 500))
2666                : f("click" + o);
2667          return this;
2668        }
2669      }),
2670      n(e)
2671        .on("onActivate.fb", function (t, e) {
2672          e && !e.Guestures && (e.Guestures = new d(e));
2673        })
2674        .on("beforeClose.fb", function (t, e) {
2675          e && e.Guestures && e.Guestures.destroy();
2676        });
2677  })(window, document, jQuery),
2678  (function (t, e) {
2679    "use strict";
2680    e.extend(!0, e.fancybox.defaults, {
2681      btnTpl: {
2682        slideShow:
2683          '<button data-fancybox-play class="fancybox-button fancybox-button--play" title="{{PLAY_START}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.5 5.4v13.2l11-6.6z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.33 5.75h2.2v12.5h-2.2V5.75zm5.15 0h2.2v12.5h-2.2V5.75z"/></svg></button>',
2684      },
2685      slideShow: { autoStart: !1, speed: 3e3, progress: !0 },
2686    });
2687    var n = function (t) {
2688      (this.instance = t), this.init();
2689    };
2690    e.extend(n.prototype, {
2691      timer: null,
2692      isActive: !1,
2693      $button: null,
2694      init: function () {
2695        var t = this,
2696          n = t.instance,
2697          o = n.group[n.currIndex].opts.slideShow;
2698        (t.$button = n.$refs.toolbar
2699          .find("[data-fancybox-play]")
2700          .on("click", function () {
2701            t.toggle();
2702          })),
2703          n.group.length < 2 || !o
2704            ? t.$button.hide()
2705            : o.progress &&
2706              (t.$progress = e(
2707                '<div class="fancybox-progress"></div>'
2708              ).appendTo(n.$refs.inner));
2709      },
2710      set: function (t) {
2711        var n = this,
2712          o = n.instance,
2713          i = o.current;
2714        i && (!0 === t || i.opts.loop || o.currIndex < o.group.length - 1)
2715          ? n.isActive &&
2716            "video" !== i.contentType &&
2717            (n.$progress &&
2718              e.fancybox.animate(
2719                n.$progress.show(),
2720                { scaleX: 1 },
2721                i.opts.slideShow.speed
2722              ),
2723            (n.timer = setTimeout(function () {
2724              o.current.opts.loop || o.current.index != o.group.length - 1
2725                ? o.next()
2726                : o.jumpTo(0);
2727            }, i.opts.slideShow.speed)))
2728          : (n.stop(), (o.idleSecondsCounter = 0), o.showControls());
2729      },
2730      clear: function () {
2731        var t = this;
2732        clearTimeout(t.timer),
2733          (t.timer = null),
2734          t.$progress && t.$progress.removeAttr("style").hide();
2735      },
2736      start: function () {
2737        var t = this,
2738          e = t.instance.current;
2739        e &&
2740          (t.$button
2741            .attr(
2742              "title",
2743              (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_STOP
2744            )
2745            .removeClass("fancybox-button--play")
2746            .addClass("fancybox-button--pause"),
2747          (t.isActive = !0),
2748          e.isComplete && t.set(!0),
2749          t.instance.trigger("onSlideShowChange", !0));
2750      },
2751      stop: function () {
2752        var t = this,
2753          e = t.instance.current;
2754        t.clear(),
2755          t.$button
2756            .attr(
2757              "title",
2758              (e.opts.i18n[e.opts.lang] || e.opts.i18n.en).PLAY_START
2759            )
2760            .removeClass("fancybox-button--pause")
2761            .addClass("fancybox-button--play"),
2762          (t.isActive = !1),
2763          t.instance.trigger("onSlideShowChange", !1),
2764          t.$progress && t.$progress.removeAttr("style").hide();
2765      },
2766      toggle: function () {
2767        var t = this;
2768        t.isActive ? t.stop() : t.start();
2769      },
2770    }),
2771      e(t).on({
2772        "onInit.fb": function (t, e) {
2773          e && !e.SlideShow && (e.SlideShow = new n(e));
2774        },
2775        "beforeShow.fb": function (t, e, n, o) {
2776          var i = e && e.SlideShow;
2777          o
2778            ? i && n.opts.slideShow.autoStart && i.start()
2779            : i && i.isActive && i.clear();
2780        },
2781        "afterShow.fb": function (t, e, n) {
2782          var o = e && e.SlideShow;
2783          o && o.isActive && o.set();
2784        },
2785        "afterKeydown.fb": function (n, o, i, a, s) {
2786          var r = o && o.SlideShow;
2787          !r ||
2788            !i.opts.slideShow ||
2789            (80 !== s && 32 !== s) ||
2790            e(t.activeElement).is("button,a,input") ||
2791            (a.preventDefault(), r.toggle());
2792        },
2793        "beforeClose.fb onDeactivate.fb": function (t, e) {
2794          var n = e && e.SlideShow;
2795          n && n.stop();
2796        },
2797      }),
2798      e(t).on("visibilitychange", function () {
2799        var n = e.fancybox.getInstance(),
2800          o = n && n.SlideShow;
2801        o && o.isActive && (t.hidden ? o.clear() : o.set());
2802      });
2803  })(document, jQuery),
2804  (function (t, e) {
2805    "use strict";
2806    var n = (function () {
2807      for (
2808        var e = [
2809            [
2810              "requestFullscreen",
2811              "exitFullscreen",
2812              "fullscreenElement",
2813              "fullscreenEnabled",
2814              "fullscreenchange",
2815              "fullscreenerror",
2816            ],
2817            [
2818              "webkitRequestFullscreen",
2819              "webkitExitFullscreen",
2820              "webkitFullscreenElement",
2821              "webkitFullscreenEnabled",
2822              "webkitfullscreenchange",
2823              "webkitfullscreenerror",
2824            ],
2825            [
2826              "webkitRequestFullScreen",
2827              "webkitCancelFullScreen",
2828              "webkitCurrentFullScreenElement",
2829              "webkitCancelFullScreen",
2830              "webkitfullscreenchange",
2831              "webkitfullscreenerror",
2832            ],
2833            [
2834              "mozRequestFullScreen",
2835              "mozCancelFullScreen",
2836              "mozFullScreenElement",
2837              "mozFullScreenEnabled",
2838              "mozfullscreenchange",
2839              "mozfullscreenerror",
2840            ],
2841            [
2842              "msRequestFullscreen",
2843              "msExitFullscreen",
2844              "msFullscreenElement",
2845              "msFullscreenEnabled",
2846              "MSFullscreenChange",
2847              "MSFullscreenError",
2848            ],
2849          ],
2850          n = {},
2851          o = 0;
2852        o < e.length;
2853        o++
2854      ) {
2855        var i = e[o];
2856        if (i && i[1] in t) {
2857          for (var a = 0; a < i.length; a++) n[e[0][a]] = i[a];
2858          return n;
2859        }
2860      }
2861      return !1;
2862    })();
2863    if (n) {
2864      var o = {
2865        request: function (e) {
2866          (e = e || t.documentElement),
2867            e[n.requestFullscreen](e.ALLOW_KEYBOARD_INPUT);
2868        },
2869        exit: function () {
2870          t[n.exitFullscreen]();
2871        },
2872        toggle: function (e) {
2873          (e = e || t.documentElement),
2874            this.isFullscreen() ? this.exit() : this.request(e);
2875        },
2876        isFullscreen: function () {
2877          return Boolean(t[n.fullscreenElement]);
2878        },
2879        enabled: function () {
2880          return Boolean(t[n.fullscreenEnabled]);
2881        },
2882      };
2883      e.extend(!0, e.fancybox.defaults, {
2884        btnTpl: {
2885          fullScreen:
2886            '<button data-fancybox-fullscreen class="fancybox-button fancybox-button--fsenter" title="{{FULL_SCREEN}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"/></svg><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 16h3v3h2v-5H5zm3-8H5v2h5V5H8zm6 11h2v-3h3v-2h-5zm2-11V5h-2v5h5V8z"/></svg></button>',
2887        },
2888        fullScreen: { autoStart: !1 },
2889      }),
2890        e(t).on(n.fullscreenchange, function () {
2891          var t = o.isFullscreen(),
2892            n = e.fancybox.getInstance();
2893          n &&
2894            (n.current &&
2895              "image" === n.current.type &&
2896              n.isAnimating &&
2897              ((n.isAnimating = !1),
2898              n.update(!0, !0, 0),
2899              n.isComplete || n.complete()),
2900            n.trigger("onFullscreenChange", t),
2901            n.$refs.container.toggleClass("fancybox-is-fullscreen", t),
2902            n.$refs.toolbar
2903              .find("[data-fancybox-fullscreen]")
2904              .toggleClass("fancybox-button--fsenter", !t)
2905              .toggleClass("fancybox-button--fsexit", t));
2906        });
2907    }
2908    e(t).on({
2909      "onInit.fb": function (t, e) {
2910        var i;
2911        if (!n)
2912          return void e.$refs.toolbar
2913            .find("[data-fancybox-fullscreen]")
2914            .remove();
2915        e && e.group[e.currIndex].opts.fullScreen
2916          ? ((i = e.$refs.container),
2917            i.on(
2918              "click.fb-fullscreen",
2919              "[data-fancybox-fullscreen]",
2920              function (t) {
2921                t.stopPropagation(), t.preventDefault(), o.toggle();
2922              }
2923            ),
2924            e.opts.fullScreen &&
2925              !0 === e.opts.fullScreen.autoStart &&
2926              o.request(),
2927            (e.FullScreen = o))
2928          : e && e.$refs.toolbar.find("[data-fancybox-fullscreen]").hide();
2929      },
2930      "afterKeydown.fb": function (t, e, n, o, i) {
2931        e &&
2932          e.FullScreen &&
2933          70 === i &&
2934          (o.preventDefault(), e.FullScreen.toggle());
2935      },
2936      "beforeClose.fb": function (t, e) {
2937        e &&
2938          e.FullScreen &&
2939          e.$refs.container.hasClass("fancybox-is-fullscreen") &&
2940          o.exit();
2941      },
2942    });
2943  })(document, jQuery),
2944  (function (t, e) {
2945    "use strict";
2946    var n = "fancybox-thumbs";
2947    e.fancybox.defaults = e.extend(
2948      !0,
2949      {
2950        btnTpl: {
2951          thumbs:
2952            '<button data-fancybox-thumbs class="fancybox-button fancybox-button--thumbs" title="{{THUMBS}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14.59 14.59h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76h-3.76v-3.76zm-4.47 0h3.76v3.76H5.65v-3.76zm8.94-4.47h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76h-3.76V5.65zm-4.47 0h3.76v3.76H5.65V5.65z"/></svg></button>',
2953        },
2954        thumbs: {
2955          autoStart: !1,
2956          hideOnClose: !0,
2957          parentEl: ".fancybox-container",
2958          axis: "y",
2959        },
2960      },
2961      e.fancybox.defaults
2962    );
2963    var o = function (t) {
2964      this.init(t);
2965    };
2966    e.extend(o.prototype, {
2967      $button: null,
2968      $grid: null,
2969      $list: null,
2970      isVisible: !1,
2971      isActive: !1,
2972      init: function (t) {
2973        var e = this,
2974          n = t.group,
2975          o = 0;
2976        (e.instance = t),
2977          (e.opts = n[t.currIndex].opts.thumbs),
2978          (t.Thumbs = e),
2979          (e.$button = t.$refs.toolbar.find("[data-fancybox-thumbs]"));
2980        for (
2981          var i = 0, a = n.length;
2982          i < a && (n[i].thumb && o++, !(o > 1));
2983          i++
2984        );
2985        o > 1 && e.opts
2986          ? (e.$button.removeAttr("style").on("click", function () {
2987              e.toggle();
2988            }),
2989            (e.isActive = !0))
2990          : e.$button.hide();
2991      },
2992      create: function () {
2993        var t,
2994          o = this,
2995          i = o.instance,
2996          a = o.opts.parentEl,
2997          s = [];
2998        o.$grid ||
2999          ((o.$grid = e(
3000            '<div class="' + n + " " + n + "-" + o.opts.axis + '"></div>'
3001          ).appendTo(i.$refs.container.find(a).addBack().filter(a))),
3002          o.$grid.on("click", "a", function () {
3003            i.jumpTo(e(this).attr("data-index"));
3004          })),
3005          o.$list ||
3006            (o.$list = e('<div class="' + n + '__list">').appendTo(o.$grid)),
3007          e.each(i.group, function (e, n) {
3008            (t = n.thumb),
3009              t || "image" !== n.type || (t = n.src),
3010              s.push(
3011                '<a href="javascript:;" tabindex="0" data-index="' +
3012                  e +
3013                  '"' +
3014                  (t && t.length
3015                    ? ' style="background-image:url(' + t + ')"'
3016                    : 'class="fancybox-thumbs-missing"') +
3017                  "></a>"
3018              );
3019          }),
3020          (o.$list[0].innerHTML = s.join("")),
3021          "x" === o.opts.axis &&
3022            o.$list.width(
3023              parseInt(o.$grid.css("padding-right"), 10) +
3024                i.group.length * o.$list.children().eq(0).outerWidth(!0)
3025            );
3026      },
3027      focus: function (t) {
3028        var e,
3029          n,
3030          o = this,
3031          i = o.$list,
3032          a = o.$grid;
3033        o.instance.current &&
3034          ((e = i
3035            .children()
3036            .removeClass("fancybox-thumbs-active")
3037            .filter('[data-index="' + o.instance.current.index + '"]')
3038            .addClass("fancybox-thumbs-active")),
3039          (n = e.position()),
3040          "y" === o.opts.axis &&
3041          (n.top < 0 || n.top > i.height() - e.outerHeight())
3042            ? i.stop().animate({ scrollTop: i.scrollTop() + n.top }, t)
3043            : "x" === o.opts.axis &&
3044              (n.left < a.scrollLeft() ||
3045                n.left > a.scrollLeft() + (a.width() - e.outerWidth())) &&
3046              i.parent().stop().animate({ scrollLeft: n.left }, t));
3047      },
3048      update: function () {
3049        var t = this;
3050        t.instance.$refs.container.toggleClass(
3051          "fancybox-show-thumbs",
3052          this.isVisible
3053        ),
3054          t.isVisible
3055            ? (t.$grid || t.create(),
3056              t.instance.trigger("onThumbsShow"),
3057              t.focus(0))
3058            : t.$grid && t.instance.trigger("onThumbsHide"),
3059          t.instance.update();
3060      },
3061      hide: function () {
3062        (this.isVisible = !1), this.update();
3063      },
3064      show: function () {
3065        (this.isVisible = !0), this.update();
3066      },
3067      toggle: function () {
3068        (this.isVisible = !this.isVisible), this.update();
3069      },
3070    }),
3071      e(t).on({
3072        "onInit.fb": function (t, e) {
3073          var n;
3074          e &&
3075            !e.Thumbs &&
3076            ((n = new o(e)), n.isActive && !0 === n.opts.autoStart && n.show());
3077        },
3078        "beforeShow.fb": function (t, e, n, o) {
3079          var i = e && e.Thumbs;
3080          i && i.isVisible && i.focus(o ? 0 : 250);
3081        },
3082        "afterKeydown.fb": function (t, e, n, o, i) {
3083          var a = e && e.Thumbs;
3084          a && a.isActive && 71 === i && (o.preventDefault(), a.toggle());
3085        },
3086        "beforeClose.fb": function (t, e) {
3087          var n = e && e.Thumbs;
3088          n && n.isVisible && !1 !== n.opts.hideOnClose && n.$grid.hide();
3089        },
3090      });
3091  })(document, jQuery),
3092  (function (t, e) {
3093    "use strict";
3094    function n(t) {
3095      var e = {
3096        "&": "&amp;",
3097        "<": "&lt;",
3098        ">": "&gt;",
3099        '"': "&quot;",
3100        "'": "&#39;",
3101        "/": "&#x2F;",
3102        "`": "&#x60;",
3103        "=": "&#x3D;",
3104      };
3105      return String(t).replace(/[&<>"'`=\/]/g, function (t) {
3106        return e[t];
3107      });
3108    }
3109    e.extend(!0, e.fancybox.defaults, {
3110      btnTpl: {
3111        share:
3112          '<button data-fancybox-share class="fancybox-button fancybox-button--share" title="{{SHARE}}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M2.55 19c1.4-8.4 9.1-9.8 11.9-9.8V5l7 7-7 6.3v-3.5c-2.8 0-10.5 2.1-11.9 4.2z"/></svg></button>',
3113      },
3114      share: {
3115        url: function (t, e) {
3116          return (
3117            (!t.currentHash &&
3118              "inline" !== e.type &&
3119              "html" !== e.type &&
3120              (e.origSrc || e.src)) ||
3121            window.location
3122          );
3123        },
3124        tpl: '<div class="fancybox-share"><h1>{{SHARE}}</h1><p><a class="fancybox-share__button fancybox-share__button--fb" href="https://www.facebook.com/sharer/sharer.php?u={{url}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m287 456v-299c0-21 6-35 35-35h38v-63c-7-1-29-3-55-3-54 0-91 33-91 94v306m143-254h-205v72h196" /></svg><span>Facebook</span></a><a class="fancybox-share__button fancybox-share__button--tw" href="https://twitter.com/intent/tweet?url={{url}}&text={{descr}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m456 133c-14 7-31 11-47 13 17-10 30-27 37-46-15 10-34 16-52 20-61-62-157-7-141 75-68-3-129-35-169-85-22 37-11 86 26 109-13 0-26-4-37-9 0 39 28 72 65 80-12 3-25 4-37 2 10 33 41 57 77 57-42 30-77 38-122 34 170 111 378-32 359-208 16-11 30-25 41-42z" /></svg><span>Twitter</span></a><a class="fancybox-share__button fancybox-share__button--pt" href="https://www.pinterest.com/pin/create/button/?url={{url}}&description={{descr}}&media={{media}}"><svg viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path d="m265 56c-109 0-164 78-164 144 0 39 15 74 47 87 5 2 10 0 12-5l4-19c2-6 1-8-3-13-9-11-15-25-15-45 0-58 43-110 113-110 62 0 96 38 96 88 0 67-30 122-73 122-24 0-42-19-36-44 6-29 20-60 20-81 0-19-10-35-31-35-25 0-44 26-44 60 0 21 7 36 7 36l-30 125c-8 37-1 83 0 87 0 3 4 4 5 2 2-3 32-39 42-75l16-64c8 16 31 29 56 29 74 0 124-67 124-157 0-69-58-132-146-132z" fill="#fff"/></svg><span>Pinterest</span></a></p><p><input class="fancybox-share__input" type="text" value="{{url_raw}}" onclick="select()" /></p></div>',
3125      },
3126    }),
3127      e(t).on("click", "[data-fancybox-share]", function () {
3128        var t,
3129          o,
3130          i = e.fancybox.getInstance(),
3131          a = i.current || null;
3132        a &&
3133          ("function" === e.type(a.opts.share.url) &&
3134            (t = a.opts.share.url.apply(a, [i, a])),
3135          (o = a.opts.share.tpl
3136            .replace(
3137              /\{\{media\}\}/g,
3138              "image" === a.type ? encodeURIComponent(a.src) : ""
3139            )
3140            .replace(/\{\{url\}\}/g, encodeURIComponent(t))
3141            .replace(/\{\{url_raw\}\}/g, n(t))
3142            .replace(
3143              /\{\{descr\}\}/g,
3144              i.$caption ? encodeURIComponent(i.$caption.text()) : ""
3145            )),
3146          e.fancybox.open({
3147            src: i.translate(i, o),
3148            type: "html",
3149            opts: {
3150              touch: !1,
3151              animationEffect: !1,
3152              afterLoad: function (t, e) {
3153                i.$refs.container.one("beforeClose.fb", function () {
3154                  t.close(null, 0);
3155                }),
3156                  e.$content.find(".fancybox-share__button").click(function () {
3157                    return (
3158                      window.open(this.href, "Share", "width=550, height=450"),
3159                      !1
3160                    );
3161                  });
3162              },
3163              mobile: { autoFocus: !1 },
3164            },
3165          }));
3166      });
3167  })(document, jQuery),
3168  (function (t, e, n) {
3169    "use strict";
3170    function o() {
3171      var e = t.location.hash.substr(1),
3172        n = e.split("-"),
3173        o =
3174          n.length > 1 && /^\+?\d+$/.test(n[n.length - 1])
3175            ? parseInt(n.pop(-1), 10) || 1
3176            : 1,
3177        i = n.join("-");
3178      return { hash: e, index: o < 1 ? 1 : o, gallery: i };
3179    }
3180    function i(t) {
3181      "" !== t.gallery &&
3182        n("[data-fancybox='" + n.escapeSelector(t.gallery) + "']")
3183          .eq(t.index - 1)
3184          .focus()
3185          .trigger("click.fb-start");
3186    }
3187    function a(t) {
3188      var e, n;
3189      return (
3190        !!t &&
3191        ((e = t.current ? t.current.opts : t.opts),
3192        "" !==
3193          (n =
3194            e.hash ||
3195            (e.$orig
3196              ? e.$orig.data("fancybox") || e.$orig.data("fancybox-trigger")
3197              : "")) && n)
3198      );
3199    }
3200    n.escapeSelector ||
3201      (n.escapeSelector = function (t) {
3202        return (t + "").replace(
3203          /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,
3204          function (t, e) {
3205            return e
3206              ? "\0" === t
3207                ? "�"
3208                : t.slice(0, -1) +
3209                  "\\" +
3210                  t.charCodeAt(t.length - 1).toString(16) +
3211                  " "
3212              : "\\" + t;
3213          }
3214        );
3215      }),
3216      n(function () {
3217        !1 !== n.fancybox.defaults.hash &&
3218          (n(e).on({
3219            "onInit.fb": function (t, e) {
3220              var n, i;
3221              !1 !== e.group[e.currIndex].opts.hash &&
3222                ((n = o()),
3223                (i = a(e)) &&
3224                  n.gallery &&
3225                  i == n.gallery &&
3226                  (e.currIndex = n.index - 1));
3227            },
3228            "beforeShow.fb": function (n, o, i, s) {
3229              var r;
3230              i &&
3231                !1 !== i.opts.hash &&
3232                (r = a(o)) &&
3233                ((o.currentHash =
3234                  r + (o.group.length > 1 ? "-" + (i.index + 1) : "")),
3235                t.location.hash !== "#" + o.currentHash &&
3236                  (s && !o.origHash && (o.origHash = t.location.hash),
3237                  o.hashTimer && clearTimeout(o.hashTimer),
3238                  (o.hashTimer = setTimeout(function () {
3239                    "replaceState" in t.history
3240                      ? (t.history[s ? "pushState" : "replaceState"](
3241                          {},
3242                          e.title,
3243                          t.location.pathname +
3244                            t.location.search +
3245                            "#" +
3246                            o.currentHash
3247                        ),
3248                        s && (o.hasCreatedHistory = !0))
3249                      : (t.location.hash = o.currentHash),
3250                      (o.hashTimer = null);
3251                  }, 300))));
3252            },
3253            "beforeClose.fb": function (n, o, i) {
3254              i &&
3255                !1 !== i.opts.hash &&
3256                (clearTimeout(o.hashTimer),
3257                o.currentHash && o.hasCreatedHistory
3258                  ? t.history.back()
3259                  : o.currentHash &&
3260                    ("replaceState" in t.history
3261                      ? t.history.replaceState(
3262                          {},
3263                          e.title,
3264                          t.location.pathname +
3265                            t.location.search +
3266                            (o.origHash || "")
3267                        )
3268                      : (t.location.hash = o.origHash)),
3269                (o.currentHash = null));
3270            },
3271          }),
3272          n(t).on("hashchange.fb", function () {
3273            var t = o(),
3274              e = null;
3275            n.each(n(".fancybox-container").get().reverse(), function (t, o) {
3276              var i = n(o).data("FancyBox");
3277              if (i && i.currentHash) return (e = i), !1;
3278            }),
3279              e
3280                ? e.currentHash === t.gallery + "-" + t.index ||
3281                  (1 === t.index && e.currentHash == t.gallery) ||
3282                  ((e.currentHash = null), e.close())
3283                : "" !== t.gallery && i(t);
3284          }),
3285          setTimeout(function () {
3286            n.fancybox.getInstance() || i(o());
3287          }, 50));
3288      });
3289  })(window, document, jQuery),
3290  (function (t, e) {
3291    "use strict";
3292    var n = new Date().getTime();
3293    e(t).on({
3294      "onInit.fb": function (t, e, o) {
3295        e.$refs.stage.on(
3296          "mousewheel DOMMouseScroll wheel MozMousePixelScroll",
3297          function (t) {
3298            var o = e.current,
3299              i = new Date().getTime();
3300            e.group.length < 2 ||
3301              !1 === o.opts.wheel ||
3302              ("auto" === o.opts.wheel && "image" !== o.type) ||
3303              (t.preventDefault(),
3304              t.stopPropagation(),
3305              o.$slide.hasClass("fancybox-animated") ||
3306                ((t = t.originalEvent || t),
3307                i - n < 250 ||
3308                  ((n = i),
3309                  e[
3310                    (-t.deltaY || -t.deltaX || t.wheelDelta || -t.detail) < 0
3311                      ? "next"
3312                      : "previous"
3313                  ]())));
3314          }
3315        );
3316      },
3317    });
3318  })(document, jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.