blacklight-gallery 6.0.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env +2 -0
- data/.github/workflows/ruby.yml +10 -26
- data/Gemfile +5 -12
- data/README.md +3 -5
- data/Rakefile +53 -32
- data/app/assets/config/blacklight_gallery/manifest.js +0 -1
- data/app/assets/javascripts/blacklight_gallery/blacklight-gallery.esm.js +959 -484
- data/app/assets/javascripts/blacklight_gallery/blacklight-gallery.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight_gallery/blacklight-gallery.js +959 -484
- data/app/assets/javascripts/blacklight_gallery/blacklight-gallery.js.map +1 -1
- data/app/assets/stylesheets/blacklight_gallery/masonry.css +9 -3
- data/app/assets/stylesheets/blacklight_gallery/slideshow.css +2 -13
- data/app/components/blacklight/gallery/document_component.html.erb +1 -5
- data/app/components/blacklight/gallery/document_component.rb +0 -4
- data/app/components/blacklight/gallery/openseadragon_embed_component.rb +4 -5
- data/app/components/blacklight/gallery/slideshow_component.html.erb +1 -1
- data/app/components/blacklight/gallery/slideshow_component.rb +3 -6
- data/app/{views/catalog/_slideshow_modal.html.erb → components/blacklight/gallery/slideshow_modal_component.html.erb} +2 -3
- data/app/components/blacklight/gallery/slideshow_modal_component.rb +6 -0
- data/app/components/blacklight/gallery/slideshow_presenter_component.html.erb +14 -0
- data/app/components/blacklight/gallery/slideshow_presenter_component.rb +17 -0
- data/app/components/blacklight/gallery/slideshow_preview_component.html.erb +1 -5
- data/app/components/blacklight/gallery/slideshow_preview_component.rb +0 -13
- data/app/javascript/blacklight-gallery/grid-lanes-polyfill.js +1067 -0
- data/app/javascript/blacklight-gallery/index.js +18 -4
- data/app/views/catalog/_document_gallery.html.erb +1 -1
- data/app/views/catalog/_document_masonry.html.erb +1 -1
- data/app/views/catalog/_document_slideshow.html.erb +5 -25
- data/app/views/catalog/_openseadragon_default.html.erb +1 -1
- data/blacklight-gallery.gemspec +19 -20
- data/compose.yaml +18 -0
- data/config/importmap.rb +0 -1
- data/config/locales/blacklight-gallery.ar.yml +0 -3
- data/config/locales/blacklight-gallery.de.yml +3 -0
- data/config/locales/blacklight-gallery.en.yml +0 -3
- data/config/locales/blacklight-gallery.es.yml +3 -3
- data/config/locales/blacklight-gallery.fr.yml +3 -3
- data/config/locales/blacklight-gallery.it.yml +3 -3
- data/config/locales/blacklight-gallery.pt-BR.yml +3 -3
- data/config/locales/blacklight-gallery.zh.yml +3 -3
- data/lib/blacklight/gallery/version.rb +1 -1
- data/lib/generators/blacklight_gallery/install_generator.rb +15 -29
- data/package.json +2 -4
- data/rollup.config.js +13 -16
- data/spec/components/blacklight/gallery/document_component_spec.rb +2 -10
- data/spec/components/blacklight/gallery/openseadragon_embed_component_spec.rb +1 -6
- data/spec/components/blacklight/gallery/slideshow_component_spec.rb +28 -25
- data/spec/components/blacklight/gallery/slideshow_preview_component_spec.rb +3 -12
- data/spec/features/slideshow_spec.rb +23 -1
- data/spec/views/catalog/_document_slideshow.html.erb_spec.rb +6 -10
- metadata +49 -53
- data/app/components/blacklight/gallery/icons/pause_slideshow_component.rb +0 -18
- data/app/components/blacklight/gallery/icons/start_slideshow_component.rb +0 -18
- data/app/javascript/blacklight-gallery/masonry.js +0 -12
- data/app/javascript/blacklight-gallery/slideshow.js +0 -122
- data/vendor/assets/javascripts/imagesloaded.pkgd.js +0 -441
- data/vendor/assets/javascripts/masonry.min.js +0 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blacklight-gallery.esm.js","sources":["../../../../vendor/assets/javascripts/imagesloaded.pkgd.js","../../../../vendor/assets/javascripts/masonry.min.js","../../../javascript/blacklight-gallery/slideshow.js","../../../javascript/blacklight-gallery/masonry.js"],"sourcesContent":["/*!\n * imagesLoaded PACKAGED v5.0.0\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n/**\n * EvEmitter v2.1.1\n * Lil' event emitter\n * MIT License\n */\n\n( function( global, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\nfunction EvEmitter() {}\n\nlet proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) return this;\n\n // set events hash\n let events = this._events = this._events || {};\n // set listeners array\n let listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( !listeners.includes( listener ) ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) return this;\n\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n let onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n let onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n let listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) return this;\n\n let index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n let listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) return this;\n\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice( 0 );\n args = args || [];\n // once stuff\n let onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( let listener of listeners ) {\n let isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n return this;\n};\n\nreturn EvEmitter;\n\n} ) );\n/*!\n * imagesLoaded v5.0.0\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory( window, require('ev-emitter') );\n } else {\n // browser global\n window.imagesLoaded = factory( window, window.EvEmitter );\n }\n\n} )( typeof window !== 'undefined' ? window : this,\n function factory( window, EvEmitter ) {\n\nlet $ = window.jQuery;\nlet console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n // use object if already an array\n if ( Array.isArray( obj ) ) return obj;\n\n let isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n // convert nodeList to array\n if ( isArrayLike ) return [ ...obj ];\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {[Array, Element, NodeList, String]} elem\n * @param {[Object, Function]} options - if function, use as callback\n * @param {Function} onAlways - callback function\n * @returns {ImagesLoaded}\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n let queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error(`Bad element for imagesLoaded ${queryElem || elem}`);\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = {};\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n Object.assign( this.options, options );\n }\n\n if ( onAlways ) this.on( 'always', onAlways );\n\n this.getImages();\n // add jQuery Deferred object\n if ( $ ) this.jqDeferred = new $.Deferred();\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\nconst elementNodeTypes = [ 1, 9, 11 ];\n\n/**\n * @param {Node} elem\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName === 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n let { nodeType } = elem;\n if ( !nodeType || !elementNodeTypes.includes( nodeType ) ) return;\n\n let childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( let img of childImgs ) {\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n let children = elem.querySelectorAll( this.options.background );\n for ( let child of children ) {\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nconst reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n let style = getComputedStyle( elem );\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n if ( !style ) return;\n\n // get url inside url(\"...\")\n let matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n let url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n let loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n let background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n /* eslint-disable-next-line func-style */\n let onProgress = ( image, elem, message ) => {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( () => {\n this.progress( image, elem, message );\n } );\n };\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n } );\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount === this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( `progress: ${message}`, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n let eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n let jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n let isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n // add crossOrigin attribute. #204\n if ( this.img.crossOrigin ) {\n this.proxyImage.crossOrigin = this.img.crossOrigin;\n }\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.currentSrc || this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n let { parentNode } = this.img;\n // emit progress with parent <picture> or self <img>\n let elem = parentNode.nodeName === 'PICTURE' ? parentNode : this.img;\n this.emitEvent( 'progress', [ this, elem, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n let method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n let isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) return;\n\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, onAlways ) {\n let instance = new ImagesLoaded( this, options, onAlways );\n return instance.jqDeferred.promise( $( this ) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n} );\n","/*!\n * Masonry PACKAGED v4.2.2\n * Cascading grid layout library\n * https://masonry.desandro.com\n * MIT License\n * by David DeSandro\n */\n\n!function(t,e){\"function\"==typeof define&&define.amd?define(\"jquery-bridget/jquery-bridget\",[\"jquery\"],function(i){return e(t,i)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"jquery\")):t.jQueryBridget=e(t,t.jQuery)}(window,function(t,e){\"use strict\";function i(i,r,a){function h(t,e,n){var o,r=\"$().\"+i+'(\"'+e+'\")';return t.each(function(t,h){var u=a.data(h,i);if(!u)return void s(i+\" not initialized. Cannot call methods, i.e. \"+r);var d=u[e];if(!d||\"_\"==e.charAt(0))return void s(r+\" is not a valid method\");var l=d.apply(u,n);o=void 0===o?l:o}),void 0!==o?o:t}function u(t,e){t.each(function(t,n){var o=a.data(n,i);o?(o.option(e),o._init()):(o=new r(n,e),a.data(n,i,o))})}a=a||e||t.jQuery,a&&(r.prototype.option||(r.prototype.option=function(t){a.isPlainObject(t)&&(this.options=a.extend(!0,this.options,t))}),a.fn[i]=function(t){if(\"string\"==typeof t){var e=o.call(arguments,1);return h(this,t,e)}return u(this,t),this},n(a))}function n(t){!t||t&&t.bridget||(t.bridget=i)}var o=Array.prototype.slice,r=t.console,s=\"undefined\"==typeof r?function(){}:function(t){r.error(t)};return n(e||t.jQuery),i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"ev-emitter/ev-emitter\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.EvEmitter=e()}(\"undefined\"!=typeof window?window:this,function(){function t(){}var e=t.prototype;return e.on=function(t,e){if(t&&e){var i=this._events=this._events||{},n=i[t]=i[t]||[];return-1==n.indexOf(e)&&n.push(e),this}},e.once=function(t,e){if(t&&e){this.on(t,e);var i=this._onceEvents=this._onceEvents||{},n=i[t]=i[t]||{};return n[e]=!0,this}},e.off=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){var n=i.indexOf(e);return-1!=n&&i.splice(n,1),this}},e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(i&&i.length){i=i.slice(0),e=e||[];for(var n=this._onceEvents&&this._onceEvents[t],o=0;o<i.length;o++){var r=i[o],s=n&&n[r];s&&(this.off(t,r),delete n[r]),r.apply(this,e)}return this}},e.allOff=function(){delete this._events,delete this._onceEvents},t}),function(t,e){\"function\"==typeof define&&define.amd?define(\"get-size/get-size\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.getSize=e()}(window,function(){\"use strict\";function t(t){var e=parseFloat(t),i=-1==t.indexOf(\"%\")&&!isNaN(e);return i&&e}function e(){}function i(){for(var t={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},e=0;u>e;e++){var i=h[e];t[i]=0}return t}function n(t){var e=getComputedStyle(t);return e||a(\"Style returned \"+e+\". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1\"),e}function o(){if(!d){d=!0;var e=document.createElement(\"div\");e.style.width=\"200px\",e.style.padding=\"1px 2px 3px 4px\",e.style.borderStyle=\"solid\",e.style.borderWidth=\"1px 2px 3px 4px\",e.style.boxSizing=\"border-box\";var i=document.body||document.documentElement;i.appendChild(e);var o=n(e);s=200==Math.round(t(o.width)),r.isBoxSizeOuter=s,i.removeChild(e)}}function r(e){if(o(),\"string\"==typeof e&&(e=document.querySelector(e)),e&&\"object\"==typeof e&&e.nodeType){var r=n(e);if(\"none\"==r.display)return i();var a={};a.width=e.offsetWidth,a.height=e.offsetHeight;for(var d=a.isBorderBox=\"border-box\"==r.boxSizing,l=0;u>l;l++){var c=h[l],f=r[c],m=parseFloat(f);a[c]=isNaN(m)?0:m}var p=a.paddingLeft+a.paddingRight,g=a.paddingTop+a.paddingBottom,y=a.marginLeft+a.marginRight,v=a.marginTop+a.marginBottom,_=a.borderLeftWidth+a.borderRightWidth,z=a.borderTopWidth+a.borderBottomWidth,E=d&&s,b=t(r.width);b!==!1&&(a.width=b+(E?0:p+_));var x=t(r.height);return x!==!1&&(a.height=x+(E?0:g+z)),a.innerWidth=a.width-(p+_),a.innerHeight=a.height-(g+z),a.outerWidth=a.width+y,a.outerHeight=a.height+v,a}}var s,a=\"undefined\"==typeof console?e:function(t){console.error(t)},h=[\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"paddingBottom\",\"marginLeft\",\"marginRight\",\"marginTop\",\"marginBottom\",\"borderLeftWidth\",\"borderRightWidth\",\"borderTopWidth\",\"borderBottomWidth\"],u=h.length,d=!1;return r}),function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define(\"desandro-matches-selector/matches-selector\",e):\"object\"==typeof module&&module.exports?module.exports=e():t.matchesSelector=e()}(window,function(){\"use strict\";var t=function(){var t=window.Element.prototype;if(t.matches)return\"matches\";if(t.matchesSelector)return\"matchesSelector\";for(var e=[\"webkit\",\"moz\",\"ms\",\"o\"],i=0;i<e.length;i++){var n=e[i],o=n+\"MatchesSelector\";if(t[o])return o}}();return function(e,i){return e[t](i)}}),function(t,e){\"function\"==typeof define&&define.amd?define(\"fizzy-ui-utils/utils\",[\"desandro-matches-selector/matches-selector\"],function(i){return e(t,i)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"desandro-matches-selector\")):t.fizzyUIUtils=e(t,t.matchesSelector)}(window,function(t,e){var i={};i.extend=function(t,e){for(var i in e)t[i]=e[i];return t},i.modulo=function(t,e){return(t%e+e)%e};var n=Array.prototype.slice;i.makeArray=function(t){if(Array.isArray(t))return t;if(null===t||void 0===t)return[];var e=\"object\"==typeof t&&\"number\"==typeof t.length;return e?n.call(t):[t]},i.removeFrom=function(t,e){var i=t.indexOf(e);-1!=i&&t.splice(i,1)},i.getParent=function(t,i){for(;t.parentNode&&t!=document.body;)if(t=t.parentNode,e(t,i))return t},i.getQueryElement=function(t){return\"string\"==typeof t?document.querySelector(t):t},i.handleEvent=function(t){var e=\"on\"+t.type;this[e]&&this[e](t)},i.filterFindElements=function(t,n){t=i.makeArray(t);var o=[];return t.forEach(function(t){if(t instanceof HTMLElement){if(!n)return void o.push(t);e(t,n)&&o.push(t);for(var i=t.querySelectorAll(n),r=0;r<i.length;r++)o.push(i[r])}}),o},i.debounceMethod=function(t,e,i){i=i||100;var n=t.prototype[e],o=e+\"Timeout\";t.prototype[e]=function(){var t=this[o];clearTimeout(t);var e=arguments,r=this;this[o]=setTimeout(function(){n.apply(r,e),delete r[o]},i)}},i.docReady=function(t){var e=document.readyState;\"complete\"==e||\"interactive\"==e?setTimeout(t):document.addEventListener(\"DOMContentLoaded\",t)},i.toDashed=function(t){return t.replace(/(.)([A-Z])/g,function(t,e,i){return e+\"-\"+i}).toLowerCase()};var o=t.console;return i.htmlInit=function(e,n){i.docReady(function(){var r=i.toDashed(n),s=\"data-\"+r,a=document.querySelectorAll(\"[\"+s+\"]\"),h=document.querySelectorAll(\".js-\"+r),u=i.makeArray(a).concat(i.makeArray(h)),d=s+\"-options\",l=t.jQuery;u.forEach(function(t){var i,r=t.getAttribute(s)||t.getAttribute(d);try{i=r&&JSON.parse(r)}catch(a){return void(o&&o.error(\"Error parsing \"+s+\" on \"+t.className+\": \"+a))}var h=new e(t,i);l&&l.data(t,n,h)})})},i}),function(t,e){\"function\"==typeof define&&define.amd?define(\"outlayer/item\",[\"ev-emitter/ev-emitter\",\"get-size/get-size\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"ev-emitter\"),require(\"get-size\")):(t.Outlayer={},t.Outlayer.Item=e(t.EvEmitter,t.getSize))}(window,function(t,e){\"use strict\";function i(t){for(var e in t)return!1;return e=null,!0}function n(t,e){t&&(this.element=t,this.layout=e,this.position={x:0,y:0},this._create())}function o(t){return t.replace(/([A-Z])/g,function(t){return\"-\"+t.toLowerCase()})}var r=document.documentElement.style,s=\"string\"==typeof r.transition?\"transition\":\"WebkitTransition\",a=\"string\"==typeof r.transform?\"transform\":\"WebkitTransform\",h={WebkitTransition:\"webkitTransitionEnd\",transition:\"transitionend\"}[s],u={transform:a,transition:s,transitionDuration:s+\"Duration\",transitionProperty:s+\"Property\",transitionDelay:s+\"Delay\"},d=n.prototype=Object.create(t.prototype);d.constructor=n,d._create=function(){this._transn={ingProperties:{},clean:{},onEnd:{}},this.css({position:\"absolute\"})},d.handleEvent=function(t){var e=\"on\"+t.type;this[e]&&this[e](t)},d.getSize=function(){this.size=e(this.element)},d.css=function(t){var e=this.element.style;for(var i in t){var n=u[i]||i;e[n]=t[i]}},d.getPosition=function(){var t=getComputedStyle(this.element),e=this.layout._getOption(\"originLeft\"),i=this.layout._getOption(\"originTop\"),n=t[e?\"left\":\"right\"],o=t[i?\"top\":\"bottom\"],r=parseFloat(n),s=parseFloat(o),a=this.layout.size;-1!=n.indexOf(\"%\")&&(r=r/100*a.width),-1!=o.indexOf(\"%\")&&(s=s/100*a.height),r=isNaN(r)?0:r,s=isNaN(s)?0:s,r-=e?a.paddingLeft:a.paddingRight,s-=i?a.paddingTop:a.paddingBottom,this.position.x=r,this.position.y=s},d.layoutPosition=function(){var t=this.layout.size,e={},i=this.layout._getOption(\"originLeft\"),n=this.layout._getOption(\"originTop\"),o=i?\"paddingLeft\":\"paddingRight\",r=i?\"left\":\"right\",s=i?\"right\":\"left\",a=this.position.x+t[o];e[r]=this.getXValue(a),e[s]=\"\";var h=n?\"paddingTop\":\"paddingBottom\",u=n?\"top\":\"bottom\",d=n?\"bottom\":\"top\",l=this.position.y+t[h];e[u]=this.getYValue(l),e[d]=\"\",this.css(e),this.emitEvent(\"layout\",[this])},d.getXValue=function(t){var e=this.layout._getOption(\"horizontal\");return this.layout.options.percentPosition&&!e?t/this.layout.size.width*100+\"%\":t+\"px\"},d.getYValue=function(t){var e=this.layout._getOption(\"horizontal\");return this.layout.options.percentPosition&&e?t/this.layout.size.height*100+\"%\":t+\"px\"},d._transitionTo=function(t,e){this.getPosition();var i=this.position.x,n=this.position.y,o=t==this.position.x&&e==this.position.y;if(this.setPosition(t,e),o&&!this.isTransitioning)return void this.layoutPosition();var r=t-i,s=e-n,a={};a.transform=this.getTranslate(r,s),this.transition({to:a,onTransitionEnd:{transform:this.layoutPosition},isCleaning:!0})},d.getTranslate=function(t,e){var i=this.layout._getOption(\"originLeft\"),n=this.layout._getOption(\"originTop\");return t=i?t:-t,e=n?e:-e,\"translate3d(\"+t+\"px, \"+e+\"px, 0)\"},d.goTo=function(t,e){this.setPosition(t,e),this.layoutPosition()},d.moveTo=d._transitionTo,d.setPosition=function(t,e){this.position.x=parseFloat(t),this.position.y=parseFloat(e)},d._nonTransition=function(t){this.css(t.to),t.isCleaning&&this._removeStyles(t.to);for(var e in t.onTransitionEnd)t.onTransitionEnd[e].call(this)},d.transition=function(t){if(!parseFloat(this.layout.options.transitionDuration))return void this._nonTransition(t);var e=this._transn;for(var i in t.onTransitionEnd)e.onEnd[i]=t.onTransitionEnd[i];for(i in t.to)e.ingProperties[i]=!0,t.isCleaning&&(e.clean[i]=!0);if(t.from){this.css(t.from);var n=this.element.offsetHeight;n=null}this.enableTransition(t.to),this.css(t.to),this.isTransitioning=!0};var l=\"opacity,\"+o(a);d.enableTransition=function(){if(!this.isTransitioning){var t=this.layout.options.transitionDuration;t=\"number\"==typeof t?t+\"ms\":t,this.css({transitionProperty:l,transitionDuration:t,transitionDelay:this.staggerDelay||0}),this.element.addEventListener(h,this,!1)}},d.onwebkitTransitionEnd=function(t){this.ontransitionend(t)},d.onotransitionend=function(t){this.ontransitionend(t)};var c={\"-webkit-transform\":\"transform\"};d.ontransitionend=function(t){if(t.target===this.element){var e=this._transn,n=c[t.propertyName]||t.propertyName;if(delete e.ingProperties[n],i(e.ingProperties)&&this.disableTransition(),n in e.clean&&(this.element.style[t.propertyName]=\"\",delete e.clean[n]),n in e.onEnd){var o=e.onEnd[n];o.call(this),delete e.onEnd[n]}this.emitEvent(\"transitionEnd\",[this])}},d.disableTransition=function(){this.removeTransitionStyles(),this.element.removeEventListener(h,this,!1),this.isTransitioning=!1},d._removeStyles=function(t){var e={};for(var i in t)e[i]=\"\";this.css(e)};var f={transitionProperty:\"\",transitionDuration:\"\",transitionDelay:\"\"};return d.removeTransitionStyles=function(){this.css(f)},d.stagger=function(t){t=isNaN(t)?0:t,this.staggerDelay=t+\"ms\"},d.removeElem=function(){this.element.parentNode.removeChild(this.element),this.css({display:\"\"}),this.emitEvent(\"remove\",[this])},d.remove=function(){return s&&parseFloat(this.layout.options.transitionDuration)?(this.once(\"transitionEnd\",function(){this.removeElem()}),void this.hide()):void this.removeElem()},d.reveal=function(){delete this.isHidden,this.css({display:\"\"});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty(\"visibleStyle\");e[i]=this.onRevealTransitionEnd,this.transition({from:t.hiddenStyle,to:t.visibleStyle,isCleaning:!0,onTransitionEnd:e})},d.onRevealTransitionEnd=function(){this.isHidden||this.emitEvent(\"reveal\")},d.getHideRevealTransitionEndProperty=function(t){var e=this.layout.options[t];if(e.opacity)return\"opacity\";for(var i in e)return i},d.hide=function(){this.isHidden=!0,this.css({display:\"\"});var t=this.layout.options,e={},i=this.getHideRevealTransitionEndProperty(\"hiddenStyle\");e[i]=this.onHideTransitionEnd,this.transition({from:t.visibleStyle,to:t.hiddenStyle,isCleaning:!0,onTransitionEnd:e})},d.onHideTransitionEnd=function(){this.isHidden&&(this.css({display:\"none\"}),this.emitEvent(\"hide\"))},d.destroy=function(){this.css({position:\"\",left:\"\",right:\"\",top:\"\",bottom:\"\",transition:\"\",transform:\"\"})},n}),function(t,e){\"use strict\";\"function\"==typeof define&&define.amd?define(\"outlayer/outlayer\",[\"ev-emitter/ev-emitter\",\"get-size/get-size\",\"fizzy-ui-utils/utils\",\"./item\"],function(i,n,o,r){return e(t,i,n,o,r)}):\"object\"==typeof module&&module.exports?module.exports=e(t,require(\"ev-emitter\"),require(\"get-size\"),require(\"fizzy-ui-utils\"),require(\"./item\")):t.Outlayer=e(t,t.EvEmitter,t.getSize,t.fizzyUIUtils,t.Outlayer.Item)}(window,function(t,e,i,n,o){\"use strict\";function r(t,e){var i=n.getQueryElement(t);if(!i)return void(h&&h.error(\"Bad element for \"+this.constructor.namespace+\": \"+(i||t)));this.element=i,u&&(this.$element=u(this.element)),this.options=n.extend({},this.constructor.defaults),this.option(e);var o=++l;this.element.outlayerGUID=o,c[o]=this,this._create();var r=this._getOption(\"initLayout\");r&&this.layout()}function s(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e}function a(t){if(\"number\"==typeof t)return t;var e=t.match(/(^\\d*\\.?\\d*)(\\w*)/),i=e&&e[1],n=e&&e[2];if(!i.length)return 0;i=parseFloat(i);var o=m[n]||1;return i*o}var h=t.console,u=t.jQuery,d=function(){},l=0,c={};r.namespace=\"outlayer\",r.Item=o,r.defaults={containerStyle:{position:\"relative\"},initLayout:!0,originLeft:!0,originTop:!0,resize:!0,resizeContainer:!0,transitionDuration:\"0.4s\",hiddenStyle:{opacity:0,transform:\"scale(0.001)\"},visibleStyle:{opacity:1,transform:\"scale(1)\"}};var f=r.prototype;n.extend(f,e.prototype),f.option=function(t){n.extend(this.options,t)},f._getOption=function(t){var e=this.constructor.compatOptions[t];return e&&void 0!==this.options[e]?this.options[e]:this.options[t]},r.compatOptions={initLayout:\"isInitLayout\",horizontal:\"isHorizontal\",layoutInstant:\"isLayoutInstant\",originLeft:\"isOriginLeft\",originTop:\"isOriginTop\",resize:\"isResizeBound\",resizeContainer:\"isResizingContainer\"},f._create=function(){this.reloadItems(),this.stamps=[],this.stamp(this.options.stamp),n.extend(this.element.style,this.options.containerStyle);var t=this._getOption(\"resize\");t&&this.bindResize()},f.reloadItems=function(){this.items=this._itemize(this.element.children)},f._itemize=function(t){for(var e=this._filterFindItemElements(t),i=this.constructor.Item,n=[],o=0;o<e.length;o++){var r=e[o],s=new i(r,this);n.push(s)}return n},f._filterFindItemElements=function(t){return n.filterFindElements(t,this.options.itemSelector)},f.getItemElements=function(){return this.items.map(function(t){return t.element})},f.layout=function(){this._resetLayout(),this._manageStamps();var t=this._getOption(\"layoutInstant\"),e=void 0!==t?t:!this._isLayoutInited;this.layoutItems(this.items,e),this._isLayoutInited=!0},f._init=f.layout,f._resetLayout=function(){this.getSize()},f.getSize=function(){this.size=i(this.element)},f._getMeasurement=function(t,e){var n,o=this.options[t];o?(\"string\"==typeof o?n=this.element.querySelector(o):o instanceof HTMLElement&&(n=o),this[t]=n?i(n)[e]:o):this[t]=0},f.layoutItems=function(t,e){t=this._getItemsForLayout(t),this._layoutItems(t,e),this._postLayout()},f._getItemsForLayout=function(t){return t.filter(function(t){return!t.isIgnored})},f._layoutItems=function(t,e){if(this._emitCompleteOnItems(\"layout\",t),t&&t.length){var i=[];t.forEach(function(t){var n=this._getItemLayoutPosition(t);n.item=t,n.isInstant=e||t.isLayoutInstant,i.push(n)},this),this._processLayoutQueue(i)}},f._getItemLayoutPosition=function(){return{x:0,y:0}},f._processLayoutQueue=function(t){this.updateStagger(),t.forEach(function(t,e){this._positionItem(t.item,t.x,t.y,t.isInstant,e)},this)},f.updateStagger=function(){var t=this.options.stagger;return null===t||void 0===t?void(this.stagger=0):(this.stagger=a(t),this.stagger)},f._positionItem=function(t,e,i,n,o){n?t.goTo(e,i):(t.stagger(o*this.stagger),t.moveTo(e,i))},f._postLayout=function(){this.resizeContainer()},f.resizeContainer=function(){var t=this._getOption(\"resizeContainer\");if(t){var e=this._getContainerSize();e&&(this._setContainerMeasure(e.width,!0),this._setContainerMeasure(e.height,!1))}},f._getContainerSize=d,f._setContainerMeasure=function(t,e){if(void 0!==t){var i=this.size;i.isBorderBox&&(t+=e?i.paddingLeft+i.paddingRight+i.borderLeftWidth+i.borderRightWidth:i.paddingBottom+i.paddingTop+i.borderTopWidth+i.borderBottomWidth),t=Math.max(t,0),this.element.style[e?\"width\":\"height\"]=t+\"px\"}},f._emitCompleteOnItems=function(t,e){function i(){o.dispatchEvent(t+\"Complete\",null,[e])}function n(){s++,s==r&&i()}var o=this,r=e.length;if(!e||!r)return void i();var s=0;e.forEach(function(e){e.once(t,n)})},f.dispatchEvent=function(t,e,i){var n=e?[e].concat(i):i;if(this.emitEvent(t,n),u)if(this.$element=this.$element||u(this.element),e){var o=u.Event(e);o.type=t,this.$element.trigger(o,i)}else this.$element.trigger(t,i)},f.ignore=function(t){var e=this.getItem(t);e&&(e.isIgnored=!0)},f.unignore=function(t){var e=this.getItem(t);e&&delete e.isIgnored},f.stamp=function(t){t=this._find(t),t&&(this.stamps=this.stamps.concat(t),t.forEach(this.ignore,this))},f.unstamp=function(t){t=this._find(t),t&&t.forEach(function(t){n.removeFrom(this.stamps,t),this.unignore(t)},this)},f._find=function(t){return t?(\"string\"==typeof t&&(t=this.element.querySelectorAll(t)),t=n.makeArray(t)):void 0},f._manageStamps=function(){this.stamps&&this.stamps.length&&(this._getBoundingRect(),this.stamps.forEach(this._manageStamp,this))},f._getBoundingRect=function(){var t=this.element.getBoundingClientRect(),e=this.size;this._boundingRect={left:t.left+e.paddingLeft+e.borderLeftWidth,top:t.top+e.paddingTop+e.borderTopWidth,right:t.right-(e.paddingRight+e.borderRightWidth),bottom:t.bottom-(e.paddingBottom+e.borderBottomWidth)}},f._manageStamp=d,f._getElementOffset=function(t){var e=t.getBoundingClientRect(),n=this._boundingRect,o=i(t),r={left:e.left-n.left-o.marginLeft,top:e.top-n.top-o.marginTop,right:n.right-e.right-o.marginRight,bottom:n.bottom-e.bottom-o.marginBottom};return r},f.handleEvent=n.handleEvent,f.bindResize=function(){t.addEventListener(\"resize\",this),this.isResizeBound=!0},f.unbindResize=function(){t.removeEventListener(\"resize\",this),this.isResizeBound=!1},f.onresize=function(){this.resize()},n.debounceMethod(r,\"onresize\",100),f.resize=function(){this.isResizeBound&&this.needsResizeLayout()&&this.layout()},f.needsResizeLayout=function(){var t=i(this.element),e=this.size&&t;return e&&t.innerWidth!==this.size.innerWidth},f.addItems=function(t){var e=this._itemize(t);return e.length&&(this.items=this.items.concat(e)),e},f.appended=function(t){var e=this.addItems(t);e.length&&(this.layoutItems(e,!0),this.reveal(e))},f.prepended=function(t){var e=this._itemize(t);if(e.length){var i=this.items.slice(0);this.items=e.concat(i),this._resetLayout(),this._manageStamps(),this.layoutItems(e,!0),this.reveal(e),this.layoutItems(i)}},f.reveal=function(t){if(this._emitCompleteOnItems(\"reveal\",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.reveal()})}},f.hide=function(t){if(this._emitCompleteOnItems(\"hide\",t),t&&t.length){var e=this.updateStagger();t.forEach(function(t,i){t.stagger(i*e),t.hide()})}},f.revealItemElements=function(t){var e=this.getItems(t);this.reveal(e)},f.hideItemElements=function(t){var e=this.getItems(t);this.hide(e)},f.getItem=function(t){for(var e=0;e<this.items.length;e++){var i=this.items[e];if(i.element==t)return i}},f.getItems=function(t){t=n.makeArray(t);var e=[];return t.forEach(function(t){var i=this.getItem(t);i&&e.push(i)},this),e},f.remove=function(t){var e=this.getItems(t);this._emitCompleteOnItems(\"remove\",e),e&&e.length&&e.forEach(function(t){t.remove(),n.removeFrom(this.items,t)},this)},f.destroy=function(){var t=this.element.style;t.height=\"\",t.position=\"\",t.width=\"\",this.items.forEach(function(t){t.destroy()}),this.unbindResize();var e=this.element.outlayerGUID;delete c[e],delete this.element.outlayerGUID,u&&u.removeData(this.element,this.constructor.namespace)},r.data=function(t){t=n.getQueryElement(t);var e=t&&t.outlayerGUID;return e&&c[e]},r.create=function(t,e){var i=s(r);return i.defaults=n.extend({},r.defaults),n.extend(i.defaults,e),i.compatOptions=n.extend({},r.compatOptions),i.namespace=t,i.data=r.data,i.Item=s(o),n.htmlInit(i,t),u&&u.bridget&&u.bridget(t,i),i};var m={ms:1,s:1e3};return r.Item=o,r}),function(t,e){\"function\"==typeof define&&define.amd?define([\"outlayer/outlayer\",\"get-size/get-size\"],e):\"object\"==typeof module&&module.exports?module.exports=e(require(\"outlayer\"),require(\"get-size\")):t.Masonry=e(t.Outlayer,t.getSize)}(window,function(t,e){var i=t.create(\"masonry\");i.compatOptions.fitWidth=\"isFitWidth\";var n=i.prototype;return n._resetLayout=function(){this.getSize(),this._getMeasurement(\"columnWidth\",\"outerWidth\"),this._getMeasurement(\"gutter\",\"outerWidth\"),this.measureColumns(),this.colYs=[];for(var t=0;t<this.cols;t++)this.colYs.push(0);this.maxY=0,this.horizontalColIndex=0},n.measureColumns=function(){if(this.getContainerWidth(),!this.columnWidth){var t=this.items[0],i=t&&t.element;this.columnWidth=i&&e(i).outerWidth||this.containerWidth}var n=this.columnWidth+=this.gutter,o=this.containerWidth+this.gutter,r=o/n,s=n-o%n,a=s&&1>s?\"round\":\"floor\";r=Math[a](r),this.cols=Math.max(r,1)},n.getContainerWidth=function(){var t=this._getOption(\"fitWidth\"),i=t?this.element.parentNode:this.element,n=e(i);this.containerWidth=n&&n.innerWidth},n._getItemLayoutPosition=function(t){t.getSize();var e=t.size.outerWidth%this.columnWidth,i=e&&1>e?\"round\":\"ceil\",n=Math[i](t.size.outerWidth/this.columnWidth);n=Math.min(n,this.cols);for(var o=this.options.horizontalOrder?\"_getHorizontalColPosition\":\"_getTopColPosition\",r=this[o](n,t),s={x:this.columnWidth*r.col,y:r.y},a=r.y+t.size.outerHeight,h=n+r.col,u=r.col;h>u;u++)this.colYs[u]=a;return s},n._getTopColPosition=function(t){var e=this._getTopColGroup(t),i=Math.min.apply(Math,e);return{col:e.indexOf(i),y:i}},n._getTopColGroup=function(t){if(2>t)return this.colYs;for(var e=[],i=this.cols+1-t,n=0;i>n;n++)e[n]=this._getColGroupY(n,t);return e},n._getColGroupY=function(t,e){if(2>e)return this.colYs[t];var i=this.colYs.slice(t,t+e);return Math.max.apply(Math,i)},n._getHorizontalColPosition=function(t,e){var i=this.horizontalColIndex%this.cols,n=t>1&&i+t>this.cols;i=n?0:i;var o=e.size.outerWidth&&e.size.outerHeight;return this.horizontalColIndex=o?i+t:this.horizontalColIndex,{col:i,y:this._getColGroupY(i,t)}},n._manageStamp=function(t){var i=e(t),n=this._getElementOffset(t),o=this._getOption(\"originLeft\"),r=o?n.left:n.right,s=r+i.outerWidth,a=Math.floor(r/this.columnWidth);a=Math.max(0,a);var h=Math.floor(s/this.columnWidth);h-=s%this.columnWidth?0:1,h=Math.min(this.cols-1,h);for(var u=this._getOption(\"originTop\"),d=(u?n.top:n.bottom)+i.outerHeight,l=a;h>=l;l++)this.colYs[l]=Math.max(d,this.colYs[l])},n._getContainerSize=function(){this.maxY=Math.max.apply(Math,this.colYs);var t={height:this.maxY};return this._getOption(\"fitWidth\")&&(t.width=this._getContainerFitWidth()),t},n._getContainerFitWidth=function(){for(var t=0,e=this.cols;--e&&0===this.colYs[e];)t++;return(this.cols-t)*this.columnWidth-this.gutter},n.needsResizeLayout=function(){var t=this.containerWidth;return this.getContainerWidth(),t!=this.containerWidth},i});\n","(function($){\n var Slideshow = function (element, options) {\n this.$element = $(element);\n this.options = options;\n this.paused = false;\n this.activeIndex = 0;\n\n this.init = function() {\n this.$items = this.$element.find('.item');\n }\n\n this.attachEvents();\n this.init();\n }\n\n\n Slideshow.prototype = {\n\n slide: function(item) {\n var $item = $(item),\n $frame = $item.find('.frame'),\n marginTop = 0;\n\n this.$items.hide();\n $item.show();\n\n marginTop = Math.round($item.height() - $frame.height())/2;\n this.activeIndex = this.$items.index(item);\n\n if (this.options.autoPlay && !this.paused) this.play();\n\n return this;\n },\n\n play: function() {\n this.paused = false;\n\n if (this.interval) clearInterval(this.interval);\n this.interval = setInterval($.proxy(this.next, this), this.options.interval);\n },\n\n pause: function() {\n this.paused = true;\n this.interval = clearInterval(this.interval);\n\n return this;\n },\n\n startAt: function(pos) {\n this.to(pos);\n },\n\n next: function() {\n return this.to('next');\n },\n\n to: function(pos) {\n if (pos === 'next') pos = this.activeIndex + 1;\n if (pos === 'prev') pos = this.activeIndex - 1;\n\n return this.slide(this.$items[this.getValidIndex(pos)]);\n },\n\n getValidIndex: function(index) {\n if (typeof index === 'undefined' || index > (this.$items.length - 1)) index = 0;\n if (index < 0) index = this.$items.length - 1;\n\n return index;\n },\n\n attachEvents: function() {\n var $img = this.$element.find('.frame img'),\n _this = this;\n\n $(document).on('click', '[data-behavior=\"pause-slideshow\"]', function(e) {\n e.preventDefault();\n\n _this.pause();\n });\n\n $(document).on('click', '[data-behavior=\"start-slideshow\"]', function(e) {\n e.preventDefault();\n\n _this.play();\n });\n\n $(document).on('click', '[data-slide], [data-bs-slide], [data-slide-to], [data-bs-slide-to]', function(e) {\n e.preventDefault();\n\n const pos = parseInt($(this).attr('data-slide-to') || $(this).attr('data-bs-slide-to'), 10) ||\n $(this).attr('data-slide') ||\n $(this).attr('data-bs-slide');\n\n if (pos === 'next' || pos === 'prev') _this.pause();\n _this.to(pos);\n });\n\n // pause slideshow on modal close\n $('#slideshow-modal').on('hidden.bs.modal', function() {\n _this.pause();\n });\n }\n }\n\n\n Slideshow.DEFAULTS = {\n autoPlay: false,\n interval: 5000 // in milliseconds\n }\n\n\n $.fn.slideshow = function(option) {\n return this.each(function() {\n var $this = $(this);\n var data = $this.data('slideshow');\n var options = $.extend({}, Slideshow.DEFAULTS, $this.data(), typeof option == 'object' && option);\n\n if (!data) $this.data('slideshow', (data = new Slideshow(this, options)));\n })\n }\n\n})(jQuery);\n","(function($){\n $.fn.BlacklightMasonry = function() {\n var container = this;\n if(container.length > 0) {\n container.imagesLoaded().progress(function(){\n container.masonry($.fn.BlacklightMasonry.options);\n });\n }\n }\n\n $.fn.BlacklightMasonry.options = { gutter: 8 };\n})(jQuery);\n"],"names":["this"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"blacklight-gallery.esm.js","sources":["../../../javascript/blacklight-gallery/grid-lanes-polyfill.js","../../../javascript/blacklight-gallery/index.js"],"sourcesContent":["/**\n * CSS Grid Lanes Polyfill\n *\n * Polyfills the new `display: grid-lanes` CSS feature for browsers\n * that don't support it natively. Based on the WebKit implementation\n * described at: https://webkit.org/blog/17660/introducing-css-grid-lanes/\n *\n * Features supported:\n * - display: grid-lanes\n * - grid-template-columns / grid-template-rows for lane definition\n * - gap, column-gap, row-gap\n * - --flow-tolerance for placement sensitivity\n * - Spanning items (grid-column: span N)\n * - Explicit placement (grid-column: N / M)\n * - Responsive auto-fill/auto-fit with minmax()\n * - Both waterfall (columns) and brick (rows) layouts\n *\n * Features that do not work:\n * - fr units with grid-template-rows\n *\n * @version 1.0.0\n * @author Simon Willison\n * @author ninjamar\n * @license MIT\n */\n\n// ============================================================================\n// CONSTANTS & STATE\n// ============================================================================\n\nconst POLYFILL_NAME = \"GridLanesPolyfill\"\nconst POLYFILL_ATTR = \"data-grid-lanes-polyfilled\"\nconst DEFAULT_TOLERANCE = 16 // ~1em in pixels\n\n// Cache computed styles to reduce redundant calls\nlet styleMap = new WeakMap() // Not const because map has no clear meaning it has to be initialized later\n\n// ============================================================================\n// FEATURE DETECTION\n// ============================================================================\n\n/**\n * Check if the browser natively supports display: grid-lanes\n */\nfunction supportsGridLanes() {\n if (typeof CSS === \"undefined\" || !CSS.supports) {\n return false\n }\n return CSS.supports(\"display\", \"grid-lanes\")\n}\n\n// ============================================================================\n// PARSING UTILITIES\n// ============================================================================\n\n/**\n * Parse a CSS length value to pixels\n */\nfunction parseLengthToPixels(\n value,\n containerSize,\n fontSize = 16,\n rootFontSize = 16\n) {\n if (!value || value === \"auto\" || value === \"none\") return null\n\n const num = parseFloat(value)\n if (isNaN(num)) return null\n\n if (value.endsWith(\"px\")) return num\n if (value.endsWith(\"rem\")) return num * rootFontSize\n if (value.endsWith(\"em\")) return num * fontSize\n if (value.endsWith(\"ch\")) return num * fontSize * 0.5 // Approximate\n if (value.endsWith(\"lh\")) return num * fontSize * 1.2 // Approximate line-height\n if (value.endsWith(\"%\")) return (num / 100) * containerSize\n if (value.endsWith(\"vw\")) return (num / 100) * window.innerWidth\n if (value.endsWith(\"vh\")) return (num / 100) * window.innerHeight\n if (value.endsWith(\"vmin\"))\n return (num / 100) * Math.min(window.innerWidth, window.innerHeight)\n if (value.endsWith(\"vmax\"))\n return (num / 100) * Math.max(window.innerWidth, window.innerHeight)\n if (value.endsWith(\"fr\")) return null // Handled separately\n\n // Unitless number treated as pixels\n if (!isNaN(num) && value === String(num)) return num\n\n return null\n}\n\n/**\n * Parse minmax() function\n */\nfunction parseMinMax(value) {\n const match = value.match(/minmax\\(\\s*([^,]+)\\s*,\\s*([^)]+)\\s*\\)/)\n if (!match) return null\n return {\n min: match[1].trim(),\n max: match[2].trim()\n }\n}\n\n/**\n * Parse repeat() function\n */\nfunction parseRepeat(value) {\n const match = value.match(/repeat\\(\\s*([^,]+)\\s*,\\s*(.+)\\s*\\)/)\n if (!match) return null\n return {\n count: match[1].trim(),\n pattern: match[2].trim()\n }\n}\n\n/**\n * Tokenize a grid template string\n */\nfunction tokenizeTemplate(template) {\n const tokens = []\n let current = \"\"\n let parenDepth = 0\n\n for (let i = 0; i < template.length; i++) {\n const char = template[i]\n\n if (char === \"(\") {\n parenDepth++\n current += char\n } else if (char === \")\") {\n parenDepth--\n current += char\n } else if (char === \" \" && parenDepth === 0) {\n if (current.trim()) {\n tokens.push(current.trim())\n }\n current = \"\"\n } else {\n current += char\n }\n }\n\n if (current.trim()) {\n tokens.push(current.trim())\n }\n\n return tokens\n}\n\n/**\n * Calculate lane sizes from grid-template-columns/rows\n */\nfunction calculateLaneSizes(\n template,\n containerSize,\n gap,\n fontSize,\n rootFontSize\n) {\n if (!template || template === \"none\" || template === \"auto\") {\n return null\n }\n\n const availableSpace = containerSize\n let lanes = []\n let totalFr = 0\n let fixedSpace = 0\n\n // Parse the template\n const tokens = tokenizeTemplate(template)\n\n for (const token of tokens) {\n // Handle repeat()\n const repeatInfo = parseRepeat(token)\n if (repeatInfo) {\n const { count, pattern } = repeatInfo\n const patternTokens = tokenizeTemplate(pattern)\n\n if (count === \"auto-fill\" || count === \"auto-fit\") {\n // Calculate how many repetitions fit\n let minSize = 0\n\n for (const pt of patternTokens) {\n const minmax = parseMinMax(pt)\n if (minmax) {\n const minVal = parseLengthToPixels(\n minmax.min,\n containerSize,\n fontSize,\n rootFontSize\n )\n if (minmax.min === \"max-content\" || minmax.min === \"min-content\") {\n minSize += 100 // Fallback estimate\n } else if (minVal !== null) {\n minSize += minVal\n }\n } else {\n const size = parseLengthToPixels(\n pt,\n containerSize,\n fontSize,\n rootFontSize\n )\n if (size !== null) {\n minSize += size\n } else if (pt.endsWith(\"fr\")) {\n minSize += 100 // Minimum fallback for fr units\n }\n }\n }\n\n // Calculate repetitions\n const patternCount = patternTokens.length\n const gapCount = patternCount - 1\n const minPatternSize = minSize + gapCount * gap\n\n let reps = Math.max(\n 1,\n Math.floor((availableSpace + gap) / (minPatternSize + gap))\n )\n\n // Expand pattern\n for (let i = 0; i < reps; i++) {\n for (const pt of patternTokens) {\n const minmax = parseMinMax(pt)\n if (minmax) {\n const minVal = parseLengthToPixels(\n minmax.min,\n containerSize,\n fontSize,\n rootFontSize\n )\n const maxVal = minmax.max.endsWith(\"fr\")\n ? { fr: parseFloat(minmax.max) }\n : parseLengthToPixels(\n minmax.max,\n containerSize,\n fontSize,\n rootFontSize\n )\n\n lanes.push({\n min: minVal || 0,\n max: maxVal,\n size: 0\n })\n\n if (typeof maxVal === \"object\" && maxVal.fr) {\n totalFr += maxVal.fr\n } else {\n // Only add to fixedSpace if max is NOT fr (non-flexible tracks)\n fixedSpace += minVal || 0\n }\n } else if (pt.endsWith(\"fr\")) {\n const fr = parseFloat(pt)\n lanes.push({ min: 0, max: { fr }, size: 0 })\n totalFr += fr\n } else {\n const size =\n parseLengthToPixels(\n pt,\n containerSize,\n fontSize,\n rootFontSize\n ) || 0\n lanes.push({ min: size, max: size, size })\n fixedSpace += size\n }\n }\n }\n } else {\n // Fixed repeat count\n const reps = parseInt(count, 10)\n for (let i = 0; i < reps; i++) {\n for (const pt of patternTokens) {\n const size = parseLengthToPixels(\n pt,\n containerSize,\n fontSize,\n rootFontSize\n )\n if (pt.endsWith(\"fr\")) {\n const fr = parseFloat(pt)\n lanes.push({ min: 0, max: { fr }, size: 0 })\n totalFr += fr\n } else if (size !== null) {\n lanes.push({ min: size, max: size, size })\n fixedSpace += size\n }\n }\n }\n }\n continue\n }\n\n // Handle minmax()\n const minmax = parseMinMax(token)\n if (minmax) {\n const minVal = parseLengthToPixels(\n minmax.min,\n containerSize,\n fontSize,\n rootFontSize\n )\n const maxVal = minmax.max.endsWith(\"fr\")\n ? { fr: parseFloat(minmax.max) }\n : parseLengthToPixels(minmax.max, containerSize, fontSize, rootFontSize)\n\n lanes.push({ min: minVal || 0, max: maxVal, size: 0 })\n if (typeof maxVal === \"object\" && maxVal.fr) {\n totalFr += maxVal.fr\n } else {\n // Only add to fixedSpace if max is NOT fr (non-flexible tracks)\n fixedSpace += minVal || 0\n }\n continue\n }\n\n // Handle fr units\n if (token.endsWith(\"fr\")) {\n const fr = parseFloat(token)\n lanes.push({ min: 0, max: { fr }, size: 0 })\n totalFr += fr\n continue\n }\n\n // Handle fixed sizes\n const size = parseLengthToPixels(\n token,\n containerSize,\n fontSize,\n rootFontSize\n )\n if (size !== null) {\n lanes.push({ min: size, max: size, size })\n fixedSpace += size\n }\n }\n\n // Calculate final sizes\n const totalGaps = Math.max(0, lanes.length - 1) * gap\n const flexSpace = Math.max(0, availableSpace - fixedSpace - totalGaps)\n const frUnit = totalFr > 0 ? flexSpace / totalFr : 0\n\n for (const lane of lanes) {\n if (typeof lane.max === \"object\" && lane.max.fr) {\n lane.size = lane.min + frUnit * lane.max.fr\n } else {\n lane.size = lane.min\n }\n }\n\n return lanes.map(l => l.size)\n}\n\n// ============================================================================\n// STYLE & ITEM UTILITIES\n// ============================================================================\n\n/**\n * Get computed styles for grid-lanes properties\n */\nfunction getGridLanesStyles(element) {\n const computed = window.getComputedStyle(element)\n const fontSize = parseFloat(computed.getPropertyValue(\"font-size\")) || 16\n const rootFontSize =\n parseFloat(\n window\n .getComputedStyle(document.documentElement)\n .getPropertyValue(\"font-size\")\n ) || 16\n\n // Get gap values\n let gap =\n computed.getPropertyValue(\"gap\") ||\n computed.getPropertyValue(\"grid-gap\") ||\n \"0px\"\n let columnGap =\n computed.getPropertyValue(\"column-gap\") ||\n computed.getPropertyValue(\"grid-column-gap\") ||\n gap\n let rowGap =\n computed.getPropertyValue(\"row-gap\") ||\n computed.getPropertyValue(\"grid-row-gap\") ||\n gap\n\n // Handle combined gap shorthand like \"24px 16px\"\n if (gap.includes(\" \")) {\n const [rg, cg] = gap.split(/\\s+/)\n rowGap = rg\n columnGap = cg\n }\n\n // Parse flow-tolerance\n let tolerance = DEFAULT_TOLERANCE\n const toleranceValue = computed.getPropertyValue(\"--flow-tolerance\").trim()\n\n if (toleranceValue) {\n const parsed = parseLengthToPixels(\n toleranceValue,\n 0,\n fontSize,\n rootFontSize\n )\n if (parsed !== null) tolerance = parsed\n }\n\n return {\n gridTemplateColumns: computed.getPropertyValue(\"grid-template-columns\"),\n gridTemplateRows: computed.getPropertyValue(\"grid-template-rows\"),\n columnGap:\n parseLengthToPixels(\n String(columnGap).split(\" \")[0],\n 0,\n fontSize,\n rootFontSize\n ) || 0,\n rowGap:\n parseLengthToPixels(\n String(rowGap).split(\" \")[0],\n 0,\n fontSize,\n rootFontSize\n ) || 0,\n fontSize,\n rootFontSize,\n tolerance\n }\n}\n\n/**\n * Get item placement properties\n */\nfunction getItemStyles(element) {\n const computed = window.getComputedStyle(element)\n const gridColumn = computed.gridColumn || computed.gridColumnStart\n const gridRow = computed.gridRow || computed.gridRowStart\n\n let columnSpan = 1\n let columnStart = null\n let columnEnd = null\n let rowSpan = 1\n let rowStart = null\n let rowEnd = null\n\n // Parse grid-column\n if (gridColumn && gridColumn !== \"auto\") {\n const spanMatch = gridColumn.match(/span\\s+(\\d+)/)\n if (spanMatch) {\n columnSpan = parseInt(spanMatch[1], 10)\n } else if (gridColumn.includes(\"/\")) {\n const [start, end] = gridColumn.split(\"/\").map(s => s.trim())\n columnStart = parseInt(start, 10)\n columnEnd = parseInt(end, 10)\n if (!isNaN(columnStart) && !isNaN(columnEnd)) {\n columnSpan = Math.abs(columnEnd - columnStart)\n }\n } else {\n const num = parseInt(gridColumn, 10)\n if (!isNaN(num)) {\n columnStart = num\n }\n }\n }\n\n // Parse grid-row\n if (gridRow && gridRow !== \"auto\") {\n const spanMatch = gridRow.match(/span\\s+(\\d+)/)\n if (spanMatch) {\n rowSpan = parseInt(spanMatch[1], 10)\n } else if (gridRow.includes(\"/\")) {\n const [start, end] = gridRow.split(\"/\").map(s => s.trim())\n rowStart = parseInt(start, 10)\n rowEnd = parseInt(end, 10)\n if (!isNaN(rowStart) && !isNaN(rowEnd)) {\n rowSpan = Math.abs(rowEnd - rowStart)\n }\n } else {\n const num = parseInt(gridRow, 10)\n if (!isNaN(num)) {\n rowStart = num\n }\n }\n }\n\n return {\n columnSpan,\n columnStart,\n columnEnd,\n rowSpan,\n rowStart,\n rowEnd\n }\n}\n\n// ============================================================================\n// STYLE CACHE MANAGEMENT\n// ============================================================================\n\n/**\n * Get computed style with caching to reduce redundant calls\n */\nfunction catchedGetComputedStyle(elem, useCatch = true) {\n if (useCatch && styleMap.has(elem)) {\n return styleMap.get(elem)\n }\n const style = window.getComputedStyle(elem)\n styleMap.set(elem, style)\n return style\n}\n\n/**\n * Clear cached style for an element\n */\nfunction removeCachedStyle(elem) {\n styleMap.delete(elem)\n}\n\n// ============================================================================\n// DOM UTILITIES\n// ============================================================================\n\n/**\n * Check if element has the grid-lanes polyfill marker\n */\nfunction hasGridLanesProperty(elem) {\n return (\n catchedGetComputedStyle(elem)\n .getPropertyValue(\"--grid-lanes-polyfill\")\n .trim() === \"1\"\n )\n}\n\n/**\n * Find all elements with --grid-lanes-polyfill down to the granular level.\n * Prefers children over parent elements. Note: nested grid-lanes are not\n * supported because the custom property cascades to all descendants.\n *\n * Uses TreeWalker for efficient traversal and routes through hasGridLanesProperty()\n * to leverage the catchedGetComputedStyle cache. Correctly handles subtree skipping.\n */\nfunction findElements(root = document.body) {\n const results = []\n const walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT)\n\n let node = walker.nextNode() // start from first child, skip root itself\n while (node) {\n if (hasGridLanesProperty(node)) {\n results.push(node)\n // Skip the entire subtree of this match by finding the next\n // node outside of it: try nextSibling, then bubble up ancestors.\n let next = null\n let ancestor = node\n while (ancestor && ancestor !== root) {\n walker.currentNode = ancestor\n next = walker.nextSibling()\n if (next) break\n ancestor = ancestor.parentElement\n }\n node = next // null means no more nodes in tree\n } else {\n node = walker.nextNode()\n }\n }\n return results\n}\n\n/**\n * Process a subtree for grid-lanes containers\n */\nfunction processSubtree(root, instances, options) {\n const containers = findElements(root)\n for (const container of containers) {\n if (!instances.has(container) && !container.hasAttribute(POLYFILL_ATTR)) {\n instances.set(container, new GridLanesLayout(container, options))\n }\n }\n}\n\n// ============================================================================\n// GRID LANES LAYOUT CLASS\n// ============================================================================\n\n/**\n * Main Grid Lanes layout class\n */\nclass GridLanesLayout {\n constructor(container, options = {}) {\n this.container = container\n this.options = options\n this.isVertical = true // true = waterfall (columns), false = brick (rows)\n this.lanes = []\n this.laneHeights = []\n this.resizeObserver = null\n this.mutationObserver = null\n\n this.init()\n }\n\n init() {\n // Mark as polyfilled\n this.container.setAttribute(POLYFILL_ATTR, \"true\")\n\n // Set up container styles\n this.container.style.position = \"relative\"\n this.container.style.display = \"block\"\n\n // Initial layout\n this.layout()\n\n // Set up observers\n this.setupObservers()\n }\n\n setupObservers() {\n // Debounce layout calls to avoid excessive recalculations\n let layoutTimeout = null\n const debouncedLayout = () => {\n if (layoutTimeout) clearTimeout(layoutTimeout)\n layoutTimeout = setTimeout(() => this.layout(), 16)\n }\n\n // Resize observer for responsive layouts AND child size changes\n this.resizeObserver = new ResizeObserver(entries => {\n // Check if it's the container or a child that resized\n for (const entry of entries) {\n if (\n entry.target === this.container ||\n entry.target.parentElement === this.container\n ) {\n debouncedLayout()\n break\n }\n }\n })\n this.resizeObserver.observe(this.container)\n\n // Observe all direct children for size changes\n for (const child of this.container.children) {\n if (child.nodeType === Node.ELEMENT_NODE) {\n this.resizeObserver.observe(child)\n }\n }\n\n // Mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(mutations => {\n let shouldRelayout = false\n for (const mutation of mutations) {\n if (mutation.type === \"childList\") {\n // Observe new children\n for (const node of mutation.addedNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n this.resizeObserver.observe(node)\n // Also watch for images in new nodes\n this.observeImages(node)\n }\n }\n shouldRelayout = true\n } else if (\n mutation.type === \"attributes\" &&\n mutation.attributeName === \"style\"\n ) {\n shouldRelayout = true\n }\n }\n if (shouldRelayout) {\n debouncedLayout()\n }\n })\n this.mutationObserver.observe(this.container, {\n childList: true,\n subtree: false,\n attributes: true,\n attributeFilter: [\"style\", \"class\"]\n })\n\n // Observe all images for load events\n this.observeImages(this.container)\n }\n\n observeImages(root) {\n const images = root.querySelectorAll(\"img\")\n for (const img of images) {\n if (!img.complete) {\n img.addEventListener(\"load\", () => this.layout(), { once: true })\n img.addEventListener(\"error\", () => this.layout(), { once: true })\n }\n }\n }\n\n layout() {\n const styles = getGridLanesStyles(this.container)\n const containerRect = this.container.getBoundingClientRect()\n\n // Determine direction based on which template is defined\n const hasColumns =\n styles.gridTemplateColumns &&\n styles.gridTemplateColumns !== \"none\" &&\n !styles.gridTemplateColumns.startsWith(\"auto\")\n const hasRows =\n styles.gridTemplateRows &&\n styles.gridTemplateRows !== \"none\" &&\n !styles.gridTemplateRows.startsWith(\"auto\")\n\n this.isVertical = hasColumns || !hasRows\n\n // Calculate lane sizes\n if (this.isVertical) {\n this.lanes = calculateLaneSizes(\n styles.gridTemplateColumns,\n containerRect.width,\n styles.columnGap,\n styles.fontSize,\n styles.rootFontSize\n ) || [containerRect.width]\n } else {\n this.lanes = calculateLaneSizes(\n styles.gridTemplateRows,\n containerRect.height,\n styles.rowGap,\n styles.fontSize,\n styles.rootFontSize\n ) || [containerRect.height]\n }\n\n // Initialize lane positions (heights for vertical, widths for horizontal)\n this.laneHeights = new Array(this.lanes.length).fill(0)\n\n // Get all direct children\n const items = Array.from(this.container.children).filter(\n el =>\n el.nodeType === Node.ELEMENT_NODE &&\n window.getComputedStyle(el).display !== \"none\"\n )\n\n // Separate explicitly placed items from auto-placed items\n const explicitItems = []\n const autoItems = []\n\n for (const item of items) {\n const itemStyles = getItemStyles(item)\n if (this.isVertical && itemStyles.columnStart !== null) {\n explicitItems.push({ element: item, styles: itemStyles })\n } else if (!this.isVertical && itemStyles.rowStart !== null) {\n explicitItems.push({ element: item, styles: itemStyles })\n } else {\n autoItems.push({ element: item, styles: itemStyles })\n }\n }\n\n // Place explicitly positioned items first\n for (const { element, styles: itemStyles } of explicitItems) {\n this.placeExplicitItem(element, itemStyles, styles)\n }\n\n // Place auto-positioned items\n for (const { element, styles: itemStyles } of autoItems) {\n this.placeAutoItem(element, itemStyles, styles)\n }\n\n // Set container height\n const containerHeight = Math.max(...this.laneHeights)\n this.container.style.minHeight = `${containerHeight}px`\n }\n\n placeExplicitItem(element, itemStyles, containerStyles) {\n const gap = this.isVertical\n ? containerStyles.columnGap\n : containerStyles.rowGap\n const crossGap = this.isVertical\n ? containerStyles.rowGap\n : containerStyles.columnGap\n\n let laneIndex\n let span\n\n if (this.isVertical) {\n // Handle negative indices\n laneIndex = itemStyles.columnStart\n if (laneIndex < 0) {\n laneIndex = this.lanes.length + laneIndex + 1\n }\n laneIndex = Math.max(0, Math.min(laneIndex - 1, this.lanes.length - 1))\n span = itemStyles.columnSpan\n } else {\n laneIndex = itemStyles.rowStart\n if (laneIndex < 0) {\n laneIndex = this.lanes.length + laneIndex + 1\n }\n laneIndex = Math.max(0, Math.min(laneIndex - 1, this.lanes.length - 1))\n span = itemStyles.rowSpan\n }\n\n // Calculate position\n let position = 0\n for (let i = 0; i < laneIndex; i++) {\n position += this.lanes[i] + gap\n }\n\n // Calculate width (for spanning)\n let size = 0\n const endLane = Math.min(laneIndex + span, this.lanes.length)\n for (let i = laneIndex; i < endLane; i++) {\n size += this.lanes[i]\n if (i < endLane - 1) size += gap\n }\n\n // Get the tallest lane in the span\n let maxHeight = 0\n for (let i = laneIndex; i < endLane; i++) {\n maxHeight = Math.max(maxHeight, this.laneHeights[i])\n }\n\n // Position the element\n element.style.position = \"absolute\"\n\n if (this.isVertical) {\n element.style.left = `${position}px`\n element.style.top = `${maxHeight > 0 ? maxHeight + crossGap : 0}px`\n element.style.width = `${size}px`\n } else {\n element.style.top = `${position}px`\n element.style.left = `${maxHeight > 0 ? maxHeight + crossGap : 0}px`\n element.style.height = `${size}px`\n element.style.width = \"\"\n }\n\n // Update lane heights\n const itemRect = element.getBoundingClientRect()\n const itemSize = this.isVertical ? itemRect.height : itemRect.width\n const newHeight = maxHeight + (maxHeight > 0 ? crossGap : 0) + itemSize\n\n for (let i = laneIndex; i < endLane; i++) {\n this.laneHeights[i] = newHeight\n }\n }\n\n placeAutoItem(element, itemStyles, containerStyles) {\n const gap = this.isVertical\n ? containerStyles.columnGap\n : containerStyles.rowGap\n const crossGap = this.isVertical\n ? containerStyles.rowGap\n : containerStyles.columnGap\n const tolerance = containerStyles.tolerance\n const span = Math.min(\n this.isVertical ? itemStyles.columnSpan : itemStyles.rowSpan,\n this.lanes.length\n )\n\n // Find the best lane(s) considering tolerance\n let bestLane = 0\n let bestHeight = Infinity\n\n for (let i = 0; i <= this.lanes.length - span; i++) {\n // Get the max height across the span\n let maxHeight = 0\n for (let j = i; j < i + span; j++) {\n maxHeight = Math.max(maxHeight, this.laneHeights[j])\n }\n\n // Use tolerance to determine if this is meaningfully better\n if (bestHeight - maxHeight > tolerance) {\n bestHeight = maxHeight\n bestLane = i\n }\n // Within tolerance: keep the current (earlier) bestLane — spec prefers earliest equivalent lane\n }\n\n // Calculate position\n let position = 0\n for (let i = 0; i < bestLane; i++) {\n position += this.lanes[i] + gap\n }\n\n // Calculate size (for spanning)\n let size = 0\n const endLane = Math.min(bestLane + span, this.lanes.length)\n for (let i = bestLane; i < endLane; i++) {\n size += this.lanes[i]\n if (i < endLane - 1) size += gap\n }\n\n // Position the element\n element.style.position = \"absolute\"\n\n if (this.isVertical) {\n element.style.left = `${position}px`\n element.style.top = `${bestHeight > 0 ? bestHeight + crossGap : 0}px`\n element.style.width = `${size}px`\n } else {\n element.style.top = `${position}px`\n element.style.left = `${bestHeight > 0 ? bestHeight + crossGap : 0}px`\n element.style.height = `${size}px`\n element.style.width = \"\"\n }\n\n // Update lane heights\n const itemRect = element.getBoundingClientRect()\n const itemSize = this.isVertical ? itemRect.height : itemRect.width\n const newHeight = bestHeight + (bestHeight > 0 ? crossGap : 0) + itemSize\n\n for (let i = bestLane; i < endLane; i++) {\n this.laneHeights[i] = newHeight\n }\n }\n\n destroy() {\n if (this.resizeObserver) {\n this.resizeObserver.disconnect()\n }\n if (this.mutationObserver) {\n this.mutationObserver.disconnect()\n }\n\n this.container.removeAttribute(POLYFILL_ATTR)\n this.container.style.position = \"\"\n this.container.style.display = \"\"\n this.container.style.minHeight = \"\"\n\n // Reset item styles\n for (const item of this.container.children) {\n if (item.nodeType === Node.ELEMENT_NODE) {\n item.style.position = \"\"\n item.style.left = \"\"\n item.style.top = \"\"\n item.style.width = \"\"\n item.style.height = \"\"\n }\n }\n }\n\n refresh() {\n this.layout()\n }\n}\n\n// ============================================================================\n// PUBLIC API\n// ============================================================================\n\n/**\n * Initialize the polyfill on all grid-lanes elements in the document\n */\nfunction init(options = {}) {\n // Check if native support exists\n if (supportsGridLanes() && !options.force) {\n console.log(\n `${POLYFILL_NAME}: Native support detected, polyfill not needed.`\n )\n return { supported: true, instances: [] }\n }\n\n const instances = new Map()\n\n // Process existing containers\n const containers = findElements()\n\n for (const container of containers) {\n if (!container.hasAttribute(POLYFILL_ATTR)) {\n instances.set(container, new GridLanesLayout(container, options))\n }\n }\n\n // Watch for new stylesheets and elements\n // Debounce for ancestor attribute changes to avoid excessive relayouts\n let ancestorLayoutTimeout = null\n const pendingAncestorInstances = new Map()\n const debouncedRelayoutAll = () => {\n if (ancestorLayoutTimeout) clearTimeout(ancestorLayoutTimeout)\n ancestorLayoutTimeout = setTimeout(() => {\n for (const [container, instance] of pendingAncestorInstances) {\n if (instances.has(container)) {\n removeCachedStyle(container)\n instance.refresh()\n }\n }\n pendingAncestorInstances.clear()\n }, 16)\n }\n\n const observer = new MutationObserver(mutations => {\n for (const mutation of mutations) {\n if (mutation.type === \"attributes\") {\n removeCachedStyle(mutation.target)\n // If the changed node is an ancestor of (or is) a container,\n // cascaded/inherited styles on the container may have changed.\n for (const [container] of instances) {\n if (mutation.target.contains(container)) {\n pendingAncestorInstances.set(container, instances.get(container))\n }\n }\n if (pendingAncestorInstances.size > 0) {\n debouncedRelayoutAll()\n }\n }\n\n if (mutation.type === \"childList\") {\n for (const node of mutation.addedNodes) {\n if (node.nodeType !== node.ELEMENT_NODE) continue\n\n processSubtree(node, instances, options)\n }\n for (const node of mutation.removedNodes) {\n if (node.nodeType !== node.ELEMENT_NODE) continue\n if (instances.has(node)) {\n instances.get(node).destroy()\n instances.delete(node)\n }\n styleMap.delete(node)\n }\n }\n }\n })\n\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: [\"style\", \"class\"]\n })\n\n console.log(\n `${POLYFILL_NAME}: Initialized, ${instances.size} container(s) found.`\n )\n\n return {\n supported: false,\n instances,\n observer,\n refresh() {\n for (const instance of instances.values()) {\n instance.refresh()\n }\n },\n destroy() {\n observer.disconnect()\n for (const instance of instances.values()) {\n instance.destroy()\n }\n instances.clear()\n // TODO: Ensure GC is triggered\n }\n }\n}\n\n/**\n * Apply layout to a specific element\n */\nfunction apply(element, options = {}) {\n if (supportsGridLanes() && !options.force) {\n return null\n }\n return new GridLanesLayout(element, options)\n}\n\n// ============================================================================\n// EXPORTS\n// ============================================================================\n\nexport { supportsGridLanes, init, apply, GridLanesLayout }\n\nexport default {\n supportsGridLanes,\n init,\n apply,\n GridLanesLayout,\n version: \"1.1.0\"\n}\n","import { supportsGridLanes, init } from \"blacklight-gallery/grid-lanes-polyfill\"\n\ndocument.addEventListener(\"DOMContentLoaded\", () => {\n if (!supportsGridLanes()) {\n init({ force: true })\n }\n})\n\n// When a thumbnail opens the slideshow modal, show the slide for that thumbnail.\n// Bootstrap's carousel reads the current slide from the DOM, so moving the\n// active class before the modal is shown is enough.\ndocument.addEventListener(\"show.bs.modal\", (event) => {\n const slideTo = event.relatedTarget?.dataset.bsSlideTo\n const items = event.target.querySelectorAll(\".carousel-item\")\n if (slideTo === undefined || !items[slideTo]) return\n\n items.forEach((item) => item.classList.remove(\"active\"))\n items[slideTo].classList.add(\"active\")\n})\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,aAAa,GAAG;AACtB,MAAM,aAAa,GAAG;AACtB,MAAM,iBAAiB,GAAG,GAAE;;AAE5B;AACA,IAAI,QAAQ,GAAG,IAAI,OAAO,GAAE;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,iBAAiB,GAAG;AAC7B,EAAE,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACnD,IAAI,OAAO;AACX,EAAE;AACF,EAAE,OAAO,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY;AAC7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,mBAAmB;AAC5B,EAAE,KAAK;AACP,EAAE,aAAa;AACf,EAAE,QAAQ,GAAG,EAAE;AACf,EAAE,YAAY,GAAG;AACjB,EAAE;AACF,EAAE,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,MAAM,EAAE,OAAO;;AAE7D,EAAE,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK;AAC9B,EAAE,IAAI,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO;;AAEzB,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO;AACnC,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,GAAG;AAC1C,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG;AACzC,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,QAAQ,GAAG,GAAG;AACvD,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,GAAG,QAAQ,GAAG,GAAG;AACvD,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI;AAChD,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACxD,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,MAAM,CAAC;AACxD,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC5B,IAAI,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW;AACvE,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC5B,IAAI,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW;AACvE,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,IAAI;;AAEvC;AACA,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO;;AAEnD,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,uCAAuC;AACnE,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO;AACrB,EAAE,OAAO;AACT,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACxB,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;AACtB;AACA;;AAEA;AACA;AACA;AACA,SAAS,WAAW,CAAC,KAAK,EAAE;AAC5B,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,oCAAoC;AAChE,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO;AACrB,EAAE,OAAO;AACT,IAAI,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AAC1B,IAAI,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;AAC1B;AACA;;AAEA;AACA;AACA;AACA,SAAS,gBAAgB,CAAC,QAAQ,EAAE;AACpC,EAAE,MAAM,MAAM,GAAG;AACjB,EAAE,IAAI,OAAO,GAAG;AAChB,EAAE,IAAI,UAAU,GAAG;;AAEnB,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,IAAI,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC;;AAE3B,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE;AACtB,MAAM,UAAU;AAChB,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,EAAE;AAC7B,MAAM,UAAU;AAChB,MAAM,OAAO,IAAI;AACjB,IAAI,CAAC,MAAM,IAAI,IAAI,KAAK,GAAG,IAAI,UAAU,KAAK,CAAC,EAAE;AACjD,MAAM,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;AAC1B,QAAQ,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAClC,MAAM;AACN,MAAM,OAAO,GAAG;AAChB,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,EAAE;;AAEF,EAAE,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE;AACtB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AAC9B,EAAE;;AAEF,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA,SAAS,kBAAkB;AAC3B,EAAE,QAAQ;AACV,EAAE,aAAa;AACf,EAAE,GAAG;AACL,EAAE,QAAQ;AACV,EAAE;AACF,EAAE;AACF,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;AAC/D,IAAI,OAAO;AACX,EAAE;;AAEF,EAAE,MAAM,cAAc,GAAG;AACzB,EAAE,IAAI,KAAK,GAAG;AACd,EAAE,IAAI,OAAO,GAAG;AAChB,EAAE,IAAI,UAAU,GAAG;;AAEnB;AACA,EAAE,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ;;AAE1C,EAAE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;AAC9B;AACA,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK;AACxC,IAAI,IAAI,UAAU,EAAE;AACpB,MAAM,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG;AACjC,MAAM,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO;;AAEpD,MAAM,IAAI,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,UAAU,EAAE;AACzD;AACA,QAAQ,IAAI,OAAO,GAAG;;AAEtB,QAAQ,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;AACxC,UAAU,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE;AACvC,UAAU,IAAI,MAAM,EAAE;AACtB,YAAY,MAAM,MAAM,GAAG,mBAAmB;AAC9C,cAAc,MAAM,CAAC,GAAG;AACxB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc;AACd;AACA,YAAY,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa,IAAI,MAAM,CAAC,GAAG,KAAK,aAAa,EAAE;AAC9E,cAAc,OAAO,IAAI,IAAG;AAC5B,YAAY,CAAC,MAAM,IAAI,MAAM,KAAK,IAAI,EAAE;AACxC,cAAc,OAAO,IAAI;AACzB,YAAY;AACZ,UAAU,CAAC,MAAM;AACjB,YAAY,MAAM,IAAI,GAAG,mBAAmB;AAC5C,cAAc,EAAE;AAChB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc;AACd;AACA,YAAY,IAAI,IAAI,KAAK,IAAI,EAAE;AAC/B,cAAc,OAAO,IAAI;AACzB,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1C,cAAc,OAAO,IAAI,IAAG;AAC5B,YAAY;AACZ,UAAU;AACV,QAAQ;;AAER;AACA,QAAQ,MAAM,YAAY,GAAG,aAAa,CAAC;AAC3C,QAAQ,MAAM,QAAQ,GAAG,YAAY,GAAG;AACxC,QAAQ,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG;;AAEpD,QAAQ,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG;AAC3B,UAAU,CAAC;AACX,UAAU,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,GAAG,GAAG,KAAK,cAAc,GAAG,GAAG,CAAC;AACpE;;AAEA;AACA,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACvC,UAAU,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;AAC1C,YAAY,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE;AACzC,YAAY,IAAI,MAAM,EAAE;AACxB,cAAc,MAAM,MAAM,GAAG,mBAAmB;AAChD,gBAAgB,MAAM,CAAC,GAAG;AAC1B,gBAAgB,aAAa;AAC7B,gBAAgB,QAAQ;AACxB,gBAAgB;AAChB;AACA,cAAc,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AACrD,kBAAkB,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;AAC9C,kBAAkB,mBAAmB;AACrC,oBAAoB,MAAM,CAAC,GAAG;AAC9B,oBAAoB,aAAa;AACjC,oBAAoB,QAAQ;AAC5B,oBAAoB;AACpB;;AAEA,cAAc,KAAK,CAAC,IAAI,CAAC;AACzB,gBAAgB,GAAG,EAAE,MAAM,IAAI,CAAC;AAChC,gBAAgB,GAAG,EAAE,MAAM;AAC3B,gBAAgB,IAAI,EAAE;AACtB,eAAe;;AAEf,cAAc,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE;AAC3D,gBAAgB,OAAO,IAAI,MAAM,CAAC;AAClC,cAAc,CAAC,MAAM;AACrB;AACA,gBAAgB,UAAU,IAAI,MAAM,IAAI;AACxC,cAAc;AACd,YAAY,CAAC,MAAM,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1C,cAAc,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;AACtC,cAAc,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACzD,cAAc,OAAO,IAAI;AACzB,YAAY,CAAC,MAAM;AACnB,cAAc,MAAM,IAAI;AACxB,gBAAgB,mBAAmB;AACnC,kBAAkB,EAAE;AACpB,kBAAkB,aAAa;AAC/B,kBAAkB,QAAQ;AAC1B,kBAAkB;AAClB,iBAAiB,IAAI;AACrB,cAAc,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,cAAc,UAAU,IAAI;AAC5B,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,MAAM,CAAC,MAAM;AACb;AACA,QAAQ,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE;AACvC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACvC,UAAU,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE;AAC1C,YAAY,MAAM,IAAI,GAAG,mBAAmB;AAC5C,cAAc,EAAE;AAChB,cAAc,aAAa;AAC3B,cAAc,QAAQ;AACtB,cAAc;AACd;AACA,YAAY,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AACnC,cAAc,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE;AACtC,cAAc,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACzD,cAAc,OAAO,IAAI;AACzB,YAAY,CAAC,MAAM,IAAI,IAAI,KAAK,IAAI,EAAE;AACtC,cAAc,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;AACvD,cAAc,UAAU,IAAI;AAC5B,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,MAAM;AACN,MAAM;AACN,IAAI;;AAEJ;AACA,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK;AACpC,IAAI,IAAI,MAAM,EAAE;AAChB,MAAM,MAAM,MAAM,GAAG,mBAAmB;AACxC,QAAQ,MAAM,CAAC,GAAG;AAClB,QAAQ,aAAa;AACrB,QAAQ,QAAQ;AAChB,QAAQ;AACR;AACA,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI;AAC7C,UAAU,EAAE,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;AACtC,UAAU,mBAAmB,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY;;AAE/E,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;AAC3D,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,EAAE,EAAE;AACnD,QAAQ,OAAO,IAAI,MAAM,CAAC;AAC1B,MAAM,CAAC,MAAM;AACb;AACA,QAAQ,UAAU,IAAI,MAAM,IAAI;AAChC,MAAM;AACN,MAAM;AACN,IAAI;;AAEJ;AACA,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC9B,MAAM,MAAM,EAAE,GAAG,UAAU,CAAC,KAAK;AACjC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE;AACjD,MAAM,OAAO,IAAI;AACjB,MAAM;AACN,IAAI;;AAEJ;AACA,IAAI,MAAM,IAAI,GAAG,mBAAmB;AACpC,MAAM,KAAK;AACX,MAAM,aAAa;AACnB,MAAM,QAAQ;AACd,MAAM;AACN;AACA,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACvB,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;AAC/C,MAAM,UAAU,IAAI;AACpB,IAAI;AACJ,EAAE;;AAEF;AACA,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;AACpD,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,GAAG,UAAU,GAAG,SAAS;AACvE,EAAE,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,OAAO,GAAG;;AAErD,EAAE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC5B,IAAI,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACrD,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;AAC/C,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;AAC9B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO;AAClD,EAAE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,IAAI;AACzE,EAAE,MAAM,YAAY;AACpB,IAAI,UAAU;AACd,MAAM;AACN,SAAS,gBAAgB,CAAC,QAAQ,CAAC,eAAe;AAClD,SAAS,gBAAgB,CAAC,WAAW;AACrC,KAAK,IAAI;;AAET;AACA,EAAE,IAAI,GAAG;AACT,IAAI,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC;AACpC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACzC,IAAI;AACJ,EAAE,IAAI,SAAS;AACf,IAAI,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC;AAC3C,IAAI,QAAQ,CAAC,gBAAgB,CAAC,iBAAiB,CAAC;AAChD,IAAI;AACJ,EAAE,IAAI,MAAM;AACZ,IAAI,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC;AACxC,IAAI,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAC;AAC7C,IAAI;;AAEJ;AACA,EAAE,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzB,IAAI,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK;AACpC,IAAI,MAAM,GAAG;AACb,IAAI,SAAS,GAAG;AAChB,EAAE;;AAEF;AACA,EAAE,IAAI,SAAS,GAAG;AAClB,EAAE,MAAM,cAAc,GAAG,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC,IAAI;;AAE3E,EAAE,IAAI,cAAc,EAAE;AACtB,IAAI,MAAM,MAAM,GAAG,mBAAmB;AACtC,MAAM,cAAc;AACpB,MAAM,CAAC;AACP,MAAM,QAAQ;AACd,MAAM;AACN;AACA,IAAI,IAAI,MAAM,KAAK,IAAI,EAAE,SAAS,GAAG;AACrC,EAAE;;AAEF,EAAE,OAAO;AACT,IAAI,mBAAmB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,uBAAuB,CAAC;AAC3E,IAAI,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB,CAAC,oBAAoB,CAAC;AACrE,IAAI,SAAS;AACb,MAAM,mBAAmB;AACzB,QAAQ,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvC,QAAQ,CAAC;AACT,QAAQ,QAAQ;AAChB,QAAQ;AACR,OAAO,IAAI,CAAC;AACZ,IAAI,MAAM;AACV,MAAM,mBAAmB;AACzB,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACpC,QAAQ,CAAC;AACT,QAAQ,QAAQ;AAChB,QAAQ;AACR,OAAO,IAAI,CAAC;AACZ,IAAI,QAAQ;AACZ,IAAI,YAAY;AAChB,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA,SAAS,aAAa,CAAC,OAAO,EAAE;AAChC,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO;AAClD,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC;AACrD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC;;AAE/C,EAAE,IAAI,UAAU,GAAG;AACnB,EAAE,IAAI,WAAW,GAAG;AACpB,EAAE,IAAI,SAAS,GAAG;AAClB,EAAE,IAAI,OAAO,GAAG;AAChB,EAAE,IAAI,QAAQ,GAAG;AACjB,EAAE,IAAI,MAAM,GAAG;;AAEf;AACA,EAAE,IAAI,UAAU,IAAI,UAAU,KAAK,MAAM,EAAE;AAC3C,IAAI,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc;AACrD,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;AAC5C,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACzC,MAAM,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AAClE,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE;AACtC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE;AAClC,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;AACpD,QAAQ,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,WAAW;AACrD,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE;AACzC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACvB,QAAQ,WAAW,GAAG;AACtB,MAAM;AACN,IAAI;AACJ,EAAE;;AAEF;AACA,EAAE,IAAI,OAAO,IAAI,OAAO,KAAK,MAAM,EAAE;AACrC,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc;AAClD,IAAI,IAAI,SAAS,EAAE;AACnB,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE;AACzC,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AACtC,MAAM,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE;AAC/D,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE;AACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE;AAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC9C,QAAQ,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,QAAQ;AAC5C,MAAM;AACN,IAAI,CAAC,MAAM;AACX,MAAM,MAAM,GAAG,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE;AACtC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;AACvB,QAAQ,QAAQ,GAAG;AACnB,MAAM;AACN,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO;AACT,IAAI,UAAU;AACd,IAAI,WAAW;AACf,IAAI,SAAS;AACb,IAAI,OAAO;AACX,IAAI,QAAQ;AACZ,IAAI;AACJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,uBAAuB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE;AACxD,EAAE,IAAI,QAAQ,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACtC,IAAI,OAAO,QAAQ,CAAC,GAAG,CAAC,IAAI;AAC5B,EAAE;AACF,EAAE,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI;AAC5C,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK;AAC1B,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA,SAAS,iBAAiB,CAAC,IAAI,EAAE;AACjC,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI;AACtB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,oBAAoB,CAAC,IAAI,EAAE;AACpC,EAAE;AACF,IAAI,uBAAuB,CAAC,IAAI;AAChC,OAAO,gBAAgB,CAAC,uBAAuB;AAC/C,OAAO,IAAI,EAAE,KAAK;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE;AAC5C,EAAE,MAAM,OAAO,GAAG;AAClB,EAAE,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY;;AAExE,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,GAAE;AAC9B,EAAE,OAAO,IAAI,EAAE;AACf,IAAI,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE;AACpC,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI;AACvB;AACA;AACA,MAAM,IAAI,IAAI,GAAG;AACjB,MAAM,IAAI,QAAQ,GAAG;AACrB,MAAM,OAAO,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE;AAC5C,QAAQ,MAAM,CAAC,WAAW,GAAG;AAC7B,QAAQ,IAAI,GAAG,MAAM,CAAC,WAAW;AACjC,QAAQ,IAAI,IAAI,EAAE;AAClB,QAAQ,QAAQ,GAAG,QAAQ,CAAC;AAC5B,MAAM;AACN,MAAM,IAAI,GAAG,KAAI;AACjB,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ;AAC5B,IAAI;AACJ,EAAE;AACF,EAAE,OAAO;AACT;;AAEA;AACA;AACA;AACA,SAAS,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE;AAClD,EAAE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI;AACtC,EAAE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AACtC,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;AAC7E,MAAM,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC;AACtE,IAAI;AACJ,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,eAAe,CAAC;AACtB,EAAE,WAAW,CAAC,SAAS,EAAE,OAAO,GAAG,EAAE,EAAE;AACvC,IAAI,IAAI,CAAC,SAAS,GAAG;AACrB,IAAI,IAAI,CAAC,OAAO,GAAG;AACnB,IAAI,IAAI,CAAC,UAAU,GAAG,KAAI;AAC1B,IAAI,IAAI,CAAC,KAAK,GAAG;AACjB,IAAI,IAAI,CAAC,WAAW,GAAG;AACvB,IAAI,IAAI,CAAC,cAAc,GAAG;AAC1B,IAAI,IAAI,CAAC,gBAAgB,GAAG;;AAE5B,IAAI,IAAI,CAAC,IAAI;AACb,EAAE;;AAEF,EAAE,IAAI,GAAG;AACT;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM;;AAErD;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG;AACpC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG;;AAEnC;AACA,IAAI,IAAI,CAAC,MAAM;;AAEf;AACA,IAAI,IAAI,CAAC,cAAc;AACvB,EAAE;;AAEF,EAAE,cAAc,GAAG;AACnB;AACA,IAAI,IAAI,aAAa,GAAG;AACxB,IAAI,MAAM,eAAe,GAAG,MAAM;AAClC,MAAM,IAAI,aAAa,EAAE,YAAY,CAAC,aAAa;AACnD,MAAM,aAAa,GAAG,UAAU,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE;AACxD,IAAI;;AAEJ;AACA,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,OAAO,IAAI;AACxD;AACA,MAAM,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;AACnC,QAAQ;AACR,UAAU,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS;AACzC,UAAU,KAAK,CAAC,MAAM,CAAC,aAAa,KAAK,IAAI,CAAC;AAC9C,UAAU;AACV,UAAU,eAAe;AACzB,UAAU;AACV,QAAQ;AACR,MAAM;AACN,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS;;AAE9C;AACA,IAAI,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AACjD,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;AAChD,QAAQ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK;AACzC,MAAM;AACN,IAAI;;AAEJ;AACA,IAAI,IAAI,CAAC,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,SAAS,IAAI;AAC9D,MAAM,IAAI,cAAc,GAAG;AAC3B,MAAM,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACxC,QAAQ,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AAC3C;AACA,UAAU,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE;AAClD,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;AACrD,cAAc,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI;AAC9C;AACA,cAAc,IAAI,CAAC,aAAa,CAAC,IAAI;AACrC,YAAY;AACZ,UAAU;AACV,UAAU,cAAc,GAAG;AAC3B,QAAQ,CAAC,MAAM;AACf,UAAU,QAAQ,CAAC,IAAI,KAAK,YAAY;AACxC,UAAU,QAAQ,CAAC,aAAa,KAAK;AACrC,UAAU;AACV,UAAU,cAAc,GAAG;AAC3B,QAAQ;AACR,MAAM;AACN,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,eAAe;AACvB,MAAM;AACN,IAAI,CAAC;AACL,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE;AAClD,MAAM,SAAS,EAAE,IAAI;AACrB,MAAM,OAAO,EAAE,KAAK;AACpB,MAAM,UAAU,EAAE,IAAI;AACtB,MAAM,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO;AACxC,KAAK;;AAEL;AACA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS;AACrC,EAAE;;AAEF,EAAE,aAAa,CAAC,IAAI,EAAE;AACtB,IAAI,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK;AAC9C,IAAI,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AAC9B,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;AACzB,QAAQ,GAAG,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACxE,QAAQ,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;AACzE,MAAM;AACN,IAAI;AACJ,EAAE;;AAEF,EAAE,MAAM,GAAG;AACX,IAAI,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS;AACpD,IAAI,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,qBAAqB;;AAE9D;AACA,IAAI,MAAM,UAAU;AACpB,MAAM,MAAM,CAAC,mBAAmB;AAChC,MAAM,MAAM,CAAC,mBAAmB,KAAK,MAAM;AAC3C,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM;AACnD,IAAI,MAAM,OAAO;AACjB,MAAM,MAAM,CAAC,gBAAgB;AAC7B,MAAM,MAAM,CAAC,gBAAgB,KAAK,MAAM;AACxC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM;;AAEhD,IAAI,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,CAAC;;AAErC;AACA,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,KAAK,GAAG,kBAAkB;AACrC,QAAQ,MAAM,CAAC,mBAAmB;AAClC,QAAQ,aAAa,CAAC,KAAK;AAC3B,QAAQ,MAAM,CAAC,SAAS;AACxB,QAAQ,MAAM,CAAC,QAAQ;AACvB,QAAQ,MAAM,CAAC;AACf,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK;AAC/B,IAAI,CAAC,MAAM;AACX,MAAM,IAAI,CAAC,KAAK,GAAG,kBAAkB;AACrC,QAAQ,MAAM,CAAC,gBAAgB;AAC/B,QAAQ,aAAa,CAAC,MAAM;AAC5B,QAAQ,MAAM,CAAC,MAAM;AACrB,QAAQ,MAAM,CAAC,QAAQ;AACvB,QAAQ,MAAM,CAAC;AACf,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM;AAChC,IAAI;;AAEJ;AACA,IAAI,IAAI,CAAC,WAAW,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;;AAE1D;AACA,IAAI,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAM;AAC5D,MAAM,EAAE;AACR,QAAQ,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;AACzC,QAAQ,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,OAAO,KAAK;AAChD;;AAEA;AACA,IAAI,MAAM,aAAa,GAAG;AAC1B,IAAI,MAAM,SAAS,GAAG;;AAEtB,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;AAC9B,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC,IAAI;AAC3C,MAAM,IAAI,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,WAAW,KAAK,IAAI,EAAE;AAC9D,QAAQ,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;AAChE,MAAM,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,QAAQ,KAAK,IAAI,EAAE;AACnE,QAAQ,aAAa,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;AAChE,MAAM,CAAC,MAAM;AACb,QAAQ,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE;AAC5D,MAAM;AACN,IAAI;;AAEJ;AACA,IAAI,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,aAAa,EAAE;AACjE,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM;AACxD,IAAI;;AAEJ;AACA,IAAI,KAAK,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,SAAS,EAAE;AAC7D,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM;AACpD,IAAI;;AAEJ;AACA,IAAI,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW;AACxD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE,eAAe,CAAC,EAAE;AAC1D,EAAE;;AAEF,EAAE,iBAAiB,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE;AAC1D,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC;AACrB,QAAQ,eAAe,CAAC;AACxB,QAAQ,eAAe,CAAC;AACxB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC1B,QAAQ,eAAe,CAAC;AACxB,QAAQ,eAAe,CAAC;;AAExB,IAAI,IAAI;AACR,IAAI,IAAI;;AAER,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB;AACA,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE;AACzB,QAAQ,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG;AACpD,MAAM;AACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5E,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,IAAI,CAAC,MAAM;AACX,MAAM,SAAS,GAAG,UAAU,CAAC;AAC7B,MAAM,IAAI,SAAS,GAAG,CAAC,EAAE;AACzB,QAAQ,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG;AACpD,MAAM;AACN,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5E,MAAM,IAAI,GAAG,UAAU,CAAC;AACxB,IAAI;;AAEJ;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;AACxC,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAClC,IAAI;;AAEJ;AACA,IAAI,IAAI,IAAI,GAAG;AACf,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AAChE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,IAAI,IAAI;AACnC,IAAI;;AAEJ;AACA,IAAI,IAAI,SAAS,GAAG;AACpB,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AACzD,IAAI;;AAEJ;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG;;AAE7B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;AACzC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE;AACxE,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;AACtC,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;AACxC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,SAAS,GAAG,CAAC,GAAG,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE;AACzE,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;AACvC,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG;AAC5B,IAAI;;AAEJ;AACA,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB;AAClD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;AAClE,IAAI,MAAM,SAAS,GAAG,SAAS,IAAI,SAAS,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG;;AAEnE,IAAI,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAC9C,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC5B,IAAI;AACJ,EAAE;;AAEF,EAAE,aAAa,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE;AACtD,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC;AACrB,QAAQ,eAAe,CAAC;AACxB,QAAQ,eAAe,CAAC;AACxB,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC;AAC1B,QAAQ,eAAe,CAAC;AACxB,QAAQ,eAAe,CAAC;AACxB,IAAI,MAAM,SAAS,GAAG,eAAe,CAAC;AACtC,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG;AACzB,MAAM,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,OAAO;AAClE,MAAM,IAAI,CAAC,KAAK,CAAC;AACjB;;AAEA;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,IAAI,IAAI,UAAU,GAAG;;AAErB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACxD;AACA,MAAM,IAAI,SAAS,GAAG;AACtB,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;AACzC,QAAQ,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;AAC3D,MAAM;;AAEN;AACA,MAAM,IAAI,UAAU,GAAG,SAAS,GAAG,SAAS,EAAE;AAC9C,QAAQ,UAAU,GAAG;AACrB,QAAQ,QAAQ,GAAG;AACnB,MAAM;AACN;AACA,IAAI;;AAEJ;AACA,IAAI,IAAI,QAAQ,GAAG;AACnB,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;AACvC,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG;AAClC,IAAI;;AAEJ;AACA,IAAI,IAAI,IAAI,GAAG;AACf,IAAI,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AAC/D,IAAI,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,MAAM,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,IAAI,IAAI;AACnC,IAAI;;AAEJ;AACA,IAAI,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG;;AAE7B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;AACzC,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE;AAC1E,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;AACtC,IAAI,CAAC,MAAM;AACX,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC,EAAE;AACxC,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,UAAU,GAAG,CAAC,GAAG,UAAU,GAAG,QAAQ,GAAG,CAAC,CAAC,EAAE;AAC3E,MAAM,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE;AACvC,MAAM,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG;AAC5B,IAAI;;AAEJ;AACA,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB;AAClD,IAAI,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC;AAClE,IAAI,MAAM,SAAS,GAAG,UAAU,IAAI,UAAU,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG;;AAErE,IAAI,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO,EAAE,CAAC,EAAE,EAAE;AAC7C,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG;AAC5B,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,IAAI,CAAC,cAAc,EAAE;AAC7B,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU;AACpC,IAAI;AACJ,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC/B,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU;AACtC,IAAI;;AAEJ,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,aAAa;AAChD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG;AACpC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG;AACnC,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,GAAG;;AAErC;AACA,IAAI,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;AAChD,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;AAC/C,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG;AAC9B,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG;AAC1B,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG;AACzB,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG;AAC3B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG;AAC5B,MAAM;AACN,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,GAAG;AACZ,IAAI,IAAI,CAAC,MAAM;AACf,EAAE;AACF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AAC5B;AACA,EAAE,IAAI,iBAAiB,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;AAC7C,IAAI,OAAO,CAAC,GAAG;AACf,MAAM,CAAC,EAAE,aAAa,CAAC,+CAA+C;AACtE;AACA,IAAI,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE;AAC3C,EAAE;;AAEF,EAAE,MAAM,SAAS,GAAG,IAAI,GAAG;;AAE3B;AACA,EAAE,MAAM,UAAU,GAAG,YAAY;;AAEjC,EAAE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;AACtC,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE;AAChD,MAAM,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC;AACtE,IAAI;AACJ,EAAE;;AAEF;AACA;AACA,EAAE,IAAI,qBAAqB,GAAG;AAC9B,EAAE,MAAM,wBAAwB,GAAG,IAAI,GAAG;AAC1C,EAAE,MAAM,oBAAoB,GAAG,MAAM;AACrC,IAAI,IAAI,qBAAqB,EAAE,YAAY,CAAC,qBAAqB;AACjE,IAAI,qBAAqB,GAAG,UAAU,CAAC,MAAM;AAC7C,MAAM,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,wBAAwB,EAAE;AACpE,QAAQ,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACtC,UAAU,iBAAiB,CAAC,SAAS;AACrC,UAAU,QAAQ,CAAC,OAAO;AAC1B,QAAQ;AACR,MAAM;AACN,MAAM,wBAAwB,CAAC,KAAK;AACpC,IAAI,CAAC,EAAE,EAAE;AACT,EAAE;;AAEF,EAAE,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,IAAI;AACrD,IAAI,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;AACtC,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE;AAC1C,QAAQ,iBAAiB,CAAC,QAAQ,CAAC,MAAM;AACzC;AACA;AACA,QAAQ,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE;AAC7C,UAAU,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;AACnD,YAAY,wBAAwB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;AAC5E,UAAU;AACV,QAAQ;AACR,QAAQ,IAAI,wBAAwB,CAAC,IAAI,GAAG,CAAC,EAAE;AAC/C,UAAU,oBAAoB;AAC9B,QAAQ;AACR,MAAM;;AAEN,MAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,WAAW,EAAE;AACzC,QAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,UAAU,EAAE;AAChD,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;;AAEnD,UAAU,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO;AACjD,QAAQ;AACR,QAAQ,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,YAAY,EAAE;AAClD,UAAU,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE;AACnD,UAAU,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACnC,YAAY,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,OAAO;AACvC,YAAY,SAAS,CAAC,MAAM,CAAC,IAAI;AACjC,UAAU;AACV,UAAU,QAAQ,CAAC,MAAM,CAAC,IAAI;AAC9B,QAAQ;AACR,MAAM;AACN,IAAI;AACJ,EAAE,CAAC;;AAEH,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,EAAE;AAC7C,IAAI,SAAS,EAAE,IAAI;AACnB,IAAI,OAAO,EAAE,IAAI;AACjB,IAAI,UAAU,EAAE,IAAI;AACpB,IAAI,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO;AACtC,GAAG;;AAEH,EAAE,OAAO,CAAC,GAAG;AACb,IAAI,CAAC,EAAE,aAAa,CAAC,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,oBAAoB;AACzE;;AAEA,EAAE,OAAO;AACT,IAAI,SAAS,EAAE,KAAK;AACpB,IAAI,SAAS;AACb,IAAI,QAAQ;AACZ,IAAI,OAAO,GAAG;AACd,MAAM,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;AACjD,QAAQ,QAAQ,CAAC,OAAO;AACxB,MAAM;AACN,IAAI,CAAC;AACL,IAAI,OAAO,GAAG;AACd,MAAM,QAAQ,CAAC,UAAU;AACzB,MAAM,KAAK,MAAM,QAAQ,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE;AACjD,QAAQ,QAAQ,CAAC,OAAO;AACxB,MAAM;AACN,MAAM,SAAS,CAAC,KAAK;AACrB;AACA,IAAI;AACJ;AACA;;AChhCA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM;AACpD,EAAE,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC5B,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;AACxB,EAAE;AACF,CAAC;;AAED;AACA;AACA;AACA,QAAQ,CAAC,gBAAgB,CAAC,eAAe,EAAE,CAAC,KAAK,KAAK;AACtD,EAAE,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,EAAE,OAAO,CAAC;AAC/C,EAAE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,gBAAgB;AAC9D,EAAE,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;;AAEhD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;AACzD,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ;AACvC,CAAC"}
|