1function getTextWidth(txt) { 2 var $elm = $('<span class="tempforSize">' + txt + "</span>").prependTo( 3 "body" 4 ), 5 elmWidth = $elm.width(); 6 return $elm.remove(), elmWidth; 7} 8function centerSelect($elm) { 9 var optionWidth = getTextWidth($elm.children(":selected").html()), 10 emptySpace = $elm.width() - optionWidth; 11 $elm.css("text-indent", emptySpace / 2 - 10); 12} 13!(function($, window, document) { 14 "use strict"; 15 function dupOpts(options) { 16 return extend(!0, {}, options || {}); 17 } 18 function slice() { 19 var fn = Array.prototype.slice, 20 args = fn.call(arguments, 1); 21 return fn.apply(arguments[0], args); 22 } 23 function isUndefined(value) { 24 return "undefined" == typeof value; 25 } 26 function all(deferreds) { 27 return when.apply($, deferreds); 28 } 29 function resolved(value) { 30 return when().then(function() { 31 return value; 32 }); 33 } 34 function distanceInMeter(origin, destination) { 35 var m = Math, 36 pi = m.PI, 37 e = pi * origin.lat() / 180, 38 f = pi * origin.lng() / 180, 39 g = pi * destination.lat() / 180, 40 h = pi * destination.lng() / 180, 41 cos = m.cos, 42 sin = m.sin; 43 return ( 44 6371e3 * 45 m.acos( 46 m.min( 47 cos(e) * cos(g) * cos(f) * cos(h) + 48 cos(e) * sin(f) * cos(g) * sin(h) + 49 sin(e) * sin(g),
50 1 51 ) 52 ) 53 ); 54 } 55 function ready(fn) { 56 "loading" != document.readyState 57 ? fn() 58 : document.addEventListener("DOMContentLoaded", fn); 59 } 60 function serialize(obj) { 61 return objectKeys(obj) 62 .map(function(key) { 63 return encodeURIComponent(key) + "=" + encodeURIComponent(obj[key]); 64 }) 65 .join("&"); 66 } 67 function service(name) { 68 return services[name] || (services[name] = gmElement(name)), services[name]; 69 } 70 function gmElement(name) { 71 function F(args) { 72 return cls.apply(this, args); 73 } 74 var cls = gm[name]; 75 return (F.prototype = cls.prototype), new F(slice(arguments, 1)); 76 } 77 function geocode(request) { 78 var dfd = deferred(); 79 return ( 80 "string" == typeof request && (request = { address: request }), 81 service("Geocoder").geocode(request, function(results, status) { 82 status === gm.GeocoderStatus.OK 83 ? dfd.resolve(results[0].geometry.location) 84 : dfd.reject(); 85 }), 86 dfd 87 ); 88 } 89 function foreachStr(str, fn) { 90 str.split(" ").forEach(fn); 91 } 92 function foreach(items, fn) { 93 (isArray(items) ? items : [items]).forEach(fn); 94 } 95 function objectKeys(obj) { 96 return Object.keys(obj); 97 } 98 function objectValues(obj) { 99 return objectKeys(obj).map(function(key) { 100 return obj[key]; 101 }); 102 } 103 function resolveLatLngBounds(options, fn) { 104 return ( 105 (options = dupOpts(options)), 106 options.bounds && (options.bounds = toLatLngBound(options.bounds)), 107 resolved(fn(options)) 108 ); 109 } 110 function resolveLatLng(options, key, fn) { 111 var dfd = deferred(); 112 return ( 113 (options = dupOpts(options)), 114 when() 115 .then(function() { 116 var address = options.address; 117 return address 118 ? (delete options.address, 119 geocode(address).then(function(latLng) { 120 options[key] = latLng; 121 })) 122 : void (options[key] = toLatLng(options[key])); 123 }) 124 .then(function() { 125 dfd.resolve(fn(options)); 126 }), 127 dfd 128 ); 129 } 130 function resolveArrayOfLatLng(options, key, fn) { 131 return ( 132 (options = dupOpts(options)), 133 (options[key] = (options[key] || []).map(function(item) { 134 return toLatLng(item); 135 })), 136 resolved(fn(options)) 137 ); 138 } 139 function toLatLng(mixed, convertLiteral) { 140 return isArray(mixed) 141 ? new gm.LatLng(mixed[0], mixed[1]) 142 : !convertLiteral || !mixed || mixed instanceof gm.LatLng 143 ? mixed 144 : new gm.LatLng(mixed.lat, mixed.lng); 145 } 146 function toLatLngBound(mixed, convertLiteral) { 147 return isArray(mixed) 148 ? new gm.LatLngBounds( 149 { lat: mixed[2], lng: mixed[3] }, 150 { lat: mixed[0], lng: mixed[1] } 151 ) 152 : convertLiteral && !mixed.getCenter 153 ? new gm.LatLngBounds( 154 { lat: mixed.south, lng: mixed.west }, 155 { lat: mixed.north, lng: mixed.east } 156 ) 157 : mixed; 158 } 159 function createOverlayView(map, options) { 160 function OverlayView() { 161 function fromLatLngToDivPixel(latlng) { 162 return self.getProjection().fromLatLngToDivPixel(latlng); 163 } 164 var self = this, 165 listeners = []; 166 GMOverlayView.call(self), 167 self.setMap(map), 168 (self.onAdd = function() { 169 var panes = self.getPanes(); 170 panes.overlayMouseTarget.appendChild($div[0]); 171 }), 172 options.position 173 ? ((self.getPosition = function() { 174 return options.position; 175 }), 176 (self.setPosition = function(latlng) { 177 (options.position = latlng), self.draw(); 178 }), 179 (self.draw = function() { 180 var ps = fromLatLngToDivPixel(options.position); 181 $div.css({ 182 left: ps.x + options.x + "px", 183 top: ps.y + options.y + "px" 184 }); 185 })) 186 : ((self.getBounds = function() { 187 return options.bounds; 188 }),
189 (self.setBounds = function(bounds) { 190 (options.bounds = bounds), self.draw(); 191 }), 192 (self.draw = function() { 193 var sw = fromLatLngToDivPixel(options.bounds.getSouthWest()), 194 ne = fromLatLngToDivPixel(options.bounds.getNorthEast()); 195 $div.css({ 196 left: sw.x + options.x + "px", 197 top: ne.y + options.y + "px", 198 width: ne.x - sw.x + options.x + "px", 199 height: sw.y - ne.y + options.y + "px" 200 }); 201 })), 202 (self.onRemove = function() { 203 listeners.map(function(handler) { 204 gm.event.removeListener(handler); 205 }), 206 $div.remove(), 207 (self.$ = $div = null); 208 }), 209 (self.$ = $div); 210 } 211 var GMOverlayView = gm.OverlayView, 212 $div = $(document.createElement("div")) 213 .css({ border: "none", borderWidth: 0, position: "absolute" }) 214 .append(options.content); 215 return ( 216 (options = extend({ x: 0, y: 0 }, options)), 217 options.position 218 ? (options.position = toLatLng(options.position, !0)) 219 : options.bounds && 220 (options.bounds = toLatLngBound(options.bounds, !0)), 221 (OverlayView.prototype = new GMOverlayView()), 222 new OverlayView() 223 ); 224 } 225 function getProjection(map) { 226 function Overlay() { 227 var self = this; 228 return ( 229 (self.onAdd = self.onRemove = self.draw = function() {}), 230 gm.OverlayView.call(self) 231 ); 232 } 233 Overlay.prototype = new gm.OverlayView(); 234 var overlay = new Overlay(); 235 return overlay.setMap(map), overlay.getProjection(); 236 } 237 function ClusterOverlay(cluster, markers, overlay, bounds) { 238 var self = this; 239 (self.cluster = cluster), 240 (self.markers = markers), 241 (self.$ = overlay.$), 242 (self.overlay = overlay), 243 (overlay.getBounds = function() { 244 return gmElement( 245 "LatLngBounds",
246 bounds.getSouthWest(), 247 bounds.getNorthEast() 248 ); 249 }); 250 } 251 function Cluster(map, options) { 252 function extendsMapBounds() { 253 var circle = gmElement("Circle", { 254 center: map.getCenter(), 255 radius: 256 1.15 * 257 distanceInMeter(map.getCenter(), map.getBounds().getNorthEast()) 258 }); 259 return circle.getBounds(); 260 } 261 function extendsBounds(latLng) { 262 var p = projection.fromLatLngToDivPixel(latLng); 263 return gmElement( 264 "LatLngBounds", 265 projection.fromDivPixelToLatLng( 266 gmElement("Point", p.x - radius, p.y + radius) 267 ), 268 projection.fromDivPixelToLatLng( 269 gmElement("Point", p.x + radius, p.y - radius) 270 ) 271 ); 272 } 273 function redraw() { 274 var keys, 275 bounds, 276 overlayOptions, 277 hash, 278 currentMarkers, 279 viewHash, 280 zoom = map.getZoom(), 281 currentHashes = {}, 282 newOverlays = [], 283 ignore = {}; 284 (viewHash = "" + zoom), 285 zoom > 3 && 286 ((bounds = extendsMapBounds()), 287 foreach(markers, function(marker, index) { 288 bounds.contains(marker.getPosition()) || 289 ((viewHash += "-" + index), 290 (ignore[index] = !0), 291 marker.getMap() && marker.setMap(null)); 292 })), 293 filter && 294 foreach(markers, function(marker, index) { 295 ignore[index] || 296 filter(marker) || 297 ((viewHash += "-" + index), 298 (ignore[index] = !0), 299 marker.getMap() && marker.setMap(null)); 300 }), 301 viewHash !== previousViewHash && 302 ((previousViewHash = viewHash), 303 foreach(markers, function(marker, index) { 304 ignore[index] || 305 ((keys = [index]), 306 (bounds = extendsBounds(marker.getPosition())), 307 enabled && 308 foreach(slice(markers, index + 1), function(marker, idx) { 309 (idx += index + 1), 310 !ignore[idx] && 311 bounds.contains(marker.getPosition()) && 312 (keys.push(idx), (ignore[idx] = !0)); 313 }), 314 (hash = keys.join("-")), 315 (currentHashes[hash] = !0), 316 overlays[hash] || 317 ((currentMarkers = keys.map(function(key) { 318 return markers[key]; 319 })), 320 (overlayOptions = options.cb(slice(currentMarkers))), 321 overlayOptions 322 ? ((bounds = gmElement("LatLngBounds")), 323 foreach(currentMarkers, function(marker) { 324 bounds.extend(marker.getPosition()), 325 marker.getMap() && marker.setMap(null); 326 }), 327 (overlayOptions = dupOpts(overlayOptions)), 328 (overlayOptions.position = bounds.getCenter()), 329 (overlays[hash] = new ClusterOverlay( 330 self, 331 slice(currentMarkers), 332 createOverlayView(map, overlayOptions), 333 bounds 334 )), 335 newOverlays.push(overlays[hash])) 336 : foreach(currentMarkers, function(marker) { 337 marker.getMap() || marker.setMap(map); 338 }))); 339 }), 340 foreach(objectKeys(overlays), function(key) { 341 currentHashes[key] || 342 (overlays[key].overlay.setMap(null), delete overlays[key]); 343 }), 344 newOverlays.length && 345 foreach(handlers, function(fn) { 346 fn(newOverlays); 347 })); 348 } 349 function delayRedraw() { 350 clearTimeout(timer), (timer = setTimeout(redraw, 100)); 351 } 352 function init() { 353 gm.event.addListener(map, "zoom_changed", delayRedraw), 354 gm.event.addListener(map, "bounds_changed", delayRedraw), 355 redraw(); 356 } 357 var timer, 358 igniter, 359 previousViewHash, 360 projection, 361 filter, 362 self = this, 363 markers = [], 364 radius = (options.size || 200) >> 1, 365 enabled = !0, 366 overlays = {}, 367 handlers = []; 368 (options = options || {}), 369 (options.markers = options.markers || []), 370 (self._b = function(fn) { 371 fn(objectValues(overlays)), handlers.push(fn); 372 }), 373 (self.markers = function() { 374 return slice(markers); 375 }), 376 (self.groups = function() { 377 return objectValues(overlays); 378 }), 379 (self.enable = function() { 380 enabled || ((enabled = !0), (previousViewHash = ""), delayRedraw()); 381 }), 382 (self.disable = function() { 383 enabled && ((enabled = !1), (previousViewHash = ""), delayRedraw()); 384 }), 385 (self.add = function(marker) { 386 markers.push(marker), (previousViewHash = ""), delayRedraw(); 387 }), 388 (self.remove = function(marker) { 389 (markers = markers.filter(function(item) { 390 return item !== marker; 391 })), 392 (previousViewHash = ""), 393 delayRedraw(); 394 }), 395 (self.filter = function(fn) { 396 filter !== fn && 397 ((filter = fn), (previousViewHash = ""), delayRedraw()); 398 }), 399 options.markers.map(function(opts) { 400 (opts.position = toLatLng(opts.position)), 401 markers.push(gmElement("Marker", opts)); 402 }), 403 (igniter = setInterval(function() { 404 (projection = getProjection(map)), 405 projection && (clearInterval(igniter), init()); 406 }, 10)); 407 } 408 function Handler(chain, items) { 409 var self = this;
410 objectKeys(items[0]).forEach(function(name) { 411 self[name] = function() { 412 var results = [], 413 args = slice(arguments); 414 return ( 415 items.forEach(function(item) { 416 results.push(item[name].apply(item, args)); 417 }), 418 "get" === name ? (results.length > 1 ? results : results[0]) : self 419 ); 420 }; 421 }), 422 (self.$ = chain); 423 } 424 function Gmap3($container, options) { 425 function context() { 426 return { $: $container, get: self.get }; 427 } 428 function attachEvents(events, instances, args, once) { 429 var hasArgs = arguments.length > 3; 430 hasArgs || (once = args), 431 $.each(events, function(eventName, handlers) { 432 foreach(instances, function(instance) { 433 var isClusterOverlay = instance instanceof ClusterOverlay, 434 isDom = isClusterOverlay || instance instanceof gm.OverlayView, 435 eventListener = isDom ? instance.$.get(0) : instance; 436 gm.event[ 437 "add" + (isDom ? "Dom" : "") + "Listener" + (once ? "Once" : "") 438 ](eventListener, eventName, function(event) { 439 foreach(handlers, function(handler) { 440 if (isFunction(handler)) 441 if (isClusterOverlay) 442 handler.call( 443 context(), 444 void 0, 445 instance, 446 instance.cluster, 447 event 448 ); 449 else if (hasArgs) { 450 var buffer = slice(args); 451 buffer.unshift(instance), 452 buffer.push(event), 453 handler.apply(context(), buffer); 454 } else handler.call(context(), instance, event); 455 }); 456 }); 457 }); 458 }); 459 } 460 function multiple(fn) { 461 return function(options) { 462 if (isArray(options)) { 463 var instances = [], 464 promises = options.map(function(opts) { 465 return fn.call(self, opts).then(function(instance) { 466 instances.push(instance); 467 }); 468 }); 469 return all(promises).then(function() { 470 return previousResults.push(instances), instances; 471 }); 472 } 473 return fn.apply(self, arguments).then(function(instance) { 474 return previousResults.push(instance), instance; 475 }); 476 }; 477 } 478 function chainToPromise(fn) { 479 return function() { 480 var args = slice(arguments); 481 return (promise = promise.then(function(instance) { 482 return isFunction(args[0]) 483 ? when(args[0].call(context(), instance)).then(function(value) { 484 return (args[0] = value), fn.apply(self, args); 485 }) 486 : when(fn.apply(self, args)); 487 })); 488 }; 489 } 490 var map, 491 previousResults = [], 492 promise = when(), 493 self = this; 494 (self.map = chainToPromise(function(options) { 495 return ( 496 map || 497 resolveLatLng(options, "center", function(opts) { 498 return ( 499 (map = gmElement("Map", $container.get(0), opts)), 500 previousResults.push(map), 501 map 502 ); 503 }) 504 ); 505 })), 506 foreachStr( 507 "Marker:position Circle:center InfoWindow:position:0 Polyline:path Polygon:paths", 508 function(item) { 509 item = item.split(":"); 510 var property = item[1] || ""; 511 self[item[0].toLowerCase()] = chainToPromise( 512 multiple(function(options) { 513 return (property.match(/^path/) 514 ? resolveArrayOfLatLng 515 : resolveLatLng)(options, property, function(opts) { 516 return ( 517 "0" !== item[2] && (opts.map = map), gmElement(item[0], opts) 518 ); 519 }); 520 }) 521 ); 522 } 523 ), 524 foreachStr("TrafficLayer TransitLayer BicyclingLayer", function(item) { 525 self[item.toLowerCase()] = chainToPromise(function() { 526 var instance = gmElement(item); 527 return previousResults.push(instance), instance.setMap(ma
527p), instance; 528 }); 529 }), 530 (self.kmllayer = chainToPromise( 531 multiple(function(options) { 532 return ( 533 (options = dupOpts(options)), 534 (options.map = map), 535 when(gmElement("KmlLayer", options)) 536 ); 537 }) 538 )), 539 (self.rectangle = chainToPromise( 540 multiple(function(options) { 541 return resolveLatLngBounds(options, function(opts) { 542 return (opts.map = map), gmElement("Rectangle", opts); 543 }); 544 }) 545 )), 546 (self.overlay = chainToPromise( 547 multiple(function(options) { 548 function fn(opts) { 549 return createOverlayView(map, opts); 550 } 551 return ( 552 (options = dupOpts(options)), 553 options.bounds 554 ? resolveLatLngBounds(options, fn) 555 : resolveLatLng(options, "position", fn) 556 ); 557 }) 558 )), 559 (self.groundoverlay = chainToPromise(function(url, bounds, options) { 560 return resolveLatLngBounds({ bounds: bounds }, function(opts) { 561 (options = dupOpts(options)), (options.map = map); 562 var instance = gmElement("GroundOverlay", url, opts.bounds, options); 563 return previousResults.push(instance), instance; 564 }); 565 })), 566 (self.styledmaptype = chainToPromise(function(styleId, styles, options) { 567 var instance = gmElement("StyledMapType", styles, options); 568 return ( 569 previousResults.push(instance), 570 map.mapTypes.set(styleId, instance), 571 instance 572 ); 573 })), 574 (self.streetviewpanorama = chainToPromise(function(container, options) { 575 return resolveLatLng(options, "position", function(opts) { 576 var instance = gmElement( 577 "StreetViewPanorama", 578 $(container).get(0), 579 opts 580 ); 581 return ( 582 map.setStreetView(instance), 583 previousResults.push(instance), 584 instance 585 ); 586 }); 587 })), 588 (self.route = chainToPromise(function(options) { 589 var dfd = deferred(); 590 return ( 591 (options = dupOpts(options)), 592 (options.origin = toLatLng(options.origin)), 593 (options.destination = toLatLng(options.destination)), 594 service("DirectionsService").route(options, function( 595 results, 596 status 597 ) { 598 previousResults.push(results), 599 dfd.resolve(status === gm.DirectionsStatus.OK && results); 600 }), 601 dfd 602 ); 603 })), 604 (self.cluster = chainToPromise(function(options) { 605 var cluster = new Cluster(map, dupOpts(options)); 606 return previousResults.push(cluster), resolved(cluster); 607 })), 608 (self.directionsrenderer = chainToPromise(function(options) { 609 var instance; 610 return ( 611 options && 612 ((options = dupOpts(options)), 613 (options.map = map), 614 options.panel && (options.panel = $(options.panel).get(0)), 615 (instance = gmElement("DirectionsRenderer", options))), 616 previousResults.push(instance), 617 instance 618 ); 619 })), 620 (self.latlng = chainToPromise( 621 multiple(function(options) { 622 return resolveLatLng(options, "latlng", function(opts) { 623 return previousResults.push(opts.latlng), opts.latlng; 624 }); 625 }) 626 )), 627 (self.fit = chainToPromise(function() { 628 var bounds = gmElement("LatLngBounds"); 629 return ( 630 foreach(previousResults, function(instances) { 631 instances !== map && 632 foreach(instances, function(instance) { 633 instance && 634 (instance.getPosition && instance.getPosition() 635 ? bounds.extend(instance.getPosition()) 636 : instance.getBounds && instance.getBounds() 637 ? (bounds.extend(instance.getBounds().getNorthEast()), 638 bounds.extend(instance.getBounds().getSouthWest
638())) 639 : instance.getPaths && instance.getPaths() 640 ? foreach(instance.getPaths().getArray(), function( 641 path 642 ) { 643 foreach(path.getArray(), function(latLng) { 644 bounds.extend(latLng); 645 }); 646 }) 647 : instance.getPath && instance.getPath() 648 ? foreach(instance.getPath().getArray(), function( 649 latLng 650 ) { 651 bounds.extend(latLng); 652 }) 653 : instance.getCenter && 654 instance.getCenter() && 655 bounds.extend(instance.getCenter())); 656 }); 657 }), 658 bounds.isEmpty() || map.fitBounds(bounds), 659 !0 660 ); 661 })), 662 (self.wait = function(duration) { 663 promise = promise.then(function(instance) { 664 var dfd = deferred(); 665 return ( 666 setTimeout(function() { 667 dfd.resolve(instance); 668 }, duration), 669 dfd 670 ); 671 }); 672 }), 673 (self.then = function(fn) { 674 isFunction(fn) && 675 (promise = promise.then(function(instance) { 676 return when(fn.call(context(), instance)).then(function( 677 newInstance 678 ) { 679 return isUndefined(newInstance) ? instance : newInstance; 680 }); 681 })); 682 }), 683 foreachStr("on once", function(name, once) { 684 self[name] = function() { 685 var events = arguments[0]; 686 events && 687 ("string" == typeof events && 688 ((events = {}), (events[arguments[0]] = slice(arguments, 1))), 689 promise.then(function(instances) { 690 if (instances) { 691 if (instances instanceof Cluster) 692 return ( 693 instances._b(function(items) { 694 items && 695 items.length && 696 attachEvents(events, items, once); 697 }), 698 attachEvents( 699 events, 700 instances.markers(), 701 [void 0, instances], 702 once 703 ) 704 ); 705 attachEvents(events, instances, once); 706 } 707 })); 708 }; 709 }), 710 (self.get = function(index) { 711 return isUndefined(index) 712 ? previousResults.map(function(instance) { 713 return isArray(instance) ? instance.slice() : instance; 714 }) 715 : (index < 0 && (index = previousResults.length + index), 716 isArray(previousResults[index]) 717 ? previousResults[index].slice() 718 : previousResults[index]); 719 }), 720 options && self.map(options); 721 } 722 var gm, 723 loadOptions, 724 services = {}, 725 when = $.when, 726 extend = $.extend, 727 isArray = $.isArray, 728 isFunction = $.isFunction, 729 deferred = $.Deferred; 730 (function() { 731 var script, 732 dfd = deferred(), 733 cbName = "__gmap3"; 734 return ( 735 $.holdReady(!0), 736 ready(function() { 737 (window.google && window.google.maps) || loadOptions === !1 738 ? dfd.resolve() 739 : ((window[cbName] = function() { 740 delete window[cbName], dfd.resolve(); 741 }), 742 (script = document.createElement("script")), 743 (script.type = "text/javascript"), 744 (script.src = 745 "https://maps.googleapis.com/maps/api/js?callback=" + 746 cbName + 747 (loadOptions 748 ? "&" + 749 ("string" == typeof loadOptions 750 ? loadOptions 751 : serialize(loadOptions)) 752 : "")), 753 $("head").append(script)); 754 }), 755 dfd.promise() 756 ); 757 })().then(function() { 758 $.holdReady(!1); 759 }), 760 ($.gmap3 = function(options) { 761 loadOptions = options; 762 }), 763 ($.fn.gmap3 = function(options) { 764 var items = []; 765 return ( 766 (gm = window.google.maps), 767 this.each(function() { 768 var $this = $(this), 769 gmap3 = $this.data("gmap3"); 770 gmap3 || 771 ((gmap3 = new Gmap3($this, options)), $this.data("gmap3", gmap3)), 772 items.push(gmap3); 773 }), 774 new Handler(this, items) 775 ); 776 }); 777})(jQuery, window, document), 778 !(function(a, b) { 779 function c(b) { 780 var c, 781 d = a("<div></div>").css({ width: "100%" }); 782 return b.append(d), (c = b.width() - d.width()), d.remove(), c; 783 } 784 function d(e, f) { 785 var g = e.getBoundingClientRect(), 786 h = g.top, 787 i = g.bottom, 788 j = g.left, 789 k = g.right, 790 l = a.extend({ tolerance: 0, viewport: b }, f), 791 m = !1, 792 n = l.viewport.jquery ? l.viewport : a(l.viewport); 793 n.length || 794 (console.warn( 795 "isInViewport: The viewport selector you have provided matches no element on page." 796 ), 797 console.warn("isInViewport: Defaulting to viewport as window"), 798 (n = a(b))); 799 var o = n.height(), 800 p = n.width(), 801 q = n[0].toString(); 802 if (n[0] !== b && "[object Window]" !== q && "[object DOMWindow]" !== q) { 803 var r = n[0].getBoundingClientRect(); 804 (h -= r.top), 805 (i -= r.top), 806 (j -= r.left), 807 (k -= r.left), 808 (d.scrollBarWidth = d.scrollBarWidth || c(n)), 809 (p -= d.scrollBarWidth); 810 } 811 return ( 812 (l.tolerance = ~~Math.round(parseFloat(l.tolerance))), 813 l.tolerance < 0 && (l.tolerance = o + l.tolerance), 814 0 >= k || j >= p 815 ? m 816 : (m = l.tolerance 817 ? h <= l.tolerance && i >= l.tolerance 818 : i > 0 && o >= h) 819 ); 820 } 821 String.prototype.hasOwnProperty("trim") || 822 (String.prototype.trim = function() { 823 return this.replace(/^\s*(.*?)\s*$/, "$1"); 824 }); 825 var e = function(b) { 826 if ( 827 (1 === arguments.length && "function" == typeof b && (b = [b]), 828 !(b instanceof Array)) 829 ) 830 throw new SyntaxError( 831 "isInViewport: Argument(s) passed to .do/.run should be a function or an array of functions" 832 ); 833 for (var c = 0; c < b.length; c++) 834 if ("function" == typeof b[c]) 835 for (var d = 0; d < this.length; d++) b[c].call(a(this[d])); 836 else 837 console.warn( 838 "isInViewport: Argument(s) passed to .do/.run should be a function or an array of functions" 839 ), 840 console.warn( 841 "isInViewport: Ignoring non-function values in array and moving on" 842 ); 843 return this; 844 }; 845 (a.fn["do"] = function(a) { 846 return ( 847 console.warn( 848 "isInViewport: .do is deprecated as it causes issues in IE and some browsers since it's a reserved word. Use $.fn.run instead i.e., $(el).run(fn)." 849 ), 850 e(a) 851 ); 852 }), 853 (a.fn.run = e); 854 var f = function(b) { 855 if (b) { 856 var c = b.split(","); 857 return ( 858 1 === c.length && isNaN(c[0]) && ((c[1] = c[0]), (c[0] = void 0)), 859 { 860 tolerance: c[0] ? c[0].trim() : void 0, 861 viewport: c[1] ? a(c[1].trim()) : void 0 862 } 863 ); 864 } 865 return {}; 866 }; 867 a.extend(a.expr[":"], {
868 "in-viewport": a.expr.createPseudo 869 ? a.expr.createPseudo(function(a) { 870 return function(b) { 871 return d(b, f(a)); 872 }; 873 }) 874 : function(a, b, c) { 875 return d(a, f(c[3])); 876 } 877 }), 878 (a.fn.isInViewport = function(a) { 879 return this.filter(function(b, c) { 880 return d(c, a); 881 }); 882 }); 883 })(jQuery, window), 884 !(function(root, factory) { 885 "function" == typeof define && define.amd 886 ? define(["jquery"], factory) 887 : factory("object" == typeof exports ? require("jquery") : root.jQuery); 888 })(this, function($) { 889 "use strict"; 890 function parseOptions(str) { 891 var delimiterIndex, 892 option, 893 prop, 894 val, 895 arr, 896 len, 897 i, 898 obj = {}; 899 for ( 900 arr = str 901 .replace(/\s*:\s*/g, ":") 902 .replace(/\s*,\s*/g, ",") 903 .split(","), 904 i = 0, 905 len = arr.length; 906 i < len && 907 ((option = arr[i]), 908 option.search(/^(http|https|ftp):\/\//) === -1 && 909 option.search(":") !== -1); 910 i++ 911 ) 912 (delimiterIndex = option.indexOf(":")), 913 (prop = option.substring(0, delimiterIndex)), 914 (val = option.substring(delimiterIndex + 1)), 915 val || (val = void 0), 916 "string" == typeof val && 917 (val = "true" === val || ("false" !== val && val)), 918 "string" == typeof val && (val = isNaN(val) ? val : +val), 919 (obj[prop] = val); 920 return null == prop && null == val ? str : obj; 921 } 922 function parsePosition(str) { 923 str = "" + str; 924 var len, 925 arg, 926 i, 927 args = str.split(/\s+/), 928 x = "50%", 929 y = "50%"; 930 for (i = 0, len = args.length; i < len; i++) 931 (arg = args[i]), 932 "left" === arg 933 ? (x = "0%") 934 : "right" === arg 935 ? (x = "100%") 936 : "top" === arg 937 ? (y = "0%") 938 : "bottom" === arg 939 ? (y = "100%") 940 : "center" === arg 941 ? 0 === i ? (x = "50%") : (y = "50%") 942 : 0 === i ? (x = arg) : (y = arg); 943 return { x: x, y: y }; 944 } 945 function findPoster(path, callback) { 946 var onLoad = function() { 947 callback(this.src); 948 }; 949 $('<img src="' + path + '.gif">').load(onLoad), 950 $('<img src="' + path + '.jpg">').load(onLoad), 951 $('<img src="' + path + '.jpeg">').load(onLoad), 952 $('<img src="' + path + '.png">').load(onLoad); 953 } 954 function Vide(element, path, options) { 955 if ( 956 ((this.$element = $(element)), 957 "string" == typeof path && (path = parseOptions(path)), 958 options 959 ? "string" == typeof options && (options = parseOptions(options)) 960 : (options = {}), 961 "string" == typeof path) 962 ) 963 path = path.replace(/\.\w*$/, ""); 964 else if ("object" == typeof path) 965 for (var i in path) 966 path.hasOwnProperty(i) && (path[i] = path[i].replace(/\.\w*$/, "")); 967 (this.settings = $.extend({}, DEFAULTS, options)), (this.path = path); 968 try { 969 this.init(); 970 } catch (e) { 971 if (e.message !== NOT_IMPLEMENTED_MSG) throw e; 972 } 973 } 974 var PLUGIN_NAME = "vide", 975 DEFAULTS = { 976 volume: 1, 977 playbackRate: 1, 978 muted: !0, 979 loop: !0, 980 autoplay: !0, 981 position: "50% 50%", 982 posterType: "detect", 983 resizing: !0, 984 bgColor: "transparent", 985 className: "" 986 }, 987 NOT_IMPLEMENTED_MSG = "Not implemented"; 988 (Vide.prototype.init = function() { 989 var $video, 990 $wrapper, 991 vide = this, 992 path = vide.path, 993 poster = path, 994 sources = "", 995 $element = vide.$element, 996 settings = vide.settings, 997 position = parsePosition(settings.position), 998 posterType = settings.posterType; 999 ($wrapper = vide.$wrapper = $("<div>") 1000 .addClass(settings.className) 1001 .css({ 1002 position: "absolute", 1003 "z-index": -1, 1004 top: 0, 1005 left: 0, 1006 bottom: 0, 1007 right: 0, 1008 overflow: "hidden", 1009 "-webkit-background-size": "cover", 1010 "-moz-background-size": "cover", 1011 "-o-background-size": "cover", 1012 "background-size": "cover", 1013 "background-color": settings.bgColor, 1014 "background-repeat": "no-repeat", 1015 "background-position": position.x + " " + position.y 1016 })), 1017 "object" == typeof path && 1018 (path.poster 1019 ? (poster = path.poster) 1020 : path.mp4 1021 ? (poster = path.mp4) 1022 : path.webm 1023 ? (poster = path.webm) 1024 : path.ogv && (poster = path.ogv)), 1025 "detect" === posterType 1026 ? findPoster(poster, function(url) { 1027 $wrapper.css("background-image", "url(" + url + ")"); 1028 }) 1029 : "none" !== posterType && 1030 $wrapper.css( 1031 "background-image", 1032 "url(" + poster + "." + posterType + ")" 1033 ), 1034 "static" === $element.css("position") && 1035 $element.css("position", "relative"),
1036 $element.prepend($wrapper), 1037 "object" == typeof path 1038 ? (path.mp4 && 1039 (sources += 1040 '<source src="' + path.mp4 + '.mp4" type="video/mp4">'), 1041 path.webm && 1042 (sources += 1043 '<source src="' + path.webm + '.webm" type="video/webm">'), 1044 path.ogv && 1045 (sources += 1046 '<source src="' + path.ogv + '.ogv" type="video/ogg">'), 1047 ($video = vide.$video = $("<video>" + sources + "</video>"))) 1048 : ($video = vide.$video = $( 1049 '<video><source src="' + 1050 path + 1051 '.mp4" type="video/mp4"><source src="' + 1052 path + 1053 '.webm" type="video/webm"><source src="' + 1054 path + 1055 '.ogv" type="video/ogg"></video>' 1056 )); 1057 try { 1058 $video.prop({ 1059 autoplay: settings.autoplay, 1060 loop: settings.loop, 1061 volume: settings.volume, 1062 muted: settings.muted, 1063 defaultMuted: settings.muted, 1064 playbackRate: settings.playbackRate, 1065 defaultPlaybackRate: settings.playbackRate 1066 }); 1067 } catch (e) { 1068 throw new Error(NOT_IMPLEMENTED_MSG); 1069 } 1070 $video 1071 .css({ 1072 margin: "auto", 1073 position: "absolute", 1074 "z-index": -1, 1075 top: position.y, 1076 left: position.x, 1077 "-webkit-transform": 1078 "translate(-" + position.x + ", -" + position.y + ")", 1079 "-ms-transform": 1080 "translate(-" + position.x + ", -" + position.y + ")", 1081 "-moz-transform": 1082 "translate(-" + position.x + ", -" + position.y + ")", 1083 transform: "translate(-" + position.x + ", -" + position.y + ")", 1084 visibility: "hidden", 1085 opacity: 0 1086 }) 1087 .one("canplaythrough.vide", function() { 1088 vide.resize(); 1089 }) 1090 .one("playing.vide", function() { 1091 $video.css({ visibility: "visible", opacity: 1 }), 1092 $wrapper.css("background-image", "none"); 1093 }), 1094 $element.on("resize.vide", function() { 1095 settings.resizing && vide.resize(); 1096 }), 1097 $wrapper.append($video); 1098 }), 1099 (Vide.prototype.getVideoObject = function() { 1100 return this.$video[0]; 1101 }), 1102 (Vide.prototype.resize = function() { 1103 if (this.$video) { 1104 var $wrapper = this.$wrapper, 1105 $video = this.$video, 1106 video = $video[0], 1107 videoHeight = video.videoHeight, 1108 videoWidth = video.videoWidth, 1109 wrapperHeight = $wrapper.height(), 1110 wrapperWidth = $wrapper.width(); 1111 wrapperWidth / videoWidth > wrapperHeight / videoHeight
1112 ? $video.css({ width: wrapperWidth + 2, height: "auto" }) 1113 : $video.css({ width: "auto", height: wrapperHeight + 2 }); 1114 } 1115 }), 1116 (Vide.prototype.destroy = function() { 1117 delete $[PLUGIN_NAME].lookup[this.index], 1118 this.$video && this.$video.off(PLUGIN_NAME), 1119 this.$element.off(PLUGIN_NAME).removeData(PLUGIN_NAME), 1120 this.$wrapper.remove(); 1121 }), 1122 ($[PLUGIN_NAME] = { lookup: [] }), 1123 ($.fn[PLUGIN_NAME] = function(path, options) { 1124 var instance; 1125 return ( 1126 this.each(function() { 1127 (instance = $.data(this, PLUGIN_NAME)), 1128 instance && instance.destroy(), 1129 (instance = new Vide(this, path, options)), 1130 (instance.index = $[PLUGIN_NAME].lookup.push(instance) - 1), 1131 $.data(this, PLUGIN_NAME, instance); 1132 }), 1133 this 1134 ); 1135 }), 1136 $(document).ready(function() { 1137 var $window = $(window); 1138 $window.on("resize.vide", function() { 1139 for ( 1140 var instance, len = $[PLUGIN_NAME].lookup.length, i = 0; 1141 i < len; 1142 i++ 1143 ) 1144 (instance = $[PLUGIN_NAME].lookup[i]), 1145 instance && instance.settings.resizing && instance.resize(); 1146 }), 1147 $window.on("unload.vide", function() { 1148 return !1; 1149 }), 1150 $(document) 1151 .find("[data-vide-bg]") 1152 .each(function(i, element) { 1153 var $element = $(element), 1154 options = $element.data("vide-options"), 1155 path = $element.data("vide-bg"); 1156 $element[PLUGIN_NAME](path, options); 1157 }); 1158 }); 1159 }), 1160 !(function(a, b) { 1161 "function" == typeof define && define.amd 1162 ? define(["jquery"], function(c) { 1163 return b(a, c); 1164 }) 1165 : "object" == typeof module && "object" == typeof module.exports 1166 ? (module.exports = b(a, require("jquery"))) 1167 : (a.lity = b(a, a.jQuery || a.Zepto)); 1168 })("undefined" != typeof window ? window : this, function(a, b) { 1169 "use strict"; 1170 function c(a) { 1171 var b = C(); 1172 return ( 1173 O && a.length 1174 ? (a.one(O, b.resolve), setTimeout(b.resolve, 500)) 1175 : b.resolve(), 1176 b.promise() 1177 ); 1178 } 1179 function d(a, c, d) { 1180 if (1 === arguments.length) return b.extend({}, a); 1181 if ("string" == typeof c) { 1182 if ("undefined" == typeof d) 1183 return "undefined" == typeof a[c] ? null : a[c]; 1184 a[c] = d; 1185 } else b.extend(a, c); 1186 return this; 1187 } 1188 function e(a) { 1189 var b = a.indexOf("?"); 1190 b > -1 && (a = a.substr(b + 1)); 1191 for ( 1192 var c, 1193 d = decodeURI(a.split("#")[0]).split("&"), 1194 e = {}, 1195 f = 0, 1196 g = d.length; 1197 f < g; 1198 f++ 1199 ) 1200 d[f] && ((c = d[f].split("=")), (e[c[0]] = c[1])); 1201 return e; 1202 } 1203 function f(a, c) { 1204 if (!c) return a; 1205 if (("string" === b.type(c) && (c = e(c)), a.indexOf("?") > -1)) { 1206 var d = a.split("?"); 1207 (a = d.shift()), (c = b.extend({}, e(d[0]), c)); 1208 } 1209 return a + "?" + b.param(c); 1210 } 1211 function g(a, b) { 1212 var c = a.indexOf("#"); 1213 return -1 === c ? b : (c > 0 && (a = a.substr(c)), b + a); 1214 } 1215 function h(a, b, c, d) { 1216 return ( 1217 b && b.element().addClass("lity-iframe"), 1218 c && (a = f(a, c)), 1219 d && (a = g(d, a)), 1220 '<div class="lity-iframe-container"><iframe frameborder="0" allowfullscreen src="' + 1221 a + 1222 '"/></div>' 1223 ); 1224 } 1225 function i(a) { 1226 return b('<span class="lity-error"/>').append(a); 1227 } 1228 function j(a, c) { 1229 var d = 1230 (c.opener() && c.opener().data("lity-desc")) || 1231 "Image with no description", 1232 e = b('<img src="' + a + '" alt="' + d + '"/>'), 1233 f = C(), 1234 g = function() { 1235 f.reject(i("Failed loading image")); 1236 }; 1237 return ( 1238 e 1239 .on("load", function() {
1240 return 0 === this.naturalWidth ? g() : void f.resolve(e); 1241 }) 1242 .on("error", g), 1243 f.promise() 1244 ); 1245 } 1246 function k(a, c) { 1247 var d, e, f; 1248 try { 1249 d = b(a); 1250 } catch (a) { 1251 return !1; 1252 } 1253 return ( 1254 !!d.length && 1255 ((e = b('<i style="display:none !important"/>')), 1256 (f = d.hasClass("lity-hide")), 1257 c.element().one("lity:remove", function() { 1258 e.before(d).remove(), 1259 f && !d.closest(".lity-content").length && d.addClass("lity-hide"); 1260 }), 1261 d.removeClass("lity-hide").after(e)) 1262 ); 1263 } 1264 function l(a, b) { 1265 var c = K.exec(a); 1266 return ( 1267 !!c && 1268 h( 1269 "https://www.youtube" + 1270 (c[2] || "") + 1271 ".com/embed/" + 1272 c[4] + 1273 "?autoplay=1", 1274 b, 1275 c[5], 1276 a 1277 ) 1278 ); 1279 } 1280 function m(a, b) { 1281 var c = L.exec(a); 1282 return ( 1283 !!c && 1284 h("https://player.vimeo.com/video/" + c[3] + "?autoplay=1", b, c[4], a) 1285 ); 1286 } 1287 function n(a, b) { 1288 var c = N.exec(a); 1289 return ( 1290 !!c && 1291 (0 !== a.indexOf("http") && (a = "https:" + a), 1292 h( 1293 "https://www.facebook.com/plugins/video.php?href=" + 1294 a + 1295 "&autoplay=1", 1296 b, 1297 c[4], 1298 a 1299 )) 1300 ); 1301 } 1302 function o(a, b) { 1303 var c = M.exec(a); 1304 return ( 1305 !!c && 1306 h( 1307 "https://www.google." + c[3] + "/maps?" + c[6], 1308 b, 1309 { output: c[6].indexOf("layer=c") > 0 ? "svembed" : "embed" }, 1310 a 1311 ) 1312 ); 1313 } 1314 function p(a, b) { 1315 return h(a, b); 1316 } 1317 function q() { 1318 return A.documentElement.clientHeight 1319 ? A.documentElement.clientHeight 1320 : Math.round(B.height()); 1321 } 1322 function r(a) { 1323 var b = w(); 1324 b && (27 === a.keyCode && b.close(), 9 === a.keyCode && s(a, b)); 1325 } 1326 function s(a, b) { 1327 var c = b.element().find(H), 1328 d = c.index(A.activeElement); 1329 a.shiftKey && d <= 0 1330 ? (c.get(c.length - 1).focus(), a.preventDefault()) 1331 : a.shiftKey || 1332 d !== c.length - 1 || 1333 (c.get(0).focus(), a.preventDefault()); 1334 } 1335 function t() { 1336 b.each(E, function(a, b) { 1337 b.resize(); 1338 }); 1339 } 1340 function u(a) { 1341 1 === E.unshift(a) && 1342 (D.addClass("lity-active"), B.on({ resize: t, keydown: r })), 1343 b("body > *") 1344 .not(a.element()) 1345 .addClass("lity-hidden") 1346 .each(function() { 1347 var a = b(this); 1348 void 0 === a.data(G) && a.data(G, a.attr(F) || null); 1349 }) 1350 .attr(F, "true"); 1351 } 1352 function v(a) { 1353 var c; 1354 a.element().attr(F, "true"), 1355 1 === E.length && 1356 (D.removeClass("lity-active"), B.off({ resize: t, keydown: r })), 1357 (E = b.grep(E, function(b) { 1358 return a !== b; 1359 })), 1360 (c = E.length ? E[0].element() : b(".lity-hidden")), 1361 c.removeClass("lity-hidden").each(function() { 1362 var a = b(this), 1363 c = a.data(G); 1364 c ? a.attr(F, c) : a.removeAttr(F), a.removeData(G); 1365 }); 1366 } 1367 function w() { 1368 return 0 === E.length ? null : E[0]; 1369 } 1370 function x(a, c, d, e) { 1371 var f, 1372 g = "inline", 1373 h = b.extend({}, d); 1374 return ( 1375 e && h[e] 1376 ? ((f = h[e](a, c)), (g = e)) 1377 : (b.each(["inline", "iframe"], function(a, b) { 1378 delete h[b], (h[b] = d[b]); 1379 }), 1380 b.each(h, function(b, d) { 1381 return ( 1382 !d || 1383 !(!d.test || d.test(a, c)) || 1384 ((f = d(a, c)), !1 !== f ? ((g = b), !1) : void 0) 1385 ); 1386 })), 1387 { handler: g, content: f || "" } 1388 ); 1389 } 1390 function y(a, e, f, g) { 1391 function h(a) { 1392 (k = b(a).css("max-height", q() + "px")), 1393 j.find(".lity-loader").each(function() { 1394 var a = b(this); 1395 c(a).always(function() { 1396 a.remove(); 1397 }); 1398 }), 1399 j 1400 .removeClass("lity-loading") 1401 .find(".lity-content") 1402 .empty() 1403 .append(k), 1404 (m = !0), 1405 k.trigger("lity:ready", [l]); 1406 } 1407 var i, 1408 j, 1409 k, 1410 l = this, 1411 m = !1, 1412 n = !1; 1413 (e = b.extend({}, I, e)), 1414 (j = b(e.template)), 1415 (l.element = function() { 1416 return j; 1417 }), 1418 (l.opener = function() { 1419 return f; 1420 }), 1421 (l.content = function() { 1422 return k; 1423 }), 1424 (l.options = b.proxy(d, l, e)), 1425 (l.handlers = b.proxy(d, l, e.handlers)), 1426 (l.resize = function() { 1427 m && 1428 !n && 1429 k.css("max-height", q() + "px").trigger("lity:resize", [l]); 1430 }), 1431 (l.close = function() { 1432 if (m && !n) { 1433 (n = !0), v(l); 1434 var a = C(); 1435 return (
1436 g && b.contains(j[0], A.activeElement) && g.focus(), 1437 k.trigger("lity:close", [l]), 1438 j.removeClass("lity-opened").addClass("lity-closed"), 1439 c(k.add(j)).always(function() { 1440 k.trigger("lity:remove", [l]), 1441 j.remove(), 1442 (j = void 0), 1443 a.resolve(); 1444 }), 1445 a.promise() 1446 ); 1447 } 1448 }), 1449 (i = x(a, l, e.handlers, e.handler)), 1450 j 1451 .attr(F, "false") 1452 .addClass("lity-loading lity-opened lity-" + i.handler) 1453 .appendTo("body") 1454 .focus() 1455 .on("click", "[data-lity-close]", function(a) { 1456 b(a.target).is("[data-lity-close]") && l.close(); 1457 }) 1458 .trigger("lity:open", [l]), 1459 u(l), 1460 b.when(i.content).always(h); 1461 } 1462 function z(a, c, d) { 1463 a.preventDefault 1464 ? (a.preventDefault(), 1465 (d = b(this)), 1466 (a = d.data("lity-target") || d.attr("href") || d.attr("src"))) 1467 : (d = b(d)); 1468 var e = new y( 1469 a, 1470 b.extend({}, d.data("lity-options") || d.data("lity"), c), 1471 d, 1472 A.activeElement 1473 ); 1474 if (!a.preventDefault) return e; 1475 } 1476 var A = a.document, 1477 B = b(a), 1478 C = b.Deferred, 1479 D = b("html"), 1480 E = [], 1481 F = "aria-hidden", 1482 G = "lity-" + F, 1483 H = 1484 'a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])', 1485 I = { 1486 handler: null, 1487 handlers: { 1488 image: j, 1489 inline: k, 1490 youtube: l, 1491 vimeo: m, 1492 googlemaps: o, 1493 facebookvideo: n, 1494 iframe: p 1495 }, 1496 template: 1497 '<div class="lity" role="dialog" aria-label="Dialog Window (Press escape to close)" tabindex="-1"><div class="lity-wrap" data-lity-close role="document"><div class="lity-loader" aria-hidden="true">Loading...</div><div class="lity-container"><div class="lity-content"></div><button class="lity-close" type="button" aria-label="Close (Press escape to close)" data-lity-close>×</button></div></div></div>' 1498 }, 1499 J = /(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i, 1500 K = /(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i, 1501 L = /(vimeo(pro)?\.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/, 1502 M = /((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i, 1503 N = /(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i, 1504 O = (function() { 1505 var a = A.createElement("div"), 1506 b = { 1507 WebkitTransition: "webkitTransitionEnd", 1508 MozTransition: "transitionend", 1509 OTransition: "oTransitionEnd otransitionend", 1510 transition: "transitionend" 1511 }; 1512 for (var c in b) if (void 0 !== a.style[c]) return b[c]; 1513 return !1; 1514 })(); 1515 return ( 1516 (j.test = function(a) { 1517 return J.test(a); 1518 }), 1519 (z.version = "3.0.0-dev"), 1520 (z.options = b.proxy(d, z, I)), 1521 (z.handlers = b.proxy(d, z, I.handlers)), 1522 (z.current = w), 1523 (z.iframe = h), 1524 b(A).on("click.lity", "[data-lity]", z), 1525 z 1526 ); 1527 }), 1528 (function(root, factory) { 1529 "function" == typeof define && define.amd 1530 ? define([], factory) 1531 : "object" == typeof exports 1532 ? (module.exports = factory()) 1533 : (root.salvattore = factory()); 1534 })(this, function() { 1535 window.matchMedia || 1536 (window.matchMedia = (function() { 1537 "use strict"; 1538 var styleMedia = window.styleMedia || window.media; 1539 if (!styleMedia) { 1540 var style = document.createElement("style"), 1541 script = document.getElementsByTagName("script")[0], 1542 info = null; 1543 (style.type = "text/css"), 1544 (style.id = "matchmediajs-test"), 1545 script.parentNode.insertBefore(style, script), 1546 (info = 1547 ("getComputedStyle" in window && 1548 window.getComputedStyle(style, null)) || 1549 style.currentStyle), 1550 (styleMedia = { 1551 matchMedium: function(media) { 1552 var text = 1553 "@media " + media + "{ #matchmediajs-test { width: 1px; } }"; 1554 return ( 1555 style.styleSheet 1556 ? (style.styleSheet.cssText = text) 1557 : (style.textContent = text), 1558 "1px" === info.width 1559 ); 1560 } 1561 }); 1562 } 1563 return function(media) { 1564 return { 1565 matches: styleMedia.matchMedium(media || "all"), 1566 media: media || "all" 1567 }; 1568 }; 1569 })()), 1570 (function() { 1571 "use strict"; 1572 if (window.matchMedia && window.matchMedia("all").addListener) 1573 return !1; 1574 var localMatchMedia = window.matchMedia, 1575 hasMediaQueries = localMatchMedia("only all").matches, 1576 isListening = !1, 1577 timeoutID = 0, 1578 queries = [], 1579 handleChange = function(evt) { 1580 clearTimeout(timeoutID), 1581 (timeoutID = setTimeout(function() { 1582 for (var i = 0, il = queries.length; i < il; i++) { 1583 var mql = queries[i].mql, 1584 listeners = queries[i].listeners || [], 1585 matches = localMatchMedia(mql.media).matches; 1586 if (matches !== mql.matches) { 1587 mql.matches = matches; 1588 for (var j = 0, jl = listeners.length; j < jl; j++) 1589 listeners[j].call(window, mql); 1590 } 1591 } 1592 }, 30)); 1593 }; 1594 window.matchMedia = function(media) { 1595 var mql = localMatchMedia(media), 1596 listeners = [], 1597 index = 0; 1598 return ( 1599 (mql.addListener = function(listener) { 1600 hasMediaQueries && 1601 (isListening || 1602 ((isListening = !0), 1603 window.addEventListener("resize", handleChange, !0)), 1604 0 === index && 1605 (index = queries.push({ mql: mql, listeners: listeners })), 1606 listeners.push(listener)); 1607 }), 1608 (mql.removeListener = function(listener) { 1609 for (var i = 0, il = listeners.length; i < il; i++) 1610 listeners[i] === listener && listeners.splice(i, 1); 1611 }), 1612 mql 1613 ); 1614 }; 1615 })(), 1616 (function() { 1617 "use strict"; 1618 for ( 1619 var lastTime = 0, vendors = ["ms", "moz", "webkit", "o"], x = 0; 1620 x < vendors.length && !window.requestAnimationFrame; 1621 ++x 1622 ) 1623 (window.requestAnimationFrame = 1624 window[vendors[x] + "RequestAnimationFrame"]), 1625 (window.cancelAnimationFrame = 1626 window[vendors[x] + "CancelAnimationFrame"] || 1627 window[vendors[x] + "CancelRequestAnimationFrame"]); 1628 window.requestAnimationFrame || 1629 (window.requestAnimationFrame = function(callback, element) { 1630 var currTime = new Date().getTime(), 1631 timeToCall = Math.max(0, 16 - (currTime - lastTime)), 1632 id = window.setTimeout(function() { 1633 callback(currTime + timeToCall); 1634 }, timeToCall); 1635 return (lastTime = currTime + timeToCall), id; 1636 }), 1637 window.cancelAnimationFrame || 1638 (window.cancelAnimationFrame = function(id) { 1639 clearTimeout(id); 1640 }); 1641 })(), 1642 "function" != typeof window.CustomEvent && 1643 !(function() { 1644 "use strict"; 1645 function CustomEvent(event, params) { 1646 params = params || { bubbles: !1, cancelable: !1, detail: void 0 }; 1647 var evt = document.createEvent("CustomEvent"); 1648 return ( 1649 evt.initCustomEvent( 1650 event, 1651 params.bubbles, 1652 params.cancelable, 1653 params.detail 1654 ), 1655 evt 1656 ); 1657 } 1658 (CustomEvent.prototype = window.Event.prototype), 1659 (window.CustomEvent = CustomEvent); 1660 })(); 1661 var salvattore = (function(global, document, undefined) { 1662 "use strict"; 1663 var self = {}, 1664 grids = [], 1665 mediaRules = [], 1666 mediaQueries = [], 1667 add_to_dataset = function(element, key, value) { 1668 element.dataset 1669 ? (element.dataset[key] = value) 1670 : element.setAttribute("data-" + key, value); 1671 }; 1672 return ( 1673 (self.obtainGridSettings = function(element) { 1674 var computedStyle = global.getComputedStyle(element, ":before"), 1675 content = computedStyle.getPropertyValue("content").slice(1, -1), 1676 matchResult = content.match(/^\s*(\d+)(?:\s?\.(.+))?\s*$/), 1677 numberOfColumns = 1, 1678 columnClasses = []; 1679 return ( 1680 matchResult 1681 ? ((numberOfColumns = matchResult[1]), 1682 (columnClasses = matchResult[2]), 1683 (columnClasses = columnClasses 1684 ? columnClasses.split(".") 1685 : ["column"])) 1686 : ((matchResult = content.match(/^\s*\.(.+)\s+(\d+)\s*$/)), 1687 matchResult && 1688 ((columnClasses = matchResult[1]), 1689 (numberOfColumns = matchResult[2]), 1690 numberOfColumns && 1691 (numberOfColumns = numberOfColumns.split(".")))), 1692 { numberOfColumns: numberOfColumns, columnClasses: columnClasses } 1693 ); 1694 }), 1695 (self.addColumns = function(grid, items) { 1696 for ( 1697 var selector, 1698 settings = self.obtainGridSettings(grid), 1699 numberOfColumns = settings.numberOfColumns, 1700 columnClasses = settings.columnClasses, 1701 columnsItems = new Array(+numberOfColumns), 1702 columnsFragment = document.createDocumentFragment(), 1703 i = numberOfColumns; 1704 0 !== i--; 1705 1706 ) 1707 (selector = 1708 "[data-columns] > *:nth-child(" + 1709 numberOfColumns + 1710 "n-" + 1711 i + 1712 ")"), 1713 columnsItems.push(items.querySelectorAll(selector));
1714 columnsItems.forEach(function(rows) { 1715 var column = document.createElement("div"), 1716 rowsFragment = document.createDocumentFragment(); 1717 (column.className = columnClasses.join(" ")), 1718 Array.prototype.forEach.call(rows, function(row) { 1719 rowsFragment.appendChild(row); 1720 }), 1721 column.appendChild(rowsFragment), 1722 columnsFragment.appendChild(column); 1723 }), 1724 grid.appendChild(columnsFragment), 1725 add_to_dataset(grid, "columns", numberOfColumns); 1726 }), 1727 (self.removeColumns = function(grid) { 1728 var range = document.createRange(); 1729 range.selectNodeContents(grid); 1730 var columns = Array.prototype.filter.call( 1731 range.extractContents().childNodes, 1732 function(node) { 1733 return node instanceof global.HTMLElement; 1734 } 1735 ), 1736 numberOfColumns = columns.length, 1737 numberOfRowsInFirstColumn = columns[0].childNodes.length, 1738 sortedRows = new Array(numberOfRowsInFirstColumn * numberOfColumns); 1739 Array.prototype.forEach.call(columns, function(column, columnIndex) { 1740 Array.prototype.forEach.call(column.children, function( 1741 row, 1742 rowIndex 1743 ) { 1744 sortedRows[rowIndex * numberOfColumns + columnIndex] = row; 1745 }); 1746 }); 1747 var container = document.createElement("div"); 1748 return ( 1749 add_to_dataset(container, "columns", 0), 1750 sortedRows 1751 .filter(function(child) { 1752 return !!child; 1753 }) 1754 .forEach(function(child) { 1755 container.appendChild(child); 1756 }), 1757 container 1758 ); 1759 }), 1760 (self.recreateColumns = function(grid) { 1761 global.requestAnimationFrame(function() { 1762 self.addColumns(grid, self.removeColumns(grid)); 1763 var columnsChange = new CustomEvent("columnsChange"); 1764 grid.dispatchEvent(columnsChange); 1765 }); 1766 }), 1767 (self.mediaQueryChange = function(mql) { 1768 mql.matches && 1769 Array.prototype.forEach.call(grids, self.recreateColumns); 1770 }), 1771 (self.getCSSRules = function(stylesheet) { 1772 var cssRules; 1773 try { 1774 cssRules = stylesheet.sheet.cssRules || stylesheet.sheet.rules; 1775 } catch (e) { 1776 return []; 1777 } 1778 return cssRules || []; 1779 }), 1780 (self.getStylesheets = function() { 1781 var inlineStyleBlocks = Array.prototype.slice.call( 1782 document.querySelectorAll("style") 1783 ); 1784 return ( 1785 inlineStyleBlocks.forEach(function(stylesheet, idx) { 1786 "text/css" !== stylesheet.type && 1787 "" !== stylesheet.type && 1788 inlineStyleBlocks.splice(idx, 1); 1789 }), 1790 Array.prototype.concat.call( 1791 inlineStyleBlocks, 1792 Array.prototype.slice.call( 1793 document.querySelectorAll("link[rel='stylesheet']") 1794 ) 1795 ) 1796 ); 1797 }), 1798 (self.mediaRuleHasColumnsSelector = function(rules) { 1799 var i, rule; 1800 try { 1801 i = rules.length; 1802 } catch (e) { 1803 i = 0; 1804 } 1805 for (; i--; ) 1806 if ( 1807 ((rule = rules[i]), 1808 rule.selectorText && 1809 rule.selectorText.match(/\[data-columns\](.*)::?before$/)) 1810 ) 1811 return !0; 1812 return !1; 1813 }), 1814 (self.scanMediaQueries = function() { 1815 var newMediaRules = []; 1816 if (global.matchMedia) { 1817 self.getStylesheets().forEach(function(stylesheet) { 1818 Array.prototype.forEach.call( 1819 self.getCSSRules(stylesheet), 1820 function(rule) { 1821 try { 1822 rule.media && 1823 rule.cssRules && 1824 self.mediaRuleHasColumnsSelector(rule.cssRules) && 1825 newMediaRules.push(rule); 1826 } catch (e) {} 1827 } 1828 ); 1829 }); 1830 var oldRules = mediaRules.filter(function(el) { 1831 return newMediaRules.indexOf(el) === -1; 1832 }); 1833 mediaQueries 1834 .filter(function(el) { 1835 return oldRules.indexOf(el.rule) !== -1; 1836 }) 1837 .forEach(function(el) { 1838 el.mql.removeListener(self.mediaQueryChange); 1839 }), 1840 (mediaQueries = mediaQueries.filter(function(el) { 1841 return oldRules.indexOf(el.rule) === -1; 1842 })), 1843 newMediaRules 1844 .filter(function(el) { 1845 return mediaRules.indexOf(el) == -1; 1846 }) 1847 .forEach(function(rule) { 1848 var mql = global.matchMedia(rule.media.mediaText); 1849 mql.addListener(self.mediaQueryChange), 1850 mediaQueries.push({ rule: rule, mql: mql }); 1851 }), 1852 (mediaRules.length = 0), 1853 (mediaRules = newMediaRules); 1854 } 1855 }), 1856 (self.rescanMediaQueries = function() { 1857 self.scanMediaQueries(), 1858 Array.prototype.forEach.call(grids, self.recreateColumns); 1859 }), 1860 (self.nextElementColumnIndex = function(grid, fragments) { 1861 var child, 1862 currentRowCount, 1863 i, 1864 children = grid.children, 1865 m = children.length, 1866 lowestRowCount = 0, 1867 index = 0; 1868 for (i = 0; i < m; i++) 1869 (child = children[i]), 1870 (currentRowCount = 1871 child.children.length + 1872 (fragments[i].children || fragments[i].childNodes).length), 1873 0 === lowestRowCount && (lowestRowCount = currentRowCount), 1874 currentRowCount < lowestRowCount && 1875 ((index = i), (lowestRowCount = currentRowCount)); 1876 return index; 1877 }), 1878 (self.createFragmentsList = function(quantity) { 1879 for (var fragments = new Array(quantity), i = 0; i !== quantity; ) 1880 (fragments[i] = document.createDocumentFragment()), i++; 1881 return fragments; 1882 }), 1883 (self.appendElements = function(grid, elements) { 1884 var columns = grid.children, 1885 numberOfColumns = columns.length, 1886 fragments = self.createFragmentsList(numberOfColumns); 1887 Array.prototype.forEach.call(elements, function(element) {
1888 var columnIndex = self.nextElementColumnIndex(grid, fragments); 1889 fragments[columnIndex].appendChild(element); 1890 }), 1891 Array.prototype.forEach.call(columns, function(column, index) { 1892 column.appendChild(fragments[index]); 1893 }); 1894 }), 1895 (self.prependElements = function(grid, elements) { 1896 var columns = grid.children, 1897 numberOfColumns = columns.length, 1898 fragments = self.createFragmentsList(numberOfColumns), 1899 columnIndex = numberOfColumns - 1; 1900 elements.forEach(function(element) { 1901 var fragment = fragments[columnIndex]; 1902 fragment.insertBefore(element, fragment.firstChild), 1903 0 === columnIndex 1904 ? (columnIndex = numberOfColumns - 1) 1905 : columnIndex--; 1906 }), 1907 Array.prototype.forEach.call(columns, function(column, index) { 1908 column.insertBefore(fragments[index], column.firstChild); 1909 }); 1910 for ( 1911 var fragment = document.createDocumentFragment(), 1912 numberOfColumnsToExtract = elements.length % numberOfColumns; 1913 0 !== numberOfColumnsToExtract--; 1914 1915 ) 1916 fragment.appendChild(grid.lastChild); 1917 grid.insertBefore(fragment, grid.firstChild); 1918 }), 1919 (self.registerGrid = function(grid) { 1920 if ("none" !== global.getComputedStyle(grid).display) { 1921 var range = document.createRange(); 1922 range.selectNodeContents(grid); 1923 var items = document.createElement("div"); 1924 items.appendChild(range.extractContents()), 1925 add_to_dataset(items, "columns", 0), 1926 self.addColumns(grid, items), 1927 grids.push(grid); 1928 } 1929 }), 1930 (self.init = function() { 1931 var css = document.createElement("style"); 1932 (css.innerHTML = 1933 "[data-columns]::before{display:block;visibility:hidden;position:absolute;font-size:1px;}"), 1934 document.head.appendChild(css); 1935 var gridElements = document.querySelectorAll("[data-columns]"); 1936 Array.prototype.forEach.call(gridElements, self.registerGrid), 1937 self.scanMediaQueries(); 1938 }), 1939 self.init(), 1940 { 1941 appendElements: self.appendElements, 1942 prependElements: self.prependElements, 1943 registerGrid: self.registerGrid, 1944 recreateColumns: self.recreateColumns, 1945 rescanMediaQueries: self.rescanMediaQueries, 1946 init: self.init, 1947 append_elements: self.appendElements, 1948 prepend_elements: self.prependElements, 1949 register_grid: self.registerGrid, 1950 recreate_columns: self.recreateColumns, 1951 rescan_media_queries: self.rescanMediaQueries 1952 } 1953 ); 1954 })(window, window.document); 1955 return salvattore; 1956 }), 1957 !(function(a) { 1958 "use strict"; 1959 "function" == typeof define && define.amd 1960 ? define(["jquery"], a) 1961 : "undefined" != typeof exports 1962 ? (module.exports = a(require("jquery"))) 1963 : a(jQuery); 1964 })(function(a) { 1965 "use strict"; 1966 var b = window.Slick || {}; 1967 (b = (function() { 1968 function c(c, d) { 1969 var f, 1970 e = this; 1971 (e.defaults = { 1972 accessibility: !0, 1973 adaptiveHeight: !1, 1974 appendArrows: a(c), 1975 appendDots: a(c), 1976 arrows: !0, 1977 asNavFor: null, 1978 prevArrow: 1979 '<button type="button" data-role="none" class="slick-prev" aria-label="Previous" tabindex="0" role="button">Previous</button>', 1980 nextArrow: 1981 '<button type="button" data-role="none" class="slick-next" aria-label="Next" tabindex="0" role="button">Next</button>', 1982 autoplay: !1, 1983 autoplaySpeed: 3e3, 1984 centerMode: !1, 1985 centerPadding: "50px", 1986 cssEase: "ease", 1987 customPaging: function(b, c) { 1988 return a( 1989 '<button type="button" data-role="none" role="button" tabindex="0" />' 1990 ).text(c + 1); 1991 }, 1992 dots: !1, 1993 dotsClass: "slick-dots", 1994 draggable: !0, 1995 easing: "linear", 1996 edgeFriction: 0.35, 1997 fade: !1, 1998 focusOnSelect: !1, 1999 infinite: !0, 2000 initialSlide: 0, 2001 lazyLoad: "ondemand", 2002 mobileFirst: !1, 2003 pauseOnHover: !0, 2004 pauseOnFocus: !0, 2005 pauseOnDotsHover: !1, 2006 respondTo: "window", 2007 responsive: null, 2008 rows: 1, 2009 rtl: !1, 2010 slide: "", 2011 slidesPerRow: 1, 2012 slidesToShow: 1, 2013 slidesToScroll: 1, 2014 speed: 500, 2015 swipe: !0, 2016 swipeToSlide: !1, 2017 touchMove: !0, 2018 touchThreshold: 5, 2019 useCSS: !0, 2020 useTransform: !0, 2021 variableWidth: !1, 2022 vertical: !1, 2023 verticalSwiping: !1, 2024 waitForAnimate: !0, 2025 zIndex: 1e3 2026 }), 2027 (e.initials = { 2028 animating: !1, 2029 dragging: !1, 2030 autoPlayTimer: null, 2031 currentDirection: 0, 2032 currentLeft: null, 2033 currentSlide: 0, 2034 direction: 1, 2035 $dots: null, 2036 listWidth: null, 2037 listHeight: null, 2038 loadIndex: 0, 2039 $nextArrow: null, 2040 $prevArrow: null, 2041 slideCount: null, 2042 slideWidth: null, 2043 $slideTrack: null, 2044 $slides: null, 2045 sliding: !1, 2046 slideOffset: 0, 2047 swipeLeft: null, 2048 $list: null, 2049 touchObject: {}, 2050 transformsEnabled: !1, 2051 unslicked: !1 2052 }), 2053 a.extend(e, e.initials), 2054 (e.activeBreakpoint = null),
2055 (e.animType = null), 2056 (e.animProp = null), 2057 (e.breakpoints = []), 2058 (e.breakpointSettings = []), 2059 (e.cssTransitions = !1), 2060 (e.focussed = !1), 2061 (e.interrupted = !1), 2062 (e.hidden = "hidden"), 2063 (e.paused = !0), 2064 (e.positionProp = null), 2065 (e.respondTo = null), 2066 (e.rowCount = 1), 2067 (e.shouldClick = !0), 2068 (e.$slider = a(c)), 2069 (e.$slidesCache = null), 2070 (e.transformType = null), 2071 (e.transitionType = null), 2072 (e.visibilityChange = "visibilitychange"), 2073 (e.windowWidth = 0), 2074 (e.windowTimer = null), 2075 (f = a(c).data("slick") || {}), 2076 (e.options = a.extend({}, e.defaults, d, f)), 2077 (e.currentSlide = e.options.initialSlide), 2078 (e.originalSettings = e.options), 2079 "undefined" != typeof document.mozHidden 2080 ? ((e.hidden = "mozHidden"), 2081 (e.visibilityChange = "mozvisibilitychange")) 2082 : "undefined" != typeof document.webkitHidden && 2083 ((e.hidden = "webkitHidden"), 2084 (e.visibilityChange = "webkitvisibilitychange")), 2085 (e.autoPlay = a.proxy(e.autoPlay, e)), 2086 (e.autoPlayClear = a.proxy(e.autoPlayClear, e)), 2087 (e.autoPlayIterator = a.proxy(e.autoPlayIterator, e)), 2088 (e.changeSlide = a.proxy(e.changeSlide, e)), 2089 (e.clickHandler = a.proxy(e.clickHandler, e)), 2090 (e.selectHandler = a.proxy(e.selectHandler, e)), 2091 (e.setPosition = a.proxy(e.setPosition, e)), 2092 (e.swipeHandler = a.proxy(e.swipeHandler, e)), 2093 (e.dragHandler = a.proxy(e.dragHandler, e)), 2094 (e.keyHandler = a.proxy(e.keyHandler, e)), 2095 (e.instanceUid = b++), 2096 (e.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/), 2097 e.registerBreakpoints(), 2098 e.init(!0); 2099 } 2100 var b = 0; 2101 return c; 2102 })()), 2103 (b.prototype.activateADA = function() { 2104 var a = this; 2105 a.$slideTrack 2106 .find(".slick-active") 2107 .attr({ "aria-hidden": "false" }) 2108 .find("a, input, button, select") 2109 .attr({ tabindex: "0" }); 2110 }), 2111 (b.prototype.addSlide = b.prototype.slickAdd = function(b, c, d) { 2112 var e = this; 2113 if ("boolean" == typeof c) (d = c), (c = null); 2114 else if (0 > c || c >= e.slideCount) return !1; 2115 e.unload(), 2116 "number" == typeof c 2117 ? 0 === c && 0 === e.$slides.length 2118 ? a(b).appendTo(e.$slideTrack) 2119 : d 2120 ? a(b).insertBefore(e.$slides.eq(c)) 2121 : a(b).insertAfter(e.$slides.eq(c)) 2122 : d === !0 2123 ? a(b).prependTo(e.$slideTrack) 2124 : a(b).appendTo(e.$slideTrack), 2125 (e.$slides = e.$slideTrack.children(this.options.slide)), 2126 e.$slideTrack.children(this.options.slide).detach(), 2127 e.$slideTrack.append(e.$slides), 2128 e.$slides.each(function(b, c) { 2129 a(c).attr("data-slick-index", b); 2130 }), 2131 (e.$slidesCache = e.$slides), 2132 e.reinit(); 2133 }), 2134 (b.prototype.animateHeight = function() { 2135 var a = this; 2136 if ( 2137 1 === a.options.slidesToShow && 2138 a.options.adaptiveHeight === !0 && 2139 a.options.vertical === !1 2140 ) { 2141 var b = a.$slides.eq(a.currentSlide).outerHeight(!0); 2142 a.$list.animate({ height: b }, a.options.speed); 2143 } 2144 }), 2145 (b.prototype.animateSlide = function(b, c) { 2146 var d = {}, 2147 e = this; 2148 e.animateHeight(), 2149 e.options.rtl === !0 && e.options.vertical === !1 && (b = -b), 2150 e.transformsEnabled === !1 2151 ? e.options.vertical === !1 2152 ? e.$slideTrack.animate( 2153 { left: b }, 2154 e.options.speed, 2155 e.options.easing, 2156 c 2157 ) 2158 : e.$slideTrack.animate( 2159 { top: b }, 2160 e.options.speed, 2161 e.options.easing, 2162 c 2163 ) 2164 : e.cssTransitions === !1 2165 ? (e.options.rtl === !0 && (e.currentLeft = -e.currentLeft), 2166 a({ animStart: e.currentLeft }).animate( 2167 { animStart: b }, 2168 { 2169 duration: e.options.speed, 2170 easing: e.options.easing, 2171 step: function(a) { 2172 (a = Math.ceil(a)), 2173 e.options.vertical === !1 2174 ? ((d[e.animType] = "translate(" + a + "px, 0px)"), 2175 e.$slideTrack.css(d)) 2176 : ((d[e.animType] = "translate(0px," + a + "px)"), 2177 e.$slideTrack.css(d)); 2178 }, 2179 complete: function() { 2180 c && c.call(); 2181 } 2182 } 2183 )) 2184 : (e.applyTransition(),
2185 (b = Math.ceil(b)), 2186 e.options.vertical === !1 2187 ? (d[e.animType] = "translate3d(" + b + "px, 0px, 0px)") 2188 : (d[e.animType] = "translate3d(0px," + b + "px, 0px)"), 2189 e.$slideTrack.css(d), 2190 c && 2191 setTimeout(function() { 2192 e.disableTransition(), c.call(); 2193 }, e.options.speed)); 2194 }), 2195 (b.prototype.getNavTarget = function() { 2196 var b = this, 2197 c = b.options.asNavFor; 2198 return c && null !== c && (c = a(c).not(b.$slider)), c; 2199 }), 2200 (b.prototype.asNavFor = function(b) { 2201 var c = this, 2202 d = c.getNavTarget(); 2203 null !== d && 2204 "object" == typeof d && 2205 d.each(function() { 2206 var c = a(this).slick("getSlick"); 2207 c.unslicked || c.slideHandler(b, !0); 2208 }); 2209 }), 2210 (b.prototype.applyTransition = function(a) { 2211 var b = this, 2212 c = {}; 2213 b.options.fade === !1 2214 ? (c[b.transitionType] = 2215 b.transformType + 2216 " " + 2217 b.options.speed + 2218 "ms " + 2219 b.options.cssEase) 2220 : (c[b.transitionType] = 2221 "opacity " + b.options.speed + "ms " + b.options.cssEase), 2222 b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c); 2223 }), 2224 (b.prototype.autoPlay = function() { 2225 var a = this; 2226 a.autoPlayClear(), 2227 a.slideCount > a.options.slidesToShow && 2228 (a.autoPlayTimer = setInterval( 2229 a.autoPlayIterator, 2230 a.options.autoplaySpeed 2231 )); 2232 }), 2233 (b.prototype.autoPlayClear = function() { 2234 var a = this; 2235 a.autoPlayTimer && clearInterval(a.autoPlayTimer); 2236 }), 2237 (b.prototype.autoPlayIterator = function() { 2238 var a = this, 2239 b = a.currentSlide + a.options.slidesToScroll; 2240 a.paused || 2241 a.interrupted || 2242 a.focussed || 2243 (a.options.infinite === !1 && 2244 (1 === a.direction && a.currentSlide + 1 === a.slideCount - 1 2245 ? (a.direction = 0) 2246 : 0 === a.direction && 2247 ((b = a.currentSlide - a.options.slidesToScroll), 2248 a.currentSlide - 1 === 0 && (a.direction = 1))), 2249 a.slideHandler(b)); 2250 }), 2251 (b.prototype.buildArrows = function() { 2252 var b = this; 2253 b.options.arrows === !0 && 2254 ((b.$prevArrow = a(b.options.prevArrow).addClass("slick-arrow")), 2255 (b.$nextArrow = a(b.options.nextArrow).addClass("slick-arrow")), 2256 b.slideCount > b.options.slidesToShow 2257 ? (b.$prevArrow 2258 .removeClass("slick-hidden") 2259 .removeAttr("aria-hidden tabindex"), 2260 b.$nextArrow 2261 .removeClass("slick-hidden") 2262 .removeAttr("aria-hidden tabindex"), 2263 b.htmlExpr.test(b.options.prevArrow) && 2264 b.$prevArrow.prependTo(b.options.appendArrows), 2265 b.htmlExpr.test(b.options.nextArrow) && 2266 b.$nextArrow.appendTo(b.options.appendArrows), 2267 b.options.infinite !== !0 && 2268 b.$prevArrow 2269 .addClass("slick-disabled") 2270 .attr("aria-disabled", "true")) 2271 : b.$prevArrow 2272 .add(b.$nextArrow) 2273 .addClass("slick-hidden") 2274 .attr({ "aria-disabled": "true", tabindex: "-1" })); 2275 }), 2276 (b.prototype.buildDots = function() { 2277 var c, 2278 d, 2279 b = this; 2280 if (b.options.dots === !0 && b.slideCount > b.options.slidesToShow) { 2281 for ( 2282 b.$slider.addClass("slick-dotted"), 2283 d = a("<ul />").addClass(b.options.dotsClass), 2284 c = 0; 2285 c <= b.getDotCount(); 2286 c += 1 2287 ) 2288 d.append( 2289 a("<li />").append(b.options.customPaging.call(this, b, c)) 2290 ); 2291 (b.$dots = d.appendTo(b.options.appendDots)), 2292 b.$dots 2293 .find("li") 2294 .first() 2295 .addClass("slick-active") 2296 .attr("aria-hidden", "false"); 2297 } 2298 }), 2299 (b.prototype.buildOut = function() { 2300 var b = this; 2301 (b.$slides = b.$slider 2302 .children(b.options.slide + ":not(.slick-cloned)") 2303 .addClass("slick-slide")), 2304 (b.slideCount = b.$slides.length), 2305 b.$slides.each(function(b, c) { 2306 a(c) 2307 .attr("data-slick-index", b) 2308 .data("originalStyling", a(c).attr("style") || ""); 2309 }), 2310 b.$slider.addClass("slick-slider"), 2311 (b.$slideTrack = 2312 0 === b.slideCount 2313 ? a('<div class="slick-track"/>').appendTo(b.$slider) 2314 : b.$slides.wrapAll('<div class="slick-track"/>').parent()), 2315 (b.$list = b.$slideTrack 2316 .wrap('<div aria-live="polite" class="slick-list"/>') 2317 .parent()), 2318 b.$slideTrack.css("opacity", 0), 2319 (b.options.centerMode === !0 || b.options.swipeToSlide === !0) && 2320 (b.options.slidesToScroll = 1), 2321 a("img[data-lazy]", b.$slider) 2322 .not("[src]") 2323 .addClass("slick-loading"), 2324 b.setupInfinite(), 2325 b.buildArrows(), 2326 b.buildDots(), 2327 b.updateDots(), 2328 b.setSlideClasses( 2329 "number" == typeof b.currentSlide ? b.currentSlide : 0 2330 ), 2331 b.options.draggable === !0 && b.$list.addClass("draggable"); 2332 }), 2333 (b.prototype.buildRows = function() { 2334 var b, 2335 c, 2336 d, 2337 e, 2338 f, 2339 g, 2340 h, 2341 a = this; 2342 if ( 2343 ((e = document.createDocumentFragment()), 2344 (g = a.$slider.children()), 2345 a.options.rows > 1) 2346 ) { 2347 for ( 2348 h = a.options.slidesPerRow * a.options.rows,
2349 f = Math.ceil(g.length / h), 2350 b = 0; 2351 f > b; 2352 b++ 2353 ) { 2354 var i = document.createElement("div"); 2355 for (c = 0; c < a.options.rows; c++) { 2356 var j = document.createElement("div"); 2357 for (d = 0; d < a.options.slidesPerRow; d++) { 2358 var k = b * h + (c * a.options.slidesPerRow + d); 2359 g.get(k) && j.appendChild(g.get(k)); 2360 } 2361 i.appendChild(j); 2362 } 2363 e.appendChild(i); 2364 } 2365 a.$slider.empty().append(e), 2366 a.$slider 2367 .children() 2368 .children() 2369 .children() 2370 .css({ 2371 width: 100 / a.options.slidesPerRow + "%", 2372 display: "inline-block" 2373 }); 2374 } 2375 }), 2376 (b.prototype.checkResponsive = function(b, c) { 2377 var e, 2378 f, 2379 g, 2380 d = this, 2381 h = !1, 2382 i = d.$slider.width(), 2383 j = window.innerWidth || a(window).width(); 2384 if ( 2385 ("window" === d.respondTo 2386 ? (g = j) 2387 : "slider" === d.respondTo 2388 ? (g = i) 2389 : "min" === d.respondTo && (g = Math.min(j, i)), 2390 d.options.responsive && 2391 d.options.responsive.length && 2392 null !== d.options.responsive) 2393 ) { 2394 f = null; 2395 for (e in d.breakpoints) 2396 d.breakpoints.hasOwnProperty(e) && 2397 (d.originalSettings.mobileFirst === !1 2398 ? g < d.breakpoints[e] && (f = d.breakpoints[e]) 2399 : g > d.breakpoints[e] && (f = d.breakpoints[e])); 2400 null !== f 2401 ? null !== d.activeBreakpoint 2402 ? (f !== d.activeBreakpoint || c) && 2403 ((d.activeBreakpoint = f), 2404 "unslick" === d.breakpointSettings[f] 2405 ? d.unslick(f) 2406 : ((d.options = a.extend( 2407 {}, 2408 d.originalSettings, 2409 d.breakpointSettings[f] 2410 )), 2411 b === !0 && (d.currentSlide = d.options.initialSlide), 2412 d.refresh(b)), 2413 (h = f)) 2414 : ((d.activeBreakpoint = f), 2415 "unslick" === d.breakpointSettings[f] 2416 ? d.unslick(f) 2417 : ((d.options = a.extend( 2418 {}, 2419 d.originalSettings, 2420 d.breakpointSettings[f] 2421 )), 2422 b === !0 && (d.currentSlide = d.options.initialSlide), 2423 d.refresh(b)), 2424 (h = f)) 2425 : null !== d.activeBreakpoint && 2426 ((d.activeBreakpoint = null), 2427 (d.options = d.originalSettings), 2428 b === !0 && (d.currentSlide = d.options.initialSlide), 2429 d.refresh(b), 2430 (h = f)), 2431 b || h === !1 || d.$slider.trigger("breakpoint", [d, h]); 2432 } 2433 }), 2434 (b.prototype.changeSlide = function(b, c) { 2435 var f, 2436 g, 2437 h, 2438 d = this, 2439 e = a(b.currentTarget); 2440 switch ((e.is("a") && b.preventDefault(), 2441 e.is("li") || (e = e.closest("li")), 2442 (h = d.slideCount % d.options.slidesToScroll !== 0), 2443 (f = h 2444 ? 0 2445 : (d.slideCount - d.currentSlide) % d.options.slidesToScroll), 2446 b.data.message)) { 2447 case "previous": 2448 (g = 2449 0 === f ? d.options.slidesToScroll : d.options.slidesToShow - f), 2450 d.slideCount > d.options.slidesToShow && 2451 d.slideHandler(d.currentSlide - g, !1, c); 2452 break; 2453 case "next": 2454 (g = 0 === f ? d.options.slidesToScroll : f), 2455 d.slideCount > d.options.slidesToShow && 2456 d.slideHandler(d.currentSlide + g, !1, c); 2457 break; 2458 case "index": 2459 var i = 2460 0 === b.data.index 2461 ? 0 2462 : b.data.index || e.index() * d.options.slidesToScroll; 2463 d.slideHandler(d.checkNavigable(i), !1, c), 2464 e.children().trigger("focus"); 2465 break; 2466 default: 2467 return; 2468 } 2469 }), 2470 (b.prototype.checkNavigable = function(a) { 2471 var c, 2472 d, 2473 b = this; 2474 if (((c = b.getNavigableIndexes()), (d = 0), a > c[c.length - 1])) 2475 a = c[c.length - 1]; 2476 else 2477 for (var e in c) { 2478 if (a < c[e]) { 2479 a = d; 2480 break; 2481 } 2482 d = c[e]; 2483 } 2484 return a; 2485 }), 2486 (b.prototype.cleanUpEvents = function() { 2487 var b = this; 2488 b.options.dots && 2489 null !== b.$dots && 2490 a("li", b.$dots) 2491 .off("click.slick", b.changeSlide) 2492 .off("mouseenter.slick", a.proxy(b.interrupt, b, !0))
2493 .off("mouseleave.slick", a.proxy(b.interrupt, b, !1)), 2494 b.$slider.off("focus.slick blur.slick"), 2495 b.options.arrows === !0 && 2496 b.slideCount > b.options.slidesToShow && 2497 (b.$prevArrow && b.$prevArrow.off("click.slick", b.changeSlide), 2498 b.$nextArrow && b.$nextArrow.off("click.slick", b.changeSlide)), 2499 b.$list.off("touchstart.slick mousedown.slick", b.swipeHandler), 2500 b.$list.off("touchmove.slick mousemove.slick", b.swipeHandler), 2501 b.$list.off("touchend.slick mouseup.slick", b.swipeHandler), 2502 b.$list.off("touchcancel.slick mouseleave.slick", b.swipeHandler), 2503 b.$list.off("click.slick", b.clickHandler), 2504 a(document).off(b.visibilityChange, b.visibility), 2505 b.cleanUpSlideEvents(), 2506 b.options.accessibility === !0 && 2507 b.$list.off("keydown.slick", b.keyHandler), 2508 b.options.focusOnSelect === !0 && 2509 a(b.$slideTrack) 2510 .children() 2511 .off("click.slick", b.selectHandler), 2512 a(window).off( 2513 "orientationchange.slick.slick-" + b.instanceUid, 2514 b.orientationChange 2515 ), 2516 a(window).off("resize.slick.slick-" + b.instanceUid, b.resize), 2517 a("[draggable!=true]", b.$slideTrack).off( 2518 "dragstart", 2519 b.preventDefault 2520 ), 2521 a(window).off("load.slick.slick-" + b.instanceUid, b.setPosition), 2522 a(document).off("ready.slick.slick-" + b.instanceUid, b.setPosition); 2523 }), 2524 (b.prototype.cleanUpSlideEvents = function() { 2525 var b = this; 2526 b.$list.off("mouseenter.slick", a.proxy(b.interrupt, b, !0)), 2527 b.$list.off("mouseleave.slick", a.proxy(b.interrupt, b, !1)); 2528 }), 2529 (b.prototype.cleanUpRows = function() { 2530 var b, 2531 a = this; 2532 a.options.rows > 1 && 2533 ((b = a.$slides.children().children()), 2534 b.removeAttr("style"), 2535 a.$slider.empty().append(b)); 2536 }), 2537 (b.prototype.clickHandler = function(a) { 2538 var b = this; 2539 b.shouldClick === !1 && 2540 (a.stopImmediatePropagation(), 2541 a.stopPropagation(), 2542 a.preventDefault()); 2543 }), 2544 (b.prototype.destroy = function(b) { 2545 var c = this; 2546 c.autoPlayClear(), 2547 (c.touchObject = {}), 2548 c.cleanUpEvents(), 2549 a(".slick-cloned", c.$slider).detach(), 2550 c.$dots && c.$dots.remove(), 2551 c.$prevArrow && 2552 c.$prevArrow.length && 2553 (c.$prevArrow 2554 .removeClass("slick-disabled slick-arrow slick-hidden") 2555 .removeAttr("aria-hidden aria-disabled tabindex") 2556 .css("display", ""), 2557 c.htmlExpr.test(c.options.prevArrow) && c.$prevArrow.remove()), 2558 c.$nextArrow && 2559 c.$nextArrow.length && 2560 (c.$nextArrow 2561 .removeClass("slick-disabled slick-arrow slick-hidden") 2562 .removeAttr("aria-hidden aria-disabled tabindex") 2563 .css("display", ""), 2564 c.htmlExpr.test(c.options.nextArrow) && c.$nextArrow.remove()), 2565 c.$slides && 2566 (c.$slides 2567 .removeClass( 2568 "slick-slide slick-active slick-center slick-visible slick-current" 2569 ) 2570 .removeAttr("aria-hidden") 2571 .removeAttr("data-slick-index") 2572 .each(function() { 2573 a(this).attr("style", a(this).data("originalStyling")); 2574 }), 2575 c.$slideTrack.children(this.options.slide).detach(), 2576 c.$slideTrack.detach(), 2577 c.$list.detach(), 2578 c.$slider.append(c.$slides)), 2579 c.cleanUpRows(), 2580 c.$slider.removeClass("slick-slider"), 2581 c.$slider.removeClass("slick-initialized"), 2582 c.$slider.removeClass("slick-dotted"), 2583 (c.unslicked = !0), 2584 b || c.$slider.trigger("destroy", [c]); 2585 }), 2586 (b.prototype.disableTransition = function(a) { 2587 var b = this, 2588 c = {}; 2589 (c[b.transitionType] = ""), 2590 b.options.fade === !1 ? b.$slideTrack.css(c) : b.$slides.eq(a).css(c); 2591 }), 2592 (b.prototype.fadeSlide = function(a, b) { 2593 var c = this; 2594 c.cssTransitions === !1 2595 ? (c.$slides.eq(a).css({ zIndex: c.options.zIndex }), 2596 c.$slides 2597 .eq(a) 2598 .animate({ opacity: 1 }, c.options.speed, c.options.easing, b)) 2599 : (c.applyTransition(a), 2600 c.$slides.eq(a).css({ opacity: 1, zIndex: c.options.zIndex }), 2601 b && 2602 setTimeout(function() { 2603 c.disableTransition(a), b.call(); 2604 }, c.options.speed)); 2605 }), 2606 (b.prototype.fadeSlideOut = function(a) { 2607 var b = this; 2608 b.cssTransitions === !1 2609 ? b.$slides 2610 .eq(a) 2611 .animate( 2612 { opacity: 0, zIndex: b.options.zIndex - 2 }, 2613 b.options.speed, 2614 b.options.easing 2615 ) 2616 : (b.applyTransition(a), 2617 b.$slides.eq(a).css({ opacity: 0, zIndex: b.options.zIndex - 2 })); 2618 }),
2619 (b.prototype.filterSlides = b.prototype.slickFilter = function(a) { 2620 var b = this; 2621 null !== a && 2622 ((b.$slidesCache = b.$slides), 2623 b.unload(), 2624 b.$slideTrack.children(this.options.slide).detach(), 2625 b.$slidesCache.filter(a).appendTo(b.$slideTrack), 2626 b.reinit()); 2627 }), 2628 (b.prototype.focusHandler = function() { 2629 var b = this; 2630 b.$slider 2631 .off("focus.slick blur.slick") 2632 .on("focus.slick blur.slick", "*:not(.slick-arrow)", function(c) { 2633 c.stopImmediatePropagation(); 2634 var d = a(this); 2635 setTimeout(function() { 2636 b.options.pauseOnFocus && 2637 ((b.focussed = d.is(":focus")), b.autoPlay()); 2638 }, 0); 2639 }); 2640 }), 2641 (b.prototype.getCurrent = b.prototype.slickCurrentSlide = function() { 2642 var a = this; 2643 return a.currentSlide; 2644 }), 2645 (b.prototype.getDotCount = function() { 2646 var a = this, 2647 b = 0, 2648 c = 0, 2649 d = 0; 2650 if (a.options.infinite === !0) 2651 for (; b < a.slideCount; ) 2652 ++d, 2653 (b = c + a.options.slidesToScroll), 2654 (c += 2655 a.options.slidesToScroll <= a.options.slidesToShow 2656 ? a.options.slidesToScroll 2657 : a.options.slidesToShow); 2658 else if (a.options.centerMode === !0) d = a.slideCount; 2659 else if (a.options.asNavFor) 2660 for (; b < a.slideCount; ) 2661 ++d, 2662 (b = c + a.options.slidesToScroll), 2663 (c += 2664 a.options.slidesToScroll <= a.options.slidesToShow 2665 ? a.options.slidesToScroll 2666 : a.options.slidesToShow); 2667 else 2668 d = 2669 1 + 2670 Math.ceil( 2671 (a.slideCount - a.options.slidesToShow) / a.options.slidesToScroll 2672 ); 2673 return d - 1; 2674 }), 2675 (b.prototype.getLeft = function(a) { 2676 var c, 2677 d, 2678 f, 2679 b = this, 2680 e = 0; 2681 return ( 2682 (b.slideOffset = 0), 2683 (d = b.$slides.first().outerHeight(!0)), 2684 b.options.infinite === !0 2685 ? (b.slideCount > b.options.slidesToShow && 2686 ((b.slideOffset = b.slideWidth * b.options.slidesToShow * -1), 2687 (e = d * b.options.slidesToShow * -1)), 2688 b.slideCount % b.options.slidesToScroll !== 0 && 2689 a + b.options.slidesToScroll > b.slideCount && 2690 b.slideCount > b.options.slidesToShow && 2691 (a > b.slideCount 2692 ? ((b.slideOffset = 2693 (b.options.slidesToShow - (a - b.slideCount)) * 2694 b.slideWidth * 2695 -1), 2696 (e = 2697 (b.options.slidesToShow - (a - b.slideCount)) * d * -1)) 2698 : ((b.slideOffset = 2699 (b.slideCount % b.options.slidesToScroll) * 2700 b.slideWidth * 2701 -1), 2702 (e = (b.slideCount % b.options.slidesToScroll) * d * -1)))) 2703 : a + b.options.slidesToShow > b.slideCount && 2704 ((b.slideOffset = 2705 (a + b.options.slidesToShow - b.slideCount) * b.slideWidth), 2706 (e = (a + b.options.slidesToShow - b.slideCount) * d)), 2707 b.slideCount <= b.options.slidesToShow && 2708 ((b.slideOffset = 0), (e = 0)), 2709 b.options.centerMode === !0 && b.options.infinite === !0 2710 ? (b.slideOffset += 2711 b.slideWidth * Math.floor(b.options.slidesToShow / 2) - 2712 b.slideWidth) 2713 : b.options.centerMode === !0 && 2714 ((b.slideOffset = 0), 2715 (b.slideOffset += 2716 b.slideWidth * Math.floor(b.options.slidesToShow / 2))), 2717 (c = 2718 b.options.vertical === !1 2719 ? a * b.slideWidth * -1 + b.slideOffset 2720 : a * d * -1 + e), 2721 b.options.variableWidth === !0 && 2722 ((f = 2723 b.slideCount <= b.options.slidesToShow || 2724 b.options.infinite === !1 2725 ? b.$slideTrack.children(".slick-slide").eq(a) 2726 : b.$slideTrack 2727 .children(".slick-slide") 2728 .eq(a + b.options.slidesToShow)), 2729 (c = 2730 b.options.rtl === !0 2731 ? f[0] 2732 ? -1 * (b.$slideTrack.width() - f[0].offsetLeft - f.width()) 2733 : 0 2734 : f[0] ? -1 * f[0].offsetLeft : 0), 2735 b.options.centerMode === !0 && 2736 ((f = 2737 b.slideCount <= b.options.slidesToShow || 2738 b.options.infinite === !1 2739 ? b.$slideTrack.children(".slick-slide").eq(a) 2740 : b.$slideTrack 2741 .children(".slick-slide") 2742 .eq(a + b.options.slidesToShow + 1)), 2743 (c = 2744 b.options.rtl === !0 2745 ? f[0] 2746 ? -1 * (b.$slideTrack.width() - f[0].offsetLeft - f.width()) 2747 : 0 2748 : f[0] ? -1 * f[0].offsetLeft : 0), 2749 (c += (b.$list.width() - f.outerWidth()) / 2))), 2750 c 2751 ); 2752 }), 2753 (b.prototype.getOption = b.prototype.slickGetOption = function(a) { 2754 var b = this; 2755 return b.options[a]; 2756 }), 2757 (b.prototype.getNavigableIndexes = function() { 2758 var e, 2759 a = this, 2760 b = 0, 2761 c = 0, 2762 d = []; 2763 for ( 2764 a.options.infinite === !1 2765 ? (e = a.slideCount) 2766 : ((b = -1 * a.options.slidesToScroll), 2767 (c = -1 * a.options.slidesToScroll), 2768 (e = 2 * a.slideCount)); 2769 e > b; 2770 2771 ) 2772 d.push(b), 2773 (b = c + a.options.slidesToScroll), 2774 (c += 2775 a.options.slidesToScroll <= a.options.slidesToShow 2776 ? a.options.slidesToScroll 2777 : a.options.slidesToShow); 2778 return d; 2779 }), 2780 (b.prototype.getSlick = function() { 2781 return this; 2782 }), 2783 (b.prototype.getSlideCount = function() { 2784 var c, 2785 d, 2786 e, 2787 b = this; 2788 return ( 2789 (e = 2790 b.options.centerMode === !0 2791 ? b.slideWidth * Math.floor(b.options.slidesToShow / 2) 2792 : 0), 2793 b.options.swipeToSlide === !0 2794 ? (b.$slideTrack.find(".slick-slide").each(function(c, f) { 2795 return f.offsetLeft - e + a(f).outerWidth() / 2 > 2796 -1 * b.swipeLeft 2797 ? ((d = f), !1) 2798 : void 0; 2799 }), 2800 (c = 2801 Math.abs(a(d).attr("data-slick-index") - b.currentSlide) || 1)) 2802 : b.options.slidesToScroll 2803 ); 2804 }), 2805 (b.prototype.goTo = b.prototype.slickGoTo = function(a, b) { 2806 var c = this; 2807 c.changeSlide({ data: { message: "index", index: parseInt(a) } }, b); 2808 }), 2809 (b.prototype.init = function(b) { 2810 var c = this; 2811 a(c.$slider).hasClass("slick-initialized") || 2812 (a(c.$slider).addClass("slick-initialized"),
2813 c.buildRows(), 2814 c.buildOut(), 2815 c.setProps(), 2816 c.startLoad(), 2817 c.loadSlider(), 2818 c.initializeEvents(), 2819 c.updateArrows(), 2820 c.updateDots(), 2821 c.checkResponsive(!0), 2822 c.focusHandler()), 2823 b && c.$slider.trigger("init", [c]), 2824 c.options.accessibility === !0 && c.initADA(), 2825 c.options.autoplay && ((c.paused = !1), c.autoPlay()); 2826 }), 2827 (b.prototype.initADA = function() { 2828 var b = this; 2829 b.$slides 2830 .add(b.$slideTrack.find(".slick-cloned")) 2831 .attr({ "aria-hidden": "true", tabindex: "-1" }) 2832 .find("a, input, button, select") 2833 .attr({ tabindex: "-1" }), 2834 b.$slideTrack.attr("role", "listbox"), 2835 b.$slides.not(b.$slideTrack.find(".slick-cloned")).each(function(c) { 2836 a(this).attr({ 2837 role: "option", 2838 "aria-describedby": "slick-slide" + b.instanceUid + c 2839 }); 2840 }), 2841 null !== b.$dots && 2842 b.$dots 2843 .attr("role", "tablist") 2844 .find("li") 2845 .each(function(c) { 2846 a(this).attr({ 2847 role: "presentation", 2848 "aria-selected": "false", 2849 "aria-controls": "navigation" + b.instanceUid + c, 2850 id: "slick-slide" + b.instanceUid + c 2851 }); 2852 }) 2853 .first() 2854 .attr("aria-selected", "true") 2855 .end() 2856 .find("button") 2857 .attr("role", "button") 2858 .end() 2859 .closest("div") 2860 .attr("role", "toolbar"), 2861 b.activateADA(); 2862 }), 2863 (b.prototype.initArrowEvents = function() { 2864 var a = this; 2865 a.options.arrows === !0 && 2866 a.slideCount > a.options.slidesToShow && 2867 (a.$prevArrow 2868 .off("click.slick") 2869 .on("click.slick", { message: "previous" }, a.changeSlide), 2870 a.$nextArrow 2871 .off("click.slick") 2872 .on("click.slick", { message: "next" }, a.changeSlide)); 2873 }), 2874 (b.prototype.initDotEvents = function() { 2875 var b = this; 2876 b.options.dots === !0 && 2877 b.slideCount > b.options.slidesToShow && 2878 a("li", b.$dots).on( 2879 "click.slick", 2880 { message: "index" }, 2881 b.changeSlide 2882 ), 2883 b.options.dots === !0 && 2884 b.options.pauseOnDotsHover === !0 && 2885 a("li", b.$dots) 2886 .on("mouseenter.slick", a.proxy(b.interrupt, b, !0)) 2887 .on("mouseleave.slick", a.proxy(b.interrupt, b, !1)); 2888 }), 2889 (b.prototype.initSlideEvents = function() { 2890 var b = this; 2891 b.options.pauseOnHover && 2892 (b.$list.on("mouseenter.slick", a.proxy(b.interrupt, b, !0)), 2893 b.$list.on("mouseleave.slick", a.proxy(b.interrupt, b, !1))); 2894 }), 2895 (b.prototype.initializeEvents = function() { 2896 var b = this; 2897 b.initArrowEvents(), 2898 b.initDotEvents(), 2899 b.initSlideEvents(), 2900 b.$list.on( 2901 "touchstart.slick mousedown.slick", 2902 { action: "start" }, 2903 b.swipeHandler 2904 ), 2905 b.$list.on( 2906 "touchmove.slick mousemove.slick", 2907 { action: "move" }, 2908 b.swipeHandler 2909 ), 2910 b.$list.on( 2911 "touchend.slick mouseup.slick", 2912 { action: "end" }, 2913 b.swipeHandler 2914 ), 2915 b.$list.on(
2916 "touchcancel.slick mouseleave.slick", 2917 { action: "end" }, 2918 b.swipeHandler 2919 ), 2920 b.$list.on("click.slick", b.clickHandler), 2921 a(document).on(b.visibilityChange, a.proxy(b.visibility, b)), 2922 b.options.accessibility === !0 && 2923 b.$list.on("keydown.slick", b.keyHandler), 2924 b.options.focusOnSelect === !0 && 2925 a(b.$slideTrack) 2926 .children() 2927 .on("click.slick", b.selectHandler), 2928 a(window).on( 2929 "orientationchange.slick.slick-" + b.instanceUid, 2930 a.proxy(b.orientationChange, b) 2931 ), 2932 a(window).on( 2933 "resize.slick.slick-" + b.instanceUid, 2934 a.proxy(b.resize, b) 2935 ), 2936 a("[draggable!=true]", b.$slideTrack).on( 2937 "dragstart", 2938 b.preventDefault 2939 ), 2940 a(window).on("load.slick.slick-" + b.instanceUid, b.setPosition), 2941 a(document).on("ready.slick.slick-" + b.instanceUid, b.setPosition); 2942 }), 2943 (b.prototype.initUI = function() { 2944 var a = this; 2945 a.options.arrows === !0 && 2946 a.slideCount > a.options.slidesToShow && 2947 (a.$prevArrow.show(), a.$nextArrow.show()), 2948 a.options.dots === !0 && 2949 a.slideCount > a.options.slidesToShow && 2950 a.$dots.show(); 2951 }), 2952 (b.prototype.keyHandler = function(a) { 2953 var b = this; 2954 a.target.tagName.match("TEXTAREA|INPUT|SELECT") || 2955 (37 === a.keyCode && b.options.accessibility === !0 2956 ? b.changeSlide({ 2957 data: { message: b.options.rtl === !0 ? "next" : "previous" } 2958 }) 2959 : 39 === a.keyCode && 2960 b.options.accessibility === !0 && 2961 b.changeSlide({ 2962 data: { message: b.options.rtl === !0 ? "previous" : "next" } 2963 })); 2964 }), 2965 (b.prototype.lazyLoad = function() { 2966 function g(c) { 2967 a("img[data-lazy]", c).each(function() { 2968 var c = a(this), 2969 d = a(this).attr("data-lazy"), 2970 e = document.createElement("img"); 2971 (e.onload = function() { 2972 c.animate({ opacity: 0 }, 100, function() { 2973 c.attr("src", d).animate({ opacity: 1 }, 200, function() { 2974 c.removeAttr("data-lazy").removeClass("slick-loading"); 2975 }), 2976 b.$slider.trigger("lazyLoaded", [b, c, d]); 2977 }); 2978 }), 2979 (e.onerror = function() { 2980 c 2981 .removeAttr("data-lazy") 2982 .removeClass("slick-loading") 2983 .addClass("slick-lazyload-error"), 2984 b.$slider.trigger("lazyLoadError", [b, c, d]); 2985 }), 2986 (e.src = d); 2987 }); 2988 } 2989 var c, 2990 d, 2991 e, 2992 f, 2993 b = this; 2994 b.options.centerMode === !0 2995 ? b.options.infinite === !0 2996 ? ((e = b.currentSlide + (b.options.slidesToShow / 2 + 1)), 2997 (f = e + b.options.slidesToShow + 2)) 2998 : ((e = Math.max( 2999 0, 3000 b.currentSlide - (b.options.slidesToShow / 2 + 1) 3001 )), 3002 (f = 2 + (b.options.slidesToShow / 2 + 1) + b.currentSlide)) 3003 : ((e = b.options.infinite 3004 ? b.options.slidesToShow + b.currentSlide 3005 : b.currentSlide), 3006 (f = Math.ceil(e + b.options.slidesToShow)), 3007 b.options.fade === !0 && (e > 0 && e--, f <= b.slideCount && f++)), 3008 (c = b.$slider.find(".slick-slide").slice(e, f)), 3009 g(c), 3010 b.slideCount <= b.options.slidesToShow 3011 ? ((d = b.$slider.find(".slick-slide")), g(d)) 3012 : b.currentSlide >= b.slideCount - b.options.slidesToShow 3013 ? ((d = b.$slider 3014 .find(".slick-cloned") 3015 .slice(0, b.options.slidesToShow)), 3016 g(d)) 3017 : 0 === b.currentSlide && 3018 ((d = b.$slider 3019 .find(".slick-cloned") 3020 .slice(-1 * b.options.slidesToShow)), 3021 g(d)); 3022 }), 3023 (b.prototype.loadSlider = function() { 3024 var a = this; 3025 a.setPosition(), 3026 a.$slideTrack.css({ opacity: 1 }), 3027 a.$slider.removeClass("slick-loading"), 3028 a.initUI(), 3029 "progressive" === a.options.lazyLoad && a.progressiveLazyLoad(); 3030 }), 3031 (b.prototype.next = b.prototype.slickNext = function() { 3032 var a = this; 3033 a.changeSlide({ data: { message: "next" } }); 3034 }), 3035 (b.prototype.orientationChange = function() { 3036 var a = this; 3037 a.checkResponsive(), a.setPosition(); 3038 }), 3039 (b.prototype.pause = b.prototype.slickPause = function() { 3040 var a = this; 3041 a.autoPlayClear(), (a.paused = !0); 3042 }), 3043 (b.prototype.play = b.prototype.slickPlay = function() { 3044 var a = this; 3045 a.autoPlay(), 3046 (a.options.autoplay = !0), 3047 (a.paused = !1), 3048 (a.focussed = !1), 3049 (a.interrupted = !1); 3050 }), 3051 (b.prototype.postSlide = function(a) { 3052 var b = this;
3053 b.unslicked || 3054 (b.$slider.trigger("afterChange", [b, a]), 3055 (b.animating = !1), 3056 b.setPosition(), 3057 (b.swipeLeft = null), 3058 b.options.autoplay && b.autoPlay(), 3059 b.options.accessibility === !0 && b.initADA()); 3060 }), 3061 (b.prototype.prev = b.prototype.slickPrev = function() { 3062 var a = this; 3063 a.changeSlide({ data: { message: "previous" } }); 3064 }), 3065 (b.prototype.preventDefault = function(a) { 3066 a.preventDefault(); 3067 }), 3068 (b.prototype.progressiveLazyLoad = function(b) { 3069 b = b || 1; 3070 var e, 3071 f, 3072 g, 3073 c = this, 3074 d = a("img[data-lazy]", c.$slider); 3075 d.length 3076 ? ((e = d.first()), 3077 (f = e.attr("data-lazy")), 3078 (g = document.createElement("img")), 3079 (g.onload = function() { 3080 e 3081 .attr("src", f) 3082 .removeAttr("data-lazy") 3083 .removeClass("slick-loading"), 3084 c.options.adaptiveHeight === !0 && c.setPosition(), 3085 c.$slider.trigger("lazyLoaded", [c, e, f]), 3086 c.progressiveLazyLoad(); 3087 }), 3088 (g.onerror = function() { 3089 3 > b 3090 ? setTimeout(function() { 3091 c.progressiveLazyLoad(b + 1); 3092 }, 500) 3093 : (e 3094 .removeAttr("data-lazy") 3095 .removeClass("slick-loading") 3096 .addClass("slick-lazyload-error"), 3097 c.$slider.trigger("lazyLoadError", [c, e, f]), 3098 c.progressiveLazyLoad()); 3099 }), 3100 (g.src = f)) 3101 : c.$slider.trigger("allImagesLoaded", [c]); 3102 }), 3103 (b.prototype.refresh = function(b) { 3104 var d, 3105 e, 3106 c = this; 3107 (e = c.slideCount - c.options.slidesToShow), 3108 !c.options.infinite && c.currentSlide > e && (c.currentSlide = e), 3109 c.slideCount <= c.options.slidesToShow && (c.currentSlide = 0), 3110 (d = c.currentSlide), 3111 c.destroy(!0), 3112 a.extend(c, c.initials, { currentSlide: d }), 3113 c.init(), 3114 b || c.changeSlide({ data: { message: "index", index: d } }, !1); 3115 }), 3116 (b.prototype.registerBreakpoints = function() { 3117 var c, 3118 d, 3119 e, 3120 b = this, 3121 f = b.options.responsive || null; 3122 if ("array" === a.type(f) && f.length) { 3123 b.respondTo = b.options.respondTo || "window"; 3124 for (c in f) 3125 if ( 3126 ((e = b.breakpoints.length - 1), 3127 (d = f[c].breakpoint), 3128 f.hasOwnProperty(c)) 3129 ) { 3130 for (; e >= 0; ) 3131 b.breakpoints[e] && 3132 b.breakpoints[e] === d && 3133 b.breakpoints.splice(e, 1), 3134 e--; 3135 b.breakpoints.push(d), (b.breakpointSettings[d] = f[c].settings); 3136 } 3137 b.breakpoints.sort(function(a, c) { 3138 return b.options.mobileFirst ? a - c : c - a; 3139 }); 3140 } 3141 }), 3142 (b.prototype.reinit = function() { 3143 var b = this; 3144 (b.$slides = b.$slideTrack 3145 .children(b.options.slide) 3146 .addClass("slick-slide")), 3147 (b.slideCount = b.$slides.length), 3148 b.currentSlide >= b.slideCount && 3149 0 !== b.currentSlide && 3150 (b.currentSlide = b.currentSlide - b.options.slidesToScroll), 3151 b.slideCount <= b.options.slidesToShow && (b.currentSlide = 0), 3152 b.registerBreakpoints(), 3153 b.setProps(), 3154 b.setupInfinite(), 3155 b.buildArrows(), 3156 b.updateArrows(), 3157 b.initArrowEvents(), 3158 b.buildDots(), 3159 b.updateDots(), 3160 b.initDotEvents(), 3161 b.cleanUpSlideEvents(), 3162 b.initSlideEvents(), 3163 b.checkResponsive(!1, !0), 3164 b.options.focusOnSelect === !0 && 3165 a(b.$slideTrack) 3166 .children() 3167 .on("click.slick", b.selectHandler), 3168 b.setSlideClasses( 3169 "number" == typeof b.currentSlide ? b.currentSlide : 0 3170 ), 3171 b.setPosition(),
3172 b.focusHandler(), 3173 (b.paused = !b.options.autoplay), 3174 b.autoPlay(), 3175 b.$slider.trigger("reInit", [b]); 3176 }), 3177 (b.prototype.resize = function() { 3178 var b = this; 3179 a(window).width() !== b.windowWidth && 3180 (clearTimeout(b.windowDelay), 3181 (b.windowDelay = window.setTimeout(function() { 3182 (b.windowWidth = a(window).width()), 3183 b.checkResponsive(), 3184 b.unslicked || b.setPosition(); 3185 }, 50))); 3186 }), 3187 (b.prototype.removeSlide = b.prototype.slickRemove = function(a, b, c) { 3188 var d = this; 3189 return ( 3190 "boolean" == typeof a 3191 ? ((b = a), (a = b === !0 ? 0 : d.slideCount - 1)) 3192 : (a = b === !0 ? --a : a), 3193 !(d.slideCount < 1 || 0 > a || a > d.slideCount - 1) && 3194 (d.unload(), 3195 c === !0 3196 ? d.$slideTrack.children().remove() 3197 : d.$slideTrack 3198 .children(this.options.slide) 3199 .eq(a) 3200 .remove(), 3201 (d.$slides = d.$slideTrack.children(this.options.slide)), 3202 d.$slideTrack.children(this.options.slide).detach(), 3203 d.$slideTrack.append(d.$slides), 3204 (d.$slidesCache = d.$slides), 3205 void d.reinit()) 3206 ); 3207 }), 3208 (b.prototype.setCSS = function(a) { 3209 var d, 3210 e, 3211 b = this, 3212 c = {}; 3213 b.options.rtl === !0 && (a = -a), 3214 (d = "left" == b.positionProp ? Math.ceil(a) + "px" : "0px"), 3215 (e = "top" == b.positionProp ? Math.ceil(a) + "px" : "0px"), 3216 (c[b.positionProp] = a), 3217 b.transformsEnabled === !1 3218 ? b.$slideTrack.css(c) 3219 : ((c = {}), 3220 b.cssTransitions === !1 3221 ? ((c[b.animType] = "translate(" + d + ", " + e + ")"), 3222 b.$slideTrack.css(c)) 3223 : ((c[b.animType] = "translate3d(" + d + ", " + e + ", 0px)"), 3224 b.$slideTrack.css(c))); 3225 }), 3226 (b.prototype.setDimensions = function() { 3227 var a = this; 3228 a.options.vertical === !1 3229 ? a.options.centerMode === !0 && 3230 a.$list.css({ padding: "0px " + a.options.centerPadding }) 3231 : (a.$list.height( 3232 a.$slides.first().outerHeight(!0) * a.options.slidesToShow 3233 ), 3234 a.options.centerMode === !0 && 3235 a.$list.css({ padding: a.options.centerPadding + " 0px" })), 3236 (a.listWidth = a.$list.width()), 3237 (a.listHeight = a.$list.height()), 3238 a.options.vertical === !1 && a.options.variableWidth === !1 3239 ? ((a.slideWidth = Math.ceil(a.listWidth / a.options.slidesToShow)), 3240 a.$slideTrack.width( 3241 Math.ceil( 3242 a.slideWidth * a.$slideTrack.children(".slick-slide").length 3243 ) 3244 )) 3245 : a.options.variableWidth === !0 3246 ? a.$slideTrack.width(5e3 * a.slideCount) 3247 : ((a.slideWidth = Math.ceil(a.listWidth)), 3248 a.$slideTrack.height( 3249 Math.ceil( 3250 a.$slides.first().outerHeight(!0) * 3251 a.$slideTrack.children(".slick-slide").length 3252 ) 3253 )); 3254 var b = a.$slides.first().outerWidth(!0) - a.$slides.first().width(); 3255 a.options.variableWidth === !1 && 3256 a.$slideTrack.children(".slick-slide").width(a.slideWidth - b); 3257 }), 3258 (b.prototype.setFade = function() { 3259 var c, 3260 b = this; 3261 b.$slides.each(function(d, e) { 3262 (c = b.slideWidth * d * -1), 3263 b.options.rtl === !0 3264 ? a(e).css({ 3265 position: "relative", 3266 right: c, 3267 top: 0, 3268 zIndex: b.options.zIndex - 2, 3269 opacity: 0 3270 }) 3271 : a(e).css({ 3272 position: "relative", 3273 left: c, 3274 top: 0, 3275 zIndex: b.options.zIndex - 2, 3276 opacity: 0 3277 }); 3278 }), 3279 b.$slides 3280 .eq(b.currentSlide) 3281 .css({ zIndex: b.options.zIndex - 1, opacity: 1 }); 3282 }), 3283 (b.prototype.setHeight = function() { 3284 var a = this; 3285 if ( 3286 1 === a.options.slidesToShow && 3287 a.options.adaptiveHeight === !0 && 3288 a.options.vertical === !1 3289 ) { 3290 var b = a.$slides.eq(a.currentSlide).outerHeight(!0); 3291 a.$list.css("height", b); 3292 } 3293 }), 3294 (b.prototype.setOption = b.prototype.slickSetOption = function() { 3295 var c, 3296 d, 3297 e, 3298 f, 3299 h, 3300 b = this, 3301 g = !1; 3302 if ( 3303 ("object" === a.type(arguments[0]) 3304 ? ((e = arguments[0]), (g = arguments[1]), (h = "multiple")) 3305 : "string" === a.type(arguments[0]) && 3306 ((e = arguments[0]), 3307 (f = arguments[1]), 3308 (g = arguments[2]), 3309 "responsive" === arguments[0] && "array" === a.type(arguments[1]) 3310 ? (h = "responsive") 3311 : "undefined" != typeof arguments[1] && (h = "single")), 3312 "single" === h) 3313 ) 3314 b.options[e] = f; 3315 else if ("multiple" === h) 3316 a.each(e, function(a, c) { 3317 b.options[a] = c; 3318 }); 3319 else if ("responsive" === h) 3320 for (d in f) 3321 if ("array" !== a.type(b.options.responsive)) 3322 b.options.responsive = [f[d]]; 3323 else { 3324 for (c = b.options.responsive.length - 1; c >= 0; ) 3325 b.options.responsive[c].breakpoint === f[d].breakpoint && 3326 b.options.responsive.splice(c, 1), 3327 c--; 3328 b.options.responsive.push(f[d]); 3329 } 3330 g && (b.unload(), b.reinit()); 3331 }), 3332 (b.prototype.setPosition = function() { 3333 var a = this; 3334 a.setDimensions(), 3335 a.setHeight(), 3336 a.options.fade === !1 3337 ? a.setCSS(a.getLeft(a.currentSlide)) 3338 : a.setFade(), 3339 a.$slider.trigger("setPosition", [a]); 3340 }), 3341 (b.prototype.setProps = function() { 3342 var a = this, 3343 b = document.body.style; 3344 (a.positionProp = a.options.vertical === !0 ? "top" : "left"), 3345 "top" === a.positionProp 3346 ? a.$slider.addClass("slick-vertical") 3347 : a.$slider.removeClass("slick-vertical"), 3348 (void 0 !== b.WebkitTransition || 3349 void 0 !== b.MozTransition || 3350 void 0 !== b.msTransition) && 3351 a.options.useCSS === !0 && 3352 (a.cssTransitions = !0), 3353 a.options.fade && 3354 ("number" == typeof a.options.zIndex 3355 ? a.options.zIndex < 3 && (a.options.zIndex = 3) 3356 : (a.options.zIndex = a.defaults.zIndex)), 3357 void 0 !== b.OTransform && 3358 ((a.animType = "OTransform"), 3359 (a.transformType = "-o-transform"), 3360 (a.transitionType = "OTransition"), 3361 void 0 === b.perspectiveProperty && 3362 void 0 === b.webkitPerspective && 3363 (a.animType = !1)), 3364 void 0 !== b.MozTransform && 3365 ((a.animType = "MozTransform"), 3366 (a.transformType = "-moz-transform"), 3367 (a.transitionType = "MozTransition"), 3368 void 0 === b.perspectiveProperty && 3369 void 0 === b.MozPerspective && 3370 (a.animType = !1)), 3371 void 0 !== b.webkitTransform &&
3372 ((a.animType = "webkitTransform"), 3373 (a.transformType = "-webkit-transform"), 3374 (a.transitionType = "webkitTransition"), 3375 void 0 === b.perspectiveProperty && 3376 void 0 === b.webkitPerspective && 3377 (a.animType = !1)), 3378 void 0 !== b.msTransform && 3379 ((a.animType = "msTransform"), 3380 (a.transformType = "-ms-transform"), 3381 (a.transitionType = "msTransition"), 3382 void 0 === b.msTransform && (a.animType = !1)), 3383 void 0 !== b.transform && 3384 a.animType !== !1 && 3385 ((a.animType = "transform"), 3386 (a.transformType = "transform"), 3387 (a.transitionType = "transition")), 3388 (a.transformsEnabled = 3389 a.options.useTransform && null !== a.animType && a.animType !== !1); 3390 }), 3391 (b.prototype.setSlideClasses = function(a) { 3392 var c, 3393 d, 3394 e, 3395 f, 3396 b = this; 3397 (d = b.$slider 3398 .find(".slick-slide") 3399 .removeClass("slick-active slick-center slick-current") 3400 .attr("aria-hidden", "true")), 3401 b.$slides.eq(a).addClass("slick-current"), 3402 b.options.centerMode === !0 3403 ? ((c = Math.floor(b.options.slidesToShow / 2)), 3404 b.options.infinite === !0 && 3405 (a >= c && a <= b.slideCount - 1 - c 3406 ? b.$slides 3407 .slice(a - c, a + c + 1) 3408 .addClass("slick-active") 3409 .attr("aria-hidden", "false") 3410 : ((e = b.options.slidesToShow + a), 3411 d 3412 .slice(e - c + 1, e + c + 2) 3413 .addClass("slick-active") 3414 .attr("aria-hidden", "false")), 3415 0 === a 3416 ? d 3417 .eq(d.length - 1 - b.options.slidesToShow) 3418 .addClass("slick-center") 3419 : a === b.slideCount - 1 && 3420 d.eq(b.options.slidesToShow).addClass("slick-center")), 3421 b.$slides.eq(a).addClass("slick-center")) 3422 : a >= 0 && a <= b.slideCount - b.options.slidesToShow 3423 ? b.$slides 3424 .slice(a, a + b.options.slidesToShow) 3425 .addClass("slick-active") 3426 .attr("aria-hidden", "false") 3427 : d.length <= b.options.slidesToShow 3428 ? d.addClass("slick-active").attr("aria-hidden", "false") 3429 : ((f = b.slideCount % b.options.slidesToShow), 3430 (e = 3431 b.options.infinite === !0 ? b.options.slidesToShow + a : a), 3432 b.options.slidesToShow == b.options.slidesToScroll && 3433 b.slideCount - a < b.options.slidesToShow 3434 ? d 3435 .slice(e - (b.options.slidesToShow - f), e + f) 3436 .addClass("slick-active") 3437 .attr("aria-hidden", "false") 3438 : d 3439 .slice(e, e + b.options.slidesToShow) 3440 .addClass("slick-active") 3441 .attr("aria-hidden", "false")), 3442 "ondemand" === b.options.lazyLoad && b.lazyLoad(); 3443 }), 3444 (b.prototype.setupInfinite = function() { 3445 var c, 3446 d, 3447 e, 3448 b = this; 3449 if ( 3450 (b.options.fade === !0 && (b.options.centerMode = !1), 3451 b.options.infinite === !0 && 3452 b.options.fade === !1 && 3453 ((d = null), b.slideCount > b.options.slidesToShow)) 3454 ) { 3455 for ( 3456 e = 3457 b.options.centerMode === !0 3458 ? b.options.slidesToShow + 1 3459 : b.options.slidesToShow, 3460 c = b.slideCount; 3461 c > b.slideCount - e; 3462 c -= 1 3463 ) 3464 (d = c - 1), 3465 a(b.$slides[d]) 3466 .clone(!0) 3467 .attr("id", "") 3468 .attr("data-slick-index", d - b.slideCount) 3469 .prependTo(b.$slideTrack) 3470 .addClass("slick-cloned"); 3471 for (c = 0; e > c; c += 1) 3472 (d = c), 3473 a(b.$slides[d]) 3474 .clone(!0) 3475 .attr("id", "") 3476 .attr("data-slick-index", d + b.slideCount) 3477 .appendTo(b.$slideTrack) 3478 .addClass("slick-cloned"); 3479 b.$slideTrack 3480 .find(".slick-cloned") 3481 .find("[id]") 3482 .each(function() { 3483 a(this).attr("id", ""); 3484 }); 3485 } 3486 }), 3487 (b.prototype.interrupt = function(a) { 3488 var b = this; 3489 a || b.autoPlay(), (b.interrupted = a); 3490 }), 3491 (b.prototype.selectHandler = function(b) { 3492 var c = this, 3493 d = a(b.target).is(".slick-slide") 3494 ? a(b.target) 3495 : a(b.target).parents(".slick-slide"), 3496 e = parseInt(d.attr("data-slick-index")); 3497 return ( 3498 e || (e = 0), 3499 c.slideCount <= c.options.slidesToShow 3500 ? (c.setSlideClasses(e), void c.asNavFor(e)) 3501 : void c.slideHandler(e) 3502 ); 3503 }), 3504 (b.prototype.slideHandler = function(a, b, c) { 3505 var d, 3506 e, 3507 f, 3508 g, 3509 j, 3510 h = null, 3511 i = this; 3512 return ( 3513 (b = b || !1), 3514 (i.animating === !0 && i.options.waitForAnimate === !0) || 3515 (i.options.fade === !0 && i.currentSlide === a) || 3516 i.slideCount <= i.options.slidesToShow 3517 ? void 0 3518 : (b === !1 && i.asNavFor(a), 3519 (d = a), 3520 (h = i.getLeft(d)), 3521 (g = i.getLeft(i.currentSlide)), 3522 (i.currentLeft = null === i.swipeLeft ? g : i.swipeLeft), 3523 i.options.infinite === !1 && 3524 i.options.centerMode === !1 && 3525 (0 > a || a > i.getDotCount() * i.options.slidesToScroll) 3526 ? void ( 3527 i.options.fade === !1 && 3528 ((d = i.currentSlide), 3529 c !== !0 3530 ? i.animateSlide(g, function() { 3531 i.postSlide(d); 3532 }) 3533 : i.postSlide(d)) 3534 ) 3535 : i.options.infinite === !1 && 3536 i.options.centerMode === !0 && 3537 (0 > a || a > i.slideCount - i.options.slidesToScroll) 3538 ? void ( 3539 i.options.fade === !1 && 3540 ((d = i.currentSlide), 3541 c !== !0 3542 ? i.animateSlide(g, function() { 3543 i.postSlide(d); 3544 }) 3545 : i.postSlide(d)) 3546 ) 3547 : (i.options.autoplay && clearInterval(i.autoPlayTimer), 3548 (e = 3549 0 > d 3550 ? i.slideCount % i.options.slidesToScroll !== 0 3551 ? i.slideCount - 3552 i.slideCount % i.options.slidesToScroll 3553 : i.slideCount + d 3554 : d >= i.slideCount 3555 ? i.slideCount % i.options.slidesToScroll !== 0 3556 ? 0 3557 : d - i.slideCount 3558 : d), 3559 (i.animating = !0), 3560 i.$slider.trigger("beforeChange", [i, i.currentSlide, e]), 3561 (f = i.currentSlide), 3562 (i.currentSlide = e), 3563 i.setSlideClasses(i.currentSlide), 3564 i.options.asNavFor && 3565 ((j = i.getNavTarget()), 3566 (j = j.slick("getSlick")), 3567 j.slideCount <= j.options.slidesToShow && 3568 j.setSlideClasses(i.currentSlide)), 3569 i.updateDots(), 3570 i.updateArrows(), 3571 i.options.fade === !0 3572 ? (c !== !0 3573 ? (i.fadeSlideOut(f), 3574 i.fadeSlide(e, function() { 3575 i.postSlide(e); 3576 })) 3577 : i.postSlide(e), 3578 void i.animateHeight()) 3579 : void (c !== !0 3580 ? i.animateSlide(h, function() { 3581 i.postSlide(e); 3582 }) 3583 : i.postSlide(e)))) 3584 ); 3585 }), 3586 (b.prototype.startLoad = function() { 3587 var a = this; 3588 a.options.arrows === !0 && 3589 a.slideCount > a.options.slidesToShow && 3590 (a.$prevArrow.hide(), a.$nextArrow.hide()), 3591 a.options.dots === !0 && 3592 a.slideCount > a.options.slidesToShow && 3593 a.$dots.hide(), 3594 a.$slider.addClass("slick-loading"); 3595 }), 3596 (b.prototype.swipeDirection = function() { 3597 var a, 3598 b, 3599 c, 3600 d, 3601 e = this; 3602 return ( 3603 (a = e.touchObject.startX - e.touchObject.curX), 3604 (b = e.touchObject.startY - e.touchObject.curY), 3605 (c = Math.atan2(b, a)), 3606 (d = Math.round(180 * c / Math.PI)), 3607 0 > d && (d = 360 - Math.abs(d)), 3608 45 >= d && d >= 0 3609 ? e.options.rtl === !1 ? "left" : "right" 3610 : 360 >= d && d >= 315 3611 ? e.options.rtl === !1 ? "left" : "right" 3612 : d >= 135 && 225 >= d 3613 ? e.options.rtl === !1 ? "right" : "left" 3614 : e.options.verticalSwiping === !0 3615 ? d >= 35 && 135 >= d ? "down" : "up" 3616 : "vertical" 3617 ); 3618 }), 3619 (b.prototype.swipeEnd = function(a) { 3620 var c, 3621 d, 3622 b = this; 3623 if ( 3624 ((b.dragging = !1), 3625 (b.interrupted = !1), 3626 (b.shouldClick = !(b.touchObject.swipeLength > 10)), 3627 void 0 === b.touchObject.curX) 3628 ) 3629 return !1; 3630 if ( 3631 (b.touchObject.edgeHit === !0 && 3632 b.$slider.trigger("edge", [b, b.swipeDirection()]), 3633 b.touchObject.swipeLength >= b.touchObject.minSwipe) 3634 ) { 3635 switch ((d = b.swipeDirection())) {
3636 case "left": 3637 case "down": 3638 (c = b.options.swipeToSlide 3639 ? b.checkNavigable(b.currentSlide + b.getSlideCount()) 3640 : b.currentSlide + b.getSlideCount()), 3641 (b.currentDirection = 0); 3642 break; 3643 case "right": 3644 case "up": 3645 (c = b.options.swipeToSlide 3646 ? b.checkNavigable(b.currentSlide - b.getSlideCount()) 3647 : b.currentSlide - b.getSlideCount()), 3648 (b.currentDirection = 1); 3649 } 3650 "vertical" != d && 3651 (b.slideHandler(c), 3652 (b.touchObject = {}), 3653 b.$slider.trigger("swipe", [b, d])); 3654 } else 3655 b.touchObject.startX !== b.touchObject.curX && 3656 (b.slideHandler(b.currentSlide), (b.touchObject = {})); 3657 }), 3658 (b.prototype.swipeHandler = function(a) { 3659 var b = this; 3660 if ( 3661 !( 3662 b.options.swipe === !1 || 3663 ("ontouchend" in document && b.options.swipe === !1) || 3664 (b.options.draggable === !1 && -1 !== a.type.indexOf("mouse")) 3665 ) 3666 ) 3667 switch (((b.touchObject.fingerCount = 3668 a.originalEvent && void 0 !== a.originalEvent.touches 3669 ? a.originalEvent.touches.length 3670 : 1), 3671 (b.touchObject.minSwipe = b.listWidth / b.options.touchThreshold), 3672 b.options.verticalSwiping === !0 && 3673 (b.touchObject.minSwipe = b.listHeight / b.options.touchThreshold), 3674 a.data.action)) { 3675 case "start": 3676 b.swipeStart(a); 3677 break; 3678 case "move": 3679 b.swipeMove(a); 3680 break; 3681 case "end": 3682 b.swipeEnd(a); 3683 } 3684 }), 3685 (b.prototype.swipeMove = function(a) { 3686 var d, 3687 e, 3688 f, 3689 g, 3690 h, 3691 b = this; 3692 return ( 3693 (h = void 0 !== a.originalEvent ? a.originalEvent.touches : null), 3694 !(!b.dragging || (h && 1 !== h.length)) && 3695 ((d = b.getLeft(b.currentSlide)), 3696 (b.touchObject.curX = void 0 !== h ? h[0].pageX : a.clientX), 3697 (b.touchObject.curY = void 0 !== h ? h[0].pageY : a.clientY), 3698 (b.touchObject.swipeLength = Math.round( 3699 Math.sqrt(Math.pow(b.touchObject.curX - b.touchObject.startX, 2)) 3700 )), 3701 b.options.verticalSwiping === !0 && 3702 (b.touchObject.swipeLength = Math.round( 3703 Math.sqrt( 3704 Math.pow(b.touchObject.curY - b.touchObject.startY, 2) 3705 ) 3706 )), 3707 (e = b.swipeDirection()), 3708 "vertical" !== e 3709 ? (void 0 !== a.originalEvent && 3710 b.touchObject.swipeLength > 4 && 3711 a.preventDefault(), 3712 (g = 3713 (b.options.rtl === !1 ? 1 : -1) * 3714 (b.touchObject.curX > b.touchObject.startX ? 1 : -1)), 3715 b.options.verticalSwiping === !0 && 3716 (g = b.touchObject.curY > b.touchObject.startY ? 1 : -1), 3717 (f = b.touchObject.swipeLength), 3718 (b.touchObject.edgeHit = !1), 3719 b.options.infinite === !1 && 3720 ((0 === b.currentSlide && "right" === e) || 3721 (b.currentSlide >= b.getDotCount() && "left" === e)) && 3722 ((f = b.touchObject.swipeLength * b.options.edgeFriction), 3723 (b.touchObject.edgeHit = !0)), 3724 b.options.vertical === !1 3725 ? (b.swipeLeft = d + f * g) 3726 : (b.swipeLeft = 3727 d + f * (b.$list.height() / b.listWidth) * g), 3728 b.options.verticalSwiping === !0 && (b.swipeLeft = d + f * g), 3729 b.options.fade !== !0 && 3730 b.options.touchMove !== !1 && 3731 (b.animating === !0 3732 ? ((b.swipeLeft = null), !1) 3733 : void b.setCSS(b.swipeLeft))) 3734 : void 0) 3735 ); 3736 }), 3737 (b.prototype.swipeStart = function(a) { 3738 var c, 3739 b = this; 3740 return ( 3741 (b.interrupted = !0), 3742 1 !== b.touchObject.fingerCount || 3743 b.slideCount <= b.options.slidesToShow 3744 ? ((b.touchObject = {}), !1) 3745 : (void 0 !== a.originalEvent && 3746 void 0 !== a.originalEvent.touches && 3747 (c = a.originalEvent.touches[0]), 3748 (b.touchObject.startX = b.touchObject.curX = 3749 void 0 !== c ? c.pageX : a.clientX), 3750 (b.touchObject.startY = b.touchObject.curY = 3751 void 0 !== c ? c.pageY : a.clientY), 3752 void (b.dragging = !0)) 3753 ); 3754 }), 3755 (b.prototype.unfilterSlides = b.prototype.slickUnfilter = function() { 3756 var a = this; 3757 null !== a.$slidesCache && 3758 (a.unload(), 3759 a.$slideTrack.children(this.options.slide).detach(), 3760 a.$slidesCache.appendTo(a.$slideTrack), 3761 a.reinit()); 3762 }), 3763 (b.prototype.unload = function() { 3764 var b = this; 3765 a(".slick-cloned", b.$slider).remove(), 3766 b.$dots && b.$dots.remove(), 3767 b.$prevArrow && 3768 b.htmlExpr.test(b.options.prevArrow) && 3769 b.$prevArrow.remove(), 3770 b.$nextArrow && 3771 b.htmlExpr.test(b.options.nextArrow) && 3772 b.$nextArrow.remove(), 3773 b.$slides 3774 .removeClass("slick-slide slick-active slick-visible slick-current") 3775 .attr("aria-hidden", "true") 3776 .css("width", ""); 3777 }),
3778 (b.prototype.unslick = function(a) { 3779 var b = this; 3780 b.$slider.trigger("unslick", [b, a]), b.destroy(); 3781 }), 3782 (b.prototype.updateArrows = function() { 3783 var b, 3784 a = this; 3785 (b = Math.floor(a.options.slidesToShow / 2)), 3786 a.options.arrows === !0 && 3787 a.slideCount > a.options.slidesToShow && 3788 !a.options.infinite && 3789 (a.$prevArrow 3790 .removeClass("slick-disabled") 3791 .attr("aria-disabled", "false"), 3792 a.$nextArrow 3793 .removeClass("slick-disabled") 3794 .attr("aria-disabled", "false"), 3795 0 === a.currentSlide 3796 ? (a.$prevArrow 3797 .addClass("slick-disabled") 3798 .attr("aria-disabled", "true"), 3799 a.$nextArrow 3800 .removeClass("slick-disabled") 3801 .attr("aria-disabled", "false")) 3802 : a.currentSlide >= a.slideCount - a.options.slidesToShow && 3803 a.options.centerMode === !1 3804 ? (a.$nextArrow 3805 .addClass("slick-disabled") 3806 .attr("aria-disabled", "true"), 3807 a.$prevArrow 3808 .removeClass("slick-disabled") 3809 .attr("aria-disabled", "false")) 3810 : a.currentSlide >= a.slideCount - 1 && 3811 a.options.centerMode === !0 && 3812 (a.$nextArrow 3813 .addClass("slick-disabled") 3814 .attr("aria-disabled", "true"), 3815 a.$prevArrow 3816 .removeClass("slick-disabled") 3817 .attr("aria-disabled", "false"))); 3818 }), 3819 (b.prototype.updateDots = function() { 3820 var a = this; 3821 null !== a.$dots && 3822 (a.$dots 3823 .find("li") 3824 .removeClass("slick-active") 3825 .attr("aria-hidden", "true"), 3826 a.$dots 3827 .find("li") 3828 .eq(Math.floor(a.currentSlide / a.options.slidesToScroll)) 3829 .addClass("slick-active") 3830 .attr("aria-hidden", "false")); 3831 }), 3832 (b.prototype.visibility = function() { 3833 var a = this; 3834 a.options.autoplay && 3835 (document[a.hidden] ? (a.interrupted = !0) : (a.interrupted = !1)); 3836 }), 3837 (a.fn.slick = function() { 3838 var f, 3839 g, 3840 a = this, 3841 c = arguments[0], 3842 d = Array.prototype.slice.call(arguments, 1), 3843 e = a.length; 3844 for (f = 0; e > f; f++) 3845 if ( 3846 ("object" == typeof c || "undefined" == typeof c 3847 ? (a[f].slick = new b(a[f], c)) 3848 : (g = a[f].slick[c].apply(a[f].slick, d)), 3849 "undefined" != typeof g) 3850 ) 3851 return g; 3852 return a; 3853 }); 3854 }), 3855 $(document).ready(function() { 3856 if ($(".logo__slider").hasClass("two__rows")) { 3857 $(".two__rows").each(function() { 3858 $(this).slick({ 3859 dots: !1, 3860 rows: 2, 3861 arrows: !1, 3862 infinite: !0, 3863 speed: 500, 3864 slidesToShow: 3, 3865 slidesToScroll: 1, 3866 autoplay: !0, 3867 responsive: [ 3868 { 3869 breakpoint: 1024, 3870 settings: { 3871 slidesToShow: 3, 3872 slidesToScroll: 3, 3873 infinite: !0, 3874 dots: !0 3875 } 3876 }, 3877 { 3878 breakpoint: 600, 3879 settings: { slidesToShow: 2, slidesToScroll: 2 } 3880 }, 3881 { 3882 breakpoint: 480, 3883 settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 } 3884 } 3885 ] 3886 }); 3887 }); 3888 } else { 3889 $(".logo__slider").each(function() { 3890 $(this).slick({ 3891 dots: !1, 3892 rows: 1, 3893 arrows: !1, 3894 infinite: !0, 3895 speed: 500, 3896 slidesToShow: 5, 3897 slidesToScroll: 1, 3898 autoplay: !0, 3899 responsive: [ 3900 { 3901 breakpoint: 1024, 3902 settings: { 3903 slidesToShow: 3, 3904 slidesToScroll: 3, 3905 infinite: !0, 3906 dots: !0 3907 } 3908 }, 3909 { 3910 breakpoint: 600, 3911 settings: { slidesToShow: 2, slidesToScroll: 2 } 3912 }, 3913 { 3914 breakpoint: 480, 3915 settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 } 3916 } 3917 ] 3918 }); 3919 }); 3920 } 3921 $(".partners_slider").each(function() { 3922 $(this).slick({ 3923 dots: !0, 3924 arrows: !1, 3925 infinite: !0, 3926 speed: 500, 3927 slidesToShow: 2, 3928 slidesToScroll: 1, 3929 autoplay: !0, 3930 responsive: [ 3931 { 3932 breakpoint: 600, 3933 settings: { dots: !0, slidesToShow: 1, slidesToScroll: 1 } 3934 }, 3935 { 3936 breakpoint: 480, 3937 settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 } 3938 } 3939 ] 3940 }); 3941 }); 3942 var listItem = $(".current_month"), 3943 initial = $(".calendar__container").index(listItem); 3944 $(".calendars__slider").slick({ 3945 dots: !1, 3946 infinite: !1, 3947 speed: 300, 3948 slidesToShow: 1, 3949 autoplay: !1, 3950 adaptiveHeight: !0, 3951 draggable: !1, 3952 fade: !0, 3953 arrows: !0, 3954 initialSlide: initial, 3955 appendArrows: $(".navigation__area"), 3956 prevArrow: 3957 '<button type="button" class="flo__nav">< Show Previous Month</button>', 3958 nextArrow: 3959 '<button type="button" class="flo__nav">Show Next Month ></button>', 3960 responsive: [ 3961 { breakpoint: 1024, settings: { draggable: !0 } }, 3962 { 3963 breakpoint: 480, 3964 settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 } 3965 } 3966 ] 3967 }), 3968 $(".slider").each(function() { 3969 $(this).slick({ 3970 dots: !0, 3971 arrows: !1, 3972 infinite: !0, 3973 speed: 500, 3974 fade: !0, 3975 autoplay: !0, 3976 cssEase: "linear", 3977 responsive: [ 3978 { 3979 breakpoint: 768, 3980 settings: { draggable: !0, autoplay: !1, adaptiveHeight: !0 } 3981 }, 3982 { 3983 breakpoint: 480, 3984 settings: { slidesToShow: 1, slidesToScroll: 1, arrows: !0 } 3985 } 3986 ] 3987 }); 3988 }); 3989 document.querySelector("#photogrid"), 3990 document.createElement("photogrid__single"); 3991 }); 3992var v = $(".calendar__section") 3993 .parent() 3994 .width(); 3995v <= 768 3996 ? $(".calendar__section").addClass("mobile") 3997 : $(".calendar__section").removeClass("mobile"), 3998 $(window).resize(function() { 3999 var v = $(".calendar__section") 4000 .parent() 4001 .width(); 4002 v <= 768 4003 ? $(".calendar__section").addClass("mobile") 4004 : $(".calendar__section").removeClass("mobile"); 4005 }), 4006 $(document).scroll(function() { 4007 $(".bordered__infobox__section:in-viewport").addClass("in"); 4008 var biggestHeight = "0"; 4009 $(".community__section *").each(function() { 4010 $(this).height() > biggestHeight && (biggestHeight = $(this).height()); 4011 }), 4012 $(".community__section").height(biggestHeight); 4013 }), 4014 (function($) { 4015 $.fn.visible = function(partial) { 4016 var $t = $(this), 4017 $w = $(window), 4018 viewTop = $w.scrollTop(),
4019 viewBottom = viewTop + $w.height(), 4020 _top = $t.offset().top, 4021 _bottom = _top + $t.height(), 4022 compareTop = partial === !0 ? _bottom : _top, 4023 compareBottom = partial === !0 ? _top : _bottom; 4024 return compareBottom <= viewBottom && compareTop >= viewTop; 4025 }; 4026 })(jQuery); 4027var win = $(window), 4028 allMods = $(".animated"); 4029$(document).ready(function() { 4030 $(".animated").each(function(i, el) { 4031 var el = $(el); 4032 el.visible(!0) && el.addClass("come-in"); 4033 }); 4034}), 4035 win.scroll(function(event) { 4036 allMods.each(function(i, el) { 4037 var el = $(el); 4038 el.visible(!0) 4039 ? el.addClass("come-in") 4040 : $(window).scrollTop() + $(window).height() < el.offset().top - 150 && 4041 el.removeClass("come-in"); 4042 }); 4043 }), 4044 $(".tabspanel__btn").click(function() { 4045 var data = $(this).attr("data-target"); 4046 $(".tabspanel__nav") 4047 .find(".active") 4048 .removeClass("active"), 4049 $(this).addClass("active"), 4050 $(".infotabs__section") 4051 .find(".tabspanel__content.active") 4052 .removeClass("active"), 4053 $(".infotabs__section") 4054 .find("#" + data) 4055 .addClass("active"); 4056 }); 4057var flag = 0; 4058win.scroll(function() { 4059 0 == flag && 4060 $(".infographics--type-three .infographics__number").each(function(i, el) { 4061 var el = $(el); 4062 el.visible(!0) && 4063 ((flag = 1), 4064 $(this) 4065 .prop("Counter", 0) 4066 .animate( 4067 { Counter: $(this).text() }, 4068 { 4069 duration: 4e3, 4070 easing: "swing", 4071 step: function(now) { 4072 $(this).text(Math.ceil(now)); 4073 } 4074 } 4075 )); 4076 }); 4077}), 4078 $("#signup").click(function() { 4079 $("html, body").animate({ scrollTop: $("#newsletter").offset().top }, 2e3); 4080 }), 4081 $(".faqpage__tab").click(function() { 4082 var data = $(this).attr("data-target"); 4083 $(".faqpage__topics") 4084 .find(".active") 4085 .removeClass("active"), 4086 $(this).addClass("active"), 4087 $(".faqpage__listing") 4088 .find(".faqpage__posts.active") 4089 .removeClass("active"), 4090 $(".faqpage__listing") 4091 .find("#" + data) 4092 .addClass("active"); 4093 }), 4094 $(".faqpage__post").click(function() { 4095 $(".faqpage__posts") 4096 .find(".faqpage__post.active") 4097 .removeClass("active"), 4098 $(this).addClass("active"); 4099 }), 4100 $(".menu-toggle").click(function() { 4101 console.log("open menu"), 4102 $(this).hasClass("in") 4103 ? ($(".menu-toggle + .nav").removeClass("in"), 4104 $(this).removeClass("in")) 4105 : ($(".menu-toggle + .nav").addClass("in"), $(this).addClass("in")); 4106 }), 4107 $("select").each(function() { 4108 centerSelect($(this)); 4109 }), 4110 $("select").on("change", function() { 4111 centerSelect($(this)); 4112 }), 4113 $(".calendar__cel").each(function() { 4114 2 == $(this).find("a").length && $(this).addClass("two--events"); 4115 }); 4116 4117jQuery(".nav-drop--toggle").on("click", function(e) { 4118 e.preventDefault(); 4119 jQuery(this) 4120 .parent() 4121 .toggleClass("in"); 4122 jQuery(this).toggleClass("in"); 4123});
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.