PageSourceSearch

https://unifor.br/o/unifor-theme/vendors/js/vendors.js?browserId=c…=js&languageId=pt_BR&t=1743535993102

js unifor.br collected 2026-09-24 09:00:10 UTC 465,543 bytes, 4,191 lines download raw bytes

vendor: 4,846 bytes, lines 1-172
1/*1764360306000*/
2Liferay.Loader.define._amd = Liferay.Loader.define.amd;
3Liferay.Loader.define.amd = false;
4/*! jQuery UI - v1.12.1 - 2017-09-19
5* http://jqueryui.com
6* Includes: widget.js, position.js, keycode.js, unique-id.js, widgets/datepicker.js, widgets/menu.js
7* Copyright jQuery Foundation and other contributors; Licensed MIT */
8
9(function( factory ) {
10	if ( typeof define === "function" && define.amd ) {
11
12		// AMD. Register as an anonymous module.
13		define([ "jquery" ], factory );
14	} else {
15
16		// Browser globals
17		factory( jQuery );
18	}
19}(function( $ ) {
20
21$.ui = $.ui || {};
22
23var version = $.ui.version = "1.12.1";
24
25
26/*!
27 * jQuery UI Widget 1.12.1
28 * http://jqueryui.com
29 *
30 * Copyright jQuery Foundation and other contributors
31 * Released under the MIT license.
32 * http://jquery.org/license
33 */
34
35//>>label: Widget
36//>>group: Core
37//>>description: Provides a factory for creating stateful widgets with a common API.
38//>>docs: http://api.jqueryui.com/jQuery.widget/
39//>>demos: http://jqueryui.com/widget/
40
41
42
43var widgetUuid = 0;
44var widgetSlice = Array.prototype.slice;
45
46$.cleanData = ( function( orig ) {
47	return function( elems ) {
48		var events, elem, i;
49		for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
50			try {
51
52				// Only trigger remove when necessary to save time
53				events = $._data( elem, "events" );
54				if ( events && events.remove ) {
55					$( elem ).triggerHandler( "remove" );
56				}
57
58			// Http://bugs.jquery.com/ticket/8235
59			} catch ( e ) {}
60		}
61		orig( elems );
62	};
63} )( $.cleanData );
64
65$.widget = function( name, base, prototype ) {
66	var existingConstructor, constructor, basePrototype;
67
68	// ProxiedPrototype allows the provided prototype to remain unmodified
69	// so that it can be used as a mixin for multiple widgets (#8876)
70	var proxiedPrototype = {};
71
72	var namespace = name.split( "." )[ 0 ];
73	name = name.split( "." )[ 1 ];
74	var fullName = namespace + "-" + name;
75
76	if ( !prototype ) {
77		prototype = base;
78		base = $.Widget;
79	}
80
81	if ( $.isArray( prototype ) ) {
82		prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
83	}
84
85	// Create selector for plugin
86	$.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
87		return !!$.data( elem, fullName );
88	};
89
90	$[ namespace ] = $[ namespace ] || {};
91	existingConstructor = $[ namespace ][ name ];
92	constructor = $[ namespace ][ name ] = function( options, element ) {
93
94		// Allow instantiation without "new" keyword
95		if ( !this._createWidget ) {
96			return new constructor( options, element );
97		}
98
99		// Allow instantiation without initializing for simple inheritance
100		// must use "new" keyword (the code above always passes args)
101		if ( arguments.length ) {
102			this._createWidget( options, element );
103		}
104	};
105
106	// Extend with the existing constructor to carry over any static properties
107	$.extend( constructor, existingConstructor, {
108		version: prototype.version,
109
110		// Copy the object used to create the prototype in case we need to
111		// redefine the widget later
112		_proto: $.extend( {}, prototype ),
113
114		// Track widgets that inherit from this widget in case this widget is
115		// redefined after a widget inherits from it
116		_childConstructors: []
117	} );
118
119	basePrototype = new base();
120
121	// We need to make the options hash a property directly on the new instance
122	// otherwise we'll modify the options hash on the prototype that we're
123	// inheriting from
124	basePrototype.options = $.widget.extend( {}, basePrototype.options );
125	$.each( prototype, function( prop, value ) {
126		if ( !$.isFunction( value ) ) {
127			proxiedPrototype[ prop ] = value;
128			return;
129		}
130		proxiedPrototype[ prop ] = ( function() {
131			function _super() {
132				return base.prototype[ prop ].apply( this, arguments );
133			}
134
135			function _superApply( args ) {
136				return base.prototype[ prop ].apply( this, args );
137			}
138
139			return function() {
140				var __super = this._super;
141				var __superApply = this._superApply;
142				var returnValue;
143
144				this._super = _super;
145				this._superApply = _superApply;
146
147				returnValue = value.apply( this, arguments );
148
149				this._super = __super;
150				this._superApply = __superApply;
151
152				return returnValue;
153			};
154		} )();
155	} );
156	constructor.prototype = $.widget.extend( basePrototype, {
157
158		// TODO: remove support for widgetEventPrefix
159		// always use the name + a colon as the prefix, e.g., draggable:start
160		// don't prefix for widgets that aren't DOM-based
161		widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
162	}, proxiedPrototype, {
163		constructor: constructor,
164		namespace: namespace,
165		widgetName: name,
166		widgetFullName: fullName
167	} );
168
169	// If this widget is being redefined then we need to find all widgets that
170	// are inheriting from it and redefine all of them so that they inherit from
171	// the new version of this widget. We're essentially trying to replace one
172	// level in the prototype chain.
vendor: 4,239 bytes, lines 173-333
173	if ( existingConstructor ) {
174		$.each( existingConstructor._childConstructors, function( i, child ) {
175			var childPrototype = child.prototype;
176
177			// Redefine the child widget using the same prototype that was
178			// originally used, but inherit from the new version of the base
179			$.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
180				child._proto );
181		} );
182
183		// Remove the list of existing child constructors from the old constructor
184		// so the old child constructors can be garbage collected
185		delete existingConstructor._childConstructors;
186	} else {
187		base._childConstructors.push( constructor );
188	}
189
190	$.widget.bridge( name, constructor );
191
192	return constructor;
193};
194
195$.widget.extend = function( target ) {
196	var input = widgetSlice.call( arguments, 1 );
197	var inputIndex = 0;
198	var inputLength = input.length;
199	var key;
200	var value;
201
202	for ( ; inputIndex < inputLength; inputIndex++ ) {
203		for ( key in input[ inputIndex ] ) {
204			value = input[ inputIndex ][ key ];
205			if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
206
207				// Clone objects
208				if ( $.isPlainObject( value ) ) {
209					target[ key ] = $.isPlainObject( target[ key ] ) ?
210						$.widget.extend( {}, target[ key ], value ) :
211
212						// Don't extend strings, arrays, etc. with objects
213						$.widget.extend( {}, value );
214
215				// Copy everything else by reference
216				} else {
217					target[ key ] = value;
218				}
219			}
220		}
221	}
222	return target;
223};
224
225$.widget.bridge = function( name, object ) {
226	var fullName = object.prototype.widgetFullName || name;
227	$.fn[ name ] = function( options ) {
228		var isMethodCall = typeof options === "string";
229		var args = widgetSlice.call( arguments, 1 );
230		var returnValue = this;
231
232		if ( isMethodCall ) {
233
234			// If this is an empty collection, we need to have the instance method
235			// return undefined instead of the jQuery instance
236			if ( !this.length && options === "instance" ) {
237				returnValue = undefined;
238			} else {
239				this.each( function() {
240					var methodValue;
241					var instance = $.data( this, fullName );
242
243					if ( options === "instance" ) {
244						returnValue = instance;
245						return false;
246					}
247
248					if ( !instance ) {
249						return $.error( "cannot call methods on " + name +
250							" prior to initialization; " +
251							"attempted to call method '" + options + "'" );
252					}
253
254					if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
255						return $.error( "no such method '" + options + "' for " + name +
256							" widget instance" );
257					}
258
259					methodValue = instance[ options ].apply( instance, args );
260
261					if ( methodValue !== instance && methodValue !== undefined ) {
262						returnValue = methodValue && methodValue.jquery ?
263							returnValue.pushStack( methodValue.get() ) :
264							methodValue;
265						return false;
266					}
267				} );
268			}
269		} else {
270
271			// Allow multiple hashes to be passed on init
272			if ( args.length ) {
273				options = $.widget.extend.apply( null, [ options ].concat( args ) );
274			}
275
276			this.each( function() {
277				var instance = $.data( this, fullName );
278				if ( instance ) {
279					instance.option( options || {} );
280					if ( instance._init ) {
281						instance._init();
282					}
283				} else {
284					$.data( this, fullName, new object( options, this ) );
285				}
286			} );
287		}
288
289		return returnValue;
290	};
291};
292
293$.Widget = function( /* options, element */ ) {};
294$.Widget._childConstructors = [];
295
296$.Widget.prototype = {
297	widgetName: "widget",
298	widgetEventPrefix: "",
299	defaultElement: "<div>",
300
301	options: {
302		classes: {},
303		disabled: false,
304
305		// Callbacks
306		create: null
307	},
308
309	_createWidget: function( options, element ) {
310		element = $( element || this.defaultElement || this )[ 0 ];
311		this.element = $( element );
312		this.uuid = widgetUuid++;
313		this.eventNamespace = "." + this.widgetName + this.uuid;
314
315		this.bindings = $();
316		this.hoverable = $();
317		this.focusable = $();
318		this.classesElementLookup = {};
319
320		if ( element !== this ) {
321			$.data( element, this.widgetFullName, this );
322			this._on( true, this.element, {
323				remove: function( event ) {
324					if ( event.target === element ) {
325						this.destroy();
326					}
327				}
328			} );
329			this.document = $( element.style ?
330
331				// Element within the document
332				element.ownerDocument :
333
vendor: 6,494 bytes, lines 334-584
334				// Element is window or document
335				element.document || element );
336			this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
337		}
338
339		this.options = $.widget.extend( {},
340			this.options,
341			this._getCreateOptions(),
342			options );
343
344		this._create();
345
346		if ( this.options.disabled ) {
347			this._setOptionDisabled( this.options.disabled );
348		}
349
350		this._trigger( "create", null, this._getCreateEventData() );
351		this._init();
352	},
353
354	_getCreateOptions: function() {
355		return {};
356	},
357
358	_getCreateEventData: $.noop,
359
360	_create: $.noop,
361
362	_init: $.noop,
363
364	destroy: function() {
365		var that = this;
366
367		this._destroy();
368		$.each( this.classesElementLookup, function( key, value ) {
369			that._removeClass( value, key );
370		} );
371
372		// We can probably remove the unbind calls in 2.0
373		// all event bindings should go through this._on()
374		this.element
375			.off( this.eventNamespace )
376			.removeData( this.widgetFullName );
377		this.widget()
378			.off( this.eventNamespace )
379			.removeAttr( "aria-disabled" );
380
381		// Clean up events and states
382		this.bindings.off( this.eventNamespace );
383	},
384
385	_destroy: $.noop,
386
387	widget: function() {
388		return this.element;
389	},
390
391	option: function( key, value ) {
392		var options = key;
393		var parts;
394		var curOption;
395		var i;
396
397		if ( arguments.length === 0 ) {
398
399			// Don't return a reference to the internal hash
400			return $.widget.extend( {}, this.options );
401		}
402
403		if ( typeof key === "string" ) {
404
405			// Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
406			options = {};
407			parts = key.split( "." );
408			key = parts.shift();
409			if ( parts.length ) {
410				curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
411				for ( i = 0; i < parts.length - 1; i++ ) {
412					curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
413					curOption = curOption[ parts[ i ] ];
414				}
415				key = parts.pop();
416				if ( arguments.length === 1 ) {
417					return curOption[ key ] === undefined ? null : curOption[ key ];
418				}
419				curOption[ key ] = value;
420			} else {
421				if ( arguments.length === 1 ) {
422					return this.options[ key ] === undefined ? null : this.options[ key ];
423				}
424				options[ key ] = value;
425			}
426		}
427
428		this._setOptions( options );
429
430		return this;
431	},
432
433	_setOptions: function( options ) {
434		var key;
435
436		for ( key in options ) {
437			this._setOption( key, options[ key ] );
438		}
439
440		return this;
441	},
442
443	_setOption: function( key, value ) {
444		if ( key === "classes" ) {
445			this._setOptionClasses( value );
446		}
447
448		this.options[ key ] = value;
449
450		if ( key === "disabled" ) {
451			this._setOptionDisabled( value );
452		}
453
454		return this;
455	},
456
457	_setOptionClasses: function( value ) {
458		var classKey, elements, currentElements;
459
460		for ( classKey in value ) {
461			currentElements = this.classesElementLookup[ classKey ];
462			if ( value[ classKey ] === this.options.classes[ classKey ] ||
463					!currentElements ||
464					!currentElements.length ) {
465				continue;
466			}
467
468			// We are doing this to create a new jQuery object because the _removeClass() call
469			// on the next line is going to destroy the reference to the current elements being
470			// tracked. We need to save a copy of this collection so that we can add the new classes
471			// below.
472			elements = $( currentElements.get() );
473			this._removeClass( currentElements, classKey );
474
475			// We don't use _addClass() here, because that uses this.options.classes
476			// for generating the string of classes. We want to use the value passed in from
477			// _setOption(), this is the new value of the classes option which was passed to
478			// _setOption(). We pass this value directly to _classes().
479			elements.addClass( this._classes( {
480				element: elements,
481				keys: classKey,
482				classes: value,
483				add: true
484			} ) );
485		}
486	},
487
488	_setOptionDisabled: function( value ) {
489		this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
490
491		// If the widget is becoming disabled, then nothing is interactive
492		if ( value ) {
493			this._removeClass( this.hoverable, null, "ui-state-hover" );
494			this._removeClass( this.focusable, null, "ui-state-focus" );
495		}
496	},
497
498	enable: function() {
499		return this._setOptions( { disabled: false } );
500	},
501
502	disable: function() {
503		return this._setOptions( { disabled: true } );
504	},
505
506	_classes: function( options ) {
507		var full = [];
508		var that = this;
509
510		options = $.extend( {
511			element: this.element,
512			classes: this.options.classes || {}
513		}, options );
514
515		function processClassString( classes, checkOption ) {
516			var current, i;
517			for ( i = 0; i < classes.length; i++ ) {
518				current = that.classesElementLookup[ classes[ i ] ] || $();
519				if ( options.add ) {
520					current = $( $.unique( current.get().concat( options.element.get() ) ) );
521				} else {
522					current = $( current.not( options.element ).get() );
523				}
524				that.classesElementLookup[ classes[ i ] ] = current;
525				full.push( classes[ i ] );
526				if ( checkOption && options.classes[ classes[ i ] ] ) {
527					full.push( options.classes[ classes[ i ] ] );
528				}
529			}
530		}
531
532		this._on( options.element, {
533			"remove": "_untrackClassesElement"
534		} );
535
536		if ( options.keys ) {
537			processClassString( options.keys.match( /\S+/g ) || [], true );
538		}
539		if ( options.extra ) {
540			processClassString( options.extra.match( /\S+/g ) || [] );
541		}
542
543		return full.join( " " );
544	},
545
546	_untrackClassesElement: function( event ) {
547		var that = this;
548		$.each( that.classesElementLookup, function( key, value ) {
549			if ( $.inArray( event.target, value ) !== -1 ) {
550				that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
551			}
552		} );
553	},
554
555	_removeClass: function( element, keys, extra ) {
556		return this._toggleClass( element, keys, extra, false );
557	},
558
559	_addClass: function( element, keys, extra ) {
560		return this._toggleClass( element, keys, extra, true );
561	},
562
563	_toggleClass: function( element, keys, extra, add ) {
564		add = ( typeof add === "boolean" ) ? add : extra;
565		var shift = ( typeof element === "string" || element === null ),
566			options = {
567				extra: shift ? keys : extra,
568				keys: shift ? element : keys,
569				element: shift ? this.element : element,
570				add: add
571			};
572		options.element.toggleClass( this._classes( options ), add );
573		return this;
574	},
575
576	_on: function( suppressDisabledCheck, element, handlers ) {
577		var delegateElement;
578		var instance = this;
579
580		// No suppressDisabledCheck flag, shuffle arguments
581		if ( typeof suppressDisabledCheck !== "boolean" ) {
582			handlers = element;
583			element = suppressDisabledCheck;
584			suppressDisabledCheck = false;
vendor: 4,288 bytes, lines 585-732
585		}
586
587		// No element argument, shuffle and use this.element
588		if ( !handlers ) {
589			handlers = element;
590			element = this.element;
591			delegateElement = this.widget();
592		} else {
593			element = delegateElement = $( element );
594			this.bindings = this.bindings.add( element );
595		}
596
597		$.each( handlers, function( event, handler ) {
598			function handlerProxy() {
599
600				// Allow widgets to customize the disabled handling
601				// - disabled as an array instead of boolean
602				// - disabled class as method for disabling individual parts
603				if ( !suppressDisabledCheck &&
604						( instance.options.disabled === true ||
605						$( this ).hasClass( "ui-state-disabled" ) ) ) {
606					return;
607				}
608				return ( typeof handler === "string" ? instance[ handler ] : handler )
609					.apply( instance, arguments );
610			}
611
612			// Copy the guid so direct unbinding works
613			if ( typeof handler !== "string" ) {
614				handlerProxy.guid = handler.guid =
615					handler.guid || handlerProxy.guid || $.guid++;
616			}
617
618			var match = event.match( /^([\w:-]*)\s*(.*)$/ );
619			var eventName = match[ 1 ] + instance.eventNamespace;
620			var selector = match[ 2 ];
621
622			if ( selector ) {
623				delegateElement.on( eventName, selector, handlerProxy );
624			} else {
625				element.on( eventName, handlerProxy );
626			}
627		} );
628	},
629
630	_off: function( element, eventName ) {
631		eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
632			this.eventNamespace;
633		element.off( eventName ).off( eventName );
634
635		// Clear the stack to avoid memory leaks (#10056)
636		this.bindings = $( this.bindings.not( element ).get() );
637		this.focusable = $( this.focusable.not( element ).get() );
638		this.hoverable = $( this.hoverable.not( element ).get() );
639	},
640
641	_delay: function( handler, delay ) {
642		function handlerProxy() {
643			return ( typeof handler === "string" ? instance[ handler ] : handler )
644				.apply( instance, arguments );
645		}
646		var instance = this;
647		return setTimeout( handlerProxy, delay || 0 );
648	},
649
650	_hoverable: function( element ) {
651		this.hoverable = this.hoverable.add( element );
652		this._on( element, {
653			mouseenter: function( event ) {
654				this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
655			},
656			mouseleave: function( event ) {
657				this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
658			}
659		} );
660	},
661
662	_focusable: function( element ) {
663		this.focusable = this.focusable.add( element );
664		this._on( element, {
665			focusin: function( event ) {
666				this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
667			},
668			focusout: function( event ) {
669				this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
670			}
671		} );
672	},
673
674	_trigger: function( type, event, data ) {
675		var prop, orig;
676		var callback = this.options[ type ];
677
678		data = data || {};
679		event = $.Event( event );
680		event.type = ( type === this.widgetEventPrefix ?
681			type :
682			this.widgetEventPrefix + type ).toLowerCase();
683
684		// The original event may come from any element
685		// so we need to reset the target on the new event
686		event.target = this.element[ 0 ];
687
688		// Copy original event properties over to the new event
689		orig = event.originalEvent;
690		if ( orig ) {
691			for ( prop in orig ) {
692				if ( !( prop in event ) ) {
693					event[ prop ] = orig[ prop ];
694				}
695			}
696		}
697
698		this.element.trigger( event, data );
699		return !( $.isFunction( callback ) &&
700			callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
701			event.isDefaultPrevented() );
702	}
703};
704
705$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
706	$.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
707		if ( typeof options === "string" ) {
708			options = { effect: options };
709		}
710
711		var hasOptions;
712		var effectName = !options ?
713			method :
714			options === true || typeof options === "number" ?
715				defaultEffect :
716				options.effect || defaultEffect;
717
718		options = options || {};
719		if ( typeof options === "number" ) {
720			options = { duration: options };
721		}
722
723		hasOptions = !$.isEmptyObject( options );
724		options.complete = callback;
725
726		if ( options.delay ) {
727			element.delay( options.delay );
728		}
729
730		if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
731			element[ method ]( options );
732		} else if ( effectName !== method && element[ effectName ] ) {
vendor: 3,939 bytes, lines 733-885
733			element[ effectName ]( options.duration, options.easing, callback );
734		} else {
735			element.queue( function( next ) {
736				$( this )[ method ]();
737				if ( callback ) {
738					callback.call( element[ 0 ] );
739				}
740				next();
741			} );
742		}
743	};
744} );
745
746var widget = $.widget;
747
748
749/*!
750 * jQuery UI Position 1.12.1
751 * http://jqueryui.com
752 *
753 * Copyright jQuery Foundation and other contributors
754 * Released under the MIT license.
755 * http://jquery.org/license
756 *
757 * http://api.jqueryui.com/position/
758 */
759
760//>>label: Position
761//>>group: Core
762//>>description: Positions elements relative to other elements.
763//>>docs: http://api.jqueryui.com/position/
764//>>demos: http://jqueryui.com/position/
765
766
767( function() {
768var cachedScrollbarWidth,
769	max = Math.max,
770	abs = Math.abs,
771	rhorizontal = /left|center|right/,
772	rvertical = /top|center|bottom/,
773	roffset = /[\+\-]\d+(\.[\d]+)?%?/,
774	rposition = /^\w+/,
775	rpercent = /%$/,
776	_position = $.fn.position;
777
778function getOffsets( offsets, width, height ) {
779	return [
780		parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ),
781		parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 )
782	];
783}
784
785function parseCss( element, property ) {
786	return parseInt( $.css( element, property ), 10 ) || 0;
787}
788
789function getDimensions( elem ) {
790	var raw = elem[ 0 ];
791	if ( raw.nodeType === 9 ) {
792		return {
793			width: elem.width(),
794			height: elem.height(),
795			offset: { top: 0, left: 0 }
796		};
797	}
798	if ( $.isWindow( raw ) ) {
799		return {
800			width: elem.width(),
801			height: elem.height(),
802			offset: { top: elem.scrollTop(), left: elem.scrollLeft() }
803		};
804	}
805	if ( raw.preventDefault ) {
806		return {
807			width: 0,
808			height: 0,
809			offset: { top: raw.pageY, left: raw.pageX }
810		};
811	}
812	return {
813		width: elem.outerWidth(),
814		height: elem.outerHeight(),
815		offset: elem.offset()
816	};
817}
818
819$.position = {
820	scrollbarWidth: function() {
821		if ( cachedScrollbarWidth !== undefined ) {
822			return cachedScrollbarWidth;
823		}
824		var w1, w2,
825			div = $( "<div " +
826				"style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'>" +
827				"<div style='height:100px;width:auto;'></div></div>" ),
828			innerDiv = div.children()[ 0 ];
829
830		$( "body" ).append( div );
831		w1 = innerDiv.offsetWidth;
832		div.css( "overflow", "scroll" );
833
834		w2 = innerDiv.offsetWidth;
835
836		if ( w1 === w2 ) {
837			w2 = div[ 0 ].clientWidth;
838		}
839
840		div.remove();
841
842		return ( cachedScrollbarWidth = w1 - w2 );
843	},
844	getScrollInfo: function( within ) {
845		var overflowX = within.isWindow || within.isDocument ? "" :
846				within.element.css( "overflow-x" ),
847			overflowY = within.isWindow || within.isDocument ? "" :
848				within.element.css( "overflow-y" ),
849			hasOverflowX = overflowX === "scroll" ||
850				( overflowX === "auto" && within.width < within.element[ 0 ].scrollWidth ),
851			hasOverflowY = overflowY === "scroll" ||
852				( overflowY === "auto" && within.height < within.element[ 0 ].scrollHeight );
853		return {
854			width: hasOverflowY ? $.position.scrollbarWidth() : 0,
855			height: hasOverflowX ? $.position.scrollbarWidth() : 0
856		};
857	},
858	getWithinInfo: function( element ) {
859		var withinElement = $( element || window ),
860			isWindow = $.isWindow( withinElement[ 0 ] ),
861			isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9,
862			hasOffset = !isWindow && !isDocument;
863		return {
864			element: withinElement,
865			isWindow: isWindow,
866			isDocument: isDocument,
867			offset: hasOffset ? $( element ).offset() : { left: 0, top: 0 },
868			scrollLeft: withinElement.scrollLeft(),
869			scrollTop: withinElement.scrollTop(),
870			width: withinElement.outerWidth(),
871			height: withinElement.outerHeight()
872		};
873	}
874};
875
876$.fn.position = function( options ) {
877	if ( !options || !options.of ) {
878		return _position.apply( this, arguments );
879	}
880
881	// Make a copy, we don't want to modify arguments
882	options = $.extend( {}, options );
883
884	var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions,
885		target = $( options.of ),
vendor: 10,983 bytes, lines 885-1238
885
886		within = $.position.getWithinInfo( options.within ),
887		scrollInfo = $.position.getScrollInfo( within ),
888		collision = ( options.collision || "flip" ).split( " " ),
889		offsets = {};
890
891	dimensions = getDimensions( target );
892	if ( target[ 0 ].preventDefault ) {
893
894		// Force left top to allow flipping
895		options.at = "left top";
896	}
897	targetWidth = dimensions.width;
898	targetHeight = dimensions.height;
899	targetOffset = dimensions.offset;
900
901	// Clone to reuse original targetOffset later
902	basePosition = $.extend( {}, targetOffset );
903
904	// Force my and at to have valid horizontal and vertical positions
905	// if a value is missing or invalid, it will be converted to center
906	$.each( [ "my", "at" ], function() {
907		var pos = ( options[ this ] || "" ).split( " " ),
908			horizontalOffset,
909			verticalOffset;
910
911		if ( pos.length === 1 ) {
912			pos = rhorizontal.test( pos[ 0 ] ) ?
913				pos.concat( [ "center" ] ) :
914				rvertical.test( pos[ 0 ] ) ?
915					[ "center" ].concat( pos ) :
916					[ "center", "center" ];
917		}
918		pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center";
919		pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center";
920
921		// Calculate offsets
922		horizontalOffset = roffset.exec( pos[ 0 ] );
923		verticalOffset = roffset.exec( pos[ 1 ] );
924		offsets[ this ] = [
925			horizontalOffset ? horizontalOffset[ 0 ] : 0,
926			verticalOffset ? verticalOffset[ 0 ] : 0
927		];
928
929		// Reduce to just the positions without the offsets
930		options[ this ] = [
931			rposition.exec( pos[ 0 ] )[ 0 ],
932			rposition.exec( pos[ 1 ] )[ 0 ]
933		];
934	} );
935
936	// Normalize collision option
937	if ( collision.length === 1 ) {
938		collision[ 1 ] = collision[ 0 ];
939	}
940
941	if ( options.at[ 0 ] === "right" ) {
942		basePosition.left += targetWidth;
943	} else if ( options.at[ 0 ] === "center" ) {
944		basePosition.left += targetWidth / 2;
945	}
946
947	if ( options.at[ 1 ] === "bottom" ) {
948		basePosition.top += targetHeight;
949	} else if ( options.at[ 1 ] === "center" ) {
950		basePosition.top += targetHeight / 2;
951	}
952
953	atOffset = getOffsets( offsets.at, targetWidth, targetHeight );
954	basePosition.left += atOffset[ 0 ];
955	basePosition.top += atOffset[ 1 ];
956
957	return this.each( function() {
958		var collisionPosition, using,
959			elem = $( this ),
960			elemWidth = elem.outerWidth(),
961			elemHeight = elem.outerHeight(),
962			marginLeft = parseCss( this, "marginLeft" ),
963			marginTop = parseCss( this, "marginTop" ),
964			collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) +
965				scrollInfo.width,
966			collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) +
967				scrollInfo.height,
968			position = $.extend( {}, basePosition ),
969			myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() );
970
971		if ( options.my[ 0 ] === "right" ) {
972			position.left -= elemWidth;
973		} else if ( options.my[ 0 ] === "center" ) {
974			position.left -= elemWidth / 2;
975		}
976
977		if ( options.my[ 1 ] === "bottom" ) {
978			position.top -= elemHeight;
979		} else if ( options.my[ 1 ] === "center" ) {
980			position.top -= elemHeight / 2;
981		}
982
983		position.left += myOffset[ 0 ];
984		position.top += myOffset[ 1 ];
985
986		collisionPosition = {
987			marginLeft: marginLeft,
988			marginTop: marginTop
989		};
990
991		$.each( [ "left", "top" ], function( i, dir ) {
992			if ( $.ui.position[ collision[ i ] ] ) {
993				$.ui.position[ collision[ i ] ][ dir ]( position, {
994					targetWidth: targetWidth,
995					targetHeight: targetHeight,
996					elemWidth: elemWidth,
997					elemHeight: elemHeight,
998					collisionPosition: collisionPosition,
999					collisionWidth: collisionWidth,
1000					collisionHeight: collisionHeight,
1001					offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ],
1002					my: options.my,
1003					at: options.at,
1004					within: within,
1005					elem: elem
1006				} );
1007			}
1008		} );
1009
1010		if ( options.using ) {
1011
1012			// Adds feedback as second argument to using callback, if present
1013			using = function( props ) {
1014				var left = targetOffset.left - position.left,
1015					right = left + targetWidth - elemWidth,
1016					top = targetOffset.top - position.top,
1017					bottom = top + targetHeight - elemHeight,
1018					feedback = {
1019						target: {
1020							element: target,
1021							left: targetOffset.left,
1022							top: targetOffset.top,
1023							width: targetWidth,
1024							height: targetHeight
1025						},
1026						element: {
1027							element: elem,
1028							left: position.left,
1029							top: position.top,
1030							width: elemWidth,
1031							height: elemHeight
1032						},
1033						horizontal: right < 0 ? "left" : left > 0 ? "right" : "center",
1034						vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle"
1035					};
1036				if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) {
1037					feedback.horizontal = "center";
1038				}
1039				if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) {
1040					feedback.vertical = "middle";
1041				}
1042				if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) {
1043					feedback.important = "horizontal";
1044				} else {
1045					feedback.important = "vertical";
1046				}
1047				options.using.call( this, props, feedback );
1048			};
1049		}
1050
1051		elem.offset( $.extend( position, { using: using } ) );
1052	} );
1053};
1054
1055$.ui.position = {
1056	fit: {
1057		left: function( position, data ) {
1058			var within = data.within,
1059				withinOffset = within.isWindow ? within.scrollLeft : within.offset.left,
1060				outerWidth = within.width,
1061				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
1062				overLeft = withinOffset - collisionPosLeft,
1063				overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset,
1064				newOverRight;
1065
1066			// Element is wider than within
1067			if ( data.collisionWidth > outerWidth ) {
1068
1069				// Element is initially over the left side of within
1070				if ( overLeft > 0 && overRight <= 0 ) {
1071					newOverRight = position.left + overLeft + data.collisionWidth - outerWidth -
1072						withinOffset;
1073					position.left += overLeft - newOverRight;
1074
1075				// Element is initially over right side of within
1076				} else if ( overRight > 0 && overLeft <= 0 ) {
1077					position.left = withinOffset;
1078
1079				// Element is initially over both left and right sides of within
1080				} else {
1081					if ( overLeft > overRight ) {
1082						position.left = withinOffset + outerWidth - data.collisionWidth;
1083					} else {
1084						position.left = withinOffset;
1085					}
1086				}
1087
1088			// Too far left -> align with left edge
1089			} else if ( overLeft > 0 ) {
1090				position.left += overLeft;
1091
1092			// Too far right -> align with right edge
1093			} else if ( overRight > 0 ) {
1094				position.left -= overRight;
1095
1096			// Adjust based on position and margin
1097			} else {
1098				position.left = max( position.left - collisionPosLeft, position.left );
1099			}
1100		},
1101		top: function( position, data ) {
1102			var within = data.within,
1103				withinOffset = within.isWindow ? within.scrollTop : within.offset.top,
1104				outerHeight = data.within.height,
1105				collisionPosTop = position.top - data.collisionPosition.marginTop,
1106				overTop = withinOffset - collisionPosTop,
1107				overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset,
1108				newOverBottom;
1109
1110			// Element is taller than within
1111			if ( data.collisionHeight > outerHeight ) {
1112
1113				// Element is initially over the top of within
1114				if ( overTop > 0 && overBottom <= 0 ) {
1115					newOverBottom = position.top + overTop + data.collisionHeight - outerHeight -
1116						withinOffset;
1117					position.top += overTop - newOverBottom;
1118
1119				// Element is initially over bottom of within
1120				} else if ( overBottom > 0 && overTop <= 0 ) {
1121					position.top = withinOffset;
1122
1123				// Element is initially over both top and bottom of within
1124				} else {
1125					if ( overTop > overBottom ) {
1126						position.top = withinOffset + outerHeight - data.collisionHeight;
1127					} else {
1128						position.top = withinOffset;
1129					}
1130				}
1131
1132			// Too far up -> align with top
1133			} else if ( overTop > 0 ) {
1134				position.top += overTop;
1135
1136			// Too far down -> align with bottom edge
1137			} else if ( overBottom > 0 ) {
1138				position.top -= overBottom;
1139
1140			// Adjust based on position and margin
1141			} else {
1142				position.top = max( position.top - collisionPosTop, position.top );
1143			}
1144		}
1145	},
1146	flip: {
1147		left: function( position, data ) {
1148			var within = data.within,
1149				withinOffset = within.offset.left + within.scrollLeft,
1150				outerWidth = within.width,
1151				offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left,
1152				collisionPosLeft = position.left - data.collisionPosition.marginLeft,
1153				overLeft = collisionPosLeft - offsetLeft,
1154				overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft,
1155				myOffset = data.my[ 0 ] === "left" ?
1156					-data.elemWidth :
1157					data.my[ 0 ] === "right" ?
1158						data.elemWidth :
1159						0,
1160				atOffset = data.at[ 0 ] === "left" ?
1161					data.targetWidth :
1162					data.at[ 0 ] === "right" ?
1163						-data.targetWidth :
1164						0,
1165				offset = -2 * data.offset[ 0 ],
1166				newOverRight,
1167				newOverLeft;
1168
1169			if ( overLeft < 0 ) {
1170				newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth -
1171					outerWidth - withinOffset;
1172				if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) {
1173					position.left += myOffset + atOffset + offset;
1174				}
1175			} else if ( overRight > 0 ) {
1176				newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset +
1177					atOffset + offset - offsetLeft;
1178				if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) {
1179					position.left += myOffset + atOffset + offset;
1180				}
1181			}
1182		},
1183		top: function( position, data ) {
1184			var within = data.within,
1185				withinOffset = within.offset.top + within.scrollTop,
1186				outerHeight = within.height,
1187				offsetTop = within.isWindow ? within.scrollTop : within.offset.top,
1188				collisionPosTop = position.top - data.collisionPosition.marginTop,
1189				overTop = collisionPosTop - offsetTop,
1190				overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop,
1191				top = data.my[ 1 ] === "top",
1192				myOffset = top ?
1193					-data.elemHeight :
1194					data.my[ 1 ] === "bottom" ?
1195						data.elemHeight :
1196						0,
1197				atOffset = data.at[ 1 ] === "top" ?
1198					data.targetHeight :
1199					data.at[ 1 ] === "bottom" ?
1200						-data.targetHeight :
1201						0,
1202				offset = -2 * data.offset[ 1 ],
1203				newOverTop,
1204				newOverBottom;
1205			if ( overTop < 0 ) {
1206				newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight -
1207					outerHeight - withinOffset;
1208				if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) {
1209					position.top += myOffset + atOffset + offset;
1210				}
1211			} else if ( overBottom > 0 ) {
1212				newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset +
1213					offset - offsetTop;
1214				if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) {
1215					position.top += myOffset + atOffset + offset;
1216				}
1217			}
1218		}
1219	},
1220	flipfit: {
1221		left: function() {
1222			$.ui.position.flip.left.apply( this, arguments );
1223			$.ui.position.fit.left.apply( this, arguments );
1224		},
1225		top: function() {
1226			$.ui.position.flip.top.apply( this, arguments );
1227			$.ui.position.fit.top.apply( this, arguments );
1228		}
1229	}
1230};
1231
1232} )();
1233
1234var position = $.ui.position;
1235
1236
1237/*!
1238 * jQuery UI 
vendor: 12,479 bytes, lines 1238-1535
1238Keycode 1.12.1
1239 * http://jqueryui.com
1240 *
1241 * Copyright jQuery Foundation and other contributors
1242 * Released under the MIT license.
1243 * http://jquery.org/license
1244 */
1245
1246//>>label: Keycode
1247//>>group: Core
1248//>>description: Provide keycodes as keynames
1249//>>docs: http://api.jqueryui.com/jQuery.ui.keyCode/
1250
1251
1252var keycode = $.ui.keyCode = {
1253	BACKSPACE: 8,
1254	COMMA: 188,
1255	DELETE: 46,
1256	DOWN: 40,
1257	END: 35,
1258	ENTER: 13,
1259	ESCAPE: 27,
1260	HOME: 36,
1261	LEFT: 37,
1262	PAGE_DOWN: 34,
1263	PAGE_UP: 33,
1264	PERIOD: 190,
1265	RIGHT: 39,
1266	SPACE: 32,
1267	TAB: 9,
1268	UP: 38
1269};
1270
1271
1272/*!
1273 * jQuery UI Unique ID 1.12.1
1274 * http://jqueryui.com
1275 *
1276 * Copyright jQuery Foundation and other contributors
1277 * Released under the MIT license.
1278 * http://jquery.org/license
1279 */
1280
1281//>>label: uniqueId
1282//>>group: Core
1283//>>description: Functions to generate and remove uniqueId's
1284//>>docs: http://api.jqueryui.com/uniqueId/
1285
1286
1287
1288var uniqueId = $.fn.extend( {
1289	uniqueId: ( function() {
1290		var uuid = 0;
1291
1292		return function() {
1293			return this.each( function() {
1294				if ( !this.id ) {
1295					this.id = "ui-id-" + ( ++uuid );
1296				}
1297			} );
1298		};
1299	} )(),
1300
1301	removeUniqueId: function() {
1302		return this.each( function() {
1303			if ( /^ui-id-\d+$/.test( this.id ) ) {
1304				$( this ).removeAttr( "id" );
1305			}
1306		} );
1307	}
1308} );
1309
1310
1311// jscs:disable maximumLineLength
1312/* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */
1313/*!
1314 * jQuery UI Datepicker 1.12.1
1315 * http://jqueryui.com
1316 *
1317 * Copyright jQuery Foundation and other contributors
1318 * Released under the MIT license.
1319 * http://jquery.org/license
1320 */
1321
1322//>>label: Datepicker
1323//>>group: Widgets
1324//>>description: Displays a calendar from an input or inline for selecting dates.
1325//>>docs: http://api.jqueryui.com/datepicker/
1326//>>demos: http://jqueryui.com/datepicker/
1327//>>css.structure: ../../themes/base/core.css
1328//>>css.structure: ../../themes/base/datepicker.css
1329//>>css.theme: ../../themes/base/theme.css
1330
1331
1332
1333$.extend( $.ui, { datepicker: { version: "1.12.1" } } );
1334
1335var datepicker_instActive;
1336
1337function datepicker_getZindex( elem ) {
1338	var position, value;
1339	while ( elem.length && elem[ 0 ] !== document ) {
1340
1341		// Ignore z-index if position is set to a value where z-index is ignored by the browser
1342		// This makes behavior of this function consistent across browsers
1343		// WebKit always returns auto if the element is positioned
1344		position = elem.css( "position" );
1345		if ( position === "absolute" || position === "relative" || position === "fixed" ) {
1346
1347			// IE returns 0 when zIndex is not specified
1348			// other browsers return a string
1349			// we ignore the case of nested elements with an explicit value of 0
1350			// <div style="z-index: -10;"><div style="z-index: 0;"></div></div>
1351			value = parseInt( elem.css( "zIndex" ), 10 );
1352			if ( !isNaN( value ) && value !== 0 ) {
1353				return value;
1354			}
1355		}
1356		elem = elem.parent();
1357	}
1358
1359	return 0;
1360}
1361/* Date picker manager.
1362   Use the singleton instance of this class, $.datepicker, to interact with the date picker.
1363   Settings for (groups of) date pickers are maintained in an instance object,
1364   allowing multiple different settings on the same page. */
1365
1366function Datepicker() {
1367	this._curInst = null; // The current instance in use
1368	this._keyEvent = false; // If the last event was a key event
1369	this._disabledInputs = []; // List of date picker inputs that have been disabled
1370	this._datepickerShowing = false; // True if the popup picker is showing , false if not
1371	this._inDialog = false; // True if showing within a "dialog", false if not
1372	this._mainDivId = "ui-datepicker-div"; // The ID of the main datepicker division
1373	this._inlineClass = "ui-datepicker-inline"; // The name of the inline marker class
1374	this._appendClass = "ui-datepicker-append"; // The name of the append marker class
1375	this._triggerClass = "ui-datepicker-trigger"; // The name of the trigger marker class
1376	this._dialogClass = "ui-datepicker-dialog"; // The name of the dialog marker class
1377	this._disableClass = "ui-datepicker-disabled"; // The name of the disabled covering marker class
1378	this._unselectableClass = "ui-datepicker-unselectable"; // The name of the unselectable cell marker class
1379	this._currentClass = "ui-datepicker-current-day"; // The name of the current day marker class
1380	this._dayOverClass = "ui-datepicker-days-cell-over"; // The name of the day hover marker class
1381	this.regional = []; // Available regional settings, indexed by language code
1382	this.regional[ "" ] = { // Default regional settings
1383		closeText: "Done", // Display text for close link
1384		prevText: "Prev", // Display text for previous month link
1385		nextText: "Next", // Display text for next month link
1386		currentText: "Today", // Display text for current month link
1387		monthNames: [ "January","February","March","April","May","June",
1388			"July","August","September","October","November","December" ], // Names of months for drop-down and formatting
1389		monthNamesShort: [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ], // For formatting
1390		dayNames: [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], // For formatting
1391		dayNamesShort: [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], // For formatting
1392		dayNamesMin: [ "Su","Mo","Tu","We","Th","Fr","Sa" ], // Column headings for days starting at Sunday
1393		weekHeader: "Wk", // Column header for week of the year
1394		dateFormat: "mm/dd/yy", // See format options on parseDate
1395		firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ...
1396		isRTL: false, // True if right-to-left language, false if left-to-right
1397		showMonthAfterYear: false, // True if the year select precedes month, false for month then year
1398		yearSuffix: "" // Additional text to append to the year in the month headers
1399	};
1400	this._defaults = { // Global defaults for all the date picker instances
1401		showOn: "focus", // "focus" for popup on focus,
1402			// "button" for trigger button, or "both" for either
1403		showAnim: "fadeIn", // Name of jQuery animation for popup
1404		showOptions: {}, // Options for enhanced animations
1405		defaultDate: null, // Used when field is blank: actual date,
1406			// +/-number for offset from today, null for today
1407		appendText: "", // Display text following the input box, e.g. showing the format
1408		buttonText: "...", // Text for trigger button
1409		buttonImage: "", // URL for trigger button image
1410		buttonImageOnly: false, // True if the image appears alone, false if it appears on a button
1411		hideIfNoPrevNext: false, // True to hide next/previous month links
1412			// if not applicable, false to just disable them
1413		navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links
1414		gotoCurrent: false, // True if today link goes back to current selection instead
1415		changeMonth: false, // True if month can be selected directly, false if only prev/next
1416		changeYear: false, // True if year can be selected directly, false if only prev/next
1417		yearRange: "c-10:c+10", // Range of years to display in drop-down,
1418			// either relative to today's year (-nn:+nn), relative to currently displayed year
1419			// (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n)
1420		showOtherMonths: false, // True to show dates in other months, false to leave blank
1421		selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable
1422		showWeek: false, // True to show week of the year, false to not show it
1423		calculateWeek: this.iso8601Week, // How to calculate the week of the year,
1424			// takes a Date and returns the number of the week for it
1425		shortYearCutoff: "+10", // Short year values < this are in the current century,
1426			// > this are in the previous century,
1427			// string value starting with "+" for current year + value
1428		minDate: null, // The earliest selectable date, or null for no limit
1429		maxDate: null, // The latest selectable date, or null for no limit
1430		duration: "fast", // Duration of display/closure
1431		beforeShowDay: null, // Function that takes a date and returns an array with
1432			// [0] = true if selectable, false if not, [1] = custom CSS class name(s) or "",
1433			// [2] = cell title (optional), e.g. $.datepicker.noWeekends
1434		beforeShow: null, // Function that takes an input field and
1435			// returns a set of custom settings for the date picker
1436		onSelect: null, // Define a callback function when a date is selected
1437		onChangeMonthYear: null, // Define a callback function when the month or year is changed
1438		onClose: null, // Define a callback function when the datepicker is closed
1439		numberOfMonths: 1, // Number of months to show at a time
1440		showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0)
1441		stepMonths: 1, // Number of months to step back/forward
1442		stepBigMonths: 12, // Number of months to step back/forward for the big links
1443		altField: "", // Selector for an alternate field to store selected dates into
1444		altFormat: "", // The date format to use for the alternate field
1445		constrainInput: true, // The input is constrained by the current date format
1446		showButtonPanel: false, // True to show button panel, false to not show it
1447		autoSize: false, // True to size the input for the date format, false to leave as is
1448		disabled: false // The initial disabled state
1449	};
1450	$.extend( this._defaults, this.regional[ "" ] );
1451	this.regional.en = $.extend( true, {}, this.regional[ "" ] );
1452	this.regional[ "en-US" ] = $.extend( true, {}, this.regional.en );
1453	this.dpDiv = datepicker_bindHover( $( "<div id='" + this._mainDivId + "' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) );
1454}
1455
1456$.extend( Datepicker.prototype, {
1457	/* Class name added to elements to indicate already configured with a date picker. */
1458	markerClassName: "hasDatepicker",
1459
1460	//Keep track of the maximum number of rows displayed (see #7043)
1461	maxRows: 4,
1462
1463	// TODO rename to "widget" when switching to widget factory
1464	_widgetDatepicker: function() {
1465		return this.dpDiv;
1466	},
1467
1468	/* Override the default settings for all instances of the date picker.
1469	 * @param  settings  object - the new settings to use as defaults (anonymous object)
1470	 * @return the manager object
1471	 */
1472	setDefaults: function( settings ) {
1473		datepicker_extendRemove( this._defaults, settings || {} );
1474		return this;
1475	},
1476
1477	/* Attach the date picker to a jQuery selection.
1478	 * @param  target	element - the target input field or division or span
1479	 * @param  settings  object - the new settings to use for this date picker instance (anonymous)
1480	 */
1481	_attachDatepicker: function( target, settings ) {
1482		var nodeName, inline, inst;
1483		nodeName = target.nodeName.toLowerCase();
1484		inline = ( nodeName === "div" || nodeName === "span" );
1485		if ( !target.id ) {
1486			this.uuid += 1;
1487			target.id = "dp" + this.uuid;
1488		}
1489		inst = this._newInst( $( target ), inline );
1490		inst.settings = $.extend( {}, settings || {} );
1491		if ( nodeName === "input" ) {
1492			this._connectDatepicker( target, inst );
1493		} else if ( inline ) {
1494			this._inlineDatepicker( target, inst );
1495		}
1496	},
1497
1498	/* Create a new instance object. */
1499	_newInst: function( target, inline ) {
1500		var id = target[ 0 ].id.replace( /([^A-Za-z0-9_\-])/g, "\\\\$1" ); // escape jQuery meta chars
1501		return { id: id, input: target, // associated target
1502			selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection
1503			drawMonth: 0, drawYear: 0, // month being drawn
1504			inline: inline, // is datepicker inline or not
1505			dpDiv: ( !inline ? this.dpDiv : // presentation div
1506			datepicker_bindHover( $( "<div class='" + this._inlineClass + " ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>" ) ) ) };
1507	},
1508
1509	/* Attach the date picker to an input field. */
1510	_connectDatepicker: function( target, inst ) {
1511		var input = $( target );
1512		inst.append = $( [] );
1513		inst.trigger = $( [] );
1514		if ( input.hasClass( this.markerClassName ) ) {
1515			return;
1516		}
1517		this._attachments( input, inst );
1518		input.addClass( this.markerClassName ).on( "keydown", this._doKeyDown ).
1519			on( "keypress", this._doKeyPress ).on( "keyup", this._doKeyUp );
1520		this._autoSize( inst );
1521		$.data( target, "datepicker", inst );
1522
1523		//If disabled option is true, disable the datepicker once it has been attached to the input (see ticket #5665)
1524		if ( inst.settings.disabled ) {
1525			this._disableDatepicker( target );
1526		}
1527	},
1528
1529	/* Make attachments based on settings. */
1530	_attachments: function( input, inst ) {
1531		var showOn, buttonText, buttonImage,
1532			appendText = this._get( inst, "appendText" ),
1533			isRTL = this._get( inst, "isRTL" );
1534
1535		if ( inst.append ) {
vendor: 13,169 bytes, lines 1536-1906
1536			inst.append.remove();
1537		}
1538		if ( appendText ) {
1539			inst.append = $( "<span class='" + this._appendClass + "'>" + appendText + "</span>" );
1540			input[ isRTL ? "before" : "after" ]( inst.append );
1541		}
1542
1543		input.off( "focus", this._showDatepicker );
1544
1545		if ( inst.trigger ) {
1546			inst.trigger.remove();
1547		}
1548
1549		showOn = this._get( inst, "showOn" );
1550		if ( showOn === "focus" || showOn === "both" ) { // pop-up date picker when in the marked field
1551			input.on( "focus", this._showDatepicker );
1552		}
1553		if ( showOn === "button" || showOn === "both" ) { // pop-up date picker when button clicked
1554			buttonText = this._get( inst, "buttonText" );
1555			buttonImage = this._get( inst, "buttonImage" );
1556			inst.trigger = $( this._get( inst, "buttonImageOnly" ) ?
1557				$( "<img/>" ).addClass( this._triggerClass ).
1558					attr( { src: buttonImage, alt: buttonText, title: buttonText } ) :
1559				$( "<button type='button'></button>" ).addClass( this._triggerClass ).
1560					html( !buttonImage ? buttonText : $( "<img/>" ).attr(
1561					{ src:buttonImage, alt:buttonText, title:buttonText } ) ) );
1562			input[ isRTL ? "before" : "after" ]( inst.trigger );
1563			inst.trigger.on( "click", function() {
1564				if ( $.datepicker._datepickerShowing && $.datepicker._lastInput === input[ 0 ] ) {
1565					$.datepicker._hideDatepicker();
1566				} else if ( $.datepicker._datepickerShowing && $.datepicker._lastInput !== input[ 0 ] ) {
1567					$.datepicker._hideDatepicker();
1568					$.datepicker._showDatepicker( input[ 0 ] );
1569				} else {
1570					$.datepicker._showDatepicker( input[ 0 ] );
1571				}
1572				return false;
1573			} );
1574		}
1575	},
1576
1577	/* Apply the maximum length for the date format. */
1578	_autoSize: function( inst ) {
1579		if ( this._get( inst, "autoSize" ) && !inst.inline ) {
1580			var findMax, max, maxI, i,
1581				date = new Date( 2009, 12 - 1, 20 ), // Ensure double digits
1582				dateFormat = this._get( inst, "dateFormat" );
1583
1584			if ( dateFormat.match( /[DM]/ ) ) {
1585				findMax = function( names ) {
1586					max = 0;
1587					maxI = 0;
1588					for ( i = 0; i < names.length; i++ ) {
1589						if ( names[ i ].length > max ) {
1590							max = names[ i ].length;
1591							maxI = i;
1592						}
1593					}
1594					return maxI;
1595				};
1596				date.setMonth( findMax( this._get( inst, ( dateFormat.match( /MM/ ) ?
1597					"monthNames" : "monthNamesShort" ) ) ) );
1598				date.setDate( findMax( this._get( inst, ( dateFormat.match( /DD/ ) ?
1599					"dayNames" : "dayNamesShort" ) ) ) + 20 - date.getDay() );
1600			}
1601			inst.input.attr( "size", this._formatDate( inst, date ).length );
1602		}
1603	},
1604
1605	/* Attach an inline date picker to a div. */
1606	_inlineDatepicker: function( target, inst ) {
1607		var divSpan = $( target );
1608		if ( divSpan.hasClass( this.markerClassName ) ) {
1609			return;
1610		}
1611		divSpan.addClass( this.markerClassName ).append( inst.dpDiv );
1612		$.data( target, "datepicker", inst );
1613		this._setDate( inst, this._getDefaultDate( inst ), true );
1614		this._updateDatepicker( inst );
1615		this._updateAlternate( inst );
1616
1617		//If disabled option is true, disable the datepicker before showing it (see ticket #5665)
1618		if ( inst.settings.disabled ) {
1619			this._disableDatepicker( target );
1620		}
1621
1622		// Set display:block in place of inst.dpDiv.show() which won't work on disconnected elements
1623		// http://bugs.jqueryui.com/ticket/7552 - A Datepicker created on a detached div has zero height
1624		inst.dpDiv.css( "display", "block" );
1625	},
1626
1627	/* Pop-up the date picker in a "dialog" box.
1628	 * @param  input element - ignored
1629	 * @param  date	string or Date - the initial date to display
1630	 * @param  onSelect  function - the function to call when a date is selected
1631	 * @param  settings  object - update the dialog date picker instance's settings (anonymous object)
1632	 * @param  pos int[2] - coordinates for the dialog's position within the screen or
1633	 *					event - with x/y coordinates or
1634	 *					leave empty for default (screen centre)
1635	 * @return the manager object
1636	 */
1637	_dialogDatepicker: function( input, date, onSelect, settings, pos ) {
1638		var id, browserWidth, browserHeight, scrollX, scrollY,
1639			inst = this._dialogInst; // internal instance
1640
1641		if ( !inst ) {
1642			this.uuid += 1;
1643			id = "dp" + this.uuid;
1644			this._dialogInput = $( "<input type='text' id='" + id +
1645				"' style='position: absolute; top: -100px; width: 0px;'/>" );
1646			this._dialogInput.on( "keydown", this._doKeyDown );
1647			$( "body" ).append( this._dialogInput );
1648			inst = this._dialogInst = this._newInst( this._dialogInput, false );
1649			inst.settings = {};
1650			$.data( this._dialogInput[ 0 ], "datepicker", inst );
1651		}
1652		datepicker_extendRemove( inst.settings, settings || {} );
1653		date = ( date && date.constructor === Date ? this._formatDate( inst, date ) : date );
1654		this._dialogInput.val( date );
1655
1656		this._pos = ( pos ? ( pos.length ? pos : [ pos.pageX, pos.pageY ] ) : null );
1657		if ( !this._pos ) {
1658			browserWidth = document.documentElement.clientWidth;
1659			browserHeight = document.documentElement.clientHeight;
1660			scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
1661			scrollY = document.documentElement.scrollTop || document.body.scrollTop;
1662			this._pos = // should use actual width/height below
1663				[ ( browserWidth / 2 ) - 100 + scrollX, ( browserHeight / 2 ) - 150 + scrollY ];
1664		}
1665
1666		// Move input on screen for focus, but hidden behind dialog
1667		this._dialogInput.css( "left", ( this._pos[ 0 ] + 20 ) + "px" ).css( "top", this._pos[ 1 ] + "px" );
1668		inst.settings.onSelect = onSelect;
1669		this._inDialog = true;
1670		this.dpDiv.addClass( this._dialogClass );
1671		this._showDatepicker( this._dialogInput[ 0 ] );
1672		if ( $.blockUI ) {
1673			$.blockUI( this.dpDiv );
1674		}
1675		$.data( this._dialogInput[ 0 ], "datepicker", inst );
1676		return this;
1677	},
1678
1679	/* Detach a datepicker from its control.
1680	 * @param  target	element - the target input field or division or span
1681	 */
1682	_destroyDatepicker: function( target ) {
1683		var nodeName,
1684			$target = $( target ),
1685			inst = $.data( target, "datepicker" );
1686
1687		if ( !$target.hasClass( this.markerClassName ) ) {
1688			return;
1689		}
1690
1691		nodeName = target.nodeName.toLowerCase();
1692		$.removeData( target, "datepicker" );
1693		if ( nodeName === "input" ) {
1694			inst.append.remove();
1695			inst.trigger.remove();
1696			$target.removeClass( this.markerClassName ).
1697				off( "focus", this._showDatepicker ).
1698				off( "keydown", this._doKeyDown ).
1699				off( "keypress", this._doKeyPress ).
1700				off( "keyup", this._doKeyUp );
1701		} else if ( nodeName === "div" || nodeName === "span" ) {
1702			$target.removeClass( this.markerClassName ).empty();
1703		}
1704
1705		if ( datepicker_instActive === inst ) {
1706			datepicker_instActive = null;
1707		}
1708	},
1709
1710	/* Enable the date picker to a jQuery selection.
1711	 * @param  target	element - the target input field or division or span
1712	 */
1713	_enableDatepicker: function( target ) {
1714		var nodeName, inline,
1715			$target = $( target ),
1716			inst = $.data( target, "datepicker" );
1717
1718		if ( !$target.hasClass( this.markerClassName ) ) {
1719			return;
1720		}
1721
1722		nodeName = target.nodeName.toLowerCase();
1723		if ( nodeName === "input" ) {
1724			target.disabled = false;
1725			inst.trigger.filter( "button" ).
1726				each( function() { this.disabled = false; } ).end().
1727				filter( "img" ).css( { opacity: "1.0", cursor: "" } );
1728		} else if ( nodeName === "div" || nodeName === "span" ) {
1729			inline = $target.children( "." + this._inlineClass );
1730			inline.children().removeClass( "ui-state-disabled" );
1731			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
1732				prop( "disabled", false );
1733		}
1734		this._disabledInputs = $.map( this._disabledInputs,
1735			function( value ) { return ( value === target ? null : value ); } ); // delete entry
1736	},
1737
1738	/* Disable the date picker to a jQuery selection.
1739	 * @param  target	element - the target input field or division or span
1740	 */
1741	_disableDatepicker: function( target ) {
1742		var nodeName, inline,
1743			$target = $( target ),
1744			inst = $.data( target, "datepicker" );
1745
1746		if ( !$target.hasClass( this.markerClassName ) ) {
1747			return;
1748		}
1749
1750		nodeName = target.nodeName.toLowerCase();
1751		if ( nodeName === "input" ) {
1752			target.disabled = true;
1753			inst.trigger.filter( "button" ).
1754				each( function() { this.disabled = true; } ).end().
1755				filter( "img" ).css( { opacity: "0.5", cursor: "default" } );
1756		} else if ( nodeName === "div" || nodeName === "span" ) {
1757			inline = $target.children( "." + this._inlineClass );
1758			inline.children().addClass( "ui-state-disabled" );
1759			inline.find( "select.ui-datepicker-month, select.ui-datepicker-year" ).
1760				prop( "disabled", true );
1761		}
1762		this._disabledInputs = $.map( this._disabledInputs,
1763			function( value ) { return ( value === target ? null : value ); } ); // delete entry
1764		this._disabledInputs[ this._disabledInputs.length ] = target;
1765	},
1766
1767	/* Is the first field in a jQuery collection disabled as a datepicker?
1768	 * @param  target	element - the target input field or division or span
1769	 * @return boolean - true if disabled, false if enabled
1770	 */
1771	_isDisabledDatepicker: function( target ) {
1772		if ( !target ) {
1773			return false;
1774		}
1775		for ( var i = 0; i < this._disabledInputs.length; i++ ) {
1776			if ( this._disabledInputs[ i ] === target ) {
1777				return true;
1778			}
1779		}
1780		return false;
1781	},
1782
1783	/* Retrieve the instance data for the target control.
1784	 * @param  target  element - the target input field or division or span
1785	 * @return  object - the associated instance data
1786	 * @throws  error if a jQuery problem getting data
1787	 */
1788	_getInst: function( target ) {
1789		try {
1790			return $.data( target, "datepicker" );
1791		}
1792		catch ( err ) {
1793			throw "Missing instance data for this datepicker";
1794		}
1795	},
1796
1797	/* Update or retrieve the settings for a date picker attached to an input field or division.
1798	 * @param  target  element - the target input field or division or span
1799	 * @param  name	object - the new settings to update or
1800	 *				string - the name of the setting to change or retrieve,
1801	 *				when retrieving also "all" for all instance settings or
1802	 *				"defaults" for all global defaults
1803	 * @param  value   any - the new value for the setting
1804	 *				(omit if above is an object or to retrieve a value)
1805	 */
1806	_optionDatepicker: function( target, name, value ) {
1807		var settings, date, minDate, maxDate,
1808			inst = this._getInst( target );
1809
1810		if ( arguments.length === 2 && typeof name === "string" ) {
1811			return ( name === "defaults" ? $.extend( {}, $.datepicker._defaults ) :
1812				( inst ? ( name === "all" ? $.extend( {}, inst.settings ) :
1813				this._get( inst, name ) ) : null ) );
1814		}
1815
1816		settings = name || {};
1817		if ( typeof name === "string" ) {
1818			settings = {};
1819			settings[ name ] = value;
1820		}
1821
1822		if ( inst ) {
1823			if ( this._curInst === inst ) {
1824				this._hideDatepicker();
1825			}
1826
1827			date = this._getDateDatepicker( target, true );
1828			minDate = this._getMinMaxDate( inst, "min" );
1829			maxDate = this._getMinMaxDate( inst, "max" );
1830			datepicker_extendRemove( inst.settings, settings );
1831
1832			// reformat the old minDate/maxDate values if dateFormat changes and a new minDate/maxDate isn't provided
1833			if ( minDate !== null && settings.dateFormat !== undefined && settings.minDate === undefined ) {
1834				inst.settings.minDate = this._formatDate( inst, minDate );
1835			}
1836			if ( maxDate !== null && settings.dateFormat !== undefined && settings.maxDate === undefined ) {
1837				inst.settings.maxDate = this._formatDate( inst, maxDate );
1838			}
1839			if ( "disabled" in settings ) {
1840				if ( settings.disabled ) {
1841					this._disableDatepicker( target );
1842				} else {
1843					this._enableDatepicker( target );
1844				}
1845			}
1846			this._attachments( $( target ), inst );
1847			this._autoSize( inst );
1848			this._setDate( inst, date );
1849			this._updateAlternate( inst );
1850			this._updateDatepicker( inst );
1851		}
1852	},
1853
1854	// Change method deprecated
1855	_changeDatepicker: function( target, name, value ) {
1856		this._optionDatepicker( target, name, value );
1857	},
1858
1859	/* Redraw the date picker attached to an input field or division.
1860	 * @param  target  element - the target input field or division or span
1861	 */
1862	_refreshDatepicker: function( target ) {
1863		var inst = this._getInst( target );
1864		if ( inst ) {
1865			this._updateDatepicker( inst );
1866		}
1867	},
1868
1869	/* Set the dates for a jQuery selection.
1870	 * @param  target element - the target input field or division or span
1871	 * @param  date	Date - the new date
1872	 */
1873	_setDateDatepicker: function( target, date ) {
1874		var inst = this._getInst( target );
1875		if ( inst ) {
1876			this._setDate( inst, date );
1877			this._updateDatepicker( inst );
1878			this._updateAlternate( inst );
1879		}
1880	},
1881
1882	/* Get the date(s) for the first entry in a jQuery selection.
1883	 * @param  target element - the target input field or division or span
1884	 * @param  noDefault boolean - true if no default date is to be used
1885	 * @return Date - the current date
1886	 */
1887	_getDateDatepicker: function( target, noDefault ) {
1888		var inst = this._getInst( target );
1889		if ( inst && !inst.inline ) {
1890			this._setDateFromField( inst, noDefault );
1891		}
1892		return ( inst ? this._getDate( inst ) : null );
1893	},
1894
1895	/* Handle keystrokes. */
1896	_doKeyDown: function( event ) {
1897		var onSelect, dateStr, sel,
1898			inst = $.datepicker._getInst( event.target ),
1899			handled = true,
1900			isRTL = inst.dpDiv.is( ".ui-datepicker-rtl" );
1901
1902		inst._keyEvent = true;
1903		if ( $.datepicker._datepickerShowing ) {
1904			switch ( event.keyCode ) {
1905				case 9: $.datepicker._hideDatepicker();
1906						handled = false;
vendor: 4,635 bytes, lines 1907-2034
1907						break; // hide on tab out
1908				case 13: sel = $( "td." + $.datepicker._dayOverClass + ":not(." +
1909									$.datepicker._currentClass + ")", inst.dpDiv );
1910						if ( sel[ 0 ] ) {
1911							$.datepicker._selectDay( event.target, inst.selectedMonth, inst.selectedYear, sel[ 0 ] );
1912						}
1913
1914						onSelect = $.datepicker._get( inst, "onSelect" );
1915						if ( onSelect ) {
1916							dateStr = $.datepicker._formatDate( inst );
1917
1918							// Trigger custom callback
1919							onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );
1920						} else {
1921							$.datepicker._hideDatepicker();
1922						}
1923
1924						return false; // don't submit the form
1925				case 27: $.datepicker._hideDatepicker();
1926						break; // hide on escape
1927				case 33: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
1928							-$.datepicker._get( inst, "stepBigMonths" ) :
1929							-$.datepicker._get( inst, "stepMonths" ) ), "M" );
1930						break; // previous month/year on page up/+ ctrl
1931				case 34: $.datepicker._adjustDate( event.target, ( event.ctrlKey ?
1932							+$.datepicker._get( inst, "stepBigMonths" ) :
1933							+$.datepicker._get( inst, "stepMonths" ) ), "M" );
1934						break; // next month/year on page down/+ ctrl
1935				case 35: if ( event.ctrlKey || event.metaKey ) {
1936							$.datepicker._clearDate( event.target );
1937						}
1938						handled = event.ctrlKey || event.metaKey;
1939						break; // clear on ctrl or command +end
1940				case 36: if ( event.ctrlKey || event.metaKey ) {
1941							$.datepicker._gotoToday( event.target );
1942						}
1943						handled = event.ctrlKey || event.metaKey;
1944						break; // current on ctrl or command +home
1945				case 37: if ( event.ctrlKey || event.metaKey ) {
1946							$.datepicker._adjustDate( event.target, ( isRTL ? +1 : -1 ), "D" );
1947						}
1948						handled = event.ctrlKey || event.metaKey;
1949
1950						// -1 day on ctrl or command +left
1951						if ( event.originalEvent.altKey ) {
1952							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
1953								-$.datepicker._get( inst, "stepBigMonths" ) :
1954								-$.datepicker._get( inst, "stepMonths" ) ), "M" );
1955						}
1956
1957						// next month/year on alt +left on Mac
1958						break;
1959				case 38: if ( event.ctrlKey || event.metaKey ) {
1960							$.datepicker._adjustDate( event.target, -7, "D" );
1961						}
1962						handled = event.ctrlKey || event.metaKey;
1963						break; // -1 week on ctrl or command +up
1964				case 39: if ( event.ctrlKey || event.metaKey ) {
1965							$.datepicker._adjustDate( event.target, ( isRTL ? -1 : +1 ), "D" );
1966						}
1967						handled = event.ctrlKey || event.metaKey;
1968
1969						// +1 day on ctrl or command +right
1970						if ( event.originalEvent.altKey ) {
1971							$.datepicker._adjustDate( event.target, ( event.ctrlKey ?
1972								+$.datepicker._get( inst, "stepBigMonths" ) :
1973								+$.datepicker._get( inst, "stepMonths" ) ), "M" );
1974						}
1975
1976						// next month/year on alt +right
1977						break;
1978				case 40: if ( event.ctrlKey || event.metaKey ) {
1979							$.datepicker._adjustDate( event.target, +7, "D" );
1980						}
1981						handled = event.ctrlKey || event.metaKey;
1982						break; // +1 week on ctrl or command +down
1983				default: handled = false;
1984			}
1985		} else if ( event.keyCode === 36 && event.ctrlKey ) { // display the date picker on ctrl+home
1986			$.datepicker._showDatepicker( this );
1987		} else {
1988			handled = false;
1989		}
1990
1991		if ( handled ) {
1992			event.preventDefault();
1993			event.stopPropagation();
1994		}
1995	},
1996
1997	/* Filter entered characters - based on date format. */
1998	_doKeyPress: function( event ) {
1999		var chars, chr,
2000			inst = $.datepicker._getInst( event.target );
2001
2002		if ( $.datepicker._get( inst, "constrainInput" ) ) {
2003			chars = $.datepicker._possibleChars( $.datepicker._get( inst, "dateFormat" ) );
2004			chr = String.fromCharCode( event.charCode == null ? event.keyCode : event.charCode );
2005			return event.ctrlKey || event.metaKey || ( chr < " " || !chars || chars.indexOf( chr ) > -1 );
2006		}
2007	},
2008
2009	/* Synchronise manual entry and field/alternate field. */
2010	_doKeyUp: function( event ) {
2011		var date,
2012			inst = $.datepicker._getInst( event.target );
2013
2014		if ( inst.input.val() !== inst.lastVal ) {
2015			try {
2016				date = $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
2017					( inst.input ? inst.input.val() : null ),
2018					$.datepicker._getFormatConfig( inst ) );
2019
2020				if ( date ) { // only if valid
2021					$.datepicker._setDateFromField( inst );
2022					$.datepicker._updateAlternate( inst );
2023					$.datepicker._updateDatepicker( inst );
2024				}
2025			}
2026			catch ( err ) {
2027			}
2028		}
2029		return true;
2030	},
2031
2032	/* Pop-up the date picker for a given input field.
2033	 * If false returned from beforeShow event handler do not show.
2034	 * @param  input  element - the input field attached to the date picker or
vendor: 9,739 bytes, lines 2035-2313
2035	 *					event - if triggered by focus
2036	 */
2037	_showDatepicker: function( input ) {
2038		input = input.target || input;
2039		if ( input.nodeName.toLowerCase() !== "input" ) { // find from button/image trigger
2040			input = $( "input", input.parentNode )[ 0 ];
2041		}
2042
2043		if ( $.datepicker._isDisabledDatepicker( input ) || $.datepicker._lastInput === input ) { // already here
2044			return;
2045		}
2046
2047		var inst, beforeShow, beforeShowSettings, isFixed,
2048			offset, showAnim, duration;
2049
2050		inst = $.datepicker._getInst( input );
2051		if ( $.datepicker._curInst && $.datepicker._curInst !== inst ) {
2052			$.datepicker._curInst.dpDiv.stop( true, true );
2053			if ( inst && $.datepicker._datepickerShowing ) {
2054				$.datepicker._hideDatepicker( $.datepicker._curInst.input[ 0 ] );
2055			}
2056		}
2057
2058		beforeShow = $.datepicker._get( inst, "beforeShow" );
2059		beforeShowSettings = beforeShow ? beforeShow.apply( input, [ input, inst ] ) : {};
2060		if ( beforeShowSettings === false ) {
2061			return;
2062		}
2063		datepicker_extendRemove( inst.settings, beforeShowSettings );
2064
2065		inst.lastVal = null;
2066		$.datepicker._lastInput = input;
2067		$.datepicker._setDateFromField( inst );
2068
2069		if ( $.datepicker._inDialog ) { // hide cursor
2070			input.value = "";
2071		}
2072		if ( !$.datepicker._pos ) { // position below input
2073			$.datepicker._pos = $.datepicker._findPos( input );
2074			$.datepicker._pos[ 1 ] += input.offsetHeight; // add the height
2075		}
2076
2077		isFixed = false;
2078		$( input ).parents().each( function() {
2079			isFixed |= $( this ).css( "position" ) === "fixed";
2080			return !isFixed;
2081		} );
2082
2083		offset = { left: $.datepicker._pos[ 0 ], top: $.datepicker._pos[ 1 ] };
2084		$.datepicker._pos = null;
2085
2086		//to avoid flashes on Firefox
2087		inst.dpDiv.empty();
2088
2089		// determine sizing offscreen
2090		inst.dpDiv.css( { position: "absolute", display: "block", top: "-1000px" } );
2091		$.datepicker._updateDatepicker( inst );
2092
2093		// fix width for dynamic number of date pickers
2094		// and adjust position before showing
2095		offset = $.datepicker._checkOffset( inst, offset, isFixed );
2096		inst.dpDiv.css( { position: ( $.datepicker._inDialog && $.blockUI ?
2097			"static" : ( isFixed ? "fixed" : "absolute" ) ), display: "none",
2098			left: offset.left + "px", top: offset.top + "px" } );
2099
2100		if ( !inst.inline ) {
2101			showAnim = $.datepicker._get( inst, "showAnim" );
2102			duration = $.datepicker._get( inst, "duration" );
2103			inst.dpDiv.css( "z-index", datepicker_getZindex( $( input ) ) + 1 );
2104			$.datepicker._datepickerShowing = true;
2105
2106			if ( $.effects && $.effects.effect[ showAnim ] ) {
2107				inst.dpDiv.show( showAnim, $.datepicker._get( inst, "showOptions" ), duration );
2108			} else {
2109				inst.dpDiv[ showAnim || "show" ]( showAnim ? duration : null );
2110			}
2111
2112			if ( $.datepicker._shouldFocusInput( inst ) ) {
2113				inst.input.trigger( "focus" );
2114			}
2115
2116			$.datepicker._curInst = inst;
2117		}
2118	},
2119
2120	/* Generate the date picker content. */
2121	_updateDatepicker: function( inst ) {
2122		this.maxRows = 4; //Reset the max number of rows being displayed (see #7043)
2123		datepicker_instActive = inst; // for delegate hover events
2124		inst.dpDiv.empty().append( this._generateHTML( inst ) );
2125		this._attachHandlers( inst );
2126
2127		var origyearshtml,
2128			numMonths = this._getNumberOfMonths( inst ),
2129			cols = numMonths[ 1 ],
2130			width = 17,
2131			activeCell = inst.dpDiv.find( "." + this._dayOverClass + " a" );
2132
2133		if ( activeCell.length > 0 ) {
2134			datepicker_handleMouseover.apply( activeCell.get( 0 ) );
2135		}
2136
2137		inst.dpDiv.removeClass( "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4" ).width( "" );
2138		if ( cols > 1 ) {
2139			inst.dpDiv.addClass( "ui-datepicker-multi-" + cols ).css( "width", ( width * cols ) + "em" );
2140		}
2141		inst.dpDiv[ ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ? "add" : "remove" ) +
2142			"Class" ]( "ui-datepicker-multi" );
2143		inst.dpDiv[ ( this._get( inst, "isRTL" ) ? "add" : "remove" ) +
2144			"Class" ]( "ui-datepicker-rtl" );
2145
2146		if ( inst === $.datepicker._curInst && $.datepicker._datepickerShowing && $.datepicker._shouldFocusInput( inst ) ) {
2147			inst.input.trigger( "focus" );
2148		}
2149
2150		// Deffered render of the years select (to avoid flashes on Firefox)
2151		if ( inst.yearshtml ) {
2152			origyearshtml = inst.yearshtml;
2153			setTimeout( function() {
2154
2155				//assure that inst.yearshtml didn't change.
2156				if ( origyearshtml === inst.yearshtml && inst.yearshtml ) {
2157					inst.dpDiv.find( "select.ui-datepicker-year:first" ).replaceWith( inst.yearshtml );
2158				}
2159				origyearshtml = inst.yearshtml = null;
2160			}, 0 );
2161		}
2162	},
2163
2164	// #6694 - don't focus the input if it's already focused
2165	// this breaks the change event in IE
2166	// Support: IE and jQuery <1.9
2167	_shouldFocusInput: function( inst ) {
2168		return inst.input && inst.input.is( ":visible" ) && !inst.input.is( ":disabled" ) && !inst.input.is( ":focus" );
2169	},
2170
2171	/* Check positioning to remain on screen. */
2172	_checkOffset: function( inst, offset, isFixed ) {
2173		var dpWidth = inst.dpDiv.outerWidth(),
2174			dpHeight = inst.dpDiv.outerHeight(),
2175			inputWidth = inst.input ? inst.input.outerWidth() : 0,
2176			inputHeight = inst.input ? inst.input.outerHeight() : 0,
2177			viewWidth = document.documentElement.clientWidth + ( isFixed ? 0 : $( document ).scrollLeft() ),
2178			viewHeight = document.documentElement.clientHeight + ( isFixed ? 0 : $( document ).scrollTop() );
2179
2180		offset.left -= ( this._get( inst, "isRTL" ) ? ( dpWidth - inputWidth ) : 0 );
2181		offset.left -= ( isFixed && offset.left === inst.input.offset().left ) ? $( document ).scrollLeft() : 0;
2182		offset.top -= ( isFixed && offset.top === ( inst.input.offset().top + inputHeight ) ) ? $( document ).scrollTop() : 0;
2183
2184		// Now check if datepicker is showing outside window viewport - move to a better place if so.
2185		offset.left -= Math.min( offset.left, ( offset.left + dpWidth > viewWidth && viewWidth > dpWidth ) ?
2186			Math.abs( offset.left + dpWidth - viewWidth ) : 0 );
2187		offset.top -= Math.min( offset.top, ( offset.top + dpHeight > viewHeight && viewHeight > dpHeight ) ?
2188			Math.abs( dpHeight + inputHeight ) : 0 );
2189
2190		return offset;
2191	},
2192
2193	/* Find an object's position on the screen. */
2194	_findPos: function( obj ) {
2195		var position,
2196			inst = this._getInst( obj ),
2197			isRTL = this._get( inst, "isRTL" );
2198
2199		while ( obj && ( obj.type === "hidden" || obj.nodeType !== 1 || $.expr.filters.hidden( obj ) ) ) {
2200			obj = obj[ isRTL ? "previousSibling" : "nextSibling" ];
2201		}
2202
2203		position = $( obj ).offset();
2204		return [ position.left, position.top ];
2205	},
2206
2207	/* Hide the date picker from view.
2208	 * @param  input  element - the input field attached to the date picker
2209	 */
2210	_hideDatepicker: function( input ) {
2211		var showAnim, duration, postProcess, onClose,
2212			inst = this._curInst;
2213
2214		if ( !inst || ( input && inst !== $.data( input, "datepicker" ) ) ) {
2215			return;
2216		}
2217
2218		if ( this._datepickerShowing ) {
2219			showAnim = this._get( inst, "showAnim" );
2220			duration = this._get( inst, "duration" );
2221			postProcess = function() {
2222				$.datepicker._tidyDialog( inst );
2223			};
2224
2225			// DEPRECATED: after BC for 1.8.x $.effects[ showAnim ] is not needed
2226			if ( $.effects && ( $.effects.effect[ showAnim ] || $.effects[ showAnim ] ) ) {
2227				inst.dpDiv.hide( showAnim, $.datepicker._get( inst, "showOptions" ), duration, postProcess );
2228			} else {
2229				inst.dpDiv[ ( showAnim === "slideDown" ? "slideUp" :
2230					( showAnim === "fadeIn" ? "fadeOut" : "hide" ) ) ]( ( showAnim ? duration : null ), postProcess );
2231			}
2232
2233			if ( !showAnim ) {
2234				postProcess();
2235			}
2236			this._datepickerShowing = false;
2237
2238			onClose = this._get( inst, "onClose" );
2239			if ( onClose ) {
2240				onClose.apply( ( inst.input ? inst.input[ 0 ] : null ), [ ( inst.input ? inst.input.val() : "" ), inst ] );
2241			}
2242
2243			this._lastInput = null;
2244			if ( this._inDialog ) {
2245				this._dialogInput.css( { position: "absolute", left: "0", top: "-100px" } );
2246				if ( $.blockUI ) {
2247					$.unblockUI();
2248					$( "body" ).append( this.dpDiv );
2249				}
2250			}
2251			this._inDialog = false;
2252		}
2253	},
2254
2255	/* Tidy up after a dialog display. */
2256	_tidyDialog: function( inst ) {
2257		inst.dpDiv.removeClass( this._dialogClass ).off( ".ui-datepicker-calendar" );
2258	},
2259
2260	/* Close date picker if clicked elsewhere. */
2261	_checkExternalClick: function( event ) {
2262		if ( !$.datepicker._curInst ) {
2263			return;
2264		}
2265
2266		var $target = $( event.target ),
2267			inst = $.datepicker._getInst( $target[ 0 ] );
2268
2269		if ( ( ( $target[ 0 ].id !== $.datepicker._mainDivId &&
2270				$target.parents( "#" + $.datepicker._mainDivId ).length === 0 &&
2271				!$target.hasClass( $.datepicker.markerClassName ) &&
2272				!$target.closest( "." + $.datepicker._triggerClass ).length &&
2273				$.datepicker._datepickerShowing && !( $.datepicker._inDialog && $.blockUI ) ) ) ||
2274			( $target.hasClass( $.datepicker.markerClassName ) && $.datepicker._curInst !== inst ) ) {
2275				$.datepicker._hideDatepicker();
2276		}
2277	},
2278
2279	/* Adjust one of the date sub-fields. */
2280	_adjustDate: function( id, offset, period ) {
2281		var target = $( id ),
2282			inst = this._getInst( target[ 0 ] );
2283
2284		if ( this._isDisabledDatepicker( target[ 0 ] ) ) {
2285			return;
2286		}
2287		this._adjustInstDate( inst, offset +
2288			( period === "M" ? this._get( inst, "showCurrentAtPos" ) : 0 ), // undo positioning
2289			period );
2290		this._updateDatepicker( inst );
2291	},
2292
2293	/* Action for current link. */
2294	_gotoToday: function( id ) {
2295		var date,
2296			target = $( id ),
2297			inst = this._getInst( target[ 0 ] );
2298
2299		if ( this._get( inst, "gotoCurrent" ) && inst.currentDay ) {
2300			inst.selectedDay = inst.currentDay;
2301			inst.drawMonth = inst.selectedMonth = inst.currentMonth;
2302			inst.drawYear = inst.selectedYear = inst.currentYear;
2303		} else {
2304			date = new Date();
2305			inst.selectedDay = date.getDate();
2306			inst.drawMonth = inst.selectedMonth = date.getMonth();
2307			inst.drawYear = inst.selectedYear = date.getFullYear();
2308		}
2309		this._notifyChange( inst );
2310		this._adjustDate( target );
2311	},
2312
2313	/* Action for selecting a new month/year. */
vendor: 2,372 bytes, lines 2314-2389
2314	_selectMonthYear: function( id, select, period ) {
2315		var target = $( id ),
2316			inst = this._getInst( target[ 0 ] );
2317
2318		inst[ "selected" + ( period === "M" ? "Month" : "Year" ) ] =
2319		inst[ "draw" + ( period === "M" ? "Month" : "Year" ) ] =
2320			parseInt( select.options[ select.selectedIndex ].value, 10 );
2321
2322		this._notifyChange( inst );
2323		this._adjustDate( target );
2324	},
2325
2326	/* Action for selecting a day. */
2327	_selectDay: function( id, month, year, td ) {
2328		var inst,
2329			target = $( id );
2330
2331		if ( $( td ).hasClass( this._unselectableClass ) || this._isDisabledDatepicker( target[ 0 ] ) ) {
2332			return;
2333		}
2334
2335		inst = this._getInst( target[ 0 ] );
2336		inst.selectedDay = inst.currentDay = $( "a", td ).html();
2337		inst.selectedMonth = inst.currentMonth = month;
2338		inst.selectedYear = inst.currentYear = year;
2339		this._selectDate( id, this._formatDate( inst,
2340			inst.currentDay, inst.currentMonth, inst.currentYear ) );
2341	},
2342
2343	/* Erase the input field and hide the date picker. */
2344	_clearDate: function( id ) {
2345		var target = $( id );
2346		this._selectDate( target, "" );
2347	},
2348
2349	/* Update the input field with the selected date. */
2350	_selectDate: function( id, dateStr ) {
2351		var onSelect,
2352			target = $( id ),
2353			inst = this._getInst( target[ 0 ] );
2354
2355		dateStr = ( dateStr != null ? dateStr : this._formatDate( inst ) );
2356		if ( inst.input ) {
2357			inst.input.val( dateStr );
2358		}
2359		this._updateAlternate( inst );
2360
2361		onSelect = this._get( inst, "onSelect" );
2362		if ( onSelect ) {
2363			onSelect.apply( ( inst.input ? inst.input[ 0 ] : null ), [ dateStr, inst ] );  // trigger custom callback
2364		} else if ( inst.input ) {
2365			inst.input.trigger( "change" ); // fire the change event
2366		}
2367
2368		if ( inst.inline ) {
2369			this._updateDatepicker( inst );
2370		} else {
2371			this._hideDatepicker();
2372			this._lastInput = inst.input[ 0 ];
2373			if ( typeof( inst.input[ 0 ] ) !== "object" ) {
2374				inst.input.trigger( "focus" ); // restore focus
2375			}
2376			this._lastInput = null;
2377		}
2378	},
2379
2380	/* Update any alternate field to synchronise with the main field. */
2381	_updateAlternate: function( inst ) {
2382		var altFormat, date, dateStr,
2383			altField = this._get( inst, "altField" );
2384
2385		if ( altField ) { // update alternate field too
2386			altFormat = this._get( inst, "altFormat" ) || this._get( inst, "dateFormat" );
2387			date = this._getDate( inst );
2388			dateStr = this.formatDate( altFormat, date, this._getFormatConfig( inst ) );
2389			$
vendor: 13,647 bytes, lines 2389-2828
2389( altField ).val( dateStr );
2390		}
2391	},
2392
2393	/* Set as beforeShowDay function to prevent selection of weekends.
2394	 * @param  date  Date - the date to customise
2395	 * @return [boolean, string] - is this date selectable?, what is its CSS class?
2396	 */
2397	noWeekends: function( date ) {
2398		var day = date.getDay();
2399		return [ ( day > 0 && day < 6 ), "" ];
2400	},
2401
2402	/* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition.
2403	 * @param  date  Date - the date to get the week for
2404	 * @return  number - the number of the week within the year that contains this date
2405	 */
2406	iso8601Week: function( date ) {
2407		var time,
2408			checkDate = new Date( date.getTime() );
2409
2410		// Find Thursday of this week starting on Monday
2411		checkDate.setDate( checkDate.getDate() + 4 - ( checkDate.getDay() || 7 ) );
2412
2413		time = checkDate.getTime();
2414		checkDate.setMonth( 0 ); // Compare with Jan 1
2415		checkDate.setDate( 1 );
2416		return Math.floor( Math.round( ( time - checkDate ) / 86400000 ) / 7 ) + 1;
2417	},
2418
2419	/* Parse a string value into a date object.
2420	 * See formatDate below for the possible formats.
2421	 *
2422	 * @param  format string - the expected format of the date
2423	 * @param  value string - the date in the above format
2424	 * @param  settings Object - attributes include:
2425	 *					shortYearCutoff  number - the cutoff year for determining the century (optional)
2426	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
2427	 *					dayNames		string[7] - names of the days from Sunday (optional)
2428	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
2429	 *					monthNames		string[12] - names of the months (optional)
2430	 * @return  Date - the extracted date value or null if value is blank
2431	 */
2432	parseDate: function( format, value, settings ) {
2433		if ( format == null || value == null ) {
2434			throw "Invalid arguments";
2435		}
2436
2437		value = ( typeof value === "object" ? value.toString() : value + "" );
2438		if ( value === "" ) {
2439			return null;
2440		}
2441
2442		var iFormat, dim, extra,
2443			iValue = 0,
2444			shortYearCutoffTemp = ( settings ? settings.shortYearCutoff : null ) || this._defaults.shortYearCutoff,
2445			shortYearCutoff = ( typeof shortYearCutoffTemp !== "string" ? shortYearCutoffTemp :
2446				new Date().getFullYear() % 100 + parseInt( shortYearCutoffTemp, 10 ) ),
2447			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
2448			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
2449			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
2450			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
2451			year = -1,
2452			month = -1,
2453			day = -1,
2454			doy = -1,
2455			literal = false,
2456			date,
2457
2458			// Check whether a format character is doubled
2459			lookAhead = function( match ) {
2460				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
2461				if ( matches ) {
2462					iFormat++;
2463				}
2464				return matches;
2465			},
2466
2467			// Extract a number from the string value
2468			getNumber = function( match ) {
2469				var isDoubled = lookAhead( match ),
2470					size = ( match === "@" ? 14 : ( match === "!" ? 20 :
2471					( match === "y" && isDoubled ? 4 : ( match === "o" ? 3 : 2 ) ) ) ),
2472					minSize = ( match === "y" ? size : 1 ),
2473					digits = new RegExp( "^\\d{" + minSize + "," + size + "}" ),
2474					num = value.substring( iValue ).match( digits );
2475				if ( !num ) {
2476					throw "Missing number at position " + iValue;
2477				}
2478				iValue += num[ 0 ].length;
2479				return parseInt( num[ 0 ], 10 );
2480			},
2481
2482			// Extract a name from the string value and convert to an index
2483			getName = function( match, shortNames, longNames ) {
2484				var index = -1,
2485					names = $.map( lookAhead( match ) ? longNames : shortNames, function( v, k ) {
2486						return [ [ k, v ] ];
2487					} ).sort( function( a, b ) {
2488						return -( a[ 1 ].length - b[ 1 ].length );
2489					} );
2490
2491				$.each( names, function( i, pair ) {
2492					var name = pair[ 1 ];
2493					if ( value.substr( iValue, name.length ).toLowerCase() === name.toLowerCase() ) {
2494						index = pair[ 0 ];
2495						iValue += name.length;
2496						return false;
2497					}
2498				} );
2499				if ( index !== -1 ) {
2500					return index + 1;
2501				} else {
2502					throw "Unknown name at position " + iValue;
2503				}
2504			},
2505
2506			// Confirm that a literal character matches the string value
2507			checkLiteral = function() {
2508				if ( value.charAt( iValue ) !== format.charAt( iFormat ) ) {
2509					throw "Unexpected literal at position " + iValue;
2510				}
2511				iValue++;
2512			};
2513
2514		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
2515			if ( literal ) {
2516				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
2517					literal = false;
2518				} else {
2519					checkLiteral();
2520				}
2521			} else {
2522				switch ( format.charAt( iFormat ) ) {
2523					case "d":
2524						day = getNumber( "d" );
2525						break;
2526					case "D":
2527						getName( "D", dayNamesShort, dayNames );
2528						break;
2529					case "o":
2530						doy = getNumber( "o" );
2531						break;
2532					case "m":
2533						month = getNumber( "m" );
2534						break;
2535					case "M":
2536						month = getName( "M", monthNamesShort, monthNames );
2537						break;
2538					case "y":
2539						year = getNumber( "y" );
2540						break;
2541					case "@":
2542						date = new Date( getNumber( "@" ) );
2543						year = date.getFullYear();
2544						month = date.getMonth() + 1;
2545						day = date.getDate();
2546						break;
2547					case "!":
2548						date = new Date( ( getNumber( "!" ) - this._ticksTo1970 ) / 10000 );
2549						year = date.getFullYear();
2550						month = date.getMonth() + 1;
2551						day = date.getDate();
2552						break;
2553					case "'":
2554						if ( lookAhead( "'" ) ) {
2555							checkLiteral();
2556						} else {
2557							literal = true;
2558						}
2559						break;
2560					default:
2561						checkLiteral();
2562				}
2563			}
2564		}
2565
2566		if ( iValue < value.length ) {
2567			extra = value.substr( iValue );
2568			if ( !/^\s+/.test( extra ) ) {
2569				throw "Extra/unparsed characters found in date: " + extra;
2570			}
2571		}
2572
2573		if ( year === -1 ) {
2574			year = new Date().getFullYear();
2575		} else if ( year < 100 ) {
2576			year += new Date().getFullYear() - new Date().getFullYear() % 100 +
2577				( year <= shortYearCutoff ? 0 : -100 );
2578		}
2579
2580		if ( doy > -1 ) {
2581			month = 1;
2582			day = doy;
2583			do {
2584				dim = this._getDaysInMonth( year, month - 1 );
2585				if ( day <= dim ) {
2586					break;
2587				}
2588				month++;
2589				day -= dim;
2590			} while ( true );
2591		}
2592
2593		date = this._daylightSavingAdjust( new Date( year, month - 1, day ) );
2594		if ( date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day ) {
2595			throw "Invalid date"; // E.g. 31/02/00
2596		}
2597		return date;
2598	},
2599
2600	/* Standard date formats. */
2601	ATOM: "yy-mm-dd", // RFC 3339 (ISO 8601)
2602	COOKIE: "D, dd M yy",
2603	ISO_8601: "yy-mm-dd",
2604	RFC_822: "D, d M y",
2605	RFC_850: "DD, dd-M-y",
2606	RFC_1036: "D, d M y",
2607	RFC_1123: "D, d M yy",
2608	RFC_2822: "D, d M yy",
2609	RSS: "D, d M y", // RFC 822
2610	TICKS: "!",
2611	TIMESTAMP: "@",
2612	W3C: "yy-mm-dd", // ISO 8601
2613
2614	_ticksTo1970: ( ( ( 1970 - 1 ) * 365 + Math.floor( 1970 / 4 ) - Math.floor( 1970 / 100 ) +
2615		Math.floor( 1970 / 400 ) ) * 24 * 60 * 60 * 10000000 ),
2616
2617	/* Format a date object into a string value.
2618	 * The format can be combinations of the following:
2619	 * d  - day of month (no leading zero)
2620	 * dd - day of month (two digit)
2621	 * o  - day of year (no leading zeros)
2622	 * oo - day of year (three digit)
2623	 * D  - day name short
2624	 * DD - day name long
2625	 * m  - month of year (no leading zero)
2626	 * mm - month of year (two digit)
2627	 * M  - month name short
2628	 * MM - month name long
2629	 * y  - year (two digit)
2630	 * yy - year (four digit)
2631	 * @ - Unix timestamp (ms since 01/01/1970)
2632	 * ! - Windows ticks (100ns since 01/01/0001)
2633	 * "..." - literal text
2634	 * '' - single quote
2635	 *
2636	 * @param  format string - the desired format of the date
2637	 * @param  date Date - the date value to format
2638	 * @param  settings Object - attributes include:
2639	 *					dayNamesShort	string[7] - abbreviated names of the days from Sunday (optional)
2640	 *					dayNames		string[7] - names of the days from Sunday (optional)
2641	 *					monthNamesShort string[12] - abbreviated names of the months (optional)
2642	 *					monthNames		string[12] - names of the months (optional)
2643	 * @return  string - the date in the above format
2644	 */
2645	formatDate: function( format, date, settings ) {
2646		if ( !date ) {
2647			return "";
2648		}
2649
2650		var iFormat,
2651			dayNamesShort = ( settings ? settings.dayNamesShort : null ) || this._defaults.dayNamesShort,
2652			dayNames = ( settings ? settings.dayNames : null ) || this._defaults.dayNames,
2653			monthNamesShort = ( settings ? settings.monthNamesShort : null ) || this._defaults.monthNamesShort,
2654			monthNames = ( settings ? settings.monthNames : null ) || this._defaults.monthNames,
2655
2656			// Check whether a format character is doubled
2657			lookAhead = function( match ) {
2658				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
2659				if ( matches ) {
2660					iFormat++;
2661				}
2662				return matches;
2663			},
2664
2665			// Format a number, with leading zero if necessary
2666			formatNumber = function( match, value, len ) {
2667				var num = "" + value;
2668				if ( lookAhead( match ) ) {
2669					while ( num.length < len ) {
2670						num = "0" + num;
2671					}
2672				}
2673				return num;
2674			},
2675
2676			// Format a name, short or long as requested
2677			formatName = function( match, value, shortNames, longNames ) {
2678				return ( lookAhead( match ) ? longNames[ value ] : shortNames[ value ] );
2679			},
2680			output = "",
2681			literal = false;
2682
2683		if ( date ) {
2684			for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
2685				if ( literal ) {
2686					if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
2687						literal = false;
2688					} else {
2689						output += format.charAt( iFormat );
2690					}
2691				} else {
2692					switch ( format.charAt( iFormat ) ) {
2693						case "d":
2694							output += formatNumber( "d", date.getDate(), 2 );
2695							break;
2696						case "D":
2697							output += formatName( "D", date.getDay(), dayNamesShort, dayNames );
2698							break;
2699						case "o":
2700							output += formatNumber( "o",
2701								Math.round( ( new Date( date.getFullYear(), date.getMonth(), date.getDate() ).getTime() - new Date( date.getFullYear(), 0, 0 ).getTime() ) / 86400000 ), 3 );
2702							break;
2703						case "m":
2704							output += formatNumber( "m", date.getMonth() + 1, 2 );
2705							break;
2706						case "M":
2707							output += formatName( "M", date.getMonth(), monthNamesShort, monthNames );
2708							break;
2709						case "y":
2710							output += ( lookAhead( "y" ) ? date.getFullYear() :
2711								( date.getFullYear() % 100 < 10 ? "0" : "" ) + date.getFullYear() % 100 );
2712							break;
2713						case "@":
2714							output += date.getTime();
2715							break;
2716						case "!":
2717							output += date.getTime() * 10000 + this._ticksTo1970;
2718							break;
2719						case "'":
2720							if ( lookAhead( "'" ) ) {
2721								output += "'";
2722							} else {
2723								literal = true;
2724							}
2725							break;
2726						default:
2727							output += format.charAt( iFormat );
2728					}
2729				}
2730			}
2731		}
2732		return output;
2733	},
2734
2735	/* Extract all possible characters from the date format. */
2736	_possibleChars: function( format ) {
2737		var iFormat,
2738			chars = "",
2739			literal = false,
2740
2741			// Check whether a format character is doubled
2742			lookAhead = function( match ) {
2743				var matches = ( iFormat + 1 < format.length && format.charAt( iFormat + 1 ) === match );
2744				if ( matches ) {
2745					iFormat++;
2746				}
2747				return matches;
2748			};
2749
2750		for ( iFormat = 0; iFormat < format.length; iFormat++ ) {
2751			if ( literal ) {
2752				if ( format.charAt( iFormat ) === "'" && !lookAhead( "'" ) ) {
2753					literal = false;
2754				} else {
2755					chars += format.charAt( iFormat );
2756				}
2757			} else {
2758				switch ( format.charAt( iFormat ) ) {
2759					case "d": case "m": case "y": case "@":
2760						chars += "0123456789";
2761						break;
2762					case "D": case "M":
2763						return null; // Accept anything
2764					case "'":
2765						if ( lookAhead( "'" ) ) {
2766							chars += "'";
2767						} else {
2768							literal = true;
2769						}
2770						break;
2771					default:
2772						chars += format.charAt( iFormat );
2773				}
2774			}
2775		}
2776		return chars;
2777	},
2778
2779	/* Get a setting value, defaulting if necessary. */
2780	_get: function( inst, name ) {
2781		return inst.settings[ name ] !== undefined ?
2782			inst.settings[ name ] : this._defaults[ name ];
2783	},
2784
2785	/* Parse existing date and initialise date picker. */
2786	_setDateFromField: function( inst, noDefault ) {
2787		if ( inst.input.val() === inst.lastVal ) {
2788			return;
2789		}
2790
2791		var dateFormat = this._get( inst, "dateFormat" ),
2792			dates = inst.lastVal = inst.input ? inst.input.val() : null,
2793			defaultDate = this._getDefaultDate( inst ),
2794			date = defaultDate,
2795			settings = this._getFormatConfig( inst );
2796
2797		try {
2798			date = this.parseDate( dateFormat, dates, settings ) || defaultDate;
2799		} catch ( event ) {
2800			dates = ( noDefault ? "" : dates );
2801		}
2802		inst.selectedDay = date.getDate();
2803		inst.drawMonth = inst.selectedMonth = date.getMonth();
2804		inst.drawYear = inst.selectedYear = date.getFullYear();
2805		inst.currentDay = ( dates ? date.getDate() : 0 );
2806		inst.currentMonth = ( dates ? date.getMonth() : 0 );
2807		inst.currentYear = ( dates ? date.getFullYear() : 0 );
2808		this._adjustInstDate( inst );
2809	},
2810
2811	/* Retrieve the default date shown on opening. */
2812	_getDefaultDate: function( inst ) {
2813		return this._restrictMinMax( inst,
2814			this._determineDate( inst, this._get( inst, "defaultDate" ), new Date() ) );
2815	},
2816
2817	/* A date may be specified as an exact value or a relative one. */
2818	_determineDate: function( inst, date, defaultDate ) {
2819		var offsetNumeric = function( offset ) {
2820				var date = new Date();
2821				date.setDate( date.getDate() + offset );
2822				return date;
2823			},
2824			offsetString = function( offset ) {
2825				try {
2826					return $.datepicker.parseDate( $.datepicker._get( inst, "dateFormat" ),
2827						offset, $.datepicker._getFormatConfig( inst ) );
2828				}
2828
2829				
vendor: 6,426 bytes, lines 2829-3003
2829catch ( e ) {
2830
2831					// Ignore
2832				}
2833
2834				var date = ( offset.toLowerCase().match( /^c/ ) ?
2835					$.datepicker._getDate( inst ) : null ) || new Date(),
2836					year = date.getFullYear(),
2837					month = date.getMonth(),
2838					day = date.getDate(),
2839					pattern = /([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,
2840					matches = pattern.exec( offset );
2841
2842				while ( matches ) {
2843					switch ( matches[ 2 ] || "d" ) {
2844						case "d" : case "D" :
2845							day += parseInt( matches[ 1 ], 10 ); break;
2846						case "w" : case "W" :
2847							day += parseInt( matches[ 1 ], 10 ) * 7; break;
2848						case "m" : case "M" :
2849							month += parseInt( matches[ 1 ], 10 );
2850							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
2851							break;
2852						case "y": case "Y" :
2853							year += parseInt( matches[ 1 ], 10 );
2854							day = Math.min( day, $.datepicker._getDaysInMonth( year, month ) );
2855							break;
2856					}
2857					matches = pattern.exec( offset );
2858				}
2859				return new Date( year, month, day );
2860			},
2861			newDate = ( date == null || date === "" ? defaultDate : ( typeof date === "string" ? offsetString( date ) :
2862				( typeof date === "number" ? ( isNaN( date ) ? defaultDate : offsetNumeric( date ) ) : new Date( date.getTime() ) ) ) );
2863
2864		newDate = ( newDate && newDate.toString() === "Invalid Date" ? defaultDate : newDate );
2865		if ( newDate ) {
2866			newDate.setHours( 0 );
2867			newDate.setMinutes( 0 );
2868			newDate.setSeconds( 0 );
2869			newDate.setMilliseconds( 0 );
2870		}
2871		return this._daylightSavingAdjust( newDate );
2872	},
2873
2874	/* Handle switch to/from daylight saving.
2875	 * Hours may be non-zero on daylight saving cut-over:
2876	 * > 12 when midnight changeover, but then cannot generate
2877	 * midnight datetime, so jump to 1AM, otherwise reset.
2878	 * @param  date  (Date) the date to check
2879	 * @return  (Date) the corrected date
2880	 */
2881	_daylightSavingAdjust: function( date ) {
2882		if ( !date ) {
2883			return null;
2884		}
2885		date.setHours( date.getHours() > 12 ? date.getHours() + 2 : 0 );
2886		return date;
2887	},
2888
2889	/* Set the date(s) directly. */
2890	_setDate: function( inst, date, noChange ) {
2891		var clear = !date,
2892			origMonth = inst.selectedMonth,
2893			origYear = inst.selectedYear,
2894			newDate = this._restrictMinMax( inst, this._determineDate( inst, date, new Date() ) );
2895
2896		inst.selectedDay = inst.currentDay = newDate.getDate();
2897		inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth();
2898		inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear();
2899		if ( ( origMonth !== inst.selectedMonth || origYear !== inst.selectedYear ) && !noChange ) {
2900			this._notifyChange( inst );
2901		}
2902		this._adjustInstDate( inst );
2903		if ( inst.input ) {
2904			inst.input.val( clear ? "" : this._formatDate( inst ) );
2905		}
2906	},
2907
2908	/* Retrieve the date(s) directly. */
2909	_getDate: function( inst ) {
2910		var startDate = ( !inst.currentYear || ( inst.input && inst.input.val() === "" ) ? null :
2911			this._daylightSavingAdjust( new Date(
2912			inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
2913			return startDate;
2914	},
2915
2916	/* Attach the onxxx handlers.  These are declared statically so
2917	 * they work with static code transformers like Caja.
2918	 */
2919	_attachHandlers: function( inst ) {
2920		var stepMonths = this._get( inst, "stepMonths" ),
2921			id = "#" + inst.id.replace( /\\\\/g, "\\" );
2922		inst.dpDiv.find( "[data-handler]" ).map( function() {
2923			var handler = {
2924				prev: function() {
2925					$.datepicker._adjustDate( id, -stepMonths, "M" );
2926				},
2927				next: function() {
2928					$.datepicker._adjustDate( id, +stepMonths, "M" );
2929				},
2930				hide: function() {
2931					$.datepicker._hideDatepicker();
2932				},
2933				today: function() {
2934					$.datepicker._gotoToday( id );
2935				},
2936				selectDay: function() {
2937					$.datepicker._selectDay( id, +this.getAttribute( "data-month" ), +this.getAttribute( "data-year" ), this );
2938					return false;
2939				},
2940				selectMonth: function() {
2941					$.datepicker._selectMonthYear( id, this, "M" );
2942					return false;
2943				},
2944				selectYear: function() {
2945					$.datepicker._selectMonthYear( id, this, "Y" );
2946					return false;
2947				}
2948			};
2949			$( this ).on( this.getAttribute( "data-event" ), handler[ this.getAttribute( "data-handler" ) ] );
2950		} );
2951	},
2952
2953	/* Generate the HTML for the current state of the date picker. */
2954	_generateHTML: function( inst ) {
2955		var maxDraw, prevText, prev, nextText, next, currentText, gotoDate,
2956			controls, buttonPanel, firstDay, showWeek, dayNames, dayNamesMin,
2957			monthNames, monthNamesShort, beforeShowDay, showOtherMonths,
2958			selectOtherMonths, defaultDate, html, dow, row, group, col, selectedDate,
2959			cornerClass, calender, thead, day, daysInMonth, leadDays, curRows, numRows,
2960			printDate, dRow, tbody, daySettings, otherMonth, unselectable,
2961			tempDate = new Date(),
2962			today = this._daylightSavingAdjust(
2963				new Date( tempDate.getFullYear(), tempDate.getMonth(), tempDate.getDate() ) ), // clear time
2964			isRTL = this._get( inst, "isRTL" ),
2965			showButtonPanel = this._get( inst, "showButtonPanel" ),
2966			hideIfNoPrevNext = this._get( inst, "hideIfNoPrevNext" ),
2967			navigationAsDateFormat = this._get( inst, "navigationAsDateFormat" ),
2968			numMonths = this._getNumberOfMonths( inst ),
2969			showCurrentAtPos = this._get( inst, "showCurrentAtPos" ),
2970			stepMonths = this._get( inst, "stepMonths" ),
2971			isMultiMonth = ( numMonths[ 0 ] !== 1 || numMonths[ 1 ] !== 1 ),
2972			currentDate = this._daylightSavingAdjust( ( !inst.currentDay ? new Date( 9999, 9, 9 ) :
2973				new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ),
2974			minDate = this._getMinMaxDate( inst, "min" ),
2975			maxDate = this._getMinMaxDate( inst, "max" ),
2976			drawMonth = inst.drawMonth - showCurrentAtPos,
2977			drawYear = inst.drawYear;
2978
2979		if ( drawMonth < 0 ) {
2980			drawMonth += 12;
2981			drawYear--;
2982		}
2983		if ( maxDate ) {
2984			maxDraw = this._daylightSavingAdjust( new Date( maxDate.getFullYear(),
2985				maxDate.getMonth() - ( numMonths[ 0 ] * numMonths[ 1 ] ) + 1, maxDate.getDate() ) );
2986			maxDraw = ( minDate && maxDraw < minDate ? minDate : maxDraw );
2987			while ( this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 ) ) > maxDraw ) {
2988				drawMonth--;
2989				if ( drawMonth < 0 ) {
2990					drawMonth = 11;
2991					drawYear--;
2992				}
2993			}
2994		}
2995		inst.drawMonth = drawMonth;
2996		inst.drawYear = drawYear;
2997
2998		prevText = this._get( inst, "prevText" );
2999		prevText = ( !navigationAsDateFormat ? prevText : this.formatDate( prevText,
3000			this._daylightSavingAdjust( new Date( drawYear, drawMonth - stepMonths, 1 ) ),
3001			this._getFormatConfig( inst ) ) );
3002
3003		
vendor: 3,273 bytes, lines 3003-3055
3003prev = ( this._canAdjustMonth( inst, -1, drawYear, drawMonth ) ?
3004			"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'" +
3005			" title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" :
3006			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='" + prevText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "e" : "w" ) + "'>" + prevText + "</span></a>" ) );
3007
3008		nextText = this._get( inst, "nextText" );
3009		nextText = ( !navigationAsDateFormat ? nextText : this.formatDate( nextText,
3010			this._daylightSavingAdjust( new Date( drawYear, drawMonth + stepMonths, 1 ) ),
3011			this._getFormatConfig( inst ) ) );
3012
3013		next = ( this._canAdjustMonth( inst, +1, drawYear, drawMonth ) ?
3014			"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'" +
3015			" title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" :
3016			( hideIfNoPrevNext ? "" : "<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='" + nextText + "'><span class='ui-icon ui-icon-circle-triangle-" + ( isRTL ? "w" : "e" ) + "'>" + nextText + "</span></a>" ) );
3017
3018		currentText = this._get( inst, "currentText" );
3019		gotoDate = ( this._get( inst, "gotoCurrent" ) && inst.currentDay ? currentDate : today );
3020		currentText = ( !navigationAsDateFormat ? currentText :
3021			this.formatDate( currentText, gotoDate, this._getFormatConfig( inst ) ) );
3022
3023		controls = ( !inst.inline ? "<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>" +
3024			this._get( inst, "closeText" ) + "</button>" : "" );
3025
3026		buttonPanel = ( showButtonPanel ) ? "<div class='ui-datepicker-buttonpane ui-widget-content'>" + ( isRTL ? controls : "" ) +
3027			( this._isInRange( inst, gotoDate ) ? "<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'" +
3028			">" + currentText + "</button>" : "" ) + ( isRTL ? "" : controls ) + "</div>" : "";
3029
3030		firstDay = parseInt( this._get( inst, "firstDay" ), 10 );
3031		firstDay = ( isNaN( firstDay ) ? 0 : firstDay );
3032
3033		showWeek = this._get( inst, "showWeek" );
3034		dayNames = this._get( inst, "dayNames" );
3035		dayNamesMin = this._get( inst, "dayNamesMin" );
3036		monthNames = this._get( inst, "monthNames" );
3037		monthNamesShort = this._get( inst, "monthNamesShort" );
3038		beforeShowDay = this._get( inst, "beforeShowDay" );
3039		showOtherMonths = this._get( inst, "showOtherMonths" );
3040		selectOtherMonths = this._get( inst, "selectOtherMonths" );
3041		defaultDate = this._getDefaultDate( inst );
3042		html = "";
3043
3044		for ( row = 0; row < numMonths[ 0 ]; row++ ) {
3045			group = "";
3046			this.maxRows = 4;
3047			for ( col = 0; col < numMonths[ 1 ]; col++ ) {
3048				selectedDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, inst.selectedDay ) );
3049				cornerClass = " ui-corner-all";
3050				calender = "";
3051				if ( isMultiMonth ) {
3052					calender += "<div class='ui-datepicker-group";
3053					if ( numMonths[ 1 ] > 1 ) {
3054						switch ( col ) {
3055							case 0: calender += " ui-datepicker-group-first";
vendor: 5,222 bytes, lines 3056-3134
3056								cornerClass = " ui-corner-" + ( isRTL ? "right" : "left" ); break;
3057							case numMonths[ 1 ] - 1: calender += " ui-datepicker-group-last";
3058								cornerClass = " ui-corner-" + ( isRTL ? "left" : "right" ); break;
3059							default: calender += " ui-datepicker-group-middle"; cornerClass = ""; break;
3060						}
3061					}
3062					calender += "'>";
3063				}
3064				calender += "<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix" + cornerClass + "'>" +
3065					( /all|left/.test( cornerClass ) && row === 0 ? ( isRTL ? next : prev ) : "" ) +
3066					( /all|right/.test( cornerClass ) && row === 0 ? ( isRTL ? prev : next ) : "" ) +
3067					this._generateMonthYearHeader( inst, drawMonth, drawYear, minDate, maxDate,
3068					row > 0 || col > 0, monthNames, monthNamesShort ) + // draw month headers
3069					"</div><table class='ui-datepicker-calendar'><thead>" +
3070					"<tr>";
3071				thead = ( showWeek ? "<th class='ui-datepicker-week-col'>" + this._get( inst, "weekHeader" ) + "</th>" : "" );
3072				for ( dow = 0; dow < 7; dow++ ) { // days of the week
3073					day = ( dow + firstDay ) % 7;
3074					thead += "<th scope='col'" + ( ( dow + firstDay + 6 ) % 7 >= 5 ? " class='ui-datepicker-week-end'" : "" ) + ">" +
3075						"<span title='" + dayNames[ day ] + "'>" + dayNamesMin[ day ] + "</span></th>";
3076				}
3077				calender += thead + "</tr></thead><tbody>";
3078				daysInMonth = this._getDaysInMonth( drawYear, drawMonth );
3079				if ( drawYear === inst.selectedYear && drawMonth === inst.selectedMonth ) {
3080					inst.selectedDay = Math.min( inst.selectedDay, daysInMonth );
3081				}
3082				leadDays = ( this._getFirstDayOfMonth( drawYear, drawMonth ) - firstDay + 7 ) % 7;
3083				curRows = Math.ceil( ( leadDays + daysInMonth ) / 7 ); // calculate the number of rows to generate
3084				numRows = ( isMultiMonth ? this.maxRows > curRows ? this.maxRows : curRows : curRows ); //If multiple months, use the higher number of rows (see #7043)
3085				this.maxRows = numRows;
3086				printDate = this._daylightSavingAdjust( new Date( drawYear, drawMonth, 1 - leadDays ) );
3087				for ( dRow = 0; dRow < numRows; dRow++ ) { // create date picker rows
3088					calender += "<tr>";
3089					tbody = ( !showWeek ? "" : "<td class='ui-datepicker-week-col'>" +
3090						this._get( inst, "calculateWeek" )( printDate ) + "</td>" );
3091					for ( dow = 0; dow < 7; dow++ ) { // create date picker days
3092						daySettings = ( beforeShowDay ?
3093							beforeShowDay.apply( ( inst.input ? inst.input[ 0 ] : null ), [ printDate ] ) : [ true, "" ] );
3094						otherMonth = ( printDate.getMonth() !== drawMonth );
3095						unselectable = ( otherMonth && !selectOtherMonths ) || !daySettings[ 0 ] ||
3096							( minDate && printDate < minDate ) || ( maxDate && printDate > maxDate );
3097						tbody += "<td class='" +
3098							( ( dow + firstDay + 6 ) % 7 >= 5 ? " ui-datepicker-week-end" : "" ) + // highlight weekends
3099							( otherMonth ? " ui-datepicker-other-month" : "" ) + // highlight days from other months
3100							( ( printDate.getTime() === selectedDate.getTime() && drawMonth === inst.selectedMonth && inst._keyEvent ) || // user pressed key
3101							( defaultDate.getTime() === printDate.getTime() && defaultDate.getTime() === selectedDate.getTime() ) ?
3102
3103							// or defaultDate is current printedDate and defaultDate is selectedDate
3104							" " + this._dayOverClass : "" ) + // highlight selected day
3105							( unselectable ? " " + this._unselectableClass + " ui-state-disabled" : "" ) +  // highlight unselectable days
3106							( otherMonth && !showOtherMonths ? "" : " " + daySettings[ 1 ] + // highlight custom dates
3107							( printDate.getTime() === currentDate.getTime() ? " " + this._currentClass : "" ) + // highlight selected day
3108							( printDate.getTime() === today.getTime() ? " ui-datepicker-today" : "" ) ) + "'" + // highlight today (if different)
3109							( ( !otherMonth || showOtherMonths ) && daySettings[ 2 ] ? " title='" + daySettings[ 2 ].replace( /'/g, "&#39;" ) + "'" : "" ) + // cell title
3110							( unselectable ? "" : " data-handler='selectDay' data-event='click' data-month='" + printDate.getMonth() + "' data-year='" + printDate.getFullYear() + "'" ) + ">" + // actions
3111							( otherMonth && !showOtherMonths ? "&#xa0;" : // display for other months
3112							( unselectable ? "<span class='ui-state-default'>" + printDate.getDate() + "</span>" : "<a class='ui-state-default" +
3113							( printDate.getTime() === today.getTime() ? " ui-state-highlight" : "" ) +
3114							( printDate.getTime() === currentDate.getTime() ? " ui-state-active" : "" ) + // highlight selected day
3115							( otherMonth ? " ui-priority-secondary" : "" ) + // distinguish dates from other months
3116							"' href='#'>" + printDate.getDate() + "</a>" ) ) + "</td>"; // display selectable date
3117						printDate.setDate( printDate.getDate() + 1 );
3118						printDate = this._daylightSavingAdjust( printDate );
3119					}
3120					calender += tbody + "</tr>";
3121				}
3122				drawMonth++;
3123				if ( drawMonth > 11 ) {
3124					drawMonth = 0;
3125					drawYear++;
3126				}
3127				calender += "</tbody></table>" + ( isMultiMonth ? "</div>" +
3128							( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? "<div class='ui-datepicker-row-break'></div>" : "" ) : "" );
3129				group += calender;
3130			}
3131			html += group;
3132		}
3133		html += buttonPanel;
3134		inst._keyEvent = false;
vendor: 10,686 bytes, lines 3135-3410
3135		return html;
3136	},
3137
3138	/* Generate the month and year header. */
3139	_generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate,
3140			secondary, monthNames, monthNamesShort ) {
3141
3142		var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear,
3143			changeMonth = this._get( inst, "changeMonth" ),
3144			changeYear = this._get( inst, "changeYear" ),
3145			showMonthAfterYear = this._get( inst, "showMonthAfterYear" ),
3146			html = "<div class='ui-datepicker-title'>",
3147			monthHtml = "";
3148
3149		// Month selection
3150		if ( secondary || !changeMonth ) {
3151			monthHtml += "<span class='ui-datepicker-month'>" + monthNames[ drawMonth ] + "</span>";
3152		} else {
3153			inMinYear = ( minDate && minDate.getFullYear() === drawYear );
3154			inMaxYear = ( maxDate && maxDate.getFullYear() === drawYear );
3155			monthHtml += "<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";
3156			for ( month = 0; month < 12; month++ ) {
3157				if ( ( !inMinYear || month >= minDate.getMonth() ) && ( !inMaxYear || month <= maxDate.getMonth() ) ) {
3158					monthHtml += "<option value='" + month + "'" +
3159						( month === drawMonth ? " selected='selected'" : "" ) +
3160						">" + monthNamesShort[ month ] + "</option>";
3161				}
3162			}
3163			monthHtml += "</select>";
3164		}
3165
3166		if ( !showMonthAfterYear ) {
3167			html += monthHtml + ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" );
3168		}
3169
3170		// Year selection
3171		if ( !inst.yearshtml ) {
3172			inst.yearshtml = "";
3173			if ( secondary || !changeYear ) {
3174				html += "<span class='ui-datepicker-year'>" + drawYear + "</span>";
3175			} else {
3176
3177				// determine range of years to display
3178				years = this._get( inst, "yearRange" ).split( ":" );
3179				thisYear = new Date().getFullYear();
3180				determineYear = function( value ) {
3181					var year = ( value.match( /c[+\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) :
3182						( value.match( /[+\-].*/ ) ? thisYear + parseInt( value, 10 ) :
3183						parseInt( value, 10 ) ) );
3184					return ( isNaN( year ) ? thisYear : year );
3185				};
3186				year = determineYear( years[ 0 ] );
3187				endYear = Math.max( year, determineYear( years[ 1 ] || "" ) );
3188				year = ( minDate ? Math.max( year, minDate.getFullYear() ) : year );
3189				endYear = ( maxDate ? Math.min( endYear, maxDate.getFullYear() ) : endYear );
3190				inst.yearshtml += "<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";
3191				for ( ; year <= endYear; year++ ) {
3192					inst.yearshtml += "<option value='" + year + "'" +
3193						( year === drawYear ? " selected='selected'" : "" ) +
3194						">" + year + "</option>";
3195				}
3196				inst.yearshtml += "</select>";
3197
3198				html += inst.yearshtml;
3199				inst.yearshtml = null;
3200			}
3201		}
3202
3203		html += this._get( inst, "yearSuffix" );
3204		if ( showMonthAfterYear ) {
3205			html += ( secondary || !( changeMonth && changeYear ) ? "&#xa0;" : "" ) + monthHtml;
3206		}
3207		html += "</div>"; // Close datepicker_header
3208		return html;
3209	},
3210
3211	/* Adjust one of the date sub-fields. */
3212	_adjustInstDate: function( inst, offset, period ) {
3213		var year = inst.selectedYear + ( period === "Y" ? offset : 0 ),
3214			month = inst.selectedMonth + ( period === "M" ? offset : 0 ),
3215			day = Math.min( inst.selectedDay, this._getDaysInMonth( year, month ) ) + ( period === "D" ? offset : 0 ),
3216			date = this._restrictMinMax( inst, this._daylightSavingAdjust( new Date( year, month, day ) ) );
3217
3218		inst.selectedDay = date.getDate();
3219		inst.drawMonth = inst.selectedMonth = date.getMonth();
3220		inst.drawYear = inst.selectedYear = date.getFullYear();
3221		if ( period === "M" || period === "Y" ) {
3222			this._notifyChange( inst );
3223		}
3224	},
3225
3226	/* Ensure a date is within any min/max bounds. */
3227	_restrictMinMax: function( inst, date ) {
3228		var minDate = this._getMinMaxDate( inst, "min" ),
3229			maxDate = this._getMinMaxDate( inst, "max" ),
3230			newDate = ( minDate && date < minDate ? minDate : date );
3231		return ( maxDate && newDate > maxDate ? maxDate : newDate );
3232	},
3233
3234	/* Notify change of month/year. */
3235	_notifyChange: function( inst ) {
3236		var onChange = this._get( inst, "onChangeMonthYear" );
3237		if ( onChange ) {
3238			onChange.apply( ( inst.input ? inst.input[ 0 ] : null ),
3239				[ inst.selectedYear, inst.selectedMonth + 1, inst ] );
3240		}
3241	},
3242
3243	/* Determine the number of months to show. */
3244	_getNumberOfMonths: function( inst ) {
3245		var numMonths = this._get( inst, "numberOfMonths" );
3246		return ( numMonths == null ? [ 1, 1 ] : ( typeof numMonths === "number" ? [ 1, numMonths ] : numMonths ) );
3247	},
3248
3249	/* Determine the current maximum date - ensure no time components are set. */
3250	_getMinMaxDate: function( inst, minMax ) {
3251		return this._determineDate( inst, this._get( inst, minMax + "Date" ), null );
3252	},
3253
3254	/* Find the number of days in a given month. */
3255	_getDaysInMonth: function( year, month ) {
3256		return 32 - this._daylightSavingAdjust( new Date( year, month, 32 ) ).getDate();
3257	},
3258
3259	/* Find the day of the week of the first of a month. */
3260	_getFirstDayOfMonth: function( year, month ) {
3261		return new Date( year, month, 1 ).getDay();
3262	},
3263
3264	/* Determines if we should allow a "next/prev" month display change. */
3265	_canAdjustMonth: function( inst, offset, curYear, curMonth ) {
3266		var numMonths = this._getNumberOfMonths( inst ),
3267			date = this._daylightSavingAdjust( new Date( curYear,
3268			curMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) );
3269
3270		if ( offset < 0 ) {
3271			date.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) );
3272		}
3273		return this._isInRange( inst, date );
3274	},
3275
3276	/* Is the given date in the accepted range? */
3277	_isInRange: function( inst, date ) {
3278		var yearSplit, currentYear,
3279			minDate = this._getMinMaxDate( inst, "min" ),
3280			maxDate = this._getMinMaxDate( inst, "max" ),
3281			minYear = null,
3282			maxYear = null,
3283			years = this._get( inst, "yearRange" );
3284			if ( years ) {
3285				yearSplit = years.split( ":" );
3286				currentYear = new Date().getFullYear();
3287				minYear = parseInt( yearSplit[ 0 ], 10 );
3288				maxYear = parseInt( yearSplit[ 1 ], 10 );
3289				if ( yearSplit[ 0 ].match( /[+\-].*/ ) ) {
3290					minYear += currentYear;
3291				}
3292				if ( yearSplit[ 1 ].match( /[+\-].*/ ) ) {
3293					maxYear += currentYear;
3294				}
3295			}
3296
3297		return ( ( !minDate || date.getTime() >= minDate.getTime() ) &&
3298			( !maxDate || date.getTime() <= maxDate.getTime() ) &&
3299			( !minYear || date.getFullYear() >= minYear ) &&
3300			( !maxYear || date.getFullYear() <= maxYear ) );
3301	},
3302
3303	/* Provide the configuration settings for formatting/parsing. */
3304	_getFormatConfig: function( inst ) {
3305		var shortYearCutoff = this._get( inst, "shortYearCutoff" );
3306		shortYearCutoff = ( typeof shortYearCutoff !== "string" ? shortYearCutoff :
3307			new Date().getFullYear() % 100 + parseInt( shortYearCutoff, 10 ) );
3308		return { shortYearCutoff: shortYearCutoff,
3309			dayNamesShort: this._get( inst, "dayNamesShort" ), dayNames: this._get( inst, "dayNames" ),
3310			monthNamesShort: this._get( inst, "monthNamesShort" ), monthNames: this._get( inst, "monthNames" ) };
3311	},
3312
3313	/* Format the given date for display. */
3314	_formatDate: function( inst, day, month, year ) {
3315		if ( !day ) {
3316			inst.currentDay = inst.selectedDay;
3317			inst.currentMonth = inst.selectedMonth;
3318			inst.currentYear = inst.selectedYear;
3319		}
3320		var date = ( day ? ( typeof day === "object" ? day :
3321			this._daylightSavingAdjust( new Date( year, month, day ) ) ) :
3322			this._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) );
3323		return this.formatDate( this._get( inst, "dateFormat" ), date, this._getFormatConfig( inst ) );
3324	}
3325} );
3326
3327/*
3328 * Bind hover events for datepicker elements.
3329 * Done via delegate so the binding only occurs once in the lifetime of the parent div.
3330 * Global datepicker_instActive, set by _updateDatepicker allows the handlers to find their way back to the active picker.
3331 */
3332function datepicker_bindHover( dpDiv ) {
3333	var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";
3334	return dpDiv.on( "mouseout", selector, function() {
3335			$( this ).removeClass( "ui-state-hover" );
3336			if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
3337				$( this ).removeClass( "ui-datepicker-prev-hover" );
3338			}
3339			if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
3340				$( this ).removeClass( "ui-datepicker-next-hover" );
3341			}
3342		} )
3343		.on( "mouseover", selector, datepicker_handleMouseover );
3344}
3345
3346function datepicker_handleMouseover() {
3347	if ( !$.datepicker._isDisabledDatepicker( datepicker_instActive.inline ? datepicker_instActive.dpDiv.parent()[ 0 ] : datepicker_instActive.input[ 0 ] ) ) {
3348		$( this ).parents( ".ui-datepicker-calendar" ).find( "a" ).removeClass( "ui-state-hover" );
3349		$( this ).addClass( "ui-state-hover" );
3350		if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) {
3351			$( this ).addClass( "ui-datepicker-prev-hover" );
3352		}
3353		if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) {
3354			$( this ).addClass( "ui-datepicker-next-hover" );
3355		}
3356	}
3357}
3358
3359/* jQuery extend now ignores nulls! */
3360function datepicker_extendRemove( target, props ) {
3361	$.extend( target, props );
3362	for ( var name in props ) {
3363		if ( props[ name ] == null ) {
3364			target[ name ] = props[ name ];
3365		}
3366	}
3367	return target;
3368}
3369
3370/* Invoke the datepicker functionality.
3371   @param  options  string - a command, optionally followed by additional parameters or
3372					Object - settings for attaching new datepicker functionality
3373   @return  jQuery object */
3374$.fn.datepicker = function( options ) {
3375
3376	/* Verify an empty collection wasn't passed - Fixes #6976 */
3377	if ( !this.length ) {
3378		return this;
3379	}
3380
3381	/* Initialise the date picker. */
3382	if ( !$.datepicker.initialized ) {
3383		$( document ).on( "mousedown", $.datepicker._checkExternalClick );
3384		$.datepicker.initialized = true;
3385	}
3386
3387	/* Append datepicker main container to body if not exist. */
3388	if ( $( "#" + $.datepicker._mainDivId ).length === 0 ) {
3389		$( "body" ).append( $.datepicker.dpDiv );
3390	}
3391
3392	var otherArgs = Array.prototype.slice.call( arguments, 1 );
3393	if ( typeof options === "string" && ( options === "isDisabled" || options === "getDate" || options === "widget" ) ) {
3394		return $.datepicker[ "_" + options + "Datepicker" ].
3395			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
3396	}
3397	if ( options === "option" && arguments.length === 2 && typeof arguments[ 1 ] === "string" ) {
3398		return $.datepicker[ "_" + options + "Datepicker" ].
3399			apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) );
3400	}
3401	return this.each( function() {
3402		typeof options === "string" ?
3403			$.datepicker[ "_" + options + "Datepicker" ].
3404				apply( $.datepicker, [ this ].concat( otherArgs ) ) :
3405			$.datepicker._attachDatepicker( this, options );
3406	} );
3407};
3408
3409$.datepicker = new Datepicker(); // singleton instance
3410$.datepicker.initialized = false;
vendor: 4,552 bytes, lines 3411-3576
3411$.datepicker.uuid = new Date().getTime();
3412$.datepicker.version = "1.12.1";
3413
3414var widgetsDatepicker = $.datepicker;
3415
3416
3417
3418var safeActiveElement = $.ui.safeActiveElement = function( document ) {
3419	var activeElement;
3420
3421	// Support: IE 9 only
3422	// IE9 throws an "Unspecified error" accessing document.activeElement from an <iframe>
3423	try {
3424		activeElement = document.activeElement;
3425	} catch ( error ) {
3426		activeElement = document.body;
3427	}
3428
3429	// Support: IE 9 - 11 only
3430	// IE may return null instead of an element
3431	// Interestingly, this only seems to occur when NOT in an iframe
3432	if ( !activeElement ) {
3433		activeElement = document.body;
3434	}
3435
3436	// Support: IE 11 only
3437	// IE11 returns a seemingly empty object in some cases when accessing
3438	// document.activeElement from an <iframe>
3439	if ( !activeElement.nodeName ) {
3440		activeElement = document.body;
3441	}
3442
3443	return activeElement;
3444};
3445
3446
3447/*!
3448 * jQuery UI Menu 1.12.1
3449 * http://jqueryui.com
3450 *
3451 * Copyright jQuery Foundation and other contributors
3452 * Released under the MIT license.
3453 * http://jquery.org/license
3454 */
3455
3456//>>label: Menu
3457//>>group: Widgets
3458//>>description: Creates nestable menus.
3459//>>docs: http://api.jqueryui.com/menu/
3460//>>demos: http://jqueryui.com/menu/
3461//>>css.structure: ../../themes/base/core.css
3462//>>css.structure: ../../themes/base/menu.css
3463//>>css.theme: ../../themes/base/theme.css
3464
3465
3466
3467var widgetsMenu = $.widget( "ui.menu", {
3468	version: "1.12.1",
3469	defaultElement: "<ul>",
3470	delay: 300,
3471	options: {
3472		icons: {
3473			submenu: "ui-icon-caret-1-e"
3474		},
3475		items: "> *",
3476		menus: "ul",
3477		position: {
3478			my: "left top",
3479			at: "right top"
3480		},
3481		role: "menu",
3482
3483		// Callbacks
3484		blur: null,
3485		focus: null,
3486		select: null
3487	},
3488
3489	_create: function() {
3490		this.activeMenu = this.element;
3491
3492		// Flag used to prevent firing of the click handler
3493		// as the event bubbles up through nested menus
3494		this.mouseHandled = false;
3495		this.element
3496			.uniqueId()
3497			.attr( {
3498				role: this.options.role,
3499				tabIndex: 0
3500			} );
3501
3502		this._addClass( "ui-menu", "ui-widget ui-widget-content" );
3503		this._on( {
3504
3505			// Prevent focus from sticking to links inside menu after clicking
3506			// them (focus should always stay on UL during navigation).
3507			"mousedown .ui-menu-item": function( event ) {
3508				event.preventDefault();
3509			},
3510			"click .ui-menu-item": function( event ) {
3511				var target = $( event.target );
3512				var active = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
3513				if ( !this.mouseHandled && target.not( ".ui-state-disabled" ).length ) {
3514					this.select( event );
3515
3516					// Only set the mouseHandled flag if the event will bubble, see #9469.
3517					if ( !event.isPropagationStopped() ) {
3518						this.mouseHandled = true;
3519					}
3520
3521					// Open submenu on click
3522					if ( target.has( ".ui-menu" ).length ) {
3523						this.expand( event );
3524					} else if ( !this.element.is( ":focus" ) &&
3525							active.closest( ".ui-menu" ).length ) {
3526
3527						// Redirect focus to the menu
3528						this.element.trigger( "focus", [ true ] );
3529
3530						// If the active item is on the top level, let it stay active.
3531						// Otherwise, blur the active item since it is no longer visible.
3532						if ( this.active && this.active.parents( ".ui-menu" ).length === 1 ) {
3533							clearTimeout( this.timer );
3534						}
3535					}
3536				}
3537			},
3538			"mouseenter .ui-menu-item": function( event ) {
3539
3540				// Ignore mouse events while typeahead is active, see #10458.
3541				// Prevents focusing the wrong item when typeahead causes a scroll while the mouse
3542				// is over an item in the menu
3543				if ( this.previousFilter ) {
3544					return;
3545				}
3546
3547				var actualTarget = $( event.target ).closest( ".ui-menu-item" ),
3548					target = $( event.currentTarget );
3549
3550				// Ignore bubbled events on parent items, see #11641
3551				if ( actualTarget[ 0 ] !== target[ 0 ] ) {
3552					return;
3553				}
3554
3555				// Remove ui-state-active class from siblings of the newly focused menu item
3556				// to avoid a jump caused by adjacent elements both having a class with a border
3557				this._removeClass( target.siblings().children( ".ui-state-active" ),
3558					null, "ui-state-active" );
3559				this.focus( event, target );
3560			},
3561			mouseleave: "collapseAll",
3562			"mouseleave .ui-menu": "collapseAll",
3563			focus: function( event, keepActiveItem ) {
3564
3565				// If there's already an active item, keep it active
3566				// If not, activate the first item
3567				var item = this.active || this.element.find( this.options.items ).eq( 0 );
3568
3569				if ( !keepActiveItem ) {
3570					this.focus( event, item );
3571				}
3572			},
3573			blur: function( event ) {
3574				this._delay( function() {
3575					var notContained = !$.contains(
3576						this.element[ 0 ],
3577						$.ui.safeActiveElement( this.document[ 0 ] )
3578					);
3579					if ( notContained ) {
3580						this.collapseAll( event );
3581					}
3582				} );
3583			},
3584			keydown: "_keydown"
3585		} );
3586
3587		this.refresh();
3588
3589		// Clicks outside of a menu collapse any open menus
3590		this._on( this.document, {
3591			click: function( event ) {
3592				if ( this._closeOnDocumentClick( event ) ) {
3593					this.collapseAll( event );
3594				}
3595
3596				// Reset the mouseHandled flag
3597				this.mouseHandled = false;
3598			}
3599		}
vendor: 9,131 bytes, lines 3599-3933
3599 );
3600	},
3601
3602	_destroy: function() {
3603		var items = this.element.find( ".ui-menu-item" )
3604				.removeAttr( "role aria-disabled" ),
3605			submenus = items.children( ".ui-menu-item-wrapper" )
3606				.removeUniqueId()
3607				.removeAttr( "tabIndex role aria-haspopup" );
3608
3609		// Destroy (sub)menus
3610		this.element
3611			.removeAttr( "aria-activedescendant" )
3612			.find( ".ui-menu" ).addBack()
3613				.removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " +
3614					"tabIndex" )
3615				.removeUniqueId()
3616				.show();
3617
3618		submenus.children().each( function() {
3619			var elem = $( this );
3620			if ( elem.data( "ui-menu-submenu-caret" ) ) {
3621				elem.remove();
3622			}
3623		} );
3624	},
3625
3626	_keydown: function( event ) {
3627		var match, prev, character, skip,
3628			preventDefault = true;
3629
3630		switch ( event.keyCode ) {
3631		case $.ui.keyCode.PAGE_UP:
3632			this.previousPage( event );
3633			break;
3634		case $.ui.keyCode.PAGE_DOWN:
3635			this.nextPage( event );
3636			break;
3637		case $.ui.keyCode.HOME:
3638			this._move( "first", "first", event );
3639			break;
3640		case $.ui.keyCode.END:
3641			this._move( "last", "last", event );
3642			break;
3643		case $.ui.keyCode.UP:
3644			this.previous( event );
3645			break;
3646		case $.ui.keyCode.DOWN:
3647			this.next( event );
3648			break;
3649		case $.ui.keyCode.LEFT:
3650			this.collapse( event );
3651			break;
3652		case $.ui.keyCode.RIGHT:
3653			if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
3654				this.expand( event );
3655			}
3656			break;
3657		case $.ui.keyCode.ENTER:
3658		case $.ui.keyCode.SPACE:
3659			this._activate( event );
3660			break;
3661		case $.ui.keyCode.ESCAPE:
3662			this.collapse( event );
3663			break;
3664		default:
3665			preventDefault = false;
3666			prev = this.previousFilter || "";
3667			skip = false;
3668
3669			// Support number pad values
3670			character = event.keyCode >= 96 && event.keyCode <= 105 ?
3671				( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode );
3672
3673			clearTimeout( this.filterTimer );
3674
3675			if ( character === prev ) {
3676				skip = true;
3677			} else {
3678				character = prev + character;
3679			}
3680
3681			match = this._filterMenuItems( character );
3682			match = skip && match.index( this.active.next() ) !== -1 ?
3683				this.active.nextAll( ".ui-menu-item" ) :
3684				match;
3685
3686			// If no matches on the current filter, reset to the last character pressed
3687			// to move down the menu to the first item that starts with that character
3688			if ( !match.length ) {
3689				character = String.fromCharCode( event.keyCode );
3690				match = this._filterMenuItems( character );
3691			}
3692
3693			if ( match.length ) {
3694				this.focus( event, match );
3695				this.previousFilter = character;
3696				this.filterTimer = this._delay( function() {
3697					delete this.previousFilter;
3698				}, 1000 );
3699			} else {
3700				delete this.previousFilter;
3701			}
3702		}
3703
3704		if ( preventDefault ) {
3705			event.preventDefault();
3706		}
3707	},
3708
3709	_activate: function( event ) {
3710		if ( this.active && !this.active.is( ".ui-state-disabled" ) ) {
3711			if ( this.active.children( "[aria-haspopup='true']" ).length ) {
3712				this.expand( event );
3713			} else {
3714				this.select( event );
3715			}
3716		}
3717	},
3718
3719	refresh: function() {
3720		var menus, items, newSubmenus, newItems, newWrappers,
3721			that = this,
3722			icon = this.options.icons.submenu,
3723			submenus = this.element.find( this.options.menus );
3724
3725		this._toggleClass( "ui-menu-icons", null, !!this.element.find( ".ui-icon" ).length );
3726
3727		// Initialize nested menus
3728		newSubmenus = submenus.filter( ":not(.ui-menu)" )
3729			.hide()
3730			.attr( {
3731				role: this.options.role,
3732				"aria-hidden": "true",
3733				"aria-expanded": "false"
3734			} )
3735			.each( function() {
3736				var menu = $( this ),
3737					item = menu.prev(),
3738					submenuCaret = $( "<span>" ).data( "ui-menu-submenu-caret", true );
3739
3740				that._addClass( submenuCaret, "ui-menu-icon", "ui-icon " + icon );
3741				item
3742					.attr( "aria-haspopup", "true" )
3743					.prepend( submenuCaret );
3744				menu.attr( "aria-labelledby", item.attr( "id" ) );
3745			} );
3746
3747		this._addClass( newSubmenus, "ui-menu", "ui-widget ui-widget-content ui-front" );
3748
3749		menus = submenus.add( this.element );
3750		items = menus.find( this.options.items );
3751
3752		// Initialize menu-items containing spaces and/or dashes only as dividers
3753		items.not( ".ui-menu-item" ).each( function() {
3754			var item = $( this );
3755			if ( that._isDivider( item ) ) {
3756				that._addClass( item, "ui-menu-divider", "ui-widget-content" );
3757			}
3758		} );
3759
3760		// Don't refresh list items that are already adapted
3761		newItems = items.not( ".ui-menu-item, .ui-menu-divider" );
3762		newWrappers = newItems.children()
3763			.not( ".ui-menu" )
3764				.uniqueId()
3765				.attr( {
3766					tabIndex: -1,
3767					role: this._itemRole()
3768				} );
3769		this._addClass( newItems, "ui-menu-item" )
3770			._addClass( newWrappers, "ui-menu-item-wrapper" );
3771
3772		// Add aria-disabled attribute to any disabled menu item
3773		items.filter( ".ui-state-disabled" ).attr( "aria-disabled", "true" );
3774
3775		// If the active item has been removed, blur the menu
3776		if ( this.active && !$.contains( this.element[ 0 ], this.active[ 0 ] ) ) {
3777			this.blur();
3778		}
3779	},
3780
3781	_itemRole: function() {
3782		return {
3783			menu: "menuitem",
3784			listbox: "option"
3785		}[ this.options.role ];
3786	},
3787
3788	_setOption: function( key, value ) {
3789		if ( key === "icons" ) {
3790			var icons = this.element.find( ".ui-menu-icon" );
3791			this._removeClass( icons, null, this.options.icons.submenu )
3792				._addClass( icons, null, value.submenu );
3793		}
3794		this._super( key, value );
3795	},
3796
3797	_setOptionDisabled: function( value ) {
3798		this._super( value );
3799
3800		this.element.attr( "aria-disabled", String( value ) );
3801		this._toggleClass( null, "ui-state-disabled", !!value );
3802	},
3803
3804	focus: function( event, item ) {
3805		var nested, focused, activeParent;
3806		this.blur( event, event && event.type === "focus" );
3807
3808		this._scrollIntoView( item );
3809
3810		this.active = item.first();
3811
3812		focused = this.active.children( ".ui-menu-item-wrapper" );
3813		this._addClass( focused, null, "ui-state-active" );
3814
3815		// Only update aria-activedescendant if there's a role
3816		// otherwise we assume focus is managed elsewhere
3817		if ( this.options.role ) {
3818			this.element.attr( "aria-activedescendant", focused.attr( "id" ) );
3819		}
3820
3821		// Highlight active parent menu item, if any
3822		activeParent = this.active
3823			.parent()
3824				.closest( ".ui-menu-item" )
3825					.children( ".ui-menu-item-wrapper" );
3826		this._addClass( activeParent, null, "ui-state-active" );
3827
3828		if ( event && event.type === "keydown" ) {
3829			this._close();
3830		} else {
3831			this.timer = this._delay( function() {
3832				this._close();
3833			}, this.delay );
3834		}
3835
3836		nested = item.children( ".ui-menu" );
3837		if ( nested.length && event && ( /^mouse/.test( event.type ) ) ) {
3838			this._startOpening( nested );
3839		}
3840		this.activeMenu = item.parent();
3841
3842		this._trigger( "focus", event, { item: item } );
3843	},
3844
3845	_scrollIntoView: function( item ) {
3846		var borderTop, paddingTop, offset, scroll, elementHeight, itemHeight;
3847		if ( this._hasScroll() ) {
3848			borderTop = parseFloat( $.css( this.activeMenu[ 0 ], "borderTopWidth" ) ) || 0;
3849			paddingTop = parseFloat( $.css( this.activeMenu[ 0 ], "paddingTop" ) ) || 0;
3850			offset = item.offset().top - this.activeMenu.offset().top - borderTop - paddingTop;
3851			scroll = this.activeMenu.scrollTop();
3852			elementHeight = this.activeMenu.height();
3853			itemHeight = item.outerHeight();
3854
3855			if ( offset < 0 ) {
3856				this.activeMenu.scrollTop( scroll + offset );
3857			} else if ( offset + itemHeight > elementHeight ) {
3858				this.activeMenu.scrollTop( scroll + offset - elementHeight + itemHeight );
3859			}
3860		}
3861	},
3862
3863	blur: function( event, fromFocus ) {
3864		if ( !fromFocus ) {
3865			clearTimeout( this.timer );
3866		}
3867
3868		if ( !this.active ) {
3869			return;
3870		}
3871
3872		this._removeClass( this.active.children( ".ui-menu-item-wrapper" ),
3873			null, "ui-state-active" );
3874
3875		this._trigger( "blur", event, { item: this.active } );
3876		this.active = null;
3877	},
3878
3879	_startOpening: function( submenu ) {
3880		clearTimeout( this.timer );
3881
3882		// Don't open if already open fixes a Firefox bug that caused a .5 pixel
3883		// shift in the submenu position when mousing over the caret icon
3884		if ( submenu.attr( "aria-hidden" ) !== "true" ) {
3885			return;
3886		}
3887
3888		this.timer = this._delay( function() {
3889			this._close();
3890			this._open( submenu );
3891		}, this.delay );
3892	},
3893
3894	_open: function( submenu ) {
3895		var position = $.extend( {
3896			of: this.active
3897		}, this.options.position );
3898
3899		clearTimeout( this.timer );
3900		this.element.find( ".ui-menu" ).not( submenu.parents( ".ui-menu" ) )
3901			.hide()
3902			.attr( "aria-hidden", "true" );
3903
3904		submenu
3905			.show()
3906			.removeAttr( "aria-hidden" )
3907			.attr( "aria-expanded", "true" )
3908			.position( position );
3909	},
3910
3911	collapseAll: function( event, all ) {
3912		clearTimeout( this.timer );
3913		this.timer = this._delay( function() {
3914
3915			// If we were passed an event, look for the submenu that contains the event
3916			var currentMenu = all ? this.element :
3917				$( event && event.target ).closest( this.element.find( ".ui-menu" ) );
3918
3919			// If we found no valid submenu ancestor, use the main menu to close all
3920			// sub menus anyway
3921			if ( !currentMenu.length ) {
3922				currentMenu = this.element;
3923			}
3924
3925			this._close( currentMenu );
3926
3927			this.blur( event );
3928
3929			// Work around active item staying active after menu is blurred
3930			this._removeClass( currentMenu.find( ".ui-state-active" ), null, "ui-state-active" );
3931
3932			this.activeMenu = currentMenu;
3933		}, 
vendor: 5,747 bytes, lines 3933-4106
3933this.delay );
3934	},
3935
3936	// With no arguments, closes the currently active menu - if nothing is active
3937	// it closes all menus.  If passed an argument, it will search for menus BELOW
3938	_close: function( startMenu ) {
3939		if ( !startMenu ) {
3940			startMenu = this.active ? this.active.parent() : this.element;
3941		}
3942
3943		startMenu.find( ".ui-menu" )
3944			.hide()
3945			.attr( "aria-hidden", "true" )
3946			.attr( "aria-expanded", "false" );
3947	},
3948
3949	_closeOnDocumentClick: function( event ) {
3950		return !$( event.target ).closest( ".ui-menu" ).length;
3951	},
3952
3953	_isDivider: function( item ) {
3954
3955		// Match hyphen, em dash, en dash
3956		return !/[^\-\u2014\u2013\s]/.test( item.text() );
3957	},
3958
3959	collapse: function( event ) {
3960		var newItem = this.active &&
3961			this.active.parent().closest( ".ui-menu-item", this.element );
3962		if ( newItem && newItem.length ) {
3963			this._close();
3964			this.focus( event, newItem );
3965		}
3966	},
3967
3968	expand: function( event ) {
3969		var newItem = this.active &&
3970			this.active
3971				.children( ".ui-menu " )
3972					.find( this.options.items )
3973						.first();
3974
3975		if ( newItem && newItem.length ) {
3976			this._open( newItem.parent() );
3977
3978			// Delay so Firefox will not hide activedescendant change in expanding submenu from AT
3979			this._delay( function() {
3980				this.focus( event, newItem );
3981			} );
3982		}
3983	},
3984
3985	next: function( event ) {
3986		this._move( "next", "first", event );
3987	},
3988
3989	previous: function( event ) {
3990		this._move( "prev", "last", event );
3991	},
3992
3993	isFirstItem: function() {
3994		return this.active && !this.active.prevAll( ".ui-menu-item" ).length;
3995	},
3996
3997	isLastItem: function() {
3998		return this.active && !this.active.nextAll( ".ui-menu-item" ).length;
3999	},
4000
4001	_move: function( direction, filter, event ) {
4002		var next;
4003		if ( this.active ) {
4004			if ( direction === "first" || direction === "last" ) {
4005				next = this.active
4006					[ direction === "first" ? "prevAll" : "nextAll" ]( ".ui-menu-item" )
4007					.eq( -1 );
4008			} else {
4009				next = this.active
4010					[ direction + "All" ]( ".ui-menu-item" )
4011					.eq( 0 );
4012			}
4013		}
4014		if ( !next || !next.length || !this.active ) {
4015			next = this.activeMenu.find( this.options.items )[ filter ]();
4016		}
4017
4018		this.focus( event, next );
4019	},
4020
4021	nextPage: function( event ) {
4022		var item, base, height;
4023
4024		if ( !this.active ) {
4025			this.next( event );
4026			return;
4027		}
4028		if ( this.isLastItem() ) {
4029			return;
4030		}
4031		if ( this._hasScroll() ) {
4032			base = this.active.offset().top;
4033			height = this.element.height();
4034			this.active.nextAll( ".ui-menu-item" ).each( function() {
4035				item = $( this );
4036				return item.offset().top - base - height < 0;
4037			} );
4038
4039			this.focus( event, item );
4040		} else {
4041			this.focus( event, this.activeMenu.find( this.options.items )
4042				[ !this.active ? "first" : "last" ]() );
4043		}
4044	},
4045
4046	previousPage: function( event ) {
4047		var item, base, height;
4048		if ( !this.active ) {
4049			this.next( event );
4050			return;
4051		}
4052		if ( this.isFirstItem() ) {
4053			return;
4054		}
4055		if ( this._hasScroll() ) {
4056			base = this.active.offset().top;
4057			height = this.element.height();
4058			this.active.prevAll( ".ui-menu-item" ).each( function() {
4059				item = $( this );
4060				return item.offset().top - base + height > 0;
4061			} );
4062
4063			this.focus( event, item );
4064		} else {
4065			this.focus( event, this.activeMenu.find( this.options.items ).first() );
4066		}
4067	},
4068
4069	_hasScroll: function() {
4070		return this.element.outerHeight() < this.element.prop( "scrollHeight" );
4071	},
4072
4073	select: function( event ) {
4074
4075		// TODO: It should never be possible to not have an active item at this
4076		// point, but the tests don't trigger mouseenter before click.
4077		this.active = this.active || $( event.target ).closest( ".ui-menu-item" );
4078		var ui = { item: this.active };
4079		if ( !this.active.has( ".ui-menu" ).length ) {
4080			this.collapseAll( event, true );
4081		}
4082		this._trigger( "select", event, ui );
4083	},
4084
4085	_filterMenuItems: function( character ) {
4086		var escapedCharacter = character.replace( /[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&" ),
4087			regex = new RegExp( "^" + escapedCharacter, "i" );
4088
4089		return this.activeMenu
4090			.find( this.options.items )
4091
4092				// Only match on items, not dividers or other content (#10571)
4093				.filter( ".ui-menu-item" )
4094					.filter( function() {
4095						return regex.test(
4096							$.trim( $( this ).children( ".ui-menu-item-wrapper" ).text() ) );
4097					} );
4098	}
4099} );
4100
4101
4102
4103
4104}));
4105
4106!function(i){"use strict";"function"==typeof define&&define.amd?define(["jquery"],i):"undefined"!=typeof exports?module.exports=i(require("jquery")):i(jQuery)}(function(i){"use strict";var e=window.Slick||{};(e=function(){var e=0;return function(t,o){var s,n=this;n.defaults={accessibility:!0,adaptiveHeight:!1,appendArrows:i(t),appendDots:i(t),arrows:!0,asNavFor:null,prevArrow:'<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',nextArrow:'<button class="slick-next" aria-label="Next" type="button">Next</button>',autoplay:!1,autoplaySpeed:3e3,centerMode:!1,centerPadding:"50px",cssEase:"ease",customPaging:function(e,t){return i('<button type="button" />').text(t+1)},dots:!1,dotsClass:"slick-dots",draggable:!0,easing:"linear",edgeFriction:.35,fade:!1,focusOnSelect:!1,focusOnChange:!1,infinite:!0,initialSlide:0,lazyLoad:"ondemand",mobileFirst:!1,pauseOnHover:!0,pauseOnFocus:!0,pauseOnDotsHover:!1,respondTo:"window",responsive:null,rows:1,rtl:!1,slide:"",slidesPerRow:1,slidesToShow:1,slidesToScroll:1,speed:500,swipe:!0,swipeToSlide:!1,touchMove:!0,touchThreshold:5,useCSS:!0,useTransform:!0,variableWidth:!1,vertical:!1,verticalSwiping:!1,waitForAnimate:!0,zIndex:1e3},n.initials={animating:!1,dragging:!1,autoPlayTimer:null,currentDirection:0,currentLeft:null,currentSlide:0,direction:1,$dots:null,listWidth:null,listHeight:null,loadIndex:0,$nextArrow:null,$prevArrow:null,scrolling:!1,slideCount:null,slideWidth:null,$slideTrack:null,$slides:null,
vendor: 6,594 bytes, line 4106
4106sliding:!1,slideOffset:0,swipeLeft:null,swiping:!1,$list:null,touchObject:{},transformsEnabled:!1,unslicked:!1},i.extend(n,n.initials),n.activeBreakpoint=null,n.animType=null,n.animProp=null,n.breakpoints=[],n.breakpointSettings=[],n.cssTransitions=!1,n.focussed=!1,n.interrupted=!1,n.hidden="hidden",n.paused=!0,n.positionProp=null,n.respondTo=null,n.rowCount=1,n.shouldClick=!0,n.$slider=i(t),n.$slidesCache=null,n.transformType=null,n.transitionType=null,n.visibilityChange="visibilitychange",n.windowWidth=0,n.windowTimer=null,s=i(t).data("slick")||{},n.options=i.extend({},n.defaults,o,s),n.currentSlide=n.options.initialSlide,n.originalSettings=n.options,void 0!==document.mozHidden?(n.hidden="mozHidden",n.visibilityChange="mozvisibilitychange"):void 0!==document.webkitHidden&&(n.hidden="webkitHidden",n.visibilityChange="webkitvisibilitychange"),n.autoPlay=i.proxy(n.autoPlay,n),n.autoPlayClear=i.proxy(n.autoPlayClear,n),n.autoPlayIterator=i.proxy(n.autoPlayIterator,n),n.changeSlide=i.proxy(n.changeSlide,n),n.clickHandler=i.proxy(n.clickHandler,n),n.selectHandler=i.proxy(n.selectHandler,n),n.setPosition=i.proxy(n.setPosition,n),n.swipeHandler=i.proxy(n.swipeHandler,n),n.dragHandler=i.proxy(n.dragHandler,n),n.keyHandler=i.proxy(n.keyHandler,n),n.instanceUid=e++,n.htmlExpr=/^(?:\s*(<[\w\W]+>)[^>]*)$/,n.registerBreakpoints(),n.init(!0)}}()).prototype.activateADA=function(){this.$slideTrack.find(".slick-active").attr({"aria-hidden":"false"}).find("a, input, button, select").attr({tabindex:"0"})},e.prototype.addSlide=e.prototype.slickAdd=function(e,t,o){var s=this;if("boolean"==typeof t)o=t,t=null;else if(t<0||t>=s.slideCount)return!1;s.unload(),"number"==typeof t?0===t&&0===s.$slides.length?i(e).appendTo(s.$slideTrack):o?i(e).insertBefore(s.$slides.eq(t)):i(e).insertAfter(s.$slides.eq(t)):!0===o?i(e).prependTo(s.$slideTrack):i(e).appendTo(s.$slideTrack),s.$slides=s.$slideTrack.children(this.options.slide),s.$slideTrack.children(this.options.slide).detach(),s.$slideTrack.append(s.$slides),s.$slides.each(function(e,t){i(t).attr("data-slick-index",e)}),s.$slidesCache=s.$slides,s.reinit()},e.prototype.animateHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.animate({height:e},i.options.speed)}},e.prototype.animateSlide=function(e,t){var o={},s=this;s.animateHeight(),!0===s.options.rtl&&!1===s.options.vertical&&(e=-e),!1===s.transformsEnabled?!1===s.options.vertical?s.$slideTrack.animate({left:e},s.options.speed,s.options.easing,t):s.$slideTrack.animate({top:e},s.options.speed,s.options.easing,t):!1===s.cssTransitions?(!0===s.options.rtl&&(s.currentLeft=-s.currentLeft),i({animStart:s.currentLeft}).animate({animStart:e},{duration:s.options.speed,easing:s.options.easing,step:function(i){i=Math.ceil(i),!1===s.options.vertical?(o[s.animType]="translate("+i+"px, 0px)",s.$slideTrack.css(o)):(o[s.animType]="translate(0px,"+i+"px)",s.$slideTrack.css(o))},complete:function(){t&&t.call()}})):(s.applyTransition(),e=Math.ceil(e),!1===s.options.vertical?o[s.animType]="translate3d("+e+"px, 0px, 0px)":o[s.animType]="translate3d(0px,"+e+"px, 0px)",s.$slideTrack.css(o),t&&setTimeout(function(){s.disableTransition(),t.call()},s.options.speed))},e.prototype.getNavTarget=function(){var e=this,t=e.options.asNavFor;return t&&null!==t&&(t=i(t).not(e.$slider)),t},e.prototype.asNavFor=function(e){var t=this.getNavTarget();null!==t&&"object"==typeof t&&t.each(function(){var t=i(this).slick("getSlick");t.unslicked||t.slideHandler(e,!0)})},e.prototype.applyTransition=function(i){var e=this,t={};!1===e.options.fade?t[e.transitionType]=e.transformType+" "+e.options.speed+"ms "+e.options.cssEase:t[e.transitionType]="opacity "+e.options.speed+"ms "+e.options.cssEase,!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.autoPlay=function(){var i=this;i.autoPlayClear(),i.slideCount>i.options.slidesToShow&&(i.autoPlayTimer=setInterval(i.autoPlayIterator,i.options.autoplaySpeed))},e.prototype.autoPlayClear=function(){var i=this;i.autoPlayTimer&&clearInterval(i.autoPlayTimer)},e.prototype.autoPlayIterator=function(){var i=this,e=i.currentSlide+i.options.slidesToScroll;i.paused||i.interrupted||i.focussed||(!1===i.options.infinite&&(1===i.direction&&i.currentSlide+1===i.slideCount-1?i.direction=0:0===i.direction&&(e=i.currentSlide-i.options.slidesToScroll,i.currentSlide-1==0&&(i.direction=1))),i.slideHandler(e))},e.prototype.buildArrows=function(){var e=this;!0===e.options.arrows&&(e.$prevArrow=i(e.options.prevArrow).addClass("slick-arrow"),e.$nextArrow=i(e.options.nextArrow).addClass("slick-arrow"),e.slideCount>e.options.slidesToShow?(e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"),e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.prependTo(e.options.appendArrows),e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.appendTo(e.options.appendArrows),!0!==e.options.infinite&&e.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true")):e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({"aria-disabled":"true",tabindex:"-1"}))},e.prototype.buildDots=function(){var e,t,o=this;if(!0===o.options.dots){for(o.$slider.addClass("slick-dotted"),t=i("<ul />").addClass(o.options.dotsClass),e=0;e<=o.getDotCount();e+=1)t.append(i("<li />").append(o.options.customPaging.call(this,o,e)));o.$dots=t.appendTo(o.options.appendDots),o.$dots.find("li").first().addClass("slick-active")}},e.prototype.buildOut=function(){var e=this;e.$slides=e.$slider.children(e.options.slide+":not(.slick-cloned)").addClass("slick-slide"),e.slideCount=e.$slides.length,e.$slides.each(function(e,t){i(t).attr("data-slick-index",e).data("originalStyling",i(t).attr("style")||"")}),e.$slider.addClass("slick-slider"),e.$slideTrack=0===e.slideCount?i('<div class="slick-track"/>').appendTo(e.$slider):e.$slides.wrapAll('<div class="slick-track"/>').parent(),e.$list=e.$slideTrack.wrap('<div class="slick-list"/>').parent(),e.$slideTrack.css("opacity",0),!0!==e.options.centerMode&&!0!==e.options.swipeToSlide||(e.options.slidesToScroll=1),i("img[data-lazy]",e.$slider).not("[src]").addClass("slick-loading"),e.setupInfinite(),e.buildArrows(),e.buildDots(),e.updateDots(),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),!0===e.options.draggable&&e.$list.addClass("draggable")},e.prototype.buildRows=function(){var i,e,t,o,s,n,r,l=this;if(o=document.createDocumentFragment(),n=l.$slider.children(),l.o
vendor: 3,442 bytes, line 4106
4106ptions.rows>1){for(r=l.options.slidesPerRow*l.options.rows,s=Math.ceil(n.length/r),i=0;i<s;i++){var d=document.createElement("div");for(e=0;e<l.options.rows;e++){var a=document.createElement("div");for(t=0;t<l.options.slidesPerRow;t++){var c=i*r+(e*l.options.slidesPerRow+t);n.get(c)&&a.appendChild(n.get(c))}d.appendChild(a)}o.appendChild(d)}l.$slider.empty().append(o),l.$slider.children().children().children().css({width:100/l.options.slidesPerRow+"%",display:"inline-block"})}},e.prototype.checkResponsive=function(e,t){var o,s,n,r=this,l=!1,d=r.$slider.width(),a=window.innerWidth||i(window).width();if("window"===r.respondTo?n=a:"slider"===r.respondTo?n=d:"min"===r.respondTo&&(n=Math.min(a,d)),r.options.responsive&&r.options.responsive.length&&null!==r.options.responsive){s=null;for(o in r.breakpoints)r.breakpoints.hasOwnProperty(o)&&(!1===r.originalSettings.mobileFirst?n<r.breakpoints[o]&&(s=r.breakpoints[o]):n>r.breakpoints[o]&&(s=r.breakpoints[o]));null!==s?null!==r.activeBreakpoint?(s!==r.activeBreakpoint||t)&&(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):(r.activeBreakpoint=s,"unslick"===r.breakpointSettings[s]?r.unslick(s):(r.options=i.extend({},r.originalSettings,r.breakpointSettings[s]),!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e)),l=s):null!==r.activeBreakpoint&&(r.activeBreakpoint=null,r.options=r.originalSettings,!0===e&&(r.currentSlide=r.options.initialSlide),r.refresh(e),l=s),e||!1===l||r.$slider.trigger("breakpoint",[r,l])}},e.prototype.changeSlide=function(e,t){var o,s,n,r=this,l=i(e.currentTarget);switch(l.is("a")&&e.preventDefault(),l.is("li")||(l=l.closest("li")),n=r.slideCount%r.options.slidesToScroll!=0,o=n?0:(r.slideCount-r.currentSlide)%r.options.slidesToScroll,e.data.message){case"previous":s=0===o?r.options.slidesToScroll:r.options.slidesToShow-o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide-s,!1,t);break;case"next":s=0===o?r.options.slidesToScroll:o,r.slideCount>r.options.slidesToShow&&r.slideHandler(r.currentSlide+s,!1,t);break;case"index":var d=0===e.data.index?0:e.data.index||l.index()*r.options.slidesToScroll;r.slideHandler(r.checkNavigable(d),!1,t),l.children().trigger("focus");break;default:return}},e.prototype.checkNavigable=function(i){var e,t;if(e=this.getNavigableIndexes(),t=0,i>e[e.length-1])i=e[e.length-1];else for(var o in e){if(i<e[o]){i=t;break}t=e[o]}return i},e.prototype.cleanUpEvents=function(){var e=this;e.options.dots&&null!==e.$dots&&(i("li",e.$dots).off("click.slick",e.changeSlide).off("mouseenter.slick",i.proxy(e.interrupt,e,!0)).off("mouseleave.slick",i.proxy(e.interrupt,e,!1)),!0===e.options.accessibility&&e.$dots.off("keydown.slick",e.keyHandler)),e.$slider.off("focus.slick blur.slick"),!0===e.options.arrows&&e.slideCount>e.options.slidesToShow&&(e.$prevArrow&&e.$prevArrow.off("click.slick",e.changeSlide),e.$nextArrow&&e.$nextArrow.off("click.slick",e.changeSlide),!0===e.options.accessibility&&(e.$prevArrow&&e.$prevArrow.off("keydown.slick",e.keyHandler),e.$nextArrow&&e.$nextArrow.off("keydown.slick",e.keyHandler))),e.$list.off("touchstart.slick mousedown.slick",e.swipeHandler),e.$list.off("touchmove.slick mousemove.slick",e.swipeHandler),e.$list.off("touchend.slick mouseup.slick",e.swipeHandler),e.$list.off("touchcancel.slick mouseleave.
4106slick",e.swipeHandler),e.$list.off("click.slick",e.clickHandler),i(document).off(e.visibilityChange,e.visibility),e.cleanUpSlideEvents(),!0===e.options.accessibility&&e.$list.off("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().off("click.slick",e.selectHandler),i(window).off("orientationchange.slick.slick-"+e.instanceUid,e.orientationChange),i(window).off("resize.slick.slick-"+e.instanceUid,e.resize),i("[draggable!=true]",e.$slideTrack).off("dragstart",e.preventDefault),i(window).off("load.slick.slick-"+e.instanceUid,e.setPosition)},e.prototype.cleanUpSlideEvents=function(){var e=this;e.$list.off("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.off("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.cleanUpRows=function(){var i,e=this;e.options.rows>1&&((i=e.$slides.children().children()).removeAttr("style"),e.$slider.empty().append(i))},e.prototype.clickHandler=function(i){!1===this.shouldClick&&(i.stopImmediatePropagation(),i.stopPropagation(),i.preventDefault())},e.prototype.destroy=function(e){var t=this;t.autoPlayClear(),t.touchObject={},t.cleanUpEvents(),i(".slick-cloned",t.$slider).detach(),t.$dots&&t.$dots.remove(),t.$prevArrow&&t.$prevArrow.length&&(t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.prevArrow)&&t.$prevArrow.remove()),t.$nextArrow&&t.$nextArrow.length&&(t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display",""),t.htmlExpr.test(t.options.nextArrow)&&t.$nextArrow.remove()),t.$slides&&(t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function(){i(this).attr("style",i(this).data("originalStyling"))}),t.$slideTrack.children(this.options.slide).detach(),t.$slideTrack.detach(),t.$list.detach(),t.$slider.append(t.$slides)),t.cleanUpRows(),t.$slider.removeClass("slick-slider"),t.$slider.removeClass("slick-initialized"),t.$slider.removeClass("slick-dotted"),t.unslicked=!0,e||t.$slider.trigger("destroy",[t])},e.prototype.disableTransition=function(i){var e=this,t={};t[e.transitionType]="",!1===e.options.fade?e.$slideTrack.css(t):e.$slides.eq(i).css(t)},e.prototype.fadeSlide=function(i,e){var t=this;!1===t.cssTransitions?(t.$slides.eq(i).css({zIndex:t.options.zIndex}),t.$slides.eq(i).animate({opacity:1},t.options.speed,t.options.easing,e)):(t.applyTransition(i),t.$slides.eq(i).css({opacity:1,zIndex:t.options.zIndex}),e&&setTimeout(function(){t.disableTransition(i),e.call()},t.options.speed))},e.prototype.fadeSlideOut=function(i){var e=this;!1===e.cssTransitions?e.$slides.eq(i).animate({opacity:0,zIndex:e.options.zIndex-2},e.options.speed,e.options.easing):(e.applyTransition(i),e.$slides.eq(i).css({opacity:0,zIndex:e.options.zIndex-2}))},e.prototype.filterSlides=e.prototype.slickFilter=function(i){var e=this;null!==i&&(e.$slidesCache=e.$slides,e.unload(),e.$slideTrack.children(this.options.slide).detach(),e.$slidesCache.filter(i).appendTo(e.$slideTrack),e.reinit())},e.prototype.focusHandler=function(){var e=this;e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick","*",function(t){t.stopImmediatePropagation();var o=i(this);setTimeout(function(){e.options.pauseOnFocus&&(e.focussed=o.is(":focus"),e.autoPlay())},0)})},e.prototype.getCurrent=e.prototype.slickCurrentSlide=function(){return this.currentSlide},e.prototype.getDotCount=function(){var i=this,e=0,t=0,o=0;if(!0===i.options.infinite)if(i.slideCount<=i.options.slidesToShow)++o;else for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else if(!0===i.options.centerMode)o=i.slideCount;else if(i.options.asNavFor)for(;e<i.slideCount;)++o,e=t+i.options.slidesToScroll,t+=i.options.slidesToScroll<=i.options.slidesToShow?i.options.slidesToScroll:i.options.slidesToShow;else o=1+Math.ceil((i.slideCount-i.options.slidesToShow)/i.options.slidesToScroll);return o-1},e.prototype.getLeft=function(i){var e,t,o,s,n=this,r=0;return n.slideOffset=0,t=n.$slides.first().outerHeight(!0),!0===n.options.infinite?(n.slideCount>n.options.slidesToShow&&(n.slideOffset=n.slideWidth*n.options.slidesToShow*-1,s=-1,!0===n.options.vertical&&!0===n.options.centerMode&&(2===n.options.slidesToShow?s=-1.5:1===n.options.slidesToShow&&(s=-2)),r=t*n.options.slidesToShow*s),n.slideCount%n.options.slidesToScroll!=0&&i+n.options.slidesToScroll>n.slideCount&&n.slideCount>n.options.slidesToShow&&(i>n.slideCount?(n.slideOffset=(n.options.slidesToShow-(i-n.slideCount))*n.slideWidth*-1,r=(n.options.slidesToShow-(i-n.slideCount))*t*-1):(n.slideOffset=n.slideCount%n.options.slidesToScroll*n.slideWidth*-1,r=n.slideCount%n.options.slidesToScroll*t*-1))):i+n.options.slidesToShow>n.slideCount&&(n.slideOffset=(i+n.options.slidesToShow-n.slideCount)*n.slideWidth,r=(i+n.options.slidesToShow-n.slideCount)*t),n.slideCount<=n.options.slidesToShow&&(n.slideOffset=0,r=0),!0===n.options.centerMode&&n.slideCount<=n.options.slidesToShow?n.slideOffset=n.slideWidth*Math.floor(n.options.slidesToShow)/2-n.slideWidth*n.slideCount/2:!0===n.options.centerMode&&!0===n.options.infinite?n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)-n.slideWidth:!0===n.options.centerMode&&(n.slideOffset=0,n.slideOffset+=n.slideWidth*Math.floor(n.options.slidesToShow/2)),e=!1===n.options.vertical?i*n.slideWidth*-1+n.slideOffset:i*t*-1+r,!0===n.options.variableWidth&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,!0===n.options.centerMode&&(o=n.slideCount<=n.options.slidesToShow||!1===n.options.infinite?n.$slideTrack.children(".slick-slide").eq(i):n.$slideTrack.children(".slick-slide").eq(i+n.options.slidesToShow+1),e=!0===n.options.rtl?o[0]?-1*(n.$slideTrack.width()-o[0].offsetLeft-o.width()):0:o[0]?-1*o[0].offsetLeft:0,e+=(n.$list.width()-o.outerWidth())/2)),e},e.prototype.getOption=e.prototype.slickGetOption=function(i){return this.options[i]},e.prototype.getNavigableIndexes=function(){var i,e=this,t=0,o=0,s=[];for(!1===e.options.infinite?i=e.slideCount:(t=-1*e.options.slidesToScroll,o=-1*e.options.slidesToScroll,i=2*e.slideCount);t<i;)s.push(t),t=o+e.options.slidesToScroll,o+=e.options.slidesToScroll<=e.options.slidesToShow?e.options.slidesToScroll:e.options.slidesToShow;return s},e.prototype.getSlick=function(){return this},e.prototype.getSlideCount=function(){var e,t,o=this;return t=!0===o.options.centerMode?o.slideWidth*Math.floor(o.options.slidesToShow/2):0,!0===o.options.swipeToSlide?(o.$slideTrack.find(".slick-slide").each(function(s,n){if(n.offsetLeft-t+i(n).outerWidth()/2>-1*o.swipeLeft)return e=n,!1}),Math.abs(i(e).attr("data-slick-index")-o.currentSlide)||1):o.options.slidesToScroll},e.prototype.goTo=e.prototype.slickGoTo=function(i,e){this.changeSlide({data:{message:"index",index:
vendor: 2,805 bytes, line 4106
4106parseInt(i)}},e)},e.prototype.init=function(e){var t=this;i(t.$slider).hasClass("slick-initialized")||(i(t.$slider).addClass("slick-initialized"),t.buildRows(),t.buildOut(),t.setProps(),t.startLoad(),t.loadSlider(),t.initializeEvents(),t.updateArrows(),t.updateDots(),t.checkResponsive(!0),t.focusHandler()),e&&t.$slider.trigger("init",[t]),!0===t.options.accessibility&&t.initADA(),t.options.autoplay&&(t.paused=!1,t.autoPlay())},e.prototype.initADA=function(){var e=this,t=Math.ceil(e.slideCount/e.options.slidesToShow),o=e.getNavigableIndexes().filter(function(i){return i>=0&&i<e.slideCount});e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({"aria-hidden":"true",tabindex:"-1"}).find("a, input, button, select").attr({tabindex:"-1"}),null!==e.$dots&&(e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t){var s=o.indexOf(t);i(this).attr({role:"tabpanel",id:"slick-slide"+e.instanceUid+t,tabindex:-1}),-1!==s&&i(this).attr({"aria-describedby":"slick-slide-control"+e.instanceUid+s})}),e.$dots.attr("role","tablist").find("li").each(function(s){var n=o[s];i(this).attr({role:"presentation"}),i(this).find("button").first().attr({role:"tab",id:"slick-slide-control"+e.instanceUid+s,"aria-controls":"slick-slide"+e.instanceUid+n,"aria-label":s+1+" of "+t,"aria-selected":null,tabindex:"-1"})}).eq(e.currentSlide).find("button").attr({"aria-selected":"true",tabindex:"0"}).end());for(var s=e.currentSlide,n=s+e.options.slidesToShow;s<n;s++)e.$slides.eq(s).attr("tabindex",0);e.activateADA()},e.prototype.initArrowEvents=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.off("click.slick").on("click.slick",{message:"previous"},i.changeSlide),i.$nextArrow.off("click.slick").on("click.slick",{message:"next"},i.changeSlide),!0===i.options.accessibility&&(i.$prevArrow.on("keydown.slick",i.keyHandler),i.$nextArrow.on("keydown.slick",i.keyHandler)))},e.prototype.initDotEvents=function(){var e=this;!0===e.options.dots&&(i("li",e.$dots).on("click.slick",{message:"index"},e.changeSlide),!0===e.options.accessibility&&e.$dots.on("keydown.slick",e.keyHandler)),!0===e.options.dots&&!0===e.options.pauseOnDotsHover&&i("li",e.$dots).on("mouseenter.slick",i.proxy(e.interrupt,e,!0)).on("mouseleave.slick",i.proxy(e.interrupt,e,!1))},e.prototype.initSlideEvents=function(){var e=this;e.options.pauseOnHover&&(e.$list.on("mouseenter.slick",i.proxy(e.interrupt,e,!0)),e.$list.on("mouseleave.slick",i.proxy(e.interrupt,e,!1)))},e.prototype.initializeEvents=function(){var e=this;e.initArrowEvents(),e.initDotEvents(),e.initSlideEvents(),e.$list.on("touchstart.slick mousedown.slick",{action:"start"},e.swipeHandler),e.$list.on("touchmove.slick mousemove.slick",{action:"move"},e.swipeHandler),e.$list.on("touchend.slick mouseup.slick",{action:"end"}
4106,e.swipeHandler),e.$list.on("touchcancel.slick mouseleave.slick",{action:"end"},e.swipeHandler),e.$list.on("click.slick",e.clickHandler),i(document).on(e.visibilityChange,i.proxy(e.visibility,e)),!0===e.options.accessibility&&e.$list.on("keydown.slick",e.keyHandler),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),i(window).on("orientationchange.slick.slick-"+e.instanceUid,i.proxy(e.orientationChange,e)),i(window).on("resize.slick.slick-"+e.instanceUid,i.proxy(e.resize,e)),i("[draggable!=true]",e.$slideTrack).on("dragstart",e.preventDefault),i(window).on("load.slick.slick-"+e.instanceUid,e.setPosition),i(e.setPosition)},e.prototype.initUI=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.show(),i.$nextArrow.show()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.show()},e.prototype.keyHandler=function(i){var e=this;i.target.tagName.match("TEXTAREA|INPUT|SELECT")||(37===i.keyCode&&!0===e.options.accessibility?e.changeSlide({data:{message:!0===e.options.rtl?"next":"previous"}}):39===i.keyCode&&!0===e.options.accessibility&&e.changeSlide({data:{message:!0===e.options.rtl?"previous":"next"}}))},e.prototype.lazyLoad=function(){function e(e){i("img[data-lazy]",e).each(function(){var e=i(this),t=i(this).attr("data-lazy"),o=i(this).attr("data-srcset"),s=i(this).attr("data-sizes")||n.$slider.attr("data-sizes"),r=document.createElement("img");r.onload=function(){e.animate({opacity:0}
vendor: 18,246 bytes, line 4106
4106,100,function(){o&&(e.attr("srcset",o),s&&e.attr("sizes",s)),e.attr("src",t).animate({opacity:1},200,function(){e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")}),n.$slider.trigger("lazyLoaded",[n,e,t])})},r.onerror=function(){e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),n.$slider.trigger("lazyLoadError",[n,e,t])},r.src=t})}var t,o,s,n=this;if(!0===n.options.centerMode?!0===n.options.infinite?s=(o=n.currentSlide+(n.options.slidesToShow/2+1))+n.options.slidesToShow+2:(o=Math.max(0,n.currentSlide-(n.options.slidesToShow/2+1)),s=n.options.slidesToShow/2+1+2+n.currentSlide):(o=n.options.infinite?n.options.slidesToShow+n.currentSlide:n.currentSlide,s=Math.ceil(o+n.options.slidesToShow),!0===n.options.fade&&(o>0&&o--,s<=n.slideCount&&s++)),t=n.$slider.find(".slick-slide").slice(o,s),"anticipated"===n.options.lazyLoad)for(var r=o-1,l=s,d=n.$slider.find(".slick-slide"),a=0;a<n.options.slidesToScroll;a++)r<0&&(r=n.slideCount-1),t=(t=t.add(d.eq(r))).add(d.eq(l)),r--,l++;e(t),n.slideCount<=n.options.slidesToShow?e(n.$slider.find(".slick-slide")):n.currentSlide>=n.slideCount-n.options.slidesToShow?e(n.$slider.find(".slick-cloned").slice(0,n.options.slidesToShow)):0===n.currentSlide&&e(n.$slider.find(".slick-cloned").slice(-1*n.options.slidesToShow))},e.prototype.loadSlider=function(){var i=this;i.setPosition(),i.$slideTrack.css({opacity:1}),i.$slider.removeClass("slick-loading"),i.initUI(),"progressive"===i.options.lazyLoad&&i.progressiveLazyLoad()},e.prototype.next=e.prototype.slickNext=function(){this.changeSlide({data:{message:"next"}})},e.prototype.orientationChange=function(){var i=this;i.checkResponsive(),i.setPosition()},e.prototype.pause=e.prototype.slickPause=function(){var i=this;i.autoPlayClear(),i.paused=!0},e.prototype.play=e.prototype.slickPlay=function(){var i=this;i.autoPlay(),i.options.autoplay=!0,i.paused=!1,i.focussed=!1,i.interrupted=!1},e.prototype.postSlide=function(e){var t=this;t.unslicked||(t.$slider.trigger("afterChange",[t,e]),t.animating=!1,t.slideCount>t.options.slidesToShow&&t.setPosition(),t.swipeLeft=null,t.options.autoplay&&t.autoPlay(),!0===t.options.accessibility&&(t.initADA(),t.options.focusOnChange&&i(t.$slides.get(t.currentSlide)).attr("tabindex",0).focus()))},e.prototype.prev=e.prototype.slickPrev=function(){this.changeSlide({data:{message:"previous"}})},e.prototype.preventDefault=function(i){i.preventDefault()},e.prototype.progressiveLazyLoad=function(e){e=e||1;var t,o,s,n,r,l=this,d=i("img[data-lazy]",l.$slider);d.length?(t=d.first(),o=t.attr("data-lazy"),s=t.attr("data-srcset"),n=t.attr("data-sizes")||l.$slider.attr("data-sizes"),(r=document.createElement("img")).onload=function(){s&&(t.attr("srcset",s),n&&t.attr("sizes",n)),t.attr("src",o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"),!0===l.options.adaptiveHeight&&l.setPosition(),l.$slider.trigger("lazyLoaded",[l,t,o]),l.progressiveLazyLoad()},r.onerror=function(){e<3?setTimeout(function(){l.progressiveLazyLoad(e+1)},500):(t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"),l.$slider.trigger("lazyLoadError",[l,t,o]),l.progressiveLazyLoad())},r.src=o):l.$slider.trigger("allImagesLoaded",[l])},e.prototype.refresh=function(e){var t,o,s=this;o=s.slideCount-s.options.slidesToShow,!s.options.infinite&&s.currentSlide>o&&(s.currentSlide=o),s.slideCount<=s.options.slidesToShow&&(s.currentSlide=0),t=s.currentSlide,s.destroy(!0),i.extend(s,s.initials,{currentSlide:t}),s.init(),e||s.changeSlide({data:{message:"index",index:t}},!1)},e.prototype.registerBreakpoints=function(){var e,t,o,s=this,n=s.options.responsive||null;if("array"===i.type(n)&&n.length){s.respondTo=s.options.respondTo||"window";for(e in n)if(o=s.breakpoints.length-1,n.hasOwnProperty(e)){for(t=n[e].breakpoint;o>=0;)s.breakpoints[o]&&s.breakpoints[o]===t&&s.breakpoints.splice(o,1),o--;s.breakpoints.push(t),s.breakpointSettings[t]=n[e].settings}s.breakpoints.sort(function(i,e){return s.options.mobileFirst?i-e:e-i})}},e.prototype.reinit=function(){var e=this;e.$slides=e.$slideTrack.children(e.options.slide).addClass("slick-slide"),e.slideCount=e.$slides.length,e.currentSlide>=e.slideCount&&0!==e.currentSlide&&(e.currentSlide=e.currentSlide-e.options.slidesToScroll),e.slideCount<=e.options.slidesToShow&&(e.currentSlide=0),e.registerBreakpoints(),e.setProps(),e.setupInfinite(),e.buildArrows(),e.updateArrows(),e.initArrowEvents(),e.buildDots(),e.updateDots(),e.initDotEvents(),e.cleanUpSlideEvents(),e.initSlideEvents(),e.checkResponsive(!1,!0),!0===e.options.focusOnSelect&&i(e.$slideTrack).children().on("click.slick",e.selectHandler),e.setSlideClasses("number"==typeof e.currentSlide?e.currentSlide:0),e.setPosition(),e.focusHandler(),e.paused=!e.options.autoplay,e.autoPlay(),e.$slider.trigger("reInit",[e])},e.prototype.resize=function(){var e=this;i(window).width()!==e.windowWidth&&(clearTimeout(e.windowDelay),e.windowDelay=window.setTimeout(function(){e.windowWidth=i(window).width(),e.checkResponsive(),e.unslicked||e.setPosition()},50))},e.prototype.removeSlide=e.prototype.slickRemove=function(i,e,t){var o=this;if(i="boolean"==typeof i?!0===(e=i)?0:o.slideCount-1:!0===e?--i:i,o.slideCount<1||i<0||i>o.slideCount-1)return!1;o.unload(),!0===t?o.$slideTrack.children().remove():o.$slideTrack.children(this.options.slide).eq(i).remove(),o.$slides=o.$slideTrack.children(this.options.slide),o.$slideTrack.children(this.options.slide).detach(),o.$slideTrack.append(o.$slides),o.$slidesCache=o.$slides,o.reinit()},e.prototype.setCSS=function(i){var e,t,o=this,s={};!0===o.options.rtl&&(i=-i),e="left"==o.positionProp?Math.ceil(i)+"px":"0px",t="top"==o.positionProp?Math.ceil(i)+"px":"0px",s[o.positionProp]=i,!1===o.transformsEnabled?o.$slideTrack.css(s):(s={},!1===o.cssTransitions?(s[o.animType]="translate("+e+", "+t+")",o.$slideTrack.css(s)):(s[o.animType]="translate3d("+e+", "+t+", 0px)",o.$slideTrack.css(s)))},e.prototype.setDimensions=function(){var i=this;!1===i.options.vertical?!0===i.options.centerMode&&i.$list.css({padding:"0px "+i.options.centerPadding}):(i.$list.height(i.$slides.first().outerHeight(!0)*i.options.slidesToShow),!0===i.options.centerMode&&i.$list.css({padding:i.options.centerPadding+" 0px"})),i.listWidth=i.$list.width(),i.listHeight=i.$list.height(),!1===i.options.vertical&&!1===i.options.variableWidth?(i.slideWidth=Math.ceil(i.listWidth/i.options.slidesToShow),i.$slideTrack.width(Math.ceil(i.slideWidth*i.$slideTrack.children(".slick-slide").length))):!0===i.options.variableWidth?i.$slideTrack.width(5e3*i.slideCount):(i.slideWidth=Math.ceil(i.listWidth),i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0)*i.$slideTrack.children(".slick-slide").length)));var e=i.$slides.first().outerWidth(!0)-i.$slides.first().width();!1===i.options.variableWidth&&i.$slideTrack.children(".slick-slide").width(i.slideWidth-e)},e.prototype.setFade=function(){var e,t=this;t.$slides.each(function(o,s){e=t.slideWidth*o*-1,!0===t.options.rtl?i(s).css({position:"relative",right:e,top:0,zIndex:t.options.zIndex-2,opacity:0}):i(s).css({position:"relative",left:e,top:0,zIndex:t.options.zIndex-2,opacity:0})}),t.$slides.eq(t.currentSlide).css({zIndex:t.options.zIndex-1,opacity:1})},e.prototype.setHeight=function(){var i=this;if(1===i.options.slidesToShow&&!0===i.options.adaptiveHeight&&!1===i.options.vertical){var e=i.$slides.eq(i.currentSlide).outerHeight(!0);i.$list.css("height",e)}},e.prototype.setOption=e.prototype.slickSetOption=function(){var e,t,o,s,n,r=this,l=!1;if("object"===i.type(arguments[0])?(o=arguments[0],l=arguments[1],n="multiple"):"string"===i.type(arguments[0])&&(o=arguments[0],s=arguments[1],l=arguments[2],"responsive"===arguments[0]&&"array"===i.type(arguments[1])?n="responsive":void 0!==arguments[1]&&(n="single")),"single"===n)r.options[o]=s;else if("multiple"===n)i.each(o,function(i,e){r.options[i]=e});else if("responsive"===n)for(t in s)if("array"!==i.type(r.options.responsive))r.options.responsive=[s[t]];else{for(e=r.options.responsive.length-1;e>=0;)r.options.responsive[e].breakpoint===s[t].breakpoint&&r.options.responsive.splice(e,1),e--;r.options.responsive.push(s[t])}l&&(r.unload(),r.reinit())},e.prototype.setPosition=function(){var i=this;i.setDimensions(),i.setHeight(),!1===i.options.fade?i.setCSS(i.getLeft(i.currentSlide)):i.setFade(),i.$slider.trigger("setPosition",[i])},e.prototype.setProps=function(){var i=this,e=document.body.style;i.positionProp=!0===i.options.vertical?"top":"left","top"===i.positionProp?i.$slider.addClass("slick-vertical"):i.$slider.removeClass("slick-vertical"),void 0===e.WebkitTransition&&void 0===e.MozTransition&&void 0===e.msTransition||!0===i.options.useCSS&&(i.cssTransitions=!0),i.options.fade&&("number"==typeof i.options.zIndex?i.options.zIndex<3&&(i.options.zIndex=3):i.options.zIndex=i.defaults.zIndex),void 0!==e.OTransform&&(i.animType="OTransform",i.transformType="-o-transform",i.transitionType="OTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.MozTransform&&(i.animType="MozTransform",i.transformType="-moz-transform",i.transitionType="MozTransition",void 0===e.perspectiveProperty&&void 0===e.MozPerspective&&(i.animType=!1)),void 0!==e.webkitTransform&&(i.animType="webkitTransform",i.transformType="-webkit-transform",i.transitionType="webkitTransition",void 0===e.perspectiveProperty&&void 0===e.webkitPerspective&&(i.animType=!1)),void 0!==e.msTransform&&(i.animType="msTransform",i.transformType="-ms-transform",i.transitionType="msTransition",void 0===e.msTransform&&(i.animType=!1)),void 0!==e.transform&&!1!==i.animType&&(i.animType="transform",i.transformType="transform",i.transitionType="transition"),i.transformsEnabled=i.options.useTransform&&null!==i.animType&&!1!==i.animType},e.prototype.setSlideClasses=function(i){var e,t,o,s,n=this;if(t=n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden","true"),n.$slides.eq(i).addClass("slick-current"),!0===n.options.centerMode){var r=n.options.slidesToShow%2==0?1:0;e=Math.floor(n.options.slidesToShow/2),!0===n.options.infinite&&(i>=e&&i<=n.slideCount-1-e?n.$slides.slice(i-e+r,i+e+1).addClass("slick-active").attr("aria-hidden","false"):(o=n.options.slidesToShow+i,t.slice(o-e+1+r,o+e+2).addClass("slick-active").attr("aria-hidden","false")),0===i?t.eq(t.length-1-n.options.slidesToShow).addClass("slick-center"):i===n.slideCount-1&&t.eq(n.options.slidesToShow).addClass("slick-center")),n.$slides.eq(i).addClass("slick-center")}else i>=0&&i<=n.slideCount-n.options.slidesToShow?n.$slides.slice(i,i+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"):t.length<=n.options.slidesToShow?t.addClass("slick-active").attr("aria-hidden","false"):(s=n.slideCount%n.options.slidesToShow,o=!0===n.options.infinite?n.options.slidesToShow+i:i,n.options.slidesToShow==n.options.slidesToScroll&&n.slideCount-i<n.options.slidesToShow?t.slice(o-(n.options.slidesToShow-s),o+s).addClass("slick-active").attr("aria-hidden","false"):t.slice(o,o+n.options.slidesToShow).addClass("slick-active").attr("aria-hidden","false"));"ondemand"!==n.options.lazyLoad&&"anticipated"!==n.options.lazyLoad||n.lazyLoad()},e.prototype.setupInfinite=function(){var e,t,o,s=this;if(!0===s.options.fade&&(s.options.centerMode=!1),!0===s.options.infinite&&!1===s.options.fade&&(t=null,s.slideCount>s.options.slidesToShow)){for(o=!0===s.options.centerMode?s.options.slidesToShow+1:s.options.slidesToShow,e=s.slideCount;e>s.slideCount-o;e-=1)t=e-1,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t-s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");for(e=0;e<o+s.slideCount;e+=1)t=e,i(s.$slides[t]).clone(!0).attr("id","").attr("data-slick-index",t+s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");s.$slideTrack.find(".slick-cloned").find("[id]").each(function(){i(this).attr("id","")})}},e.prototype.interrupt=function(i){var e=this;i||e.autoPlay(),e.interrupted=i},e.prototype.selectHandler=function(e){var t=this,o=i(e.target).is(".slick-slide")?i(e.target):i(e.target).parents(".slick-slide"),s=parseInt(o.attr("data-slick-index"));s||(s=0),t.slideCount<=t.options.slidesToShow?t.slideHandler(s,!1,!0):t.slideHandler(s)},e.prototype.slideHandler=function(i,e,t){var o,s,n,r,l,d=null,a=this;if(e=e||!1,!(!0===a.animating&&!0===a.options.waitForAnimate||!0===a.options.fade&&a.currentSlide===i))if(!1===e&&a.asNavFor(i),o=i,d=a.getLeft(o),r=a.getLeft(a.currentSlide),a.currentLeft=null===a.swipeLeft?r:a.swipeLeft,!1===a.options.infinite&&!1===a.options.centerMode&&(i<0||i>a.getDotCount()*a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else if(!1===a.options.infinite&&!0===a.options.centerMode&&(i<0||i>a.slideCount-a.options.slidesToScroll))!1===a.options.fade&&(o=a.currentSlide,!0!==t?a.animateSlide(r,function(){a.postSlide(o)}):a.postSlide(o));else{if(a.options.autoplay&&clearInterval(a.autoPlayTimer),s=o<0?a.slideCount%a.options.slidesToScroll!=0?a.slideCount-a.slideCount%a.options.slidesToScroll:a.slideCount+o:o>=a.slideCount?a.slideCount%a.options.slidesToScroll!=0?0:o-a.slideCount:o,a.animating=!0,a.$slider.trigger("beforeChange",[a,a.currentSlide,s]),n=a.currentSlide,a.currentSlide=s,a.setSlideClasses(a.currentSlide),a.options.asNavFor&&(l=(l=a.getNavTarget()).slick("getSlick")).slideCount<=l.options.slidesToShow&&l.setSlideClasses(a.currentSlide),a.updateDots(),a.updateArrows(),!0===a.options.fade)return!0!==t?(a.fadeSlideOut(n),a.fadeSlide(s,function(){a.postSlide(s)})):a.postSlide(s),void a.animateHeight();!0!==t?a.animateSlide(d,function(){a.postSlide(s)}):a.postSlide(s)}},e.prototype.startLoad=function(){var i=this;!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&(i.$prevArrow.hide(),i.$nextArrow.hide()),!0===i.options.dots&&i.slideCount>i.options.slidesToShow&&i.$dots.hide(),i.$slider.addClass("slick-loading")},e.prototype.swipeDirection=function(){var i,e,t,o,s=this;return i=s.touchObject.startX-s.touchObject.curX,e=s.touchObject.startY-s.touchObject.curY,t=Math.atan2(e,i),(o=Math.round(180*t/Math.PI))<0&&(o=360-Math.abs(o)),o<=45&&o>=0?!1===s.options.rtl?"left":"right":o<=360&&o>=315?!1===s.options.rtl?"left":"right":o>=135&&o<=225?!1===s.options.rtl?"right":"left":!0===s.options.verticalSwiping?o>=35&&o<=135?"down":"up":"vertical"},e.prototype.swipeEnd=function(i){var e,t,o=this;if(o.dragging=!1,o.swiping=!1,o.scrolling)return o.scrolling=!1,!1;if(o.interrupted=!1,o.shouldClick=!(o.touchObject.swipeLength>10),void 0===o.touchObject.curX)return!1;if(!0===o.touchObject.edgeHit&&o.$slider.trigger("edge",[o,o.swipeDirection()]),o.touchObject.swipeLength>=o.touchObject.minSwipe){switch(t=o.swipeDirection()){case"left":case"down":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide+o.getSlideCount()):o.currentSlide+o.getSlideCount(),o.currentDirection=0;break;case"right":case"up":e=o.options.swipeToSlide?o.checkNavigable(o.currentSlide-o.getSlideCount()):o.currentSlide-o.getSlideCount(),o.currentDirection=1}"vertical"!=t&&(o.slideHandler(e),o.touchObject={},o.$slider.trigger("swipe",[o,t]))}else o.touchObject.startX!==o.touchObject.curX&&(o.slideHandler(o.currentSlide),o.touchObject={})},e.prototype.swipeHandler=function(i){var e=this;if(!(!1===e.options.swipe||"ontouchend"in document&&!1===e.options.swipe||!1===e.options.draggable&&-1!==i.type.indexOf("mouse")))switch(e.touchObject.fingerCount=i.originalEvent&&void 0!==i.originalEvent.touches?i.originalEvent.touches.length:1,e.touchObject.minSwipe=e.listWidth/e.options.touchThreshold,!0===e.options.verticalSwiping&&(e.touchObject.minSwipe=e.listHeight/e.options.touchThreshold),i.data.action){case"start":e.swipeStart(i);break;case"move":e.swipeMove(i);break;case"end":e.swipeEnd(i)}},e.prototype.swipeMove=function(i){var e,t,o,s,n,r,l=this;return n=void 0!==i.originalEvent?i.originalEvent.touches:null,!(!l.dragging||l.scrolling||n&&1!==n.length)&&(e=l.getLeft(l.currentSlide),l.touchObject.curX=void 0!==n?n[0].pageX:i.clientX,l.touchObject.curY=void 0!==n?n[0].pageY:i.clientY,l.touchObject.swipeLength=Math.round(Math.sqrt(Math.pow(l.touchObject.curX-l.touchObject.startX,2))),r=Math.round(Math.sqrt(Math.pow(l.touchObject.curY-l.touchObject.startY,2))),!l.options.verticalSwiping&&!l.swiping&&r>4?(l.scrolling=!0,!1):(!0===l.options.verticalSwiping&&(l.touchObject.swipeLength=r),t=l.swipeDirection(),void 0!==i.originalEvent&&l.touchObject.swipeLength>4&&(l.swiping=!0,i.preventDefault()),s=(!1===l.options.rtl?1:-1)*(l.touchObject.curX>l.touchObject.startX?1:-1),!0===l.options.verticalSwiping&&(s=l.touchObject.curY>l.touchObject.startY?1:-1),o=l.touchObject.swipeLength,l.touchObject.edgeHit=!1,!1===l.options.infinite&&(0===l.currentSlide&&"right"===t||l.currentSlide>=l.getDotCount()&&"left"===t)&&(o=l.touchObject.swipeLength*l.options.edgeFriction,l.touchObject.edgeHit=!0),!1===l.options.vertical?l.swipeLeft=e+o*s:l.swipeLeft=e+o*(l.$list.height()/l.listWidth)*s,!0===l.options.verticalSwiping&&(l.swipeLeft=e+o*s),!0!==l.options.fade&&!1!==l.options.touchMove&&(!0===l.animating?(l.swipeLeft=null,!1):void l.setCSS(l.swipeLeft))))},e.prototype.swipeStart=function(i){var e,t=this;if(t.interrupted=!0,1!==t.touchObject.fingerCount||t.slideCount<=t.options.slidesToShow)return t.touchObject={},!1;void 0!==i.originalEvent&&void 0!==i.originalEvent.touches&&(e=i.originalEvent.touches[0]),t.touchObject.startX=t.touchObject.curX=void 0!==e?e.pageX:i.clientX,t.touchObject.startY=t.touchObject.curY=void 0!==e?e.pageY:i.clientY,t.dragging=!0},e.prototype.unfilterSlides=e.prototype.slickUnfilter=function(){var i=this;null!==i.$slidesCache&&(i.unload(),i.$slideTrack.children(this.options.slide).detach(),i.$slidesCache.appendTo(i.$slideTrack),i.reinit())},e.prototype.unload=function(){var e=this;i(".slick-cloned",e.$slider).remove(),e.$dots&&e.$dots.remove(),e.$prevArrow&&e.htmlExpr.test(e.options.prevArrow)&&e.$prevArrow.remove(),e.$nextArrow&&e.htmlExpr.test(e.options.nextArrow)&&e.$nextArrow.remove(),e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden","true").css("width","")}
4106,e.prototype.unslick=function(i){var e=this;e.$slider.trigger("unslick",[e,i]),e.destroy()},e.prototype.updateArrows=function(){var i=this;Math.floor(i.options.slidesToShow/2),!0===i.options.arrows&&i.slideCount>i.options.slidesToShow&&!i.options.infinite&&(i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false"),0===i.currentSlide?(i.$prevArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-i.options.slidesToShow&&!1===i.options.centerMode?(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")):i.currentSlide>=i.slideCount-1&&!0===i.options.centerMode&&(i.$nextArrow.addClass("slick-disabled").attr("aria-disabled","true"),i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled","false")))},e.prototype.updateDots=function(){var i=this;null!==i.$dots&&(i.$dots.find("li").removeClass("slick-active").end(),i.$dots.find("li").eq(Math.floor(i.currentSlide/i.options.slidesToScroll)).addClass("slick-active"))},e.prototype.visibility=function(){var i=this;i.options.autoplay&&(document[i.hidden]?i.interrupted=!0:i.interrupted=!1)},i.fn.slick=function(){var i,t,o=this,s=arguments[0],n=Array.prototype.slice.call(arguments,1),r=o.length;for(i=0;i<r;i++)if("object"==typeof s||void 0===s?o[i].slick=new e(o[i],s):t=o[i].slick[s].apply(o[i].slick,n),void 0!==t)return t;return o}});
4107
4108/*!
4109Waypoints - 4.0.1
4110Copyright © 2011-2016 Caleb Troughton
4111Licensed under the MIT license.
4112https://github.com/imakewebthings/waypoints/blob/master/licenses.txt
4113*/
4114!function(){"use strict";function t(o){if(!o)throw new Error("No options passed to Waypoint constructor");if(!o.element)throw new Error("No element option passed to Waypoint constructor");if(!o.handler)throw new Error("No handler option passed to Waypoint constructor");this.key="waypoint-"+e,this.options=t.Adapter.extend({},t.defaults,o),this.element=this.options.element,this.adapter=new t.Adapter(this.element),this.callback=o.handler,this.axis=this.options.horizontal?"horizontal":"vertical",this.enabled=this.options.enabled,this.triggerPoint=null,this.group=t.Group.findOrCreate({name:this.options.group,axis:this.axis}),this.context=t.Context.findOrCreateByElement(this.options.context),t.offsetAliases[this.options.offset]&&(this.options.offset=t.offsetAliases[this.options.offset]),this.group.add(this),this.context.add(this),i[this.key]=this,e+=1}var e=0,i={};t.prototype.queueTrigger=function(t){this.group.queueTrigger(this,t)},t.prototype.trigger=function(t){this.enabled&&this.callback&&this.callback.apply(this,t)},t.prototype.destroy=function(){this.context.remove(this),this.group.remove(this),delete i[this.key]},t.prototype.disable=function(){return this.enabled=!1,this},t.prototype.enable=function(){return this.context.refresh(),this.enabled=!0,this},t.prototype.next=function(){return this.group.next(this)},t.prototype.previous=function(){return this.group.previous(this)},t.invokeAll=function(t){var e=[];for(var o in i)e.push(i[o]);for(var n=0,r=e.length;r>n;n++)e[n][t]()},t.destroyAll=function(){t.invokeAll("destroy")},t.disableAll=function(){t.invokeAll("disable")},t.enableAll=function(){t.Context.refreshAll();for(var e in i)i[e].enabled=!0;return this},t.refreshAll=function(){t.Context.refreshAll()},t.viewportHeight=function(){return window.innerHeight||document.documentElement.clientHeight},t.viewportWidth=function(){return document.documentElement.clientWidth},t.adapters=[],t.defaults={context:window,continuous:!0,enabled:!0,group:"default",horizontal:!1,offset:0},t.offsetAliases={"bottom-in-view":function(){return this.context.innerHeight()-this.adapter.outerHeight()},"right-in-view":function(){return this.context.innerWidth()-this.adapter.outerWidth()}},window.Waypoint=t}(),function(){"use strict";function t(t){window.setTimeout(t,1e3/60)}function e(t){this.element=t,this.Adapter=n.Adapter,this.adapter=new this.Adapter(t),this.key="wayp
4114oint-context-"+i,this.didScroll=!1,this.didResize=!1,this.oldScroll={x:this.adapter.scrollLeft(),y:this.adapter.scrollTop()},this.waypoints={vertical:{},horizontal:{}},t.waypointContextKey=this.key,o[t.waypointContextKey]=this,i+=1,n.windowContext||(n.windowContext=!0,n.windowContext=new e(window)),this.createThrottledScrollHandler(),this.createThrottledResizeHandler()}var i=0,o={},n=window.Waypoint,r=window.onload;e.prototype.add=function(t){var e=t.options.horizontal?"horizontal":"vertical";this.waypoints[e][t.key]=t,this.refresh()},e.prototype.checkEmpty=function(){var t=this.Adapter.isEmptyObject(this.waypoints.horizontal),e=this.Adapter.isEmptyObject(this.waypoints.vertical),i=this.element==this.element.window;t&&e&&!i&&(this.adapter.off(".waypoints"),delete o[this.key])},e.prototype.createThrottledResizeHandler=function(){function t(){e.handleResize(),e.didResize=!1}var e=this;this.adapter.on("resize.waypoints",function(){e.didResize||(e.didResize=!0,n.requestAnimationFrame(t))})},e.prototype.createThrottledScrollHandler=function(){function t(){e.handleScroll(),e.didScroll=!1}var e=this;this.adapter.on("scroll.waypoints",function(){(!e.didScroll||n.isTouch)&&(e.didScroll=!0,n.requestAnimationFrame(t))})},e.prototype.handleResize=function(){n.Context.refreshAll()},e.prototype.handleScroll=function(){var t={},e={horizontal:{newScroll:this.adapter.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.adapter.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};for(var i in e){var o=e[i],n=o.newScroll>o.oldScroll,r=n?o.forward:o.backward;for(var s in this.waypoints[i]){var a=this.waypoints[i][s];if(null!==a.triggerPoint){var l=o.oldScroll<a.triggerPoint,h=o.newScroll>=a.triggerPoint,p=l&&h,u=!l&&!h;(p||u)&&(a.queueTrigger(r),t[a.group.id]=a.group)}}}for(var c in t)t[c].flushTriggers();this.oldScroll={x:e.horizontal.newScroll,y:e.vertical.newScroll}},e.prototype.innerHeight=function(){return this.element==this.element.window?n.viewportHeight():this.adapter.innerHeight()},e.prototype.remove=function(t){delete this.waypoints[t.axis][t.key],this.checkEmpty()},e.prototype.innerWidth=function(){return this.element==this.element.window?n.viewportWidth():this.adapter.innerWidth()},e.prototype.destroy=function(){var t=[];for(var e in this.waypoints)for(var i in this.waypoints[e])t.push(this.waypoints[e][i]);for(var o=0,n=t.length;n>o;o++)t[o].destroy()},e.prototype.refresh=function(){var t,e=this.element==this.element.window,i=e?void 0:this.adapter.offset(),o={};this.handleScroll(),t={horizontal:{contextOffset:e?0:i.left,contextScroll:e?0:this.oldScroll.x,contextDimension:this.innerWidth(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:e?0:i.top,contextScroll:e?0:this.oldScroll.y,contextDimension:this.innerHeight(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};for(var r in t){var s=t[r];for(var a in this.waypoints[r]){var l,h,p,u,c,d=this.waypoints[r][a],f=d.options.offset,w=d.triggerPoint,y=0,g=null==w;d.element!==d.element.window&&(y=d.adapter.offset()[s.offsetProp]),"function"==typeof f?f=f.apply(d):"string"==typeof f&&(f=parseFloat(f),d.options.offset.indexOf("%")>-1&&(f=Math.ceil(s.contextDimension*f/100))),l=s.contextScroll-s.contextOffset,d.triggerPoint=Math.floor(y+l-f),h=w<s.oldScroll,p=d.triggerPoint>=s.oldScroll,u=h&&p,c=!h&&!p,!g&&u?(d.queueTrigger(s.backward),o[d.group.id]=d.group):!g&&c?(d.queueTrigger(s.forward),o[d.group.id]=d.group):g&&s.oldScroll>=d.triggerPoint&&(d.queueTrigger(s.forward),o[d.group.id]=d.group)}}return n.requestAnimationFrame(function(){for(var t in o)o[t].flushTriggers()}),this},e.findOrCreateByElement=function(t){return e.findByElement(t)||new e(t)},e.refreshAll=function(){for(var t in o)o[t].refresh()},e.findByElement=function(t){return o[t.waypointContextKey]},window.onload=function(){r&&r(),e.refreshAll()},n.requestAnimationFrame=function(e){var i=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||t;i.call(window,e)},n.Context=e}(),function(){"use strict";function t(t,e){return t.triggerPoint-e.triggerPoint}function e(t,e){return e.triggerPoint-t.triggerPoint}function i(t){this.name=t.name,this.axis=t.axis,this.id=this.name+"-"+this.axis,this.waypoints=[],this.clearTriggerQueues(),o[this.axis][this.name]=this}var o={vertical:{},horizontal:{}},n=window.Waypoint;i.prototype.add=function(t){this.waypoints.push(t)},i.prototype.clearTriggerQueues=function(){this.triggerQueues={up:[],down:[],left:[],r
4114ight:[]}},i.prototype.flushTriggers=function(){for(var i in this.triggerQueues){var o=this.triggerQueues[i],n="up"===i||"left"===i;o.sort(n?e:t);for(var r=0,s=o.length;s>r;r+=1){var a=o[r];(a.options.continuous||r===o.length-1)&&a.trigger([i])}}this.clearTriggerQueues()},i.prototype.next=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints),o=i===this.waypoints.length-1;return o?null:this.waypoints[i+1]},i.prototype.previous=function(e){this.waypoints.sort(t);var i=n.Adapter.inArray(e,this.waypoints);return i?this.waypoints[i-1]:null},i.prototype.queueTrigger=function(t,e){this.triggerQueues[e].push(t)},i.prototype.remove=function(t){var e=n.Adapter.inArray(t,this.waypoints);e>-1&&this.waypoints.splice(e,1)},i.prototype.first=function(){return this.waypoints[0]},i.prototype.last=function(){return this.waypoints[this.waypoints.length-1]},i.findOrCreate=function(t){return o[t.axis][t.name]||new i(t)},n.Group=i}(),function(){"use strict";function t(t){this.$element=e(t)}var e=window.jQuery,i=window.Waypoint;e.each(["innerHeight","innerWidth","off","offset","on","outerHeight","outerWidth","scrollLeft","scrollTop"],function(e,i){t.prototype[i]=function(){var t=Array.prototype.slice.call(arguments);return this.$element[i].apply(this.$element,t)}}),e.each(["extend","inArray","isEmptyObject"],function(i,o){t[o]=e[o]}),i.adapters.push({name:"jquery",Adapter:t}),i.Adapter=t}(),function(){"use strict";function t(t){return function(){var i=[],o=arguments[0];return t.isFunction(arguments[0])&&(o=t.extend({},arguments[1]),o.handler=arguments[0]),this.each(function(){var n=t.extend({},o,{element:this});"string"==typeof n.context&&(n.context=t(this).closest(n.context)[0]),i.push(new e(n))}),i}}var e=window.Waypoint;window.jQuery&&(window.jQuery.fn.waypoint=t(window.jQuery)),window.Zepto&&(window.Zepto.fn.waypoint=t(window.Zepto))}();
4115(function($){"use strict";$.fn.counterUp=function(options){var settings=$.extend({time:400,delay:10,offset:100,beginAt:0,formatter:false,context:"window",callback:function(){}},options),s;return this.each(function(){var $this=$(this),counter={time:$(this).data("counterup-time")||settings.time,delay:$(this).data("counterup-delay")||settings.delay,offset:$(this).data("counterup-offset")||settings.offset,beginAt:$(this).data("counterup-beginat")||settings.beginAt,context:$(this).data("counterup-context")||settings.context};var counterUpper=function(){var nums=[];var divisions=counter.time/counter.delay;var num=$(this).attr("data-num")?$(this).attr("data-num"):$this.text();var isComma=/[0-9]+,[0-9]+/.test(num);num=num.replace(/,/g,"");var decimalPlaces=(num.split(".")[1]||[]).length;if(counter.beginAt>num)counter.beginAt=num;var isTime=/[0-9]+:[0-9]+:[0-9]+/.test(num);if(isTime){var times=num.split(":"),m=1;s=0;while(times.length>0){s+=m*parseInt(times.pop(),10);m*=60}}for(var i=divisions;i>=counter.beginAt/num*divisions;i--){var newNum=parseFloat(num/divisions*i).toFixed(decimalPlaces);if(isTime){newNum=parseInt(s/divisions*i);var hours=parseInt(newNum/3600)%24;var minutes=parseInt(newNum/60)%60;var seconds=parseInt(newNum%60,10);newNum=(hours<10?"0"+hours:hours)+":"+(minutes<10?"0"+minutes:minutes)+":"+(seconds<10?"0"+seconds:seconds)}if(isComma){while(/(\d+)(\d{3})/.test(newNum.toString())){newNum=newNum.toString().replace(/(\d+)(\d{3})/,"$1"+","+"$2")}}if(settings.formatter){newNum=settings.formatter.call(this,newNum)}nums.unshift(newNum)}$this.data("counterup-nums",nums);$this.text(counter.beginAt);var f=function(){if(!$this.data("counterup-nums")){settings.callback.call(this);return}$this.html($this.data("counterup-nums").shift());if($this.data("counterup-nums").length){setTimeout($this.data("counterup-func"),counter.delay)}else{$this.data("counterup-nums",null);$this.data("counterup-func",null);settings.callback.call(this)}};$this.data("counterup-func",f);setTimeout($this.data("counterup-func"),counter.delay)};$this.waypoint(function(direction){counterUpper();this.destroy()},{offset:counter.offset+"%",context:counter.context})})}})(jQuery);
4116
vendor: 8,327 bytes, lines 4117-4135
4117// jQuery Mask Plugin v1.14.16
4118// github.com/igorescobar/jQuery-Mask-Plugin
4119var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,n,f){a instanceof String&&(a=String(a));for(var p=a.length,k=0;k<p;k++){var b=a[k];if(n.call(f,b,k,a))return{i:k,v:b}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;
4120$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(a,n,f){a!=Array.prototype&&a!=Object.prototype&&(a[n]=f.value)};$jscomp.getGlobal=function(a){return"undefined"!=typeof window&&window===a?a:"undefined"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);
4121$jscomp.polyfill=function(a,n,f,p){if(n){f=$jscomp.global;a=a.split(".");for(p=0;p<a.length-1;p++){var k=a[p];k in f||(f[k]={});f=f[k]}a=a[a.length-1];p=f[a];n=n(p);n!=p&&null!=n&&$jscomp.defineProperty(f,a,{configurable:!0,writable:!0,value:n})}};$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(a,f){return $jscomp.findInternal(this,a,f).v}},"es6","es3");
4122(function(a,n,f){"function"===typeof define&&define.amd?define(["jquery"],a):"object"===typeof exports&&"undefined"===typeof Meteor?module.exports=a(require("jquery")):a(n||f)})(function(a){var n=function(b,d,e){var c={invalid:[],getCaret:function(){try{var a=0,r=b.get(0),h=document.selection,d=r.selectionStart;if(h&&-1===navigator.appVersion.indexOf("MSIE 10")){var e=h.createRange();e.moveStart("character",-c.val().length);a=e.text.length}else if(d||"0"===d)a=d;return a}catch(C){}},setCaret:function(a){try{if(b.is(":focus")){var c=
4123b.get(0);if(c.setSelectionRange)c.setSelectionRange(a,a);else{var g=c.createTextRange();g.collapse(!0);g.moveEnd("character",a);g.moveStart("character",a);g.select()}}}catch(B){}},events:function(){b.on("keydown.mask",function(a){b.data("mask-keycode",a.keyCode||a.which);b.data("mask-previus-value",b.val());b.data("mask-previus-caret-pos",c.getCaret());c.maskDigitPosMapOld=c.maskDigitPosMap}).on(a.jMaskGlobals.useInput?"input.mask":"keyup.mask",c.behaviour).on("paste.mask drop.mask",function(){setTimeout(function(){b.keydown().keyup()},
4124100)}).on("change.mask",function(){b.data("changed",!0)}).on("blur.mask",function(){f===c.val()||b.data("changed")||b.trigger("change");b.data("changed",!1)}).on("blur.mask",function(){f=c.val()}).on("focus.mask",function(b){!0===e.selectOnFocus&&a(b.target).select()}).on("focusout.mask",function(){e.clearIfNotMatch&&!k.test(c.val())&&c.val("")})},getRegexMask:function(){for(var a=[],b,c,e,t,f=0;f<d.length;f++)(b=l.translation[d.charAt(f)])?(c=b.pattern.toString().replace(/.{1}$|^.{1}/g,""),e=b.optional,
4125(b=b.recursive)?(a.push(d.charAt(f)),t={digit:d.charAt(f),pattern:c}):a.push(e||b?c+"?":c)):a.push(d.charAt(f).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"));a=a.join("");t&&(a=a.replace(new RegExp("("+t.digit+"(.*"+t.digit+")?)"),"($1)?").replace(new RegExp(t.digit,"g"),t.pattern));return new RegExp(a)},destroyEvents:function(){b.off("input keydown keyup paste drop blur focusout ".split(" ").join(".mask "))},val:function(a){var c=b.is("input")?"val":"text";if(0<arguments.length){if(b[c]()!==a)b[c](a);
4126c=b}else c=b[c]();return c},calculateCaretPosition:function(a){var d=c.getMasked(),h=c.getCaret();if(a!==d){var e=b.data("mask-previus-caret-pos")||0;d=d.length;var g=a.length,f=a=0,l=0,k=0,m;for(m=h;m<d&&c.maskDigitPosMap[m];m++)f++;for(m=h-1;0<=m&&c.maskDigitPosMap[m];m--)a++;for(m=h-1;0<=m;m--)c.maskDigitPosMap[m]&&l++;for(m=e-1;0<=m;m--)c.maskDigitPosMapOld[m]&&k++;h>g?h=10*d:e>=h&&e!==g?c.maskDigitPosMapOld[h]||(e=h,h=h-(k-l)-a,c.maskDigitPosMap[h]&&(h=e)):h>e&&(h=h+(l-k)+f)}return h},behaviour:function(d){d=
4127d||window.event;c.invalid=[];var e=b.data("mask-keycode");if(-1===a.inArray(e,l.byPassKeys)){e=c.getMasked();var h=c.getCaret(),g=b.data("mask-previus-value")||"";setTimeout(function(){c.setCaret(c.calculateCaretPosition(g))},a.jMaskGlobals.keyStrokeCompensation);c.val(e);c.setCaret(h);return c.callbacks(d)}},getMasked:function(a,b){var h=[],f=void 0===b?c.val():b+"",g=0,k=d.length,n=0,p=f.length,m=1,r="push",u=-1,w=0;b=[];if(e.reverse){r="unshift";m=-1;var x=0;g=k-1;n=p-1;var A=function(){return-1<
4128g&&-1<n}}else x=k-1,A=function(){return g<k&&n<p};for(var z;A();){var y=d.charAt(g),v=f.charAt(n),q=l.translation[y];if(q)v.match(q.pattern)?(h[r](v),q.recursive&&(-1===u?u=g:g===x&&g!==u&&(g=u-m),x===u&&(g-=m)),g+=m):v===z?(w--,z=void 0):q.optional?(g+=m,n-=m):q.fallback?(h[r](q.fallback),g+=m,n-=m):c.invalid.push({p:n,v:v,e:q.pattern}),n+=m;else{if(!a)h[r](y);v===y?(b.push(n),n+=m):(z=y,b.push(n+w),w++);g+=m}}a=d.charAt(x);k!==p+1||l.translation[a]||h.push(a);h=h.join("");c.mapMaskdigitPositions(h,
4129b,p);return h},mapMaskdigitPositions:function(a,b,d){a=e.reverse?a.length-d:0;c.maskDigitPosMap={};for(d=0;d<b.length;d++)c.maskDigitPosMap[b[d]+a]=1},callbacks:function(a){var g=c.val(),h=g!==f,k=[g,a,b,e],l=function(a,b,c){"function"===typeof e[a]&&b&&e[a].apply(this,c)};l("onChange",!0===h,k);l("onKeyPress",!0===h,k);l("onComplete",g.length===d.length,k);l("onInvalid",0<c.invalid.length,[g,a,b,c.invalid,e])}};b=a(b);var l=this,f=c.val(),k;d="function"===typeof d?d(c.val(),void 0,b,e):d;l.mask=
4130d;l.options=e;l.remove=function(){var a=c.getCaret();l.options.placeholder&&b.removeAttr("placeholder");b.data("mask-maxlength")&&b.removeAttr("maxlength");c.destroyEvents();c.val(l.getCleanVal());c.setCaret(a);return b};l.getCleanVal=function(){return c.getMasked(!0)};l.getMaskedVal=function(a){return c.getMasked(!1,a)};l.init=function(g){g=g||!1;e=e||{};l.clearIfNotMatch=a.jMaskGlobals.clearIfNotMatch;l.byPassKeys=a.jMaskGlobals.byPassKeys;l.translation=a.extend({},a.jMaskGlobals.translation,e.translation);
4131l=a.extend(!0,{},l,e);k=c.getRegexMask();if(g)c.events(),c.val(c.getMasked());else{e.placeholder&&b.attr("placeholder",e.placeholder);b.data("mask")&&b.attr("autocomplete","off");g=0;for(var f=!0;g<d.length;g++){var h=l.translation[d.charAt(g)];if(h&&h.recursive){f=!1;break}}f&&b.attr("maxlength",d.length).data("mask-maxlength",!0);c.destroyEvents();c.events();g=c.getCaret();c.val(c.getMasked());c.setCaret(g)}};l.init(!b.is("input"))};a.maskWatchers={};var f=function(){var b=a(this),d={},e=b.attr("data-mask");
4132b.attr("data-mask-reverse")&&(d.reverse=!0);b.attr("data-mask-clearifnotmatch")&&(d.clearIfNotMatch=!0);"true"===b.attr("data-mask-selectonfocus")&&(d.selectOnFocus=!0);if(p(b,e,d))return b.data("mask",new n(this,e,d))},p=function(b,d,e){e=e||{};var c=a(b).data("mask"),f=JSON.stringify;b=a(b).val()||a(b).text();try{return"function"===typeof d&&(d=d(b)),"object"!==typeof c||f(c.options)!==f(e)||c.mask!==d}catch(w){}},k=function(a){var b=document.createElement("div");a="on"+a;var e=a in b;e||(b.setAttribute(a,
4133"return;"),e="function"===typeof b[a]);return e};a.fn.mask=function(b,d){d=d||{};var e=this.selector,c=a.jMaskGlobals,f=c.watchInterval;c=d.watchInputs||c.watchInputs;var k=function(){if(p(this,b,d))return a(this).data("mask",new n(this,b,d))};a(this).each(k);e&&""!==e&&c&&(clearInterval(a.maskWatchers[e]),a.maskWatchers[e]=setInterval(function(){a(document).find(e).each(k)},f));return this};a.fn.masked=function(a){return this.data("mask").getMaskedVal(a)};a.fn.unmask=function(){clearInterval(a.maskWatchers[this.selector]);
4134delete a.maskWatchers[this.selector];return this.each(function(){var b=a(this).data("mask");b&&b.remove().removeData("mask")})};a.fn.cleanVal=function(){return this.data("mask").getCleanVal()};a.applyDataMask=function(b){b=b||a.jMaskGlobals.maskElements;(b instanceof a?b:a(b)).filter(a.jMaskGlobals.dataMaskAttr).each(f)};k={maskElements:"input,td,span,div",dataMaskAttr:"*[data-mask]",dataMask:!0,watchInterval:300,watchInputs:!0,keyStrokeCompensation:10,useInput:!/Chrome\/[2-4][0-9]|SamsungBrowser/.test(window.navigator.userAgent)&&
4135k("input"),watchDataMask:!1,byPassKeys:[9,16,17,18,36,37,38,39,40,91],translation:{0:{pattern:/\d/},9:{pattern:/\d/,optional:!0},"#":{pattern:/\d/,recursive:!0},A:{pattern:/[a-zA-Z0-9]/},S:{pattern:/[a-zA-Z]/}}};a.jMaskGlobals=a.jMaskGlobals||{};k=a.jMaskGlobals=a.extend(!0,{},k,a.jMaskGlobals);k.dataMask&&a.applyDataMask();setInterval(function(){a.jMaskGlobals.watchDataMask&&a.applyDataMask()},k.watchInterval)},window.jQuery,window.Zepto);
4136
4137/*!
4138 * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it
4139 * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js
4140 * License: MIT
4141 */
4142
4143!function(a,b){"use strict";"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.Headroom=b()}(this,function(){"use strict";function a(a){this.callback=a,this.ticking=!1}function b(a){return a&&"undefined"!=typeof window&&(a===window||a.nodeType)}function c(a){if(arguments.length<=0)throw new Error("Missing arguments in extend function");var d,e,f=a||{};for(e=1;e<arguments.length;e++){var g=arguments[e]||{};for(d in g)"object"!=typeof f[d]||b(f[d])?f[d]=f[d]||g[d]:f[d]=c(f[d],g[d])}return f}function d(a){return a===Object(a)?a:{down:a,up:a}}function e(a,b){b=c(b,e.options),this.lastKnownScrollY=0,this.elem=a,this.tolerance=d(b.tolerance),this.classes=b.classes,this.offset=b.offset,this.scroller=b.scroller,this.initialised=!1,this.onPin=b.onPin,this.onUnpin=b.onUnpin,this.onTop=b.onTop,this.onNotTop=b.onNotTop,this.onBottom=b.onBottom,this.onNotBottom=b.onNotBottom}var f={bind:!!function(){}.bind,classList:"classList"in document.documentElement,rAF:!!(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame)};return window.requestAnimationFrame=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,a.prototype={constructor:a,update:function(){this.callback&&this.callback(),this.ticking=!1},requestTick:function(){this.ticking||(requestAnimationFrame(this.rafCallback||(this.rafCallback=this.update.bind(this))),this.ticking=!0)},handleEvent:function(){this.requestTick()}},e.prototype={constructor:e,init:function(){if(e.cutsTheMustard)return this.debouncer=new a(this.update.bind(this)),this.elem.classList.add(this.classes.initial),setTimeout(this.attachEvent.bind(this),100),this},destroy:function(){var a=this.classes;this.initialised=!1;for(var b in a)a.hasOwnProperty(b)&&this.elem.classList.remove(a[b]);this.scroller.removeEventListener("scroll",this.debouncer,!1)},attachEvent:function(){this.initialised||(this.lastKnownScrollY=this.getScrollY(),this.initialised=!0,this.scroller.addEventListener("scroll",this.debouncer,!1),this.debouncer.handleEvent())},unpin:function(){var a=this.elem.classList,b=this.classes;!a.contains(b.pinned)&&a.contains(b.unpinned)||(a.add(b.unpinned),a.remove(b.pinned),this.onUnpin&&this.onUnpin.call(this))},pin:function(){var a=this.elem.classList,b=this.classes;a.contains(b.unpinned)&&(a.remove(b.unpinned),a.add(b.pinned),this.onPin&&this.onPin.call(this))},top:function(){var a=this.elem.classList,b=this.classes;a.contains(b.top)||(a.add(b.top),a.remove(b.notTop),this.onTop&&this.onTop.call(this))},notTop:function(){var a=this.elem.classList,b=this.classes;a.contains(b.notTop)||(a.add(b.notTop),a.remove(b.top),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){var a=this.elem.classList,b=this.classes;a.contains(b.bottom)||(a.add(b.bottom),a.remove(b.notBottom),this.onBottom&&this.onBottom.call(this))},notBottom:function(){var a=this.elem.classList,b=this.classes;a.contains(b.notBottom)||(a.add(b.notBottom),a.remove(b.bottom),this.onNotBottom&&this.onNotBottom.call(this))},getScrollY:function(){return void 0!==this.scroller.pageYOffset?this.scroller.pageYOffset:void 0!==this.scroller.scrollTop?this.scroller.scrollTop:(document.documentElement||document.body.parentNode||document.body).scrollTop},getViewportHeight:function(){return window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight},getElementPhysicalHeight:function(a){return Math.max(a.offsetHeight,a.clientHeight)},getScrollerPhysicalHeight:function(){return this.scroller===window||this.scroller===document.body?this.getViewportHeight():this.getElementPhysicalHeight(this.scroller)},getDocumentHeight:function(){var a=document.body,b=document.documentElement;return Math.max(a.scrollHeight,b.scrollHeight,a.offsetHeight,b.offsetHeight,a.clientHeight,b.clientHeight)},getElementHeight:function(a){return Math.max(a.scrollHeight,a.offsetHeight,a.clientHeight)},getScrollerHeight:function(){return this.scroller===window||this.scroller===document.body?this.getDocumentHeight():this.getElementHeight(this.scroller)},isOutOfBounds:function(a){var b=a<0,c=a+this.getScrollerPhysicalHeight()>this.getScrollerHeight();return b||c},toleranceExceeded:function(a,b){return Math.abs(a-this.lastKnownScrollY)>=this.tolerance[b]},shouldUnpin:function(a,b){var c=a>this.lastKnownScrollY,d=a>=this.offset;return c&&d&&b},shouldPin:function(a,b){var c=a<this.lastKnownScrollY,d=a<=this.offset;return c&&b||d},update:function(){var a=this.getScrollY(),b=a>this.lastKnownScrollY?"down":"up",c=this.toleranceExceeded(a,b);
vendor: 5,386 bytes, lines 4143-4145
4143this.isOutOfBounds(a)||(a<=this.offset?this.top():this.notTop(),a+this.getViewportHeight()>=this.getScrollerHeight()?this.bottom():this.notBottom(),this.shouldUnpin(a,c)?this.unpin():this.shouldPin(a,c)&&this.pin(),this.lastKnownScrollY=a)}},e.options={tolerance:{up:0,down:0},offset:0,scroller:window,classes:{pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},e.cutsTheMustard="undefined"!=typeof f&&f.rAF&&f.bind&&f.classList,e});
4144/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */
4145!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.exports=function(e,t){return void 0===t&&(t="undefined"!=typeof window?require("jquery"):require("jquery")(e)),n(t),t}:n(jQuery)}(function(u){var e=function(){if(u&&u.fn&&u.fn.select2&&u.fn.select2.amd)var e=u.fn.select2.amd;var t,n,r,h,o,s,f,g,m,v,y,_,i,a,b;function w(e,t){return i.call(e,t)}function l(e,t){var n,r,i,o,s,a,l,c,u,d,p,h=t&&t.split("/"),f=y.map,g=f&&f["*"]||{};if(e){for(s=(e=e.split("/")).length-1,y.nodeIdCompat&&b.test(e[s])&&(e[s]=e[s].replace(b,"")),"."===e[0].charAt(0)&&h&&(e=h.slice(0,h.length-1).concat(e)),u=0;u<e.length;u++)if("."===(p=e[u]))e.splice(u,1),--u;else if(".."===p){if(0===u||1===u&&".."===e[2]||".."===e[u-1])continue;0<u&&(e.splice(u-1,2),u-=2)}e=e.join("/")}if((h||g)&&f){for(u=(n=e.split("/")).length;0<u;--u){if(r=n.slice(0,u).join("/"),h)for(d=h.length;0<d;--d)if(i=(i=f[h.slice(0,d).join("/")])&&i[r]){o=i,a=u;break}if(o)break;!l&&g&&g[r]&&(l=g[r],c=u)}!o&&l&&(o=l,a=c),o&&(n.splice(0,a,o),e=n.join("/"))}return e}function A(t,n){return function(){var e=a.call(arguments,0);return"string"!=typeof e[0]&&1===e.length&&e.push(null),s.apply(h,e.concat([t,n]))}}function x(t){return function(e){m[t]=e}}function D(e){if(w(v,e)){var t=v[e];delete v[e],_[e]=!0,o.apply(h,t)}if(!w(m,e)&&!w(_,e))throw new Error("No "+e);return m[e]}function c(e){var t,n=e?e.indexOf("!"):-1;return-1<n&&(t=e.substring(0,n),e=e.substring(n+1,e.length)),[t,e]}function S(e){return e?c(e):[]}return e&&e.requirejs||(e?n=e:e={},m={},v={},y={},_={},i=Object.prototype.hasOwnProperty,a=[].slice,b=/\.js$/,f=function(e,t){var n,r,i=c(e),o=i[0],s=t[1];return e=i[1],o&&(n=D(o=l(o,s))),o?e=n&&n.normalize?n.normalize(e,(r=s,function(e){return l(e,r)})):l(e,s):(o=(i=c(e=l(e,s)))[0],e=i[1],o&&(n=D(o))),{f:o?o+"!"+e:e,n:e,pr:o,p:n}},g={require:function(e){return A(e)},exports:function(e){var t=m[e];return void 0!==t?t:m[e]={}},module:function(e){return{id:e,uri:"",exports:m[e],config:(t=e,function(){return y&&y.config&&y.config[t]||{}})};var t}},o=function(e,t,n,r){var i,o,s,a,l,c,u,d=[],p=typeof n;if(c=S(r=r||e),"undefined"==p||"function"==p){for(t=!t.length&&n.length?["require","exports","module"]:t,l=0;l<t.length;l+=1)if("require"===(o=(a=f(t[l],c)).f))d[l]=g.require(e);else if("exports"===o)d[l]=g.exports(e),u=!0;else if("module"===o)i=d[l]=g.module(e);else if(w(m,o)||w(v,o)||w(_,o))d[l]=D(o);else{if(!a.p)throw new Error(e+" missing "+o);a.p.load(a.n,A(r,!0),x(o),{}),d[l]=m[o]}s=n?n.apply(m[e],d):void 0,e&&(i&&i.exports!==h&&i.exports!==m[e]?m[e]=i.exports:s===h&&u||(m[e]=s))}else e&&(m[e]=n)},t=n=s=function(e,t,n,r,i){if("string"==typeof e)return g[e]?g[e](t):D(f(e,S(t)).f);if(!e.splice){if((y=e).deps&&s(y.deps,y.callback),!t)return;t.splice?(e=t,t=n,n=null):e=h}return t=t||function(){},"function"==typeof n&&(n=r,r=i),r?o(h,e,t,n):setTimeout(function(){o(h,e,t,n)},4),s},s.config=function(e){return s(e)},t._defined=m,(r=function(e,t,n){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");t.splice||(n=t,t=[]),w(m,e)||w(v,e)||(v[e]=[e,t,n])}).amd={jQuery:!0},e.requirejs=t,e.require=n,e.define=r),e.define("almond",function(){}),e.define("jquery",[],function(){var e=u||$;return null==e&&console&&console.error&&console.error("Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page."),e}),e.define("select2/utils",["jquery"],function(o){var i={};function u(e){var t=e.prototype,n=[];for(var r in t){"function"==typeof t[r]&&"constructor"!==r&&n.push(r)}return n}i.Extend=function(e,t){var n={}.hasOwnProperty;function r(){this.constructor=e}for(var i in t)n.call(t,i)&&(e[i]=t[i]);return r.prototype=t.prototype,e.prototype=new r,e.__super__=t.prototype,e},i.Decorate=function(r,i){var e=u(i),t=u(r);function o(){var e=Array.prototype.unshift,t=i.prototype.constructor.length,n=r.prototype.constructor;0<t&&(e.call(arguments,r.prototype.constructor),n=i.prototype.constructor),n.apply(this,arguments)}i.displayName=r.displayName,o.prototype=new function(){this.constructor=o};for(var n=0;n<t.length;n++){var s=t[n];o.prototype[s]=r.prototype[s]}function a(e){var t=function(){};e in o.prototype&&(t=o.prototype[e]);var n=i.prototype[e];return function(){return Array.prototype.unshift.call(arguments,t),n.apply(this,arguments)}}for(var l=0;l<e.length;l++){var c=e[l];o.prototype[c]=a(c)}return o};function e(){this.listeners={}}e.prototype.on=function(e,t){this.listeners=this.listeners||{},e in this.listeners?this.listeners[e].push(t):this.listeners[e]=[t]},e.prototype.trigger=function(e){var t=Array.prototype.slice,n=t.call(arguments,1
4145);this.listeners=this.listeners||{},null==n&&(n=[]),0===n.length&&n.push({}),(n[0]._type=e)in this.listeners&&this.invoke(this.listeners[e],t.call(arguments,1)),"*"in this.listeners&&this.invoke(this.listeners["*"],arguments)},e.prototype.invoke=function(e,t){for(var n=0,r=e.length;n<r;n++)e[n].apply(this,t)},i.Observable=e,i.generateChars=function(e){for(var t="",n=0;n<e;n++){t+=Math.floor(36*Math.random()).toString(36)}return t},i.bind=function(e,t){return function(){e.apply(t,arguments)}},i._convertData=function(e){for(var t in e){var n=t.split("-"),r=e;if(1!==n.length){for(var i=0;i<n.length;i++){var o=n[i];(o=o.substring(0,1).toLowerCase()+o.substring(1))in r||(r[o]={}),i==n.length-1&&(r[o]=e[t]),r=r[o]}delete e[t]}}return e},i.hasScroll=function(e,t){var n=o(t),r=t.style.overflowX,i=t.style.overflowY;return(r!==i||"hidden"!==i&&"visible"!==i)&&("scroll"===r||"scroll"===i||(n.innerHeight()<t.scrollHeight||n.innerWidth()<t.scrollWidth))},i.escapeMarkup=function(e){var t={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return"string"!=typeof e?e:String(e).replace(/[&<>"'\/\\]/g,function(e){return t[e]})},i.appendMany=function(e,t){if("1.7"===o.fn.jquery.substr(0,3)){var n=o();o.map(t,function(e){n=n.add(e)}),t=n}e.append(t)},i.__cache={};var n=0;return i.GetUniqueElementId=function(e){var t=e.getAttribute("data-select2-id");return null==t&&(e.id?(t=e.id,e.setAttribute("data-select2-id",t)):(e.setAttribute("data-select2-id",++n),t=n.toString())),t},i.StoreData=function(e,t,n){var r=i.GetUniqueElementId(e);i.__cache[r]||(i.__cache[r]={}),i.__cache[r][t]=n},i.GetData=function(e,t){var n=i.GetUniqueElementId(e);return t?i.__cache[n]&&null!=i.__cache[n][t]?i.__cache[n][t]:o(e).data(t):i.__cache[n]},i.RemoveData=function(e){var t=i.GetUniqueElementId(e);null!=i.__cache[t]&&delete i.__cache[t],e.removeAttribute("data-select2-id")},i}),e.define("select2/results",["jquery","./utils"],function(h,f){function r(e,t,n){this.$element=e,this.data=n,this.options=t,r.__super__.constructor.call(this)}return f.Extend(r,f.Observable),r.prototype.render=function(){var e=h('<ul class="select2-results__options" role="listbox"></ul>');return this.options.get("multiple")&&e.attr("aria-multiselectable","true"),this.$results=e},r.prototype.clear=function(){this.$results.empty()},r.prototype.displayMessage=function(e){var t=this.options.get("escapeMarkup");this.clear(),this.hideLoading();var n=h('<li role="alert" aria-live="assertive" class="select2-results__option"></li>'),r=this.options.get("translations").get(e.message);n.append(t(r(e.args))),n[0].className+=" select2-results__message",this.$results.append(n)},r.prototype.hideMessages=function(){this.$results.find(".select2-results__message").remove()},r.prototype.append=function(e){this.hideLoading();var t=[];if(null!=e.results&&0!==e.results.length){e.results=this.sort(e.results);for(var n=0;n<e.results.length;n++){var r=e.results[n],i=this.option(r);t.push(i)}this.$results.append(t)}else 0===this.$results.children().length&&this.trigger("results:message",{message:"noResults"})},r.prototype.position=function(e,t){t.find(".select2-results").append(e)},r.prototype.sort=function(e){return this.options.get("sorter")(e)},r.prototype.highlightFirstItem=function(){var e=this.$results.find(".select2-results__option[aria-selected]"),t=e.filter("[aria-selected=true]");0<t.length?t.first().trigger("mouseenter"):e.first().trigger("mouseenter"),this.ensureHighlightVisible()},r.prototype.setClasses=function(){var t=this;this.data.current(function(e){var r=h.map(e,function(e){return e.id.toString()});t.$results.find(".select2-results__option[aria-selected]").each(function(){var e=h(this),t=f.GetData(this,"data"),n=""+t.id;null!=t.element&&t.element.selected||null==t.element&&-1<h.inArray(n,r)?e.attr("aria-selected","true"):e.attr("aria-selected","false")})})},r.prototype.showLoading=function(e){this.hideLoading();var t={disabled:!0,loading:!0,text:this.options.get("translations").get("searching")(e)},n=this.option(t);n.className+=" loading-results",this.$results.prepend(n)},r.prototype.hideLoading=function(){this.$results.find(".loading-results").remove()},r.prototype.option=function(e){var t=document.createElement("li");t.className="select2-results__option";var n={role:"option","aria-selected":"false"},r=window.Element.prototype.matches||window.Element.prototype.msMatchesSelector||window.Element.prototype.webkitMatchesSelector;for(var i in(null!=e.element&&r.call(e.element,":disabled")||null==e.element&&e.disabled)&&(delete n["aria-selected"],n["aria-disabled"]="true"),null==e.id&&delete n["aria-selected"],null!=e._resultId&&(t.id=e._resultId),e.title&&(t.title=e.title),e.children&&(n.role="group",n["aria-label"]=e.text,delete n["aria-selected"]),n){var o=n[i];t.setAttribute(i,o)}if(e.children){var s=h(t),a=document.createElement("strong");a.className="select2-results__group";h(a);this.template(e,a);for(var l=[],c=0;c<e.children.length;c++){var u=e.children[c],d=this.option(u);l.push(d)}var p=h("<ul></ul>",{class:"select2-results__options select2-results__options--nested"});p.append(l),s.append(a),s.append(p)}else this.template(e,t);return f.StoreData(t,"data",e),t},r.prototype.bind=function(t,e){var l=this,n=t.id+"-results";this.$results.attr("id",n),t.on("results:all",function(e){l.clear(),l.append(e.data),t.isOpen()&&(l.setClasses(),l.highlightFirstItem())}),t.on("results:append",function(e){l.append(e.data),t.isOpen()&&l.setClasses()}),t.on("query",function(e){l.hideMessages(),l.showLoading(e)}
vendor: 4,850 bytes, line 4145
4145),t.on("select",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("unselect",function(){t.isOpen()&&(l.setClasses(),l.options.get("scrollAfterSelect")&&l.highlightFirstItem())}),t.on("open",function(){l.$results.attr("aria-expanded","true"),l.$results.attr("aria-hidden","false"),l.setClasses(),l.ensureHighlightVisible()}),t.on("close",function(){l.$results.attr("aria-expanded","false"),l.$results.attr("aria-hidden","true"),l.$results.removeAttr("aria-activedescendant")}),t.on("results:toggle",function(){var e=l.getHighlightedResults();0!==e.length&&e.trigger("mouseup")}),t.on("results:select",function(){var e=l.getHighlightedResults();if(0!==e.length){var t=f.GetData(e[0],"data");"true"==e.attr("aria-selected")?l.trigger("close",{}):l.trigger("select",{data:t})}}),t.on("results:previous",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e);if(!(n<=0)){var r=n-1;0===e.length&&(r=0);var i=t.eq(r);i.trigger("mouseenter");var o=l.$results.offset().top,s=i.offset().top,a=l.$results.scrollTop()+(s-o);0===r?l.$results.scrollTop(0):s-o<0&&l.$results.scrollTop(a)}}),t.on("results:next",function(){var e=l.getHighlightedResults(),t=l.$results.find("[aria-selected]"),n=t.index(e)+1;if(!(n>=t.length)){var r=t.eq(n);r.trigger("mouseenter");var i=l.$results.offset().top+l.$results.outerHeight(!1),o=r.offset().top+r.outerHeight(!1),s=l.$results.scrollTop()+o-i;0===n?l.$results.scrollTop(0):i<o&&l.$results.scrollTop(s)}}),t.on("results:focus",function(e){e.element.addClass("select2-results__option--highlighted")}),t.on("results:message",function(e){l.displayMessage(e)}),h.fn.mousewheel&&this.$results.on("mousewheel",function(e){var t=l.$results.scrollTop(),n=l.$results.get(0).scrollHeight-t+e.deltaY,r=0<e.deltaY&&t-e.deltaY<=0,i=e.deltaY<0&&n<=l.$results.height();r?(l.$results.scrollTop(0),e.preventDefault(),e.stopPropagation()):i&&(l.$results.scrollTop(l.$results.get(0).scrollHeight-l.$results.height()),e.preventDefault(),e.stopPropagation())}),this.$results.on("mouseup",".select2-results__option[aria-selected]",function(e){var t=h(this),n=f.GetData(this,"data");"true"!==t.attr("aria-selected")?l.trigger("select",{originalEvent:e,data:n}):l.options.get("multiple")?l.trigger("unselect",{originalEvent:e,data:n}):l.trigger("close",{})}),this.$results.on("mouseenter",".select2-results__option[aria-selected]",function(e){var t=f.GetData(this,"data");l.getHighlightedResults().removeClass("select2-results__option--highlighted"),l.trigger("results:focus",{data:t,element:h(this)})})},r.prototype.getHighlightedResults=function(){return this.$results.find(".select2-results__option--highlighted")},r.prototype.destroy=function(){this.$results.remove()},r.prototype.ensureHighlightVisible=function(){var e=this.getHighlightedResults();if(0!==e.length){var t=this.$results.find("[aria-selected]").index(e),n=this.$results.offset().top,r=e.offset().top,i=this.$results.scrollTop()+(r-n),o=r-n;i-=2*e.outerHeight(!1),t<=2?this.$results.scrollTop(0):(o>this.$results.outerHeight()||o<0)&&this.$results.scrollTop(i)}},r.prototype.template=function(e,t){var n=this.options.get("templateResult"),r=this.options.get("escapeMarkup"),i=n(e,t);null==i?t.style.display="none":"string"==typeof i?t.innerHTML=r(i):h(t).append(i)},r}),e.define("select2/keys",[],function(){return{BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,CTRL:17,ALT:18,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46}}),e.define("select2/selection/base",["jquery","../utils","../keys"],function(n,r,i){function o(e,t){this.$element=e,this.options=t,o.__super__.constructor.call(this)}return r.Extend(o,r.Observable),o.prototype.render=function(){var e=n('<span class="select2-selection" role="combobox"  aria-haspopup="true" aria-expanded="false"></span>');return this._tabindex=0,null!=r.GetData(this.$element[0],"old-tabindex")?this._tabindex=r.GetData(this.$element[0],"old-tabindex"):null!=this.$element.attr("tabindex")&&(this._tabindex=this.$element.attr("tabindex")),e.attr("title",this.$element.attr("title")),e.attr("tabindex",this._tabindex),e.attr("aria-disabled","false"),this.$selection=e},o.prototype.bind=function(e,t){var n=this,r=e.id+"-results";this.container=e,this.$selection.on("focus",function(e){n.trigger("focus",e)}),this.$selection.on("blur",function(e){n._handleBlur(e)}),this.$selection.on("keydown",function(e){n.trigger("keypress",e),e.which===i.SPACE&&e.preventDefault()}),e.on("results:focus",function(e){n.$selection.attr("aria-activedescendant",e.data._resultId)}),e.on("selection:update",function(e){n.update(e.data)}),e.on("open",function(){n.$selection.attr("aria-expanded","true"),n.$selection.attr("aria-owns",r),n._attachCloseHandler(e)}),e.on("close",function(){n.$selection.attr("aria-expanded","fal
4145se"),n.$selection.removeAttr("aria-activedescendant"),n.$selection.removeAttr("aria-owns"),n.$selection.trigger("focus"),n._detachCloseHandler(e)}),e.on("enable",function(){n.$selection.attr("tabindex",n._tabindex),n.$selection.attr("aria-disabled","false")}),e.on("disable",function(){n.$selection.attr("tabindex","-1"),n.$selection.attr("aria-disabled","true")})},o.prototype._handleBlur=function(e){var t=this;window.setTimeout(function(){document.activeElement==t.$selection[0]||n.contains(t.$selection[0],document.activeElement)||t.trigger("blur",e)},1)},o.prototype._attachCloseHandler=function(e){n(document.body).on("mousedown.select2."+e.id,function(e){var t=n(e.target).closest(".select2");n(".select2.select2-container--open").each(function(){this!=t[0]&&r.GetData(this,"element").select2("close")})})},o.prototype._detachCloseHandler=function(e){n(document.body).off("mousedown.select2."+e.id)},o.prototype.position=function(e,t){t.find(".selection").append(e)},o.prototype.destroy=function(){this._detachCloseHandler(this.container)},o.prototype.update=function(e){throw new Error("The `update` method must be defined in child classes.")},o.prototype.isEnabled=function(){return!this.isDisabled()},o.prototype.isDisabled=function(){return this.options.get("disabled")},o}),e.define("select2/selection/single",["jquery","./base","../utils","../keys"],function(e,t,n,r){function i(){i.__super__.constructor.apply(this,arguments)}return n.Extend(i,t),i.prototype.render=function(){var e=i.__super__.render.call(this);return e.addClass("select2-selection--single"),e.html('<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>'),e},i.prototype.bind=function(t,e){var n=this;i.__super__.bind.apply(this,arguments);var r=t.id+"-container";this.$selection.find(".select2-selection__rendered").attr("id",r).attr("role","textbox").attr("aria-readonly","true"),this.$selection.attr("aria-labelledby",r),this.$selection.on("mousedown",function(e){1===e.which&&n.trigger("toggle",{originalEvent:e})}),this.$selection.on("focus",function(e){}),this.$selection.on("blur",function(e){}),t.on("focus",function(e){t.isOpen()||n.$selection.trigger("focus")})},i.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},i.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},i.prototype.selectionContainer=function(){return e("<span></span>")},i.prototype.update=function(e){if(0!==e.length){var t=e[0],n=this.$selection.find(".select2-selection__rendered"),r=this.display(t,n);n.empty().append(r);var i=t.title||t.text;i?n.attr("title",i):n.removeAttr("title")}else this.clear()},i}),e.define("select2/selection/multiple",["jquery","./base","../utils"],function(i,e,l){function n(e,t){n.__super__.constructor.apply(this,arguments)}return l.Extend(n,e),n.prototype.render=function(){var e=n.__super__.render.call(this);return e.addClass("select2-selection--multiple"),e.html('<ul class="select2-selection__rendered"></ul>'),e},n.prototype.bind=function(e,t){var r=this;n.__super__.bind.apply(this,arguments),this.$selection.on("click",function(e){r.trigger("toggle",{originalEvent:e})}),this.$selection.on("click",".select2-selection__choice__remove",function(e){if(!r.isDisabled()){var t=i(this).parent(),n=l.GetData(t[0],"data");r.trigger("unselect",{originalEvent:e,data:n})}})},n.prototype.clear=function(){var e=this.$selection.find(".select2-selection__rendered");e.empty(),e.removeAttr("title")},n.prototype.display=function(e,t){var n=this.options.get("templateSelection");return this.options.get("escapeMarkup")(n(e,t))},n.prototype.selectionContainer=function(){return i('<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">&times;</span></li>')},n.prototype.update=function(e){if(this.clear(),0!==e.length){for(var t=[],n=0;n<e.length;n++){var r=e[n],i=this.selectionContainer(),o=this.display(r,i);i.append(o);var s=r.title||r.text;
vendor: 10,087 bytes, line 4145
4145s&&i.attr("title",s),l.StoreData(i[0],"data",r),t.push(i)}var a=this.$selection.find(".select2-selection__rendered");l.appendMany(a,t)}},n}),e.define("select2/selection/placeholder",["../utils"],function(e){function t(e,t,n){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n)}return t.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},t.prototype.createPlaceholder=function(e,t){var n=this.selectionContainer();return n.html(this.display(t)),n.addClass("select2-selection__placeholder").removeClass("select2-selection__choice"),n},t.prototype.update=function(e,t){var n=1==t.length&&t[0].id!=this.placeholder.id;if(1<t.length||n)return e.call(this,t);this.clear();var r=this.createPlaceholder(this.placeholder);this.$selection.find(".select2-selection__rendered").append(r)},t}),e.define("select2/selection/allowClear",["jquery","../keys","../utils"],function(i,r,a){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),null==this.placeholder&&this.options.get("debug")&&window.console&&console.error&&console.error("Select2: The `allowClear` option should be used in combination with the `placeholder` option."),this.$selection.on("mousedown",".select2-selection__clear",function(e){r._handleClear(e)}),t.on("keypress",function(e){r._handleKeyboardClear(e,t)})},e.prototype._handleClear=function(e,t){if(!this.isDisabled()){var n=this.$selection.find(".select2-selection__clear");if(0!==n.length){t.stopPropagation();var r=a.GetData(n[0],"data"),i=this.$element.val();this.$element.val(this.placeholder.id);var o={data:r};if(this.trigger("clear",o),o.prevented)this.$element.val(i);else{for(var s=0;s<r.length;s++)if(o={data:r[s]},this.trigger("unselect",o),o.prevented)return void this.$element.val(i);this.$element.trigger("input").trigger("change"),this.trigger("toggle",{})}}}},e.prototype._handleKeyboardClear=function(e,t,n){n.isOpen()||t.which!=r.DELETE&&t.which!=r.BACKSPACE||this._handleClear(t)},e.prototype.update=function(e,t){if(e.call(this,t),!(0<this.$selection.find(".select2-selection__placeholder").length||0===t.length)){var n=this.options.get("translations").get("removeAllItems"),r=i('<span class="select2-selection__clear" title="'+n()+'">&times;</span>');a.StoreData(r[0],"data",t),this.$selection.find(".select2-selection__rendered").prepend(r)}},e}),e.define("select2/selection/search",["jquery","../utils","../keys"],function(r,a,l){function e(e,t,n){e.call(this,t,n)}return e.prototype.render=function(e){var t=r('<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>');this.$searchContainer=t,this.$search=t.find("input");var n=e.call(this);return this._transferTabIndex(),n},e.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),t.on("open",function(){r.$search.attr("aria-controls",i),r.$search.trigger("focus")}),t.on("close",function(){r.$search.val(""),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.trigger("focus")}),t.on("enable",function(){r.$search.prop("disabled",!1),r._transferTabIndex()}),t.on("disable",function(){r.$search.prop("disabled",!0)}),t.on("focus",function(e){r.$search.trigger("focus")}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")}),this.$selection.on("focusin",".select2-search--inline",function(e){r.trigger("focus",e)}),this.$selection.on("focusout",".select2-search--inline",function(e){r._handleBlur(e)}),this.$selection.on("keydown",".select2-search--inline",function(e){if(e.stopPropagation(),r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented(),e.which===l.BACKSPACE&&""===r.$search.val()){var t=r.$searchContainer.prev(".select2-selection__choice");if(0<t.length){var n=a.GetData(t[0],"data");r.searchRemoveChoice(n),e.preventDefault()}}}),this.$selection.on("click",".select2-search--inline",function(e){r.$search.val()&&e.stopPropagation()});var o=document.documentMode,s=o&&o<=11;this.$selection.on("input.searchcheck",".select2-search--inline",function(e){s?r.$selection.off("input.search input.searchcheck"):r.$selection.off("keyup.search")}),this.$selection.on("keyup.search input.search",".select2-search--inline",function(e){if(s&&"input"===e.type)r.$selection.off("input.search input.searchcheck");else{var t=e.which;t!=l.SHIFT&&t!=l.CTRL&&t!=l.ALT&&t!=l.TAB&&r.handleSearch(e)}})},e.prototype._transferTabIndex=function(e){this.$search.attr("tabindex",this.$selection.attr("tabindex")),this.$selection.attr("tabindex","-1")},e.prototype.createPlaceholder=function(e,t){this.$search.attr("placeholder",t.text)},e.prototype.update=function(e,t){var n=this.$search[0]==document.activeElement;this.$search.attr("placeholder",""),e.call(this,t),this.$selection.find(".select2-selection__rendered").append(this.$searchContainer),this.resizeSearch(),n&&this.$search.trigger("focus")},e.prototype.handleSearch=function(){if(this.resizeSearch(),!this._keyUpPrevented){var e=this.$search.val();this.trigger("query",{term:e})}this._keyUpPrevented=!1},e.prototype.searchRemoveChoice=function(e,t){this.trigger("unselect",{data:t}),this.$search.val(t.text),this.handleSearch()},e.prototype.resizeSearch=function(){this.$search.css("width","25px");var e="";""!==this.$search.attr("placeholder")?e=this.$selection.find(".select2-selection__rendered").width():e=.75*(this.$search.val().length+1)+"em";this.$search.css("width",e)},e}),e.define("select2/selection/eventRelay",["jquery"],function(s){function e(){}return e.prototype.bind=function(e,t,n){var r=this,i=["open","opening","close","closing","select","selecting","unselect","unselecting","clear","clearing"],o=["opening","closing","selecting","unselecting","clearing"];e.call(this,t,n),t.on("*",function(e,t){if(-1!==s.inArray(e,i)){t=t||{};var n=s.Event("select2:"+e,{params:t});r.$element.trigger(n),-1!==s.inArray(e,o)&&(t.prevented=n.isDefaultPrevented())}})},e}),e.define("select2/translation",["jquery","require"],function(t,n){function r(e){this.dict=e||{}}return r.prototype.all=function(){return this.dict},r.prototype.get=function(e){return this.dict[e]},r.prototype.extend=function(e){this.dict=t.extend({},e.all(),this.dict)},r._cache={},r.loadPath=function(e){if(!(e in r._cache)){var t=n(e);r._cache[e]=t}return new r(r._cache[e])},r}),e.define("select2/diacritics",[],function(){return{"Ⓐ":"A","A":"A","À":"A","Á":"A","Â":"A","Ầ":"A","Ấ":"A","Ẫ":"A","Ẩ":"A","Ã":"A","Ā":"A","Ă":"A","Ằ":"A","Ắ":"A","Ẵ":"A","Ẳ":"A","Ȧ":"A","Ǡ":"A","Ä":"A","Ǟ":"A","Ả":"A","Å":"A","Ǻ":"A","Ǎ":"A","Ȁ":"A","Ȃ":"A","Ạ":"A","Ậ":"A","Ặ":"A","Ḁ":"A","Ą":"A","Ⱥ":"A","Ɐ":"A","Ꜳ":"AA","Æ":"AE","Ǽ":"AE","Ǣ":"AE","Ꜵ":"AO","Ꜷ":"AU","Ꜹ":"AV","Ꜻ":"AV","Ꜽ":"AY","Ⓑ":"B","B":"B","Ḃ":"B","Ḅ":"B","Ḇ":"B","Ƀ":"B","Ƃ":"B","Ɓ":"B","Ⓒ":"C","C":"C","Ć":"C","Ĉ":"C","Ċ":"C","Č":"C","Ç":"C","Ḉ":"C","Ƈ":"C","Ȼ":"C","Ꜿ":"C","Ⓓ":"D","D":"D","Ḋ":"D","Ď":"D","Ḍ":"D","Ḑ":"D","Ḓ":"D","Ḏ":"D","Đ":"D","Ƌ":"D","Ɗ":"D","Ɖ":"D","Ꝺ":"D","DZ":"DZ","DŽ":"DZ","Dz":"Dz","Dž":"Dz","Ⓔ":"E","E":"E","È":"E","É":"E","Ê":"E","Ề":"E","Ế":"E","Ễ":"E","Ể":"E","Ẽ":"E","Ē":"E","Ḕ":"E","Ḗ":"E","Ĕ":"E","Ė":"E","Ë":"E","Ẻ":"E","Ě":"E","Ȅ":"E","Ȇ":"E","Ẹ":"E","Ệ":"E","Ȩ":"E","Ḝ":"E","Ę":"E","Ḙ":"E","Ḛ":"E","Ɛ":"E","Ǝ":"E","Ⓕ":"F","F":"F","Ḟ":"F","Ƒ":"F","Ꝼ":"F","Ⓖ":"G","G":"G","Ǵ":"G","Ĝ":"G","Ḡ":"G","Ğ":"G","Ġ":"G","Ǧ":"G","Ģ":"G","Ǥ":"G","Ɠ":"G","Ꞡ":"G","Ᵹ":"G","Ꝿ":"G","Ⓗ":"H","H":"H","Ĥ":"H","Ḣ":"H","Ḧ":"H","Ȟ":"H","Ḥ":"H","Ḩ":"H","Ḫ":"H","Ħ":"H","Ⱨ":"H","Ⱶ":"H","Ɥ":"H","Ⓘ":"I","I":"I","Ì":"I","Í":"I","Î":"I","Ĩ":"I","Ī":"I","Ĭ":"I","İ":"I","Ï":"I","Ḯ":"I","Ỉ":"I","Ǐ":"I","Ȉ":"I","Ȋ":"I","Ị":"I","Į":"I","Ḭ":"I","Ɨ":"I","Ⓙ":"J","J":"J","Ĵ":"J","Ɉ":"J","Ⓚ":"K","K":"K","Ḱ":"K","Ǩ":"K","Ḳ":"K","Ķ":"K","Ḵ":"K","Ƙ":"K","Ⱪ":"K","Ꝁ":"K","Ꝃ":"K","Ꝅ":"K","Ꞣ":"K","Ⓛ":"L","L":"L","Ŀ":"L","Ĺ":"L","Ľ":"L","Ḷ":"L","Ḹ":"L","Ļ":"L","Ḽ":"L","Ḻ":"L","Ł":"L","Ƚ":"L","Ɫ":"L","Ⱡ":"L","Ꝉ":"L","Ꝇ":"L","Ꞁ":"L","LJ":"LJ","Lj":"Lj","Ⓜ":"M","M":"M","Ḿ":"M","Ṁ":"M","Ṃ":"M","Ɱ":"M","Ɯ":"M","Ⓝ":"N","N":"N","Ǹ":"N","Ń":"N","Ñ":"N","Ṅ":"N","Ň":"N","Ṇ":"N","Ņ":"N","Ṋ":"N","Ṉ":"N","Ƞ":"N","Ɲ":"N","Ꞑ":"N","Ꞥ":"N","NJ":"NJ","Nj":"Nj","Ⓞ":"O","O":"O","Ò":"O","Ó":"O","Ô":"O","Ồ":"O","Ố":"O","Ỗ":"O","Ổ":"O","Õ":"O","Ṍ":"O","Ȭ":"O","Ṏ":"O","Ō":"O","Ṑ":"O","Ṓ":"O","Ŏ":"O","Ȯ":"O","Ȱ":"O","Ö":"O","Ȫ":"O","Ỏ":"O","Ő":"O","Ǒ":"O","Ȍ":"O","Ȏ":"O","Ơ":"O","Ờ":"O","Ớ":"O","Ỡ":"O","Ở":"O","Ợ":"O","Ọ":"O","Ộ":"O","Ǫ":"O","Ǭ":"O","Ø":"O","Ǿ":"O","Ɔ":"O","Ɵ":"O","Ꝋ":"O","Ꝍ":"O","Œ":"OE","Ƣ":"OI","Ꝏ":"OO","Ȣ":"OU","Ⓟ":"P","P":"P","Ṕ":"P","Ṗ":"P","Ƥ":"P","Ᵽ":"P","Ꝑ":"P","Ꝓ":"P","Ꝕ":"P","Ⓠ":"Q","Q":"Q","Ꝗ":"Q","Ꝙ":"Q","Ɋ":"Q","Ⓡ":"R","R":"R","Ŕ":"R","Ṙ":"R","Ř":"R","Ȑ":"R","Ȓ":"R","Ṛ":"R","Ṝ":"R","Ŗ":"R","Ṟ":"R","Ɍ":"R","Ɽ":"R","Ꝛ":"R","Ꞧ":"R","Ꞃ":"R","Ⓢ":"S","S":"S","ẞ":"S","Ś":"S","Ṥ":"S","Ŝ":"S","Ṡ":"S","Š":"S","Ṧ":"S","Ṣ":"S","Ṩ":"S","Ș":"S","Ş":"S","Ȿ":"S","Ꞩ":"S","Ꞅ":"S","Ⓣ":"T","T":"T","Ṫ":"T","Ť":"T","Ṭ":"T","Ț":"T","Ţ":"T","Ṱ":"T","Ṯ":"T","Ŧ":"T","Ƭ":"T","Ʈ":"T","Ⱦ":"T","Ꞇ":"T","Ꜩ":"TZ","Ⓤ":"U","U":"U","Ù":"U","Ú":"U","Û":"U","Ũ":"U","Ṹ":"U","Ū":"U","Ṻ":"U","Ŭ":"U","Ü":"U","Ǜ":"U","Ǘ":"U","Ǖ":"U","Ǚ":"U","Ủ":"U","Ů":"U","Ű":"U","Ǔ":"U","Ȕ":"U","Ȗ":"U","Ư":"U","Ừ":"U","Ứ":"U","Ữ":"U","Ử":"U","Ự":"U","Ụ":"U","Ṳ":"U","Ų":"U","Ṷ":"U","Ṵ":"U","Ʉ":"U","Ⓥ":"V","V":"V","Ṽ":"V","Ṿ":"V","Ʋ":"
4145V","Ꝟ":"V","Ʌ":"V","Ꝡ":"VY","Ⓦ":"W","W":"W","Ẁ":"W","Ẃ":"W","Ŵ":"W","Ẇ":"W","Ẅ":"W","Ẉ":"W","Ⱳ":"W","Ⓧ":"X","X":"X","Ẋ":"X","Ẍ":"X","Ⓨ":"Y","Y":"Y","Ỳ":"Y","Ý":"Y","Ŷ":"Y","Ỹ":"Y","Ȳ":"Y","Ẏ":"Y","Ÿ":"Y","Ỷ":"Y","Ỵ":"Y","Ƴ":"Y","Ɏ":"Y","Ỿ":"Y","Ⓩ":"Z","Z":"Z","Ź":"Z","Ẑ":"Z","Ż":"Z","Ž":"Z","Ẓ":"Z","Ẕ":"Z","Ƶ":"Z","Ȥ":"Z","Ɀ":"Z","Ⱬ":"Z","Ꝣ":"Z","ⓐ":"a","a":"a","ẚ":"a","à":"a","á":"a","â":"a","ầ":"a","ấ":"a","ẫ":"a","ẩ":"a","ã":"a","ā":"a","ă":"a","ằ":"a","ắ":"a","ẵ":"a","ẳ":"a","ȧ":"a","ǡ":"a","ä":"a","ǟ":"a","ả":"a","å":"a","ǻ":"a","ǎ":"a","ȁ":"a","ȃ":"a","ạ":"a","ậ":"a","ặ":"a","ḁ":"a","ą":"a","ⱥ":"a","ɐ":"a","ꜳ":"aa","æ":"ae","ǽ":"ae","ǣ":"ae","ꜵ":"ao","ꜷ":"au","ꜹ":"av","ꜻ":"av","ꜽ":"ay","ⓑ":"b","b":"b","ḃ":"b","ḅ":"b","ḇ":"b","ƀ":"b","ƃ":"b","ɓ":"b","ⓒ":"c","c":"c","ć":"c","ĉ":"c","ċ":"c","č":"c","ç":"c","ḉ":"c","ƈ":"c","ȼ":"c","ꜿ":"c","ↄ":"c","ⓓ":"d","d":"d","ḋ":"d","ď":"d","ḍ":"d","ḑ":"d","ḓ":"d","ḏ":"d","đ":"d","ƌ":"d","ɖ":"d","ɗ":"d","ꝺ":"d","dz":"dz","dž":"dz","ⓔ":"e","e":"e","è":"e","é":"e","ê":"e","ề":"e","ế":"e","ễ":"e","ể":"e","ẽ":"e","ē":"e","ḕ":"e","ḗ":"e","ĕ":"e","ė":"e","ë":"e","ẻ":"e","ě":"e","ȅ":"e","ȇ":"e","ẹ":"e","ệ":"e","ȩ":"e","ḝ":"e","ę":"e","ḙ":"e","ḛ":"e","ɇ":"e","ɛ":"e","ǝ":"e","ⓕ":"f","f":"f","ḟ":"f","ƒ":"f","ꝼ":"f","ⓖ":"g","g":"g","ǵ":"g","ĝ":"g","ḡ":"g","ğ":"g","ġ":"g","ǧ":"g","ģ":"g","ǥ":"g","ɠ":"g","ꞡ":"g","ᵹ":"g","ꝿ":"g","ⓗ":"h","h":"h","ĥ":"h","ḣ":"h","ḧ":"h","ȟ":"h","ḥ":"h","ḩ":"h","ḫ":"h","ẖ":"h","ħ":"h","ⱨ":"h","ⱶ":"h","ɥ":"h","ƕ":"hv","ⓘ":"i","i":"i","ì":"i","í":"i","î":"i","ĩ":"i","ī":"i","ĭ":"i","ï":"i","ḯ":"i","ỉ":"i","ǐ":"i","ȉ":"i","ȋ":"i","ị":"i","į":"i","ḭ":"i","ɨ":"i","ı":"i","ⓙ":"j","j":"j","ĵ":"j","ǰ":"j","ɉ":"j","ⓚ":"k","k":"k","ḱ":"k","ǩ":"k","ḳ":"k","ķ":"k","ḵ":"k","ƙ":"k","ⱪ":"k","ꝁ":"k","ꝃ":"k","ꝅ":"k","ꞣ":"k","ⓛ":"l","l":"l","ŀ":"l","ĺ":"l","ľ":"l","ḷ":"l","ḹ":"l","ļ":"l","ḽ":"l","ḻ":"l","ſ":"l","ł":"l","ƚ":"l","ɫ":"l","ⱡ":"l","ꝉ":"l","ꞁ":"l","ꝇ":"l","lj":"lj","ⓜ":"m","m":"m","ḿ":"m","ṁ":"m","ṃ":"m","ɱ":"m","ɯ":"m","ⓝ":"n","n":"n","ǹ":"n","ń":"n","ñ":"n","ṅ":"n","ň":"n","ṇ":"n","ņ":"n","ṋ":"n","ṉ":"n","ƞ":"n","ɲ":"n","ʼn":"n","ꞑ":"n","ꞥ":"n","nj":"nj","ⓞ":"o","o":"o","ò":"o","ó":"o","ô":"o","ồ":"o","ố":"o","ỗ":"o","ổ":"o","õ":"o","ṍ":"o","ȭ":"o","ṏ":"o","ō":"o","ṑ":"o","ṓ":"o","ŏ":"o","ȯ":"o","ȱ":"o","ö":"o","ȫ":"o","ỏ":"o","ő":"o","ǒ":"o","ȍ":"o","ȏ":"o","ơ":"o","ờ":"o","ớ":"o","ỡ":"o","ở":"o","ợ":"o","ọ":"o","ộ":"o","ǫ":"o","ǭ":"o","ø":"o","ǿ":"o","ɔ":"o","ꝋ":"o","ꝍ":"o","ɵ":"o","œ":"oe","ƣ":"oi","ȣ":"ou","ꝏ":"oo","ⓟ":"p","p":"p","ṕ":"p","ṗ":"p","ƥ":"p","ᵽ":"p","ꝑ":"p","ꝓ":"p","ꝕ":"p","ⓠ":"q","q":"q","ɋ":"q","ꝗ":"q","ꝙ":"q","ⓡ":"r","r":"r","ŕ":"r","ṙ":"r","ř":"r","ȑ":"r","ȓ":"r","ṛ":"r","ṝ":"r","ŗ":"r","ṟ":"r","ɍ":"r","ɽ":"r","ꝛ":"r","ꞧ":"r","ꞃ":"r","ⓢ":"s","s":"s","ß":"s","ś":"s","ṥ":"s","ŝ":"s","ṡ":"s","š":"s","ṧ":"s","ṣ":"s","ṩ":"s","ș":"s","ş":"s","ȿ":"s","ꞩ":"s","ꞅ":"s","ẛ":"s","ⓣ":"t","t":"t","ṫ":"t","ẗ":"t","ť":"t","ṭ":"t","ț":"t","ţ":"t","ṱ":"t","ṯ":"t","ŧ":"t","ƭ":"t","ʈ":"t","ⱦ":"t","ꞇ":"t","ꜩ":"tz","ⓤ":"u","u":"u","ù":"u","ú":"u","û":"u","ũ":"u","ṹ":"u","ū":"u","ṻ":"u","ŭ":"u","ü":"u","ǜ":"u","ǘ":"u","ǖ":"u","ǚ":"u","ủ":"u","ů":"u","ű":"u","ǔ":"u","ȕ":"u","ȗ":"u","ư":"u","ừ":"u","ứ":"u","ữ":"u","ử":"u","ự":"u","ụ":"u","ṳ":"u","ų":"u","ṷ":"u","ṵ":"u","ʉ":"u","ⓥ":"v","v":"v","ṽ":"v","ṿ":"v","ʋ":"v","ꝟ":"v","ʌ":"v","ꝡ":"vy","ⓦ":"w","w":"w","ẁ":"w","ẃ":"w","ŵ":"w","ẇ":"w","ẅ":"w","ẘ":"w","ẉ":"w","ⱳ":"w","ⓧ":"x","x":"x","ẋ":"x","ẍ":"x","ⓨ":"y","y":"y","ỳ":"y","ý":"y","ŷ":"y","ỹ":"y","ȳ":"y","ẏ":"y","ÿ":"y","ỷ":"y","ẙ":"y","ỵ":"y","ƴ":"y","ɏ":"y","ỿ":"y","ⓩ":"z","z":"z","ź":"z","ẑ":"z","ż":"z","ž":"z","ẓ":"z","ẕ":"z","ƶ":"z","ȥ":"z","ɀ":"z","ⱬ":"z","ꝣ":"z","Ά":"Α","Έ":"Ε","Ή":"Η","Ί":"Ι","Ϊ":"Ι","Ό":"Ο","Ύ":"Υ","Ϋ":"Υ","Ώ":"Ω","ά":"α","έ":"ε","ή":"η","ί":"ι","ϊ":"ι","ΐ":"ι","ό":"ο","ύ":"υ","ϋ":"υ","ΰ":"υ","ώ":"ω","ς":"σ","’":"'"}}),e.define("select2/data/base",["../utils"],function(r){function n(e,t){n.__super__.constructor.call(this)}return r.Extend(n,r.Observable),n.prototype.current=function(e){throw new Error("The `current` method must be defined in child classes.")},n.prototype.query=function(e,t){throw new Error("The `query` method must be defined in child classes.")},n.prototype.bind=function(e,t){},n.prototype.destroy=function(){},n.prototype.generateResultId=function(e,t){var n=e.id+"-result-";return n+=r.generateChars(4),null!=t.id?n+="-"+t.id.toString():n+="-"+r.generateChars(4),n},n}),e.define("select2/data/select",["./base","../utils","jquery"],function(e,a,l){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return a.Extend(n,e),n.prototype.current=function(e){var n=[],r=this;this.$element.find(":selected").each(function(){var e=l(this),t=r.item(e);n.push(t)}),e(n)},n.prototype.select=function(i){var o=this;if(i.selected=!0,l(i.element).is("option"))return i.element.selected=!0,void this.$element.trigger("input").trigger("change");if(this.$element.prop("multiple"))this.current(function(e){var t=[];(i=[i]).push.apply(i,e);for(var n=0;n<i.length;n++){var r=i[n].id;-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("input").trigger("change")});else{var e=i.id;this.$element.val(e),this.$element.trigger("input").trigger("change")}},n.prototype.unselect=function(i){var o=this;if(this.$element.prop("multiple")){if(i.selected=!1,l(i.element).is("option"))return i.element.selected=!1,void this.$element.trigger("input").trigger("change");this.current(function(e){for(var t=[],n=0;n<e.length;n++){var r=e[n].id;r!==i.id&&-1===l.inArray(r,t)&&t.push(r)}o.$element.val(t),o.$element.trigger("input").trigger("change")})}},n.prototype.bind=function(e,t){var n=this;(this.container=e).on("select",function(e){n.select(e.data)}),e.on("unselect",function(e){n.unselect(e.data)})},n.prototype.destroy=function(){this.$element.find("*").each(function(){a.RemoveData(this)})},n.prototype.query=function(r,e){var i=[],o=this;this.$element.children().each(function(){var e=l(this);if(e.is("option")||e.is("optgroup")){var t=o.item(e),n=o.matches(r,t);null!==n&&i.push(n)}}),e({results:i})},n.prototype.addOptions=function(e){a.appendMany(this.$element,e)},n.prototype.option=function(e){var t;e.children?(t=document.createElement("optgroup")).label=e.text:void 0!==(t=document.createElement("option")).textContent?t.textContent=e.text:t.innerText=e.text,void 0!==e.id&&(t.value=e.id),e.disabled&&(t.disabled=!0),e.selected&&(t.selected=!0),e.title&&(t.title=e.title);var n=l(t),r=this._normalizeItem(e);return r.element=t,a.StoreData(t,"data",r),n},n.prototype.item=function(e){var t={};if(null!=(t=a.GetData(e[0],"data")))return t;if(e.is("option"))t={id:e.val(),text:e.text(),disabled:e.prop("disabled"),selected:e.prop("selected"),title:e.prop("title")};else if(e.is("optgroup")){t={text:e.prop("label"),children:[],title:e.prop("title")};for(var n=e.children("option"),r=[],i=0;i<n.length;i++){var o=l(n[i]),s=this.item(o);r.push(s)}t.children=r}return(t=this._normalizeItem(t)).element=e[0],a.StoreData(e[0],"data",t),t},n.prototype._normalizeItem=function(e){e!==Object(e)&&(e={id:e,text:e});return null!=(e=l.extend({},{text:""},e)).id&&(e.id=e.id.toString()),null!=e.text&&(e.text=e.text.toString()),null==e._resultId&&e.id&&null!=this.container&&(e._resultId=this.generateResultId(this.container,e)),l.extend({},{selected:!1,disabled:!1},e)},n.prototype.matches=function(e,t){return this.options.get("matcher")(e,t)},n}),e.define("select2/data/array",["./select","../utils","jquery"],function(e,f,g){function r(e,t){this._dataToConvert=t.get("data")||[],r.__super__.constructor.call(this,e,t)}return f.Extend(r,e),r.prototype.bind=function(e,t){r.__super__.bind.call(this,e,t),this.addOptions(this.convertToOptions(this._dataToConvert))},r.prototype.select=function(n){var e=this.$element.find("option").filter(function(e,t){return t.value==n.id.toString()});0===e.length&&(e=this.option(n),this.addOptions(e)),r.__super__.select.call(this,n)},r.prototype.convertToOptions=function(e){var t=this,n=this.$element.find("option"),r=n.map(function(){return t.item(g(this)).id}).get(),i=[];function o(e){return function(){return g(this).val()==e.id}}for(var s=0;s<e.length;s++){var a=this._normalizeItem(e[s]);if(0<=g.inArray(a.id,r)){var l=n.filter(o(a)),c=this.item(l),u=g.extend(!0,{},a,c),d=this.option(u);l.replaceWith(d)}else{var p=this.option(a);if(a.children){var h=this.convertToOptions(a.children);f.appendMany(p,h)}i.push(p)}}return i},r}),e.define("select2/data/ajax",["./array","../utils","jquery"],function(e,t,o){function n(e,t){this.ajaxOptions=this._applyDefaults(t.get("ajax")),null!=this.ajaxOptions.processResults&&(this.processResults=this.ajaxOptions.processResults),n.__super__.constructor.call(this,e,t)}return t.Extend(n,e),n.prototype._applyDefaults=function(e){var t={data:function(e){return o.extend({},e,{q:e.term})},transport:function(e,t,n){var r=o.ajax(e);return r.then(t),r.fail(n),r}};return o.extend({},t,e,!0)},n.prototype.processResults=function(e){return e},n.prototype.query=function(n,r){var i=this;null!=this._request&&(o.isFunction(this._request.abort)&&this._request.abort(),this._request=null);var t=o.extend({type:"GET"},this.ajaxOptions);function e(){var e=t.transport(t,function(e){var t=i.processResults(e,n);i.options.get("debug")&&window.console&&console.error&&(t&&t.results&&o.isArray(t.results)||console.error("Select2: The AJAX results did not return an array in the `results` key of the response.")),r(t)},function(){"status"in e&&(0===e.status||"0"===e.status)||i.trigger("results:message",{message:"errorLoading"})});i._request=e}"function"==typeof t.url&&(t.url=t.url.call(this.$element,n)),"function"==typeof t.data&&(t.data=t.data.call(this.$element,n)),this.ajaxOptions.delay&&null!=n.term?(this._queryTimeout&&window.clearTimeout(this._queryTimeout),this._queryTimeout=window.setTimeout(e,this.ajaxOptions.delay)):e()},n}),e.define("select2/data/tags",["jquery"],function(u){function e(e,t,n){var r=n.get("tags"),i=n.get("createTag");void 0!==i&&(this.createTag=i);var o=n.get("insertTag");if(void 0!==o&&(this.insertTag=o),e.call(this,t,n),u.isArray(r))for(var s=0;s<r.length;
vendor: 9,053 bytes, line 4145
4145s++){var a=r[s],l=this._normalizeItem(a),c=this.option(l);this.$element.append(c)}}return e.prototype.query=function(e,c,u){var d=this;this._removeOldTags(),null!=c.term&&null==c.page?e.call(this,c,function e(t,n){for(var r=t.results,i=0;i<r.length;i++){var o=r[i],s=null!=o.children&&!e({results:o.children},!0);if((o.text||"").toUpperCase()===(c.term||"").toUpperCase()||s)return!n&&(t.data=r,void u(t))}if(n)return!0;var a=d.createTag(c);if(null!=a){var l=d.option(a);l.attr("data-select2-tag",!0),d.addOptions([l]),d.insertTag(r,a)}t.results=r,u(t)}):e.call(this,c,u)},e.prototype.createTag=function(e,t){var n=u.trim(t.term);return""===n?null:{id:n,text:n}},e.prototype.insertTag=function(e,t,n){t.unshift(n)},e.prototype._removeOldTags=function(e){this.$element.find("option[data-select2-tag]").each(function(){this.selected||u(this).remove()})},e}),e.define("select2/data/tokenizer",["jquery"],function(d){function e(e,t,n){var r=n.get("tokenizer");void 0!==r&&(this.tokenizer=r),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){e.call(this,t,n),this.$search=t.dropdown.$search||t.selection.$search||n.find(".select2-search__field")},e.prototype.query=function(e,t,n){var i=this;t.term=t.term||"";var r=this.tokenizer(t,this.options,function(e){var t,n=i._normalizeItem(e);if(!i.$element.find("option").filter(function(){return d(this).val()===n.id}).length){var r=i.option(n);r.attr("data-select2-tag",!0),i._removeOldTags(),i.addOptions([r])}t=n,i.trigger("select",{data:t})});r.term!==t.term&&(this.$search.length&&(this.$search.val(r.term),this.$search.trigger("focus")),t.term=r.term),e.call(this,t,n)},e.prototype.tokenizer=function(e,t,n,r){for(var i=n.get("tokenSeparators")||[],o=t.term,s=0,a=this.createTag||function(e){return{id:e.term,text:e.term}};s<o.length;){var l=o[s];if(-1!==d.inArray(l,i)){var c=o.substr(0,s),u=a(d.extend({},t,{term:c}));null!=u?(r(u),o=o.substr(s+1)||"",s=0):s++}else s++}return{term:o}},e}),e.define("select2/data/minimumInputLength",[],function(){function e(e,t,n){this.minimumInputLength=n.get("minimumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",t.term.length<this.minimumInputLength?this.trigger("results:message",{message:"inputTooShort",args:{minimum:this.minimumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumInputLength",[],function(){function e(e,t,n){this.maximumInputLength=n.get("maximumInputLength"),e.call(this,t,n)}return e.prototype.query=function(e,t,n){t.term=t.term||"",0<this.maximumInputLength&&t.term.length>this.maximumInputLength?this.trigger("results:message",{message:"inputTooLong",args:{maximum:this.maximumInputLength,input:t.term,params:t}}):e.call(this,t,n)},e}),e.define("select2/data/maximumSelectionLength",[],function(){function e(e,t,n){this.maximumSelectionLength=n.get("maximumSelectionLength"),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(){r._checkIfMaximumSelected()})},e.prototype.query=function(e,t,n){var r=this;this._checkIfMaximumSelected(function(){e.call(r,t,n)})},e.prototype._checkIfMaximumSelected=function(e,n){var r=this;this.current(function(e){var t=null!=e?e.length:0;0<r.maximumSelectionLength&&t>=r.maximumSelectionLength?r.trigger("results:message",{message:"maximumSelected",args:{maximum:r.maximumSelectionLength}}):n&&n()})},e}),e.define("select2/dropdown",["jquery","./utils"],function(t,e){function n(e,t){this.$element=e,this.options=t,n.__super__.constructor.call(this)}return e.Extend(n,e.Observable),n.prototype.render=function(){var e=t('<span class="select2-dropdown"><span class="select2-results"></span></span>');return e.attr("dir",this.options.get("dir")),this.$dropdown=e},n.prototype.bind=function(){},n.prototype.position=function(e,t){},n.prototype.destroy=function(){this.$dropdown.remove()},n}),e.define("select2/dropdown/search",["jquery","../utils"],function(o,e){function t(){}return t.prototype.render=function(e){var t=e.call(this),n=o('<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>');return this.$searchContainer=n,this.$search=n.find("input"),t.prepend(n),t},t.prototype.bind=function(e,t,n){var r=this,i=t.id+"-results";e.call(this,t,n),this.$search.on("keydown",function(e){r.trigger("keypress",e),r._keyUpPrevented=e.isDefaultPrevented()}),this.$search.on("input",function(e){o(this).off("keyup")}),this.$search.on("keyup input",function(e){r.handleSearch(e)}),t.on("open",function(){r.$search.attr("tabindex",0),r.$search.attr("aria-controls",i),r.$search.trigger("focus"),window.setTimeout(function(){r.$search.trigger("focus")},0)}),t.on("close",function(){r.$search.attr("tabindex",-1),r.$search.removeAttr("aria-controls"),r.$search.removeAttr("aria-activedescendant"),r.$search.val(""),r.$search.trigger("blur")}),t.on("focus",function(){t.isOpen()||r.$search.trigger("focus")}),t.on("results:all",function(e){null!=e.query.term&&""!==e.query.term||(r.showSearch(e)?r.$searchContainer.removeClass("select2-search--hide"):r.$searchContainer.addClass("select2-search--hide"))}),t.on("results:focus",function(e){e.data._resultId?r.$search.attr("aria-activedescendant",e.data._resultId):r.$search.removeAttr("aria-activedescendant")})},t.prototype.handleSearch=function(e){if(!this._keyUpPrevented){var t=this.$search.val();this.trigger("query",{term:t})}this._keyUpPrevented=!1},t.prototype.showSearch=function(e,t){return!0},t}),e.define("select2/dropdown/hidePlaceholder",[],function(){function e(e,t,n,r){this.placeholder=this.normalizePlaceholder(n.get("placeholder")),e.call(this,t,n,r)}return e.prototype.append=function(e,t){t.results=this.removePlaceholder(t.results),e.call(this,t)},e.prototype.normalizePlaceholder=function(e,t){return"string"==typeof t&&(t={id:"",text:t}),t},e.prototype.removePlaceholder=function(e,t){for(var n=t.slice(0),r=t.length-1;0<=r;r--){var i=t[r];this.placeholder.id===i.id&&n.splice(r,1)}return n},e}),e.define("select2/dropdown/infiniteScroll",["jquery"],function(n){function e(e,t,n,r){this.lastParams={},e.call(this,t,n,r),this.$loadingMore=this.createLoadingMore(),this.loading=!1}return e.prototype.append=function(e,t){this.$loadingMore.remove(),this.loading=!1,e.call(this,t),this.showLoadingMore(t)&&(this.$results.append(this.$loadingMore),this.loadMoreIfNeeded())},e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("query",function(e){r.lastParams=e,r.loading=!0}),t.on("query:append",function(e){r.lastParams=e,r.loading=!0}),this.$results.on("scroll",this.loadMoreIfNeeded.bind(this))},e.prototype.loadMoreIfNeeded=function(){var e=n.contains(document.documentElement,this.$loadingMore[0]);if(!this.loading&&e){var t=this.$results.offset().top+this.$results.outerHeight(!1);this.$loadingMore.offset().top+this.$loadingMore.outerHeight(!1)<=t+50&&this.loadMore()}},e.prototype.loadMore=function(){this.loading=!0;var e=n.extend({},{page:1},this.lastParams);e.page++,this.trigger("query:append",e)},e.prototype.showLoadingMore=function(e,t){return t.pagination&&t.pagination.more},e.prototype.createLoadingMore=function(){var e=n('<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>'),t=this.options.get("translations").get("loadingMore");return e.html(t(this.lastParams)),e},e}),e.define("select2/dropdown/attachBody",["jquery","../utils"],function(f,a){function e(e,t,n){this.$dropdownParent=f(n.get("dropdownParent")||document.body),e.call(this,t,n)}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("open",function(){r._showDropdown(),r._attachPositioningHandler(t),r._bindContainerResultHandlers(t)}),t.on("close",function(){r._hideDropdown(),r._detachPositioningHandler(t)}),this.$dropdownContainer.on("mousedown",function(e){e.stopPropagation()})},e.prototype.destroy=function(e){e.call(this),this.$dropdownContainer.remove()},e.prototype.position=function(e,t,n){t.attr("class",n.attr("class")),t.removeClass("select2"),t.addClass("select2-container--open"),t.css({position:"absolute",top:-999999}),this.$container=n},e.prototype.render=function(e){var t=f("<span></span>"),n=e.call(this);return t.append(n),this.$dropdownContainer=t},e.prototype._hideDropdown=function(e){this.$dropdownContainer.detach()},e.prototype._bindContainerResultHandlers=function(e,t){if(!this._containerResultsHandlersBound){var n=this;t.on("results:all",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:append",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("results:message",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("select",function(){n._positionDropdown(),n._resizeDropdown()}),t.on("unselect",function(){n._positionDropdown(),n._resizeDropdown()}),this._containerResultsHandlersBound=!0}},e.prototype._attachPositioningHandler=function(e,t){var n=this,r="scroll.
4145select2."+t.id,i="resize.select2."+t.id,o="orientationchange.select2."+t.id,s=this.$container.parents().filter(a.hasScroll);s.each(function(){a.StoreData(this,"select2-scroll-position",{x:f(this).scrollLeft(),y:f(this).scrollTop()})}),s.on(r,function(e){var t=a.GetData(this,"select2-scroll-position");f(this).scrollTop(t.y)}),f(window).on(r+" "+i+" "+o,function(e){n._positionDropdown(),n._resizeDropdown()})},e.prototype._detachPositioningHandler=function(e,t){var n="scroll.select2."+t.id,r="resize.select2."+t.id,i="orientationchange.select2."+t.id;this.$container.parents().filter(a.hasScroll).off(n),f(window).off(n+" "+r+" "+i)},e.prototype._positionDropdown=function(){var e=f(window),t=this.$dropdown.hasClass("select2-dropdown--above"),n=this.$dropdown.hasClass("select2-dropdown--below"),r=null,i=this.$container.offset();i.bottom=i.top+this.$container.outerHeight(!1);var o={height:this.$container.outerHeight(!1)};o.top=i.top,o.bottom=i.top+o.height;var s=this.$dropdown.outerHeight(!1),a=e.scrollTop(),l=e.scrollTop()+e.height(),c=a<i.top-s,u=l>i.bottom+s,d={left:i.left,top:o.bottom},p=this.$dropdownParent;"static"===p.css("position")&&(p=p.offsetParent());var h={top:0,left:0};(f.contains(document.body,p[0])||p[0].isConnected)&&(h=p.offset()),d.top-=h.top,d.left-=h.left,t||n||(r="below"),u||!c||t?!c&&u&&t&&(r="below"):r="above",("above"==r||t&&"below"!==r)&&(d.top=o.top-h.top-s),null!=r&&(this.$dropdown.removeClass("select2-dropdown--below select2-dropdown--above").addClass("select2-dropdown--"+r),this.$container.removeClass("select2-container--below select2-container--above").addClass("select2-container--"+r)),this.$dropdownContainer.css(d)},e.prototype._resizeDropdown=function(){var e={width:this.$container.outerWidth(!1)+"px"};this.options.get("dropdownAutoWidth")&&(e.minWidth=e.width,e.position="relative",e.width="auto"),this.$dropdown.css(e)},e.prototype._showDropdown=function(e){this.$dropdownContainer.appendTo(this.$dropdownParent),this._positionDropdown(),this._resizeDropdown()},e}),e.define("select2/dropdown/minimumResultsForSearch",[],function(){function e(e,t,n,r){this.minimumResultsForSearch=n.get("minimumResultsForSearch"),this.minimumResultsForSearch<0&&(this.minimumResultsForSearch=1/0),e.call(this,t,n,r)}return e.prototype.showSearch=function(e,t){return!(function e(t){for(var n=0,r=0;r<t.length;r++){var i=t[r];i.children?n+=e(i.children):n++}return n}(t.data.results)<this.minimumResultsForSearch)&&e.call(this,t)},e}),e.define("select2/dropdown/selectOnClose",["../utils"],function(o){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("close",function(e){r._handleSelectOnClose(e)})},e.prototype._handleSelectOnClose=function(e,t){if(t&&null!=t.originalSelect2Event){var n=t.originalSelect2Event;if("select"===n._type||"unselect"===n._type)return}var r=this.getHighlightedResults();if(!(r.length<1)){var i=o.GetData(r[0],"data");null!=i.element&&i.element.selected||null==i.element&&i.selected||this.trigger("select",{data:i})}},e}),e.define("select2/dropdown/closeOnSelect",[],function(){function e(){}return e.prototype.bind=function(e,t,n){var r=this;e.call(this,t,n),t.on("select",function(e){r._selectTriggered(e)}),t.on("unselect",function(e){r._selectTriggered(e)})},e.prototype._selectTriggered=function(e,t){var n=t.originalEvent;n&&(n.ctrlKey||n.metaKey)||this.trigger("close",{originalEvent:n,originalSelect2Event:t})},e}),e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return 1!=t&&(n+="s"),n},inputTooShort:function(e){return"Please enter "+(e.minimum-e.input.length)+" or more characters"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return 1!=e.maximum&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"},removeAllItems:function(){return"Remove all items"}}}),e.define("select2/defaults",["jquery","require","./results","./selection/single","./selection/multiple","./selection/placeholder","./selection/allowClear","./selection/search","./selection/eventRelay","./utils","./translation","./diacritics","./data/select","./data/array","./data/ajax","./data/tags","./data/tokenizer","./data/minimumInputLength","./data/maximumInputLength","./data/maximumSelectionLength","./dropdown","./dropdown/search","./dropdown/hidePlaceholder","./dropdown/infiniteScroll","./dropdown/attachBody","./dropdown/minimumResultsForSearch","./dropdown/selectOnClose","./dropdown/closeOnSelect","./i18n/en"],function(c,u,d,p,h,f,g,m,v,y,s,t,_,$,b,w,A,x,D,S,E,C,O,T,q,L,I,j,e){function n(){this.reset()}return n.prototype.apply=function(e){if(null==(e=c.extend(!0,{},this.defaults,e)).dataAdapter){if(null!=e.ajax?e.dataAdapter=b:null!=e.data?e.dataAdapter=$:e.dataAdapter=_,0<e.minimumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,x)),0<e.maximumInputLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,D)),0<e.maximumSelectionLength&&(e.dataAdapter=y.Decorate(e.dataAdapter,S)),e.tags&&(e.dataAdapter=y.Decorate(e.dataAdapter,w)),null==e.tokenSeparators&&null==e.tokenizer||(e.dataAdapter=y.Decorate(e.dataAdapter,A)),null!=e.query){var t=u(e.amdBase+"compat/query");e.dataAdapter=y.Decorate(e.dataAdapter,t)}if(null!=e.initSelection){var n=u(e.amdBase+"compat/initSelection");e.dataAdapter=y.Decorate(e.dataAdapter,n)}}if(null==e.resultsAdapter&&(e.resultsAdapter=d,null!=e.ajax&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,T)),null!=e.placeholder&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,O)),e.selectOnClose&&(e.resultsAdapter=y.Decorate(e.resultsAdapter,I))),null==e.dropdownAdapter){if(e.multiple)e.dropdownAdapter=E;else{var r=y.Decorate(E,C);e.dropdownAdapter=r}if(0!==e.minimumResultsForSearch&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,L)),e.closeOnSelect&&(e.dropdownAdapter=y.Decorate(e.dropdownAdapter,j)),null!=e.dropdownCssClass||null!=e.dropdownCss||null!=e.adaptDropdownCssClass){var i=u(e.amdBase+"compat/dropdownCss");e.dropdownAdapter=y.Decorate(e.dropdownAdapter,i)}e.dropdownAdapter=y.Decorate(e.dropdownAdapter,q)}if(null==e.selectionAdapter){if(e.multiple?e.selectionAdapter=h:e.selectionAdapter=p,null!=e.placeholder&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,f)),e.allowClear&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,g)),e.multiple&&(e.selectionAdapter=y.Decorate(e.selectionAdapter,m)),null!=e.containerCssClass||null!=e.containerCss||null!=e.adaptC
4145ontainerCssClass){var o=u(e.amdBase+"compat/containerCss");e.selectionAdapter=y.Decorate(e.selectionAdapter,o)}e.selectionAdapter=y.Decorate(e.selectionAdapter,v)}e.language=this._resolveLanguage(e.language),e.language.push("en");for(var s=[],a=0;a<e.language.length;a++){var l=e.language[a];-1===s.indexOf(l)&&s.push(l)}return e.language=s,e.translations=this._processTranslations(e.language,e.debug),e},n.prototype.reset=function(){function a(e){return e.replace(/[^\u0000-\u007E]/g,function(e){return t[e]||e})}this.defaults={amdBase:"./",amdLanguageBase:"./i18n/",closeOnSelect:!0,debug:!1,dropdownAutoWidth:!1,escapeMarkup:y.escapeMarkup,language:{},matcher:function e(t,n){if(""===c.trim(t.term))return n;if(n.children&&0<n.children.length){for(var r=c.extend(!0,{},n),i=n.children.length-1;0<=i;i--)null==e(t,n.children[i])&&r.children.splice(i,1);return 0<r.children.length?r:e(t,r)}var o=a(n.text).toUpperCase(),s=a(t.term).toUpperCase();return-1<o.indexOf(s)?n:null},minimumInputLength:0,maximumInputLength:0,maximumSelectionLength:0,minimumResultsForSearch:0,selectOnClose:!1,scrollAfterSelect:!1,sorter:function(e){return e},templateResult:function(e){return e.text},templateSelection:function(e){return e.text},theme:"default",width:"resolve"}},n.prototype.applyFromElement=function(e,t){var n=e.language,r=this.defaults.language,i=t.prop("lang"),o=t.closest("[lang]").prop("lang"),s=Array.prototype.concat.call(this._resolveLanguage(i),this._resolveLanguage(n),this._resolveLanguage(r),this._resolveLanguage(o));return e.language=s,e},n.prototype._resolveLanguage=function(e){if(!e)return[];if(c.isEmptyObject(e))return[];if(c.isPlainObject(e))return[e];var t;t=c.isArray(e)?e:[e];for(var n=[],r=0;r<t.length;r++)if(n.push(t[r]),"string"==typeof t[r]&&0<t[r].indexOf("-")){var i=t[r].split("-")[0];n.push(i)}return n},n.prototype._processTranslations=function(e,t){for(var n=new s,r=0;r<e.length;r++){var i=new s,o=e[r];if("string"==typeof o)try{i=s.loadPath(o)}catch(e){try{o=this.defaults.amdLanguageBase+o,i=s.loadPath(o)}catch(e){t&&window.console&&console.warn&&console.warn('Select2: The language file for "'+o+'" could not be automatically loaded. A fallback will be used instead.')}}else i=c.isPlainObject(o)?new s(o):o;n.extend(i)}return n},n.prototype.set=function(e,t){var n={};n[c.camelCase(e)]=t;var r=y._convertData(n);c.extend(!0,this.defaults,r)},new n}),e.define("select2/options",["require","jquery","./defaults","./utils"],function(r,d,i,p){function e(e,t){if(this.options=e,null!=t&&this.fromElement(t),null!=t&&(this.options=i.applyFromElement(this.options,t)),this.options=i.apply(this.options),t&&t.is("input")){var n=r(this.get("amdBase")+"compat/inputData");this.options.dataAdapter=p.Decorate(this.options.dataAdapter,n)}}return e.prototype.fromElement=function(e){var t=["select2"];null==this.options.multiple&&(this.options.multiple=e.prop("multiple")),null==this.options.disabled&&(this.options.disabled=e.prop("disabled")),null==this.options.dir&&(e.prop("dir")?this.options.dir=e.prop("dir"):e.closest("[dir]").prop("dir")?this.options.dir=e.closest("[dir]").prop("dir"):this.options.dir="ltr"),e.prop("disabled",this.options.disabled),e.prop("multiple",this.options.multiple),p.GetData(e[0],"select2Tags")&&(this.options.debug&&window.console&&console.warn&&console.warn('Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.'),p.StoreData(e[0],"data",p.GetData(e[0],"select2Tags")),p.StoreData(e[0],"tags",!0)),p.GetData(e[0],"ajaxUrl")&&(this.options.debug&&window.console&&console.warn&&console.warn("Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2."),e.attr("ajax--url",p.GetData(e[0],"ajaxUrl")),p.StoreData(e[0],"ajax-Url",p.GetData(e[0],"ajaxUrl")));var n={};function r(e,t){return t.toUpperCase()}for(var i=0;i<e[0].attributes.length;i++){var o=e[0].attributes[i].name,s="data-";if(o.substr(0,s.length)==s){var a=o.substring(s.length),l=p.GetData(e[0],a);n[a.replace(/-([a-z])/g,r)]=l}}
vendor: 7,306 bytes, line 4145
4145d.fn.jquery&&"1."==d.fn.jquery.substr(0,2)&&e[0].dataset&&(n=d.extend(!0,{},e[0].dataset,n));var c=d.extend(!0,{},p.GetData(e[0]),n);for(var u in c=p._convertData(c))-1<d.inArray(u,t)||(d.isPlainObject(this.options[u])?d.extend(this.options[u],c[u]):this.options[u]=c[u]);return this},e.prototype.get=function(e){return this.options[e]},e.prototype.set=function(e,t){this.options[e]=t},e}),e.define("select2/core",["jquery","./options","./utils","./keys"],function(o,c,u,r){var d=function(e,t){null!=u.GetData(e[0],"select2")&&u.GetData(e[0],"select2").destroy(),this.$element=e,this.id=this._generateId(e),t=t||{},this.options=new c(t,e),d.__super__.constructor.call(this);var n=e.attr("tabindex")||0;u.StoreData(e[0],"old-tabindex",n),e.attr("tabindex","-1");var r=this.options.get("dataAdapter");this.dataAdapter=new r(e,this.options);var i=this.render();this._placeContainer(i);var o=this.options.get("selectionAdapter");this.selection=new o(e,this.options),this.$selection=this.selection.render(),this.selection.position(this.$selection,i);var s=this.options.get("dropdownAdapter");this.dropdown=new s(e,this.options),this.$dropdown=this.dropdown.render(),this.dropdown.position(this.$dropdown,i);var a=this.options.get("resultsAdapter");this.results=new a(e,this.options,this.dataAdapter),this.$results=this.results.render(),this.results.position(this.$results,this.$dropdown);var l=this;this._bindAdapters(),this._registerDomEvents(),this._registerDataEvents(),this._registerSelectionEvents(),this._registerDropdownEvents(),this._registerResultsEvents(),this._registerEvents(),this.dataAdapter.current(function(e){l.trigger("selection:update",{data:e})}),e.addClass("select2-hidden-accessible"),e.attr("aria-hidden","true"),this._syncAttributes(),u.StoreData(e[0],"select2",this),e.data("select2",this)};return u.Extend(d,u.Observable),d.prototype._generateId=function(e){return"select2-"+(null!=e.attr("id")?e.attr("id"):null!=e.attr("name")?e.attr("name")+"-"+u.generateChars(2):u.generateChars(4)).replace(/(:|\.|\[|\]|,)/g,"")},d.prototype._placeContainer=function(e){e.insertAfter(this.$element);var t=this._resolveWidth(this.$element,this.options.get("width"));null!=t&&e.css("width",t)},d.prototype._resolveWidth=function(e,t){var n=/^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;if("resolve"==t){var r=this._resolveWidth(e,"style");return null!=r?r:this._resolveWidth(e,"element")}if("element"==t){var i=e.outerWidth(!1);return i<=0?"auto":i+"px"}if("style"!=t)return"computedstyle"!=t?t:window.getComputedStyle(e[0]).width;var o=e.attr("style");if("string"!=typeof o)return null;for(var s=o.split(";"),a=0,l=s.length;a<l;a+=1){var c=s[a].replace(/\s/g,"").match(n);if(null!==c&&1<=c.length)return c[1]}return null},d.prototype._bindAdapters=function(){this.dataAdapter.bind(this,this.$container),this.selection.bind(this,this.$container),this.dropdown.bind(this,this.$container),this.results.bind(this,this.$container)},d.prototype._registerDomEvents=function(){var t=this;this.$element.on("change.select2",function(){t.dataAdapter.current(function(e){t.trigger("selection:update",{data:e})})}),this.$element.on("focus.select2",function(e){t.trigger("focus",e)}),this._syncA=u.bind(this._syncAttributes,this),this._syncS=u.bind(this._syncSubtree,this),this.$element[0].attachEvent&&this.$element[0].attachEvent("onpropertychange",this._syncA);var e=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;null!=e?(this._observer=new e(function(e){t._syncA(),t._syncS(null,e)}),this._observer.observe(this.$element[0],{attributes:!0,childList:!0,subtree:!1})):this.$element[0].addEventListener&&(this.$element[0].addEventListener("DOMAttrModified",t._syncA,!1),this.$element[0].addEventListener("DOMNodeInserted",t._syncS,!1),this.$element[0].addEventListener("DOMNodeRemoved",t._syncS,!1))},d.prototype._registerDataEvents=function(){var n=this;this.dataAdapter.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerSelectionEvents=function(){var n=this,r=["toggle","focus"];this.selection.on("toggle",function(){n.toggleDropdown()}),this.selection.on("focus",function(e){n.focus(e)}),this.selection.on("*",function(e,t){-1===o.inArray(e,r)&&n.trigger(e,t)})},d.prototype._registerDropdownEvents=function(){var n=this;this.dropdown.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerResultsEvents=function(){var n=this;this.results.on("*",function(e,t){n.trigger(e,t)})},d.prototype._registerEvents=function(){var n=this;this.on("open",function(){n.$container.addClass("select2-container--open")}),this.on("close",function(){n.$container.removeClass("select2-container--open")}),this.on("enable",function(){n.$container.removeClass("select2-container--disabled")}),this.on("disable",function(){n.$container.addClass("select2-container--disabled")}),this.on("blur",function(){n.$container.removeClass("select2-container--focus")}),this.on("query",function(t){n.isOpen()||n.trigger("open",{}),this.dataAdapter.query(t,function(e){n.trigger("results:all",{data:e,query:t})})}),this.on("query:append",function(t){this.dataAdapter.query(t,function(e){n.trigger("results:append",{data:e,query:t})})}),this.on("keypress",function(e){var t=e.which;n.isOpen()?t===r.ESC||t===r.TAB||t===r.UP&&e.altKey?(n.close(e),e.preventDefault()):t===r.ENTER?(n.trigger("results:select",{}),e.preventDefault()):t===r.SPACE&&e.ctrlKey?(n.trigger("results:toggle",{}),e.preventDefault()):t===r.UP?(n.trigger("results:previous",{}),e.preventDefault()):t===r.DOWN&&(n.trigger("results:next",{}),e.preventDefault()):(t===r.ENTER||t===r.SPACE||t===r.DOWN&&e.altKey)&&(n.open(),e.preventDefault())})},d.prototype._syncAttributes=function(){this.options.set("disabled",this.$element.prop("disabled")),this.isDisabled()?(this.isOpen()&&this.close(),this.trigger("disable",{})):this.trigger("enable",{})},d.prototype._isChangeMutation=function(e,t){var n=!1,r=this;if(!e||!e.target||"OPTION"===e.target.nodeName||"OPTGROUP"===e.target.nodeName){if(t)if(t.addedNodes&&0<t.addedNodes.length)for(var i=0;i<t.addedNodes.length;i++){t.addedNodes[i].selected&&(n=!0)}else t.removedNodes&&0<t.removedNodes.length?n=!0:o.isArray(t)&&o.each(t,function(e,t){if(r._isChangeMutation(e,t))return!(n=!0)});else n=!0;return n}},d.prototype._syncSubtree=function(e,t){var n=this._isChangeMutation(e,t),r=this;n&&this.dataAdapter.current(function(e){r.trigger("selection:update",{data:e})})},d.prototype.trigger=function(e,t){var n=d.__super__.trigger,r={open:"opening",close:"closing",select:"selecting",unselect:"unselecting",clear:"clearing"};if(void 0===t&&(t={}),e in r){var i=r[e],o={prevented:!1,name:e,args:t};if(n.call(this,i,o),o.prevented)return void(t.prevented=!0)}n.call(this,e,t)},d.prototype.toggleDropdown=function(){this.isDisabled()||(this.isOpen()?this.close():this.open())},d.prototype.open=function(){this.isOpen()||this.isDisabled()||this.trigger("query",{})},d.prototype.close=function(e){this.isOpen()&&this.trigger("close",{originalEvent:e})},d.prototype.isEnabled=function(){return!this.isDisabled()},d.prototype.isDisabled=function(){return this.options.get("disabled")},d.prototype.isOpen=function(){return this.$container.hasClass("select2-container--open")},d.prototype.hasFocus=function(){return this.$container.hasClass("select2-container--focus")}
4145,d.prototype.focus=function(e){this.hasFocus()||(this.$container.addClass("select2-container--focus"),this.trigger("focus",{}))},d.prototype.enable=function(e){this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.'),null!=e&&0!==e.length||(e=[!0]);var t=!e[0];this.$element.prop("disabled",t)},d.prototype.data=function(){this.options.get("debug")&&0<arguments.length&&window.console&&console.warn&&console.warn('Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.');var t=[];return this.dataAdapter.current(function(e){t=e}),t},d.prototype.val=function(e){if(this.options.get("debug")&&window.console&&console.warn&&console.warn('Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.'),null==e||0===e.length)return this.$element.val();var t=e[0];o.isArray(t)&&(t=o.map(t,function(e){return e.toString()})),this.$element.val(t).trigger("input").trigger("change")},d.prototype.destroy=function(){this.$container.remove(),this.$element[0].detachEvent&&this.$element[0].detachEvent("onpropertychange",this._syncA),null!=this._observer?(this._observer.disconnect(),this._observer=null):this.$element[0].removeEventListener&&(this.$element[0].removeEventListener("DOMAttrModified",this._syncA,!1),this.$element[0].removeEventListener("DOMNodeInserted",this._syncS,!1),this.$element[0].removeEventListener("DOMNodeRemoved",this._syncS,!1)),this._syncA=null,this._syncS=null,this.$element.off(".select2"),this.$element.attr("tabindex",u.GetData(this.$element[0],"old-tabindex")),this.$element.removeClass("select2-hidden-accessible"),this.$element.attr("aria-hidden","false"),u.RemoveData(this.$element[0]),this.$element.removeData("select2"),this.dataAdapter.destroy(),this.selection.destroy(),this.dropdown.destroy(),this.results.destroy(),this.dataAdapter=null,this.selection=null,this.dropdown=null,this.results=null},d.prototype.render=function(){var e=o('<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>');return e.attr("dir",this.options.get("dir")),this.$container=e,this.$container.addClass("select2-container--"+this.options.get("theme")),u.StoreData(e[0],"element",this.$element),e},d}),e.define("jquery-mousewheel",["jquery"],function(e){return e}),e.define("jquery.select2",["jquery","jquery-mousewheel","./select2/core","./select2/defaults","./select2/utils"],function(i,e,o,t,s){if(null==i.fn.select2){var a=["open","close","destroy"];i.fn.select2=function(t){if("object"==typeof(t=t||{}))return this.each(function(){var e=i.extend(!0,{},t);new o(i(this),e)}),this;if("string"!=typeof t)throw new Error("Invalid arguments for Select2: "+t);var n,r=Array.prototype.slice.call(arguments,1);return this.each(function(){var e=s.GetData(this,"select2");null==e&&window.console&&console.error&&console.error("The select2('"+t+"') method was called on an element that is not using Select2."),n=e[t].apply(e,r)}),-1<i.inArray(t,a)?this:n}}return null==i.fn.select2.defaults&&(i.fn.select2.defaults=t),o}),{define:e.define,require:e.require}}(),t=e.require("jquery.select2");return u.fn.select2.amd=e,t});
4146/*! lightgallery - v1.10.0 - 2020-11-07
4147* http://sachinchoolur.github.io/lightGallery/
4148* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4149!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(b,d){if(this.el=b,this.$el=a(b),this.s=a.extend({},c,d),this.s.dynamic&&"undefined"!==this.s.dynamicEl&&this.s.dynamicEl.constructor===Array&&!this.s.dynamicEl.length)throw"When using dynamic mode, you must also define dynamicEl as an Array.";return this.modules={},this.lGalleryOn=!1,this.lgBusy=!1,this.hideBarTimeout=!1,this.isTouch="ontouchstart"in document.documentElement,this.s.slideEndAnimatoin&&(this.s.hideControlOnEnd=!1),this.s.dynamic?this.$items=this.s.dynamicEl:"this"===this.s.selector?this.$items=this.$el:""!==this.s.selector?this.s.selectWithin?this.$items=a(this.s.selectWithin).find(this.s.selector):this.$items=this.$el.find(a(this.s.selector)):this.$items=this.$el.children(),this.$slide="",this.$outer="",this.init(),this}var c={mode:"lg-slide",cssEasing:"ease",easing:"linear",speed:600,height:"100%",width:"100%",addClass:"",startClass:"lg-start-zoom",backdropDuration:150,hideBarsDelay:6e3,useLeft:!1,ariaLabelledby:"",ariaDescribedby:"",closable:!0,loop:!0,escKey:!0,keyPress:!0,controls:!0,slideEndAnimatoin:!0,hideControlOnEnd:!1,mousewheel:!0,getCaptionFromTitleOrAlt:!0,appendSubHtmlTo:".lg-sub-html",subHtmlSelectorRelative:!1,preload:1,showAfterLoad:!0,selector:"",selectWithin:"",nextHtml:"",prevHtml:"",index:!1,iframeMaxWidth:"100%",download:!0,counter:!0,appendCounterTo:".lg-toolbar",swipeThreshold:50,enableSwipe:!0,enableDrag:!0,dynamic:!1,dynamicEl:[],galleryId:1,supportLegacyBrowser:!0};b.prototype.init=function(){var b=this;b.s.preload>b.$items.length&&(b.s.preload=b.$items.length);var c=window.location.hash;c.indexOf("lg="+this.s.galleryId)>0&&(b.index=parseInt(c.split("&slide=")[1],10),a("body").addClass("lg-from-hash"),a("body").hasClass("lg-on")||(setTimeout(function(){b.build(b.index)}),a("body").addClass("lg-on"))),b.s.dynamic?(b.$el.trigger("onBeforeOpen.lg"),b.index=b.s.index||0,a("body").hasClass("lg-on")||setTimeout(function(){b.build(b.index),a("body").addClass("lg-on")})):b.$items.on("click.lgcustom",function(c){try{c.preventDefault(),c.preventDefault()}catch(a){c.returnValue=!1}b.$el.trigger("onBeforeOpen.lg"),b.index=b.s.index||b.$items.index(this),a("body").hasClass("lg-on")||(b.build(b.index),a("body").addClass("lg-on"))})},b.prototype.build=function(b){var c=this;c.structure(),a.each(a.fn.lightGallery.modules,function(b){c.modules[b]=new a.fn.lightGallery.modules[b](c.el)}),c.slide(b,!1,!1,!1),c.s.keyPress&&c.keyPress(),c.$items.length>1?(c.arrow(),setTimeout(function(){c.enableDrag(),c.enableSwipe()},50),c.s.mousewheel&&c.mousewheel()):c.$slide.on("click.lg",function(){c.$el.trigger("onSlideClick.lg")}),c.counter(),c.closeGallery(),c.$el.trigger("onAfterOpen.lg"),c.s.hideBarsDelay>
41490&&c.$outer.on("mousemove.lg click.lg touchstart.lg",function(){c.$outer.removeClass("lg-hide-items"),clearTimeout(c.hideBarTimeout),c.hideBarTimeout=setTimeout(function(){c.$outer.addClass("lg-hide-items")},c.s.hideBarsDelay)}),c.$outer.trigger("mousemove.lg")},b.prototype.structure=function(){var b,c="",d="",e=0,f="",g=this;for(a("body").append('<div class="lg-backdrop"></div>'),a(".lg-backdrop").css("transition-duration",this.s.backdropDuration+"ms"),e=0;e<this.$items.length;e++)c+='<div class="lg-item"></div>';if(this.s.controls&&this.$items.length>1&&(d='<div class="lg-actions"><button type="button" aria-label="Previous slide" class="lg-prev lg-icon">'+this.s.prevHtml+'</button><button type="button" aria-label="Next slide" class="lg-next lg-icon">'+this.s.nextHtml+"</button></div>"),".lg-sub-html"===this.s.appendSubHtmlTo&&(f='<div role="status" aria-live="polite" class="lg-sub-html"></div>'),b='<div tabindex="-1" aria-modal="true" '+(this.s.ariaLabelledby?'aria-labelledby="'+this.s.ariaLabelledby+'"':"")+" "+(this.s.ariaDescribedby?'aria-describedby="'+this.s.ariaDescribedby+'"':"")+' role="dialog" class="lg-outer '+this.s.addClass+" "+this.s.startClass+'"><div class="lg" style="width:'+this.s.width+"; height:"+this.s.height+'"><div class="lg-inner">'+c+'</div><div class="lg-toolbar lg-group"><button type="button" aria-label="Close gallery" class="lg-close lg-icon"></button></div>'+d+f+"</div></div>",a("body").append(b),this.$outer=a(".lg-outer"),this.$outer.focus(),this.$slide=this.$outer.find(".lg-item"),this.s.useLeft?(this.$outer.addClass("lg-use-left"),this.s.mode="lg-slide"):this.$outer.addClass("lg-use-css3"),g.setTop(),a(window).on("resize.lg orientationchange.lg",function(){setTimeout(function(){g.setTop()},100)}),this.$slide.eq(this.index).addClass("lg-current"),this.doCss()?this.$outer.addClass("lg-css3"):(this.$outer.addClass("lg-css"),this.s.speed=0),this.$outer.addClass(this.s.mode),this.s.enableDrag&&this.$items.length>1&&this.$outer.addClass("lg-grab"),this.s.showAfterLoad&&this.$outer.addClass("lg-show-after-load"),this.doCss()){var h=this.$outer.find(".lg-inner");h.css("transition-timing-function",this.s.cssEasing),h.css("transition-duration",this.s.speed+"ms")}setTimeout(function(){a(".lg-backdrop").addClass("in")}),setTimeout(function(){g.$outer.addClass("lg-visible")},this.s.backdropDuration),this.s.download&&this.$outer.find(".lg-toolbar").append('<a id="lg-download" aria-label="Download" target="_blank" download class="lg-download lg-icon"></a>'),this.prevScrollTop=a(window).scrollTop()},b.prototype.setTop=function(){if("100%"!==this.s.height){var b=a(window).height(),c=(b-parseInt(this.s.height,10))/2,d=this.$outer.find(".lg");b>=parseInt(this.s.height,10)?d.css("top",c+"px"):d.css("top","0px")}},b.prototype.doCss=function(){return!!function(){var a=["transition","MozTransition","WebkitTransition","OTransition","msTransition","KhtmlTransition"],b=document.documentElement,c=0;for(c=0;c<a.length;c++)if(a[c]in b.style)return!0}()},b.prototype.isVideo=function(a,b){var c;if(c=this.s.dynamic?this.s.dynamicEl[b].html:this.$items.eq(b).attr("data-html"),!a)return c?{html5:!0}:(console.error("lightGallery :- data-src is not provided on slide item "+(b+1)+". Please make sure the selector property is properly configured. More info - http://sachinchoolur.github.io/lightGallery/demos/html-markup.html"),!1);var d=a.match(/\/\/(?:www\.)?youtu(?:\.be|be\.com|be-nocookie\.com)\/(?:watch\?v=|embed\/)?([a-z0-9\-\_\%]+)/i),e=a.match(/\/\/(?:www\.)?(?:player\.)?vimeo.com\/(?:video\/)?([0-9a-z\-_]+)/i),f=a.match(/\/\/(?:www\.)?dai.ly\/([0-9a-z\-_]+)/i),g=a.match(/\/\/(?:www\.)?(?:vk\.com|vkontakte\.ru)\/(?:video_ext\.php\?)(.*)/i);return d?{youtube:d}:e?{vimeo:e}:f?{dailymotion:f}:g?{vk:g}:void 0},b.prototype.counter=function(){this.s.counter&&a(this.s.appendCounterTo).append('<div id="lg-counter" role="status" aria-live="polite"><span id="lg-counter-current">'+(parseInt(this.index,10)+1)+'</span> / <span id="lg-counter-all">'+this.$items.length+"</span></div>")},b.prototype.addHtml=function(b){var c,d,e=null;if(this.s.dynamic?this.s.dynamicEl[b].subHtmlUrl?c=this.s.dynamicEl[b].subHtmlUrl:e=this.s.dynamicEl[b].subHtml:(d=this.$items.eq(b),d.attr("data-sub-html-url")?c=d.attr("data-sub-html-url"):(e=d.attr("data-sub-html"),this.s.getCaptionFromTitleOrAlt&&!e&&(e=d.attr("title")||d.find("img").first().attr("alt")))),!c)if(void 0!==e&&null!==e){var f=e.substring(0,1);"."!==f&&"#"!==f||(e=this.s.subHtmlSelectorRelative&&!this.s.dynamic?d.find(e).html():a(e).html())}else e="";
4149".lg-sub-html"===this.s.appendSubHtmlTo?c?this.$outer.find(this.s.appendSubHtmlTo).load(c):this.$outer.find(this.s.appendSubHtmlTo).html(e):c?this.$slide.eq(b).load(c):this.$slide.eq(b).append(e),void 0!==e&&null!==e&&(""===e?this.$outer.find(this.s.appendSubHtmlTo).addClass("lg-empty-html"):this.$outer.find(this.s.appendSubHtmlTo).removeClass("lg-empty-html")),this.$el.trigger("onAfterAppendSubHtml.lg",[b])},b.prototype.preload=function(a){var b=1,c=1;for(b=1;b<=this.s.preload&&!(b>=this.$items.length-a);b++)this.loadContent(a+b,!1,0);for(c=1;c<=this.s.preload&&!(a-c<0);c++)this.loadContent(a-c,!1,0)},b.prototype.loadContent=function(b,c,d){var e,f,g,h,i,j,k,l=this,m=!1,n=function(b){for(var c=[],d=[],e=0;e<b.length;e++){var g=b[e].split(" ");""===g[0]&&g.splice(0,1),d.push(g[0]),c.push(g[1])}for(var h=a(window).width(),i=0;i<c.length;i++)if(parseInt(c[i],10)>h){f=d[i];break}};if(l.s.dynamic){if(l.s.dynamicEl[b].poster&&(m=!0,g=l.s.dynamicEl[b].poster),j=l.s.dynamicEl[b].html,f=l.s.dynamicEl[b].src,k=l.s.dynamicEl[b].alt,l.s.dynamicEl[b].responsive){n(l.s.dynamicEl[b].responsive.split(","))}h=l.s.dynamicEl[b].srcset,i=l.s.dynamicEl[b].sizes}else{var o=l.$items.eq(b);if(o.attr("data-poster")&&(m=!0,g=o.attr("data-poster")),j=o.attr("data-html"),f=o.attr("href")||o.attr("data-src"),k=o.attr("title")||o.find("img").first().attr("alt"),o.attr("data-responsive")){n(o.attr("data-responsive").split(","))}h=o.attr("data-srcset"),i=o.attr("data-sizes")}var p=!1;l.s.dynamic?l.s.dynamicEl[b].iframe&&(p=!0):"true"===l.$items.eq(b).attr("data-iframe")&&(p=!0);var q=l.isVideo(f,b);if(!l.$slide.eq(b).hasClass("lg-loaded")){if(p)l.$slide.eq(b).prepend('<div class="lg-video-cont lg-has-iframe" style="max-width:'+l.s.iframeMaxWidth+'"><div class="lg-video"><iframe class="lg-object" frameborder="0" src="'+f+'"  allowfullscreen="true"></iframe></div></div>');else if(m){var r="";r=q&&q.youtube?"lg-has-youtube":q&&q.vimeo?"lg-has-vimeo":"lg-has-html5",l.$slide.eq(b).prepend('<div class="lg-video-cont '+r+' "><div class="lg-video"><span class="lg-video-play"></span><img class="lg-object lg-has-poster" src="'+g+'" /></div></div>')}else q?(l.$slide.eq(b).prepend('<div class="lg-video-cont "><div class="lg-video"></div></div>'),l.$el.trigger("hasVideo.lg",[b,f,j])):(k=k?'alt="'+k+'"':"",l.$slide.eq(b).prepend('<div class="lg-img-wrap"><img class="lg-object lg-image" '+k+' src="'+f+'" /></div>'));if(l.$el.trigger("onAferAppendSlide.lg",[b]),e=l.$slide.eq(b).find(".lg-object"),i&&e.attr("sizes",i),h&&(e.attr("srcset",h),this.s.supportLegacyBrowser))try{picturefill({elements:[e[0]]})}catch(a){console.warn("lightGallery :- If you want srcset to be supported for older browser please include picturefil version 2 javascript library in your document.")}".lg-sub-html"!==this.s.appendSubHtmlTo&&l.addHtml(b),l.$slide.eq(b).addClass("lg-loaded")}l.$slide.eq(b).find(".lg-object").on("load.lg error.lg",function(){var c=0;d&&!a("body").hasClass("lg-from-hash")&&(c=d),setTimeout(function(){l.$slide.eq(b).addClass("lg-complete"),l.$el.trigger("onSlideItemLoad.lg",[b,d||0])},c)}),q&&q.html5&&!m&&l.$slide.eq(b).addClass("lg-complete"),!0===c&&(l.$slide.eq(b).hasClass("lg-complete")?l.preload(b):l.$slide.eq(b).find(".lg-object").on("load.lg error.lg",function(){l.preload(b)}))},b.prototype.slide=function(b,c,d,e){var f=this.$outer.find(".lg-current").index(),g=this;if(!g.lGalleryOn||f!==b){var h=this.$slide.length,i=g.lGalleryOn?this.s.speed:0;if(!g.lgBusy){if(this.s.download){var j;j=g.s.dynamic?!1!==g.s.dynamicEl[b].downloadUrl&&(g.s.dynamicEl[b].downloadUrl||g.s.dynamicEl[b].src):"false"!==g.$items.eq(b).attr("data-download-url")&&(g.$items.eq(b).attr("data-download-url")||g.$items.eq(b).attr("href")||g.$items.eq(b).attr("data-src")),j?(a("#lg-download").attr("href",j),g.$outer.removeClass("lg-hide-download")):g.$outer.addClass("lg-hide-download")}if(this.$el.trigger("onBeforeSlide.lg",[f,b,c,d]),g.lgBusy=!0,clearTimeout(g.hideBarTimeout),".lg-sub-html"===this.s.appendSubHtmlTo&&setTimeout(function(){g.addHtml(b)},i),this.arrowDisable(b),e||(b<f?e="prev":b>f&&(e="next")),c){this.$slide.removeClass("lg-prev-slide lg-current lg-next-slide");var k,l;h>2?(k=b-1,l=b+1,0===b&&f===h-1?(l=0,k=h-1):b===h-1&&0===f&&(l=0,k=h-1)):(k=0,l=1),"prev"===e?g.$slide.eq(l).addClass("lg-next-slide"):g.$slide.eq(k).addClass("lg-prev-slide"),g.$slide.eq(b).addClass("lg-current")}else g.$outer.addClass("lg-no-trans"),this.$slide.removeClass("lg-prev-slide lg-next-slide"),"prev"===e?(this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(f).addClass("lg-next-slide")):(this.$slide.eq(b).addClass("lg-next-slide"),this.$slide.eq(f).addClass("lg-prev-slide")),setTimeout(function(){g.$slide.removeClass("lg-current"),g.$slide.eq(b).addClass("lg-current"),g.$outer.removeClass("lg-no-trans")},50);g.lGalleryOn?(setTimeout(function(){g.loadContent(b,!0,0)},this.s.speed+50),setTimeout(function(){g.lgBusy=!1,g.$el.trigger("onAfterSlide.lg",[f,b,c,d])},this.s.speed)):(g.loadContent(b,!0,g.s.backdropDuration),g.lgBusy=!1,g.$el.trigger("onAfterSlide.lg",[f,b,c,d])),g.lGalleryOn=!0,this.s.counter&&a("#lg-counter-current").text(b+1)}g.index=b}},b.prototype.goToNextSlide=function(a){var b=this,c=b.s.loop;a&&b.$slide.length<3&&(c=!1),b.lgBusy||(b.index+1<b.$slide.length?(b.index++,b.$el.trigger("onBeforeNextSlide.lg",[b.index]),b.slide(b.index,a,!1,"next")):c?(b.index=0,b.$el.trigger("onBeforeNextSlide.lg",[b.index]),b.slide(b.index,a,!1,"next")):b.s.slideEndAnimatoin&&!a&&(b.$outer.addClass("lg-right-end"),setTimeout(function(){b.$outer.removeClass("lg-right-end")},400)))},b.prototype.goToPrevSlide=function(a){var b=this,c=b.s.loop;a&&b.$slide.length<3&&(c=!1),b.lgBusy||(b.index>0?(b.index--,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1,"prev")):c?(b.index=b.$items.length-1,b.$el.trigger("onBeforePrevSlide.lg",[b.index,a]),b.slide(b.index,a,!1,"prev")):b.s.slideEndAnimatoin&&!a&&(b.$outer.addClass("lg-left-end"),setTimeout(function(){b.$outer.removeClass("lg-left-end")},400)))},b.prototype.keyPress=function(){var b=this;this.$items.length>1&&a(window).on("keyup.lg",function(a){b.$items.length>1&&(37===a.keyCode&&(a.preventDefault(),b.goToPrevSlide()),39===a.keyCode&&(a.preventDefault(),b.goToNextSlide()))}),a(window).on("keydown.lg",function(a){!0===b.s.escKey&&27===a.keyCode&&(a.preventDefault(),b.$outer.hasClass("lg-thumb-open")?b.$outer.removeClass("lg-thumb-open"):b.destroy())})},b.prototype.arrow=function(){var a=this;this.$outer.find(".lg-prev").on("click.lg",function(){a.goToPrevSlide()}),this.$outer.find(".lg-next").on("click.lg",function(){a.goToNextSlide()})},b.prototype.arrowDisable=function(a){!this.s.loop&&this.s.hideControlOnEnd&&(a+1<this.$slide.length?this.$outer.find(".lg-next").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-next").attr("disabled","disabled").addClass("disabled"),a>0?this.$outer.find(".lg-prev").removeAttr("disabled").removeClass("disabled"):this.$outer.find(".lg-prev").attr("disabled","disabled").addClass("disabled"))},b.prototype.setTranslate=function(a,b,c){this.s.useLeft?a.css("left",b):a.css({transform:"translate3d("+b+"px, "+c+"px, 0px)"})},b.prototype.touchMove=function(b,c){var d=c-b;Math.abs(d)>15&&(this.$outer.addClass("lg-dragging"),this.setTranslate(this.$slide.eq(this.index),d,0),this.setTranslate(a(".lg-prev-slide"),-this.$slide.eq(this.index).width()+d,0),this.setTranslate(a(".lg-next-slide"),this.$slide.eq(this.index).width()+d,0))},b.prototype.touchEnd=function(a){var b=this;"lg-slide"!==b.s.mode&&b.$outer.addClass("lg-slide"),this.$slide.not(".lg-current, .lg-prev-slide, .lg-next-slide").css("opacity","0"),setTimeout(function(){b.$outer.removeClass("lg-dragging"),a<0&&Math.abs(a)>b.s.swipeThreshold?b.goToNextSlide(!0):a>0&&Math.abs(a)>b.s.swipeThreshold?b.goToPrevSlide(!0):Math.abs(a)<5&&b.$el.trigger("onSlideClick.lg"),b.$slide.removeAttr("style")}),setTimeout(function(){b.$outer.hasClass("lg-dragging")||"lg-slide"===b.s.mode||b.$outer.removeClass("lg-slide")},b.s.speed+100)},b.prototype.enableSwipe=function(){var a=this,b=0,c=0,d=!1;a.s.enableSwipe&&a.doCss()&&(a.$slide.on("touchstart.lg",function(c){a.$outer.hasClass("lg-zoomed")||a.lgBusy||(c.preventDefault(),a.manageSwipeClass(),b=c.originalEvent.targetTouches[0].pageX)}),a.$slide.on("touchmove.lg",function(e){a.$outer.hasClass("lg-zoomed")||(e.preventDefault(),c=e.originalEvent.targetTouches[0].pageX,a.touchMove(b,c),d=!0)}),a.$slide.on("touchend.lg",function(){a.$outer.hasClass("lg-zoomed")||(d?(d=!1,a.touchEnd(c-b)):a.$el.trigger("onSlideClick.lg"))}))},b.prototype.enableDrag=function(){var b=this,c=0,d=0,e=!1,f=!1;b.s.enableDrag&&b.doCss()&&(b.$slide.on("mousedown.lg",function(d){b.$outer.hasClass("lg-zoomed")||b.lgBusy||a(d.target).text().trim()||(d.preventDefault(),b.manageSwipeClass(),c=d.pageX,e=!0,b.$outer.scrollLeft+=1,b.$outer.scrollLeft-=1,b.$outer.removeClass("lg-grab").addClass("lg-grabbing"),b.$el.trigger("onDragstart.lg"))}),a(window).on("mousemove.lg",function(a){e&&(f=!0,d=a.pageX,b.touchMove(c,d),b.$el.trigger("onDragmove.lg"))}),a(window).on("mouseup.lg",function(g){f?(f=!1,b.touchEnd(d-c),b.$el.trigger("onDragend.lg")):(a(g.target).hasClass("lg-object")||a(g.target).hasClass("lg-video-play"))&&b.$el.trigger("onSlideClick.lg"),e&&(e=!1,b.$outer.removeClass("lg-grabbing").addClass("lg-grab"))}))},b.prototype.manageSwipeClass=function(){var a=this.index+1,b=this.index-1;this.s.loop&&this.$slide.length>2&&(0===this.index?b=this.$slide.length-1:this.index===this.$slide.length-1&&(a=0)),this.$slide.removeClass("lg-next-slide lg-prev-slide"),b>-1&&this.$slide.eq(b).addClass("lg-prev-slide"),this.$slide.eq(a).addClass("lg-next-slide")},b.prototype.mousewheel=function(){var a=this;a.$outer.on("mousewheel.lg",function(b){b.deltaY&&(b.deltaY>0?a.goToPrevSlide():a.goToNextSlide(),b.preventDefault())})},b.prototype.closeGallery=function(){var b=this,c=!1;this.$outer.find(".lg-close").on("click.lg",function(){b.destroy()}),b.s.closable&&(b.$outer.on("mousedown.lg",function(b){c=!!(a(b.target).is(".lg-outer")||a(b.target).is(".lg-item ")||a(b.target).is(".lg-img-wrap"))}),b.$outer.on("mousemove.lg",function(){c=!1}),b.$outer.on("mouseup.lg",function(d){(a(d.target).is(".lg-outer")||a(d.target).is(".lg-item ")||a(d.target).is(".lg-img-wrap")&&c)&&
4149(b.$outer.hasClass("lg-dragging")||b.destroy())}))},b.prototype.destroy=function(b){var c=this;b||(c.$el.trigger("onBeforeClose.lg"),a(window).scrollTop(c.prevScrollTop)),b&&(c.s.dynamic||this.$items.off("click.lg click.lgcustom"),a.removeData(c.el,"lightGallery")),this.$el.off(".lg.tm"),a.each(a.fn.lightGallery.modules,function(a){c.modules[a]&&c.modules[a].destroy()}),this.lGalleryOn=!1,clearTimeout(c.hideBarTimeout),this.hideBarTimeout=!1,a(window).off(".lg"),a("body").removeClass("lg-on lg-from-hash"),c.$outer&&c.$outer.removeClass("lg-visible"),a(".lg-backdrop").removeClass("in"),setTimeout(function(){c.$outer&&c.$outer.remove(),a(".lg-backdrop").remove(),b||c.$el.trigger("onCloseAfter.lg"),c.$el.focus()},c.s.backdropDuration+50)},a.fn.lightGallery=function(c){return this.each(function(){if(a.data(this,"lightGallery"))try{a(this).data("lightGallery").init()}catch(a){console.error("lightGallery has not initiated properly",a)}else a.data(this,"lightGallery",new b(this,c))})},a.fn.lightGallery.modules={}}()});
4150/*! lg-autoplay - v1.2.1 - 2020-06-13
4151* http://sachinchoolur.github.io/lightGallery
4152* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4153!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";var b={autoplay:!1,pause:5e3,progressBar:!0,fourceAutoplay:!1,autoplayControls:!0,appendAutoplayControlsTo:".lg-toolbar"},c=function(c){return this.core=a(c).data("lightGallery"),this.$el=a(c),!(this.core.$items.length<2)&&(this.core.s=a.extend({},b,this.core.s),this.interval=!1,this.fromAuto=!0,this.canceledOnTouch=!1,this.fourceAutoplayTemp=this.core.s.fourceAutoplay,this.core.doCss()||(this.core.s.progressBar=!1),this.init(),this)};c.prototype.init=function(){var a=this;a.core.s.autoplayControls&&a.controls(),a.core.s.progressBar&&a.core.$outer.find(".lg").append('<div class="lg-progress-bar"><div class="lg-progress"></div></div>'),a.progress(),a.core.s.autoplay&&a.$el.one("onSlideItemLoad.lg.tm",function(){a.startlAuto()}),a.$el.on("onDragstart.lg.tm touchstart.lg.tm",function(){a.interval&&(a.cancelAuto(),a.canceledOnTouch=!0)}),a.$el.on("onDragend.lg.tm touchend.lg.tm onSlideClick.lg.tm",function(){!a.interval&&a.canceledOnTouch&&(a.startlAuto(),a.canceledOnTouch=!1)})},c.prototype.progress=function(){var a,b,c=this;c.$el.on("onBeforeSlide.lg.tm",function(){c.core.s.progressBar&&c.fromAuto&&(a=c.core.$outer.find(".lg-progress-bar"),b=c.core.$outer.find(".lg-progress"),c.interval&&(b.removeAttr("style"),a.removeClass("lg-start"),setTimeout(function(){b.css("transition","width "+(c.core.s.speed+c.core.s.pause)+"ms ease 0s"),a.addClass("lg-start")},20))),c.fromAuto||c.core.s.fourceAutoplay||c.cancelAuto(),c.fromAuto=!1})},c.prototype.controls=function(){var b=this;a(this.core.s.appendAutoplayControlsTo).append('<button type="button" aria-label="Toggle autoplay" class="lg-autoplay-button lg-icon"></button>'),b.core.$outer.find(".lg-autoplay-button").on("click.lg",function(){a(b.core.$outer).hasClass("lg-show-autoplay")?(b.cancelAuto(),b.core.s.fourceAutoplay=!1):b.interval||(b.startlAuto(),b.core.s.fourceAutoplay=b.fourceAutoplayTemp)})},c.prototype.startlAuto=function(){var a=this;a.core.$outer.find(".lg-progress").css("transition","width "+(a.core.s.speed+a.core.s.pause)+"ms ease 0s"),a.core.$outer.addClass("lg-show-autoplay"),a.core.$outer.find(".lg-progress-bar").addClass("lg-start"),a.interval=setInterval(function(){a.core.index+1<a.core.$items.length?a.core.index++:a.core.index=0,a.fromAuto=!0,a.core.slide(a.core.index,!1,!1,"next")},a.core.s.speed+a.core.s.pause)},c.prototype.cancelAuto=function(){clearInterval(this.interval),this.interval=!1,this.core.$outer.find(".lg-progress").removeAttr("style"),this.core.$outer.removeClass("lg-show-autoplay"),this.core.$outer.find(".lg-progress-bar").removeClass("lg-start")},c.prototype.destroy=function(){this.cancelAuto(),this.core.$outer.find(".lg-progress-bar").remove()},a.fn.lightGallery.modules.autoplay=c}()});
4154/*! lg-fullscreen - v1.2.1 - 2020-06-13
4155* http://sachinchoolur.github.io/lightGallery
4156* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4157!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement}var c={fullScreen:!0},d=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},c,this.core.s),this.init(),this};d.prototype.init=function(){var a="";if(this.core.s.fullScreen){if(!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled))return;a='<button type="button" aria-label="Toggle fullscreen" class="lg-fullscreen lg-icon"></button>',this.core.$outer.find(".lg-toolbar").append(a),this.fullScreen()}},d.prototype.requestFullscreen=function(){var a=document.documentElement;a.requestFullscreen?a.requestFullscreen():a.msRequestFullscreen?a.msRequestFullscreen():a.mozRequestFullScreen?a.mozRequestFullScreen():a.webkitRequestFullscreen&&a.webkitRequestFullscreen()},d.prototype.exitFullscreen=function(){document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen()},d.prototype.fullScreen=function(){var c=this;a(document).on("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg",function(){c.core.$outer.toggleClass("lg-fullscreen-on")}),this.core.$outer.find(".lg-fullscreen").on("click.lg",function(){b()?c.exitFullscreen():c.requestFullscreen()})},d.prototype.destroy=function(){b()&&this.exitFullscreen(),a(document).off("fullscreenchange.lg webkitfullscreenchange.lg mozfullscreenchange.lg MSFullscreenChange.lg")},a.fn.lightGallery.modules.fullscreen=d}()});
4158/*! lg-hash - v1.0.4 - 2017-12-20
4159* http://sachinchoolur.github.io/lightGallery
4160* Copyright (c) 2017 Sachin N; Licensed GPLv3 */
4161!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(){"use strict";var b={hash:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.core.s.hash&&(this.oldHash=window.location.hash,this.init()),this};c.prototype.init=function(){var b,c=this;c.core.$el.on("onAfterSlide.lg.tm",function(a,b,d){history.replaceState?history.replaceState(null,null,window.location.pathname+window.location.search+"#lg="+c.core.s.galleryId+"&slide="+d):window.location.hash="lg="+c.core.s.galleryId+"&slide="+d}),a(window).on("hashchange.lg.hash",function(){b=window.location.hash;var a=parseInt(b.split("&slide=")[1],10);b.indexOf("lg="+c.core.s.galleryId)>-1?c.core.slide(a,!1,!1):c.core.lGalleryOn&&c.core.destroy()})},c.prototype.destroy=function(){this.core.s.hash&&(this.oldHash&&this.oldHash.indexOf("lg="+this.core.s.galleryId)<0?history.replaceState?history.replaceState(null,null,this.oldHash):window.location.hash=this.oldHash:history.replaceState?history.replaceState(null,document.title,window.location.pathname+window.location.search):window.location.hash="",this.core.$el.off(".lg.hash"))},a.fn.lightGallery.modules.hash=c}()});
4162/*! lg-pager - v1.0.2 - 2017-01-22
4163* http://sachinchoolur.github.io/lightGallery
4164* Copyright (c) 2017 Sachin N; Licensed GPLv3 */
4165!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof exports?module.exports=b(require("jquery")):b(jQuery)}(this,function(a){!function(){"use strict";var b={pager:!1},c=function(c){return this.core=a(c).data("lightGallery"),this.$el=a(c),this.core.s=a.extend({},b,this.core.s),this.core.s.pager&&this.core.$items.length>1&&this.init(),this};c.prototype.init=function(){var b,c,d,e=this,f="";if(e.core.$outer.find(".lg").append('<div class="lg-pager-outer"></div>'),e.core.s.dynamic)for(var g=0;g<e.core.s.dynamicEl.length;g++)f+='<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="'+e.core.s.dynamicEl[g].thumb+'" /></div></span>';else e.core.$items.each(function(){f+=e.core.s.exThumbImage?'<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="'+a(this).attr(e.core.s.exThumbImage)+'" /></div></span>':'<span class="lg-pager-cont"> <span class="lg-pager"></span><div class="lg-pager-thumb-cont"><span class="lg-caret"></span> <img src="'+a(this).find("img").attr("src")+'" /></div></span>'});c=e.core.$outer.find(".lg-pager-outer"),c.html(f),b=e.core.$outer.find(".lg-pager-cont"),b.on("click.lg touchend.lg",function(){var b=a(this);
4165e.core.index=b.index(),e.core.slide(e.core.index,!1,!0,!1)}),c.on("mouseover.lg",function(){clearTimeout(d),c.addClass("lg-pager-hover")}),c.on("mouseout.lg",function(){d=setTimeout(function(){c.removeClass("lg-pager-hover")})}),e.core.$el.on("onBeforeSlide.lg.tm",function(a,c,d){b.removeClass("lg-pager-active"),b.eq(d).addClass("lg-pager-active")})},c.prototype.destroy=function(){},a.fn.lightGallery.modules.pager=c}()});
4166/*! lg-rotate - v1.2.1-beta.0 - 2020-10-05
4167* http://sachinchoolur.github.io/lightGallery
4168* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4169!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";var b={rotate:!0,rotateLeft:!0,rotateRight:!0,flipHorizontal:!0,flipVertical:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.core.s.rotate&&this.core.doCss()&&this.init(),this};c.prototype.buildTemplates=function(){var a="";this.core.s.flipVertical&&(a+='<button aria-label="Flip vertical" class="lg-flip-ver lg-icon"></button>'),this.core.s.flipHorizontal&&(a+='<button aria-label="flip horizontal" class="lg-flip-hor lg-icon"></button>'),this.core.s.rotateLeft&&(a+='<button aria-label="Rotate left" class="lg-rotate-left lg-icon"></button>'),this.core.s.rotateRight&&(a+='<button aria-label="Rotate right" class="lg-rotate-right lg-icon"></button>'),this.core.$outer.find(".lg-toolbar").append(a)},c.prototype.init=function(){var a=this;this.buildTemplates(),this.rotateValuesList={},this.core.$el.on("onAferAppendSlide.lg.tm.rotate",function(b,c){a.core.$slide.eq(c).find(".lg-img-wrap").wrap('<div class="lg-img-rotate"></div>')}),this.core.$outer.find(".lg-rotate-left").on("click.lg",this.rotateLeft.bind(this)),this.core.$outer.find(".lg-rotate-right").on("click.lg",this.rotateRight.bind(this)),this.core.$outer.find(".lg-flip-hor").on("click.lg",this.flipHorizontal.bind(this)),this.core.$outer.find(".lg-flip-ver").on("click.lg",this.flipVertical.bind(this)),this.core.$el.on("onBeforeSlide.lg.tm.rotate",function(b,c,d){a.rotateValuesList[d]||(a.rotateValuesList[d]={rotate:0,flipHorizontal:1,flipVertical:1})})},c.prototype.applyStyles=function(){this.core.$slide.eq(this.core.index).find(".lg-img-rotate").css("transform","rotate("+this.rotateValuesList[this.core.index].rotate+"deg) scale3d("+this.rotateValuesList[this.core.index].flipHorizontal+", "+this.rotateValuesList[this.core.index].flipVertical+", 1)")},c.prototype.getCurrentRotation=function(a){if(!a)return 0;var b=window.getComputedStyle(a,null),c=b.getPropertyValue("-webkit-transform")||b.getPropertyValue("-moz-transform")||b.getPropertyValue("-ms-transform")||b.getPropertyValue("-o-transform")||b.getPropertyValue("transform")||"none";if("none"!==c){var d=c.split("(")[1].split(")")[0].split(",");if(d){var e=Math.round(Math.atan2(d[1],d[0])*(180/Math.PI));return e<0?e+360:e}}return 0},c.prototype.rotateLeft=function(){this.rotateValuesList[this.core.index].rotate-=90,this.applyStyles()},c.prototype.rotateRight=function(){this.rotateValuesList[this.core.index].rotate+=90,this.applyStyles()},c.prototype.flipHorizontal=function(){var a=this.core.$slide.eq(this.core.index).find(".lg-img-rotate")[0],b=this.getCurrentRotation(a),c="flipHorizontal";90!==b&&270!==b||(c="flipVertical"),this.rotateValuesList[this.core.index][c]*=-1,this.applyStyles()},c.prototype.flipVertical=function(){var a=this.core.$slide.eq(this.core.index).find(".lg-img-rotate")[0],b=this.getCurrentRotation(a),c="flipVertical";90!==b&&270!==b||(c="flipHorizontal"),this.rotateValuesList[this.core.index][c]*=-1,this.applyStyles()},c.prototype.destroy=function(){this.core.$el.off(".lg.tm.rotate"),this.rotateValuesList={}},a.fn.lightGallery.modules.rotate=c}()});
4170/*! lg-thumbnail - v1.2.1 - 2020-06-13
4171* http://sachinchoolur.github.io/lightGallery
4172* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4173!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";var b={thumbnail:!0,animateThumb:!0,currentPagerPosition:"middle",thumbWidth:100,thumbHe
4173ight:"80px",thumbContHeight:100,thumbMargin:5,exThumbImage:!1,showThumbByDefault:!0,toogleThumb:!0,pullCaptionUp:!0,enableThumbDrag:!0,enableThumbSwipe:!0,swipeThreshold:50,loadYoutubeThumbnail:!0,youtubeThumbSize:1,loadVimeoThumbnail:!0,vimeoThumbSize:"thumbnail_small",loadDailymotionThumbnail:!0},c=function(c){return this.core=a(c).data("lightGallery"),this.core.s=a.extend({},b,this.core.s),this.$el=a(c),this.$thumbOuter=null,this.thumbOuterWidth=0,this.thumbTotalWidth=this.core.$items.length*(this.core.s.thumbWidth+this.core.s.thumbMargin),this.thumbIndex=this.core.index,this.core.s.animateThumb&&(this.core.s.thumbHeight="100%"),this.left=0,this.init(),this};c.prototype.init=function(){var a=this;this.core.s.thumbnail&&this.core.$items.length>1&&(this.core.s.showThumbByDefault&&setTimeout(function(){a.core.$outer.addClass("lg-thumb-open")},700),this.core.s.pullCaptionUp&&this.core.$outer.addClass("lg-pull-caption-up"),this.build(),this.core.s.animateThumb&&this.core.doCss()?(this.core.s.enableThumbDrag&&this.enableThumbDrag(),this.core.s.enableThumbSwipe&&this.enableThumbSwipe(),this.thumbClickable=!1):this.thumbClickable=!0,this.toogle(),this.thumbkeyPress())},c.prototype.build=function(){function b(a,b,c){var g,h=d.core.isVideo(a,c)||{},i="";h.youtube||h.vimeo||h.dailymotion?h.youtube?g=d.core.s.loadYoutubeThumbnail?"//img.youtube.com/vi/"+h.youtube[1]+"/"+d.core.s.youtubeThumbSize+".jpg":b:h.vimeo?d.core.s.loadVimeoThumbnail?(g="//i.vimeocdn.com/video/error_"+f+".jpg",i=h.vimeo[1]):g=b:h.dailymotion&&(g=d.core.s.loadDailymotionThumbnail?"//www.dailymotion.com/thumbnail/video/"+h.dailymotion[1]:b):g=b,e+='<div data-vimeo-id="'+i+'" class="lg-thumb-item" style="width:'+d.core.s.thumbWidth+"px; height: "+d.core.s.thumbHeight+"; margin-right: "+d.core.s.thumbMargin+'px"><img src="'+g+'" /></div>',i=""}var c,d=this,e="",f="",g='<div class="lg-thumb-outer"><div class="lg-thumb lg-group"></div></div>';switch(this.core.s.vimeoThumbSize){case"thumbnail_large":f="640";break;case"thumbnail_medium":f="200x150";break;case"thumbnail_small":f="100x75"}if(d.core.$outer.addClass("lg-has-thumb"),d.core.$outer.find(".lg").append(g),d.$thumbOuter=d.core.$outer.find(".lg-thumb-outer"),d.thumbOuterWidth=d.$thumbOuter.width(),d.core.s.animateThumb&&d.core.$outer.find(".lg-thumb").css({width:d.thumbTotalWidth+"px",position:"relative"}),this.core.s.animateThumb&&d.$thumbOuter.css("height",d.core.s.thumbContHeight+"px"),d.core.s.dynamic)for(var h=0;h<d.core.s.dynamicEl.length;h++)b(d.core.s.dynamicEl[h].src,d.core.s.dynamicEl[h].thumb,h);else d.core.$items.each(function(c){d.core.s.exThumbImage?b(a(this).attr("href")||a(this).attr("data-src"),a(this).attr(d.core.s.exThumbImage),c):b(a(this).attr("href")||a(this).attr("data-src"),a(this).find("img").attr("src"),c)});d.core.$outer.find(".lg-thumb").html(e),c=d.core.$outer.find(".lg-thumb-item"),c.each(function(){var b=a(this),c=b.attr("data-vimeo-id");c&&a.getJSON("//www.vimeo.com/api/v2/video/"+c+".json?callback=?",{format:"json"},function(a){b.find("img").attr("src",a[0][d.core.s.vimeoThumbSize])})}),c.eq(d.core.index).addClass("active"),d.core.$el.on("onBeforeSlide.lg.tm",function(){c.removeClass("active"),c.eq(d.core.index).addClass("active")}),c.on("click.lg touchend.lg",function(){var b=a(this);setTimeout(function(){(d.thumbClickable&&!d.core.lgBusy||!d.core.doCss())&&(d.core.index=b.index(),d.core.slide(d.core.index,!1,!0,!1))},50)}),d.core.$el.on("onBeforeSlide.lg.tm",function(){d.animateThumb(d.core.index)}),a(window).on("resize.lg.thumb orientationchange.lg.thumb",function(){setTimeout(function(){d.animateThumb(d.core.index),d.thumbOuterWidth=d.$thumbOuter.width()},200)})},c.prototype.setTranslate=function(a){this.core.$outer.find(".lg-thumb").css({transform:"translate3d(-"+a+"px, 0px, 0px)"})},c.prototype.animateThumb=function(a){var b=this.core.$outer.find(".lg-thumb");if(this.core.s.animateThumb){var c;switch(this.core.s.currentPagerPosition){case"left":c=0;break;case"middle":c=this.thumbOuterWidth/2-this.core.s.thumbWidth/2;break;case"right":c=this.thumbOuterWidth-this.core.s.thumbWidth}this.left=(this.core.s.thumbWidth+this.core.s.thumbMargin)*a-1-c,this.left>this.thumbTotalWidth-this.thumbOuterWidth&&(this.left=this.thumbTotalWidth-this.thumbOuterWidth),this.left<0&&(this.left=0),this.core.lGalleryOn?(b.hasClass("on")||this.core.$outer.find(".lg-thumb").css("transition-duration",this.core.s.speed+"ms"),this.core.doCss()||b.animate({left:-this.left+"px"},this.core.s.speed)):this.core.doCss()||b.css("left",-this.left+"px"),this.setTranslate(this.left)}},c.prototype.enableThumbDrag=function(){var b=this,c=0,d=0,e=!1,f=!1,g=0;b.$thumbOuter.addClass("lg-grab"),b.core.$outer.find(".lg-thumb").on("mousedown.lg.thumb",function(a){b.thumbTotalWidth>b.thumbOuterWidth&&(a.preventDefault(),c=a.pageX,e=!0,b.core.$outer.scrollLeft+=1,b.core.$outer.scrollLeft-=1,b.thumbClickable=!1,b.$thumbOuter.removeClass("lg-grab").addClass("lg-grabbing"))}),a(window).on("mousemove.lg.thumb",function(a){e&&(g=b.left,f=!0,d=a.pageX,b.$thumbOuter.addClass("lg-dragging"),g-=d-c,g>b.thumbTotalWidth-b.thumbOuterWidth&&(g=b.thumbTotalWidth-b.thumbOuterWidth),g<0&&(g=0),b.setTranslate(g))}),a(window).on("mouseup.lg.thumb",function(){f?(f=!1,b.$thumbOuter.removeClass("lg-dragging"),b.left=g,Math.abs(d-c)<b.core.s.swipeThreshold&&(b.thumbClickable=!0)):b.thumbClickable=!0,e&&(e=!1,b.$thumbOuter.removeClass("lg-grabbing").addClass("lg-grab"))})},c.prototype.enableThumbSwipe=function(){var a=this,b=0,c=0,d=!1,e=0;a.core.$outer.find(".lg-thumb").on("touchstart.lg",function(c){a.thumbTotalWidth>a.thumbOuterWidth&&(c.preventDefault(),b=c.originalEvent.targetTouches[0].pageX,a.thumbClickable=!1)}),a.core.$outer.find(".lg-thumb").on("touchmove.lg",function(f){a.thumbTotalWidth>a.thumbOuterWidth&&(f.preventDefault(),c=f.originalEvent.targetTouches[0].pageX,d=!0,a.$thumbOuter.addClass("lg-dragging"),e=a.left,e-=c-b,e>a.thumbTotalWidth-a.thumbOuterWidth&&(e=a.thumbTotalWidth-a.thumbOuterWidth),e<0&&(e=0),a.setTranslate(e))}),a.core.$outer.find(".lg-thumb").on("touchend.lg",function(){a.thumbTotalWidth>a.thumbOuterWidth&&d?(d=!1,a.$thumbOuter.removeClass("lg-dragging"),Math.abs(c-b)<a.core.s.swipeThreshold&&(a.thumbClickable=!0),a.left=e):a.thumbClickable=!0})},c.prototype.toogle=function(){var a=this;a.core.s.toogleThumb&&(a.core.$outer.addClass("lg-can-toggle"),a.$thumbOuter.append('<button type="button" aria-label="Toggle thumbnails" class="lg-toogle-thumb lg-icon"></button>'),a.core.$outer.find(".lg-toogle-thumb").on("click.lg",function(){a.core.$outer.toggleClass("lg-thumb-open")}))},c.prototype.thumbkeyPress=function(){var b=this;a(window).on("keydown.lg.thumb",function(a){38===a.keyCode?(a.preventDefault(),b.core.$outer.addClass("lg-thumb-open")):40===a.keyCode&&(a.preventDefault(),b.core.$outer.removeClass("lg-thumb-open"))})},c.prototype.destroy=function(){this.core.s.thumbnail&&this.core.$items.length>1&&(a(window).off("resize.lg.thumb orientationchange.lg.thumb keydown.lg.thumb"),this.$thumbOuter.remove(),this.core.$outer.removeClass("lg-has-thumb"))},a.fn.lightGallery.modules.Thumbnail=c}()});
4174/*! lg-video - v1.4.0 - November-07-2020
4175* http://sachinchoolur.github.io/lightGallery
4176* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4177!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(a,b,c,d){var e=this;if(e.core.$slide.eq(b).find(".lg-video").append(e.loadVideo(c,"lg-object",!0,b,d)),d)if(e.core.s.videojs)try{videojs(e.core.$slide.eq(b).find(".lg-html5").get(0),e.core.s.videojsOptions,function(){!e.videoLoaded&&e.core.s.autoplayFirstVideo&&this.play()})}catch(a){console.error("lightGallery:- Make sure you have included videojs")}else!e.videoLoaded&&e.core.s.autoplayFirstVideo&&e.core.$slide.eq(b).find(".lg-html5").get(0).play()}function c(a,b){var c=this.core.$slide.eq(b).find(".lg-video-cont");c.hasClass("lg-has-iframe")||(c.css("max-width",this.core.s.videoMaxWidth),this.videoLoaded=!0)}function d(b,c,d){var e=this,f=e.core.$slide.eq(c),g=f.find(".lg-youtube").get(0),h=f.find(".lg-vimeo").get(0),i=f.find(".lg-dailymotion").get(0),j=f.find(".lg-vk").get(0),k=f.find(".lg-html5").get(0);if(g)g.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*");else if(h)try{new Vimeo.Player(h).pause().catch(function(a){console.error("Unable to pause the video:",a.name)})}catch(a){console.warn("lightGallery:- Make sure you have included https://github.com/vimeo/player.js")}else if(i)i.contentWindow.postMessage("pause","*");else if(k)if(e.core.s.videojs)try{videojs(k).pause()}catch(a){console.error("lightGallery:- Make sure you have included videojs")}else k.pause();j&&a(j).attr("src",a(j).attr("src").replace("&autoplay","&noplay"));var l;l=e.core.s.dynamic?e.core.s.dynamicEl[d].src:e.core.$items.eq(d).attr("href")||e.core.$items.eq(d).attr("data-src");var m=e.core.isVideo(l,d)||{};(m.youtube||m.vimeo||m.dailymotion||m.vk)&&e.core.$outer.addClass("lg-hide-download")}var e={videoMaxWidth:"855px",autoplayFirstVideo:!0,youtubePlayerParams:!1,vimeoPlayerParams:!1,dailymotionPlayerParams:!1,vkPlayerParams:!1,videojs:!1,videojsOptions:{}},f=function(b){return this.core=a(b).data("lightGallery"),this.$el=a(b),this.core.s=a.extend({},e,this.core.s),this.videoLoaded=!1,this.init(),this};f.prototype.init=function(){var e=this;e.core.$el.on("hasVideo.lg.tm",b.bind(this)),e.core.$el.on("onAferAppendSlide.lg.tm",c.bind(this)),e.core.doCss()&&e.core.$items.length>1&&(e.core.s.enableSwipe||e.core.s.enableDrag)?e.core.$el.on("onSlideClick.lg.tm",function(){var a=e.core.$slide.eq(e.core.index);e.loadVideoOnclick(a)}):e.core.$slide.on("click.lg",function(){e.loadVideoOnclick(a(this))}),e.core.$el.on("onBeforeSlide.lg.tm",d.bind(this)),e.core.$el.on("onAfterSlide.lg.tm",function(a,b){e.core.$slide.eq(b).removeClass("lg-video-playing")}),e.core.s.autoplayFirstVideo&&e.core.$el.on("onAferAppendSlide.lg.tm",function(a,b){if(!e.core.lGalleryOn){var c=e.core.$slide.eq(b);setTimeout(function(){e.loadVideoOnclick(c)},100)}})},f.prototype.loadVideo=function(b,c,d,e,f){var g,h=this,i="",j=1,k="",l=this.core.isVideo(b,e)||{};if(g=h.core.s.dynamic?h.core.s.dynamicEl[h.core.index].title:h.core.$items.eq(h.core.index).attr("title")||h.core.$items.eq(h.core.index).find("img").first().attr("alt"),g=g?'title="'+g+'"':"",d&&(j=this.videoLoaded?0:this.core.s.autoplayFirstVideo?1:0),l.youtube)k="?wmode=
4177opaque&autoplay="+j+"&enablejsapi=1",this.core.s.youtubePlayerParams&&(k=k+"&"+a.param(this.core.s.youtubePlayerParams)),i='<iframe allow="autoplay" class="lg-video-object lg-youtube '+c+'" '+g+' width="560" height="315" src="//www.youtube.com/embed/'+l.youtube[1]+k+'" frameborder="0" allowfullscreen></iframe>';else if(l.vimeo)k="?autoplay="+j,this.core.s.vimeoPlayerParams&&(k=k+"&"+a.param(this.core.s.vimeoPlayerParams)),i='<iframe allow="autoplay" class="lg-video-object lg-vimeo '+c+'" '+g+' width="560" height="315"  src="//player.vimeo.com/video/'+l.vimeo[1]+k+'" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>';else if(l.dailymotion)k="?wmode=opaque&autoplay="+j+"&api=postMessage",this.core.s.dailymotionPlayerParams&&(k=k+"&"+a.param(this.core.s.dailymotionPlayerParams)),i='<iframe allow="autoplay" class="lg-video-object lg-dailymotion '+c+'" '+g+' width="560" height="315" src="//www.dailymotion.com/embed/video/'+l.dailymotion[1]+k+'" frameborder="0" allowfullscreen></iframe>';else if(l.html5){var m=f.substring(0,1);"."!==m&&"#"!==m||(f=a(f).html()),i=f}else l.vk&&(k="&autoplay="+j,this.core.s.vkPlayerParams&&(k=k+"&"+a.param(this.core.s.vkPlayerParams)),i='<iframe allow="autoplay" class="lg-video-object lg-vk '+c+'" '+g+' width="560" height="315" src="//vk.com/video_ext.php?'+l.vk[1]+k+'" frameborder="0" allowfullscreen></iframe>');return i},f.prototype.loadVideoOnclick=function(a){var b=this;if(a.find(".lg-object").hasClass("lg-has-poster")&&a.find(".lg-object").is(":visible"))if(a.hasClass("lg-has-video")){var c=a.find(".lg-youtube").get(0),d=a.find(".lg-vimeo").get(0),e=a.find(".lg-dailymotion").get(0),f=a.find(".lg-html5").get(0);if(c)c.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*");else if(d)try{new Vimeo.Player(d).play().catch(function(a){console.error("error playing the video:",a.name)})}catch(a){console.warn("lightGallery:- Make sure you have included https://github.com/vimeo/player.js")}else if(e)e.contentWindow.postMessage("play","*");else if(f)if(b.core.s.videojs)try{videojs(f).play()}catch(a){console.error("lightGallery:- Make sure you have included videojs")}else f.play();a.addClass("lg-video-playing")}else{a.addClass("lg-video-playing lg-has-video");var g,h,i=function(c,d){if(a.find(".lg-video").append(b.loadVideo(c,"",!1,b.core.index,d)),d)if(b.core.s.videojs)try{videojs(b.core.$slide.eq(b.core.index).find(".lg-html5").get(0),b.core.s.videojsOptions,function(){this.play()})}catch(a){console.error("lightGallery:- Make sure you have included videojs")}else b.core.$slide.eq(b.core.index).find(".lg-html5").get(0).play()};b.core.s.dynamic?(g=b.core.s.dynamicEl[b.core.index].src,h=b.core.s.dynamicEl[b.core.index].html,i(g,h)):(g=b.core.$items.eq(b.core.index).attr("href")||b.core.$items.eq(b.core.index).attr("data-src"),h=b.core.$items.eq(b.core.index).attr("data-html"),i(g,h));var j=a.find(".lg-object");a.find(".lg-video").append(j),a.find(".lg-video-object").hasClass("lg-html5")||(a.removeClass("lg-complete"),a.find(".lg-video-object").on("load.lg error.lg",function(){a.addClass("lg-complete")}))}},f.prototype.destroy=function(){this.videoLoaded=!1},a.fn.lightGallery.modules.video=f}()});
4178/*! lg-zoom - v1.3.0-beta.0 - October-05-2020
4179* http://sachinchoolur.github.io/lightGallery
4180* Copyright (c) 2020 Sachin N; Licensed GPLv3 */
4181!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";var b=function(){var a=!1,b=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);return b&&parseInt(b[2],10)<54&&(a=!0),a},c={scale:1,zoom:!0,actualSize:!0,enableZoomAfter:300,useLeftForZoom:b()},d=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},c,this.core.s),this.core.s.zoom&&this.core.doCss()&&(this.init(),this.zoomabletimeout=!1,this.pageX=a(window).width()/2,this.pageY=a(window).height()/2+a(window).scrollTop()),this};d.prototype.init=function(){var b=this,c='<button type="button" aria-label="Zoom in" id="lg-zoom-in" class="lg-icon"></button><button type="button" aria-label="Zoom out" id="lg-zoom-out" class="lg-icon"></button>';b.core.s.actualSize&&(c+='<button type="button" aria-label="Actual size" id="lg-actual-size" class="lg-icon"></button>'),b.core.s.useLeftForZoom?b.core.$outer.addClass("lg-use-left-for-zoom"):b.core.$outer.addClass("lg-use-transition-for-zoom"),this.core.$outer.find(".lg-toolbar").append(c),b.core.$el.on("onSlideItemLoad.lg.tm.zoom",function(c,d,e){var f=b.core.s.enableZoomAfter+e;a("body").hasClass("lg-from-hash")&&e?f=0:a("body").removeClass("lg-from-hash"),b.zoomabletimeout=setTimeout(function(){b.core.$slide.eq(d).addClass("lg-zoomable")},f+30)});var d=1,e=function(c){var d,e,f=b.core.$outer.find(".lg-current .lg-image"),g=(a(window).width()-f.prop("offsetWidth"))/2,h=(a(window).height()-f.prop("offsetHeight"))/2+a(window).scrollTop();d=b.pageX-g,e=b.pageY-h;var i=(c-1)*d,j=(c-1)*e;f.css("transform","scale3d("+c+", "+c+", 1)").attr("data-scale",c),b.core.s.useLeftForZoom?f.parent().css({left:-i+"px",top:-j+"px"}).attr("data-x",i).attr("data-y",j):f.parent().css("transform","translate3d(-"+i+"px, -"+j+"px, 0)").attr("data-x",i).attr("data-y",j)},f=function(){d>1?b.core.$outer.addClass("lg-zoomed"):b.resetZoom(),d<1&&(d=1),e(d)},g=function(c,e,g,h){var i,j=e.prop("offsetWidth");
4181i=b.core.s.dynamic?b.core.s.dynamicEl[g].width||e[0].naturalWidth||j:b.core.$items.eq(g).attr("data-width")||e[0].naturalWidth||j;var k;b.core.$outer.hasClass("lg-zoomed")?d=1:i>j&&(k=i/j,d=k||2),h?(b.pageX=a(window).width()/2,b.pageY=a(window).height()/2+a(window).scrollTop()):(b.pageX=c.pageX||c.originalEvent.targetTouches[0].pageX,b.pageY=c.pageY||c.originalEvent.targetTouches[0].pageY),f(),setTimeout(function(){b.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")},10)},h=!1;b.core.$el.on("onAferAppendSlide.lg.tm.zoom",function(a,c){var d=b.core.$slide.eq(c).find(".lg-image");d.on("dblclick",function(a){g(a,d,c)}),d.on("touchstart",function(a){h?(clearTimeout(h),h=null,g(a,d,c)):h=setTimeout(function(){h=null},300),a.preventDefault()})}),a(window).on("resize.lg.zoom scroll.lg.zoom orientationchange.lg.zoom",function(){b.pageX=a(window).width()/2,b.pageY=a(window).height()/2+a(window).scrollTop(),e(d)}),a("#lg-zoom-out").on("click.lg",function(){b.core.$outer.find(".lg-current .lg-image").length&&(d-=b.core.s.scale,f())}),a("#lg-zoom-in").on("click.lg",function(){b.core.$outer.find(".lg-current .lg-image").length&&(d+=b.core.s.scale,f())}),a("#lg-actual-size").on("click.lg",function(a){g(a,b.core.$slide.eq(b.core.index).find(".lg-image"),b.core.index,!0)}),b.core.$el.on("onBeforeSlide.lg.tm",function(){d=1,b.resetZoom()}),b.zoomDrag(),b.zoomSwipe()},d.prototype.getCurrentTransform=function(a){if(!a)return 0;var b=window.getComputedStyle(a,null),c=b.getPropertyValue("-webkit-transform")||b.getPropertyValue("-moz-transform")||b.getPropertyValue("-ms-transform")||b.getPropertyValue("-o-transform")||b.getPropertyValue("transform")||"none";return"none"!==c?c.split("(")[1].split(")")[0].split(","):0},d.prototype.getCurrentRotation=function(a){if(!a)return 0;var b=this.getCurrentTransform(a);return b?Math.round(Math.atan2(b[1],b[0])*(180/Math.PI)):0},d.prototype.getModifier=function(a,b,c){var d=a;a=Math.abs(a);var e=this.getCurrentTransform(c);if(!e)return 1;var f=1;if("X"===b){var g=Math.sign(parseFloat(e[0]));0===a||180===a?f=1:90===a&&(f=-90===d&&1===g||90===d&&-1===g?-1:1),f*=g}else{var h=Math.sign(parseFloat(e[3]));if(0===a||180===a)f=1;else if(90===a){var i=parseFloat(e[1]),j=parseFloat(e[2]);f=Math.sign(i*j*d*h)}f*=h}return f},d.prototype.getImageSize=function(a,b,c){var d={y:"offsetHeight",x:"offsetWidth"};return 90===b&&(c="x"===c?"y":"x"),a.prop(d[c])},d.prototype.getDragCords=function(a,b){return 90===b?{x:a.pageY,y:a.pageX}:{x:a.pageX,y:a.pageY}},d.prototype.getSwipeCords=function(a,b){var c=a.originalEvent.targetTouches[0].pageX,d=a.originalEvent.targetTouches[0].pageY;return 90===b?{x:d,y:c}:{x:c,y:d}},d.prototype.getPossibleDragCords=function(a,b){var c=(this.core.$outer.find(".lg").height()-this.getImageSize(a,b,"y"))/2,d=Math.abs(this.getImageSize(a,b,"y")*Math.abs(a.attr("data-scale"))-this.core.$outer.find(".lg").height()+c),e=(this.core.$outer.find(".lg").width()-this.getImageSize(a,b,"x"))/2,f=Math.abs(this.getImageSize(a,b,"x")*Math.abs(a.attr("data-scale"))-this.core.$outer.find(".lg").width()+e);return 90===b?{minY:e,maxY:f,minX:c,maxX:d}:{minY:c,maxY:d,minX:e,maxX:f}},d.prototype.getDragAllowedAxises=function(a,b){var c=this.getImageSize(a,b,"y")*a.attr("data-scale")>this.core.$outer.find(".lg").height(),d=this.getImageSize(a,b,"x")*a.attr("data-scale")>this.core.$outer.find(".lg").width();return 90===b?{allowX:c,allowY:d}:{allowX:d,allowY:c}},d.prototype.resetZoom=function(){this.core.$outer.removeClass("lg-zoomed"),this.core.$slide.find(".lg-img-wrap").removeAttr("style data-x data-y"),this.core.$slide.find(".lg-image").removeAttr("style data-scale"),this.pageX=a(window).width()/2,this.pageY=a(window).height()/2+a(window).scrollTop()},d.prototype.zoomSwipe=function(){var a,b=this,c={},d={},e=!1,f=!1,g=!1,h=0;b.core.$slide.on("touchstart.lg",function(d){if(b.core.$outer.hasClass("lg-zoomed")){var e=b.core.$slide.eq(b.core.index).find(".lg-object");a=b.core.$slide.eq(b.core.index).find(".lg-img-rotate")[0],h=b.getCurrentRotation(a);var i=b.getDragAllowedAxises(e,Math.abs(h));g=i.allowY,f=i.allowX,(f||g)&&(d.preventDefault(),c=b.getSwipeCords(d,Math.abs(h)))}}),b.core.$slide.on("touchmove.lg",function(i){if(b.core.$outer.hasClass("lg-zoomed")){var j,k,l=b.core.$slide.eq(b.core.index).find(".lg-img-wrap");i.preventDefault(),e=!0,d=b.getSwipeCords(i,Math.abs(h)),b.core.$outer.addClass("lg-zoom-dragging"),k=g?-Math.abs(l.attr("data-y"))+(d.y-c.y)*b.getModifier(h,"Y",a):-Math.abs(l.attr("data-y")),j=f?-Math.abs(l.attr("data-x"))+(d.x-c.x)*b.getModifier(h,"X",a):-Math.abs(l.attr("data-x")),(Math.abs(d.x-c.x)>15||Math.abs(d.y-c.y)>15)&&(b.core.s.useLeftForZoom?l.css({left:j+"px",top:k+"px"}):l.css("transform","translate3d("+j+"px, "+k+"px, 0)"))}}),b.core.$slide.on("touchend.lg",function(){b.core.$outer.hasClass("lg-zoomed")&&e&&(e=!1,b.core.$outer.removeClass("lg-zoom-dragging"),b.touchendZoom(c,d,f,g,h))})},d.prototype.zoomDrag=function(){var b,c=this,d={},e={},f=!1,g=!1,h=!1,i=!1,j=0;c.core.$slide.on("mousedown.lg.zoom",function(e){b=c.core.$slide.eq(c.core.index).find(".lg-img-rotate")[0],j=c.getCurrentRotation(b);var g=c.core.$slide.eq(c.core.index).find(".lg-object"),k=c.getDragAllowedAxises(g,Math.abs(j));i=k.allowY,h=k.allowX,c.core.$outer.hasClass("lg-zoomed")&&a(e.target).hasClass("lg-object")&&(h||i)&&(e.preventDefault(),d=c.getDragCords(e,Math.abs(j)),f=!0,c.core.$outer.scrollLeft+=1,c.core.$outer.scrollLeft-=1,c.core.$outer.removeClass("lg-grab").addClass("lg-grabbing"))}
4181),a(window).on("mousemove.lg.zoom",function(a){if(f){var k,l,m=c.core.$slide.eq(c.core.index).find(".lg-img-wrap");g=!0,e=c.getDragCords(a,Math.abs(j)),c.core.$outer.addClass("lg-zoom-dragging"),l=i?-Math.abs(m.attr("data-y"))+(e.y-d.y)*c.getModifier(j,"Y",b):-Math.abs(m.attr("data-y")),k=h?-Math.abs(m.attr("data-x"))+(e.x-d.x)*c.getModifier(j,"X",b):-Math.abs(m.attr("data-x")),c.core.s.useLeftForZoom?m.css({left:k+"px",top:l+"px"}):m.css("transform","translate3d("+k+"px, "+l+"px, 0)")}}),a(window).on("mouseup.lg.zoom",function(a){f&&(f=!1,c.core.$outer.removeClass("lg-zoom-dragging"),!g||d.x===e.x&&d.y===e.y||(e=c.getDragCords(a,Math.abs(j)),c.touchendZoom(d,e,h,i,j)),g=!1),c.core.$outer.removeClass("lg-grabbing").addClass("lg-grab")})},d.prototype.touchendZoom=function(a,b,c,d,e){var f=this,g=f.core.$slide.eq(f.core.index).find(".lg-img-wrap"),h=f.core.$slide.eq(f.core.index).find(".lg-object"),i=f.core.$slide.eq(f.core.index).find(".lg-img-rotate")[0],j=-Math.abs(g.attr("data-x"))+(b.x-a.x)*f.getModifier(e,"X",i),k=-Math.abs(g.attr("data-y"))+(b.y-a.y)*f.getModifier(e,"Y",i),l=f.getPossibleDragCords(h,Math.abs(e));(Math.abs(b.x-a.x)>15||Math.abs(b.y-a.y)>15)&&(d&&(k<=-l.maxY?k=-l.maxY:k>=-l.minY&&(k=-l.minY)),c&&(j<=-l.maxX?j=-l.maxX:j>=-l.minX&&(j=-l.minX)),d?g.attr("data-y",Math.abs(k)):k=-Math.abs(g.attr("data-y")),c?g.attr("data-x",Math.abs(j)):j=-Math.abs(g.attr("data-x")),f.core.s.useLeftForZoom?g.css({left:j+"px",top:k+"px"}):g.css("transform","translate3d("+j+"px, "+k+"px, 0)"))},d.prototype.destroy=function(){var b=this;b.core.$el.off(".lg.zoom"),a(window).off(".lg.zoom"),b.core.$slide.off(".lg.zoom"),b.core.$el.off(".lg.tm.zoom"),b.resetZoom(),clearTimeout(b.zoomabletimeout),b.zoomabletimeout=!1},a.fn.lightGallery.modules.zoom=d}()});
4182/*! lg-share - v1.2.0 - 2017-11-10
4183* http://sachinchoolur.github.io/lightGallery
4184* Copyright (c) 2017 Sachin N; Licensed GPLv3 */
4185!function(a,b){"function"==typeof define&&define.amd?define(["jquery"],function(a){return b(a)}):"object"==typeof module&&module.exports?module.exports=b(require("jquery")):b(a.jQuery)}(this,function(a){!function(){"use strict";function b(b,c){var d=a("<li />"),e=a("<a />").attr({id:"lg-share-"+b.toLowerCase(),target:"_blank"}),f=a("<span />").attr("class","lg-icon"),g=a("<span />").attr("class","lg-dropdown-text").text(c);return e.append([f,g]).appendTo(d),d}function c(a,b){return a.replace?a.replace(/\{\s*([^|}]+?)\s*(?:\|([^}]*))?\s*\}/g,function(a,c){return void 0===b[c]?a:b[c]}):a}function d(){var a=navigator.userAgent||navigator.vendor||window.opera;return/windows phone/i.test(a)||/android/i.test(a)||/iPad|iPhone|iPod/.test(a)&&!window.MSStream}var e={share:!0,facebook:!0,facebookDropdownText:"Facebook",twitter:!0,twitterDropdownText:"Twitter",googlePlus:!0,googlePlusDropdownText:"GooglePlus",pinterest:!0,pinterestDropdownText:"Pinterest",whatsapp:!0,whatsappDropdownText:"WhatsApp",linkedin:!0,linkedinDropdownText:"Linkedin"},f=[{name:"facebook",url:"https://www.facebook.com/sharer/sharer.php?u={url}",mobileOnly:!1},{name:"twitter",url:"https://twitter.com/intent/tweet?text={text}&url={url}",mobileOnly:!1},{name:"googlePlus",url:"https://plus.google.com/share?url={url}",mobileOnly:!1},{name:"pinterest",url:"http://www.pinterest.com/pin/create/button/?url={url}&media={media}&description={text}",mobileOnly:!1},{name:"linkedin",url:"https://www.linkedin.com/shareArticle?mini=true&url={url}",mobileOnly:!1},{name:"whatsapp",url:"whatsapp://send?text={text} {url}",mobileOnly:!0}],g=function(b){return this.core=a(b).data("lightGallery"),this.core.s=a.extend({},e,this.core.s),this.core.s.share&&this.init(),this};g.prototype.init=function(){var c=this,e=a("<span />
4185").attr({class:"lg-icon",id:"lg-share"}),g=a("<ul />").attr({class:"lg-dropdown",style:"position: absolute;"}),h=f.filter(function(a){return c.core.s.hasOwnProperty(a.name)&&c.core.s[a.name]&&(d()||!a.mobileOnly)});h.forEach(function(a){g.append(b(a.name,c.core.s[a.name+"DropdownText"]))}),g.appendTo(e),this.core.$outer.find(".lg-toolbar").append(e),this.core.$outer.find(".lg").append('<div id="lg-dropdown-overlay"></div>'),a("#lg-share").on("click.lg",function(){c.core.$outer.toggleClass("lg-dropdown-active")}),a("#lg-dropdown-overlay").on("click.lg",function(){c.core.$outer.removeClass("lg-dropdown-active")}),c.core.$el.on("onAfterSlide.lg.tm",function(a,b,d){setTimeout(function(){h.forEach(function(a){c.addNetworkShareUrl(d,a.name,a.url)})},100)})},g.prototype.getShareProps=function(a,b){var c="";if(this.core.s.dynamic)c=this.core.s.dynamicEl[a][b];else{var d=this.core.$items.eq(a).attr("href"),e=this.core.$items.eq(a).data(b);c="src"===b?d||e:e}return c},g.prototype.addNetworkShareUrl=function(b,d,e){var f=this,g=d.toLowerCase(),h=c(e,{url:encodeURIComponent(f.getShareProps(b,g+"ShareUrl")||window.location.href),text:f.getShareProps(b,g+"Text")||"",media:encodeURIComponent(f.getShareProps(b,"src"))});a("#lg-share-"+g).attr("href",h)},g.prototype.destroy=function(){},a.fn.lightGallery.modules.share=g}()});
4186!function(){function e(e){console.log("$f.fireEvent",[].slice.call(e))}function t(e){if(!e||"object"!=typeof e)return e;var n=new e.constructor;for(var r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function n(e,t){if(e){var n,r=0,i=e.length;if(void 0===i){for(n in e)if(t.call(e[n],n,e[n])===!1)break}else for(var o=e[0];i>r&&t.call(o,r,o)!==!1;o=e[++r]);return e}}function r(e){return document.getElementById(e)}function i(e,t,r){return"object"!=typeof t?e:(e&&t&&n(t,function(t,n){r&&"function"==typeof n||(e[t]=n)}),e)}function o(e){var t=e.indexOf(".");if(-1!=t){var r=e.slice(0,t)||"*",i=e.slice(t+1,e.length),o=[];return n(document.getElementsByTagName(r),function(){this.className&&-1!=this.className.indexOf(i)&&o.push(this)}),o}}function a(e){return e=e||window.event,e.preventDefault?(e.stopPropagation(),e.preventDefault()):(e.returnValue=!1,e.cancelBubble=!0),!1}function l(e,t,n){e[t]=e[t]||[],e[t].push(n)}function u(){return"_"+(""+Math.random()).slice(2,10)}function s(o,s,f){function g(){function e(e){var t=S.hasiPadSupport&&S.hasiPadSupport();return!/iPad|iPhone|iPod/i.test(navigator.userAgent)||/.flv$/i.test(C[0].url)||t?(S.isLoaded()||S._fireEvent("onBeforeClick")===!1||S.load(),a(e)):!0}function t(){""!==h.replace(/\s/g,"")?o.addEventListener?o.addEventListener("click",e,!1):o.attachEvent&&o.attachEvent("onclick",e):(o.addEventListener&&o.addEventListener("click",a,!1),S.load())}$f(o)?($f(o).getParent().innerHTML="",w=$f(o).getIndex(),p[w]=S):(p.push(S),w=p.length-1),E=parseInt(o.style.height,10)||o.clientHeight,y=o.id||"fp"+u(),m=s.id||y+"_api",s.id=m,f.playerId=y,"string"==typeof f&&(f={clip:{url:f}}),"string"==typeof f.clip&&(f.clip={url:f.clip}),f.clip=f.clip||{},o.getAttribute("href",2)&&!f.clip.url&&(f.clip.url=o.getAttribute("href",2)),v=new c(f.clip,-1,S),f.playlist=f.playlist||[f.clip];var r=0;n(f.playlist,function(){var e=this;"object"==typeof e&&e.length&&(e={url:""+e}),n(f.clip,function(t,n){void 0!==n&&void 0===e[t]&&"function"!=typeof n&&(e[t]=n)}),f.playlist[r]=e,e=new c(e,r,S),C.push(e),r++}),n(f,function(e,t){"function"==typeof t&&(v[e]?v[e](t):l(x,e,t),delete f[e])}),n(f.plugins,function(e,t){t&&(P[e]=new d(e,t,S))}),f.plugins&&void 0!==f.plugins.controls||(P.controls=new d("controls",null,S)),P.canvas=new d("canvas",null,S),h=o.innerHTML,setTimeout(t,0)}var h,v,y,m,w,b,_,E,S=this,L=null,k=!1,C=[],P={},x={};if(i(S,{id:function(){return y},isLoaded:function(){return null!==L&&void 0!==L.fp_play&&!k},getParent:function(){return o},hide:function(e){return e&&(o.style.height="0px"),S.isLoaded()&&(L.style.height="0px"),S},show:function(){return o.style.height=E+"px",S.isLoaded()&&(L.style.height=_+"px"),S},isHidden:function(){return S.isLoaded()&&0===parseInt(L.style.height,10)},load:function(e){if(!S.isLoaded()&&S._fireEvent("onBeforeLoad")!==!1){var t=function(){h=o.innerHTML,h&&!flashembed.isSupported(s.version)&&(o.innerHTML=""),e&&(e.cached=!0,l(x,"onLoad",e)),flashembed(o,s,{config:f})},r=0;n(p,function(){this.unload(function(e){++r==p.length&&t()})})}return S},unload:function(e){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent))return e&&e(!1),S;if(""!==h.replace(/\s/g,"")){if(S._fireEvent("onBeforeUnload")===!1)return e&&e(!1),S;k=!0;try{L&&(L.fp_close(),S._fireEvent("onUnload"))}catch(t){}var n=function(){L=null,o.innerHTML=h,k=!1,e&&e(!0)};setTimeout(n,50)}else e&&e(!1);return S},getClip:function(e){return void 0===e&&(e=b),C[e]},getCommonClip:function(){return v},getPlaylist:function(){return C},getPlugin:function(e){var t=P[e];if(!t&&S.isLoaded()){var n=S._api().fp_getPlugin(e);n&&(t=new d(e,n,S),P[e]=t)}return t},getScreen:function(){return S.getPlugin("screen")}
4186,getControls:function(){return S.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return S.getPlugin("logo")._fireEvent("onUpdate")}catch(e){}},getPlay:function(){return S.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(e){return e?t(f):f},getFlashParams:function(){return s},loadPlugin:function(e,t,n,r){"function"==typeof n&&(r=n,n={});var i=r?u():"_";S._api().fp_loadPlugin(e,t,n,i);var o={};o[i]=r;var a=new d(e,null,S,o);return P[e]=a,a},getState:function(){return S.isLoaded()?L.fp_getState():-1},play:function(e,t){var n=function(){void 0!==e?S._api().fp_play(e,t):S._api().fp_play()};return S.isLoaded()?n():k?setTimeout(function(){S.play(e,t)},50):S.load(function(){n()}),S},getVersion:function(){var e="flowplayer.js 3.2.6";if(S.isLoaded()){var t=L.fp_getVersion();return t.push(e),t}return e},_api:function(){if(!S.isLoaded())throw"Flowplayer "+S.id()+" not loaded when calling an API method";return L},setClip:function(e){return S.setPlaylist([e]),S},getIndex:function(){return w},_swfHeight:function(){return L.clientHeight}}),n("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut".split(","),function(){var e="on"+this;if(-1!=e.indexOf("*")){e=e.slice(0,e.length-1);var t="onBefore"+e.slice(2);S[t]=function(e){return l(x,t,e),S}}S[e]=function(t){return l(x,e,t),S}}),n("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffer
4186ing,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled".split(","),function(){var e=this;S[e]=function(t,n){if(!S.isLoaded())return S;var r=null;return r=void 0!==t&&void 0!==n?L["fp_"+e](t,n):void 0===t?L["fp_"+e]():L["fp_"+e](t),"undefined"===r||void 0===r?S:r}}),S._fireEvent=function(t){"string"==typeof t&&(t=[t]);var i=t[0],o=t[1],a=t[2],l=t[3],u=0;if(f.debug&&e(t),S.isLoaded()||"onLoad"!=i||"player"!=o||(L=L||r(m),_=S._swfHeight(),n(C,function(){this._fireEvent("onLoad")}),n(P,function(e,t){t._fireEvent("onUpdate")}),v._fireEvent("onLoad")),"onLoad"!=i||"player"==o){if("onError"==i&&("string"==typeof o||"number"==typeof o&&"number"==typeof a)&&(o=a,a=l),"onContextMenu"==i)return void n(f.contextMenu[o],function(e,t){t.call(S)});if("onPluginEvent"!=i&&"onBeforePluginEvent"!=i){if("onPlaylistReplace"==i){C=[];var s=0;n(o,function(){C.push(new c(this,s++,S))})}if("onClipAdd"==i){if(o.isInStream)return;for(o=new c(o,a,S),C.splice(a,0,o),u=a+1;u<C.length;u++)C[u].index++}var d=!0;if("number"==typeof o&&o<C.length){b=o;var p=C[o];p&&(d=p._fireEvent(i,a,l)),p&&d===!1||(d=v._fireEvent(i,a,l,p))}return n(x[i],function(){return d=this.call(S,o,a),this.cached&&x[i].splice(u,1),d===!1?!1:void u++}),d}var g=o.name||o,h=P[g];if(h)return h._fireEvent("onUpdate",o),h._fireEvent(a,t.slice(3))}},"string"==typeof o){var T=r(o);if(!T)throw"Flowplayer cannot access element: "+o;o=T,g()}else g()}function f(e){this.length=e.length,this.each=function(t){n(e,t)},this.size=function(){return e.length}}var c=function(e,t,r){var o=this,a={},s={};if(o.index=t,"string"==typeof e&&(e={url:e}),i(this,e,!0),n("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop".split(","),function(){var e="on"+this;if(-1!=e.indexOf("*")){e=e.slice(0,e.length-1);var n="onBefore"+e.slice(2);o[n]=function(e){return l(s,n,e),o}}o[e]=function(t){return l(s,e,t),o},-1==t&&(o[n]&&(r[n]=o[n]),o[e]&&(r[e]=o[e]))}),i(this,{onCuepoint:function(e,n){if(1==arguments.length)return a.embedded=[null,e],o;"number"==typeof e&&(e=[e]);var i=u();return a[i]=[e,n],r.isLoaded()&&r._api().fp_addCuepoints(e,t,i),o},update:function(e){i(o,e),r.isLoaded()&&r._api().fp_updateClip(e,t);var n=r.getConfig(),a=-1==t?n.clip:n.playlist[t];i(a,e,!0)},_fireEvent:function(e,l,u,f){if("onLoad"==e)return n(a,function(e,n){
4186n[0]&&r._api().fp_addCuepoints(n[0],t,e)}),!1;if(f=f||o,"onCuepoint"==e){var c=a[l];if(c)return c[1].call(r,f,u)}l&&-1!="onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(e)&&(i(f,l),l.metaData&&(f.duration?f.fullDuration=l.metaData.duration:f.duration=l.metaData.duration));var d=!0;return n(s[e],function(){d=this.call(r,f,l,u)}),d}}),e.onCuepoint){var f=e.onCuepoint;o.onCuepoint.apply(o,"function"==typeof f?[f]:f),delete e.onCuepoint}n(e,function(t,n){"function"==typeof n&&(l(s,t,n),delete e[t])}),-1==t&&(r.onCuepoint=this.onCuepoint)},d=function(e,t,r,o){var a=this,l={},s=!1;o&&i(l,o),n(t,function(e,n){"function"==typeof n&&(l[e]=n,delete t[e])}),i(this,{animate:function(n,i,o){if(!n)return a;if("function"==typeof i&&(o=i,i=500),"string"==typeof n){var s=n;n={},n[s]=i,i=500}if(o){var f=u();l[f]=o}return void 0===i&&(i=500),t=r._api().fp_animate(e,n,i,f),a},css:function(n,o){if(void 0!==o){var l={};l[n]=o,n=l}return t=r._api().fp_css(e,n),i(a,t),a},show:function(){return this.display="block",r._api().fp_showPlugin(e),a},hide:function(){return this.display="none",r._api().fp_hidePlugin(e),a},toggle:function(){return this.display=r._api().fp_togglePlugin(e),a},fadeTo:function(t,n,i){if("function"==typeof n&&(i=n,n=500),i){var o=u();l[o]=i}return this.display=r._api().fp_fadeTo(e,t,n,o),this.opacity=t,a},fadeIn:function(e,t){return a.fadeTo(1,e,t)},fadeOut:function(e,t){return a.fadeTo(0,e,t)},getName:function(){return e},getPlayer:function(){return r},_fireEvent:function(t,o,u){if("onUpdate"==t){var f=r._api().fp_getPlugin(e);if(!f)return;i(a,f),delete a.methods,s||(n(f.methods,function(){var t=""+this;a[t]=function(){var n=[].slice.call(arguments),i=r._api().fp_invoke(e,t,n);return"undefined"===i||void 0===i?a:i}}),s=!0)}var c=l[t];if(c){var d=c.apply(a,o);return"_"==t.slice(0,1)&&delete l[t],d}return a}})},p=[];window.flowplayer=window.$f=function(){var e=null,a=arguments[0];if(!arguments.length)return n(p,function(){return this.isLoaded()?(e=this,!1):void 0}),e||p[0];if(1==arguments.length)return"number"==typeof a?p[a]:"*"==a?new f(p):(n(p,function(){return this.id()==a.id||this.id()==a||this.getParent()==a?(e=this,!1):void 0}),e);if(arguments.length>1){var l=arguments[1],u=3==arguments.length?arguments[2]:{};if("string"==typeof l&&(l={src:l}),l=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:!1},l),"string"==typeof a){if(-1!=a.indexOf(".")){var c=[];return n(o(a),function(){c.push(new s(this,t(l),t(u)))}),new f(c)}var d=r(a);return new s(null!==d?d:a,l,u)}if(a)return new s(a,l,u)}return null},i(window.$f,{fireEvent:function(){var e=[].slice.call(arguments),t=$f(e[0]);return t?t._fireEvent(e.slice(1)):null},addPlugin:function(e,t){return s.prototype[e]=t,$f},each:n,extend:i}),"function"==typeof jQuery&&(jQuery.fn.flowplayer=function(e,n){if(!arguments.length||"number"==typeof arguments[0]){var r=[];return this.each(function(){var e=$f(this);e&&r.push(e)}),arguments.length?r[arguments[0]]:new f(r)}return this.each(function(){$f(this,t(e),n?t(n):{})})})}(),function(){function e(){if(s.done)return!1;var e=document;if(e&&e.getElementsByTagName&&e.getElementById&&e.body){clearInterval(s.timer),s.timer=null;for(var t=0;t<s.ready.length;t++)s.ready[t].call();s.ready=null,s.done=!0}}function t(e,t){if(t)for(key in t)t.hasOwnProperty(key)&&(e[key]=t[key]);return e}function n(e){switch(r(e)){case"string":return e=e.replace(new RegExp('(["\\\\])',"g"),"\\$1"),e=e.replace(/^\s?(\d+)%/,"$1pct"),'"'+e+'"';case"array":return"["+i(e,function(e){return n(e)}).join(",")+"]";case"function":return'"function()"';case"object":var t=[];for(var o in e)e.hasOwnProperty(o)&&t.push('"'+o+'":'+n(e[o]));return"{"+t.join(",")+"}"}return String(e).replace(/\s/g," ").replace(/\'/g,'"')}function r(e){if(null===e||void 0===e)return!1;var t=typeof e;return"object"==t&&e.push?"array":t}function i(e,t){var n=[];for(var r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function o(e,r){var i=t({},e),o=document.all,a='<object width="'+i.width+'" height="'+i.height+'"';o&&!i.id&&(i.id="_"+(""+Math.random()).substring(9)),i.id&&(a+=' id="'+i.id+'"'),i.cachebusting&&(i.src+=(-1!=i.src.indexOf("?")?"&":"?")+Math.random()),a+=i.w3c||!o?' data="'+i.src+'" type="application/x-shockwave-flash"':' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"',a+=">",(i.w3c||o)&&(a+='<param name="movie" value="'+i.src+'" />'),i.width=i.height=i.id=i.w3c=i.src=null;for(var l in i)null!==i[l]&&(a+='<param name="'+l+'" value="'+i[l]+'" />');var u="";if(r){for(var s in r)null!==r[s]&&(u+=s+"="+("object"==typeof r[s]?n(r[s]):r[s])+"&");u=u.substring(0,u.length-1),a+='<param name="flashvars" value=\''+u+"' />"}return a+="</object>"}function a(e,n,r){var i=flashembed.getVersion();t(this,{getContainer:function(){return e},getConf:function(){return n},getVersion:function(){return i},getFlashvars:function(){return r},getApi:function(){return e.firstChild},getHTML:function(){return o(n,r)}});var a=n.version,l=n.expressInstall,u=!a||flashembed.isSupported(a);if(u?(n.onFail=n.version=n.expressInstall=null,e.innerHTML=o(n,r)):a&&l&&flashembed.isSupported([6,65])?(t(n,{src:l}),r={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title},e.innerHTML=o(n,r)):""!==e.innerHTML.replace(/\s/g,"")||(e.innerHTML="<h2>Flash version "+a+" or greater is required</h2><h3>"+(i[0]>0?"Your version is "+i:"You have no flash plugin installed")+"</h3>"+("A"==e.tagName?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>"),"A"==e.tagName&&(e.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}
4186)),!u&&n.onFail){var s=n.onFail.call(this);"string"==typeof s&&(e.innerHTML=s)}document.all&&(window[n.id]=document.getElementById(n.id))}var l="function"==typeof jQuery,u={width:"100%",height:"100%",allowfullscreen:!0,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:!1,cachebusting:!1};l&&(jQuery.tools=jQuery.tools||{},jQuery.tools.flashembed={version:"1.0.4",conf:u});var s=l?jQuery:function(t){return s.done?t():void(s.timer?s.ready.push(t):(s.ready=[t],s.timer=setInterval(e,13)))};window.attachEvent&&window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){},__flash_savedUnloadHandler=function(){}}),window.flashembed=function(e,n,r){if("string"==typeof e){var i=document.getElementById(e);if(!i)return void s(function(){flashembed(e,n,r)});e=i}if(e){"string"==typeof n&&(n={src:n});var o=t({},u);return t(o,n),new a(e,o,r)}},t(window.flashembed,{getVersion:function(){var e=[0,0];if(navigator.plugins&&"object"==typeof navigator.plugins["Shockwave Flash"]){var t=navigator.plugins["Shockwave Flash"].description;if("undefined"!=typeof t){t=t.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(t.replace(/^(.*)\..*$/,"$1"),10),r=/r/.test(t)?parseInt(t.replace(/^.*r(.*)$/,"$1"),10):0;e=[n,r]}}else if(window.ActiveXObject){try{var i=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(o){try{i=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"),e=[6,0],i.AllowScriptAccess="always"}catch(a){if(6==e[0])return e}try{i=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(l){}}"object"==typeof i&&(t=i.GetVariable("$version"),"undefined"!=typeof t&&(t=t.replace(/^\S+\s+(.*)$/,"$1").split(","),e=[parseInt(t[0],10),parseInt(t[2],10)]))}return e},isSupported:function(e){var t=flashembed.getVersion(),n=t[0]>e[0]||t[0]==e[0]&&t[1]>=e[1];return n},domReady:s,asString:n,getHTML:o}),l&&(jQuery.fn.flashembed=function(e,t){var n=null;return this.each(function(){n=flashembed(this,e,t)}),e.api===!1?this:n})}(),function(){function e(){if(!l&&(l=!0,u)){for(var e=0;e<u.length;e++)u[e].call(window,[]);u=[]}}function t(e){var t=window.onload;"function"!=typeof window.onload?window.onload=e:window.onload=function(){t&&t(),e()}}function n(){if(!a){if(a=!0,document.addEventListener&&!o.opera&&document.addEventListener("DOMContentLoaded",e,!1),o.msie&&window==top&&function(){if(!l){try{document.documentElement.doScroll("left")}catch(t){return void setTimeout(arguments.callee,0)}e()}}(),o.opera&&document.addEventListener("DOMContentLoaded",function(){if(!l){for(var t=0;t<document.styleSheets.length;t++)if(document.styleSheets[t].disabled)return void setTimeout(arguments.callee,0);e()}},!1),o.safari){var n;!function(){if(!l){if("loaded"!=document.readyState&&"complete"!=document.readyState)return void setTimeout(arguments.callee,0);if(void 0===n){for(var t=document.getElementsByTagName("link"),r=0;r<t.length;r++)"stylesheet"==t[r].getAttribute("rel")&&n++;var i=document.getElementsByTagName("style");n+=i.length}return document.styleSheets.length!=n?void setTimeout(arguments.callee,0):void e()}}()}t(e)}}var r=window.DomReady={},i=navigator.userAgent.toLowerCase(),o={version:(i.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1],safari:/webkit/.test(i),opera:/opera/.test(i),msie:/msie/.test(i)&&!/opera/.test(i),mozilla:/mozilla/.test(i)&&!/(compatible|webkit)/.test(i)},a=!1,l=!1,u=[];r.ready=function(e,t){n(),l?e.call(window,[]):u.push(function(){return e.call(window,[])})},n()}(),function(e,t,n){"use strict";function r(e,t){return e.canPlayType(t)||h&&t.search("mp4")>-1}function i(e){for(var n=t.getElementsByTagName(e),i=[],a=0;a<n.length;a++)i.push(n[a]);for(a=0;a<i.length;a++){var u=i[a],s=!0;if(u.canPlayType)if(u.src)r(u,l(e,u.src))&&(s=!1);else for(var f=u.getElementsByTagName("source"),c=0;c<f.length;c++){var d=f[c];if(r(u,l(e,d.src,d.type))){s=!1;break}}s||o.forceFallback(e,u)?o.createFallback(e,u):h&&u.addEventListener("click",function(){this.play()},!1)}}function o(){i("video"),i("audio")}function a(e){return e.split("/").slice(0,-1).join("/")+"/"}function l(e,t,n){if(n)return n;var r=/\.([a-z1-9]+)(\?|#|\s|$)/i.exec(t);if(r){var i=P[e][r[1]];if(i)return i}return k[e]}function u(e,t){var n=e.getAttribute(t);return!!n||"string"==typeof n}function s(e){var n=t.createElement("a");return n.href=e,n.href}function f(n,r,i){var o=n.getAttribute(r);if(o)return o+"px";var a;if(n.currentStyle)a=n.currentStyle[r];else{if(!e.getComputedStyle)return i;a=t.defaultView.getComputedStyle(n,null).getPropertyValue(r)}return"auto"==a?i:a}function c(e){return e.match(/\s*([\w-]+\/[\w-]+)(;
4186|\s|$)/)[1]}function d(e,t){return c(e)==c(t)}var p="video",g="audio";t.createElement(p).canPlayType||(t.createElement(g),t.createElement("source"));var h=null!==e.navigator.userAgent.toLowerCase().match(/android 2\.[12]/),v=null!==e.navigator.userAgent.toLowerCase().match(/opera/);o.forceFallback=function(e,t){return!1};var y=function(){for(var e=t.getElementsByTagName("script"),n=0;n<e.length;n++){var r=e[n];if(r.src.match(/html5media(\.min|)\.js/))return a(r.src)}return""}();o.flowplayerSwf=y+"flowplayer.swf",o.flowplayerAudioSwf=y+"flowplayer.audio.swf",o.flowplayerControlsSwf=y+"flowplayer.controls.swf",o.expressInstallSwf=y+"expressInstall.swf",o.videoFallbackClass="html5media-video-fallback",o.audioFallbackClass="html5media-audio-fallback";var m='video/ogg; codecs="theora, vorbis"',w='video/mp4; codecs="avc1.42E01E, mp4a.40.2"',b='audio/ogg; codecs="vorbis"',_="video/webm;",E="audio/x-m4a;",S="audio/mpeg;",L='audio/wav; codecs="1"',k={video:w,audio:S},C=[w,E,S],P={video:{ogg:m,ogv:m,avi:w,mp4:w,mkv:w,h264:w,264:w,avc:w,m4v:w,"3gp":w,"3gpp":w,"3g2":w,mpg:w,mpeg:w,webm:_},audio:{ogg:b,oga:b,aac:E,m4a:E,mp3:S,wav:L}};o.configureFlowplayer=function(e,t){return t},o.createFallback=function(e,n){var r=u(n,"controls"),i=n.getAttribute("poster")||"",a=n.getAttribute("src")||"";if(!a)for(var c=n.getElementsByTagName("source"),g=0;g<c.length;g++){var h=c[g],y=h.getAttribute("src");if(y)for(var m=0;m<C.length;m++){var w=C[m];if(d(w,l(e,y,h.getAttribute("type")))){a=y;break}}if(a)break}if(a){var b=t.createElement("span");b.id=n.id,b.style.cssText=n.style.cssText,b.className=n.className,b.title=n.title,b.style.display="block",b.style.width=f(n,"width","300px"),"audio"==e?(b.style.height="26px",b.className=(b.className?b.className+" ":"")+o.audioFallbackClass):(b.style.height=f(n,"height","200px"),b.className=(b.className?b.className+" ":"")+o.videoFallbackClass),n.parentNode.replaceChild(b,n);var _=(n.getAttribute("preload")||"").toLowerCase(),E=[];i&&E.push({url:s(i)}),a&&E.push({url:s(a),autoPlay:u(n,"autoplay"),autoBuffering:u(n,"autobuffer")||u(n,"preload")&&(""===_||"auto"==_),onBeforeFinish:function(){return!u(n,"loop")}});var S={controls:r&&{url:s(o.flowplayerControlsSwf),opacity:.8,backgroundColor:"#181818",backgroundGradient:"none",fullscreen:e==p,autoHide:e==p&&{fullscreenOnly:!1,enabled:!0,hideStyle:"fade",mouseOutDelay:0}||{enabled:!1}}||null};v&&S.controls&&(S.controls.autoHide.enabled=!1),"audio"==e&&(S.audio={url:s(o.flowplayerAudioSwf)},r||(S.controls={url:s(o.flowplayerControlsSwf),display:"none"},b.style.height=0),E[E.length-1].autoBuffering=!1);var L={play:null,playlist:E,clip:{scaling:"fit",fadeInSpeed:0,fadeOutSpeed:0},canvas:{backgroundGradient:"none",backgroundColor:"#000000"},plugins:S};L=o.configureFlowplayer(n,L),flowplayer(b,{src:s(o.flowplayerSwf),expressInstall:s(o.expressInstallSwf),wmode:"opaque"},L)}},DomReady.ready(o),e.html5media=o}(this,document);
4187"object"==typeof navigator&&function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Plyr",t):(e="undefined"!=typeof globalThis?globalThis:e||self).Plyr=t()}(this,(function(){"use strict";function e(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e;var i=e[Symbol.toPrimitive];if(void 0!==i){var s=i.call(e,t||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function t(e,t){for(var i=0;i<t.length;i++){var s=t[i];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(e,s.key,s)}}function i(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function s(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,s)}return i}function n(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
vendor: 4,499 bytes, line 4187
4187t%2?s(Object(n),!0).forEach((function(t){i(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var a={addCSS:!0,thumbWidth:15,watch:!0};var l=function(e){return null!=e?e.constructor:null},r=function(e,t){return!!(e&&t&&e instanceof t)},o=function(e){return null==e},c=function(e){return l(e)===Object},u=function(e){return l(e)===String},h=function(e){return Array.isArray(e)},d=function(e){return r(e,NodeList)},m={nullOrUndefined:o,object:c,number:function(e){return l(e)===Number&&!Number.isNaN(e)},string:u,boolean:function(e){return l(e)===Boolean},function:function(e){return l(e)===Function},array:h,nodeList:d,element:function(e){return r(e,Element)},event:function(e){return r(e,Event)},empty:function(e){return o(e)||(u(e)||h(e)||d(e))&&!e.length||c(e)&&!Object.keys(e).length}};function p(e,t){if(1>t){var i=function(e){var t="".concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);return t?Math.max(0,(t[1]?t[1].length:0)-(t[2]?+t[2]:0)):0}(t);return parseFloat(e.toFixed(i))}return Math.round(e/t)*t}var g=function(){function e(t,i){(function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")})(this,e),m.element(t)?this.element=t:m.string(t)&&(this.element=document.querySelector(t)),m.element(this.element)&&m.empty(this.element.rangeTouch)&&(this.config=n({},a,{},i),this.init())}return function(e,i,s){i&&t(e.prototype,i),s&&t(e,s)}(e,[{key:"init",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="none",this.element.style.webKitUserSelect="none",this.element.style.touchAction="manipulation"),this.listeners(!0),this.element.rangeTouch=this)}},{key:"destroy",value:function(){e.enabled&&(this.config.addCSS&&(this.element.style.userSelect="",this.element.style.webKitUserSelect="",this.element.style.touchAction=""),this.listeners(!1),this.element.rangeTouch=null)}},{key:"listeners",value:function(e){var t=this,i=e?"addEventListener":"removeEventListener";["touchstart","touchmove","touchend"].forEach((function(e){t.element[i](e,(function(e){return t.set(e)}),!1)}))}},{key:"get",value:function(t){if(!e.enabled||!m.event(t))return null;var i,s=t.target,n=t.changedTouches[0],a=parseFloat(s.getAttribute("min"))||0,l=parseFloat(s.getAttribute("max"))||100,r=parseFloat(s.getAttribute("step"))||1,o=s.getBoundingClientRect(),c=100/o.width*(this.config.thumbWidth/2)/100;return 0>(i=100/o.width*(n.clientX-o.left))?i=0:100<i&&(i=100),50>i?i-=(100-2*i)*c:50<i&&(i+=2*(i-50)*c),a+p(i/100*(l-a),r)}},{key:"set",value:function(t){e.enabled&&m.event(t)&&!t.target.disabled&&(t.preventDefault(),t.target.value=this.get(t),function(e,t){if(e&&t){var i=new Event(t,{bubbles:!0});e.dispatchEvent(i)}}(t.target,"touchend"===t.type?"change":"input"))}}],[{key:"setup",value:function(t){var i=1<arguments.length&&void 0!==arguments[1]?arguments[1]:{},s=null;if(m.empty(t)||m.string(t)?s=Array.from(document.querySelectorAll(m.string(t)?t:'input[type="range"]')):m.element(t)?s=[t]:m.nodeList(t)?s=Array.from(t):m.array(t)&&(s=t.filter(m.element)),m.empty(s))return null;var l=n({},a,{},i);if(m.string(t)&&l.watch){var r=new MutationObserver((function(i){Array.from(i).forEach((function(i){Array.from(i.addedNodes).forEach((function(i){m.element(i)&&function(e,t){return function(){return Array.from(document.querySelectorAll(t)).includes(this)}.call(e,t)}(i,t)&&new e(i,l)}))}))}));r.observe(document.body,{childList:!0,subtree:!0})}return s.map((function(t){return new e(t,i)}))}},{key:"enabled",get:function(){return"ontouchstart"in document.documentElement}}]),e}();const f=e=>null!=e?e.constructor:null,y=(e,t)=>Boolean(e&&t&&e instanceof t),b=e=>null==e,v=e=>f(e)===Object,w=e=>f(e)===String,T=e=>"function"==typeof e,k=e=>Array.isArray(e),C=e=>y(e,NodeList),A=e=>b(e)||(w(e)||k(e)||C(e))&&!e.length||v(e)&&!Object.keys(e).length;var S={nullOrUndefined:b,object:v,number:e=>f(e)===Number&&!Number.isNaN(e),string:w,boolean:e=>f(e)===Boolean,function:T,array:k,weakMap:e=>y(e,WeakMap),nodeList:C,element:e=>null!==e&&"object"==typeof e&&1===e.nodeType&&"object"==typeof e.style&&"object"==typeof e.ownerDocument,textNode:e=>f(e)===Text,event:e=>y(e,Event),keyboardEvent:e=>y(e,KeyboardEvent),cue:e=>y(e,window.TextTrackCue)||y(e,window.VTTCue),track:e=>y(e,TextTrack)||!b(e)&&w(e.kind),promise:e=>y(e,Promise)&&T(e.then),url:e=>{if(y(e,window.URL))return!0;
4187if(!w(e))return!1;let t=e;e.startsWith("http://")&&e.startsWith("https://")||(t=`http://${e}`);try{return!A(new URL(t).hostname)}catch(e){return!1}},empty:A};const E=(()=>{const e=document.createElement("span"),t={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i=Object.keys(t).find((t=>void 0!==e.style[t]));return!!S.string(i)&&t[i]})();function P(e,t){setTimeout((()=>{try{e.hidden=!0,e.offsetHeight,e.hidden=!1}catch(e){}}),t)}var M={isIE:Boolean(window.document.documentMode),isEdge:/Edge/g.test(navigator.userAgent),isWebKit:"WebkitAppearance"in document.documentElement.style&&!/Edge/g.test(navigator.userAgent),isIPhone:/iPhone|iPod/gi.test(navigator.userAgent)&&navigator.maxTouchPoints>1,isIPadOS:"MacIntel"===navigator.platform&&navigator.maxTouchPoints>1,isIos:/iPad|iPhone|iPod/gi.test(navigator.userAgent)&&navigator.maxTouchPoints>1};function N(e,t){return t.split(".").reduce(((e,t)=>e&&e[t]),e)}function x(e={},...t){if(!t.length)return e;const i=t.shift();
vendor: 4,088 bytes, line 4187
4187return S.object(i)?(Object.keys(i).forEach((t=>{S.object(i[t])?(Object.keys(e).includes(t)||Object.assign(e,{[t]:{}}),x(e[t],i[t])):Object.assign(e,{[t]:i[t]})})),x(e,...t)):e}function L(e,t){const i=e.length?e:[e];Array.from(i).reverse().forEach(((e,i)=>{const s=i>0?t.cloneNode(!0):t,n=e.parentNode,a=e.nextSibling;s.appendChild(e),a?n.insertBefore(s,a):n.appendChild(s)}))}function I(e,t){S.element(e)&&!S.empty(t)&&Object.entries(t).filter((([,e])=>!S.nullOrUndefined(e))).forEach((([t,i])=>e.setAttribute(t,i)))}function $(e,t,i){const s=document.createElement(e);return S.object(t)&&I(s,t),S.string(i)&&(s.innerText=i),s}function _(e,t,i,s){S.element(t)&&t.appendChild($(e,i,s))}function O(e){S.nodeList(e)||S.array(e)?Array.from(e).forEach(O):S.element(e)&&S.element(e.parentNode)&&e.parentNode.removeChild(e)}function j(e){if(!S.element(e))return;let{length:t}=e.childNodes;for(;t>0;)e.removeChild(e.lastChild),t-=1}function q(e,t){return S.element(t)&&S.element(t.parentNode)&&S.element(e)?(t.parentNode.replaceChild(e,t),e):null}function D(e,t){if(!S.string(e)||S.empty(e))return{};const i={},s=x({},t);return e.split(",").forEach((e=>{const t=e.trim(),n=t.replace(".",""),a=t.replace(/[[\]]/g,"").split("="),[l]=a,r=a.length>1?a[1].replace(/["']/g,""):"";switch(t.charAt(0)){case".":S.string(s.class)?i.class=`${s.class} ${n}`:i.class=n;break;case"#":i.id=t.replace("#","");break;case"[":i[l]=r}})),x(s,i)}function H(e,t){if(!S.element(e))return;let i=t;S.boolean(i)||(i=!e.hidden),e.hidden=i}function R(e,t,i){if(S.nodeList(e))return Array.from(e).map((e=>R(e,t,i)));if(S.element(e)){let s="toggle";return void 0!==i&&(s=i?"add":"remove"),e.classList[s](t),e.classList.contains(t)}return!1}function F(e,t){return S.element(e)&&e.classList.contains(t)}function V(e,t){const{prototype:i}=Element;return(i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.msMatchesSelector||function(){return Array.from(document.querySelectorAll(t)).includes(this)}).call(e,t)}function U(e){return this.elements.container.querySelectorAll(e)}function B(e){return this.elements.container.querySelector(e)}function W(e=null,t=!1){S.element(e)&&e.focus({preventScroll:!0,focusVisible:t})}const z={"audio/ogg":"vorbis","audio/wav":"1","video/webm":"vp8, vorbis","video/mp4":"avc1.42E01E, mp4a.40.2","video/ogg":"theora"},K={audio:"canPlayType"in document.createElement("audio"),video:"canPlayType"in document.createElement("video"),check(e,t){const i=K[e]||"html5"!==t;return{api:i,ui:i&&K.rangeInput}},pip:!(M.isIPhone||!S.function($("video").webkitSetPresentationMode)&&(!document.pictureInPictureEnabled||$("video").disablePictureInPicture)),airplay:S.function(window.WebKitPlaybackTargetAvailabilityEvent),playsinline:"playsInline"in document.createElement("video"),mime(e){if(S.empty(e))return!1;const[t]=e.split("/");let i=e;if(!this.isHTML5||t!==this.type)return!1;Object.keys(z).includes(i)&&(i+=`; codecs="${z[e]}"`);try{return Boolean(i&&this.media.canPlayType(i).replace(/no/,""))}catch(e){return!1}},textTracks:"textTracks"in document.createElement("video"),rangeInput:(()=>{const e=document.createElement("input");return e.type="range","range"===e.type})(),touch:"ontouchstart"in document.documentElement,transitions:!1!==E,reducedMotion:"matchMedia"in window&&window.matchMedia("(prefers-reduced-motion)").matches},Y=(()=>{let e=!1;try{const t=Object.defineProperty({},"passive",{get:()=>(e=!0,null)});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(e){}return e})();function Q(e,t,i,s=!1,n=!0,a=!1){if(!e||!("addEventListener"in e)||S.empty(t)||!S.function(i))return;const l=t.split(" ");let r=a;Y&&(r={passive:n,capture:a}),l.forEach((t=>{this&&this.eventListeners&&s&&this.eventListeners.push({element:e,type:t,callback:i,options:r}),e[s?"addEventListener":"removeEventListener"](t,i,r)}))}function X(e,t="",i,s=!0,n=!1){Q.call(this,e,t,i,!0,s,n)}function J(e,t="",i,s=!0,n=!1){Q.call(this,e,t,i,!1,s,n)}function G(e,t="",i,s=!0,n=!1){const a=(...l)=>{J(e,t,a,s,n),i.apply(this,l)};Q.call(this,e,t,a,!0,s,n)}function Z(e,t="",i=!1,s={}
vendor: 4,288 bytes, line 4187
4187){if(!S.element(e)||S.empty(t))return;const n=new CustomEvent(t,{bubbles:i,detail:{...s,plyr:this}});e.dispatchEvent(n)}function ee(){this&&this.eventListeners&&(this.eventListeners.forEach((e=>{const{element:t,type:i,callback:s,options:n}=e;t.removeEventListener(i,s,n)})),this.eventListeners=[])}function te(){return new Promise((e=>this.ready?setTimeout(e,0):X.call(this,this.elements.container,"ready",e))).then((()=>{}))}function ie(e){S.promise(e)&&e.then(null,(()=>{}))}function se(e){return S.array(e)?e.filter(((t,i)=>e.indexOf(t)===i)):e}function ne(e,t){return S.array(e)&&e.length?e.reduce(((e,i)=>Math.abs(i-t)<Math.abs(e-t)?i:e)):null}function ae(e){return!(!window||!window.CSS)&&window.CSS.supports(e)}const le=[[1,1],[4,3],[3,4],[5,4],[4,5],[3,2],[2,3],[16,10],[10,16],[16,9],[9,16],[21,9],[9,21],[32,9],[9,32]].reduce(((e,[t,i])=>({...e,[t/i]:[t,i]})),{});function re(e){if(!(S.array(e)||S.string(e)&&e.includes(":")))return!1;return(S.array(e)?e:e.split(":")).map(Number).every(S.number)}function oe(e){if(!S.array(e)||!e.every(S.number))return null;const[t,i]=e,s=(e,t)=>0===t?e:s(t,e%t),n=s(t,i);return[t/n,i/n]}function ce(e){const t=e=>re(e)?e.split(":").map(Number):null;let i=t(e);if(null===i&&(i=t(this.config.ratio)),null===i&&!S.empty(this.embed)&&S.array(this.embed.ratio)&&({ratio:i}=this.embed),null===i&&this.isHTML5){const{videoWidth:e,videoHeight:t}=this.media;i=[e,t]}return oe(i)}function ue(e){if(!this.isVideo)return{};const{wrapper:t}=this.elements,i=ce.call(this,e);if(!S.array(i))return{};const[s,n]=oe(i),a=100/s*n;if(ae(`aspect-ratio: ${s}/${n}`)?t.style.aspectRatio=`${s}/${n}`:t.style.paddingBottom=`${a}%`,this.isVimeo&&!this.config.vimeo.premium&&this.supported.ui){const e=100/this.media.offsetWidth*parseInt(window.getComputedStyle(this.media).paddingBottom,10),i=(e-a)/(e/50);this.fullscreen.active?t.style.paddingBottom=null:this.media.style.transform=`translateY(-${i}%)`}else this.isHTML5&&t.classList.add(this.config.classNames.videoFixedRatio);return{padding:a,ratio:i}}function he(e,t,i=.05){const s=e/t,n=ne(Object.keys(le),s);return Math.abs(n-s)<=i?le[n]:[e,t]}const de={getSources(){if(!this.isHTML5)return[];return Array.from(this.media.querySelectorAll("source")).filter((e=>{const t=e.getAttribute("type");return!!S.empty(t)||K.mime.call(this,t)}))},getQualityOptions(){return this.config.quality.forced?this.config.quality.options:de.getSources.call(this).map((e=>Number(e.getAttribute("size")))).filter(Boolean)},setup(){if(!this.isHTML5)return;const e=this;e.options.speed=e.config.speed.options,S.empty(this.config.ratio)||ue.call(e),Object.defineProperty(e.media,"quality",{get(){const t=de.getSources.call(e).find((t=>t.getAttribute("src")===e.source));return t&&Number(t.getAttribute("size"))},set(t){if(e.quality!==t){if(e.config.quality.forced&&S.function(e.config.quality.onChange))e.config.quality.onChange(t);else{const i=de.getSources.call(e).find((e=>Number(e.getAttribute("size"))===t));if(!i)return;const{currentTime:s,paused:n,preload:a,readyState:l,playbackRate:r}=e.media;e.media.src=i.getAttribute("src"),("none"!==a||l)&&(e.once("loadedmetadata",(()=>{e.speed=r,e.currentTime=s,n||ie(e.play())})),e.media.load())}Z.call(e,e.media,"qualitychange",!1,{quality:t})}}})},cancelRequests(){this.isHTML5&&(O(de.getSources.call(this)),this.media.setAttribute("src",this.config.blankVideo),this.media.load(),this.debug.log("Cancelled network requests"))}};function me(e,...t){return S.empty(e)?e:e.toString().replace(/{(\d+)}/g,((e,i)=>t[i].toString()))}const pe=(e="",t="",i="")=>e.replace(new RegExp(t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g,"\\$1"),"g"),i.toString()),ge=(e="")=>e.toString().replace(/\w\S*/g,(e=>e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()));function fe(e=""){let t=e.toString();return t=function(e=""){let t=e.toString();return t=pe(t,"-"," "),t=pe(t,"_"," "),t=ge(t),pe(t," ","")}(t),t.charAt(0).toLowerCase()+t.slice(1)}function ye(e){const t=document.createElement("div");return t.appendChild(e),t.innerHTML}const be={pip:"PIP",airplay:"AirPlay",html5:"HTML5",vimeo:"Vimeo",youtube:"YouTube"},ve={get(e="",t={}){if(S.empty(e)||S.empty(t))return"";let i=N(t.i18n,e);if(S.empty(i))return Object.keys(be).includes(e)?be[e]:"";const s={"{seektime}":t.seekTime,"{title}":t.title};
vendor: 4,218 bytes, line 4187
4187return Object.entries(s).forEach((([e,t])=>{i=pe(i,e,t)})),i}};class we{constructor(t){e(this,"get",(e=>{if(!we.supported||!this.enabled)return null;const t=window.localStorage.getItem(this.key);if(S.empty(t))return null;const i=JSON.parse(t);return S.string(e)&&e.length?i[e]:i})),e(this,"set",(e=>{if(!we.supported||!this.enabled)return;if(!S.object(e))return;let t=this.get();S.empty(t)&&(t={}),x(t,e);try{window.localStorage.setItem(this.key,JSON.stringify(t))}catch(e){}})),this.enabled=t.config.storage.enabled,this.key=t.config.storage.key}static get supported(){try{if(!("localStorage"in window))return!1;const e="___test";return window.localStorage.setItem(e,e),window.localStorage.removeItem(e),!0}catch(e){return!1}}}function Te(e,t="text"){return new Promise(((i,s)=>{try{const s=new XMLHttpRequest;if(!("withCredentials"in s))return;s.addEventListener("load",(()=>{if("text"===t)try{i(JSON.parse(s.responseText))}catch(e){i(s.responseText)}else i(s.response)})),s.addEventListener("error",(()=>{throw new Error(s.status)})),s.open("GET",e,!0),s.responseType=t,s.send()}catch(e){s(e)}}))}function ke(e,t){if(!S.string(e))return;const i="cache",s=S.string(t);let n=!1;const a=()=>null!==document.getElementById(t),l=(e,t)=>{e.innerHTML=t,s&&a()||document.body.insertAdjacentElement("afterbegin",e)};if(!s||!a()){const a=we.supported,r=document.createElement("div");if(r.setAttribute("hidden",""),s&&r.setAttribute("id",t),a){const e=window.localStorage.getItem(`${i}-${t}`);if(n=null!==e,n){const t=JSON.parse(e);l(r,t.content)}}Te(e).then((e=>{if(!S.empty(e)){if(a)try{window.localStorage.setItem(`${i}-${t}`,JSON.stringify({content:e}))}catch(e){}l(r,e)}})).catch((()=>{}))}}const Ce=e=>Math.trunc(e/60/60%60,10),Ae=e=>Math.trunc(e/60%60,10),Se=e=>Math.trunc(e%60,10);function Ee(e=0,t=!1,i=!1){if(!S.number(e))return Ee(void 0,t,i);const s=e=>`0${e}`.slice(-2);let n=Ce(e);const a=Ae(e),l=Se(e);return n=t||n>0?`${n}:`:"",`${i&&e>0?"-":""}${n}${s(a)}:${s(l)}`}const Pe={getIconUrl(){const e=new URL(this.config.iconUrl,window.location),t=window.location.host?window.location.host:window.top.location.host,i=e.host!==t||M.isIE&&!window.svg4everybody;return{url:this.config.iconUrl,cors:i}},findElements(){try{return this.elements.controls=B.call(this,this.config.selectors.controls.wrapper),this.elements.buttons={play:U.call(this,this.config.selectors.buttons.play),pause:B.call(this,this.config.selectors.buttons.pause),restart:B.call(this,this.config.selectors.buttons.restart),rewind:B.call(this,this.config.selectors.buttons.rewind),fastForward:B.call(this,this.config.selectors.buttons.fastForward),mute:B.call(this,this.config.selectors.buttons.mute),pip:B.call(this,this.config.selectors.buttons.pip),airplay:B.call(this,this.config.selectors.buttons.airplay),settings:B.call(this,this.config.selectors.buttons.settings),captions:B.call(this,this.config.selectors.buttons.captions),fullscreen:B.call(this,this.config.selectors.buttons.fullscreen)},this.elements.progress=B.call(this,this.config.selectors.progress),this.elements.inputs={seek:B.call(this,this.config.selectors.inputs.seek),volume:B.call(this,this.config.selectors.inputs.volume)},this.elements.display={buffer:B.call(this,this.config.selectors.display.buffer),currentTime:B.call(this,this.config.selectors.display.currentTime),duration:B.call(this,this.config.selectors.display.duration)},S.element(this.elements.progress)&&(this.elements.display.seekTooltip=this.elements.progress.querySelector(`.${this.config.classNames.tooltip}`)),!0}catch(e){return this.debug.warn("It looks like there is a problem with your custom controls HTML",e),this.toggleNativeControls(!0),!1}},createIcon(e,t){const i="http://www.w3.org/2000/svg",s=Pe.getIconUrl.call(this),n=`${s.cors?"":s.url}#${this.config.iconPrefix}`,a=document.createElementNS(i,"svg");I(a,x(t,{"aria-hidden":"true",focusable:"false"}));const l=document.createElementNS(i,"use"),r=`${n}-${e}`;return"href"in l&&l.setAttributeNS("http://www.w3.org/1999/xlink","href",r),l.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r),a.appendChild(l),a},createLabel(e,t={}){const i=ve.get(e,this.config);return $("span",{...t,class:[t.class,this.config.classNames.hidden].filter(
vendor: 17,354 bytes, line 4187
4187Boolean).join(" ")},i)},createBadge(e){if(S.empty(e))return null;const t=$("span",{class:this.config.classNames.menu.value});return t.appendChild($("span",{class:this.config.classNames.menu.badge},e)),t},createButton(e,t){const i=x({},t);let s=fe(e);const n={element:"button",toggle:!1,label:null,icon:null,labelPressed:null,iconPressed:null};switch(["element","icon","label"].forEach((e=>{Object.keys(i).includes(e)&&(n[e]=i[e],delete i[e])})),"button"!==n.element||Object.keys(i).includes("type")||(i.type="button"),Object.keys(i).includes("class")?i.class.split(" ").some((e=>e===this.config.classNames.control))||x(i,{class:`${i.class} ${this.config.classNames.control}`}):i.class=this.config.classNames.control,e){case"play":n.toggle=!0,n.label="play",n.labelPressed="pause",n.icon="play",n.iconPressed="pause";break;case"mute":n.toggle=!0,n.label="mute",n.labelPressed="unmute",n.icon="volume",n.iconPressed="muted";break;case"captions":n.toggle=!0,n.label="enableCaptions",n.labelPressed="disableCaptions",n.icon="captions-off",n.iconPressed="captions-on";break;case"fullscreen":n.toggle=!0,n.label="enterFullscreen",n.labelPressed="exitFullscreen",n.icon="enter-fullscreen",n.iconPressed="exit-fullscreen";break;case"play-large":i.class+=` ${this.config.classNames.control}--overlaid`,s="play",n.label="play",n.icon="play";break;default:S.empty(n.label)&&(n.label=s),S.empty(n.icon)&&(n.icon=e)}const a=$(n.element);return n.toggle?(a.appendChild(Pe.createIcon.call(this,n.iconPressed,{class:"icon--pressed"})),a.appendChild(Pe.createIcon.call(this,n.icon,{class:"icon--not-pressed"})),a.appendChild(Pe.createLabel.call(this,n.labelPressed,{class:"label--pressed"})),a.appendChild(Pe.createLabel.call(this,n.label,{class:"label--not-pressed"}))):(a.appendChild(Pe.createIcon.call(this,n.icon)),a.appendChild(Pe.createLabel.call(this,n.label))),x(i,D(this.config.selectors.buttons[s],i)),I(a,i),"play"===s?(S.array(this.elements.buttons[s])||(this.elements.buttons[s]=[]),this.elements.buttons[s].push(a)):this.elements.buttons[s]=a,a},createRange(e,t){const i=$("input",x(D(this.config.selectors.inputs[e]),{type:"range",min:0,max:100,step:.01,value:0,autocomplete:"off",role:"slider","aria-label":ve.get(e,this.config),"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":0},t));return this.elements.inputs[e]=i,Pe.updateRangeFill.call(this,i),g.setup(i),i},createProgress(e,t){const i=$("progress",x(D(this.config.selectors.display[e]),{min:0,max:100,value:0,role:"progressbar","aria-hidden":!0},t));if("volume"!==e){i.appendChild($("span",null,"0"));const t={played:"played",buffer:"buffered"}[e],s=t?ve.get(t,this.config):"";i.innerText=`% ${s.toLowerCase()}`}return this.elements.display[e]=i,i},createTime(e,t){const i=D(this.config.selectors.display[e],t),s=$("div",x(i,{class:`${i.class?i.class:""} ${this.config.classNames.display.time} `.trim(),"aria-label":ve.get(e,this.config),role:"timer"}),"00:00");return this.elements.display[e]=s,s},bindMenuItemShortcuts(e,t){X.call(this,e,"keydown keyup",(i=>{if(![" ","ArrowUp","ArrowDown","ArrowRight"].includes(i.key))return;if(i.preventDefault(),i.stopPropagation(),"keydown"===i.type)return;const s=V(e,'[role="menuitemradio"]');if(!s&&[" ","ArrowRight"].includes(i.key))Pe.showMenuPanel.call(this,t,!0);else{let t;" "!==i.key&&("ArrowDown"===i.key||s&&"ArrowRight"===i.key?(t=e.nextElementSibling,S.element(t)||(t=e.parentNode.firstElementChild)):(t=e.previousElementSibling,S.element(t)||(t=e.parentNode.lastElementChild)),W.call(this,t,!0))}}),!1),X.call(this,e,"keyup",(e=>{"Return"===e.key&&Pe.focusFirstMenuItem.call(this,null,!0)}))},createMenuItem({value:e,list:t,type:i,title:s,badge:n=null,checked:a=!1}){const l=D(this.config.selectors.inputs[i]),r=$("button",x(l,{type:"button",role:"menuitemradio",class:`${this.config.classNames.control} ${l.class?l.class:""}`.trim(),"aria-checked":a,value:e})),o=$("span");o.innerHTML=s,S.element(n)&&o.appendChild(n),r.appendChild(o),Object.defineProperty(r,"checked",{enumerable:!0,get:()=>"true"===r.getAttribute("aria-checked"),set(e){e&&Array.from(r.parentNode.children).filter((e=>V(e,'[role="menuitemradio"]'))).forEach((e=>e.setAttribute("aria-checked","false"))),r.setAttribute("aria-checked",e?"true":"false")}}),this.listeners.bind(r,"click keyup",(t=>{if(!S.keyboardEvent(t)||" "===t.key){switch(t.preventDefault(),t.stopPropagation(),r.checked=!0,i){case"language":this.currentTrack=Number(e);break;case"quality":this.quality=e;break;case"speed":this.speed=parseFloat(e)}Pe.showMenuPanel.call(this,"home",S.keyboardEvent(t))}}),i,!1),Pe.bindMenuItemShortcuts.call(this,r,i),t.appendChild(r)},formatTime(e=0,t=!1){if(!S.number(e))return e;return Ee(e,Ce(this.duration)>0,t)},updateTimeDisplay(e=null,t=0,i=!1){S.element(e)&&S.number(t)&&(e.innerText=Pe.formatTime(t,i))},updateVolume(){this.supported.ui&&(S.element(this.elements.inputs.volume)&&Pe.setRange.call(this,this.elements.inputs.volume,this.muted?0:this.volume),S.element(this.elements.buttons.mute)&&(this.elements.buttons.mute.pressed=this.muted||0===this.volume))},setRange(e,t=0){S.element(e)&&(e.value=t,Pe.updateRangeFill.call(this,e))},updateProgress(e){if(!this.supported.ui||!S.event(e))return;let t=0;const i=(e,t)=>{const i=S.number(t)?t:0,s=S.element(e)?e:this.elements.display.buffer;if(S.element(s)){s.value=i;const e=s.getElementsByTagName("span")[0];S.element(e)&&(e.childNodes[0].nodeValue=i)}};if(e)switch(e.type){case"timeupdate":case"seeking":case"seeked":s=this.currentTime,n=this.duration,t=0===s||0===n||Number.isNaN(s)||Number.isNaN(n)?0:(s/n*100).toFixed(2),"timeupdate"===e.type&&Pe.setRange.call(this,this.elements.inputs.seek,t);break;case"playing":case"progress":i(this.elements.display.buffer,100*this.buffered)}var s,n},updateRangeFill(e){const t=S.event(e)?e.target:e;if(S.element(t)&&"range"===t.getAttribute("type")){if(V(t,this.config.selectors.inputs.seek)){t.setAttribute("aria-valuenow",this.currentTime);const e=Pe.formatTime(this.currentTime),i=Pe.formatTime(this.duration),s=ve.get("seekLabel",this.config);t.setAttribute("aria-valuetext",s.replace("{currentTime}",e).replace("{duration}",i))}else if(V(t,this.config.selectors.inputs.volume)){const e=100*t.value;t.setAttribute("aria-valuenow",e),t.setAttribute("aria-valuetext",`${e.toFixed(1)}%`)}else t.setAttribute("aria-valuenow",t.value);(M.isWebKit||M.isIPadOS)&&t.style.setProperty("--value",t.value/t.max*100+"%")}},updateSeekTooltip(e){var t,i;if(!this.config.tooltips.seek||!S.element(this.elements.inputs.seek)||!S.element(this.elements.display.seekTooltip)||0===this.duration)return;const s=this.elements.display.seekTooltip,n=`${this.config.classNames.tooltip}--visible`,a=e=>R(s,n,e);if(this.touch)return void a(!1);let l=0;const r=this.elements.progress.getBoundingClientRect();if(S.event(e))l=100/r.width*(e.pageX-r.left);else{if(!F(s,n))return;l=parseFloat(s.style.left,10)}l<0?l=0:l>100&&(l=100);const o=this.duration/100*l;s.innerText=Pe.formatTime(o);const c=null===(t=this.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(o)));c&&s.insertAdjacentHTML("afterbegin",`${c.label}<br>`),s.style.left=`${l}%`,S.event(e)&&["mouseenter","mouseleave"].includes(e.type)&&a("mouseenter"===e.type)},timeUpdate(e){const t=!S.element(this.elements.display.duration)&&this.config.invertTime;Pe.updateTimeDisplay.call(this,this.elements.display.currentTime,t?this.duration-this.currentTime:this.currentTime,t),e&&"timeupdate"===e.type&&this.media.seeking||Pe.updateProgress.call(this,e)},durationUpdate(){if(!this.supported.ui||!this.config.invertTime&&this.currentTime)return;if(this.duration>=2**32)return H(this.elements.display.currentTime,!0),void H(this.elements.progress,!0);S.element(this.elements.inputs.seek)&&this.elements.inputs.seek.setAttribute("aria-valuemax",this.duration);const e=S.element(this.elements.display.duration);!e&&this.config.displayDuration&&this.paused&&Pe.updateTimeDisplay.call(this,this.elements.display.currentTime,this.duration),e&&Pe.updateTimeDisplay.call(this,this.elements.display.duration,this.duration),this.config.markers.enabled&&Pe.setMarkers.call(this),Pe.updateSeekTooltip.call(this)},toggleMenuButton(e,t){H(this.elements.settings.buttons[e],!t)},updateSetting(e,t,i){const s=this.elements.settings.panels[e];let n=null,a=t;if("captions"===e)n=this.currentTrack;else{if(n=S.empty(i)?this[e]:i,S.empty(n)&&(n=this.config[e].default),!S.empty(this.options[e])&&!this.options[e].includes(n))return void this.debug.warn(`Unsupported value of '${n}' for ${e}`);if(!this.config[e].options.includes(n))return void this.debug.warn(`Disabled value of '${n}' for ${e}`)}if(S.element(a)||(a=s&&s.querySelector('[role="menu"]')),!S.element(a))return;this.elements.settings.buttons[e].querySelector(`.${this.config.classNames.menu.value}`).innerHTML=Pe.getLabel.call(this,e,n);const l=a&&a.querySelector(`[value="${n}"]`);S.element(l)&&(l.checked=!0)},getLabel(e,t){switch(e){case"speed":return 1===t?ve.get("normal",this.config):`${t}&times;`;case"quality":if(S.number(t)){const e=ve.get(`qualityLabel.${t}`,this.config);return e.length?e:`${t}p`}return ge(t);case"captions":return xe.getLabel.call(this);default:return null}},setQualityMenu(e){if(!S.element(this.elements.settings.panels.quality))return;const t="quality",i=this.elements.settings.panels.quality.querySelector('[role="menu"]');S.array(e)&&(this.options.quality=se(e).filter((e=>this.config.quality.options.includes(e))));const s=!S.empty(this.options.quality)&&this.options.quality.length>1;if(Pe.toggleMenuButton.call(this,t,s),j(i),Pe.checkMenu.call(this),!s)return;const n=e=>{const t=ve.get(`qualityBadge.${e}`,this.config);return t.length?Pe.createBadge.call(this,t):null};this.options.quality.sort(((e,t)=>{const i=this.config.quality.options;return i.indexOf(e)>i.indexOf(t)?1:-1})).forEach((e=>{Pe.createMenuItem.call(this,{value:e,list:i,type:t,title:Pe.getLabel.call(this,"quality",e),badge:n(e)})})),Pe.updateSetting.call(this,t,i)},setCaptionsMenu(){if(!S.element(this.elements.settings.panels.captions))return;const e="captions",t=this.elements.settings.panels.captions.querySelector('[role="menu"]'),i=xe.getTracks.call(this),s=Boolean(i.length);if(Pe.toggleMenuButton.call(this,e,s),j(t),Pe.checkMenu.call(this),!s)return;const n=i.map(((e,i)=>({value:i,checked:this.captions.toggled&&this.currentTrack===i,title:xe.getLabel.call(this,e),badge:e.language&&Pe.createBadge.call(this,e.language.toUpperCase()),list:t,type:"language"})));n.unshift({value:-1,checked:!this.captions.toggled,title:ve.get("disabled",this.config),list:t,type:"language"}),n.forEach(Pe.createMenuItem.bind(this)),Pe.updateSetting.call(this,e,t)},setSpeedMenu(){if(!S.element(this.elements.settings.panels.speed))return;const e="speed",t=this.elements.settings.panels.speed.querySelector('[role="menu"]');this.options.speed=this.options.speed.filter((e=>e>=this.minimumSpeed&&e<=this.maximumSpeed));const i=!S.empty(this.options.speed)&&this.options.speed.length>1;Pe.toggleMenuButton.call(this,e,i),j(t),Pe.checkMenu.call(this),i&&(this.options.speed.forEach((i=>{Pe.createMenuItem.call(this,{value:i,list:t,type:e,title:Pe.getLabel.call(this,"speed",i)})})),Pe.updateSetting.call(this,e,t))},checkMenu(){const{buttons:e}=this.elements.settings,t=!S.empty(e)&&Object.values(e).some((e=>!e.hidden));H(this.elements.settings.menu,!t)},focusFirstMenuItem(e,t=!1){if(this.elements.settings.popup.hidden)return;let i=e;S.element(i)||(i=Object.values(this.elements.settings.panels).find((e=>!e.hidden)));const s=i.querySelector('[role^="menuitem"]');W.call(this,s,t)},toggleMenu(e){const{popup:t}=this.elements.settings,i=this.elements.buttons.settings;if(!S.element(t)||!S.element(i))return;const{hidden:s}=t;let n=s;if(S.boolean(e))n=e;else if(S.keyboardEvent(e)&&"Escape"===e.key)n=!1;else if(S.event(e)){const s=S.function(e.composedPath)?e.composedPath()[0]:e.target,a=t.contains(s);if(a||!a&&e.target!==i&&n)return}i.setAttribute("aria-expanded",n),H(t,!n),R(this.elements.container,this.config.classNames.menu.open,n),n&&S.keyboardEvent(e)?Pe.focusFirstMenuItem.call(this,null,!0):n||s||W.call(this,i,S.keyboardEvent(e))},getMenuSize(e){const t=e.cloneNode(!0);t.style.position="absolute",t.style.opacity=0,t.removeAttribute("hidden"),e.parentNode.appendChild(t);const i=t.scrollWidth,s=t.scrollHeight;return O(t),{width:i,height:s}},showMenuPanel(e="",t=!1){const i=this.elements.container.querySelector(`#plyr-settings-${this.id}-${e}`);if(!S.element(i))return;const s=i.parentNode,n=Array.from(s.children).find((e=>!e.hidden));if(K.transitions&&!K.reducedMotion){s.style.width=`${n.scrollWidth}px`,s.style.height=`${n.scrollHeight}px`;const e=Pe.getMenuSize.call(this,i),t=e=>{e.target===s&&["width","height"].includes(e.propertyName)&&(s.style.width="",s.style.height="",J.call(this,s,E,t))};X.call(this,s,E,t),s.style.width=`${e.width}px`,s.style.height=`${e.height}px`}H(n,!0),H(i,!1),Pe.focusFirstMenuItem.call(this,i,t)},setDownloadUrl(){const e=this.elements.buttons.download;S.element(e)&&e.setAttribute("href",this.download)},create(e){const{bindMenuItemShortcuts:t,createButton:i,createProgress:s,createRange:n,createTime:a,setQualityMenu:l,setSpeedMenu:r,showMenuPanel:o}=Pe;this.elements.controls=null,S.array(this.config.controls)&&this.config.controls.includes("play-large")&&this.elements.container.appendChild(i.call(this,"play-large"));const c=$("div",D(this.config.selectors.controls.wrapper));this.elements.controls=c;const u={class:"plyr__controls__item"};return se(S.array(this.config.controls)?this.config.controls:[]).forEach((l=>{if("restart"===l&&c.appendChild(i.call(this,"restart",u)),"rewind"===l&&c.appendChild(i.call(this,"rewind",u)),"play"===l&&c.appendChild(i.call(this,"play",u)),"fast-forward"===l&&c.appendChild(i.call(this,"fast-forward",u)),"progress"===l){const t=$("div",{class:`${u.class} plyr__progress__container`}),i=$("div",D(this.config.selectors.progress));if(i.appendChild(n.call(this,"seek",{id:`plyr-seek-${e.id}`})),i.appendChild(s.call(this,"buffer")),this.config.tooltips.seek){const e=$("span",{class:this.config.classNames.tooltip},"00:00");i.appendChild(e),this.elements.display.seekTooltip=e}this.elements.progress=i,t.appendChild(this.elements.progress),c.appendChild(t)}if("current-time"===l&&c.appendChild(a.call(this,"currentTime",u)),"duration"===l&&c.appendChild(a.call(this,"duration",u)),"mute"===l||"volume"===l){let{volume:t}=this.elements;if(S.element(t)&&c.contains(t)||(t=$("div",x({},u,{class:`${u.class} plyr__volume`.trim()})),this.elements.volume=t,c.appendChild(t)),"mute"===l&&t.appendChild(i.call(this,"mute")),"volume"===l&&!M.isIos&&!M.isIPadOS){const i={max:1,step:.05,value:this.config.volume};t.appendChild(n.call(this,"volume",x(i,{id:`plyr-volume-${e.id}`})))}}if("captions"===l&&c.appendChild(i.call(this,"captions",u)),"settings"===l&&!S.empty(this.config.settings)){const s=$("div",x({},u,{class:`${u.class} plyr__menu`.trim(),hidden:""}));s.appendChild(i.call(this,"settings",{"aria-haspopup":!0,"aria-controls":`plyr-settings-${e.id}`,"aria-expanded":!1}));const n=$("div",{class:"plyr__menu__container",id:`plyr-settings-${e.id}`,hidden:""}),a=$("div"),l=$("div",{id:`plyr-settings-${e.id}-home`}),r=$("div",{role:"menu"});l.appendChild(r),a.appendChild(l),this.elements.settings.panels.home=l,this.config.settings.forEach((i=>{const s=$("button",x(D(this.config.selectors.buttons.settings),{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--forward`,role:"menuitem","aria-haspopup":!0,hidden:""}));t.call(this,s,i),X.call(this,s,"click",(()=>{o.call(this,i,!1)}));const n=$("span",null,ve.get(i,this.config)),l=$("span",{class:this.config.classNames.menu.value});l.innerHTML=e[i],n.appendChild(l),s.appendChild(n),r.appendChild(s);const c=$("div",{id:`plyr-settings-${e.id}-${i}`,hidden:""}),u=$("button",{type:"button",class:`${this.config.classNames.control} ${this.config.classNames.control}--back`});u.appendChild($("span",{"aria-hidden":!0},ve.get(i,this.config))),u.appendChild($("span",{class:this.config.classNames.hidden},ve.get("menuBack",this.config))),X.call(this,c,"keydown",(e=>{"ArrowLeft"===e.key&&(e.preventDefault(),e.stopPropagation(),o.call(this,"home",!0))}),!1),X.call(this,u,"click",(()=>{o.call(this,"home",!1)})),c.appendChild(u),c.appendChild($("div",{role:"menu"})),a.appendChild(c),this.elements.settings.buttons[i]=s,this.elements.settings.panels[i]=c})),n.appendChild(a),s.appendChild(n),c.appendChild(s),this.elements.settings.popup=n,this.elements.settings.menu=s}if("pip"===l&&K.pip&&c.appendChild(i.call(this,"pip",u)),"airplay"===l&&K.airplay&&c.appendChild(i.call(this,"airplay",u)),"download"===l){const e=x({},u,{element:"a",href:this.download,target:"_blank"});this.isHTML5&&(e.download="");const{download:t}=this.config.urls;!S.url(t)&&this.isEmbed&&x(e,{icon:`logo-${this.provider}`,label:this.provider}),c.appendChild(i.call(this,"download",e))}"fullscreen"===l&&c.appendChild(i.call(this,"fullscreen",u))})),this.isHTML5&&l.call(this,de.getQualityOptions.call(this)),r.call(this),c},inject(){if(this.config.loadSprite){const e=Pe.getIconUrl.call(this);e.cors&&ke(e.url,"sprite-plyr")}this.id=Math.floor(1e4*Math.random());let e=null;this.elements.controls=null;const t={id:this.id,seektime:this.config.seekTime,title:this.config.title};let i=!0;
vendor: 9,760 bytes, line 4187
4187S.function(this.config.controls)&&(this.config.controls=this.config.controls.call(this,t)),this.config.controls||(this.config.controls=[]),S.element(this.config.controls)||S.string(this.config.controls)?e=this.config.controls:(e=Pe.create.call(this,{id:this.id,seektime:this.config.seekTime,speed:this.speed,quality:this.quality,captions:xe.getLabel.call(this)}),i=!1);let s;i&&S.string(this.config.controls)&&(e=(e=>{let i=e;return Object.entries(t).forEach((([e,t])=>{i=pe(i,`{${e}}`,t)})),i})(e)),S.string(this.config.selectors.controls.container)&&(s=document.querySelector(this.config.selectors.controls.container)),S.element(s)||(s=this.elements.container);if(s[S.element(e)?"insertAdjacentElement":"insertAdjacentHTML"]("afterbegin",e),S.element(this.elements.controls)||Pe.findElements.call(this),!S.empty(this.elements.buttons)){const e=e=>{const t=this.config.classNames.controlPressed;e.setAttribute("aria-pressed","false"),Object.defineProperty(e,"pressed",{configurable:!0,enumerable:!0,get:()=>F(e,t),set(i=!1){R(e,t,i),e.setAttribute("aria-pressed",i?"true":"false")}})};Object.values(this.elements.buttons).filter(Boolean).forEach((t=>{S.array(t)||S.nodeList(t)?Array.from(t).filter(Boolean).forEach(e):e(t)}))}if(M.isEdge&&P(s),this.config.tooltips.controls){const{classNames:e,selectors:t}=this.config,i=`${t.controls.wrapper} ${t.labels} .${e.hidden}`,s=U.call(this,i);Array.from(s).forEach((e=>{R(e,this.config.classNames.hidden,!1),R(e,this.config.classNames.tooltip,!0)}))}},setMediaMetadata(){try{"mediaSession"in navigator&&(navigator.mediaSession.metadata=new window.MediaMetadata({title:this.config.mediaMetadata.title,artist:this.config.mediaMetadata.artist,album:this.config.mediaMetadata.album,artwork:this.config.mediaMetadata.artwork}))}catch(e){}},setMarkers(){var e,t;if(!this.duration||this.elements.markers)return;const i=null===(e=this.config.markers)||void 0===e||null===(t=e.points)||void 0===t?void 0:t.filter((({time:e})=>e>0&&e<this.duration));if(null==i||!i.length)return;const s=document.createDocumentFragment(),n=document.createDocumentFragment();let a=null;const l=`${this.config.classNames.tooltip}--visible`,r=e=>R(a,l,e);i.forEach((e=>{const t=$("span",{class:this.config.classNames.marker},""),i=e.time/this.duration*100+"%";a&&(t.addEventListener("mouseenter",(()=>{e.label||(a.style.left=i,a.innerHTML=e.label,r(!0))})),t.addEventListener("mouseleave",(()=>{r(!1)}))),t.addEventListener("click",(()=>{this.currentTime=e.time})),t.style.left=i,n.appendChild(t)})),s.appendChild(n),this.config.tooltips.seek||(a=$("span",{class:this.config.classNames.tooltip},""),s.appendChild(a)),this.elements.markers={points:n,tip:a},this.elements.progress.appendChild(s)}};function Me(e,t=!0){let i=e;if(t){const e=document.createElement("a");e.href=i,i=e.href}try{return new URL(i)}catch(e){return null}}function Ne(e){const t=new URLSearchParams;return S.object(e)&&Object.entries(e).forEach((([e,i])=>{t.set(e,i)})),t}const xe={setup(){if(!this.supported.ui)return;if(!this.isVideo||this.isYouTube||this.isHTML5&&!K.textTracks)return void(S.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&Pe.setCaptionsMenu.call(this));var e,t;if(S.element(this.elements.captions)||(this.elements.captions=$("div",D(this.config.selectors.captions)),this.elements.captions.setAttribute("dir","auto"),e=this.elements.captions,t=this.elements.wrapper,S.element(e)&&S.element(t)&&t.parentNode.insertBefore(e,t.nextSibling)),M.isIE&&window.URL){const e=this.media.querySelectorAll("track");Array.from(e).forEach((e=>{const t=e.getAttribute("src"),i=Me(t);null!==i&&i.hostname!==window.location.href.hostname&&["http:","https:"].includes(i.protocol)&&Te(t,"blob").then((t=>{e.setAttribute("src",window.URL.createObjectURL(t))})).catch((()=>{O(e)}))}))}const i=se((navigator.languages||[navigator.language||navigator.userLanguage||"en"]).map((e=>e.split("-")[0])));let s=(this.storage.get("language")||this.config.captions.language||"auto").toLowerCase();"auto"===s&&([s]=i);let n=this.storage.get("captions");if(S.boolean(n)||({active:n}=this.config.captions),Object.assign(this.captions,{toggled:!1,active:n,language:s,languages:i}),this.isHTML5){const e=this.config.captions.update?"addtrack removetrack":"removetrack";X.call(this,this.media.textTracks,e,xe.update.bind(this))}setTimeout(xe.update.bind(this),0)},update(){const e=xe.getTracks.call(this,!0),{active:t,language:i,meta:s,currentTrackNode:n}=this.captions,a=Boolean(e.find((e=>e.language===i)));this.isHTML5&&this.isVideo&&e.filter((e=>!s.get(e))).forEach((e=>{this.debug.log("Track added",e),s.set(e,{default:"showing"===e.mode}),"showing"===e.mode&&(e.mode="hidden"),X.call(this,e,"cuechange",(()=>xe.updateCues.call(this)))})),(a&&this.language!==i||!e.includes(n))&&(xe.setLanguage.call(this,i),xe.toggle.call(this,t&&a)),this.elements&&R(this.elements.container,this.config.classNames.captions.enabled,!S.empty(e)),S.array(this.config.controls)&&this.config.controls.includes("settings")&&this.config.settings.includes("captions")&&Pe.setCaptionsMenu.call(this)},toggle(e,t=!0){if(!this.supported.ui)return;const{toggled:i}=this.captions,s=this.config.classNames.captions.active,n=S.nullOrUndefined(e)?!i:e;if(n!==i){if(t||(this.captions.active=n,this.storage.set({captions:n})),!this.language&&n&&!t){const e=xe.getTracks.call(this),t=xe.findTrack.call(this,[this.captions.language,...this.captions.languages],!0);return this.captions.language=t.language,void xe.set.call(this,e.indexOf(t))}this.elements.buttons.captions&&(this.elements.buttons.captions.pressed=n),R(this.elements.container,s,n),this.captions.toggled=n,Pe.updateSetting.call(this,"captions"),Z.call(this,this.media,n?"captionsenabled":"captionsdisabled")}setTimeout((()=>{n&&this.captions.toggled&&(this.captions.currentTrackNode.mode="hidden")}))},set(e,t=!0){const i=xe.getTracks.call(this);if(-1!==e)if(S.number(e))if(e in i){if(this.captions.currentTrack!==e){this.captions.currentTrack=e;const s=i[e],{language:n}=s||{};this.captions.currentTrackNode=s,Pe.updateSetting.call(this,"captions"),t||(this.captions.language=n,this.storage.set({language:n})),this.isVimeo&&this.embed.enableTextTrack(n),Z.call(this,this.media,"languagechange")}xe.toggle.call(this,!0,t),this.isHTML5&&this.isVideo&&xe.updateCues.call(this)}else this.debug.warn("Track not found",e);else this.debug.warn("Invalid caption argument",e);else xe.toggle.call(this,!1,t)},setLanguage(e,t=!0){if(!S.string(e))return void this.debug.warn("Invalid language argument",e);const i=e.toLowerCase();this.captions.language=i;const s=xe.getTracks.call(this),n=xe.findTrack.call(this,[i]);xe.set.call(this,s.indexOf(n),t)},getTracks(e=!1){return Array.from((this.media||{}).textTracks||[]).filter((t=>!this.isHTML5||e||this.captions.meta.has(t))).filter((e=>["captions","subtitles"].includes(e.kind)))},findTrack(e,t=!1){const i=xe.getTracks.call(this),s=e=>Number((this.captions.meta.get(e)||{}).default),n=Array.from(i).sort(((e,t)=>s(t)-s(e)));let a;return e.every((e=>(a=n.find((t=>t.language===e)),!a))),a||(t?n[0]:void 0)},getCurrentTrack(){return xe.getTracks.call(this)[this.currentTrack]},getLabel(e){let t=e;return!S.track(t)&&K.textTracks&&this.captions.toggled&&(t=xe.getCurrentTrack.call(this)),S.track(t)?S.empty(t.label)?S.empty(t.language)?ve.get("enabled",this.config):e.language.toUpperCase():t.label:ve.get("disabled",this.config)},updateCues(e){if(!this.supported.ui)return;if(!S.element(this.elements.captions))return void this.debug.warn("No captions element to render to");if(!S.nullOrUndefined(e)&&!Array.isArray(e))return void this.debug.warn("updateCues: Invalid input",e);let t=e;if(!t){const e=xe.getCurrentTrack.call(this);t=Array.from((e||{}).activeCues||[]).map((e=>e.getCueAsHTML())).map(ye)}const i=t.map((e=>e.trim())).join("\n");if(i!==this.elements.captions.innerHTML){j(this.elements.captions);const e=$("span",D(this.config.selectors.caption));e.innerHTML=i,this.elements.captions.appendChild(e),Z.call(this,this.media,"cuechange")}}},Le={enabled:!0,title:"",debug:!1,autoplay:!1,autopause:!0,playsinline:!0,seekTime:10,volume:1,muted:!1,duration:null,displayDuration:!0,invertTime:!0,toggleInvert:!0,ratio:null,clickToPlay:!0,hideControls:!0,resetOnEnd:!1,disableContextMenu:!0,loadSprite:!0,iconPrefix:"plyr",iconUrl:"https://cdn.plyr.io/3.7.8/plyr.svg",blankVideo:"https://cdn.plyr.io/static/blank.mp4",quality:{default:576,options:[4320,2880,2160,1440,1080,720,576,480,360,240],forced:!1,onChange:null},loop:{active:!1},speed:{selected:1,options:[.5,.75,1,1.25,1.5,1.75,2,4]},keyboard:{focused:!0,global:!1},tooltips:{controls:!1,seek:!0},captions:{active:!1,language:"auto",update:!1},fullscreen:{enabled:!0,fallback:!0,iosNative:!1},storage:{enabled:!0,key:"plyr"},controls:["play-large","play","progress","current-time","mute","volume","captions","settings","pip","airplay","fullscreen"],settings:["captions","quality","speed"],i18n:{restart:"Restart",rewind:"Rewind {seektime}s",play:"Play",pause:"Pause",fastForward:"Forward {seektime}s",seek:"Seek",seekLabel:"{currentTime} of {duration}",played:"Played",buffered:"Buffered",currentTime:"Current time",duration:"Duration",volume:"Volume",mute:"Mute",unmute:"Unmute",enableCaptions:"Enable captions",disableCaptions:"Disable captions",download:"Download",enterFullscreen:"Enter fullscreen",exitFullscreen:"Exit fullscreen",frameTitle:"Player for {title}",captions:"Captions",settings:"Settings",pip:"PIP",menuBack:"Go back to previous menu",speed:"Speed",normal:"Normal",quality:"Quality",loop:"Loop",start:"Start",end:"End",all:"All",reset:"Reset",disabled:"Disabled",enabled:"Enabled",advertisement:"Ad",qualityBadge:{2160:"4K",1440:"HD",1080:"HD",720:"HD",576:"SD",480:"S
4187D"}},urls:{download:null,vimeo:{sdk:"https://player.vimeo.com/api/player.js",iframe:"https://player.vimeo.com/video/{0}?{1}",api:"https://vimeo.com/api/oembed.json?url={0}"},youtube:{sdk:"https://www.youtube.com/iframe_api",api:"https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}"},googleIMA:{sdk:"https://imasdk.googleapis.com/js/sdkloader/ima3.js"}},listeners:{seek:null,play:null,pause:null,restart:null,rewind:null,fastForward:null,mute:null,volume:null,captions:null,download:null,fullscreen:null,pip:null,airplay:null,speed:null,quality:null,loop:null,language:null},events:["ended","progress","stalled","playing","waiting","canplay","canplaythrough","loadstart","loadeddata","loadedmetadata","timeupdate","volumechange","play","pause","error","seeking","seeked","emptied","ratechange","cuechange","download","enterfullscreen","exitfullscreen","captionsenabled","captionsdisabled","languagechange","controlshidden","controlsshown","ready","statechange","qualitychange","adsloaded","adscontentpause","adscontentresume","adstarted","adsmidpoint","adscomplete","adsallcomplete","adsimpression","adsclick"],selectors:{editable:"input, textarea, select, [contenteditable]",container:".plyr",controls:{container:null,wrapper:".plyr__controls"},labels:"[data-plyr]",buttons:{play:'[data-plyr="play"]',pause:'[data-plyr="pause"]',restart:'[data-plyr="restart"]',rewind:'[data-plyr="rewind"]',fastForward:'[data-plyr="fast-forward"]',mute:'[data-plyr="mute"]',captions:'[data-plyr="captions"]',download:'[data-plyr="download"]',fullscreen:'[data-plyr="fullscreen"]',pip:'[data-plyr="pip"]',airplay:'[data-plyr="airplay"]',settings:'[data-plyr="settings"]',loop:'[data-plyr="loop"]'},inputs:{seek:'[data-plyr="seek"]',volume:'[data-plyr="volume"]',speed:'[data-plyr="speed"]',language:'[data-plyr="language"]',quality:'[data-plyr="quality"]'},display:{currentTime:".plyr__time--current",duration:".plyr__time--duration",buffer:".plyr__progress__buffer",loop:".plyr__progress__loop",volume:".plyr__volume--display"},progress:".plyr__progress",captions:".plyr__captions",caption:".plyr__caption"},classNames:{type:"plyr--{0}",provider:"plyr--{0}",video:"plyr__video-wrapper",embed:"plyr__video-embed",videoFixedRatio:"plyr__video-wrapper--fixed-ratio",embedContainer:"plyr__video-embed__container",poster:"plyr__poster",posterEnabled:"plyr__poster-enabled",ads:"plyr__ads",control:"plyr__control",controlPressed:"plyr__control--pressed",playing:"plyr--playing",paused:"plyr--paused",stopped:"plyr--stopped",loading:"plyr--loading",hover:"plyr--hover",tooltip:"plyr__tooltip",cues:"plyr__cues",marker:"plyr__progress__marker",hidden:"plyr__sr-only",hideControls:"plyr--hide-controls",isTouch:"plyr--is-touch",uiSupported:"plyr--full-ui",noTransition:"plyr--no-transition",display:{time:"plyr__time"},menu:{value:"plyr__menu__value",badge:"plyr__badge",open:"plyr--menu-open"},captions:{enabled:"plyr--captions-enabled",active:"plyr--captions-active"},fullscreen:{enabled:"plyr--fullscreen-enabled",fallback:"plyr--fullscreen-fallback"},pip:{supported:"plyr--pip-supported",active:"plyr--pip-active"},airplay:{supported:"plyr--airplay-supported",active:"plyr--airplay-active"},previewThumbnails:{thumbContainer:"plyr__preview-thumb",thumbContainerShown:"plyr__preview-thumb--is-shown",imageContainer:"plyr__preview-thumb__image-container",timeContainer:"plyr__preview-thumb__time-container",scrubbingContainer:"plyr__preview-scrubbing",scrubbingContainerShown:"plyr__preview-scrubbing--is-shown"}},attributes:{embed:{provider:"data-plyr-provider",id:"data-plyr-embed-id",hash:"data-plyr-embed-hash"}},ads:{enabled:!1,publisherId:"",tagUrl:""},previewThumbnails:{enabled:!1,src:""},vimeo:{byline:!1,portrait:!1,title:!1,speed:!0,transparent:!1,customControls:!0,referrerPolicy:null,premium:!1},youtube:{rel:0,showinfo:0,iv_load_policy:3,modestbranding:1,customControls:!0,noCookie:!1},mediaMetadata:{title:"",artist:"",album:"",artwork:[]},markers:{enabled:!1,points:[]}},Ie="picture-in-picture",$e="inline",_e={html5:"html5",youtube:"youtube",vimeo:"vimeo"},Oe="audio",je="video";const qe=()=>{};class De{constructor(e=!1){this.enabled=window.console&&e,this.enabled&&this.log("Debugging enabled")}get log(){return this.enabled?Function.prototype.bind.call(console.log,console):qe}get warn(){return this.enabled?Function.prototype.bind.call(console.warn,console):qe}get error(){return this.enabled?Function.prototype.bind.call(console.error,console):qe}}class He{constructor(t){e(this,"onChange",(()=>{if(!this.supported)return;const e=this.player.elements.buttons.fullscreen;
vendor: 9,478 bytes, line 4187
4187S.element(e)&&(e.pressed=this.active);const t=this.target===this.player.media?this.target:this.player.elements.container;Z.call(this.player,t,this.active?"enterfullscreen":"exitfullscreen",!0)})),e(this,"toggleFallback",((e=!1)=>{if(e?this.scrollPosition={x:window.scrollX??0,y:window.scrollY??0}:window.scrollTo(this.scrollPosition.x,this.scrollPosition.y),document.body.style.overflow=e?"hidden":"",R(this.target,this.player.config.classNames.fullscreen.fallback,e),M.isIos){let t=document.head.querySelector('meta[name="viewport"]');const i="viewport-fit=cover";t||(t=document.createElement("meta"),t.setAttribute("name","viewport"));const s=S.string(t.content)&&t.content.includes(i);e?(this.cleanupViewport=!s,s||(t.content+=`,${i}`)):this.cleanupViewport&&(t.content=t.content.split(",").filter((e=>e.trim()!==i)).join(","))}this.onChange()})),e(this,"trapFocus",(e=>{if(M.isIos||M.isIPadOS||!this.active||"Tab"!==e.key)return;const t=document.activeElement,i=U.call(this.player,"a[href], button:not(:disabled), input:not(:disabled), [tabindex]"),[s]=i,n=i[i.length-1];t!==n||e.shiftKey?t===s&&e.shiftKey&&(n.focus(),e.preventDefault()):(s.focus(),e.preventDefault())})),e(this,"update",(()=>{if(this.supported){let e;e=this.forceFallback?"Fallback (forced)":He.nativeSupported?"Native":"Fallback",this.player.debug.log(`${e} fullscreen enabled`)}else this.player.debug.log("Fullscreen not supported and fallback disabled");R(this.player.elements.container,this.player.config.classNames.fullscreen.enabled,this.supported)})),e(this,"enter",(()=>{this.supported&&(M.isIos&&this.player.config.fullscreen.iosNative?this.player.isVimeo?this.player.embed.requestFullscreen():this.target.webkitEnterFullscreen():!He.nativeSupported||this.forceFallback?this.toggleFallback(!0):this.prefix?S.empty(this.prefix)||this.target[`${this.prefix}Request${this.property}`]():this.target.requestFullscreen({navigationUI:"hide"}))})),e(this,"exit",(()=>{if(this.supported)if(M.isIos&&this.player.config.fullscreen.iosNative)this.player.isVimeo?this.player.embed.exitFullscreen():this.target.webkitEnterFullscreen(),ie(this.player.play());else if(!He.nativeSupported||this.forceFallback)this.toggleFallback(!1);else if(this.prefix){if(!S.empty(this.prefix)){const e="moz"===this.prefix?"Cancel":"Exit";document[`${this.prefix}${e}${this.property}`]()}}else(document.cancelFullScreen||document.exitFullscreen).call(document)})),e(this,"toggle",(()=>{this.active?this.exit():this.enter()})),this.player=t,this.prefix=He.prefix,this.property=He.property,this.scrollPosition={x:0,y:0},this.forceFallback="force"===t.config.fullscreen.fallback,this.player.elements.fullscreen=t.config.fullscreen.container&&function(e,t){const{prototype:i}=Element;return(i.closest||function(){let e=this;do{if(V.matches(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null}).call(e,t)}(this.player.elements.container,t.config.fullscreen.container),X.call(this.player,document,"ms"===this.prefix?"MSFullscreenChange":`${this.prefix}fullscreenchange`,(()=>{this.onChange()})),X.call(this.player,this.player.elements.container,"dblclick",(e=>{S.element(this.player.elements.controls)&&this.player.elements.controls.contains(e.target)||this.player.listeners.proxy(e,this.toggle,"fullscreen")})),X.call(this,this.player.elements.container,"keydown",(e=>this.trapFocus(e))),this.update()}static get nativeSupported(){return!!(document.fullscreenEnabled||document.webkitFullscreenEnabled||document.mozFullScreenEnabled||document.msFullscreenEnabled)}get useNative(){return He.nativeSupported&&!this.forceFallback}static get prefix(){if(S.function(document.exitFullscreen))return"";let e="";return["webkit","moz","ms"].some((t=>!(!S.function(document[`${t}ExitFullscreen`])&&!S.function(document[`${t}CancelFullScreen`]))&&(e=t,!0))),e}static get property(){return"moz"===this.prefix?"FullScreen":"Fullscreen"}get supported(){return[this.player.config.fullscreen.enabled,this.player.isVideo,He.nativeSupported||this.player.config.fullscreen.fallback,!this.player.isYouTube||He.nativeSupported||!M.isIos||this.player.config.playsinline&&!this.player.config.fullscreen.iosNative].every(Boolean)}get active(){if(!this.supported)return!1;if(!He.nativeSupported||this.forceFallback)return F(this.target,this.player.config.classNames.fullscreen.fallback);const e=this.prefix?this.target.getRootNode()[`${this.prefix}${this.property}Element`]:this.target.getRootNode().fullscreenElement;return e&&e.shadowRoot?e===this.target.getRootNode().host:e===this.target}get target(){return M.isIos&&this.player.config.fullscreen.iosNative?this.player.media:this.player.elements.fullscreen??this.player.elements.container}}function Re(e,t=1){return new Promise(((i,s)=>{const n=new Image,a=()=>{delete n.onload,delete n.onerror,(n.naturalWidth>=t?i:s)(n)};Object.assign(n,{onload:a,onerror:a,src:e})}))}const Fe={addStyleHook(){R(this.elements.container,this.config.selectors.container.replace(".",""),!0),R(this.elements.container,this.config.classNames.uiSupported,this.supported.ui)},toggleNativeControls(e=!1){e&&this.isHTML5?this.media.setAttribute("controls",""):this.media.removeAttribute("controls")},build(){if(this.listeners.media(),!this.supported.ui)return this.debug.warn(`Basic support only for ${this.provider} ${this.type}`),void Fe.toggleNativeControls.call(this,!0);S.element(this.elements.controls)||(Pe.inject.call(this),this.listeners.controls()),Fe.toggleNativeControls.call(this),this.isHTML5&&xe.setup.call(this),this.volume=null,this.muted=null,this.loop=null,this.quality=null,this.speed=null,Pe.updateVolume.call(this),Pe.timeUpdate.call(this),Pe.durationUpdate.call(this),Fe.checkPlaying.call(this),R(this.elements.container,this.config.classNames.pip.supported,K.pip&&this.isHTML5&&this.isVideo),R(this.elements.container,this.config.classNames.airplay.supported,K.airplay&&this.isHTML5),R(this.elements.container,this.config.classNames.isTouch,this.touch),this.ready=!0,setTimeout((()=>{Z.call(this,this.media,"ready")}),0),Fe.setTitle.call(this),this.poster&&Fe.setPoster.call(this,this.poster,!1).catch((()=>{})),this.config.duration&&Pe.durationUpdate.call(this),this.config.mediaMetadata&&Pe.setMediaMetadata.call(this)},setTitle(){let e=ve.get("play",this.config);if(S.string(this.config.title)&&!S.empty(this.config.title)&&(e+=`, ${this.config.title}`),Array.from(this.elements.buttons.play||[]).forEach((t=>{t.setAttribute("aria-label",e)})),this.isEmbed){const e=B.call(this,"iframe");if(!S.element(e))return;const t=S.empty(this.config.title)?"video":this.config.title,i=ve.get("frameTitle",this.config);e.setAttribute("title",i.replace("{title}",t))}},togglePoster(e){R(this.elements.container,this.config.classNames.posterEnabled,e)},setPoster(e,t=!0){return t&&this.poster?Promise.reject(new Error("Poster already set")):(this.media.setAttribute("data-poster",e),this.elements.poster.removeAttribute("hidden"),te.call(this).then((()=>Re(e))).catch((t=>{throw e===this.poster&&Fe.togglePoster.call(this,!1),t})).then((()=>{if(e!==this.poster)throw new Error("setPoster cancelled by later call to setPoster")})).then((()=>(Object.assign(this.elements.poster.style,{backgroundImage:`url('${e}')`,backgroundSize:""}),Fe.togglePoster.call(this,!0),e))))},checkPlaying(e){R(this.elements.container,this.config.classNames.playing,this.playing),R(this.elements.container,this.config.classNames.paused,this.paused),R(this.elements.container,this.config.classNames.stopped,this.stopped),Array.from(this.elements.buttons.play||[]).forEach((e=>{Object.assign(e,{pressed:this.playing}),e.setAttribute("aria-label",ve.get(this.playing?"pause":"play",this.config))})),S.event(e)&&"timeupdate"===e.type||Fe.toggleControls.call(this)},checkLoading(e){this.loading=["stalled","waiting"].includes(e.type),clearTimeout(this.timers.loading),this.timers.loading=setTimeout((()=>{R(this.elements.container,this.config.classNames.loading,this.loading),Fe.toggleControls.call(this)}),this.loading?250:0)},toggleControls(e){const{controls:t}=this.elements;if(t&&this.config.hideControls){const i=this.touch&&this.lastSeekTime+2e3>Date.now();this.toggleControls(Boolean(e||this.loading||this.paused||t.pressed||t.hover||i))}},migrateStyles(){Object.values({...this.media.style}).filter((e=>!S.empty(e)&&S.string(e)&&e.startsWith("--plyr"))).forEach((e=>{this.elements.container.style.setProperty(e,this.media.style.getPropertyValue(e)),this.media.style.removeProperty(e)})),S.empty(this.media.style)&&this.media.removeAttribute("style")}};class Ve{constructor(t){e(this,"firstTouch",(()=>{const{player:e}=this,{elements:t}=e;e.touch=!0,R(t.container,e.config.classNames.isTouch,!0)})),e(this,"global",((e=!0)=>{const{player:t}=this;t.config.keyboard.global&&Q.call(t,window,"keydown keyup",this.handleKey,e,!1),Q.call(t,document.body,"click",this.toggleMenu,e),G.call(t,document.body,"touchstart",this.firstTouch)})),e(this,"container",(()=>{const{player:e}=this,{config:t,elements:i,timers:s}=e;!t.keyboard.global&&t.keyboard.focused&&X.call(e,i.container,"keydown keyup",this.handleKey,!1),X.call(e,i.container,"mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen",(t=>{const{controls:n}=i;n&&"enterfullscreen"===t.type&&(n.pressed=!1,n.hover=!1);let a=0;["touchstart","touchmove","mousemove"].includes(t.type)&&(Fe.toggleControls.call(e,!0),a=e.touch?3e3:2e3),clearTimeout(s.controls),s.controls=setTimeout((()=>Fe.toggleControls.call(e,!1)),a)}));const n=()=>
vendor: 1,590 bytes, line 4187
4187{if(!e.isVimeo||e.config.vimeo.premium)return;const t=i.wrapper,{active:s}=e.fullscreen,[n,a]=ce.call(e),l=ae(`aspect-ratio: ${n} / ${a}`);if(!s)return void(l?(t.style.width=null,t.style.height=null):(t.style.maxWidth=null,t.style.margin=null));const[r,o]=[Math.max(document.documentElement.clientWidth||0,window.innerWidth||0),Math.max(document.documentElement.clientHeight||0,window.innerHeight||0)],c=r/o>n/a;l?(t.style.width=c?"auto":"100%",t.style.height=c?"100%":"auto"):(t.style.maxWidth=c?o/a*n+"px":null,t.style.margin=c?"0 auto":null)},a=()=>{clearTimeout(s.resized),s.resized=setTimeout(n,50)};X.call(e,i.container,"enterfullscreen exitfullscreen",(t=>{const{target:s}=e.fullscreen;if(s!==i.container)return;if(!e.isEmbed&&S.empty(e.config.ratio))return;n();("enterfullscreen"===t.type?X:J).call(e,window,"resize",a)}))})),e(this,"media",(()=>{const{player:e}=this,{elements:t}=e;if(X.call(e,e.media,"timeupdate seeking seeked",(t=>Pe.timeUpdate.call(e,t))),X.call(e,e.media,"durationchange loadeddata loadedmetadata",(t=>Pe.durationUpdate.call(e,t))),X.call(e,e.media,"ended",(()=>{e.isHTML5&&e.isVideo&&e.config.resetOnEnd&&(e.restart(),e.pause())})),X.call(e,e.media,"progress playing seeking seeked",(t=>Pe.updateProgress.call(e,t))),X.call(e,e.media,"volumechange",(t=>Pe.updateVolume.call(e,t))),X.call(e,e.media,"playing play pause ended emptied timeupdate",(t=>Fe.checkPlaying.call(e,t))),X.call(e,e.media,"waiting canplay seeked playing",(t=>Fe.checkLoading.call(e,t))),e.supported.ui&&e.config.clickToPlay&&!e.isAudio){const i=B.call(e,`.${e.config.classNames.video}`);
vendor: 16,023 bytes, line 4187
4187if(!S.element(i))return;X.call(e,t.container,"click",(s=>{([t.container,i].includes(s.target)||i.contains(s.target))&&(e.touch&&e.config.hideControls||(e.ended?(this.proxy(s,e.restart,"restart"),this.proxy(s,(()=>{ie(e.play())}),"play")):this.proxy(s,(()=>{ie(e.togglePlay())}),"play")))}))}e.supported.ui&&e.config.disableContextMenu&&X.call(e,t.wrapper,"contextmenu",(e=>{e.preventDefault()}),!1),X.call(e,e.media,"volumechange",(()=>{e.storage.set({volume:e.volume,muted:e.muted})})),X.call(e,e.media,"ratechange",(()=>{Pe.updateSetting.call(e,"speed"),e.storage.set({speed:e.speed})})),X.call(e,e.media,"qualitychange",(t=>{Pe.updateSetting.call(e,"quality",null,t.detail.quality)})),X.call(e,e.media,"ready qualitychange",(()=>{Pe.setDownloadUrl.call(e)}));const i=e.config.events.concat(["keyup","keydown"]).join(" ");X.call(e,e.media,i,(i=>{let{detail:s={}}=i;"error"===i.type&&(s=e.media.error),Z.call(e,t.container,i.type,!0,s)}))})),e(this,"proxy",((e,t,i)=>{const{player:s}=this,n=s.config.listeners[i];let a=!0;S.function(n)&&(a=n.call(s,e)),!1!==a&&S.function(t)&&t.call(s,e)})),e(this,"bind",((e,t,i,s,n=!0)=>{const{player:a}=this,l=a.config.listeners[s],r=S.function(l);X.call(a,e,t,(e=>this.proxy(e,i,s)),n&&!r)})),e(this,"controls",(()=>{const{player:e}=this,{elements:t}=e,i=M.isIE?"change":"input";if(t.buttons.play&&Array.from(t.buttons.play).forEach((t=>{this.bind(t,"click",(()=>{ie(e.togglePlay())}),"play")})),this.bind(t.buttons.restart,"click",e.restart,"restart"),this.bind(t.buttons.rewind,"click",(()=>{e.lastSeekTime=Date.now(),e.rewind()}),"rewind"),this.bind(t.buttons.fastForward,"click",(()=>{e.lastSeekTime=Date.now(),e.forward()}),"fastForward"),this.bind(t.buttons.mute,"click",(()=>{e.muted=!e.muted}),"mute"),this.bind(t.buttons.captions,"click",(()=>e.toggleCaptions())),this.bind(t.buttons.download,"click",(()=>{Z.call(e,e.media,"download")}),"download"),this.bind(t.buttons.fullscreen,"click",(()=>{e.fullscreen.toggle()}),"fullscreen"),this.bind(t.buttons.pip,"click",(()=>{e.pip="toggle"}),"pip"),this.bind(t.buttons.airplay,"click",e.airplay,"airplay"),this.bind(t.buttons.settings,"click",(t=>{t.stopPropagation(),t.preventDefault(),Pe.toggleMenu.call(e,t)}),null,!1),this.bind(t.buttons.settings,"keyup",(t=>{[" ","Enter"].includes(t.key)&&("Enter"!==t.key?(t.preventDefault(),t.stopPropagation(),Pe.toggleMenu.call(e,t)):Pe.focusFirstMenuItem.call(e,null,!0))}),null,!1),this.bind(t.settings.menu,"keydown",(t=>{"Escape"===t.key&&Pe.toggleMenu.call(e,t)})),this.bind(t.inputs.seek,"mousedown mousemove",(e=>{const i=t.progress.getBoundingClientRect(),s=100/i.width*(e.pageX-i.left);e.currentTarget.setAttribute("seek-value",s)})),this.bind(t.inputs.seek,"mousedown mouseup keydown keyup touchstart touchend",(t=>{const i=t.currentTarget,s="play-on-seeked";if(S.keyboardEvent(t)&&!["ArrowLeft","ArrowRight"].includes(t.key))return;e.lastSeekTime=Date.now();const n=i.hasAttribute(s),a=["mouseup","touchend","keyup"].includes(t.type);n&&a?(i.removeAttribute(s),ie(e.play())):!a&&e.playing&&(i.setAttribute(s,""),e.pause())})),M.isIos){const t=U.call(e,'input[type="range"]');Array.from(t).forEach((e=>this.bind(e,i,(e=>P(e.target)))))}this.bind(t.inputs.seek,i,(t=>{const i=t.currentTarget;let s=i.getAttribute("seek-value");S.empty(s)&&(s=i.value),i.removeAttribute("seek-value"),e.currentTime=s/i.max*e.duration}),"seek"),this.bind(t.progress,"mouseenter mouseleave mousemove",(t=>Pe.updateSeekTooltip.call(e,t))),this.bind(t.progress,"mousemove touchmove",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startMove(t)})),this.bind(t.progress,"mouseleave touchend click",(()=>{const{previewThumbnails:t}=e;t&&t.loaded&&t.endMove(!1,!0)})),this.bind(t.progress,"mousedown touchstart",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.startScrubbing(t)})),this.bind(t.progress,"mouseup touchend",(t=>{const{previewThumbnails:i}=e;i&&i.loaded&&i.endScrubbing(t)})),M.isWebKit&&Array.from(U.call(e,'input[type="range"]')).forEach((t=>{this.bind(t,"input",(t=>Pe.updateRangeFill.call(e,t.target)))})),e.config.toggleInvert&&!S.element(t.display.duration)&&this.bind(t.display.currentTime,"click",(()=>{0!==e.currentTime&&(e.config.invertTime=!e.config.invertTime,Pe.timeUpdate.call(e))})),this.bind(t.inputs.volume,i,(t=>{e.volume=t.target.value}),"volume"),this.bind(t.controls,"mouseenter mouseleave",(i=>{t.controls.hover=!e.touch&&"mouseenter"===i.type})),t.fullscreen&&Array.from(t.fullscreen.children).filter((e=>!e.contains(t.container))).forEach((i=>{this.bind(i,"mouseenter mouseleave",(i=>{t.controls&&(t.controls.hover=!e.touch&&"mouseenter"===i.type)}))})),this.bind(t.controls,"mousedown mouseup touchstart touchend touchcancel",(e=>{t.controls.pressed=["mousedown","touchstart"].includes(e.type)})),this.bind(t.controls,"focusin",(()=>{const{config:i,timers:s}=e;R(t.controls,i.classNames.noTransition,!0),Fe.toggleControls.call(e,!0),setTimeout((()=>{R(t.controls,i.classNames.noTransition,!1)}),0);const n=this.touch?3e3:4e3;clearTimeout(s.controls),s.controls=setTimeout((()=>Fe.toggleControls.call(e,!1)),n)})),this.bind(t.inputs.volume,"wheel",(t=>{const i=t.webkitDirectionInvertedFromDevice,[s,n]=[t.deltaX,-t.deltaY].map((e=>i?-e:e)),a=Math.sign(Math.abs(s)>Math.abs(n)?s:n);e.increaseVolume(a/50);const{volume:l}=e.media;(1===a&&l<1||-1===a&&l>0)&&t.preventDefault()}),"volume",!1)})),this.player=t,this.lastKey=null,this.focusTimer=null,this.lastKeyDown=null,this.handleKey=this.handleKey.bind(this),this.toggleMenu=this.toggleMenu.bind(this),this.firstTouch=this.firstTouch.bind(this)}handleKey(e){const{player:t}=this,{elements:i}=t,{key:s,type:n,altKey:a,ctrlKey:l,metaKey:r,shiftKey:o}=e,c="keydown"===n,u=c&&s===this.lastKey;if(a||l||r||o)return;if(!s)return;if(c){const n=document.activeElement;if(S.element(n)){const{editable:s}=t.config.selectors,{seek:a}=i.inputs;if(n!==a&&V(n,s))return;if(" "===e.key&&V(n,'button, [role^="menuitem"]'))return}switch([" ","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","0","1","2","3","4","5","6","7","8","9","c","f","k","l","m"].includes(s)&&(e.preventDefault(),e.stopPropagation()),s){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":u||(h=parseInt(s,10),t.currentTime=t.duration/10*h);break;case" ":case"k":u||ie(t.togglePlay());break;case"ArrowUp":t.increaseVolume(.1);break;case"ArrowDown":t.decreaseVolume(.1);break;case"m":u||(t.muted=!t.muted);break;case"ArrowRight":t.forward();break;case"ArrowLeft":t.rewind();break;case"f":t.fullscreen.toggle();break;case"c":u||t.toggleCaptions();break;case"l":t.loop=!t.loop}"Escape"===s&&!t.fullscreen.usingNative&&t.fullscreen.active&&t.fullscreen.toggle(),this.lastKey=s}else this.lastKey=null;var h}toggleMenu(e){Pe.toggleMenu.call(this.player,e)}}"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self&&self;var Ue=function(e,t){return e(t={exports:{}},t.exports),t.exports}((function(e,t){e.exports=function(){var e=function(){},t={},i={},s={};function n(e,t){e=e.push?e:[e];var n,a,l,r=[],o=e.length,c=o;for(n=function(e,i){i.length&&r.push(e),--c||t(r)};o--;)a=e[o],(l=i[a])?n(a,l):(s[a]=s[a]||[]).push(n)}function a(e,t){if(e){var n=s[e];if(i[e]=t,n)for(;n.length;)n[0](e,t),n.splice(0,1)}}function l(t,i){t.call&&(t={success:t}),i.length?(t.error||e)(i):(t.success||e)(t)}function r(t,i,s,n){var a,l,o=document,c=s.async,u=(s.numRetries||0)+1,h=s.before||e,d=t.replace(/[\?|#].*$/,""),m=t.replace(/^(css|img)!/,"");n=n||0,/(^css!|\.css$)/.test(d)?((l=o.createElement("link")).rel="stylesheet",l.href=m,(a="hideFocus"in l)&&l.relList&&(a=0,l.rel="preload",l.as="style")):/(^img!|\.(png|gif|jpg|svg|webp)$)/.test(d)?(l=o.createElement("img")).src=m:((l=o.createElement("script")).src=t,l.async=void 0===c||c),l.onload=l.onerror=l.onbeforeload=function(e){var o=e.type[0];if(a)try{l.sheet.cssText.length||(o="e")}catch(e){18!=e.code&&(o="e")}if("e"==o){if((n+=1)<u)return r(t,i,s,n)}else if("preload"==l.rel&&"style"==l.as)return l.rel="stylesheet";i(t,o,e.defaultPrevented)},!1!==h(t,l)&&o.head.appendChild(l)}function o(e,t,i){var s,n,a=(e=e.push?e:[e]).length,l=a,o=[];for(s=function(e,i,s){if("e"==i&&o.push(e),"b"==i){if(!s)return;o.push(e)}--a||t(o)},n=0;n<l;n++)r(e[n],s,i)}function c(e,i,s){var n,r;if(i&&i.trim&&(n=i),r=(n?s:i)||{},n){if(n in t)throw"LoadJS";t[n]=!0}function c(t,i){o(e,(function(e){l(r,e),t&&l({success:t,error:i},e),a(n,e)}),r)}if(r.returnPromise)return new Promise(c);c()}return c.ready=function(e,t){return n(e,(function(e){l(t,e)})),c},c.done=function(e){a(e,[])},c.reset=function(){t={},i={},s={}},c.isDefined=function(e){return e in t},c}()}));function Be(e){return new Promise(((t,i)=>{Ue(e,{success:t,error:i})}))}function We(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,Z.call(this,this.media,e?"play":"pause"))}const ze={setup(){const e=this;R(e.elements.wrapper,e.config.classNames.embed,!0),e.options.speed=e.config.speed.options,ue.call(e),S.object(window.Vimeo)?ze.ready.call(e):Be(e.config.urls.vimeo.sdk).then((()=>{ze.ready.call(e)})).catch((t=>{e.debug.warn("Vimeo SDK (player.js) failed to load",t)}))},ready(){const e=this,t=e.config.vimeo,{premium:i,referrerPolicy:s,...n}=t;let a=e.media.getAttribute("src"),l="";S.empty(a)?(a=e.media.getAttribute(e.config.attributes.embed.id),l=e.media.getAttribute(e.config.attributes.embed.hash)):l=function(e){const t=e.match(/^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/);return t&&5===t.length?t[4]:null}(a);const r=l?{h:l}:{};i&&Object.assign(n,{controls:!1,sidedock:!1});const o=Ne({loop:e.config.loop.active,autoplay:e.autoplay,muted:e.muted,gesture:"media",playsinline:e.config.playsinline,...r,...n}),c=(u=a,S.empty(u)?null:S.number(Number(u))?u:u.match(/^.*(vimeo.com\/|video\/)(\d+).*/)?RegExp.$2:u);var u;const h=$("iframe"),d=me(e.config.urls.vimeo.iframe,c,o);if(h.setAttribute("src",d),h.setAttribute("allowfullscreen",""),h.setAttribute("allow",["autoplay","fullscreen","picture-in-picture","encrypted-media","accelerometer","gyroscope"].join("; ")),S.empty(s)||h.setAttribute("referrerPolicy",s),i||!t.customControls)h.setAttribute("data-poster",e.poster),e.media=q(h,e.media);else{const t=$("div",{class:e.config.classNames.embedContainer,"data-poster":e.poster});t.appendChild(h),e.media=q(t,e.media)}t.customControls||Te(me(e.config.urls.vimeo.api,d)).then((t=>{!S.empty(t)&&t.thumbnail_url&&Fe.setPoster.call(e,t.thumbnail_url).catch((()=>{}))})),e.embed=new window.Vimeo.Player(h,{autopause:e.config.autopause,muted:e.muted}),e.media.paused=!0,e.media.currentTime=0,e.supported.ui&&e.embed.disableTextTrack(),e.media.play=()=>(We.call(e,!0),e.embed.play()),e.media.pause=()=>(We.call(e,!1),e.embed.pause()),e.media.stop=()=>{e.pause(),e.currentTime=0};let{currentTime:m}=e.media;Object.defineProperty(e.media,"currentTime",{get:()=>m,set(t){const{embed:i,media:s,paused:n,volume:a}=e,l=n&&!i.hasPlayed;s.seeking=!0,Z.call(e,s,"seeking"),Promise.resolve(l&&i.setVolume(0)).then((()=>i.setCurrentTime(t))).then((()=>l&&i.pause())).then((()=>l&&i.setVolume(a))).catch((()=>{}))}});let p=e.config.speed.selected;Object.defineProperty(e.media,"playbackRate",{get:()=>p,set(t){e.embed.setPlaybackRate(t).then((()=>{p=t,Z.call(e,e.media,"ratechange")})).catch((()=>{e.options.speed=[1]}))}});let{volume:g}=e.config;Object.defineProperty(e.media,"volume",{get:()=>g,set(t){e.embed.setVolume(t).then((()=>{g=t,Z.call(e,e.media,"volumechange")}))}});let{muted:f}=e.config;Object.defineProperty(e.media,"muted",{get:()=>f,set(t){const i=!!S.boolean(t)&&t;e.embed.setMuted(!!i||e.config.muted).then((()=>{f=i,Z.call(e,e.media,"volumechange")}))}});let y,{loop:b}=e.config;Object.defineProperty(e.media,"loop",{get:()=>b,set(t){const i=S.boolean(t)?t:e.config.loop.active;e.embed.setLoop(i).then((()=>{b=i}))}}),e.embed.getVideoUrl().then((t=>{y=t,Pe.setDownloadUrl.call(e)})).catch((e=>{this.debug.warn(e)})),Object.defineProperty(e.media,"currentSrc",{get:()=>y}),Object.defineProperty(e.media,"ended",{get:()=>e.currentTime===e.duration}),Promise.all([e.embed.getVideoWidth(),e.embed.getVideoHeight()]).then((t=>{const[i,s]=t;e.embed.ratio=he(i,s),ue.call(this)})),e.embed.setAutopause(e.config.autopause).then((t=>{e.config.autopause=t})),e.embed.getVideoTitle().then((t=>{e.config.title=t,Fe.setTitle.call(this)})),e.embed.getCurrentTime().then((t=>{m=t,Z.call(e,e.media,"timeupdate")})),e.embed.getDuration().then((t=>{e.media.duration=t,Z.call(e,e.media,"durationchange")})),e.embed.getTextTracks().then((t=>{e.media.textTracks=t,xe.setup.call(e)})),e.embed.on("cuechange",(({cues:t=[]})=>{const i=t.map((e=>function(e){const t=document.createDocumentFragment(),i=document.createElement("div");return t.appendChild(i),i.innerHTML=e,t.firstChild.innerText}(e.text)));xe.updateCues.call(e,i)})),e.embed.on("loaded",(()=>{if(e.embed.getPaused().then((t=>{We.call(e,!t),t||Z.call(e,e.media,"playing")})),S.element(e.embed.element)&&e.supported.ui){e.embed.element.setAttribute("tabindex",-1)}})),e.embed.on("bufferstart",(()=>{Z.call(e,e.media,"waiting")})),e.embed.on("bufferend",(()=>{Z.call(e,e.media,"playing")})),e.embed.on("play",(()=>{We.call(e,!0),Z.call(e,e.media,"playing")})),e.embed.on("pause",(()=>{We.call(e,!1)})),e.embed.on("timeupdate",(t=>{e.media.seeking=!1,m=t.seconds,Z.call(e,e.media,"timeupdate")})),e.embed.on("progress",(t=>{e.media.buffered=t.percent,Z.call(e,e.media,"progress"),1===parseInt(t.percent,10)&&Z.call(e,e.media,"canplaythrough"),e.embed.getDuration().then((t=>{t!==e.media.duration&&(e.media.duration=t,Z.call(e,e.media,"durationchange"))}))})),e.embed.on("seeked",(()=>{e.media.seeking=!1,Z.call(e,e.media,"seeked")})),e.embed.on("ended",(()=>{e.media.paused=!0,Z.call(e,e.media,"ended")})),e.embed.on("error",(t=>{e.media.error=t,Z.call(e,e.media,"error")})),t.customControls&&setTimeout((()=>Fe.build.call(e)),0)}};function Ke(e){e&&!this.embed.hasPlayed&&(this.embed.hasPlayed=!0),this.media.paused===e&&(this.media.paused=!e,Z.call(this,this.media,e?"play":"pause"))}function Ye(e){return e.noCookie?"https://www.youtube-nocookie.com":"http:"===window.location.protocol?"http://www.youtube.com":void 0}const Qe={setup(){if(R(this.elements.wrapper,this.config.classNames.embed,!0),S.object(window.YT)&&S.function(window.YT.Player))Qe.ready.call(this);else{const e=window.onYouTubeIframeAPIReady;window.onYouTubeIframeAPIReady=()=>{S.function(e)&&e(),Qe.ready.call(this)},Be(this.config.urls.youtube.sdk).catch((e=>{this.debug.warn("YouTube API failed to load",e)}))}},getTitle(e){Te(me(this.config.urls.youtube.api,e)).then((e=>{if(S.object(e)){const{title:t,height:i,width:s}=e;this.config.title=t,Fe.setTitle.call(this),this.embed.ratio=he(s,i)}ue.call(this)})).catch((()=>{ue.call(this)}))},ready(){const e=this,t=e.config.youtube,i=e.media&&e.media.getAttribute("id");if(!S.empty(i)&&i.startsWith("youtube-"))return;let s=e.media.getAttribute("src");S.empty(s)&&(s=e.media.getAttribute(this.config.attributes.embed.id));const n=(a=s,S.empty(a)?null:a.match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/)?RegExp.$2:a);var a;const l=$("div",{id:`${e.provider}-${Math.floor(1e4*Math.random())}`,"data-poster":t.customControls?e.poster:void 0});if(e.media=q(l,e.media),t.customControls){const t=e=>`https://i.ytimg.com/vi/${n}/${e}default.jpg`;Re(t("maxres"),121).catch((()=>Re(t("sd"),121))).catch((()=>Re(t("hq")))).then((t=>Fe.setPoster.call(e,t.src))).then((t=>{t.includes("maxres")||(e.elements.poster.style.backgroundSize="cover")})).catch((()=>{}))}e.embed=new window.YT.Player(e.media,{videoId:n,host:Ye(t),playerVars:x({},{autoplay:e.config.autoplay?1:0,hl:e.config.hl,controls:e.supported.ui&&t.customControls?0:1,disablekb:1,playsinline:e.config.playsinline&&!e.config.fullscreen.iosNative?1:0,cc_load_policy:e.captions.active?1:0,cc_lang_pref:e.config.captions.language,widget_referrer:window?window.location.href:null},t),events:{onError(t){if(!e.media.error){const i=t.data,s={2:"The request contains an invali
4187d parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.",5:"The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.",100:"The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.",101:"The owner of the requested video does not allow it to be played in embedded players.",150:"The owner of the requested video does not allow it to be played in embedded players."}[i]||"An unknown error occurred";e.media.error={code:i,message:s},Z.call(e,e.media,"error")}},onPlaybackRateChange(t){const i=t.target;e.media.playbackRate=i.getPlaybackRate(),Z.call(e,e.media,"ratechange")},onReady(i){if(S.function(e.media.play))return;const s=i.target;Qe.getTitle.call(e,n),e.media.play=()=>{Ke.call(e,!0),s.playVideo()},e.media.pause=()=>{Ke.call(e,!1),s.pauseVideo()},e.media.stop=()=>{s.stopVideo()},e.media.duration=s.getDuration(),e.media.paused=!0,e.media.currentTime=0,Object.defineProperty(e.media,"currentTime",{get:()=>Number(s.getCurrentTime()),set(t){e.paused&&!e.embed.hasPlayed&&e.embed.mute(),e.media.seeking=!0,Z.call(e,e.media,"seeking"),s.seekTo(t)}}),Object.defineProperty(e.media,"playbackRate",{get:()=>s.getPlaybackRate(),set(e){s.setPlaybackRate(e)}});let{volume:a}=e.config;Object.defineProperty(e.media,"volume",{get:()=>a,set(t){a=t,s.setVolume(100*a),Z.call(e,e.media,"volumechange")}});let{muted:l}=e.config;Object.defineProperty(e.media,"muted",{get:()=>l,set(t){const i=S.boolean(t)?t:l;l=i,s[i?"mute":"unMute"](),s.setVolume(100*a),Z.call(e,e.media,"volumechange")}}),Object.defineProperty(e.media,"currentSrc",{get:()=>s.getVideoUrl()}),Object.defineProperty(e.media,"ended",{get:()=>e.currentTime===e.duration});const r=s.getAvailablePlaybackRates();e.options.speed=r.filter((t=>e.config.speed.options.includes(t))),e.supported.ui&&t.customControls&&e.media.setAttribute("tabindex",-1),Z.call(e,e.media,"timeupdate"),Z.call(e,e.media,"durationchange"),clearInterval(e.timers.buffering),e.timers.buffering=setInterval((()=>{e.media.buffered=s.getVideoLoadedFraction(),(null===e.media.lastBuffered||e.media.lastBuffered<e.media.buffered)&&Z.call(e,e.media,"progress"),e.media.lastBuffered=e.media.buffered,1===e.media.buffered&&(clearInterval(e.timers.buffering),Z.call(e,e.media,"canplaythrough"))}),200),t.customControls&&setTimeout((()=>Fe.build.call(e)),50)},onStateChange(i){const s=i.target;clearInterval(e.timers.playing);switch(e.media.seeking&&[1,2].includes(i.data)&&(e.media.seeking=!1,Z.call(e,e.media,"seeked")),i.data){case-1:Z.call(e,e.media,"timeupdate"),e.media.buffered=s.getVideoLoadedFraction(),Z.call(e,e.media,"progress");break;case 0:Ke.call(e,!1),e.media.loop?(s.stopVideo(),s.playVideo()):Z.call(e,e.media,"ended");break;case 1:t.customControls&&!e.config.autoplay&&e.media.paused&&!e.embed.hasPlayed?e.media.pause():(Ke.call(e,!0),Z.call(e,e.media,"playing"),e.timers.playing=setInterval((()=>{Z.call(e,e.media,"timeupdate")}),50),e.media.duration!==s.getDuration()&&(e.media.duration=s.getDuration(),Z.call(e,e.media,"durationchange")));break;case 2:e.muted||e.embed.unMute(),Ke.call(e,!1);break;case 3:Z.call(e,e.media,"waiting")}Z.call(e,e.elements.container,"statechange",!1,{code:i.data})}}})}},Xe={setup(){this.media?(R(this.elements.container,this.config.classNames.type.replace("{0}",this.type),!0),R(this.elements.container,this.config.classNames.provider.replace("{0}",this.provider),!0),this.isEmbed&&R(this.elements.container,this.config.classNames.type.replace("{0}","video"),!0),this.isVideo&&(this.elements.wrapper=$("div",{class:this.config.classNames.video}),L(this.media,this.elements.wrapper),this.elements.poster=$("div",{class:this.config.classNames.poster}),this.elements.wrapper.appendChild(this.elements.poster)),this.isHTML5?de.setup.call(this):this.isYouTube?Qe.setup.call(this):this.isVimeo&&ze.setup.call(this)):this.debug.warn("No media element found!")}};class Je{constructor(t){e(this,"load",(()=>{this.enabled&&(S.object(window.google)&&S.object(window.google.ima)?this.ready():Be(this.player.config.urls.googleIMA.sdk).then((()=>{this.ready()})).catch((()=>{this.trigger("error",new Error("Google IMA SDK failed to load"))})))})),e(this,"ready",(()=>{var e;this.enabled||((e=this).manager&&e.manager.destroy(),e.elements.displayContainer&&e.elements.displayContainer.destroy(),e.elements.container.remove()),this.startSafetyTimer(12e3,"ready()"),this.managerPromise.then((()=>{this.clearSafetyTimer("onAdsManagerLoaded()")})),this.listeners(),this.setupIMA()})),e(this,"setupIMA",(()=>{this.elements.container=$("div",{class:this.player.config.classNames.ads}),this.player.elements.container.appendChild(this.elements.container),google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED),google.ima.settings.setLocale(this.player.config.ads.language),google.ima.settings.setDisableCustomPlaybackForIOS10Plus(this.player.config.playsinline),this.elements.displayContainer=new google.ima.AdDisplayContainer(this.elements.container,this.player.media),this.loader=new google.ima.AdsLoader(this.elements.displayContainer),this.loader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,(e=>this.onAdsManagerLoaded(e)),!1),this.loader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e)),!1),this.requestAds()})),e(this,"requestAds",(()=>{const{container:e}=this.player.elements;try{const t=new google.ima.AdsRequest;t.adTagUrl=this.tagUrl,t.linearAdSlotWidth=e.offsetWidth,t.linearAdSlotHeight=e.offsetHeight,t.nonLinearAdSlotWidth=e.offsetWidth,t.nonLinearAdSlotHeight=e.offsetHeight,t.forceNonLinearFullSlot=!1,t.setAdWillPlayMuted(!this.player.muted),this.loader.requestAds(t)}catch(e){this.onAdError(e)}})),e(this,"pollCountdown",((e=!1)=>
vendor: 20,988 bytes, line 4187
4187{if(!e)return clearInterval(this.countdownTimer),void this.elements.container.removeAttribute("data-badge-text");this.countdownTimer=setInterval((()=>{const e=Ee(Math.max(this.manager.getRemainingTime(),0)),t=`${ve.get("advertisement",this.player.config)} - ${e}`;this.elements.container.setAttribute("data-badge-text",t)}),100)})),e(this,"onAdsManagerLoaded",(e=>{if(!this.enabled)return;const t=new google.ima.AdsRenderingSettings;t.restoreCustomPlaybackStateOnAdBreakComplete=!0,t.enablePreloading=!0,this.manager=e.getAdsManager(this.player,t),this.cuePoints=this.manager.getCuePoints(),this.manager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR,(e=>this.onAdError(e))),Object.keys(google.ima.AdEvent.Type).forEach((e=>{this.manager.addEventListener(google.ima.AdEvent.Type[e],(e=>this.onAdEvent(e)))})),this.trigger("loaded")})),e(this,"addCuePoints",(()=>{S.empty(this.cuePoints)||this.cuePoints.forEach((e=>{if(0!==e&&-1!==e&&e<this.player.duration){const t=this.player.elements.progress;if(S.element(t)){const i=100/this.player.duration*e,s=$("span",{class:this.player.config.classNames.cues});s.style.left=`${i.toString()}%`,t.appendChild(s)}}}))})),e(this,"onAdEvent",(e=>{const{container:t}=this.player.elements,i=e.getAd(),s=e.getAdData();switch((e=>{Z.call(this.player,this.player.media,`ads${e.replace(/_/g,"").toLowerCase()}`)})(e.type),e.type){case google.ima.AdEvent.Type.LOADED:this.trigger("loaded"),this.pollCountdown(!0),i.isLinear()||(i.width=t.offsetWidth,i.height=t.offsetHeight);break;case google.ima.AdEvent.Type.STARTED:this.manager.setVolume(this.player.volume);break;case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:this.player.ended?this.loadAds():this.loader.contentComplete();break;case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:this.pauseContent();break;case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:this.pollCountdown(),this.resumeContent();break;case google.ima.AdEvent.Type.LOG:s.adError&&this.player.debug.warn(`Non-fatal ad error: ${s.adError.getMessage()}`)}})),e(this,"onAdError",(e=>{this.cancel(),this.player.debug.warn("Ads error",e)})),e(this,"listeners",(()=>{const{container:e}=this.player.elements;let t;this.player.on("canplay",(()=>{this.addCuePoints()})),this.player.on("ended",(()=>{this.loader.contentComplete()})),this.player.on("timeupdate",(()=>{t=this.player.currentTime})),this.player.on("seeked",(()=>{const e=this.player.currentTime;S.empty(this.cuePoints)||this.cuePoints.forEach(((i,s)=>{t<i&&i<e&&(this.manager.discardAdBreak(),this.cuePoints.splice(s,1))}))})),window.addEventListener("resize",(()=>{this.manager&&this.manager.resize(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL)}))})),e(this,"play",(()=>{const{container:e}=this.player.elements;this.managerPromise||this.resumeContent(),this.managerPromise.then((()=>{this.manager.setVolume(this.player.volume),this.elements.displayContainer.initialize();try{this.initialized||(this.manager.init(e.offsetWidth,e.offsetHeight,google.ima.ViewMode.NORMAL),this.manager.start()),this.initialized=!0}catch(e){this.onAdError(e)}})).catch((()=>{}))})),e(this,"resumeContent",(()=>{this.elements.container.style.zIndex="",this.playing=!1,ie(this.player.media.play())})),e(this,"pauseContent",(()=>{this.elements.container.style.zIndex=3,this.playing=!0,this.player.media.pause()})),e(this,"cancel",(()=>{this.initialized&&this.resumeContent(),this.trigger("error"),this.loadAds()})),e(this,"loadAds",(()=>{this.managerPromise.then((()=>{this.manager&&this.manager.destroy(),this.managerPromise=new Promise((e=>{this.on("loaded",e),this.player.debug.log(this.manager)})),this.initialized=!1,this.requestAds()})).catch((()=>{}))})),e(this,"trigger",((e,...t)=>{const i=this.events[e];S.array(i)&&i.forEach((e=>{S.function(e)&&e.apply(this,t)}))})),e(this,"on",((e,t)=>(S.array(this.events[e])||(this.events[e]=[]),this.events[e].push(t),this))),e(this,"startSafetyTimer",((e,t)=>{this.player.debug.log(`Safety timer invoked from: ${t}`),this.safetyTimer=setTimeout((()=>{this.cancel(),this.clearSafetyTimer("startSafetyTimer()")}),e)})),e(this,"clearSafetyTimer",(e=>{S.nullOrUndefined(this.safetyTimer)||(this.player.debug.log(`Safety timer cleared from: ${e}`),clearTimeout(this.safetyTimer),this.safetyTimer=null)})),this.player=t,this.config=t.config.ads,this.playing=!1,this.initialized=!1,this.elements={container:null,displayContainer:null},this.manager=null,this.loader=null,this.cuePoints=null,this.events={},this.safetyTimer=null,this.countdownTimer=null,this.managerPromise=new Promise(((e,t)=>{this.on("loaded",e),this.on("error",t)})),this.load()}get enabled(){const{config:e}=this;return this.player.isHTML5&&this.player.isVideo&&e.enabled&&(!S.empty(e.publisherId)||S.url(e.tagUrl))}get tagUrl(){const{config:e}=this;if(S.url(e.tagUrl))return e.tagUrl;return`https://go.aniview.com/api/adserver6/vast/?${Ne({AV_PUBLISHERID:"58c25bb0073ef448b1087ad6",AV_CHANNELID:"5a0458dc28a06145e4519d21",AV_URL:window.location.hostname,cb:Date.now(),AV_WIDTH:640,AV_HEIGHT:480,AV_CDIM2:e.publisherId})}`}}function Ge(e=0,t=0,i=255){return Math.min(Math.max(e,t),i)}const Ze=e=>{const t=[];return e.split(/\r\n\r\n|\n\n|\r\r/).forEach((e=>{const i={};e.split(/\r\n|\n|\r/).forEach((e=>{if(S.number(i.startTime)){if(!S.empty(e.trim())&&S.empty(i.text)){const t=e.trim().split("#xywh=");[i.text]=t,t[1]&&([i.x,i.y,i.w,i.h]=t[1].split(","))}}else{const t=e.match(/([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/);t&&(i.startTime=60*Number(t[1]||0)*60+60*Number(t[2])+Number(t[3])+Number(`0.${t[4]}`),i.endTime=60*Number(t[6]||0)*60+60*Number(t[7])+Number(t[8])+Number(`0.${t[9]}`))}})),i.text&&t.push(i)})),t},et=(e,t)=>{const i={};return e>t.width/t.height?(i.width=t.width,i.height=1/e*t.width):(i.height=t.height,i.width=e*t.height),i};class tt{constructor(t){e(this,"load",(()=>{this.player.elements.display.seekTooltip&&(this.player.elements.display.seekTooltip.hidden=this.enabled),this.enabled&&this.getThumbnails().then((()=>{this.enabled&&(this.render(),this.determineContainerAutoSizing(),this.listeners(),this.loaded=!0)}))})),e(this,"getThumbnails",(()=>new Promise((e=>{const{src:t}=this.player.config.previewThumbnails;if(S.empty(t))throw new Error("Missing previewThumbnails.src config attribute");const i=()=>{this.thumbnails.sort(((e,t)=>e.height-t.height)),this.player.debug.log("Preview thumbnails",this.thumbnails),e()};if(S.function(t))t((e=>{this.thumbnails=e,i()}));else{const e=(S.string(t)?[t]:t).map((e=>this.getThumbnail(e)));Promise.all(e).then(i)}})))),e(this,"getThumbnail",(e=>new Promise((t=>{Te(e).then((i=>{const s={frames:Ze(i),height:null,urlPrefix:""};s.frames[0].text.startsWith("/")||s.frames[0].text.startsWith("http://")||s.frames[0].text.startsWith("https://")||(s.urlPrefix=e.substring(0,e.lastIndexOf("/")+1));const n=new Image;n.onload=()=>{s.height=n.naturalHeight,s.width=n.naturalWidth,this.thumbnails.push(s),t()},n.src=s.urlPrefix+s.frames[0].text}))})))),e(this,"startMove",(e=>{if(this.loaded&&S.event(e)&&["touchmove","mousemove"].includes(e.type)&&this.player.media.duration){if("touchmove"===e.type)this.seekTime=this.player.media.duration*(this.player.elements.inputs.seek.value/100);else{var t,i;const s=this.player.elements.progress.getBoundingClientRect(),n=100/s.width*(e.pageX-s.left);this.seekTime=this.player.media.duration*(n/100),this.seekTime<0&&(this.seekTime=0),this.seekTime>this.player.media.duration-1&&(this.seekTime=this.player.media.duration-1),this.mousePosX=e.pageX,this.elements.thumb.time.innerText=Ee(this.seekTime);const a=null===(t=this.player.config.markers)||void 0===t||null===(i=t.points)||void 0===i?void 0:i.find((({time:e})=>e===Math.round(this.seekTime)));a&&this.elements.thumb.time.insertAdjacentHTML("afterbegin",`${a.label}<br>`)}this.showImageAtCurrentTime()}})),e(this,"endMove",(()=>{this.toggleThumbContainer(!1,!0)})),e(this,"startScrubbing",(e=>{(S.nullOrUndefined(e.button)||!1===e.button||0===e.button)&&(this.mouseDown=!0,this.player.media.duration&&(this.toggleScrubbingContainer(!0),this.toggleThumbContainer(!1,!0),this.showImageAtCurrentTime()))})),e(this,"endScrubbing",(()=>{this.mouseDown=!1,Math.ceil(this.lastTime)===Math.ceil(this.player.media.currentTime)?this.toggleScrubbingContainer(!1):G.call(this.player,this.player.media,"timeupdate",(()=>{this.mouseDown||this.toggleScrubbingContainer(!1)}))})),e(this,"listeners",(()=>{this.player.on("play",(()=>{this.toggleThumbContainer(!1,!0)})),this.player.on("seeked",(()=>{this.toggleThumbContainer(!1)})),this.player.on("timeupdate",(()=>{this.lastTime=this.player.media.currentTime}))})),e(this,"render",(()=>{this.elements.thumb.container=$("div",{class:this.player.config.classNames.previewThumbnails.thumbContainer}),this.elements.thumb.imageContainer=$("div",{class:this.player.config.classNames.previewThumbnails.imageContainer}),this.elements.thumb.container.appendChild(this.elements.thumb.imageContainer);const e=$("div",{class:this.player.config.classNames.previewThumbnails.timeContainer});this.elements.thumb.time=$("span",{},"00:00"),e.appendChild(this.elements.thumb.time),this.elements.thumb.imageContainer.appendChild(e),S.element(this.player.elements.progress)&&this.player.elements.progress.appendChild(this.elements.thumb.container),this.elements.scrubbing.container=$("div",{class:this.player.config.classNames.previewThumbnails.scrubbingContainer}),this.player.elements.wrapper.appendChild(this.elements.scrubbing.container)})),e(this,"destroy",(()=>{this.elements.thumb.container&&this.elements.thumb.container.remove(),this.elements.scrubbing.container&&this.elements.scrubbing.container.remove()})),e(this,"showImageAtCurrentTime",(()=>{this.mouseDown?this.setScrubbingContainerSize():this.setThumbContainerSizeAndPos();const e=this.thumbnails[0].frames.findIndex((e=>this.seekTime>=e.startTime&&this.seekTime<=e.endTime)),t=e>=0;let i=0;this.mouseDown||this.toggleThumbContainer(t),t&&(this.thumbnails.forEach(((t,s)=>{this.loadedImages.includes(t.frames[e].text)&&(i=s)})),e!==this.showingThumb&&(this.showingThumb=e,this.loadImage(i)))})),e(this,"loadImage",((e=0)=>{const t=this.showingThumb,i=this.thumbnails[e],{urlPrefix:s}=i,n=i.frames[t],a=i.frames[t].text,l=s+a;if(this.currentImageElement&&this.currentImageElement.dataset.filename===a)this.showImage(this.currentImageElement,n,e,t,a,!1),this.currentImageElement.dataset.index=t,this.removeOldImages(this.currentImageElement);else{this.loadingImage&&this.usingSprites&&(this.loadingImage.onload=null);const i=new Image;i.src=l,i.dataset.index=t,i.dataset.filename=a,this.showingThumbFilename=a,this.player.debug.log(`Loading image: ${l}`),i.onload=()=>this.showImage(i,n,e,t,a,!0),this.loadingImage=i,this.removeOldImages(i)}})),e(this,"showImage",((e,t,i,s,n,a=!0)=>{this.player.debug.log(`Showing thumb: ${n}. num: ${s}. qual: ${i}. newimg: ${a}`),this.setImageSizeAndOffset(e,t),a&&(this.currentImageContainer.appendChild(e),this.currentImageElement=e,this.loadedImages.includes(n)||this.loadedImages.push(n)),this.preloadNearby(s,!0).then(this.preloadNearby(s,!1)).then(this.getHigherQuality(i,e,t,n))})),e(this,"removeOldImages",(e=>{Array.from(this.currentImageContainer.children).forEach((t=>{if("img"!==t.tagName.toLowerCase())return;const i=this.usingSprites?500:1e3;if(t.dataset.index!==e.dataset.index&&!t.dataset.deleting){t.dataset.deleting=!0;const{currentImageContainer:e}=this;setTimeout((()=>{e.removeChild(t),this.player.debug.log(`Removing thumb: ${t.dataset.filename}`)}),i)}}))})),e(this,"preloadNearby",((e,t=!0)=>new Promise((i=>{setTimeout((()=>{const s=this.thumbnails[0].frames[e].text;if(this.showingThumbFilename===s){let n;n=t?this.thumbnails[0].frames.slice(e):this.thumbnails[0].frames.slice(0,e).reverse();let a=!1;n.forEach((e=>{const t=e.text;if(t!==s&&!this.loadedImages.includes(t)){a=!0,this.player.debug.log(`Preloading thumb filename: ${t}`);const{urlPrefix:e}=this.thumbnails[0],s=e+t,n=new Image;n.src=s,n.onload=()=>{this.player.debug.log(`Preloaded thumb filename: ${t}`),this.loadedImages.includes(t)||this.loadedImages.push(t),i()}}})),a||i()}}),300)})))),e(this,"getHigherQuality",((e,t,i,s)=>{if(e<this.thumbnails.length-1){let n=t.naturalHeight;this.usingSprites&&(n=i.h),n<this.thumbContainerHeight&&setTimeout((()=>{this.showingThumbFilename===s&&(this.player.debug.log(`Showing higher quality thumb for: ${s}`),this.loadImage(e+1))}),300)}})),e(this,"toggleThumbContainer",((e=!1,t=!1)=>{const i=this.player.config.classNames.previewThumbnails.thumbContainerShown;this.elements.thumb.container.classList.toggle(i,e),!e&&t&&(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,"toggleScrubbingContainer",((e=!1)=>{const t=this.player.config.classNames.previewThumbnails.scrubbingContainerShown;this.elements.scrubbing.container.classList.toggle(t,e),e||(this.showingThumb=null,this.showingThumbFilename=null)})),e(this,"determineContainerAutoSizing",(()=>{(this.elements.thumb.imageContainer.clientHeight>20||this.elements.thumb.imageContainer.clientWidth>20)&&(this.sizeSpecifiedInCSS=!0)})),e(this,"setThumbContainerSizeAndPos",(()=>{const{imageContainer:e}=this.elements.thumb;if(this.sizeSpecifiedInCSS){if(e.clientHeight>20&&e.clientWidth<20){const t=Math.floor(e.clientHeight*this.thumbAspectRatio);e.style.width=`${t}px`}else if(e.clientHeight<20&&e.clientWidth>20){const t=Math.floor(e.clientWidth/this.thumbAspectRatio);e.style.height=`${t}px`}}else{const t=Math.floor(this.thumbContainerHeight*this.thumbAspectRatio);e.style.height=`${this.thumbContainerHeight}px`,e.style.width=`${t}px`}this.setThumbContainerPos()})),e(this,"setThumbContainerPos",(()=>{const e=this.player.elements.progress.getBoundingClientRect(),t=this.player.elements.container.getBoundingClientRect(),{container:i}=this.elements.thumb,s=t.left-e.left+10,n=t.right-e.left-i.clientWidth-10,a=this.mousePosX-e.left-i.clientWidth/2,l=Ge(a,s,n);i.style.left=`${l}px`,i.style.setProperty("--preview-arrow-offset",a-l+"px")})),e(this,"setScrubbingContainerSize",(()=>{const{width:e,height:t}=et(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});this.elements.scrubbing.container.style.width=`${e}px`,this.elements.scrubbing.container.style.height=`${t}px`})),e(this,"setImageSizeAndOffset",((e,t)=>{if(!this.usingSprites)return;const i=this.thumbContainerHeight/t.h;e.style.height=e.naturalHeight*i+"px",e.style.width=e.naturalWidth*i+"px",e.style.left=`-${t.x*i}px`,e.style.top=`-${t.y*i}px`})),this.player=t,this.thumbnails=[],this.loaded=!1,this.lastMouseMoveTime=Date.now(),this.mouseDown=!1,this.loadedImages=[],this.elements={thumb:{},scrubbing:{}},this.load()}get enabled(){return this.player.isHTML5&&this.player.isVideo&&this.player.config.previewThumbnails.enabled}get currentImageContainer(){return this.mouseDown?this.elements.scrubbing.container:this.elements.thumb.imageContainer}get usingSprites(){return Object.keys(this.thumbnails[0].frames[0]).includes("w")}get thumbAspectRatio(){return this.usingSprites?this.thumbnails[0].frames[0].w/this.thumbnails[0].frames[0].h:this.thumbnails[0].width/this.thumbnails[0].height}get thumbContainerHeight(){if(this.mouseDown){const{height:e}=et(this.thumbAspectRatio,{width:this.player.media.clientWidth,height:this.player.media.clientHeight});return e}return this.sizeSpecifiedInCSS?this.elements.thumb.imageContainer.clientHeight:Math.floor(this.player.media.clientWidth/this.thumbAspectRatio/4)}get currentImageElement(){return this.mouseDown?this.currentScrubbingImageElement:this.currentThumbnailImageElement}set currentImageElement(e){this.mouseDown?this.currentScrubbingImageElement=e:this.currentThumbnailImageElement=e}}const it={insertElements(e,t){S.string(t)?_(e,this.media,{src:t}):S.array(t)&&t.forEach((t=>{_(e,this.media,t)}))},change(e){N(e,"sources.length")?(de.cancelRequests.call(this),this.destroy.call(this,(()=>{this.options.quality=[],O(this.media),this.media=null,S.element(this.elements.container)&&this.elements.container.removeAttribute("class");const{sources:t,type:i}=e,[{provider:s=_e.html5,src:n}]=t,a="html5"===s?i:"div",l="html5"===s?{}:{src:n};Object.assign(this,{provider:s,type:i,supported:K.check(i,s,this.config.playsinline),media:$(a,l)}),this.elements.container.appendChild(this.media),S.boolean(e.autoplay)&&(this.config.autoplay=e.autoplay),this.isHTML5&&(this.config.crossorigin&&this.media.setAttribute("crossorigin",""),this.config.autoplay&&this.media.setAttribute("autoplay",""),S.empty(e.poster)||(this.poster=e.poster),this.config.loop.active&&this.media.setAttribute("loop",""),this.config.muted&&this.media.setAttribute("muted",""),this.config.playsinline&&this.media.setAttribute("playsinline","")),Fe.addStyleHook.call(this),this.isHTML5&&it.insertElements.call(this,"source",t),this.config.title=e.title,Xe.setup.call(this),this.isHTML5&&Object.keys(e).includes("tracks")&&it.insertElements.call(this,"track",e.tracks),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Fe.build.call(this),this.isHTML5&&this.media.load(),S.empty(e.previewThumbnails)||(Object.assign(this.config.previewThumbnails,e.previewThumbnails),this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new tt(this))),this.fullscreen.update()}),!0)):this.debug.warn("Invalid source format")}};class st{constructor(t,i){if(e(this,"play",(()=>S.function(this.media.play)?(this.ads&&this.ads.enabled&&this.ads.managerPromise.then((()=>this.ads.play())).catch((()=>ie(this.media.play()))),this.media.play()):null)),e(this,"pause",(()=>this.playing&&S.function(this.media.pause)?this.media.pause():null)),e(this,"togglePlay",(e=>(S.boolean(e)?e:!this.playing)?this.play():this.pause())),e(this,"stop",(()=>{this.isHTML5?(this.pause(),this.restart()):S.function(this.media.stop)&&this.media.stop()})),e(this,"restart",(()=>{this.currentTime=0})),e(this,"rewind",(e=>{this.currentTime-=S.number(e)?e:this.config.seekTime})),e(this,"forward",(e=>{this.currentTime+=S.number(e)?e:this.config.seekTime})),e(this,"increaseVolume",(e=>{const t=this.media.muted?0:this.volume;this.volume=t+(S.number(e)?e:0)})),e(this,"decreaseVolume",(e=>{this.increaseVolume(-e)})),e(this,"airplay",(()=>{K.airplay&&this.media.webkitShowPlaybackTargetPicker()})),e(this,"toggleControls",(e=>{if(this.supported.ui&&!this.isAudio){const t=F(this.elements.container,this.config.classNames.hideControls),i=void 0===e?void 0:!e,s=R(this.elements.container,this.config.classNames.hideControls,i);if(s&&S.array(this.config.controls)&&this.config.controls.includes("settings")&&!S.empty(this.config.settings)&&Pe.toggleMenu.call(this,!1),s!==t){const e=s?"controlshidden":"controlsshown";Z.call(this,this.media,e)}return!s}return!1})),e(this,"on",((e,t)=>{X.call(this,this.elements.container,e,t)})),e(this,"once",((e,t)=>{G.call(this,this.elements.container,e,t)})),e(this,"off",((e,t)=>{J(this.elements.container,e,t)})),e(this,"destroy",((e,t=!1)=>{if(!this.ready)return;const i=()=>{document.body.style.overflow="",this.embed=null,t?(Object.keys(this.elements).length&&(O(this.elements.buttons.play),O(this.elements.captions),O(this.elements.controls),O(this.elements.wrapper),this.elements.buttons.play=null,this.elements.captions=null,this.elements.controls=null,this.elements.wrapper=null),S.function(e)&&e()):(ee.call(this),de.cancelRequests.call(this),q(this.elements.original,this.elements.container),Z.call(this,this.elements.original,"destroyed",!0),S.function(e)&&e.call(this.elements.original),this.ready=!1,setTimeout((()=>{this.elements=null,this.media=null}),200))};this.stop(),clearTimeout(this.timers.loading),clearTimeout(this.timers.controls),clearTimeout(this.timers.resized),this.isHTML5?(Fe.toggleNativeControls.call(this,!0),i()):this.isYouTube?(clearInterval(this.timers.buffering),clearInterval(this.timers.playing),null!==this.embed&&S.function(this.embed.destroy)&&this.embed.destroy(),i()):this.isVimeo&&(null!==this.embed&&this.embed.unload().then(i),setTimeout(i,200))})),e(this,"supports",(e=>K.mime.call(this,e))),this.timers={},this.ready=!1,this.loading=!1,this.failed=!1,this.touch=K.touch,this.media=t,S.string(this.media)&&(this.media=document.querySelectorAll(this.media)),(window.jQuery&&this.media instanceof jQuery||S.nodeList(this.media)||S.array(this.media))&&(this.media=this.media[0]),this.config=x({},Le,st.defaults,i||{},(()=>{try{return JSON.parse(this.media.getAttribute("data-plyr-config"))}catch(e){return{}}})()),this.elements={container:null,fullscreen:null,captions:null,buttons:{},display:{},progress:{},inputs:{},settings:{popup:null,menu:null,panels:{},buttons:{}}},this.captions={active:null,currentTrack:-1,meta:new WeakMap},this.fullscreen={active:!1},this.options={speed:[],quality:[]},this.debug=new De(this.config.debug),this.debug.log("Config",this.config),this.debug.log("Support",K),S.nullOrUndefined(this.media)||!S.element
vendor: 7,589 bytes, line 4187
4187(this.media))return void this.debug.error("Setup failed: no suitable element passed");if(this.media.plyr)return void this.debug.warn("Target already setup");if(!this.config.enabled)return void this.debug.error("Setup failed: disabled by config");if(!K.check().api)return void this.debug.error("Setup failed: no support");const s=this.media.cloneNode(!0);s.autoplay=!1,this.elements.original=s;const n=this.media.tagName.toLowerCase();let a=null,l=null;switch(n){case"div":if(a=this.media.querySelector("iframe"),S.element(a)){if(l=Me(a.getAttribute("src")),this.provider=function(e){return/^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(e)?_e.youtube:/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)?_e.vimeo:null}(l.toString()),this.elements.container=this.media,this.media=a,this.elements.container.className="",l.search.length){const e=["1","true"];e.includes(l.searchParams.get("autoplay"))&&(this.config.autoplay=!0),e.includes(l.searchParams.get("loop"))&&(this.config.loop.active=!0),this.isYouTube?(this.config.playsinline=e.includes(l.searchParams.get("playsinline")),this.config.youtube.hl=l.searchParams.get("hl")):this.config.playsinline=!0}}else this.provider=this.media.getAttribute(this.config.attributes.embed.provider),this.media.removeAttribute(this.config.attributes.embed.provider);if(S.empty(this.provider)||!Object.values(_e).includes(this.provider))return void this.debug.error("Setup failed: Invalid provider");this.type=je;break;case"video":case"audio":this.type=n,this.provider=_e.html5,this.media.hasAttribute("crossorigin")&&(this.config.crossorigin=!0),this.media.hasAttribute("autoplay")&&(this.config.autoplay=!0),(this.media.hasAttribute("playsinline")||this.media.hasAttribute("webkit-playsinline"))&&(this.config.playsinline=!0),this.media.hasAttribute("muted")&&(this.config.muted=!0),this.media.hasAttribute("loop")&&(this.config.loop.active=!0);break;default:return void this.debug.error("Setup failed: unsupported type")}this.supported=K.check(this.type,this.provider),this.supported.api?(this.eventListeners=[],this.listeners=new Ve(this),this.storage=new we(this),this.media.plyr=this,S.element(this.elements.container)||(this.elements.container=$("div"),L(this.media,this.elements.container)),Fe.migrateStyles.call(this),Fe.addStyleHook.call(this),Xe.setup.call(this),this.config.debug&&X.call(this,this.elements.container,this.config.events.join(" "),(e=>{this.debug.log(`event: ${e.type}`)})),this.fullscreen=new He(this),(this.isHTML5||this.isEmbed&&!this.supported.ui)&&Fe.build.call(this),this.listeners.container(),this.listeners.global(),this.config.ads.enabled&&(this.ads=new Je(this)),this.isHTML5&&this.config.autoplay&&this.once("canplay",(()=>ie(this.play()))),this.lastSeekTime=0,this.config.previewThumbnails.enabled&&(this.previewThumbnails=new tt(this))):this.debug.error("Setup failed: no support")}get isHTML5(){return this.provider===_e.html5}get isEmbed(){return this.isYouTube||this.isVimeo}get isYouTube(){return this.provider===_e.youtube}get isVimeo(){return this.provider===_e.vimeo}get isVideo(){return this.type===je}get isAudio(){return this.type===Oe}get playing(){return Boolean(this.ready&&!this.paused&&!this.ended)}get paused(){return Boolean(this.media.paused)}get stopped(){return Boolean(this.paused&&0===this.currentTime)}get ended(){return Boolean(this.media.ended)}set currentTime(e){if(!this.duration)return;const t=S.number(e)&&e>0;this.media.currentTime=t?Math.min(e,this.duration):0,this.debug.log(`Seeking to ${this.currentTime} seconds`)}get currentTime(){return Number(this.media.currentTime)}get buffered(){const{buffered:e}=this.media;return S.number(e)?e:e&&e.length&&this.duration>0?e.end(0)/this.duration:0}get seeking(){return Boolean(this.media.seeking)}get duration(){const e=parseFloat(this.config.duration),t=(this.media||{}).duration,i=S.number(t)&&t!==1/0?t:0;return e||i}set volume(e){let t=e;S.string(t)&&(t=Number(t)),S.number(t)||(t=this.storage.get("volume")),S.number(t)||({volume:t}=this.config),t>1&&(t=1),t<0&&(t=0),this.config.volume=t,this.media.volume=t,!S.empty(e)&&this.muted&&t>0&&(this.muted=!1)}get volume(){return Number(this.media.volume)}set muted(e){let t=e;S.boolean(t)||(t=this.storage.get("muted")),S.boolean(t)||(t=this.config.muted),this.config.muted=t,this.media.muted=t}get muted(){return Boolean(this.media.muted)}get hasAudio(){return!this.isHTML5||(!!this.isAudio||(Boolean(this.media.mozHasAudio)||Boolean(this.media.webkitAudioDecodedByteCount)||Boolean(this.media.audioTracks&&this.media.audioTracks.length)))}set speed(e){let t=null;S.number(e)&&(t=e),S.number(t)||(t=this.storage.get("speed")),S.number(t)||(t=this.config.speed.selected);const{minimumSpeed:i,maximumSpeed:s}=this;t=Ge(t,i,s),this.config.speed.selected=t,setTimeout((()=>{this.media&&(this.media.playbackRate=t)}),0)}get speed(){return Number(this.media.playbackRate)}get minimumSpeed(){return this.isYouTube?Math.min(...this.options.speed):this.isVimeo?.5:.0625}get maximumSpeed(){return this.isYouTube?Math.max(...this.options.speed):this.isVimeo?2:16}set quality(e){const t=this.config.quality,i=this.options.quality;if(!i.length)return;let s=[!S.empty(e)&&Number(e),this.storage.get("quality"),t.selected,t.default].find(S.number),n=!0;if(!i.includes(s)){const e=ne(i,s);this.debug.warn(`Unsupported quality option: ${s}, using ${e} instead`),s=e,n=!1}t.selected=s,this.media.quality=s,n&&this.storage.set({quality:s})}get quality(){return this.media.quality}set loop(e){const t=S.boolean(e)?e:this.config.loop.active;this.config.loop.active=t,this.media.loop=t}get loop(){return Boolean(this.media.loop)}set source(e){it.change.call(this,e)}get source(){return this.media.currentSrc}get download(){const{download:e}=this.config.urls;return S.url(e)?e:this.source}set download(e){S.url(e)&&(this.config.urls.download=e,Pe.setDownloadUrl.call(this))}set poster(e){this.isVideo?Fe.setPoster.call(this,e,!1).catch((()=>{})):this.debug.warn("Poster can only be set for video")}get poster(){return this.isVideo?this.media.getAttribute("poster")||this.media.getAttribute("data-poster"):null}get ratio(){if(!this.isVideo)return null;const e=oe(ce.call(this));return S.array(e)?e.join(":"):e}set ratio(e){this.isVideo?S.string(e)&&re(e)?(this.config.ratio=oe(e),ue.call(this)):this.debug.error(`Invalid aspect ratio specified (${e})`):this.debug.warn("Aspect ratio can only be set for video")}set autoplay(e){this.config.autoplay=S.boolean(e)?e:this.config.autoplay}get autoplay(){return Boolean(this.config.autoplay)}toggleCaptions(e){xe.toggle.call(this,e,!1)}set currentTrack(e){xe.set.call(this,e,!1),xe.setup.call(this)}get currentTrack(){const{toggled:e,currentTrack:t}=this.captions;return e?t:-1}set language(e){xe.setLanguage.call(this,e,!1)}get language(){return(xe.getCurrentTrack.call(this)||{}).language}set pip(e){if(!K.pip)return;const t=S.boolean(e)?e:!this.pip;S.function(this.media.webkitSetPresentationMode)&&this.media.webkitSetPresentationMode(t?Ie:$e),S.function(this.media.requestPictureInPicture)&&(!this.pip&&t?this.media.requestPictureInPicture():this.pip&&!t&&document.exitPictureInPicture())}get pip(){return K.pip?S.empty(this.media.webkitPresentationMode)?this.media===document.pictureInPictureElement:this.media.webkitPresentationMode===Ie:null}setPreviewThumbnails(e){this.previewThumbnails&&this.previewThumbnails.loaded&&(this.previewThumbnails.destroy(),this.previewThumbnails=null),Object.assign(this.config.previewThumbnails,e),this.config.previewThumbnails.enabled&&(this.previewThumbnails=new tt(this))}
vendor: 484 bytes, lines 4187-4191
4187static supported(e,t){return K.check(e,t)}static loadSprite(e,t){return ke(e,t)}static setup(e,t={}){let i=null;return S.string(e)?i=Array.from(document.querySelectorAll(e)):S.nodeList(e)?i=Array.from(e):S.array(e)&&(i=e.filter(S.element)),S.empty(i)?null:i.map((e=>new st(e,t)))}}var nt;return st.defaults=(nt=Le,JSON.parse(JSON.stringify(nt))),st}));
4188//# sourceMappingURL=plyr.min.js.map
4189
4190Liferay.Loader.define.amd = Liferay.Loader.define._amd;
4191//# sourceMappingURL=vendors.js.map

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.