@ekolabs/eko-gallery-react 4.0.4 → 4.0.5-bby-debug-logs-1155695.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.
- package/dist/eko-gallery-react.cjs.js +3 -3
- package/dist/index.esm.js +2 -2
- package/dist/server.cjs.js +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import e,{useRef as n,useState as i,createRef as r,useCallback as o,useEffect as s,forwardRef as a,useImperativeHandle as l,memo as c}from"react";function u(t){return`if (!window.EkoAnalytics) {\n !function () {\n var t, a, e, s, n;\n 'undefined' == typeof window || window.EkoAnalytics || (t = window, a = 'EkoAnalytics', e = document, s = 'script', t[a] || (t[a] = function () {\n t[a].f ? (t[a].q.push(arguments), t[a].ts.push(Date.now())) : t[a].apply(t, arguments);\n }, t[a].f = !0, t[a].q = t[a].q || [], t[a].ts = t[a].ts || [], t[a].t = Number(new Date), t[a].sa = [], t[a].cb = [], t[a].init = function (ids) {\n t[a].id = ids;\n }, t[a].childRequestIdsCallback = function (e) {\n e.data && 'ea-ids-request' === e.data.type && t[a].sa.push(e.source);\n }, t.addEventListener('message', t[a].childRequestIdsCallback)));\n }();\n\n window.EkoAnalytics.cb.push(() => {\n let setCookie = (key, value, additionalProperties = '') => {\n let hostname = window.location.hostname;\n let domain = hostname;\n \n let parts = hostname.split('.');\n if (parts.length > 2) {\n domain = parts.slice(-2).join('.');\n }\n\n // "samesite=lax" is needed for cross-site situations (like NZXT getting checkout url attributes from lambda).\n window.document.cookie = \`\${key}=\${value}; domain=.\${domain}; path=/; secure; samesite=lax; \${additionalProperties}\`;\n };\n\n setCookie('easid', encodeURIComponent(window.EkoAnalytics('getSid')));\n setCookie('eauid', encodeURIComponent(window.EkoAnalytics('getUid')), 'max-age=2147483647');\n });\n\n window.EkoAnalytics('configure', {\n snowplow: {\n options: {\n appId: 'ekoGalleryReact',\n },\n },\n ekoEnv: '${t?"production":"development"}',\n env: 'website',\n });\n window.EkoAnalytics('track', 'PageView');\n }`}function d(t="v1"){return function(e,n="*",i=""){let r=`https://${i}play.eko.com/api/${t}/channels/${e}/configs`;return r+="*"!==n?`/${n}`:"",r}}function h(t){return"object"==typeof t&&!Array.isArray(t)&&null!==t}var f={pack:function(t){const e={};if(!h(t))return e;if(t.itemId&&(e.item_id=t.itemId),t.itemName&&(e.item_name=t.itemName),h(t.itemPrice)){const n=t.itemPrice;e.item_price=function(t){const e={};return h(t)&&(t.amount&&(e.amount=Number(t.amount)),t.currency&&(e.currency=t.currency)),e}(n)}return t.quantity&&(e.quantity=Number(t.quantity)),e}};const p="mobile",m="notmobile";function v(){return((window.navigator.userAgentData?window.navigator.userAgentData.mobile:navigator.maxTouchPoints>0&&/Mobile|Android|webOS|iPhone|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&!/Tablet|iPad/i.test(navigator.userAgent))?p:m)===p}const g={};class y{constructor(t){this.key=`eko.${t}`}setDataStorage(t,e){if("undefined"!=typeof window)try{var n,i;let r=null===(n=window.localStorage)||void 0===n?void 0:n.getItem(this.key);r=JSON.parse(r)||{},r[t]=e,null===(i=window.localStorage)||void 0===i||i.setItem(this.key,JSON.stringify(r))}catch(t){console.error(`[setDataStorage]: ${t}`)}}getDataStorage(t){if("undefined"!=typeof window)try{var e;let n=null===(e=window.localStorage)||void 0===e?void 0:e.getItem(this.key);return n=JSON.parse(n)||{},n[t]}catch(t){console.error(`[getDataStorage]: ${t}`)}}removeDataStorage(t){if("undefined"!=typeof window)try{var e;let i=null===(e=window.localStorage)||void 0===e?void 0:e.getItem(this.key);var n;if(i)if(i=JSON.parse(i),delete i[t],Object.keys(i).length>0)null===(n=window.localStorage)||void 0===n||n.setItem(this.key,JSON.stringify(i));else this.removeAll()}catch(t){console.error(`[removeDataStorage]: ${t}`)}}removeAll(){if("undefined"!=typeof window)try{var t;null===(t=window.localStorage)||void 0===t||t.removeItem(this.key)}catch(t){console.error(`[removeAll]: ${t}`)}}}function b(t){return g[t]||(g[t]=new y(t)),g[t]}const k=b("gallery-react").getDataStorage("gallery-react");function x(t){window.EkoAnalytics("registerContextPacker",{tag:t,match:/.*/,schema:"iglu:com.helloeko/products/jsonschema/1-0-1",getData(t={}){var e,n;if(t.items)return{items:t.items.map((t=>function(t){const e=f.pack(t);return t.id&&(e.id=t.id),t.sku&&(e.sku=t.sku),t.upc&&(e.upc=t.upc),t.name&&(e.name=t.name),e}(t)))};const i=(null===(e=window.eko)||void 0===e||null===(e=e.config)||void 0===e?void 0:e.product)||(null==k||null===(n=k.config)||void 0===n?void 0:n.product);if(i){return{items:[{id:i.id,item_id:i.sku,sku:i.sku,upc:i.upc,typeid:i.type,name:i.name}]}}return null}})}function w(t){return"object"==typeof t&&!Array.isArray(t)&&null!==t}function _(t){const e={};return w(t)&&(t.amount&&(e.amount=Number(t.amount)),t.currency&&(e.currency=t.currency)),e}var T={isObject:w,pricePack:_,itemPack:function(t){const e={};if(!w(t))return e;if(t.itemId&&(e.item_id=t.itemId),t.itemName&&(e.item_name=t.itemName),w(t.itemPrice)){const n=t.itemPrice;e.item_price=_(n)}return t.quantity&&(e.quantity=Number(t.quantity)),t.sellingPlan&&(e.selling_plan=function(t){const e={};return w(t)&&(t.id&&(e.id=t.id),t.name&&(e.name=t.name)),e}(t.sellingPlan)),e}};const I=b("gallery-react").getDataStorage("gallery-react");const E=b("gallery-react").getDataStorage("gallery-react");const S=b("gallery-react").getDataStorage("gallery-react");const A="eko-gallery-react";var N={register:function(){var t;t=A,window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/page/jsonschema/1-0-0",match:/^pixel\..*/,getData:function(){return{url:document.location.href||"",referrer:document.referrer||"",title:document.title||""}}}),x(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/cart/jsonschema/1-0-1",match:/pixel\.cart\.(add|remove)$/,getData(t){const e={};if((t=t||{}).cartId&&(e.cart_id=t.cartId),Array.isArray(t.items)&&(e.items=t.items.map((t=>T.itemPack(t)))),T.isObject(t.totalPrice)){const n=t.totalPrice;e.total_price=T.pricePack(n)}return t.totalQuantity&&(e.total_quantity=Number(t.totalQuantity)),e}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/organization/jsonschema/1-0-0",match:/.*/,getData:function(){var t,e;const n=(null===(t=window.eko)||void 0===t||null===(t=t.config)||void 0===t?void 0:t.customer)||(null==I||null===(e=I.config)||void 0===e?void 0:e.customer);if(n)return{id:null==n?void 0:n.organizationId}}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/space/jsonschema/1-0-2",match:/.*/,getData:function(){var t,e;const n=(null===(t=window.eko)||void 0===t||null===(t=t.config)||void 0===t?void 0:t.customer)||(null==E||null===(e=E.config)||void 0===e?void 0:e.customer);if(n)return{id:null==n?void 0:n.spaceId}}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/asset/jsonschema/1-0-1",match:/.*/,getData:function(t){var e,n;if(null!=t&&t.type&&null!=t&&t.publishitemid&&null!=t&&t.name)return{deliverableid:"",publishitemid:null==t?void 0:t.publishitemid,type:null==t?void 0:t.type,name:null==t?void 0:t.name,artifactid:""};const i=null===(e=window.eko)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.__autoGenerated)||void 0===e?void 0:e.publishItem,r=null==S||null===(n=S.config)||void 0===n||null===(n=n.__autoGenerated)||void 0===n?void 0:n.publishItem,o=i||r;return o?{deliverableid:"",publishitemid:null==o?void 0:o.id,type:"interactive",name:"",artifactid:""}:void 0}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/traffic_allocation/jsonschema/1-0-0",match:"trafficallocation.decision",getData:function(t){if(!t)return;const e={decision:t.decision};return t.config&&(e.config=t.config),isNaN(t.traffic_split)||(e.traffic_split=t.traffic_split),t.provider&&(e.provider=t.provider),e}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/checkout/jsonschema/1-0-4",match:/pixel\.(checkout|order)$/,getData(t){const e={};if((t=t||{}).checkoutId&&(e.checkout_id=t.checkoutId),Array.isArray(t.items)&&(e.items=t.items.map((t=>T.itemPack(t)))),T.isObject(t.totalPrice)){const n=t.totalPrice;e.total_price=T.pricePack(n)}return t.totalQuantity&&(e.total_quantity=Number(t.totalQuantity)),e}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/order/jsonschema/1-0-2",match:"pixel.order",getData(t){const e={};if((t=t||{}).orderId&&(e.order_id=t.orderId),Array.isArray(t.items)&&(e.items=t.items.map((t=>T.itemPack(t)))),T.isObject(t.totalPrice)){const n=t.totalPrice;e.total_price=T.pricePack(n)}return t.totalQuantity&&(e.total_quantity=Number(t.totalQuantity)),e}})}(A)}};function M(t,e){let n="";try{n=window[t].getItem(e),n||(n=function(t){const e=document.cookie.split(";");for(let n=0;n<e.length;n++){const i=e[n].trim();if(0===i.indexOf(t+"="))return i.substring(t.length+1)}return""}(e))}catch(t){console.warn("[eko-gallery-react] Error while getting the id from storage:",e,t)}return n}function F(t){let e=Array.isArray(t.items)?t.items:[t];return e=e.map((t=>({itemId:t.id,itemName:t.name,itemPrice:t.price,quantity:t.quantity||1,variantId:t.variantId,sellingPlan:t.sellingPlan}))),e}function O(t){return{cartId:t.cartId,items:F(t),totalPrice:t.totalPrice,totalQuantity:t.totalQuantity}}var C={"pixel.cart.add":O,"pixel.cart.remove":O,"pixel.product_viewed":function(t){let e=F(t);return e=e.map((t=>function(t){let e=M("localStorage","eko.metadata");if(e&&e[t.itemId]){let n=e[t.itemId].product;t.id=null==n?void 0:n.id,t.sku=null==n?void 0:n.sku,t.upc=null==n?void 0:n.upc,t.name=null==n?void 0:n.name}return t}(t))),{items:e}},"pixel.checkout":function(t){return{checkoutId:t.checkoutId,items:F(t),totalPrice:t.totalPrice,totalQuantity:t.totalQuantity}},"pixel.order":function(t){return{checkoutId:t.checkoutId,orderId:t.orderId,items:F(t),totalPrice:t.totalPrice,totalQuantity:t.totalQuantity}}};const P="https://storage.eko.com/efu/ekoanalytics/master/latest/EkoAnalyticsPlatform.min.gz.js";let D=!1;var R={init:function(t){N.register(),function(t){if(D)return;let e=t?window.location.host:"development";const n=document.createElement("script");n.setAttribute("pxid",e),n.type="text/javascript",n.async=!0,n.src=P,document.body.appendChild(n),D=!0}(t)},onRouteChanged:function(){window.EkoAnalytics("reset")},track:function(t,e){C[t]&&(e=C[t](e)),window.EkoAnalytics("track",t,e)}};function L(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}function B(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function z(t,e){return t.get(L(t,e))}function W(t,e,n){B(t,e),e.set(t,n)}function U(t,e,n){return t.set(L(t,e),n),n}function j(t,e){B(t,e),e.add(t)}function $(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function q(){return q=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},q.apply(null,arguments)}function V(t,e){return t(e={exports:{}},e.exports),e.exports
|
|
1
|
+
import e,{useRef as n,useState as i,createRef as r,useCallback as o,useEffect as s,forwardRef as a,useImperativeHandle as l,memo as c}from"react";function u(t){return`if (!window.EkoAnalytics) {\n !function () {\n var t, a, e, s, n;\n 'undefined' == typeof window || window.EkoAnalytics || (t = window, a = 'EkoAnalytics', e = document, s = 'script', t[a] || (t[a] = function () {\n t[a].f ? (t[a].q.push(arguments), t[a].ts.push(Date.now())) : t[a].apply(t, arguments);\n }, t[a].f = !0, t[a].q = t[a].q || [], t[a].ts = t[a].ts || [], t[a].t = Number(new Date), t[a].sa = [], t[a].cb = [], t[a].init = function (ids) {\n t[a].id = ids;\n }, t[a].childRequestIdsCallback = function (e) {\n e.data && 'ea-ids-request' === e.data.type && t[a].sa.push(e.source);\n }, t.addEventListener('message', t[a].childRequestIdsCallback)));\n }();\n\n window.EkoAnalytics.cb.push(() => {\n let setCookie = (key, value, additionalProperties = '') => {\n let hostname = window.location.hostname;\n let domain = hostname;\n \n let parts = hostname.split('.');\n if (parts.length > 2) {\n domain = parts.slice(-2).join('.');\n }\n\n // "samesite=lax" is needed for cross-site situations (like NZXT getting checkout url attributes from lambda).\n window.document.cookie = \`\${key}=\${value}; domain=.\${domain}; path=/; secure; samesite=lax; \${additionalProperties}\`;\n };\n\n setCookie('easid', encodeURIComponent(window.EkoAnalytics('getSid')));\n setCookie('eauid', encodeURIComponent(window.EkoAnalytics('getUid')), 'max-age=2147483647');\n });\n\n window.EkoAnalytics('configure', {\n snowplow: {\n options: {\n appId: 'ekoGalleryReact',\n },\n },\n ekoEnv: '${t?"production":"development"}',\n env: 'website',\n });\n window.EkoAnalytics('track', 'PageView');\n }`}function d(t="v1"){return function(e,n="*",i=""){let r=`https://${i}play.eko.com/api/${t}/channels/${e}/configs`;return r+="*"!==n?`/${n}`:"",r}}function h(t){return"object"==typeof t&&!Array.isArray(t)&&null!==t}var f={pack:function(t){const e={};if(!h(t))return e;if(t.itemId&&(e.item_id=t.itemId),t.itemName&&(e.item_name=t.itemName),h(t.itemPrice)){const n=t.itemPrice;e.item_price=function(t){const e={};return h(t)&&(t.amount&&(e.amount=Number(t.amount)),t.currency&&(e.currency=t.currency)),e}(n)}return t.quantity&&(e.quantity=Number(t.quantity)),e}};const p="mobile",m="notmobile";function v(){return((window.navigator.userAgentData?window.navigator.userAgentData.mobile:navigator.maxTouchPoints>0&&/Mobile|Android|webOS|iPhone|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)&&!/Tablet|iPad/i.test(navigator.userAgent))?p:m)===p}const g={};class y{constructor(t){this.key=`eko.${t}`}setDataStorage(t,e){if("undefined"!=typeof window)try{var n,i;let r=null===(n=window.localStorage)||void 0===n?void 0:n.getItem(this.key);r=JSON.parse(r)||{},r[t]=e,null===(i=window.localStorage)||void 0===i||i.setItem(this.key,JSON.stringify(r))}catch(t){console.error(`[setDataStorage]: ${t}`)}}getDataStorage(t){if("undefined"!=typeof window)try{var e;let n=null===(e=window.localStorage)||void 0===e?void 0:e.getItem(this.key);return n=JSON.parse(n)||{},n[t]}catch(t){console.error(`[getDataStorage]: ${t}`)}}removeDataStorage(t){if("undefined"!=typeof window)try{var e;let i=null===(e=window.localStorage)||void 0===e?void 0:e.getItem(this.key);var n;if(i)if(i=JSON.parse(i),delete i[t],Object.keys(i).length>0)null===(n=window.localStorage)||void 0===n||n.setItem(this.key,JSON.stringify(i));else this.removeAll()}catch(t){console.error(`[removeDataStorage]: ${t}`)}}removeAll(){if("undefined"!=typeof window)try{var t;null===(t=window.localStorage)||void 0===t||t.removeItem(this.key)}catch(t){console.error(`[removeAll]: ${t}`)}}}function b(t){return g[t]||(g[t]=new y(t)),g[t]}const k=b("gallery-react").getDataStorage("gallery-react");function x(t){window.EkoAnalytics("registerContextPacker",{tag:t,match:/.*/,schema:"iglu:com.helloeko/products/jsonschema/1-0-1",getData(t={}){var e,n;if(t.items)return{items:t.items.map((t=>function(t){const e=f.pack(t);return t.id&&(e.id=t.id),t.sku&&(e.sku=t.sku),t.upc&&(e.upc=t.upc),t.name&&(e.name=t.name),e}(t)))};const i=(null===(e=window.eko)||void 0===e||null===(e=e.config)||void 0===e?void 0:e.product)||(null==k||null===(n=k.config)||void 0===n?void 0:n.product);if(i){return{items:[{id:i.id,item_id:i.sku,sku:i.sku,upc:i.upc,typeid:i.type,name:i.name}]}}return null}})}function w(t){return"object"==typeof t&&!Array.isArray(t)&&null!==t}function _(t){const e={};return w(t)&&(t.amount&&(e.amount=Number(t.amount)),t.currency&&(e.currency=t.currency)),e}var T={isObject:w,pricePack:_,itemPack:function(t){const e={};if(!w(t))return e;if(t.itemId&&(e.item_id=t.itemId),t.itemName&&(e.item_name=t.itemName),w(t.itemPrice)){const n=t.itemPrice;e.item_price=_(n)}return t.quantity&&(e.quantity=Number(t.quantity)),t.sellingPlan&&(e.selling_plan=function(t){const e={};return w(t)&&(t.id&&(e.id=t.id),t.name&&(e.name=t.name)),e}(t.sellingPlan)),e}};const I=b("gallery-react").getDataStorage("gallery-react");const E=b("gallery-react").getDataStorage("gallery-react");const S=b("gallery-react").getDataStorage("gallery-react");const A="eko-gallery-react";var N={register:function(){!function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/page/jsonschema/1-0-0",match:/^pixel\..*/,getData:function(){return{url:document.location.href||"",referrer:document.referrer||"",title:document.title||""}}})}(A),x(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/cart/jsonschema/1-0-1",match:/pixel\.cart\.(add|remove)$/,getData(t){const e={};if((t=t||{}).cartId&&(e.cart_id=t.cartId),Array.isArray(t.items)&&(e.items=t.items.map((t=>T.itemPack(t)))),T.isObject(t.totalPrice)){const n=t.totalPrice;e.total_price=T.pricePack(n)}return t.totalQuantity&&(e.total_quantity=Number(t.totalQuantity)),e}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/organization/jsonschema/1-0-0",match:/.*/,getData:function(){var t,e;const n=(null===(t=window.eko)||void 0===t||null===(t=t.config)||void 0===t?void 0:t.customer)||(null==I||null===(e=I.config)||void 0===e?void 0:e.customer);if(n)return{id:null==n?void 0:n.organizationId}}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/space/jsonschema/1-0-2",match:/.*/,getData:function(){var t,e;const n=(null===(t=window.eko)||void 0===t||null===(t=t.config)||void 0===t?void 0:t.customer)||(null==E||null===(e=E.config)||void 0===e?void 0:e.customer);if(n)return{id:null==n?void 0:n.spaceId}}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/asset/jsonschema/1-0-1",match:/.*/,getData:function(t){var e,n;if(null!=t&&t.type&&null!=t&&t.publishitemid&&null!=t&&t.name)return{deliverableid:"",publishitemid:null==t?void 0:t.publishitemid,type:null==t?void 0:t.type,name:null==t?void 0:t.name,artifactid:""};const i=null===(e=window.eko)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.__autoGenerated)||void 0===e?void 0:e.publishItem,r=null==S||null===(n=S.config)||void 0===n||null===(n=n.__autoGenerated)||void 0===n?void 0:n.publishItem,o=i||r;return o?{deliverableid:"",publishitemid:null==o?void 0:o.id,type:"interactive",name:"",artifactid:""}:void 0}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/traffic_allocation/jsonschema/1-0-0",match:"trafficallocation.decision",getData:function(t){if(!t)return;const e={decision:t.decision};return t.config&&(e.config=t.config),isNaN(t.traffic_split)||(e.traffic_split=t.traffic_split),t.provider&&(e.provider=t.provider),e}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/checkout/jsonschema/1-0-4",match:/pixel\.(checkout|order)$/,getData(t){const e={};if((t=t||{}).checkoutId&&(e.checkout_id=t.checkoutId),Array.isArray(t.items)&&(e.items=t.items.map((t=>T.itemPack(t)))),T.isObject(t.totalPrice)){const n=t.totalPrice;e.total_price=T.pricePack(n)}return t.totalQuantity&&(e.total_quantity=Number(t.totalQuantity)),e}})}(A),function(t){window.EkoAnalytics("registerContextPacker",{tag:t,schema:"iglu:com.helloeko/order/jsonschema/1-0-2",match:"pixel.order",getData(t){const e={};if((t=t||{}).orderId&&(e.order_id=t.orderId),Array.isArray(t.items)&&(e.items=t.items.map((t=>T.itemPack(t)))),T.isObject(t.totalPrice)){const n=t.totalPrice;e.total_price=T.pricePack(n)}return t.totalQuantity&&(e.total_quantity=Number(t.totalQuantity)),e}})}(A)}};function M(t,e){let n="";try{n=window[t].getItem(e),n||(n=function(t){const e=document.cookie.split(";");for(let n=0;n<e.length;n++){const i=e[n].trim();if(0===i.indexOf(t+"="))return i.substring(t.length+1)}return""}(e))}catch(t){console.warn("[eko-gallery-react] Error while getting the id from storage:",e,t)}return n}function F(t){let e=Array.isArray(t.items)?t.items:[t];return e=e.map((t=>({itemId:t.id,itemName:t.name,itemPrice:t.price,quantity:t.quantity||1,variantId:t.variantId,sellingPlan:t.sellingPlan}))),e}function O(t){return{cartId:t.cartId,items:F(t),totalPrice:t.totalPrice,totalQuantity:t.totalQuantity}}var C={"pixel.cart.add":O,"pixel.cart.remove":O,"pixel.product_viewed":function(t){let e=F(t);return e=e.map((t=>function(t){let e=M("localStorage","eko.metadata");if(e&&e[t.itemId]){let n=e[t.itemId].product;t.id=null==n?void 0:n.id,t.sku=null==n?void 0:n.sku,t.upc=null==n?void 0:n.upc,t.name=null==n?void 0:n.name}return t}(t))),{items:e}},"pixel.checkout":function(t){return{checkoutId:t.checkoutId,items:F(t),totalPrice:t.totalPrice,totalQuantity:t.totalQuantity}},"pixel.order":function(t){return{checkoutId:t.checkoutId,orderId:t.orderId,items:F(t),totalPrice:t.totalPrice,totalQuantity:t.totalQuantity}}};const P="https://storage.eko.com/efu/ekoanalytics/master/latest/EkoAnalyticsPlatform.min.gz.js";let D=!1;var R={init:function(t){N.register(),function(t){if(D)return;let e=t?window.location.host:"development";const n=document.createElement("script");n.setAttribute("pxid",e),n.type="text/javascript",n.async=!0,n.src=P,document.body.appendChild(n),D=!0}(t)},onRouteChanged:function(){window.EkoAnalytics("reset")},track:function(t,e){C[t]&&(e=C[t](e)),window.EkoAnalytics("track",t,e)}};function L(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}function B(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}function z(t,e){return t.get(L(t,e))}function W(t,e,n){B(t,e),e.set(t,n)}function U(t,e,n){return t.set(L(t,e),n),n}function $(t,e){B(t,e),e.add(t)}function j(t,e,n){return(e=function(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function q(){return q=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)({}).hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},q.apply(null,arguments)}function V(t,e){return t(e={exports:{}},e.exports),e.exports
|
|
2
2
|
/** @license React v16.13.1
|
|
3
3
|
* react-is.production.min.js
|
|
4
4
|
*
|
|
@@ -11,4 +11,4 @@ import e,{useRef as n,useState as i,createRef as r,useCallback as o,useEffect as
|
|
|
11
11
|
object-assign
|
|
12
12
|
(c) Sindre Sorhus
|
|
13
13
|
@license MIT
|
|
14
|
-
*/var bt=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(e).map((function(t){return e[t]}));if("0123456789"!==i.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,i,r=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),o=1;o<arguments.length;o++){for(var s in n=Object(arguments[o]))gt.call(n,s)&&(r[s]=n[s]);if(vt){i=vt(n);for(var a=0;a<i.length;a++)yt.call(n,i[a])&&(r[i[a]]=n[i[a]])}}return r},kt="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",xt=Function.call.bind(Object.prototype.hasOwnProperty),wt=function(){};if("production"!==process.env.NODE_ENV){var _t=kt,Tt={},It=xt;wt=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}}}function Et(t,e,n,i,r){if("production"!==process.env.NODE_ENV)for(var o in t)if(It(t,o)){var s;try{if("function"!=typeof t[o]){var a=Error((i||"React class")+": "+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw a.name="Invariant Violation",a}s=t[o](e,o,i,n,null,_t)}catch(t){s=t}if(!s||s instanceof Error||wt((i||"React class")+": type specification of "+n+" `"+o+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof s+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),s instanceof Error&&!(s.message in Tt)){Tt[s.message]=!0;var l=r?r():"";wt("Failed "+n+" type: "+s.message+(null!=l?l:""))}}}Et.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Tt={})};var St=Et,At=function(){};function Nt(){return null}"production"!==process.env.NODE_ENV&&(At=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}});var Mt=function(t,e){var n="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";var r="<<anonymous>>",o={array:c("array"),bigint:c("bigint"),bool:c("boolean"),func:c("function"),number:c("number"),object:c("object"),string:c("string"),symbol:c("symbol"),any:l(Nt),arrayOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside arrayOf.");var s=e[n];if(!Array.isArray(s))return new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected an array.");for(var l=0;l<s.length;l++){var c=t(s,l,i,r,o+"["+l+"]",kt);if(c instanceof Error)return c}return null}))},element:l((function(e,n,i,r,o){var s=e[n];return t(s)?null:new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected a single ReactElement.")})),elementType:l((function(t,e,n,i,r){var o=t[e];return mt.isValidElementType(o)?null:new a("Invalid "+i+" `"+r+"` of type `"+h(o)+"` supplied to `"+n+"`, expected a single ReactElement type.")})),instanceOf:function(t){return l((function(e,n,i,o,s){if(!(e[n]instanceof t)){var l=t.name||r;return new a("Invalid "+o+" `"+s+"` of type `"+(((c=e[n]).constructor&&c.constructor.name?c.constructor.name:r)+"` supplied to `")+i+"`, expected instance of `"+l+"`.")}var c;return null}))},node:l((function(t,e,n,i,r){return d(t[e])?null:new a("Invalid "+i+" `"+r+"` supplied to `"+n+"`, expected a ReactNode.")})),objectOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside objectOf.");var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected an object.");for(var c in s)if(xt(s,c)){var u=t(s,c,i,r,o+"."+c,kt);if(u instanceof Error)return u}return null}))},oneOf:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),Nt;return l((function(e,n,i,r,o){for(var l=e[n],c=0;c<t.length;c++)if(s(l,t[c]))return null;var u=JSON.stringify(t,(function(t,e){return"symbol"===f(e)?String(e):e}));return new a("Invalid "+r+" `"+o+"` of value `"+String(l)+"` supplied to `"+i+"`, expected one of "+u+".")}))},oneOfType:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At("Invalid argument supplied to oneOfType, expected an instance of array."),Nt;for(var e=0;e<t.length;e++){var n=t[e];if("function"!=typeof n)return At("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(n)+" at index "+e+"."),Nt}return l((function(e,n,i,r,o){for(var s=[],l=0;l<t.length;l++){var c=(0,t[l])(e,n,i,r,o,kt);if(null==c)return null;c.data&&xt(c.data,"expectedType")&&s.push(c.data.expectedType)}return new a("Invalid "+r+" `"+o+"` supplied to `"+i+"`"+(s.length>0?", expected one of type ["+s.join(", ")+"]":"")+".")}))},shape:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");for(var c in t){var d=t[c];if("function"!=typeof d)return u(i,r,o,c,f(d));var p=d(s,c,i,r,o+"."+c,kt);if(p)return p}return null}))},exact:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");var c=bt({},e[n],t);for(var d in c){var p=t[d];if(xt(t,d)&&"function"!=typeof p)return u(i,r,o,d,f(p));if(!p)return new a("Invalid "+r+" `"+o+"` key `"+d+"` supplied to `"+i+"`.\nBad object: "+JSON.stringify(e[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(t),null," "));var m=p(s,d,i,r,o+"."+d,kt);if(m)return m}return null}))}};function s(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function a(t,e){this.message=t,this.data=e&&"object"==typeof e?e:{},this.stack=""}function l(t){if("production"!==process.env.NODE_ENV)var n={},i=0;function o(o,s,l,c,u,d,h){if(c=c||r,d=d||l,h!==kt){if(e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var p=c+":"+l;!n[p]&&i<3&&(At("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[p]=!0,i++)}}return null==s[l]?o?null===s[l]?new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `null`."):new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:t(s,l,c,u,d)}var s=o.bind(null,!1);return s.isRequired=o.bind(null,!0),s}function c(t){return l((function(e,n,i,r,o,s){var l=e[n];return h(l)!==t?new a("Invalid "+r+" `"+o+"` of type `"+f(l)+"` supplied to `"+i+"`, expected `"+t+"`.",{expectedType:t}):null}))}function u(t,e,n,i,r){return new a((t||"React class")+": "+e+" type `"+n+"."+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+r+"`.")}function d(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(d);if(null===e||t(e))return!0;var r=function(t){var e=t&&(n&&t[n]||t[i]);if("function"==typeof e)return e}(e);if(!r)return!1;var o,s=r.call(e);if(r!==e.entries){for(;!(o=s.next()).done;)if(!d(o.value))return!1}else for(;!(o=s.next()).done;){var a=o.value;if(a&&!d(a[1]))return!1}return!0;default:return!1}}function h(t){var e=typeof t;return Array.isArray(t)?"array":t instanceof RegExp?"object":function(t,e){return"symbol"===t||!!e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)}(e,t)?"symbol":e}function f(t){if(null==t)return""+t;var e=h(t);if("object"===e){if(t instanceof Date)return"date";if(t instanceof RegExp)return"regexp"}return e}function p(t){var e=f(t);switch(e){case"array":case"object":return"an "+e;case"boolean":case"date":case"regexp":return"a "+e;default:return e}}return a.prototype=Error.prototype,o.checkPropTypes=St,o.resetWarningCache=St.resetWarningCache,o.PropTypes=o,o};function Ft(){}function Ot(){}Ot.resetWarningCache=Ft;var Ct=V((function(t){if("production"!==process.env.NODE_ENV){var e=mt;t.exports=Mt(e.isElement,!0)}else t.exports=function(){function t(t,e,n,i,r,o){if(o!==kt){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function e(){return t}t.isRequired=t;var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:Ot,resetWarningCache:Ft};return n.PropTypes=n,n}()}));const Pt=/https?:\/\/(.*?\.)?eko.com/,Dt={"eko.project.interaction":"interaction","eko.project.swipe":"swipe"};let Rt=null,Lt=null,Bt=[];function zt(t){return e=>{var n;if(!Pt.test(e.origin)||"eko.embedapi"!==(null===(n=e.data)||void 0===n?void 0:n.source))return;const i=e.data,r=Dt[i.type];r&&(t?t(r,i.data):Bt.push({type:r,data:i.data}))}}"undefined"!=typeof window&&(Lt=zt(null),window.addEventListener("message",Lt));var Wt={subscribe:function(t){"function"==typeof t?Rt?console.warn("[eko-gallery-react] Ignoring events subscribe since already subscribed"):(Rt=t,Lt=zt(t),window.addEventListener("message",Lt),function(t){Bt.forEach((e=>{t(e.type,e.data)})),Bt=[]}(t)):console.warn("[eko-gallery-react] Ignoring events subscribe since a callback function was not provided as argument")},unsubscribe:function(){Lt?(window.removeEventListener("message",Lt),Lt=null,Rt=null,Bt=[]):console.warn("[eko-gallery-react] Ignoring events unsubscribe since not subscribed")},send:function(t,e){Rt?Rt(t,e):Bt.push({type:t,data:e})}};const Ut=({index:t,activeIndex:n,setActiveIndex:i,item:r,src:o,navItemRefs:s,itemIcon:a})=>{var l,c;const u=null==r||null===(l=r.media)||void 0===l?void 0:l.srcset,d=null==r||null===(c=r.media)||void 0===c?void 0:c.sizes,h=!o&&(null==r?void 0:r.label),f=u?o:function(t,e=200){if(!t)return null;try{let n=t;t.includes("assets.eko.com")&&t.includes("/raw/")&&(n=t.replace("/raw/","/image/"));const i=new URL(n);return i.searchParams.set("width",e),i.href}catch(e){return t}}(o,150);let p=["addons-container",h?"full-thumb-label":""].join(" ").trim();return e.createElement("li",{className:"eko-nav-item","aria-current":n===t,onClick:function(){i(t),function(t){R.track("gallery.interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"}),Wt.send("interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"})}(t)},ref:s.current[t]},e.createElement("button",{type:"button","aria-label":`Go to item ${t}`},!h&&e.createElement("img",{src:f,srcSet:u,sizes:d,alt:null==r?void 0:r.name,loading:"eager",fetchPriority:"high"}),e.createElement("div",{className:p},(null==r?void 0:r.stepsIndication)&&e.createElement("div",{className:"step-indicator"},e.createElement("span",null),e.createElement("span",null),e.createElement("span",null)),(null==r?void 0:r.label)&&e.createElement("div",{className:"thumb-label"},null==r?void 0:r.label)),a&&e.createElement("div",{className:"item-icon"},e.createElement("span",{style:{backgroundImage:`url(${a})`}}))))};Ut.propTypes={index:Ct.number,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,item:Ct.object.isRequired,src:Ct.string,navItemRefs:Ct.object.isRequired,itemIcon:Ct.string};const jt=({layout:t,nav:i,isVerticalNav:r,showPrevArrow:o,showNextArrow:s})=>{var a,l,c,u,d;const h=n(null),f=n(null),p="arrows"===(null==t||null===(a=t.mobile)||void 0===a||null===(a=a.config)||void 0===a||null===(a=a.navPagination)||void 0===a?void 0:a.type)?"eko-mobile-arrows":"",m="arrows"===(null!==(l=null==t||null===(c=t.desktop)||void 0===c||null===(c=c.config)||void 0===c||null===(c=c.navPagination)||void 0===c?void 0:c.type)&&void 0!==l?l:"arrows")?"eko-desktop-arrows":"",v=p||m,g=r?null==i||null===(u=i.current)||void 0===u?void 0:u.scrollHeight:null==i||null===(d=i.current)||void 0===d?void 0:d.scrollWidth;function y(t){const e=r?i.current.clientHeight:i.current.clientWidth,n=function(t,e){const n=r?e.scrollTop:e.scrollLeft;return Math.max(-n,Math.min(g-t-n,t))}("next"===t?e:-e,i.current);return{top:r?n:0,left:r?0:n,behavior:"smooth"}}function b(t){var e,n,r;const o=y(t),s="next"===t?null==f||null===(e=f.current)||void 0===e?void 0:e.id:null==h||null===(n=h.current)||void 0===n?void 0:n.id;var a,l;window.EkoAnalytics("track","gallery.interaction",{elementid:s,interactiontype:"click"}),null==i||null===(r=i.current)||void 0===r||r.scrollBy(o),a=s,l="click",R.track("gallery.interaction",{elementId:a,interactiontype:l}),Wt.send("interaction",{elementId:a,interactiontype:l})}return e.createElement(e.Fragment,null,v&&e.createElement(e.Fragment,null,e.createElement("button",q({type:"button","aria-label":"Go to previous item","aria-hidden":o?"false":"true",onClick:()=>b("prev"),ref:h,id:"eko-nav-prev-arrow",className:`eko-nav-arrow eko-prev-nav-button ${p} ${m} ${o?"":"eko-hidden-nav-button"}`},o?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M5.56127 9.52817C5.28966 9.22635 5.28966 8.77361 5.56127 8.502L10.39 3.67331C10.6918 3.37157 11.1445 3.37157 11.4161 3.67331C11.7179 3.94492 11.7179 4.39766 11.4161 4.66927L7.10044 8.98487L11.4161 13.3307C11.7179 13.6023 11.7179 14.055 11.4161 14.3266C11.1445 14.6285 10.6918 14.6285 10.4202 14.3266L5.56127 9.52817Z",fill:"black"}))),e.createElement("button",q({type:"button","aria-label":"Go to next item","aria-hidden":s?"false":"true",onClick:()=>b("next"),ref:f,className:`eko-nav-arrow eko-next-nav-button ${p} ${m} ${s?"":"eko-hidden-nav-button"}`,id:"eko-nav-next-arrow"},s?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12.4387 8.47185C12.7103 8.77367 12.7103 9.22641 12.4387 9.49802L7.61003 14.3267C7.30821 14.6284 6.85547 14.6284 6.58386 14.3267C6.28212 14.0551 6.28212 13.6024 6.58386 13.3308L10.8996 9.01515L6.58386 4.66933C6.28212 4.39772 6.28212 3.94499 6.58386 3.67338C6.85547 3.37155 7.30821 3.37155 7.57982 3.67338L12.4387 8.47185Z",fill:"black"})))))};function $t(t,e,n){let i;return function(){const n=this,r=arguments;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(n,r)}),e)}}jt.propTypes={layout:Ct.object.isRequired,nav:Ct.object.isRequired,isVerticalNav:Ct.bool.isRequired,showPrevArrow:Ct.bool.isRequired,showNextArrow:Ct.bool.isRequired};const qt=({items:t,setActiveIndex:a,activeIndex:l,layout:c,carouselMounted:u,forceMobile:d})=>{const h=n(null),f=n(null),p=n([]),m=3,[g,y]=i(null),[b,k]=i(!1),[x,w]=i(0),[_,T]=i(!1),[I,E]=i(!1);function S(){var t;const e=d||window.innerWidth<768?"mobile":"desktop",n=(null==c||null===(t=c[e])||void 0===t||null===(t=t.config)||void 0===t?void 0:t.orientation)||("desktop"===e?"left":"bottom");k("left"===n||"right"===n);const i=f.current.parentNode,r=u?".eko-smart-gallery-container iframe":".eko-carousel",o=i.querySelector(r);setTimeout((()=>{w(o.clientHeight)}),0)}function A(){var t,e;const n=d||v()?"mobile":"desktop",i=null!==(t=null==c||null===(e=c[n])||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.scrollThreshold)&&void 0!==t?t:m;!function(t=m){var e,n;const i=h.current;if(!i)return;const r="none"!==(null==c||null===(e=c.desktop)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.type),o=(s=null==c||null===(n=c.mobile)||void 0===n||null===(n=n.config)||void 0===n||null===(n=n.navPagination)||void 0===n?void 0:n.type,"mask"===s||"arrows"===s);var s;if((d||v())&&!o)return void i.style.setProperty("-webkit-mask","none");if(!v()&&!r)return void i.style.setProperty("-webkit-mask","none");const a=i.scrollHeight-i.clientHeight,l=i.scrollTop>t?"85%":"100%",u=i.scrollTop<=a-t?"15%":"0%",f=i.scrollWidth-i.clientWidth,p=i.scrollLeft>t?"15%":"0%",g=i.scrollLeft<=f-t?"85%":"100%";b?i.style.setProperty("-webkit-mask",`linear-gradient(0deg,#0000,#000 ${u} ${l},#0000)`):i.style.setProperty("-webkit-mask",`linear-gradient(90deg,#0000,#000 ${p} ${g},#0000)`)}(i),function(t=m){var e,n,i,r,o,s;const a=b?null==h||null===(e=h.current)||void 0===e?void 0:e.scrollTop:null==h||null===(n=h.current)||void 0===n?void 0:n.scrollLeft,l=b?null==h||null===(i=h.current)||void 0===i?void 0:i.clientHeight:null==h||null===(r=h.current)||void 0===r?void 0:r.clientWidth,c=b?null==h||null===(o=h.current)||void 0===o?void 0:o.scrollHeight:null==h||null===(s=h.current)||void 0===s?void 0:s.scrollWidth;c-t<l?(T(!1),E(!1)):a<=t?(T(!1),E(!0)):a+l>c-t?(T(!0),E(!1)):a+t>0&&a<c-t&&(T(!0),E(!0))}(i)}p.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==p||null===(i=p.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const N=$t((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"nav",interactiontype:e}),Wt.send("interaction",{elementid:"nav",interactiontype:e})}),200);const M=o((t=>{a({index:t,step:0,source:"nav"})}),[]);return s((()=>{var t;y(null===(t=p.current)||void 0===t?void 0:t[l])}),[l]),s((()=>{if(null!=g&&g.current&&null!=h&&h.current){const t=g.current,e=h.current.clientWidth/2,n=t.clientWidth/2,i=h.current.clientHeight/2,r=t.clientHeight/2;h.current.scrollTo({left:t.offsetLeft-e+n,top:t.offsetTop-i+r,behavior:"smooth"})}}),[g]),s((()=>{S()}),[]),s((()=>(window.addEventListener("resize",S),()=>{window.removeEventListener("resize",S)})),[f,u,d]),s((()=>{w(0),S()}),[t,f,u,d]),s((()=>{A();const t=new ResizeObserver(A);return t.observe(h.current),()=>{t.disconnect()}}),[t,d,b]),e.createElement("div",{className:"eko-nav-container",ref:f,style:{opacity:x>0?1:0,height:""+(x&&b?x+"px":"auto")}},e.createElement(jt,{layout:c,nav:h,isVerticalNav:b,showPrevArrow:_,showNextArrow:I}),e.createElement("ul",{className:`eko-nav eko-mobile-nav-selected-${null!==(F=null==c||null===(O=c.mobile)||void 0===O||null===(O=O.config)||void 0===O?void 0:O.navItemsSelectedType)&&void 0!==F?F:"underline"} eko-desktop-nav-selected-${null!==(C=null==c||null===(P=c.desktop)||void 0===P||null===(P=P.config)||void 0===P?void 0:P.navItemsSelectedType)&&void 0!==C?C:"underline"}`,ref:h,onScroll:function(){A()},onWheel:function(){N("wheel")},onTouchMove:function(){N("swipe")}},null==t?void 0:t.map(((t,n)=>{var i;const r=(null==t||null===(i=t.media)||void 0===i?void 0:i.url)||(null==t?void 0:t.media)||"";return e.createElement(Ut,{key:r+n,index:n,activeIndex:l,setActiveIndex:M,item:t,src:r,navItemRefs:p,itemIcon:null==t?void 0:t.icon})}))));var F,O,C,P};qt.propTypes={items:Ct.array.isRequired,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,layout:Ct.object,carouselMounted:Ct.bool,forceMobile:Ct.bool};function Vt(){R.track("gallery.cover.displayed"),Wt.send("gallerycoverdisplayed")}function Gt(t){if(!t)return t;try{const e=new URL(t);return e.host.includes("assets.eko.com")&&e.pathname.startsWith("/image")&&!e.searchParams.has("width")?(e.pathname.endsWith(".png")&&(e.pathname=e.pathname.replace(/\.png$/,".webp")),e.searchParams.set("width",1920),e.toString()):t}catch(e){return t}}const Ht=({item:t,src:i,srcset:r,sizes:o,isCoverElement:a})=>{const l=n(null);return s((()=>{var t;if(a){if(null===(t=l.current)||void 0===t||!t.complete)return l.current.addEventListener("load",Vt,{once:!0}),()=>{var t;null===(t=l.current)||void 0===t||t.removeEventListener("load",Vt,{once:!0})};Vt()}}),[]),e.createElement("img",{ref:l,src:Gt(i),srcSet:r,sizes:o,alt:t.name,fetchPriority:a?"high":"auto",loading:a?"eager":"lazy",style:{width:"100%",height:"100%"}})};Ht.propTypes={item:Ct.object.isRequired,src:Ct.string,srcset:Ct.string,sizes:Ct.string,isCoverElement:Ct.bool};const Kt=$t((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"carousel",interactiontype:e}),Wt.send("interaction",{elementid:"carousel",interactiontype:e})}),200);function Xt(){Kt("wheel")}const Yt=a((({items:t,setActiveIndex:o,activeIndex:a,showSmartLoaders:c},u)=>{const d=n(null),h=n([]);h.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==h||null===(i=h.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const[f,p]=i(),[m,v]=i(),g=n(a),y=n(!1);function b(){const e=function(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}(d.current)*(null==t?void 0:t.length)/100,n=Math.min(Math.trunc(e),(null==t?void 0:t.length)-1),i=g.current;"nav"!==i.source&&"external-nav"!==i.source?(y.current&&n!==i.index&&(y.current=!1),y.current||(n>(null==t?void 0:t.length)-1?o({index:(null==t?void 0:t.length)-1,source:"carousel"}):o({index:n,source:"carousel"}))):n===i.index?y.current=!0:y.current&&n!==i.index&&(y.current=!1,o({index:n,source:"carousel"}))}return l(u,(()=>({prev:()=>{o({index:Math.max(0,g.current.index-1),source:"carousel"})},next:()=>{o({index:Math.min((null==t?void 0:t.length)-1,g.current.index+1),source:"carousel"})}}))),s((()=>{const t=d.current;if(t)return t.addEventListener("scroll",b),()=>{t.removeEventListener("scroll",b)}}),[t]),s((()=>{var t;let e=null===(t=h.current)||void 0===t?void 0:t[a.index];if(e&&("nav"===a.source||"external-nav"===a.source)){const t=e.current,n=d.current.clientWidth/2,i=(null==t?void 0:t.clientWidth)/2,r=(null==t?void 0:t.offsetLeft)-n+i;d.current.scrollTo({left:r,behavior:"smooth"})}}),[a]),s((()=>{g.current=a,"nav"!==a.source&&"external-nav"!==a.source||(y.current=!1)}),[a]),e.createElement("ul",{className:"eko-carousel",ref:d,onScroll:b,onWheel:Xt,onTouchMove:function(t){v(t.targetTouches[0].clientX)},onTouchStart:function(t){p(t.targetTouches[0].clientX),v(null)},onTouchEnd:function(){m&&f&&(f-m>75||f-m<-75)&&Kt("swipe")}},null==t?void 0:t.map(((t,n)=>{const i=(null==t?void 0:t.cover)||(null==t?void 0:t.media),r=(null==i?void 0:i.url)||i;return e.createElement("li",{className:"eko-carousel-item",key:r+n,ref:h.current[n]},e.createElement(Ht,{item:t,src:r,srcset:null==i?void 0:i.srcset,sizes:null==i?void 0:i.sizes,isCoverElement:0===n}),c&&"image"!==t.type&&e.createElement("div",{className:"eko-smart-loading"},e.createElement("div",null),e.createElement("p",null,"Loading video experience")))})))}));function Qt(t){var e;return function(t){var e;return"eko.block.event"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)&&"GalleryBlock"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.blockType)}Yt.propTypes={items:Ct.array.isRequired,setActiveIndex:Ct.func.isRequired,activeIndex:Ct.object,showSmartLoaders:Ct.bool},Yt.displayName="CarouselLoop";const Jt="eko.project.invoke",Zt="eko.block.invoke";function te(t,e,n){var i;null!=t&&t.contentWindow&&(null==t||null===(i=t.contentWindow)||void 0===i||i.postMessage({target:"eko.embedapi",type:e,data:n},"*"))}function ee(t){return`#variantId=${encodeURIComponent(t)}`}const ne=a((({config:t,instanceId:r,setActiveItem:o,activeItem:a,variantId:c,smartGalleryLoaded:u,onLoad:d,forceMobile:h},f)=>{var p,m,g;const y=null!==(p=null===(m=t.options)||void 0===m?void 0:m.galleryEnv)&&void 0!==p?p:"",b=null===(g=t.__autoGenerated)||void 0===g||null===(g=g.publishItem)||void 0===g?void 0:g.id,k=function(t={}){let e="";return Object.entries(t).forEach((([t,n])=>{e+=`&${t}=${n}`})),e}(null==t?void 0:t.qp),x=function(t,e,n){return`https://${t}play.eko.com/embed?${n?`id=${n}`:`piid=${e}`}&nocover=true&galleryBlockMode=gallery&eko_pixel=true`}(y,b,r),w=n(null),_=n(null),T=n(!1),[I,E]=i(ee(c||"ekonovar")),[S,A]=i(x+k+I);let N;function M(){R.track("gallery.project.display"),d(),Wt.send("galleryloaded")}return l(f,(()=>({prev:()=>{te(null==_?void 0:_.current,Zt,{action:"onPrevModule"})},next:()=>{te(null==_?void 0:_.current,Zt,{action:"onNextModule"})}}))),s((()=>{T.current?te(null==_?void 0:_.current,Jt,{action:"updateVariant",args:{id:c}}):E(ee(c))}),[c]),s((()=>{te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}})}),[a]),s((()=>{function t(t){if((function(t){var e;return"eko.project.blockstart"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)||function(t){var e,n;return"eko.project.started"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)&&(null==t||null===(n=t.data)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.started)}(t))&&!T.current)return e=t.data.data.blockType,T.current=!0,void("GalleryBlock"===e?te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}}):M());var e;if(T.current){if(function(t){var e;return Qt(t)&&"activeModuleChanged"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)}(t))return void function(t){const e=t.data.data.data.activeItemIndex,n=t.data.data.data.activeModuleIndex;e===(null==a?void 0:a.index)&&n===(null==a?void 0:a.step)||o({index:e,step:n,source:"carousel"})}(t);(function(t){var e;return Qt(t)&&"activeModuleChangeDone"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)})(t)&&!u&&M()}}return N=h||v()?"mobile":"desktop",function(t,e={}){window.addEventListener("message",t,e)}(t),()=>{!function(t,e={}){window.removeEventListener("message",t,e)}(t)}}),[a]),s((()=>{T.current||te(null==_?void 0:_.current,Jt,{action:"queryProjectStarted"})}),[a,u]),s((()=>{T.current=!1}),[t]),s((()=>{A(x+k+I)}),[I]),e.createElement("div",{className:"eko-smart-gallery-container "+(u?"":"eko-project-not-ready"),ref:w,"data-type":"smart-gallery","data-qp":k,"data-variant":c,"data-device":N},e.createElement("iframe",{allow:"autoplay; fullscreen",title:"eko gallery",src:S,style:{border:0},ref:_}))}));ne.propTypes={config:Ct.object.isRequired,instanceId:Ct.string,setActiveItem:Ct.func.isRequired,activeItem:Ct.object.isRequired,variantId:Ct.string,smartGalleryLoaded:Ct.bool,onLoad:Ct.func,forceMobile:Ct.bool},ne.displayName="SmartGallery";const ie=()=>e.createElement("style",{suppressHydrationWarning:!0},'.eko-gallery {\n --accentColorEko: #000;\n --primaryColorEko: #000;\n --backgroundColorEko: #25D7A2;\n --navItemsBackgroundColorEko: transparent;\n --navItemsBannerBackgroundColorEko: #EEEEEE;\n --carouselItemsBackgroundColorEko: transparent;\n --carouselInteractiveCoverBackgroundColorEko: transparent;\n --galleryGapEkoMobile: 12px;\n --galleryGapEkoDesktop: 12px;\n --galleryPaddingEkoMobile: 0;\n --galleryPaddingEkoDesktop: 0;\n --galleryMaxWidthEkoMobile: 100%;\n --galleryMaxWidthEkoDesktop: 900px;\n --galleryTransition: .8s cubic-bezier(.35, 0, 0, 1) 1.5s;\n --navBarPaddingEkoMobile: 0 0 0 20px;\n --navBarPaddingEkoDesktop: 0;\n --navItemsWidthEkoMobile: 80px;\n --navItemsWidthEkoDesktop: 80px;\n --navItemsHeightEkoMobile: 80px;\n --navItemsHeightEkoDesktop: 80px;\n --navItemsGapEkoMobile: 14px;\n --navItemsGapEkoDesktop: 14px;\n --navItemsRadiusEkoMobile: 8px;\n --navItemsRadiusEkoDesktop: 8px;\n --navItemsSelectedMarginEkoMobile: 3px;\n --navItemsSelectedMarginEkoDesktop: 3px;\n --navItemsSelectedThicknessEkoMobile: 3px;\n --navItemsSelectedThicknessEkoDesktop: 3px;\n --navItemsSelectedUnderlineRadiusEkoMobile: 100px;\n --navItemsSelectedUnderlineRadiusEkoDesktop: 100px;\n --navItemsObjectFitEkoMobile: cover;\n --navItemsObjectFitEkoDesktop: cover;\n --navMediaBadgeSizeEkoMobile: 22px;\n --navMediaBadgeSizeEkoDesktop: 22px;\n --navMediaBadgeMarginTopEkoMobile: 4px;\n --navMediaBadgeMarginTopEkoDesktop: 4px;\n --navMediaBadgeMarginRightEkoMobile: 4px;\n --navMediaBadgeMarginRightEkoDesktop: 4px;\n --carouselItemsAspectRatioEkoMobile: 1 / 1;\n --carouselItemsAspectRatioEkoDesktop: 1 / 1;\n --carouselItemsRadiusEkoMobile: 0px;\n --carouselItemsRadiusEkoDesktop: 12px;\n --carouselItemsObjectFitEkoMobile: cover;\n --carouselItemsObjectFitEkoDesktop: cover;\n --navBannerFontSizeEkoMobile: 12px;\n --navBannerFontSizeEkoDesktop: 12px;\n --navBannerFontLineHeightEkoMobile: 120%;\n --navBannerFontLineHeightEkoDesktop: 120%;\n --navBannerFontFamilyEkoMobile: inherit;\n --navBannerFontFamilyEkoDesktop: inherit;\n --navBannerFontWeightEkoMobile: 400;\n --navBannerFontWeightEkoDesktop: 400;\n --outerWidth: 0\n}\n\n.eko-gallery * {\n box-sizing: border-box\n}\n\n.eko-gallery ul,\n.eko-gallery li {\n padding: 0;\n text-indent: 0;\n list-style-type: none;\n font-size: 0;\n margin: 0\n}\n\n.eko-gallery button {\n border: none;\n padding: 0\n}\n\n.eko-gallery .eko-hidden {\n display: none !important\n}\n\n.eko-gallery .eko-not-visible {\n visibility: hidden !important\n}\n\n.eko-hidden-variant {\n display: none !important\n}\n\n.eko-sr-only {\n width: 1px;\n height: 1px;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden\n}\n\n.eko-sticky-top {\n position: sticky;\n top: 0\n}\n\n.eko-gallery .eko-nav {\n height: 100%;\n display: flex;\n align-items: start;\n align-self: start;\n flex-shrink: 0;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-gallery .eko-nav li {\n font-size: 0;\n position: relative;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n -webkit-box-pack: center;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button {\n position: relative;\n background-color: transparent;\n border-radius: 0;\n line-height: 0;\n overflow: hidden;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button img {\n background-color: var(--navItemsBackgroundColorEko);\n pointer-events: none\n}\n\n.eko-gallery .eko-nav li button .item-icon {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 32px;\n transform: scale(.25);\n transform-origin: top right\n}\n\n.eko-gallery .eko-nav li button .item-icon span {\n display: block;\n width: 400%;\n height: 400%;\n position: absolute;\n top: 0;\n right: 0;\n background-position: top right;\n background-repeat: no-repeat;\n background-size: contain\n}\n\n.eko-gallery .eko-nav li .addons-container {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n font-size: 10px;\n line-height: 100%\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n width: 100%;\n background: var(--navItemsBannerBackgroundColorEko);\n padding: 4px;\n text-align: center;\n text-wrap: balance;\n color: var(--primaryColorEko)\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator {\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 5px;\n padding: 6px\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator span {\n width: 5px;\n height: 5px;\n border-radius: 100px;\n background: #fff;\n box-shadow: 0 0 3px #00000094\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label {\n position: relative\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .step-indicator {\n position: absolute;\n bottom: 0\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n align-content: center\n}\n\n.eko-gallery .eko-nav::-webkit-scrollbar {\n display: none\n}\n\n.eko-nav-container {\n display: flex\n}\n\n.eko-nav-container:has(.eko-nav.eko-not-visible) .eko-nav-arrow {\n display: none\n}\n\n.eko-nav-container {\n position: relative;\n opacity: 0;\n transition: opacity .15s ease-in\n}\n\n.eko-nav-container .eko-nav-arrow {\n width: 28px;\n height: 28px;\n position: absolute;\n display: none;\n justify-content: center;\n align-items: center;\n border-radius: 28px;\n background-color: #fff;\n box-shadow: 0 0 6px #0000001f;\n z-index: 1;\n bottom: 50%;\n opacity: 1;\n transition: opacity .15s ease-in;\n transform: translateY(50%);\n cursor: pointer\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button svg,\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button svg {\n padding: 1px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button {\n left: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button {\n right: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-hidden-nav-button {\n opacity: 0;\n pointer-events: none\n}\n\n.eko-gallery .eko-nav {\n gap: var(--navItemsGapEkoMobile);\n padding: var(--navBarPaddingEkoMobile)\n}\n\n.eko-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile);\n object-fit: var(--navItemsObjectFitEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoMobile);\n font-size: var(--navBannerFontSizeEkoMobile);\n line-height: var(--navBannerFontLineHeightEkoMobile);\n font-weight: var(--navBannerFontWeightEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li {\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile))\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoMobile);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoMobile);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoMobile) + var(--navItemsSelectedMarginEkoMobile));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoMobile) var(--accentColorEko)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-liquid-gallery .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n.eko-media-badge {\n display: none;\n width: var(--navMediaBadgeSizeEkoMobile);\n height: var(--navMediaBadgeSizeEkoMobile);\n background: #fff;\n align-items: center;\n justify-content: center;\n border-radius: 100%;\n box-shadow: 0 0 4px #00000014;\n place-content: center;\n position: absolute;\n top: var(--navMediaBadgeMarginTopEkoMobile);\n right: var(--navMediaBadgeMarginRightEkoMobile)\n}\n\n.eko-media-badge svg {\n width: 100%;\n height: 100%\n}\n\n.eko-media-badge svg path {\n fill: #000\n}\n\n.eko-nav li .eko-media-badge-mobile {\n display: flex\n}\n\nsvg.interactiveThumb {\n position: absolute;\n top: 3px;\n right: -2.5px;\n width: 100%;\n height: 100%\n}\n\nsvg.interactiveThumb.hand {\n animation: handAnim 2.5s linear infinite\n}\n\nsvg.interactiveThumb.beam {\n animation: beamAnim 2.5s linear infinite;\n transform-origin: 26% 40%;\n top: 0\n}\n\n@keyframes handAnim {\n 0% {\n transform: translateY(0)\n }\n\n 3% {\n transform: translateY(-4px)\n }\n\n 15% {\n transform: translateY(0)\n }\n\n to {\n transform: translateY(0)\n }\n}\n\n@keyframes beamAnim {\n 0% {\n transform: scale(1);\n opacity: 0\n }\n\n 5% {\n transform: scale(1.1);\n opacity: 1\n }\n\n 30% {\n transform: scale(1.4);\n opacity: 0\n }\n\n to {\n transform: scale(1.4);\n opacity: 0\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n.eko-loading-animation {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar {\n opacity: .6\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n animation: eko-loading-bar-inner-animation 2s infinite\n}\n\n.eko-loading-animation.eko-show-loading-text .eko-loading-text {\n opacity: 1\n}\n\n.eko-loading-animation .eko-animated-bar {\n width: 100%;\n height: 4px;\n background-color: #e8e8e8b2;\n opacity: 0;\n transition: opacity .5s;\n position: relative\n}\n\n.eko-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n width: 150px;\n height: 100%;\n transform: translate(-150px);\n background-color: var(--accentColorEko, #4d484b);\n display: block;\n position: absolute\n}\n\n.eko-loading-animation .eko-loading-text {\n position: absolute;\n top: 10px;\n left: 50%;\n transform: translate(-50%);\n color: #656565;\n font-size: 12px;\n font-family: Bogle-Medium, sans-serif;\n font-weight: 500;\n opacity: 0;\n align-items: center;\n display: flex;\n gap: 2px;\n transition: opacity .5s\n}\n\n.eko-loading-animation .eko-loading-text-icon {\n opacity: 60%\n}\n\n.eko-loading-animation .eko-loading-text-icon svg {\n transform: translate(2px, 2px)\n}\n\n.eko-loading-animation .eko-loading-text-icon path {\n fill: var(--accentColorEko, #4d484b)\n}\n\n.eko-loading-animation.eko-hide-icon .eko-loading-text-icon {\n display: none\n}\n\n@keyframes eko-loading-bar-inner-animation {\n 0% {\n left: -350px\n }\n\n to {\n left: calc(100% + 350px)\n }\n}\n\n.eko-smart-loading {\n position: absolute;\n top: 8px;\n left: 50%;\n transform: translate(-50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px\n}\n\n.eko-smart-loading div {\n position: relative;\n width: 158px;\n height: 3px;\n background-color: #dcdcdc;\n overflow: hidden;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 1s\n}\n\n.eko-smart-loading div:after {\n content: "";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: #878787;\n animation: eko-smart-loading-animation 2.5s ease-in-out infinite\n}\n\n.eko-smart-loading p {\n font-size: 11px;\n line-height: 120%;\n font-weight: 500;\n color: #6b6b6b;\n text-shadow: 0 0 2px white;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 3s\n}\n\n@keyframes eko-smart-loading-animation {\n 0% {\n transform: translate(-100%)\n }\n\n to {\n transform: translate(100%)\n }\n}\n\n@keyframes eko-smart-loading-show-animation {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 100%\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n.eko-carousel {\n width: 100%;\n white-space: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n overscroll-behavior-x: contain;\n align-self: start;\n align-items: start;\n display: flex;\n gap: 10px;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-carousel li {\n width: 100%;\n display: inline-block;\n position: relative;\n align-items: start;\n overflow: hidden;\n scroll-snap-align: center;\n scroll-snap-stop: always;\n flex-shrink: 0\n}\n\n.eko-carousel li img.eko-cover-image {\n position: relative;\n pointer-events: none;\n transition: opacity .5s;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: var(--carouselInteractiveCoverBackgroundColorEko)\n}\n\n.eko-carousel li iframe {\n position: absolute;\n border: none;\n top: 0;\n left: 0\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n min-width: 0;\n background-color: var(--carouselItemsBackgroundColorEko)\n}\n\n.eko-carousel li[data-type=videoembed],\n.eko-carousel li[data-type=video] {\n cursor: pointer\n}\n\n.eko-carousel::-webkit-scrollbar {\n display: none\n}\n\n.eko-carousel:has(.zoomed) {\n overflow: hidden\n}\n\n.eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoMobile)\n}\n\n.eko-carousel li img.eko-desktop-cover-image {\n display: none\n}\n\n.eko-carousel li img.eko-mobile-cover-image {\n display: inline\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile);\n object-fit: var(--carouselItemsObjectFitEkoMobile)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-carousel li img,\n .eko-gallery.eko-liquid-gallery .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li img,\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-nav-container {\n display: none\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-carousel {\n overflow-x: hidden\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-mobile-carousel-scroll {\n overflow-x: auto\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom .eko-nav,\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-top .eko-nav {\n flex-direction: row;\n overflow-x: auto;\n overflow-y: hidden;\n max-width: 100%;\n margin: auto\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom {\n flex-direction: column-reverse\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top {\n flex-direction: column\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n.eko-gallery .eko-introButton {\n cursor: pointer;\n white-space: nowrap;\n pointer-events: auto;\n position: absolute;\n bottom: 100px;\n left: 50%;\n transform: translate(-50%);\n padding: 15px 20px\n}\n\n.eko-gallery .eko-introButton .eko-handContainer {\n display: none\n}\n\n.eko-gallery {\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n justify-content: start;\n margin-inline-start: calc(-1 * var(--outerWidth));\n margin-inline-end: calc(-1 * var(--outerWidth));\n padding: var(--galleryPaddingEkoMobile);\n margin: auto;\n max-width: var(--galleryMaxWidthEkoMobile);\n transition: height var(--galleryTransition, .8s cubic-bezier(.35, 0, 0, 1) 1.5s), padding 0s;\n gap: var(--galleryGapEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoMobile);\n overflow: hidden;\n flex: 1;\n display: flex;\n height: fit-content\n}\n\n.eko-gallery .eko-smart-gallery-container iframe {\n width: 100%;\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n opacity: 0;\n pointer-events: none;\n touch-action: none\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready iframe {\n pointer-events: none;\n touch-action: none\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}'),re=({layout:t,style:n})=>{let i={};return function(t={}){Object.keys(t).forEach((e=>{i[`--${e}Eko`]=t[e]}))}(n),function(t){var e,n;const r=(null==t||null===(e=t.desktop)||void 0===e?void 0:e.config)||{},o=(null==t||null===(n=t.mobile)||void 0===n?void 0:n.config)||{};Object.keys(r).forEach((t=>{"string"==typeof r[t]&&(i[`--${t}EkoDesktop`]=r[t])})),Object.keys(o).forEach((t=>{"string"==typeof o[t]&&(i[`--${t}EkoMobile`]=o[t])}))}(t),e.createElement("style",{key:{layout:t,style:n}},`.eko-gallery {${Object.keys(i).map((t=>`${t}: ${i[t]};`)).join("\n")}}`)};re.propTypes={layout:Ct.object,style:Ct.object},b("experiment");const oe=({activeVariantId:t,activeElementId:e,hasInteractive:i,experiments:r,publishItem:o})=>{const a="gallery",l=n(t),c=n(e),u=n(i),d=n(r),h=n(o);s((()=>{l.current=t,c.current=e,u.current=i,d.current=r,h.current=o}),[t,e,i,r,o]);const f={publishItemPacker:{tag:a,schema:"iglu:com.helloeko/publishitem/jsonschema/1-0-0",match:/.*/,getData:function(){const t=h.current;if(t){const e={};return null!=t&&t.id&&(e.id=t.id),null!=t&&t.productId&&(e.productid=t.productId),t.salesChannelId&&(e.saleschannelid=t.salesChannelId),null!=t&&t.salesChannelName&&(e.saleschannelname=t.salesChannelName),t.salesChannelType&&(e.saleschanneltype=t.salesChannelType),e.id?e:void 0}}},galleryInteractionPacker:{tag:a,schema:"iglu:com.helloeko/gallery_interaction/jsonschema/1-0-0",match:"gallery.interaction",getData:function({elementid:t,interactiontype:e}){return{elementid:String(t),interactiontype:e}}},galleryPacker:{tag:a,schema:"iglu:com.helloeko/gallery/jsonschema/1-0-2",match:/^gallery.*/,getData:function(){var t;return{activeitemid:c.current.toString(),activevariantid:l.current,hasinteractive:u.current,version:(null===(t=window.eko)||void 0===t||null===(t=t.gallery)||void 0===t?void 0:t.version)||""}}},activeVariantIdPacker:{tag:a,schema:"iglu:com.helloeko/variant/jsonschema/1-0-1",match:/.*/,getData:function(){if(l.current)return{id:l.current}}},experimentPacker:{tag:a,schema:"iglu:com.helloeko/experiment/jsonschema/1-0-3",match:/.*/,getData:function(){var t;let e=function(t){let e=null;if(t){const n=Math.floor(Date.now()/1e3);for(const i of t){if("deliverable"!==i.type)return;const t=Math.floor(new Date(i.startDate).getTime()/1e3),r=Math.floor(new Date(i.endDate).getTime()/1e3);!0===i.active&&n>t&&n<r&&(e=i)}}return e}(d.current);if(!e)return;let n={experimentid:e.id||"",experimentvariant:e.chosen||"pending decision",experimenttype:e.type||""},i=null===(t=e.targetDevice)||void 0===t?void 0:t.toLowerCase();return"mobile"!==i&&"notmobile"!==i||(n.experimenttargeting={device:i}),n}}};return s((()=>(Object.values(f).forEach((t=>{window.EkoAnalytics("registerContextPacker",t)})),()=>{window.EkoAnalytics("reset",a)})),[]),null};oe.propTypes={activeVariantId:Ct.string,activeElementId:Ct.number,hasInteractive:Ct.bool,experiments:Ct.array,publishItem:Ct.object};const se=({variantId:t,activeItem:i,hasInteractive:r,activeIndex:o,experiments:a,publishItem:l})=>{const c=n(!0);return s((()=>{c.current||t&&R.track("gallery.variant.change")}),[t]),s((()=>{c.current||R.track("gallery.element.change",{activeIndex:o})}),[o]),s((()=>{c.current||i&&null!=l&&l.id&&R.track("gallery.asset.view",{publishitemid:l.id,type:i.type,name:i.name})}),[i]),s((()=>{c.current=!1}),[]),e.createElement(oe,{activeVariantId:t||"ekonovar",activeElementId:o,hasInteractive:r,experiments:a,publishItem:l})};se.propTypes={variantId:Ct.string,activeItem:Ct.object,hasInteractive:Ct.bool,activeIndex:Ct.number,experiments:Ct.array,publishItem:Ct.object};const ae="eko-gallery-react";function le(t,e){var n,i,r;const o=(null==t||null===(n=t.variantMap)||void 0===n?void 0:n[e])||"ekonovar";return(null==t||null===(i=t.items)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.variantId)===o)))||(null==t||null===(r=t.items)||void 0===r?void 0:r[0])}"undefined"!=typeof window&&(window.EkoAnalytics||(console.log("EkoAnalytics is not defined, initializing a no-op function..."),window.EkoAnalytics=()=>{}));const ce=a((({className:t,config:r,instanceId:o,variantId:a,activeItem:l={index:0,step:0},onEvent:c,forceMobile:u},d)=>{var h,f,p,m,v,g;const y=null!==(h=null===(f=r.options)||void 0===f?void 0:f.loadingTimeout)&&void 0!==h?h:12,b=null===(p=null===(m=r.options)||void 0===m?void 0:m.showCoverLoadAnimation)||void 0===p||p,[k,x]=i(le(r,a)),[w,_]=i({index:l.index,step:l.step,source:"external-nav"}),[T,I]=i(!1),[E,S]=i(!1),[A,N]=i("eko-desktop"),M=n(!1),F=n(!1),O=n(l),C=n(null),P=n(a);function D(){const t=u||window.innerWidth<768?"eko-mobile":"eko-desktop";N(t)}return F.current||(Wt.send("galleryinit"),F.current=!0),s((()=>{const t=P.current!==a;P.current=a,x(le(r,a)),t&&!M.current&&_({index:0,step:0,source:"external-nav"})}),[r,a]),s((()=>{if(c)return Wt.subscribe(c),()=>{Wt.unsubscribe()}}),[c]),s((()=>{M.current=E}),[E]),s((()=>{I(!1),S(!1);const t=setTimeout((()=>{M.current||(I(!0),R.track("gallery.load.timeout"))}),1e3*y);return()=>{clearTimeout(t)}}),[r]),s((()=>{D()}),[u]),s((()=>(window.addEventListener("resize",D),D(),()=>{window.removeEventListener("resize",D)})),[u]),s((()=>(window.EkoAnalytics("trackElementVisibility",C.current,ae),()=>{window.EkoAnalytics("stopTrackingElementVisibility",ae)})),[]),s((()=>{!("carousel"===(null==w?void 0:w.source)||"nav"===(null==w?void 0:w.source))||(null==w?void 0:w.index)===l.index&&(null==w?void 0:w.step)===l.step||Wt.send("activeitemchanged",{index:null==w?void 0:w.index,step:null==w?void 0:w.step})}),[w,l]),s((()=>{O.current.index===l.index&&O.current.step===l.step||(O.current=l,_({index:l.index,step:l.step,source:"external-nav"}))}),[l]),e.createElement(e.Fragment,null,e.createElement(ie,null),e.createElement(re,{layout:r.layout,style:r.style,forceMobile:u}),e.createElement(se,{variantId:a,activeItem:null==k||null===(v=k.items)||void 0===v?void 0:v[w.index],activeIndex:w.index,hasInteractive:E,experiments:r.experiments,publishItem:null==r||null===(g=r.__autoGenerated)||void 0===g?void 0:g.publishItem}),e.createElement("section",{className:`${`eko-gallery eko-react-gallery ${function(t){let e="";return["mobile","desktop"].forEach((n=>{var i,r;const o=null!==(i=null==t||null===(r=t[n])||void 0===r?void 0:r.type)&&void 0!==i?i:"nav";if(e+=`eko-${n}-${o}-layout `,"nav"===o){var s;const i="desktop"===n,r=(null==t||null===(s=t[n])||void 0===s||null===(s=s.config)||void 0===s?void 0:s.orientation)||(i?"left":"bottom");e+=`eko-${n}-nav-${r} `}})),e}(r.layout)} ${null!=t?t:""}`.trim()} ${A}`,"aria-controls":"main-content",ref:C},e.createElement(qt,{items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:w.index,layout:r.layout,carouselMounted:E,forceMobile:u}),!E&&e.createElement(Yt,{ref:d,items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:{index:w.index,source:null==w?void 0:w.source},showSmartLoaders:!T&&b}),!T&&e.createElement(ne,{ref:d,config:r,instanceId:o,activeItem:w,setActiveItem:_,variantId:null==k?void 0:k.variantId,smartGalleryLoaded:E,forceMobile:u,onLoad:function(){S(!0)}})))}));ce.propTypes={className:Ct.string,config:Ct.object.isRequired,instanceId:Ct.string,variantId:Ct.string,activeItem:Ct.object,onEvent:Ct.func,forceMobile:Ct.bool,onPrev:Ct.func,onNext:Ct.func},ce.displayName="EkoGallery";var ue=c(ce);const de=b("gallery-react");const he=a(((t,n)=>{var i;s((()=>(de.setDataStorage("gallery-react",{config:t.config}),window.eko=window.eko||{},window.eko.config=t.config,window.eko.gallery={version:"4.0.4"},()=>{window.eko.config=void 0})),[t.config]);const{children:r,...o}=t;return void 0!==t.config?e.createElement(ue,q({ref:n},o,{key:null===(i=t.config.__autoGenerated)||void 0===i||null===(i=i.publishItem)||void 0===i?void 0:i.id})):r}));he.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,instanceId:Ct.string,children:Ct.node},he.displayName="EkoGalleryWrapper";var fe,pe,me,ve,ge,ye,be,ke,xe,we,_e,Te,Ie,Ee,Se,Ae,Ne,Me,Fe,Oe,Ce,Pe,De,Re,Le,Be,ze,We,Ue,je,$e,qe,Ve,Ge,He,Ke,Xe,Ye,Qe,Je,Ze,tn,en,nn,rn,on,sn,an,ln,cn,un,dn,hn=c(he);const fn=1,pn=2,mn=4,vn=8,gn=16,yn=1,bn=4,kn=8,xn=16,wn="[",_n="[!",Tn="]",In={},En=Symbol(),Sn="http://www.w3.org/1999/xhtml",An="@attach",Nn=!1;var Mn=Array.isArray,Fn=Array.prototype.indexOf,On=Array.from,Cn=Object.defineProperty,Pn=Object.getOwnPropertyDescriptor,Dn=Object.getOwnPropertyDescriptors,Rn=Object.prototype,Ln=Array.prototype,Bn=Object.getPrototypeOf,zn=Object.isExtensible;function Wn(){var t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}}const Un=2,jn=4,$n=8,qn=1<<24,Vn=16,Gn=32,Hn=64,Kn=128,Xn=512,Yn=1024,Qn=2048,Jn=4096,Zn=8192,ti=16384,ei=32768,ni=65536,ii=1<<17,ri=1<<18,oi=1<<19,si=1<<20,ai=1<<25,li=32768,ci=1<<21,ui=1<<22,di=1<<23,hi=Symbol("$state"),fi=Symbol("legacy props"),pi=Symbol(""),mi=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},vi=3,gi=8;function yi(t){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function bi(t){console.warn("https://svelte.dev/e/hydration_mismatch")}let ki,xi=!1;function wi(t){xi=t}function _i(t){if(null===t)throw bi(),In;return ki=t}function Ti(){return _i(wo(ki))}function Ii(t){if(xi){if(null!==wo(ki))throw bi(),In;ki=t}}function Ei(t=!0){for(var e=0,n=ki;;){if(n.nodeType===gi){var i=n.data;if(i===Tn){if(0===e)return n;e-=1}else i!==wn&&i!==_n||(e+=1)}var r=wo(n);t&&n.remove(),n=r}}function Si(t){if(!t||t.nodeType!==gi)throw bi(),In;return t.data}function Ai(t){return t===this.v}function Ni(t){return e=t,n=this.v,!(e!=e?n==n:e!==n||null!==e&&"object"==typeof e||"function"==typeof e);var e,n}let Mi=!1,Fi=null;function Oi(t){Fi=t}function Ci(t){return Ri().get(t)}function Pi(t,e=!1,n){Fi={p:Fi,i:!1,c:null,e:null,s:t,x:null,l:null}}function Di(t){var e=Fi,n=e.e;if(null!==n)for(var i of(e.e=null,n))Do(i);return e.i=!0,Fi=e.p,{}}function Ri(t){var e,n;return null===Fi&&yi(),null!==(n=(e=Fi).c)&&void 0!==n?n:e.c=new Map(function(t){let e=t.p;for(;null!==e;){const t=e.c;if(null!==t)return t;e=e.p}return null}(Fi)||void 0)}let Li=[];function Bi(){var t=Li;Li=[],function(t){for(var e=0;e<t.length;e++)t[e]()}(t)}function zi(t){if(0===Li.length&&!tr){var e=Li;queueMicrotask((()=>{e===Li&&Bi()}))}Li.push(t)}function Wi(){for(;Li.length>0;)Bi()}function Ui(t){var e=rs;if(null===e)return es.f|=di,t;if(e.f&ei)ji(t,e);else{if(!(e.f&Kn))throw t;e.b.error(t)}}function ji(t,e){for(;null!==e;){if(e.f&Kn)try{return void e.b.error(t)}catch(e){t=e}e=e.parent}throw t}const $i=-7169;function qi(t,e){t.f=t.f&$i|e}function Vi(t){t.f&Xn||null===t.deps?qi(t,Yn):qi(t,Jn)}function Gi(t){if(null!==t)for(const e of t)e.f&Un&&e.f&li&&(e.f^=li,Gi(e.deps))}function Hi(t,e,n){t.f&Qn?e.add(t):t.f&Jn&&n.add(t),Gi(t.deps),qi(t,Yn)}const Ki=new Set;let Xi=null,Yi=null,Qi=[],Ji=null,Zi=!1,tr=!1;var er=new WeakMap,nr=new WeakMap,ir=new WeakMap,rr=new WeakMap,or=new WeakMap,sr=new WeakMap,ar=new WeakMap,lr=new WeakSet;class cr{constructor(){j(this,lr),$(this,"committed",!1),$(this,"current",new Map),$(this,"previous",new Map),W(this,er,new Set),W(this,nr,new Set),W(this,ir,0),W(this,rr,0),W(this,or,null),W(this,sr,new Set),W(this,ar,new Set),$(this,"skipped_effects",new Set),$(this,"is_fork",!1)}is_deferred(){return this.is_fork||z(rr,this)>0}process(t){Qi=[],this.apply();var e,n=[],i=[];for(const e of t)L(lr,this,ur).call(this,e,n,i);(this.is_fork||L(lr,this,hr).call(this),this.is_deferred())?(L(lr,this,dr).call(this,i),L(lr,this,dr).call(this,n)):(Xi=null,gr(i),gr(n),null===(e=z(or,this))||void 0===e||e.resolve());Yi=null}capture(t,e){var n;(e===En||this.previous.has(t)||this.previous.set(t,e),t.f&di)||(this.current.set(t,t.v),null===(n=Yi)||void 0===n||n.set(t,t.v))}activate(){Xi=this,this.apply()}deactivate(){Xi===this&&(Xi=null,Yi=null)}flush(){if(this.activate(),Qi.length>0){if(pr(),null!==Xi&&Xi!==this)return}else 0===z(ir,this)&&this.process([]);this.deactivate()}discard(){for(const t of z(nr,this))t(this);z(nr,this).clear()}increment(t){U(ir,this,z(ir,this)+1),t&&U(rr,this,z(rr,this)+1)}decrement(t){U(ir,this,z(ir,this)-1),t&&U(rr,this,z(rr,this)-1),this.revive()}revive(){for(const t of z(sr,this))z(ar,this).delete(t),qi(t,Qn),kr(t);for(const t of z(ar,this))qi(t,Jn),kr(t);this.flush()}oncommit(t){z(er,this).add(t)}ondiscard(t){z(nr,this).add(t)}settled(){var t;return(null!==(t=z(or,this))&&void 0!==t?t:U(or,this,Wn())).promise}static ensure(){if(null===Xi){const t=Xi=new cr;Ki.add(Xi),tr||cr.enqueue((()=>{Xi===t&&t.flush()}))}return Xi}static enqueue(t){zi(t)}apply(){}}function ur(t,e,n){t.f^=Yn;for(var i=t.first,r=null;null!==i;){var o=i.f,s=!!(o&(Gn|Hn));if(!(s&&!!(o&Yn)||!!(o&Zn)||this.skipped_effects.has(i))&&null!==i.fn){s?i.f^=Yn:null!==r&&o&(jn|$n|qn)?r.b.defer_effect(i):o&jn?e.push(i):vs(i)&&(o&Vn&&z(sr,this).add(i),xs(i));var a=i.first;if(null!==a){i=a;continue}}var l=i.parent;for(i=i.next;null===i&&null!==l;)l===r&&(r=null),i=l.next,l=l.parent}}function dr(t){for(var e=0;e<t.length;e+=1)Hi(t[e],z(sr,this),z(ar,this))}function hr(){if(0===z(rr,this)){for(const t of z(er,this))t();z(er,this).clear()}0===z(ir,this)&&L(lr,this,fr).call(this)}function fr(){if(Ki.size>1){this.previous.clear();var t=Yi,e=!0;for(const t of Ki){if(t===this){e=!1;continue}const i=[];for(const[n,r]of this.current){if(t.current.has(n)){if(!e||r===t.current.get(n))continue;t.current.set(n,r)}i.push(n)}if(0===i.length)continue;const r=[...t.current.keys()].filter((t=>!this.current.has(t)));if(r.length>0){var n=Qi;Qi=[];const e=new Set,o=new Map;for(const t of i)yr(t,r,e,o);if(Qi.length>0){Xi=t,t.apply();for(const e of Qi)L(lr,t,ur).call(t,e,[],[]);t.deactivate()}Qi=n}}Xi=null,Yi=t}this.committed=!0,Ki.delete(this)}function pr(){var t=Qo;Zi=!0;try{var e=0;for(Jo(!0);Qi.length>0;){var n=cr.ensure();if(e++>1e3)mr();n.process(Qi),io.clear()}}finally{Zi=!1,Jo(t),Ji=null}}function mr(){try{!function(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}()}catch(t){ji(t,Ji)}}let vr=null;function gr(t){var e=t.length;if(0!==e){for(var n=0;n<e;){var i,r=t[n++];if(!(r.f&(ti|Zn))&&vs(r))if(vr=new Set,xs(r),null===r.deps&&null===r.first&&null===r.nodes&&(null===r.teardown&&null===r.ac?Vo(r):r.fn=null),(null===(i=vr)||void 0===i?void 0:i.size)>0){io.clear();for(const t of vr){if(t.f&(ti|Zn))continue;const e=[t];let n=t.parent;for(;null!==n;)vr.has(n)&&(vr.delete(n),e.push(n)),n=n.parent;for(let t=e.length-1;t>=0;t--){const n=e[t];n.f&(ti|Zn)||xs(n)}}vr.clear()}}vr=null}}function yr(t,e,n,i){if(!n.has(t)&&(n.add(t),null!==t.reactions))for(const r of t.reactions){const t=r.f;t&Un?yr(r,e,n,i):t&(ui|Vn)&&!(t&Qn)&&br(r,e,i)&&(qi(r,Qn),kr(r))}}function br(t,e,n){const i=n.get(t);if(void 0!==i)return i;if(null!==t.deps)for(const i of t.deps){if(e.includes(i))return!0;if(i.f&Un&&br(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function kr(t){for(var e=Ji=t;null!==e.parent;){var n=(e=e.parent).f;if(Zi&&e===rs&&n&Vn&&!(n&ri))return;if(n&(Hn|Gn)){if(!(n&Yn))return;e.f^=Yn}}Qi.push(e)}var xr=ni|oi|Kn;var wr=new WeakMap,_r=new WeakMap,Tr=new WeakMap,Ir=new WeakMap,Er=new WeakMap,Sr=new WeakMap,Ar=new WeakMap,Nr=new WeakMap,Mr=new WeakMap,Fr=new WeakMap,Or=new WeakMap,Cr=new WeakMap,Pr=new WeakMap,Dr=new WeakMap,Rr=new WeakMap,Lr=new WeakMap,Br=new WeakMap,zr=new WeakSet;class Wr{constructor(t,e,n){j(this,zr),$(this,"parent",void 0),$(this,"is_pending",!1),W(this,wr,void 0),W(this,_r,xi?ki:null),W(this,Tr,void 0),W(this,Ir,void 0),W(this,Er,void 0),W(this,Sr,null),W(this,Ar,null),W(this,Nr,null),W(this,Mr,null),W(this,Fr,null),W(this,Or,0),W(this,Cr,0),W(this,Pr,!1),W(this,Dr,new Set),W(this,Rr,new Set),W(this,Lr,null),W(this,Br,function(t){let e,n=0,i=oo(0);return()=>{Oo()&&(_s(i),Lo((()=>(0===n&&(e=Es((()=>t((()=>uo(i)))))),n+=1,()=>{zi((()=>{var t;n-=1,0===n&&(null===(t=e)||void 0===t||t(),e=void 0,uo(i))}))}))))}}((()=>(U(Lr,this,oo(z(Or,this))),()=>{U(Lr,this,null)})))),U(wr,this,t),U(Tr,this,e),U(Ir,this,n),this.parent=rs.b,this.is_pending=!!z(Tr,this).pending,U(Er,this,zo((()=>{if(rs.b=this,xi){const t=z(_r,this);Ti();t.nodeType===gi&&t.data===_n?L(zr,this,jr).call(this):(L(zr,this,Ur).call(this),0===z(Cr,this)&&(this.is_pending=!1))}else{var t=L(zr,this,$r).call(this);try{U(Sr,this,Uo((()=>n(t))))}catch(t){this.error(t)}z(Cr,this)>0?L(zr,this,Vr).call(this):this.is_pending=!1}return()=>{var t;null===(t=z(Fr,this))||void 0===t||t.remove()}}),xr)),xi&&U(wr,this,ki)}defer_effect(t){Hi(t,z(Dr,this),z(Rr,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!z(Tr,this).pending}update_pending_count(t){L(zr,this,Gr).call(this,t),U(Or,this,z(Or,this)+t),z(Lr,this)&&co(z(Lr,this),z(Or,this))}get_effect_pending(){return z(Br,this).call(this),_s(z(Lr,this))}error(t){var e=z(Tr,this).onerror;let n=z(Tr,this).failed;if(z(Pr,this)||!e&&!n)throw t;z(Sr,this)&&(qo(z(Sr,this)),U(Sr,this,null)),z(Ar,this)&&(qo(z(Ar,this)),U(Ar,this,null)),z(Nr,this)&&(qo(z(Nr,this)),U(Nr,this,null)),xi&&(_i(z(_r,this)),function(t=1){if(xi){for(var e=t,n=ki;e--;)n=wo(n);ki=n}}(),_i(Ei()));var i=!1,r=!1;const o=()=>{i?console.warn("https://svelte.dev/e/svelte_boundary_reset_noop"):(i=!0,r&&function(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}(),cr.ensure(),U(Or,this,0),null!==z(Nr,this)&&Go(z(Nr,this),(()=>{U(Nr,this,null)})),this.is_pending=this.has_pending_snippet(),U(Sr,this,L(zr,this,qr).call(this,(()=>(U(Pr,this,!1),Uo((()=>z(Ir,this).call(this,z(wr,this)))))))),z(Cr,this)>0?L(zr,this,Vr).call(this):this.is_pending=!1)};var s=es;try{is(null),r=!0,null==e||e(t,o),r=!1}catch(t){ji(t,z(Er,this)&&z(Er,this).parent)}finally{is(s)}n&&zi((()=>{U(Nr,this,L(zr,this,qr).call(this,(()=>{cr.ensure(),U(Pr,this,!0);try{return Uo((()=>{n(z(wr,this),(()=>t),(()=>o))}))}catch(t){return ji(t,z(Er,this).parent),null}finally{U(Pr,this,!1)}})))}))}}function Ur(){try{U(Sr,this,Uo((()=>z(Ir,this).call(this,z(wr,this)))))}catch(t){this.error(t)}}function jr(){const t=z(Tr,this).pending;t&&(U(Ar,this,Uo((()=>t(z(wr,this))))),cr.enqueue((()=>{var t=L(zr,this,$r).call(this);U(Sr,this,L(zr,this,qr).call(this,(()=>(cr.ensure(),Uo((()=>z(Ir,this).call(this,t))))))),z(Cr,this)>0?L(zr,this,Vr).call(this):(Go(z(Ar,this),(()=>{U(Ar,this,null)})),this.is_pending=!1)})))}function $r(){var t=z(wr,this);return this.is_pending&&(U(Fr,this,ko()),z(wr,this).before(z(Fr,this)),t=z(Fr,this)),t}function qr(t){var e=rs,n=es,i=Fi;os(z(Er,this)),is(z(Er,this)),Oi(z(Er,this).ctx);try{return t()}catch(t){return Ui(t),null}finally{os(e),is(n),Oi(i)}}function Vr(){const t=z(Tr,this).pending;null!==z(Sr,this)&&(U(Mr,this,document.createDocumentFragment()),z(Mr,this).append(z(Fr,this)),Yo(z(Sr,this),z(Mr,this))),null===z(Ar,this)&&U(Ar,this,Uo((()=>t(z(wr,this)))))}function Gr(t){var e;if(this.has_pending_snippet()){if(U(Cr,this,z(Cr,this)+t),0===z(Cr,this)){this.is_pending=!1;for(const t of z(Dr,this))qi(t,Qn),kr(t);for(const t of z(Rr,this))qi(t,Jn),kr(t);z(Dr,this).clear(),z(Rr,this).clear(),z(Ar,this)&&Go(z(Ar,this),(()=>{U(Ar,this,null)})),z(Mr,this)&&(z(wr,this).before(z(Mr,this)),U(Mr,this,null))}}else this.parent&&L(zr,e=this.parent,Gr).call(e,t)}function Hr(t,e,n,i){const r=Xr;if(0!==n.length||0!==t.length){var o,s,a,l,c=Xi,u=rs,d=(o=rs,s=es,a=Fi,l=Xi,function(t=!0){os(o),is(s),Oi(a),t&&(null==l||l.activate())});t.length>0?Promise.all(t).then((()=>{d();try{return h()}finally{null==c||c.deactivate(),Kr()}})):h()}else i(e.map(r));function h(){Promise.all(n.map((t=>Yr(t)))).then((t=>{d();try{i([...e.map(r),...t])}catch(t){u.f&ti||ji(t,u)}null==c||c.deactivate(),Kr()})).catch((t=>{ji(t,u)}))}}function Kr(){os(null),is(null),Oi(null)}function Xr(t){var e=Un|Qn,n=null!==es&&es.f&Un?es:null;null!==rs&&(rs.f|=oi);return{ctx:Fi,deps:null,effects:null,equals:Ai,f:e,fn:t,reactions:null,rv:0,v:En,wv:0,parent:null!=n?n:rs,ac:null}}function Yr(t,e,n){let i=rs;null===i&&function(){throw new Error("https://svelte.dev/e/async_derived_orphan")}();var r=i.b,o=void 0,s=oo(En),a=!es,l=new Map;return function(t){Fo(ui|oi,t,!0)}((()=>{var e=Wn();o=e.promise;try{Promise.resolve(t()).then(e.resolve,e.reject).then((()=>{n===Xi&&n.committed&&n.deactivate(),Kr()}))}catch(t){e.reject(t),Kr()}var n=Xi;if(a){var i,c=r.is_rendered();r.update_pending_count(1),n.increment(c),null===(i=l.get(n))||void 0===i||i.reject(mi),l.delete(n),l.set(n,e)}const u=(t,e=void 0)=>{if(n.activate(),e)e!==mi&&(s.f|=di,co(s,e));else{s.f&di&&(s.f^=di),co(s,t);for(const[t,e]of l){if(l.delete(t),t===n)break;e.reject(mi)}}a&&(r.update_pending_count(-1),n.decrement(c))};e.promise.then(u,(t=>u(null,t||"unknown")))})),Co((()=>{for(const t of l.values())t.reject(mi)})),new Promise((t=>{!function e(n){function i(){n===o?t(s):e(o)}n.then(i,i)}(o)}))}function Qr(t){const e=Xr(t);return as(e),e}function Jr(t){const e=Xr(t);return e.equals=Ni,e}function Zr(t){var e=t.effects;if(null!==e){t.effects=null;for(var n=0;n<e.length;n+=1)qo(e[n])}}function to(t){var e,n=rs;os(function(t){for(var e=t.parent;null!==e;){if(!(e.f&Un))return e.f&ti?null:e;e=e.parent}return null}(t));try{t.f&=~li,Zr(t),e=ys(t)}finally{os(n)}return e}function eo(t){var e,n,i=to(t);if(!t.equals(i)&&(t.wv=ms(),(null===(e=Xi)||void 0===e||!e.is_fork||null===t.deps)&&(t.v=i,null===t.deps)))return void qi(t,Yn);Zo||(null!==Yi?(Oo()||null!==(n=Xi)&&void 0!==n&&n.is_fork)&&Yi.set(t,i):Vi(t))}let no=new Set;const io=new Map;let ro=!1;function oo(t,e){return{f:0,v:t,reactions:null,equals:Ai,rv:0,wv:0}}function so(t,e){const n=oo(t);return as(n),n}function ao(t,e=!1,n=!0){const i=oo(t);return e||(i.equals=Ni),i}function lo(t,e,n=!1){var i;return null!==es&&(!ns||es.f&ii)&&es.f&(Un|Vn|ui|ii)&&(null===(i=ss)||void 0===i||!i.includes(t))&&function(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}(),co(t,n?fo(e):e)}function co(t,e){if(!t.equals(e)){var n=t.v;Zo?io.set(t,e):io.set(t,n),t.v=e;var i=cr.ensure();if(i.capture(t,n),t.f&Un){const e=t;t.f&Qn&&to(e),Vi(e)}t.wv=ms(),ho(t,Qn),null!==rs&&rs.f&Yn&&!(rs.f&(Gn|Hn))&&(null===us?function(t){us=t}([t]):us.push(t)),!i.is_fork&&no.size>0&&!ro&&function(){ro=!1;var t=Qo;Jo(!0);const e=Array.from(no);try{for(const t of e)t.f&Yn&&qi(t,Jn),vs(t)&&xs(t)}finally{Jo(t)}no.clear()}()}return e}function uo(t){lo(t,t.v+1)}function ho(t,e){var n=t.reactions;if(null!==n)for(var i=n.length,r=0;r<i;r++){var o=n[r],s=o.f,a=!(s&Qn);if(a&&qi(o,e),s&Un){var l,c=o;null===(l=Yi)||void 0===l||l.delete(c),s&li||(s&Xn&&(o.f|=li),ho(c,Jn))}else a&&(s&Vn&&null!==vr&&vr.add(o),kr(o))}}function fo(t){if("object"!=typeof t||null===t||hi in t)return t;const e=Bn(t);if(e!==Rn&&e!==Ln)return t;var n=new Map,i=Mn(t),r=so(0),o=fs,s=t=>{if(fs===o)return t();var e=es,n=fs;is(null),ps(o);var i=t();return is(e),ps(n),i};return i&&n.set("length",so(t.length)),new Proxy(t,{defineProperty(t,e,i){"value"in i&&!1!==i.configurable&&!1!==i.enumerable&&!1!==i.writable||function(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}();var r=n.get(e);return void 0===r?r=s((()=>{var t=so(i.value);return n.set(e,t),t})):lo(r,i.value,!0),!0},deleteProperty(t,e){var i=n.get(e);if(void 0===i){if(e in t){const t=s((()=>so(En)));n.set(e,t),uo(r)}}else lo(i,En),uo(r);return!0},get(e,i,r){var o;if(i===hi)return t;var a=n.get(i),l=i in e;if(void 0===a&&(!l||null!==(o=Pn(e,i))&&void 0!==o&&o.writable)&&(a=s((()=>so(fo(l?e[i]:En)))),n.set(i,a)),void 0!==a){var c=_s(a);return c===En?void 0:c}return Reflect.get(e,i,r)},getOwnPropertyDescriptor(t,e){var i=Reflect.getOwnPropertyDescriptor(t,e);if(i&&"value"in i){var r=n.get(e);r&&(i.value=_s(r))}else if(void 0===i){var o=n.get(e),s=null==o?void 0:o.v;if(void 0!==o&&s!==En)return{enumerable:!0,configurable:!0,value:s,writable:!0}}return i},has(t,e){var i;if(e===hi)return!0;var r=n.get(e),o=void 0!==r&&r.v!==En||Reflect.has(t,e);if((void 0!==r||null!==rs&&(!o||null!==(i=Pn(t,e))&&void 0!==i&&i.writable))&&(void 0===r&&(r=s((()=>so(o?fo(t[e]):En))),n.set(e,r)),_s(r)===En))return!1;return o},set(t,e,o,a){var l,c=n.get(e),u=e in t;if(i&&"length"===e)for(var d=o;d<c.v;d+=1){var h=n.get(d+"");void 0!==h?lo(h,En):d in t&&(h=s((()=>so(En))),n.set(d+"",h))}void 0===c?(!u||null!==(l=Pn(t,e))&&void 0!==l&&l.writable)&&(lo(c=s((()=>so(void 0))),fo(o)),n.set(e,c)):(u=c.v!==En,lo(c,s((()=>fo(o)))));var f=Reflect.getOwnPropertyDescriptor(t,e);if(null!=f&&f.set&&f.set.call(a,o),!u){if(i&&"string"==typeof e){var p=n.get("length"),m=Number(e);Number.isInteger(m)&&m>=p.v&&lo(p,m+1)}uo(r)}return!0},ownKeys(t){_s(r);var e=Reflect.ownKeys(t).filter((t=>{var e=n.get(t);return void 0===e||e.v!==En}));for(var[i,o]of n)o.v===En||i in t||e.push(i);return e},setPrototypeOf(){!function(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}()}})}function po(t){try{if(null!==t&&"object"==typeof t&&hi in t)return t[hi]}catch{}return t}var mo,vo,go,yo;function bo(){if(void 0===mo){mo=window,vo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;go=Pn(e,"firstChild").get,yo=Pn(e,"nextSibling").get,zn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),zn(n)&&(n.__t=void 0)}}function ko(t=""){return document.createTextNode(t)}function xo(t){return go.call(t)}function wo(t){return yo.call(t)}function _o(t,e){if(!xi)return xo(t);var n=xo(ki);if(null===n)n=ki.appendChild(ko());else if(e&&n.nodeType!==vi){var i,r=ko();return null===(i=n)||void 0===i||i.before(r),_i(r),r}return _i(n),n}function To(t,e=!1){var n;if(!xi){var i=xo(t);return i instanceof Comment&&""===i.data?wo(i):i}if(e&&(null===(n=ki)||void 0===n?void 0:n.nodeType)!==vi){var r,o=ko();return null===(r=ki)||void 0===r||r.before(o),_i(o),o}return ki}function Io(t,e=1,n=!1){var i;let r=xi?ki:t;for(var o;e--;)o=r,r=wo(r);if(!xi)return r;if(n&&(null===(i=r)||void 0===i?void 0:i.nodeType)!==vi){var s,a=ko();if(null===r)null===(s=o)||void 0===s||s.after(a);else r.before(a);return _i(a),a}return _i(r),r}function Eo(t){t.textContent=""}function So(t,e){if(e){const e=document.body;t.autofocus=!0,zi((()=>{document.activeElement===e&&t.focus()}))}}let Ao=!1;function No(t){var e=es,n=rs;is(null),os(null);try{return t()}finally{is(e),os(n)}}function Mo(t){null===rs&&(null===es&&function(){throw new Error("https://svelte.dev/e/effect_orphan")}(),function(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}()),Zo&&function(){throw new Error("https://svelte.dev/e/effect_in_teardown")}()}function Fo(t,e,n){var i=rs;null!==i&&i.f&Zn&&(t|=Zn);var r={ctx:Fi,deps:null,nodes:null,f:t|Qn|Xn,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(n)try{xs(r),r.f|=ei}catch(t){throw qo(r),t}else null!==e&&kr(r);var o=r;if(!n||null!==o.deps||null!==o.teardown||null!==o.nodes||o.first!==o.last||o.f&oi||(o=o.first,t&Vn&&t&ni&&null!==o&&(o.f|=ni)),null!==o&&(o.parent=i,null!==i&&function(t,e){var n=e.last;null===n?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}(o,i),null!==es&&es.f&Un&&!(t&Hn))){var s,a=es;(null!==(s=a.effects)&&void 0!==s?s:a.effects=[]).push(o)}return r}function Oo(){return null!==es&&!ns}function Co(t){const e=Fo($n,null,!1);return qi(e,Yn),e.teardown=t,e}function Po(t){Mo();var e=rs.f;if(!!(es||!(e&Gn)||e&ei))return Do(t);var n,i=Fi;(null!==(n=i.e)&&void 0!==n?n:i.e=[]).push(t)}function Do(t){return Fo(jn|si,t,!1)}function Ro(t){return Fo(jn,t,!1)}function Lo(t,e=0){return Fo($n|e,t,!0)}function Bo(t,e=[],n=[],i=[]){Hr(i,e,n,(e=>{Fo($n,(()=>t(...e.map(_s))),!0)}))}function zo(t,e=0){return Fo(Vn|e,t,!0)}function Wo(t,e=0){return Fo(qn|e,t,!0)}function Uo(t){return Fo(Gn|oi,t,!0)}function jo(t){var e=t.teardown;if(null!==e){const t=Zo,n=es;ts(!0),is(null);try{e.call(null)}finally{ts(t),is(n)}}}function $o(t,e=!1){var n=t.first;for(t.first=t.last=null;null!==n;){const t=n.ac;null!==t&&No((()=>{t.abort(mi)}));var i=n.next;n.f&Hn?n.parent=null:qo(n,e),n=i}}function qo(t,e=!0){var n=!1;(e||t.f&ri)&&null!==t.nodes&&null!==t.nodes.end&&(!function(t,e){for(;null!==t;){var n=t===e?null:wo(t);t.remove(),t=n}}(t.nodes.start,t.nodes.end),n=!0),$o(t,e&&!n),ks(t,0),qi(t,ti);var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)t.stop();jo(t);var r=t.parent;null!==r&&null!==r.first&&Vo(t),t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function Vo(t){var e=t.parent,n=t.prev,i=t.next;null!==n&&(n.next=i),null!==i&&(i.prev=n),null!==e&&(e.first===t&&(e.first=i),e.last===t&&(e.last=n))}function Go(t,e,n=!0){var i=[];Ho(t,i,!0);var r=()=>{n&&qo(t),e&&e()},o=i.length;if(o>0){var s=()=>--o||r();for(var a of i)a.out(s)}else r()}function Ho(t,e,n){if(!(t.f&Zn)){t.f^=Zn;var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)(t.is_global||n)&&e.push(t);for(var r=t.first;null!==r;){var o=r.next;Ho(r,e,!!(!!(r.f&ni)||!!(r.f&Gn)&&!!(t.f&Vn))&&n),r=o}}}function Ko(t){Xo(t,!0)}function Xo(t,e){if(t.f&Zn){t.f^=Zn,t.f&Yn||(qi(t,Qn),kr(t));for(var n=t.first;null!==n;){var i=n.next;Xo(n,!!(!!(n.f&ni)||!!(n.f&Gn))&&e),n=i}var r=t.nodes&&t.nodes.t;if(null!==r)for(const t of r)(t.is_global||e)&&t.in()}}function Yo(t,e){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end;null!==n;){var r=n===i?null:wo(n);e.append(n),n=r}}let Qo=!1;function Jo(t){Qo=t}let Zo=!1;function ts(t){Zo=t}let es=null,ns=!1;function is(t){es=t}let rs=null;function os(t){rs=t}let ss=null;function as(t){null!==es&&(null===ss?ss=[t]:ss.push(t))}let ls=null,cs=0,us=null;let ds=1,hs=0,fs=hs;function ps(t){fs=t}function ms(){return++ds}function vs(t){var e=t.f;if(e&Qn)return!0;if(e&Un&&(t.f&=~li),e&Jn){for(var n=t.deps,i=n.length,r=0;r<i;r++){var o=n[r];if(vs(o)&&eo(o),o.wv>t.wv)return!0}e&Xn&&null===Yi&&qi(t,Yn)}return!1}function gs(t,e,n=!0){var i,r=t.reactions;if(null!==r&&(null===(i=ss)||void 0===i||!i.includes(t)))for(var o=0;o<r.length;o++){var s=r[o];s.f&Un?gs(s,e,!1):e===s&&(n?qi(s,Qn):s.f&Yn&&qi(s,Jn),kr(s))}}function ys(t){var e=ls,n=cs,i=us,r=es,o=ss,s=Fi,a=ns,l=fs,c=t.f;ls=null,cs=0,us=null,es=c&(Gn|Hn)?null:t,ss=null,Oi(t.ctx),ns=!1,fs=++hs,null!==t.ac&&(No((()=>{t.ac.abort(mi)})),t.ac=null);try{t.f|=ci;var u=(0,t.fn)(),d=t.deps;if(null!==ls){var h;if(ks(t,cs),null!==d&&cs>0)for(d.length=cs+ls.length,h=0;h<ls.length;h++)d[cs+h]=ls[h];else t.deps=d=ls;if(Oo()&&t.f&Xn)for(h=cs;h<d.length;h++){var f,p;(null!==(p=(f=d[h]).reactions)&&void 0!==p?p:f.reactions=[]).push(t)}}else null!==d&&cs<d.length&&(ks(t,cs),d.length=cs);if(!(null===us||ns||null===d||t.f&(Un|Jn|Qn)))for(h=0;h<us.length;h++)gs(us[h],t);return null!==r&&r!==t&&(hs++,null!==us&&(null===i?i=us:i.push(...us))),t.f&di&&(t.f^=di),u}catch(t){return Ui(t)}finally{t.f^=ci,ls=e,cs=n,us=i,es=r,ss=o,Oi(s),ns=a,fs=l}}function bs(t,e){let n=e.reactions;if(null!==n){var i=Fn.call(n,t);if(-1!==i){var r=n.length-1;0===r?n=e.reactions=null:(n[i]=n[r],n.pop())}}if(null===n&&e.f&Un&&(null===ls||!ls.includes(e))){var o=e;o.f&Xn&&(o.f^=Xn,o.f&=~li),Vi(o),Zr(o),ks(o,0)}}function ks(t,e){var n=t.deps;if(null!==n)for(var i=e;i<n.length;i++)bs(t,n[i])}function xs(t){var e=t.f;if(!(e&ti)){qi(t,Yn);var n=rs,i=Qo;rs=t,Qo=!0;try{e&(Vn|qn)?function(t){for(var e=t.first;null!==e;){var n=e.next;e.f&Gn||qo(e),e=n}}(t):$o(t),jo(t);var r=ys(t);t.teardown="function"==typeof r?r:null,t.wv=ds,Nn&&Mi&&t.f&Qn&&t.deps}finally{Qo=i,rs=n}}}async function ws(){await Promise.resolve(),function(){var t=tr;tr=!0;try{for(;;){var e;if(Wi(),0===Qi.length&&(null===(e=Xi)||void 0===e||e.flush(),0===Qi.length))return void(Ji=null);pr()}}finally{tr=t}}()}function _s(t){var e,n,i=!!(t.f&Un);if(null!==es&&!ns&&!(null!==rs&&!!(rs.f&ti)||null!==(n=ss)&&void 0!==n&&n.includes(t))){var r=es.deps;if(es.f&ci)t.rv<hs&&(t.rv=hs,null===ls&&null!==r&&r[cs]===t?cs++:null===ls?ls=[t]:ls.includes(t)||ls.push(t));else{var o,s;(null!==(s=(o=es).deps)&&void 0!==s?s:o.deps=[]).push(t);var a=t.reactions;null===a?t.reactions=[es]:a.includes(es)||a.push(es)}}if(Zo&&io.has(t))return io.get(t);if(i){var l=t;if(Zo){var c=l.v;return(l.f&Yn||null===l.reactions)&&!Is(l)||(c=to(l)),io.set(l,c),c}var u=!(l.f&Xn)&&!ns&&null!==es&&(Qo||!!(es.f&Xn)),d=null===l.deps;vs(l)&&(u&&(l.f|=Xn),eo(l)),u&&!d&&Ts(l)}if(null!==(e=Yi)&&void 0!==e&&e.has(t))return Yi.get(t);if(t.f&di)throw t.v;return t.v}function Ts(t){if(null!==t.deps){t.f|=Xn;for(const n of t.deps){var e;(null!==(e=n.reactions)&&void 0!==e?e:n.reactions=[]).push(t),n.f&Un&&!(n.f&Xn)&&Ts(n)}}}function Is(t){if(t.v===En)return!0;if(null===t.deps)return!1;for(const e of t.deps){if(io.has(e))return!0;if(e.f&Un&&Is(e))return!0}return!1}function Es(t){var e=ns;try{return ns=!0,t()}finally{ns=e}}const Ss=new Set,As=new Set;function Ns(t,e,n,i={}){function r(t){if(i.capture||Cs.call(e,t),!t.cancelBubble)return No((()=>null==n?void 0:n.call(this,t)))}return t.startsWith("pointer")||t.startsWith("touch")||"wheel"===t?zi((()=>{e.addEventListener(t,r,i)})):e.addEventListener(t,r,i),r}function Ms(t,e,n,i,r){var o={capture:i,passive:r},s=Ns(t,e,n,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Co((()=>{e.removeEventListener(t,s,o)}))}function Fs(t){for(var e=0;e<t.length;e++)Ss.add(t[e]);for(var n of As)n(t)}let Os=null;function Cs(t){var e,n=this,i=n.ownerDocument,r=t.type,o=(null===(e=t.composedPath)||void 0===e?void 0:e.call(t))||[],s=o[0]||t.target;Os=t;var a=0,l=Os===t&&t.__root;if(l){var c=o.indexOf(l);if(-1!==c&&(n===document||n===window))return void(t.__root=n);var u=o.indexOf(n);if(-1===u)return;c<=u&&(a=c)}if((s=o[a]||t.target)!==n){Cn(t,"currentTarget",{configurable:!0,get:()=>s||i});var d=es,h=rs;is(null),os(null);try{for(var f,p=[];null!==s;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var v=s["__"+r];null==v||s.disabled&&t.target!==s||v.call(s,t)}catch(t){f?p.push(t):f=t}if(t.cancelBubble||m===n||null===m)break;s=m}if(f){for(let t of p)queueMicrotask((()=>{throw t}));throw f}}finally{t.__root=n,delete t.currentTarget,is(d),os(h)}}}function Ps(t,e){var n=rs;null===n.nodes&&(n.nodes={start:t,end:e,a:null,t:null})}function Ds(t,e){var n,i=!!(1&e),r=!!(2&e),o=!t.startsWith("<!>");return()=>{if(xi)return Ps(ki,null),ki;var e,s;void 0===n&&(e=o?t:"<!>"+t,(s=document.createElement("template")).innerHTML=e.replaceAll("<!>","\x3c!----\x3e"),n=s.content,i||(n=xo(n)));var a=r||vo?document.importNode(n,!0):n.cloneNode(!0);i?Ps(xo(a),a.lastChild):Ps(a,a);return a}}function Rs(){if(xi)return Ps(ki,null),ki;var t=document.createDocumentFragment(),e=document.createComment(""),n=ko();return t.append(e,n),Ps(e,n),t}function Ls(t,e){if(xi){var n=rs;return n.f&ei&&null!==n.nodes.end||(n.nodes.end=ki),void Ti()}null!==t&&t.before(e)}function Bs(t){return t.endsWith("capture")&&"gotpointercapture"!==t&&"lostpointercapture"!==t}const zs=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function Ws(t){return zs.includes(t)}const Us={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function js(t){var e;return t=t.toLowerCase(),null!==(e=Us[t])&&void 0!==e?e:t}const $s=["touchstart","touchmove"];function qs(t,e){var n,i=null==e?"":"object"==typeof e?e+"":e;i!==(null!==(n=t.__t)&&void 0!==n?n:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function Vs(t,e){return Ks(t,e)}function Gs(t,e){var n;bo(),e.intro=null!==(n=e.intro)&&void 0!==n&&n;const i=e.target,r=xi,o=ki;try{for(var s=xo(i);s&&(s.nodeType!==gi||s.data!==wn);)s=wo(s);if(!s)throw In;wi(!0),_i(s);const n=Ks(t,{...e,anchor:s});return wi(!1),n}catch(n){if(n instanceof Error&&n.message.split("\n").some((t=>t.startsWith("https://svelte.dev/e/"))))throw n;return n!==In&&console.warn("Failed to hydrate: ",n),!1===e.recover&&function(){throw new Error("https://svelte.dev/e/hydration_failed")}(),bo(),Eo(i),wi(!1),Vs(t,e)}finally{wi(r),_i(o)}}const Hs=new Map;function Ks(t,{target:e,anchor:n,props:i={},events:r,context:o,intro:s=!0}){bo();var a=new Set,l=t=>{for(var n=0;n<t.length;n++){var i=t[n];if(!a.has(i)){a.add(i);var r=(s=i,$s.includes(s));e.addEventListener(i,Cs,{passive:r});var o=Hs.get(i);void 0===o?(document.addEventListener(i,Cs,{passive:r}),Hs.set(i,1)):Hs.set(i,o+1)}}var s};l(On(Ss)),As.add(l);var c=void 0,u=function(t){cr.ensure();const e=Fo(Hn|oi,t,!0);return(t={})=>new Promise((n=>{t.outro?Go(e,(()=>{qo(e),n(void 0)})):(qo(e),n(void 0))}))}((()=>{var s=null!=n?n:e.appendChild(ko());return function(t,e,n){new Wr(t,e,n)}(s,{pending:()=>{}},(e=>{o&&(Pi({}),Fi.c=o);if(r&&(i.$$events=r),xi&&Ps(e,null),c=t(e,i)||{},xi&&(rs.nodes.end=ki,null===ki||ki.nodeType!==gi||ki.data!==Tn))throw bi(),In;o&&Di()})),()=>{for(var t of a){e.removeEventListener(t,Cs);var i=Hs.get(t);0==--i?(document.removeEventListener(t,Cs),Hs.delete(t)):Hs.set(t,i)}var r;(As.delete(l),s!==n)&&(null===(r=s.parentNode)||void 0===r||r.removeChild(s))}}));return Xs.set(c,u),c}let Xs=new WeakMap;class Ys{anchor;#t=new Map;#e=new Map;#n=new Map;#i=new Set;#r=!0;constructor(t,e=!0){this.anchor=t,this.#r=e}#o=()=>{var t=Xi;if(this.#t.has(t)){var e=this.#t.get(t),n=this.#e.get(e);if(n)Ko(n),this.#i.delete(e);else{var i=this.#n.get(e);i&&(this.#e.set(e,i.effect),this.#n.delete(e),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[e,n]of this.#t){if(this.#t.delete(e),e===t)break;const i=this.#n.get(n);i&&(qo(i.effect),this.#n.delete(n))}for(const[t,i]of this.#e){if(t===e||this.#i.has(t))continue;const r=()=>{if(Array.from(this.#t.values()).includes(t)){var e=document.createDocumentFragment();Yo(i,e),e.append(ko()),this.#n.set(t,{effect:i,fragment:e})}else qo(i);this.#i.delete(t),this.#e.delete(t)};this.#r||!n?(this.#i.add(t),Go(i,r,!1)):r()}}};#s=t=>{this.#t.delete(t);const e=Array.from(this.#t.values());for(const[t,n]of this.#n)e.includes(t)||(qo(n.effect),this.#n.delete(t))};ensure(t,e){var n=Xi;!e||this.#e.has(t)||this.#n.has(t)||this.#e.set(t,Uo((()=>e(this.anchor)))),this.#t.set(n,t),xi&&(this.anchor=ki),this.#o()}}function Qs(t,e,n=!1){xi&&Ti();var i=new Ys(t);function r(e,n){if(xi){if(e===(Si(t)===_n)){var r=Ei();return _i(r),i.anchor=r,wi(!1),i.ensure(e,n),void wi(!0)}}i.ensure(e,n)}zo((()=>{var t=!1;e(((e,n=!0)=>{t=!0,r(n,e)})),t||r(!1,null)}),n?ni:0)}function Js(t,e){return e}function Zs(t,e=!0){for(var n=0;n<t.length;n++)qo(t[n],e)}var ta;function ea(t,e,n,i,r,o=null){var s=t,a=new Map;if(!!(e&mn)){var l=t;s=xi?_i(xo(l)):l.appendChild(ko())}xi&&Ti();var c,u=null,d=Jr((()=>{var t=n();return Mn(t)?t:null==t?[]:On(t)})),h=!0;function f(){m.fallback=u,function(t,e,n,i,r){var o,s,a,l,c,u=!!(i&vn),d=e.length,h=t.items,f=t.effect.first,p=null,m=[],v=[];if(u)for(c=0;c<d;c+=1){var g,y;if(a=r(e[c],c),!((l=h.get(a).e).f&ai))null===(g=l.nodes)||void 0===g||null===(g=g.a)||void 0===g||g.measure(),(null!==(y=s)&&void 0!==y?y:s=new Set).add(l)}for(c=0;c<d;c+=1){if(a=r(e[c],c),l=h.get(a).e,null!==t.outrogroups)for(const e of t.outrogroups)e.pending.delete(l),e.done.delete(l);if(l.f&ai){if(l.f^=ai,l!==f){var b=p?p.next:f;l===t.effect.last&&(t.effect.last=l.prev),l.prev&&(l.prev.next=l.next),l.next&&(l.next.prev=l.prev),ra(t,p,l),ra(t,l,b),ia(l,b,n),m=[],v=[],f=(p=l).next;continue}ia(l,null,n)}var k,x;if(l.f&Zn)if(Ko(l),u)null===(k=l.nodes)||void 0===k||null===(k=k.a)||void 0===k||k.unfix(),(null!==(x=s)&&void 0!==x?x:s=new Set).delete(l);if(l!==f){if(void 0!==o&&o.has(l)){if(m.length<v.length){var w,_=v[0];p=_.prev;var T=m[0],I=m[m.length-1];for(w=0;w<m.length;w+=1)ia(m[w],_,n);for(w=0;w<v.length;w+=1)o.delete(v[w]);ra(t,T.prev,I.next),ra(t,p,T),ra(t,I,_),f=_,p=I,c-=1,m=[],v=[]}else o.delete(l),ia(l,f,n),ra(t,l.prev,l.next),ra(t,l,null===p?t.effect.first:p.next),ra(t,p,l),p=l;continue}for(m=[],v=[];null!==f&&f!==l;){var E;(null!==(E=o)&&void 0!==E?E:o=new Set).add(f),v.push(f),f=f.next}if(null===f)continue}l.f&ai||m.push(l),p=l,f=l.next}if(null!==t.outrogroups){for(const e of t.outrogroups){var S;if(0===e.pending.size)Zs(On(e.done)),null===(S=t.outrogroups)||void 0===S||S.delete(e)}0===t.outrogroups.size&&(t.outrogroups=null)}if(null!==f||void 0!==o){var A=[];if(void 0!==o)for(l of o)l.f&Zn||A.push(l);for(;null!==f;)f.f&Zn||f===t.fallback||A.push(f),f=f.next;var N=A.length;if(N>0){var M=i&mn&&0===d?n:null;if(u){for(c=0;c<N;c+=1){var F;null===(F=A[c].nodes)||void 0===F||null===(F=F.a)||void 0===F||F.measure()}for(c=0;c<N;c+=1){var O;null===(O=A[c].nodes)||void 0===O||null===(O=O.a)||void 0===O||O.fix()}}!function(t,e,n){for(var i,r=e.length,o=e.length,s=0;s<r;s++){let n=e[s];Go(n,(()=>{if(i){if(i.pending.delete(n),i.done.add(n),0===i.pending.size){var e=t.outrogroups;Zs(On(i.done)),e.delete(i),0===e.size&&(t.outrogroups=null)}}else o-=1}),!1)}if(0===o){var a=null!==n;if(a){var l=n,c=l.parentNode;Eo(c),c.append(l),t.items.clear()}Zs(e,!a)}else{var u;i={pending:new Set(e),done:new Set},(null!==(u=t.outrogroups)&&void 0!==u?u:t.outrogroups=new Set).add(i)}}(t,A,M)}}u&&zi((()=>{if(void 0!==s)for(l of s){var t;null===(t=l.nodes)||void 0===t||null===(t=t.a)||void 0===t||t.apply()}}))}(m,c,s,e,i),null!==u&&(0===c.length?u.f&ai?(u.f^=ai,ia(u,null,s)):Ko(u):Go(u,(()=>{u=null})))}var p=zo((()=>{var t=(c=_s(d)).length;let l=!1;xi&&(Si(s)===_n!==(0===t)&&(_i(s=Ei()),wi(!1),l=!0));for(var p=new Set,m=0;m<t;m+=1){xi&&ki.nodeType===gi&&ki.data===Tn&&(s=ki,l=!0,wi(!1));var v,g=c[m],y=i(g,m),b=h?null:a.get(y);if(b)b.v&&co(b.v,g),b.i&&co(b.i,m);else b=na(a,h?s:null!==(v=ta)&&void 0!==v?v:ta=ko(),g,y,m,r,e,n),h||(b.e.f|=ai),a.set(y,b);p.add(y)}0===t&&o&&!u&&(h?u=Uo((()=>o(s))):(u=Uo((()=>{var t;return o(null!==(t=ta)&&void 0!==t?t:ta=ko())}))).f|=ai),xi&&t>0&&_i(Ei()),h||f(),l&&wi(!0),_s(d)})),m={effect:p,items:a,outrogroups:null,fallback:u};h=!1,xi&&(s=ki)}function na(t,e,n,i,r,o,s,a){var l=s&fn?s&gn?oo(n):ao(n,!1,!1):null,c=s&pn?oo(r):null;return{v:l,i:c,e:Uo((()=>(o(e,null!=l?l:n,null!=c?c:r,a),()=>{t.delete(i)})))}}function ia(t,e,n){if(t.nodes)for(var i=t.nodes.start,r=t.nodes.end,o=!e||e.f&ai?n:e.nodes.start;null!==i;){var s=wo(i);if(o.before(i),i===r)return;i=s}}function ra(t,e,n){null===e?t.effect.first=n:e.next=n,null===n?t.effect.last=e:n.prev=e}function oa(t,e){Ro((()=>{var n,i=t.getRootNode(),r=i.host?i:null!==(n=i.head)&&void 0!==n?n:i.ownerDocument.head;if(!r.querySelector("#"+e.hash)){const t=document.createElement("style");t.id=e.hash,t.textContent=e.code,r.appendChild(t)}}))}function sa(t,e){var n,i=void 0;Wo((()=>{i!==(i=e())&&(n&&(qo(n),n=null),i&&(n=Uo((()=>{Ro((()=>i(t)))}))))}))}function aa(t){var e,n,i="";if("string"==typeof t||"number"==typeof t)i+=t;else if("object"==typeof t)if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(n=aa(t[e]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}function la(t){return"object"==typeof t?function(){for(var t,e,n=0,i="",r=arguments.length;n<r;n++)(t=arguments[n])&&(e=aa(t))&&(i&&(i+=" "),i+=e);return i}(t):null!=t?t:""}const ca=[..." \t\n\r\f \v\ufeff"];function ua(t,e=!1){var n=e?" !important;":";",i="";for(var r in t){var o=t[r];null!=o&&""!==o&&(i+=" "+r+": "+o+n)}return i}function da(t){return"-"!==t[0]||"-"!==t[1]?t.toLowerCase():t}function ha(t,e,n,i,r,o){var s=t.__className;if(xi||s!==n||void 0===s){var a=function(t,e,n){var i=null==t?"":""+t;if(e&&(i=i?i+" "+e:e),n)for(var r in n)if(n[r])i=i?i+" "+r:r;else if(i.length)for(var o=r.length,s=0;(s=i.indexOf(r,s))>=0;){var a=s+o;0!==s&&!ca.includes(i[s-1])||a!==i.length&&!ca.includes(i[a])?s=a:i=(0===s?"":i.substring(0,s))+i.substring(a+1)}return""===i?null:i}(n,i,o);xi&&a===t.getAttribute("class")||(null==a?t.removeAttribute("class"):e?t.className=a:t.setAttribute("class",a)),t.__className=n}else if(o&&r!==o)for(var l in o){var c=!!o[l];null!=r&&c===!!r[l]||t.classList.toggle(l,c)}return o}function fa(t,e={},n,i){for(var r in n){var o=n[r];e[r]!==o&&(null==n[r]?t.style.removeProperty(r):t.style.setProperty(r,o,i))}}function pa(t,e,n,i){var r=t.__style;if(xi||r!==e){var o=function(t,e){if(e){var n,i,r="";if(Array.isArray(e)?(n=e[0],i=e[1]):n=e,t){t=String(t).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var o=!1,s=0,a=!1,l=[];n&&l.push(...Object.keys(n).map(da)),i&&l.push(...Object.keys(i).map(da));var c=0,u=-1;const e=t.length;for(var d=0;d<e;d++){var h=t[d];if(a?"/"===h&&"*"===t[d-1]&&(a=!1):o?o===h&&(o=!1):"/"===h&&"*"===t[d+1]?a=!0:'"'===h||"'"===h?o=h:"("===h?s++:")"===h&&s--,!a&&!1===o&&0===s)if(":"===h&&-1===u)u=d;else if(";"===h||d===e-1){if(-1!==u){var f=da(t.substring(c,u).trim());l.includes(f)||(";"!==h&&d++,r+=" "+t.substring(c,d).trim()+";")}c=d+1,u=-1}}}return n&&(r+=ua(n)),i&&(r+=ua(i,!0)),""===(r=r.trim())?null:r}return null==t?null:String(t)}(e,i);xi&&o===t.getAttribute("style")||(null==o?t.removeAttribute("style"):t.style.cssText=o),t.__style=e}else i&&(Array.isArray(i)?(fa(t,null==n?void 0:n[0],i[0]),fa(t,null==n?void 0:n[1],i[1],"important")):fa(t,n,i));return i}function ma(t,e,n=!1){if(t.multiple){if(null==e)return;if(!Mn(e))return void console.warn("https://svelte.dev/e/select_multiple_invalid_value");for(var i of t.options)i.selected=e.includes(va(i))}else{for(i of t.options){var r=va(i);if(o=r,s=e,Object.is(po(o),po(s)))return void(i.selected=!0)}var o,s;n&&void 0===e||(t.selectedIndex=-1)}}function va(t){return"__value"in t?t.__value:t.value}const ga=Symbol("class"),ya=Symbol("style"),ba=Symbol("is custom element"),ka=Symbol("is html");function xa(t){if(xi){var e=!1,n=()=>{if(!e){if(e=!0,t.hasAttribute("value")){var n=t.value;_a(t,"value",null),t.value=n}if(t.hasAttribute("checked")){var i=t.checked;_a(t,"checked",null),t.checked=i}}};t.__on_r=n,zi(n),Ao||(Ao=!0,document.addEventListener("reset",(t=>{Promise.resolve().then((()=>{if(!t.defaultPrevented)for(const n of t.target.elements){var e;null===(e=n.__on_r)||void 0===e||e.call(n)}}))}),{capture:!0}))}}function wa(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function _a(t,e,n,i){var r=Ia(t);xi&&(r[e]=t.getAttribute(e),"src"===e||"srcset"===e||"href"===e&&"LINK"===t.nodeName)||r[e]!==(r[e]=n)&&("loading"===e&&(t[pi]=n),null==n?t.removeAttribute(e):"string"!=typeof n&&Sa(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function Ta(t,e,n=[],i=[],r=[],o,s=!1,a=!1){Hr(r,n,i,(n=>{var i=void 0,r={},l="SELECT"===t.nodeName,c=!1;if(Wo((()=>{var u=e(...n.map(_s)),d=function(t,e,n,i,r=!1){if(xi&&r&&"INPUT"===t.tagName){var o=t;("checkbox"===o.type?"defaultChecked":"defaultValue")in n||xa(o)}var s=Ia(t),a=s[ba],l=!s[ka];let c=xi&&a;c&&wi(!1);var u,d=e||{},h="OPTION"===t.tagName;for(var f in e)f in n||(n[f]=null);n.class?n.class=la(n.class):n.class=null,n[ya]&&(null!==(u=n.style)&&void 0!==u||(n.style=null));var p=Sa(t);for(const r in n){let o=n[r];if(h&&"value"===r&&null==o)t.value=t.__value="",d[r]=o;else if("class"!==r)if("style"!==r){var m=d[r];if(o!==m||void 0===o&&t.hasAttribute(r)){d[r]=o;var v=r[0]+r[1];if("$$"!==v)if("on"===v){const e={},n="$$"+r;let i=r.slice(2);var g=Ws(i);if(Bs(i)&&(i=i.slice(0,-7),e.capture=!0),!g&&m){if(null!=o)continue;t.removeEventListener(i,d[n],e),d[n]=null}if(null!=o)if(g)t[`__${i}`]=o,Fs([i]);else{let o=function(t){d[r].call(this,t)};d[n]=Ns(i,t,o,e)}else g&&(t[`__${i}`]=void 0)}else if("style"===r)_a(t,r,o);else if("autofocus"===r)So(t,Boolean(o));else if(a||"__value"!==r&&("value"!==r||null==o))if("selected"===r&&h)wa(t,o);else{var y=r;l||(y=js(y));var b="defaultValue"===y||"defaultChecked"===y;if(null!=o||a||b)b||p.includes(y)&&(a||"string"!=typeof o)?(t[y]=o,y in s&&(s[y]=En)):"function"!=typeof o&&_a(t,y,o);else if(s[r]=null,"value"===y||"checked"===y){let n=t;const i=void 0===e;if("value"===y){let t=n.defaultValue;n.removeAttribute(y),n.defaultValue=t,n.value=n.__value=i?t:null}else{let t=n.defaultChecked;n.removeAttribute(y),n.defaultChecked=t,n.checked=!!i&&t}}else t.removeAttribute(r)}else t.value=t.__value=o}}else pa(t,o,null==e?void 0:e[ya],n[ya]),d[r]=o,d[ya]=n[ya];else ha(t,"http://www.w3.org/1999/xhtml"===t.namespaceURI,o,i,null==e?void 0:e[ga],n[ga]),d[r]=o,d[ga]=n[ga]}return c&&wi(!0),d}(t,i,u,o,s,a);c&&l&&"value"in u&&ma(t,u.value);for(let t of Object.getOwnPropertySymbols(r))u[t]||qo(r[t]);for(let e of Object.getOwnPropertySymbols(u)){var h=u[e];e.description!==An||i&&h===i[e]||(r[e]&&qo(r[e]),r[e]=Uo((()=>sa(t,(()=>h))))),d[e]=h}i=d})),l){var u=t;Ro((()=>{ma(u,i.value,!0),function(t){var e=new MutationObserver((()=>{ma(t,t.__value)}));e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),Co((()=>{e.disconnect()}))}(u)}))}c=!0}))}function Ia(t){var e;return null!==(e=t.__attributes)&&void 0!==e?e:t.__attributes={[ba]:t.nodeName.includes("-"),[ka]:t.namespaceURI===Sn}}var Ea=new Map;function Sa(t){var e,n=t.getAttribute("is")||t.nodeName,i=Ea.get(n);if(i)return i;Ea.set(n,i=[]);for(var r=t,o=Element.prototype;o!==r;){for(var s in e=Dn(r))e[s].set&&i.push(s);r=Bn(r)}return i}function Aa(t,e){return t===e||(null==t?void 0:t[hi])===e}function Na(t={},e,n,i){return Ro((()=>{var i,r;return Lo((()=>{i=r,r=[],Es((()=>{t!==n(...r)&&(e(t,...r),i&&Aa(n(...i),t)&&e(null,...i))}))})),()=>{zi((()=>{r&&Aa(n(...r),t)&&e(null,...r)}))}})),t}let Ma=!1;function Fa(t,e,n,i){var r,o,s=!!(n&kn),a=!!(n&xn),l=i,c=!0,u=()=>(c&&(c=!1,l=a?Es(i):i),l);if(s){var d,h,f=hi in t||fi in t;r=null!==(d=null===(h=Pn(t,e))||void 0===h?void 0:h.set)&&void 0!==d?d:f&&e in t?n=>t[e]=n:void 0}var p,m=!1;if(s?[o,m]=function(t){var e=Ma;try{return Ma=!1,[t(),Ma]}finally{Ma=e}}((()=>t[e])):o=t[e],void 0===o&&void 0!==i&&(o=u(),r&&(!function(){throw new Error("https://svelte.dev/e/props_invalid_value")}(),r(o))),p=()=>{var n=t[e];return void 0===n?u():(c=!0,n)},!(n&bn))return p;if(r){var v=t.$$legacy;return function(t,e){return arguments.length>0?((!e||v||m)&&r(e?p():t),t):p()}}var g=!1,y=(n&yn?Xr:Jr)((()=>(g=!1,p())));s&&_s(y);var b=rs;return function(t,e){if(arguments.length>0){const n=e?_s(y):s?fo(t):t;return lo(y,n),g=!0,void 0!==l&&(l=n),t}return Zo&&g||b.f&ti?y.v:_s(y)}}var Oa,Ca,Pa,Da;"undefined"!=typeof window&&(null!==(Ca=(Oa=null!==(Da=(Pa=window).__svelte)&&void 0!==Da?Da:Pa.__svelte={}).v)&&void 0!==Ca?Ca:Oa.v=new Set).add("5");function Ra(t,{include:e,exclude:n}={}){const i=t=>{const i=e=>"string"==typeof e?t===e:e.test(t);return e?e.some(i):!n||!n.some(i)};for(const[e,n]of(t=>{const e=new Set;do{for(const n of Reflect.ownKeys(t))e.add([t,n])}while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e})(t.constructor.prototype)){if("constructor"===n||!i(n))continue;const r=Reflect.getOwnPropertyDescriptor(e,n);r&&"function"==typeof r.value&&(t[n]=t[n].bind(t))}return t}function La(t,e){t.getNodesAtTime(0)[0].once("nodestart",e)}class Ba{constructor({position:t,galleryState:e,config:n}){this.config=n,this.position=t,this.galleryState=e,this.name=n.name;const{variantId:i,itemIndex:r,moduleIndex:o}=t;this.id=`${n.itemType}_${i}_${r}_${o}`,Ra(this)}#a=so(fo({}));#l=so(null);#c=so(!1);#u=so(null);id;player;position;config;timeline;moduleEndListener;hasDuration=!1;coverAssets=[];get state(){return _s(this.#a)}set state(t){lo(this.#a,t,!0)}get cover(){return _s(this.#l)}set cover(t){lo(this.#l,t)}get showCover(){return _s(this.#c)}set showCover(t){lo(this.#c,t,!0)}get Component(){return _s(this.#u)}set Component(t){lo(this.#u,t)}emitModuleEnd(){var t;null===(t=this.moduleEndListener)||void 0===t||t.call(this)}start(t){this.player=t}setPosition(){this.galleryState.playingModulePosition=this.position}play(){La(this.timeline,(()=>{this.setPosition()})),this.player.switchTimeline(this.timeline)}get duration(){return this.hasDuration?this.timeline.placements.reduce(((t,e)=>t+this.player.getNode(e.nodeId).duration),0):0}}function za(t,e,n){var i,r,o;const s=(null==e||null===(i=e.entity)||void 0===i?void 0:i.entityId)||(null==e?void 0:e.assetId),a=null!==(r=null==e||null===(o=e.entity)||void 0===o?void 0:o.entityRevision)&&void 0!==r?r:null==e?void 0:e.assetRevision;return n.addNode({id:t,manifestRef:{type:"assets-delivery-service",assetId:s,assetRevision:a,availableEncodeProfiles:e.availableEncodeProfiles}})}var Wa=Ds('<h3 class="text-box-title svelte-17x2i38"> </h3>'),Ua=Ds('<span class="text-box-title svelte-17x2i38"> </span>'),ja=Ds('<span class="text-box-description minimized-description svelte-17x2i38"> </span>'),$a=Ds('<span class="read-more-cta svelte-17x2i38" aria-hidden="true">Read more</span>'),qa=Ds('<button class="expand-description-button svelte-17x2i38" aria-expanded="false" aria-controls="expanded-text-content" aria-label="Expand feature description"><!> <!></button>'),Va=Ds('<button aria-expanded="true" aria-label="Collapse feature description" class="svelte-17x2i38">Read less</button>'),Ga=Ds('<section aria-label="Feature description" aria-live="polite"><div class="text-wrapper svelte-17x2i38"><div class="expanded-text-content svelte-17x2i38"><!> <p class="text-box-description svelte-17x2i38"> </p></div> <!></div> <!></section>');const Ha={hash:"svelte-17x2i38",code:".step-description-container.svelte-17x2i38 {width:100%;position:absolute;bottom:0;display:flex;justify-content:space-between;gap:8px;box-sizing:border-box;font-size:12px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:0px;overflow:hidden;pointer-events:none;background:linear-gradient(\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.9) 27.79%,\n rgba(255, 255, 255, 0.95) 100%\n );&.expanded {flex-direction:column;justify-content:flex-start;}&:not(.expanded) {button:where(.svelte-17x2i38) {line-height:16px;}}}.expanded-text-content.svelte-17x2i38:not([hidden]) {display:flex;flex-direction:column;gap:8px;}button.svelte-17x2i38 {background:none;border:none;padding:0;cursor:pointer;line-height:18px;gap:8px;letter-spacing:0%;color:#014FD3;font-size:12px;font-weight:500;flex-shrink:0;text-align:left;font-family:inherit;pointer-events:auto;}h3.svelte-17x2i38, p.svelte-17x2i38, span.svelte-17x2i38 {color:#030303;}.text-wrapper.svelte-17x2i38 {width:100%;}.text-box-title.svelte-17x2i38 {margin:0;font-weight:500;font-size:12px;}.text-box-description.svelte-17x2i38 {margin:0;text-align:left;font-weight:400;}.minimized-description.svelte-17x2i38 {overflow:hidden;line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-weight:400;}.expand-description-button.svelte-17x2i38 {width:100%;display:flex;justify-content:space-between;gap:6px;flex-wrap:nowrap;.read-more-cta:where(.svelte-17x2i38) {color:#014FD3;flex-shrink:0;}}"};function Ka(t,e){const n=Qr((()=>e.state.textBox));!function(t,e){Pi(e,!0),oa(t,Ha);let n=Fa(e,"textBox",3,null),i=Fa(e,"isMobile",3,!1),r=so(!1),o=so(null),s=so(!1),a=Qr((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.title)||""})),l=Qr((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.description)||""})),c=Qr((()=>i()?16:18)),u=Qr((()=>i()?12:16));function d(){_s(o)&&lo(s,_s(o).scrollWidth>_s(o).clientWidth||_s(o).scrollHeight>_s(o).clientHeight,!0)}Po((()=>{_s(o)&&d()}));var h=Rs();Ms("resize",mo,d);var f=To(h),p=t=>{var e=Ga(),n=_o(e),d=_o(n),h=_o(d),f=t=>{var e=Wa(),n=_o(e,!0);Ii(e),Bo((()=>qs(n,_s(a)))),Ls(t,e)};Qs(h,(t=>{i()&&t(f)}));var p=Io(h,2),m=_o(p,!0);Ii(p),Ii(d);var v=Io(d,2),g=t=>{var e=qa();e.__click=()=>lo(r,!0);var n=_o(e),u=t=>{var e=Ua(),n=_o(e,!0);Ii(e),Bo((()=>qs(n,_s(a)))),Ls(t,e)},d=t=>{var e=ja(),n=_o(e,!0);Ii(e),Na(e,(t=>lo(o,t)),(()=>_s(o))),Bo((()=>qs(n,_s(l)))),Ls(t,e)};Qs(n,(t=>{i()&&_s(a)?t(u):t(d,!1)}));var h=Io(n,2),f=t=>{Ls(t,$a())};Qs(h,(t=>{(i()||!i()&&_s(s))&&t(f)})),Ii(e),Bo((()=>pa(e,`line-height: ${_s(c)}px;`))),Ls(t,e)};Qs(v,(t=>{_s(r)||t(g)})),Ii(n);var y=Io(n,2),b=t=>{var e=Va();e.__click=()=>lo(r,!1),Bo((()=>pa(e,`margin-bottom: ${!i()&&_s(r)?"8px":"0px"};\n line-height: ${_s(u)}px;`))),Ls(t,e)};Qs(y,(t=>{_s(r)&&t(b)})),Ii(e),Bo((()=>{ha(e,1,"step-description-container "+(_s(r)?"expanded":""),"svelte-17x2i38"),pa(e,`padding: ${i()?"8px 16px":"16px 16px 56px 16px"};`),pa(d,`line-height: ${_s(c)}px;`),_a(d,"hidden",!_s(r)),qs(m,_s(l))})),Ls(t,e)};Qs(f,(t=>{(_s(a)||_s(l))&&t(p)})),Ls(t,h),Di()}(t,{get textBox(){return _s(n)},get isMobile(){return e.isMobile}})}Fs(["click"]);var Xa=Ds('<div class="toggle-option-container svelte-16pmvvn"><button> </button></div>'),Ya=Ds('<div class="toggle-container svelte-16pmvvn"><div></div></div>');const Qa={hash:"svelte-16pmvvn",code:".eko-gallery-app {--toggleModule_gap: 8px;--toggleModule_padding: 10px 58px 0 0;--toggleModule_options_padding: 0;--toggleModule_options_height: auto;--toggleModule_options_width: 100%;--toggleModule_options_gap: 8px;--toggleModule_button_backgroundColor: #FFFFFF;--toggleModule_button_padding: 8px 12px;--toggleModule_button_boxShadow: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);--toggleModule_button_text_fontFamily: var(--fontName);--toggleModule_button_text_fontSize: 12px;--toggleModule_button_text_fontWeight: 400;--toggleModule_button_text_fontStyle: normal;--toggleModule_button_text_lineHeight: 16px;--toggleModule_button_text_letterSpacing: -0.2px;--toggleModule_button_text_color: #000;--toggleModule_button_border_radius: 100px;--toggleModule_title_fontFamily: var(--fontName);--toggleModule_title_fontSize: 13px;--toggleModule_title_fontWeight: 400;--toggleModule_title_fontStyle: normal;--toggleModule_title_lineHeight: 120%;--toggleModule_title_letterSpacing: 0;--toggleModule_title_color: #666;--toggleModule_title_textAlignment: center;--toggleModule_note_fontFamily: var(--fontName);--toggleModule_note_fontSize: 12px;--toggleModule_note_fontWeight: 400;--toggleModule_note_fontStyle: normal;--toggleModule_note_lineHeight: 120%;--toggleModule_note_letterSpacing: 0;--toggleModule_note_color: #888;--toggleModule_note_topMargin: 4px;}.toggle-container.svelte-16pmvvn {position:absolute;top:0;padding:var(--toggleModule_padding);width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--toggleModule_gap);pointer-events:auto;box-sizing:border-box;}.toggle-options.svelte-16pmvvn {width:var(--toggleModule_options_width);height:var(--toggleModule_options_height);padding:var(--toggleModule_options_padding);gap:var(--toggleModule_options_gap);display:flex;justify-content:end;margin:0;}.toggle-option-container.svelte-16pmvvn {position:relative;min-width:0;}.toggle-option-button.svelte-16pmvvn {border-radius:var(--toggleModule_button_borderRadius);font-family:var(--toggleModule_button_text_fontFamily);font-size:var(--toggleModule_button_text_fontSize);font-weight:var(--toggleModule_button_text_fontWeight);font-style:var(--toggleModule_button_text_fontStyle);line-height:var(--toggleModule_button_text_lineHeight);letter-spacing:var(--toggleModule_button_text_letterSpacing);color:var(--toggleModule_button_text_color);padding:var(--toggleModule_button_padding);border:#E4E5E8 solid 1px;background:#FBFBFB;display:flex;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:pointer;position:relative;transition:all 0.3s ease-in-out;animation-duration:0.5s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:calc(var(--button-index) * 90ms);\n animation-name: svelte-16pmvvn-button-back-appear-anim;transform-origin:bottom center;border-radius:var(--toggleModule_button_border_radius);}.toggle-option-button.selected.svelte-16pmvvn {box-shadow:none;color:#FFFFFF;background:#014FD3;border-color:#014FD3;}.toggle-option-button.svelte-16pmvvn:hover:not(.selected) {background:#F3F4F6;}.toggle-option-button.svelte-16pmvvn:active:not(.selected) {background:#E4E5E8;}.toggle-option-button.svelte-16pmvvn:focus {outline-offset:4px;outline-width:2px;}\n\n@keyframes svelte-16pmvvn-button-back-appear-anim {\n from {\n transform: scale(0);\n }\n to {\n transform: scale(1);\n }\n}\n@keyframes svelte-16pmvvn-optionNoteIn {\n 0% {\n opacity: 0;\n translate: -50% -5px;\n }\n 100% {\n opacity: 1;\n translate: -50% var(--toggleModule_note_topMargin);\n }\n}"};function Ja(t,e){oa(t,Qa);const n=Qr((()=>e.state.options)),i=Qr((()=>e.state.currentOptionIndex)),r=Qr((()=>e.state.onOptionClicked));var o=Ya(),s=_o(o);ea(s,21,(()=>_s(n)),Js,((t,e,n)=>{var o=Xa();pa(o,`--button-index: ${n};`);var s=_o(o);let a;s.__click=()=>_s(r)(n);var l=_o(s,!0);Ii(s),Ii(o),Bo((()=>{a=ha(s,1,"toggle-option-button svelte-16pmvvn",null,a,{selected:_s(i)===n}),qs(l,_s(e).label)})),Ls(t,o)})),Ii(s),Ii(o),Bo((()=>{var t;return ha(s,1,`toggle-options selected-${null!==(t=_s(i))&&void 0!==t?t:""}`,"svelte-16pmvvn")})),Ls(t,o)}Fs(["click"]);var Za=new WeakSet;function tl(t){var e,n;t!==this.state.currentOptionIndex&&(this.state.currentOptionIndex=t,this.cover=this.coverAssets[t],this.synced?this.switchTo(t):(this.timeline=null===(e=this.timelines)||void 0===e?void 0:e[t],this.showCover=!0,La(this.timeline,(()=>{this.showCover=!1})),null===(n=this.player)||void 0===n||n.switchTimeline(this.timeline)))}const el=(t,e,n)=>n>e?e:n<t?t:n;function nl(t,e){return e?`${t}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${e}`:t}let il=()=>{},rl=()=>{};function ol(t){let e;return()=>(void 0===e&&(e=t()),e)}"undefined"!=typeof process&&"production"!==(null===(fe=process.env)||void 0===fe?void 0:fe.NODE_ENV)&&(il=(t,e,n)=>{t||"undefined"==typeof console||console.warn(nl(e,n))},rl=(t,e,n)=>{if(!t)throw new Error(nl(e,n))});const sl=t=>t,al=t=>1e3*t,ll=t=>t/1e3;const cl=t=>Array.isArray(t)&&"number"==typeof t[0],ul=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let e=0;e<r;e++)i+=Math.round(1e4*t(e/(r-1)))/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},dl=2e4;function hl(t){let e=0;let n=t.next(e);for(;!n.done&&e<dl;)e+=50,n=t.next(e);return e>=dl?1/0:e}const fl=5;const pl={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},ml=.001;function vl({duration:t=pl.duration,bounce:e=pl.bounce,velocity:n=pl.velocity,mass:i=pl.mass}){let r,o;il(t<=al(pl.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let s=1-e;s=el(pl.minDamping,pl.maxDamping,s),t=el(pl.minDuration,pl.maxDuration,ll(t)),s<1?(r=e=>{const i=e*s,r=i*t,o=i-n,a=yl(e,s),l=Math.exp(-r);return ml-o/a*l},o=e=>{const i=e*s*t,o=i*n+n,a=Math.pow(s,2)*Math.pow(e,2)*t,l=Math.exp(-i),c=yl(Math.pow(e,2),s);return(-r(e)+ml>0?-1:1)*((o-a)*l)/c}):(r=e=>Math.exp(-e*t)*((e-n)*t+1)-ml,o=e=>Math.exp(-e*t)*(t*t*(n-e)));const a=function(t,e,n){let i=n;for(let n=1;n<gl;n++)i-=t(i)/e(i);return i}(r,o,5/t);if(t=al(t),isNaN(a))return{stiffness:pl.stiffness,damping:pl.damping,duration:t};{const e=Math.pow(a,2)*i;return{stiffness:e,damping:2*s*Math.sqrt(i*e),duration:t}}}const gl=12;function yl(t,e){return t*Math.sqrt(1-e*e)}const bl=["duration","bounce"],kl=["stiffness","damping","mass"];function xl(t,e){return e.some((e=>void 0!==t[e]))}function wl(t=pl.visualDuration,e=pl.bounce){const n="object"!=typeof t?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const o=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:l,damping:c,mass:u,duration:d,velocity:h,isResolvedFromDuration:f}=function(t){let e={velocity:pl.velocity,stiffness:pl.stiffness,damping:pl.damping,mass:pl.mass,isResolvedFromDuration:!1,...t};if(!xl(t,kl)&&xl(t,bl))if(t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(1.2*n),r=i*i,o=2*el(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:pl.mass,stiffness:r,damping:o}}else{const n=vl(t);e={...e,...n,mass:pl.mass},e.isResolvedFromDuration=!0}return e}({...n,velocity:-ll(n.velocity||0)}),p=h||0,m=c/(2*Math.sqrt(l*u)),v=s-o,g=ll(Math.sqrt(l/u)),y=Math.abs(v)<5;let b;if(i||(i=y?pl.restSpeed.granular:pl.restSpeed.default),r||(r=y?pl.restDelta.granular:pl.restDelta.default),m<1){const t=yl(g,m);b=e=>{const n=Math.exp(-m*g*e);return s-n*((p+m*g*v)/t*Math.sin(t*e)+v*Math.cos(t*e))}}else if(1===m)b=t=>s-Math.exp(-g*t)*(v+(p+g*v)*t);else{const t=g*Math.sqrt(m*m-1);b=e=>{const n=Math.exp(-m*g*e),i=Math.min(t*e,300);return s-n*((p+m*g*v)*Math.sinh(i)+t*v*Math.cosh(i))/t}}const k={calculatedDuration:f&&d||null,next:t=>{const e=b(t);if(f)a.done=t>=d;else{let n=0===t?p:0;m<1&&(n=0===t?al(p):function(t,e,n){const i=Math.max(e-fl,0);return r=n-t(i),(o=e-i)?r*(1e3/o):0;var r,o}(b,t,e));const o=Math.abs(n)<=i,l=Math.abs(s-e)<=r;a.done=o&&l}return a.value=a.done?s:e,a},toString:()=>{const t=Math.min(hl(k),dl),e=ul((e=>k.next(t*e).value),t,30);return t+"ms "+e},toTransition:()=>{}};return k}wl.applyToOptions=t=>{const e=function(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(hl(i),dl);return{type:"keyframes",ease:t=>i.next(r*t).value/e,duration:ll(r)}}(t,100,wl);return t.ease=e.ease,t.duration=al(e.duration),t.type="keyframes",t};const _l=t=>null!==t;class Tl{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise((t=>{this.resolve=t}))}notifyFinished(){this.resolve()}then(t,e){return this.finished.then(t,e)}}function Il(t){for(let n=1;n<t.length;n++){var e;null!==(e=t[n])&&void 0!==e||(t[n]=t[n-1])}}const El=t=>t.startsWith("--");const Sl=ol((()=>void 0!==window.ScrollTimeline)),Al={};function Nl(t,e){const n=ol(t);return()=>{var t;return null!==(t=Al[e])&&void 0!==t?t:n()}}const Ml=Nl((()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}),"linearEasing"),Fl=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,Ol={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:Fl([0,.65,.55,1]),circOut:Fl([.55,0,1,.45]),backIn:Fl([.31,.01,.66,-.59]),backOut:Fl([.33,1.53,.69,.99])};function Cl(t,e){return t?"function"==typeof t?Ml()?ul(t,e):"ease-out":cl(t)?Fl(t):Array.isArray(t)?t.map((t=>Cl(t,e)||Ol.easeOut)):Ol[t]:void 0}function Pl(t,e,n,{delay:i=0,duration:r=300,repeat:o=0,repeatType:s="loop",ease:a="easeOut",times:l}={},c=void 0){const u={[e]:n};l&&(u.offset=l);const d=Cl(a,r);Array.isArray(d)&&(u.easing=d);const h={delay:i,duration:r,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:"reverse"===s?"alternate":"normal"};c&&(h.pseudoElement=c);return t.animate(u,h)}class Dl extends Tl{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:e,name:n,keyframes:i,pseudoElement:r,allowFlatten:o=!1,finalKeyframe:s,onComplete:a}=t;this.isPseudoElement=Boolean(r),this.allowFlatten=o,this.options=t,rl("string"!=typeof t.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:t,...e}){return function(t){return"function"==typeof t&&"applyToOptions"in t}(t)&&Ml()?t.applyToOptions(e):(null!==(n=e.duration)&&void 0!==n||(e.duration=300),null!==(i=e.ease)&&void 0!==i||(e.ease="easeOut"),e);var n,i}(t);this.animation=Pl(e,n,i,l,r),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!r){const t=function(t,{repeat:e,repeatType:n="loop"},i,r=1){const o=t.filter(_l),s=r<0||e&&"loop"!==n&&e%2==1?0:o.length-1;return s&&void 0!==i?i:o[s]}(i,this.options,s,this.speed);this.updateMotionValue?this.updateMotionValue(t):function(t,e,n){El(e)?t.style.setProperty(e,n):t.style[e]=n}(e,n,t),this.animation.cancel()}null==a||a(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,e;null===(t=(e=this.animation).finish)||void 0===t||t.call(e)}cancel(){try{this.animation.cancel()}catch(t){}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;"idle"!==t&&"finished"!==t&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var t,e;this.isPseudoElement||(null===(t=(e=this.animation).commitStyles)||void 0===t||t.call(e))}get duration(){var t,e;const n=(null===(t=this.animation.effect)||void 0===t||null===(e=t.getComputedTiming)||void 0===e?void 0:e.call(t).duration)||0;return ll(Number(n))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+ll(t)}get time(){return ll(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=al(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){var t;return null!==(t=this.manualStartTime)&&void 0!==t?t:Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:e}){var n;this.allowFlatten&&(null===(n=this.animation.effect)||void 0===n||n.updateTiming({easing:"linear"}));return this.animation.onfinish=null,t&&Sl()?(this.animation.timeline=t,sl):e(this)}}class Rl{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map((t=>t.finished)))}getAll(t){return this.animations[0][t]}setAll(t,e){for(let n=0;n<this.animations.length;n++)this.animations[n][t]=e}attachTimeline(t){const e=this.animations.map((e=>e.attachTimeline(t)));return()=>{e.forEach(((t,e)=>{t&&t(),this.animations[e].stop()}))}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return Ll(this.animations,"duration")}get iterationDuration(){return Ll(this.animations,"iterationDuration")}runAll(t){this.animations.forEach((e=>e[t]()))}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function Ll(t,e){let n=0;for(let i=0;i<t.length;i++){const r=t[i][e];null!==r&&r>n&&(n=r)}return n}class Bl extends Rl{then(t,e){return this.finished.finally(t).then((()=>{}))}}const zl=new WeakMap,Wl=(t,e="")=>`${t}:${e}`;function Ul(t){const e=zl.get(t)||new Map;return zl.set(t,e),e}function jl(t,e){var n,i;return null!==(n=null!==(i=null==t?void 0:t[e])&&void 0!==i?i:null==t?void 0:t.default)&&void 0!==n?n:t}const $l=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","fontSize","backgroundPositionX","backgroundPositionY"]);function ql(t,e){for(let n=0;n<t.length;n++)"number"==typeof t[n]&&$l.has(e)&&(t[n]=t[n]+"px")}function Vl(t,e){const n=window.getComputedStyle(t);return El(e)?n.getPropertyValue(e):n[e]}function Gl(t,e,n,i){if(null==t)return[];const r=function(t){if(null==t)return[];if(t instanceof EventTarget)return[t];if("string"==typeof t){const e=document.querySelectorAll(t);return e?Array.from(e):[]}return Array.from(t).filter((t=>null!=t))}(t),o=r.length;rl(Boolean(o),"No valid elements provided.","no-valid-elements");const s=[];for(let t=0;t<o;t++){const i=r[t],a={...n};"function"==typeof a.delay&&(a.delay=a.delay(t,o));for(const t in e){let n=e[t];Array.isArray(n)||(n=[n]);const r={...jl(a,t)};r.duration&&(r.duration=al(r.duration)),r.delay&&(r.delay=al(r.delay));const o=Ul(i),l=Wl(t,r.pseudoElement||""),c=o.get(l);c&&c.stop(),s.push({map:o,key:l,unresolvedKeyframes:n,options:{...r,element:i,name:t,allowFlatten:!a.type&&!a.ease}})}}for(let t=0;t<s.length;t++){const{unresolvedKeyframes:e,options:n}=s[t],{element:i,name:r,pseudoElement:o}=n;o||null!==e[0]||(e[0]=Vl(i,r)),Il(e),ql(e,r),!o&&e.length<2&&e.unshift(Vl(i,r)),n.keyframes=e}const a=[];for(let t=0;t<s.length;t++){const{map:e,key:n,options:i}=s[t],r=new Dl(i);e.set(n,r),r.finished.finally((()=>e.delete(n))),a.push(r)}return a}const Hl=(()=>function(t,e,n){return new Bl(Gl(t,e,n))})();var Kl=Ds('<button class="svelte-16kucsb"><div class="svelte-16kucsb"> </div></button>'),Xl=Ds('<div class="tryIt-container svelte-16kucsb"><!></div>');const Yl={hash:"svelte-16kucsb",code:".eko-gallery-app {--tryItModule_justifyContent: center;--tryItModule_alignItems: flex-end;--tryItModule_padding: 16px 20px 48px 20px;--tryItModule_button_padding: 16px 32px;--tryItModule_button_textAlign: center;--tryItModule_button_borderRadius: 100px;--tryItModule_button_border: 0;--tryItModule_button_boxShadow: 0 4px 24px 2px rgba(0, 0, 0, 0.12);--tryItModule_button_background: #FFFFFF;--tryItModule_button_text_fontFamily: var(--fontName);--tryItModule_button_text_fontSize: 18px;--tryItModule_button_text_color: #222;--tryItModule_button_text_weight: 500;--tryItModule_button_text_lineHeight: 120%;--tryItModule_button_text_letterSpacing: -0.1px;}.tryIt-container.svelte-16kucsb {position:relative;padding:var(--tryItModule_padding);width:100%;height:100%;box-sizing:border-box;display:flex;justify-content:var(--tryItModule_justifyContent);align-items:var(--tryItModule_alignItems);}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) {padding:var(--tryItModule_button_padding);text-align:var(--tryItModule_button_textAlign);border-radius:var(--tryItModule_button_borderRadius);border:var(--tryItModule_button_border);background:var(--tryItModule_button_background);box-shadow:var(--tryItModule_button_boxShadow);font-family:var(--tryItModule_button_text_fontFamily);font-size:var(--tryItModule_button_text_fontSize);color:var(--tryItModule_button_text_color);font-weight:var(--tryItModule_button_text_weight);line-height:var(--tryItModule_button_text_lineHeight);letter-spacing:var(--tryItModule_button_text_letterSpacing);cursor:pointer;opacity:0;overflow:hidden;}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) div:where(.svelte-16kucsb) {opacity:0;}"};function Ql(t,e){Pi(e,!0),oa(t,Yl);const n=Qr((()=>e.state.ctaText)),i=Qr((()=>e.state.animationConfig)),r=Qr((()=>e.state.showCta)),o=Qr((()=>e.state.onCtaClick));let s=null,a=null,l=so(!1),c=!1;function u(){c&&Hl(s,{transform:"scale(1.05)"},{type:wl,mass:1.5,stiffness:400,damping:30})}function d(){c&&Hl(s,{transform:"scale(1)"},{type:wl,mass:1.5,stiffness:400,damping:30})}function h(){c&&Hl(s,{transform:"scale(0.95)"},{type:wl,mass:1,stiffness:600,damping:30})}Po((()=>{const{mass:t,stiffness:e,damping:n,delay:o}=_s(i);let u;return _s(r)&&(u=setTimeout((async()=>{lo(l,!0),u=null,Hl(s,{transform:["translateY(40px) scale(0, 0.2)","translateY(0) scale(1, 1)"],opacity:1},{type:wl,mass:t,stiffness:e,damping:n}),await Hl(a,{transform:["translateY(20px) scale(0.8)","translateY(0) scale(1)"],opacity:1},{type:wl,mass:t,stiffness:e,damping:n,delay:.15}),c=!0}),o)),()=>{u&&clearTimeout(u)}}));var f=Xl(),p=_o(f),m=t=>{var e=Kl();e.__mousedown=h,e.__touchstart=h,e.__click=function(...t){var e;null===(e=_s(o))||void 0===e||e.apply(this,t)};var i=_o(e),r=_o(i,!0);Ii(i),Na(i,(t=>a=t),(()=>a)),Ii(e),Na(e,(t=>s=t),(()=>s)),Bo((()=>{pa(e,"pointer-events: "+(_s(l)?"auto":"none")),qs(r,_s(n))})),Ms("mouseenter",e,u),Ms("mouseleave",e,d),Ls(t,e)};Qs(p,(t=>{_s(r)&&t(m)})),Ii(f),Ls(t,f),Di()}Fs(["mousedown","touchstart","click"]);var Jl=new WeakSet;function Zl(){this.mainTimeline?this.player.switchTimeline(this.mainTimeline):this.emitModuleEnd(),this.state.showCta=!1}const tc={videoModule:class extends Ba{constructor({config:t,...e}){var n;super({...e,config:t}),this.Component=Ka,this.hasDuration=!t.loop,Ra(this),this.coverAssets.push(null!==(n=t.intro)&&void 0!==n?n:t.video),this.cover=this.coverAssets[0],this.state={textBox:t.textBox}}start(t){super.start(t),this.timeline=t.createTimeline();const e=this.config;e.intro&&this.timeline.placeOnTimeline(za(`${this.id}_intro`,e.intro,t),"end");const n=za(this.id,e.video,t);this.timeline.placeOnTimeline(n,"end",{loop:e.loop}),e.loop||n.on("nodeend",this.emitModuleEnd)}},toggleModule:class extends Ba{constructor({config:t,...e}){super({...e,config:t}),j(this,Za),this.Component=Ja,this.synced=t.sync,this.switchTo=()=>{},Ra(this),this.coverAssets=t.options.map((t=>{var e;return null!==(e=t.intro)&&void 0!==e?e:t.video})),this.cover=this.coverAssets[0],this.state={options:t.options.map((t=>({label:t.label,note:t.note}))),currentOptionIndex:0,onOptionClicked:L(Za,this,tl).bind(this)}}start(t){super.start(t),this.synced?(this.timeline=t.createTimeline(),this.config.options.forEach(((e,n)=>{this.timeline.placeOnTimeline(za(`${this.id}_option_${n}`,e.video,t),0,{loop:!0})})),this.timeline.placeRenderNodeOnTimeline("switch",0,1/0,{params:{switchCrossfadeSeconds:.25,initSwitching:({switchTo:t})=>{this.switchTo=t,t(this.state.currentOptionIndex,{crossfadeSeconds:0})}}})):(this.timelines=this.config.options.map(((e,n)=>{const i=t.createTimeline();return e.intro&&i.placeOnTimeline(za(`${this.id}_option_${n}_intro`,e.intro,t),"end"),i.placeOnTimeline(za(`${this.id}_option_${n}`,e.video,t),"end",{loop:!0}),i})),this.timeline=this.timelines[this.state.currentOptionIndex])}},tryItModule:class extends Ba{constructor({config:t,...e}){var n;super({...e,config:t}),j(this,Jl),Ra(this);const{introVideo:i}=t;this.coverAssets.push(null!==(n=i.intro)&&void 0!==n?n:i.loop),this.cover=this.coverAssets[0],this.state={ctaText:t.ctaText,animationConfig:t.animationConfig,showCta:!0,onCtaClick:L(Jl,this,Zl).bind(this)}}start(t){super.start(t),this.Component=Ql,this.timeline=t.createTimeline();const{introVideo:e,mainVideo:n}=this.config;if(e.intro&&this.timeline.placeOnTimeline(za(`${this.id}_intro_intro`,e.intro,t)),this.timeline.placeOnTimeline(za(`${this.id}_intro_loop`,e.loop,t),"end",{loop:!0}),n){this.mainTimeline=t.createTimeline(),n.intro&&this.mainTimeline.placeOnTimeline(za(`${this.id}_main_intro`,n.intro,t));const e=za(`${this.id}_main_loop`,n.loop,t);this.mainTimeline.placeOnTimeline(e,"end",{loop:!0})}}play(){this.state.showCta=!0,super.play()}}};class ec{#d=so({});#h=so("ekonovar");#f=so(0);#p=so(0);#m=so(fo({itemIndex:0,moduleIndex:0}));#v=Qr((()=>{var t;return null===(t=_s(this.#d))||void 0===t?void 0:t[_s(this.#h)]}));#g=Qr((()=>{var t;return null===(t=_s(this.#v))||void 0===t?void 0:t[_s(this.#f)]}));#y=Qr((()=>{var t,e;return _s(this.#b)?null===(e=_s(this.#v))||void 0===e?void 0:e[_s(this.#m).itemIndex].modules[_s(this.#m).moduleIndex]:null===(t=_s(this.#g))||void 0===t?void 0:t.modules[_s(this.#p)]}));#k=Qr((()=>{var t;return(null===(t=_s(this.#v))||void 0===t?void 0:t.flatMap((t=>t.modules)))||[]}));#x=so(!1);#w=so(!1);#b=so(!1);#_=Qr((()=>!(_s(this.#m).itemIndex===this.activeItemIndex&&_s(this.#m).moduleIndex===this.activeModuleIndex)));set variants(t){lo(this.#d,t)}set activeVariant(t){lo(this.#h,t,!0)}set activeItemIndex(t){lo(this.#f,t,!0)}set activeModuleIndex(t){lo(this.#p,t,!0)}set playingModulePosition(t){lo(this.#m,t,!0)}set playerLoaded(t){lo(this.#x,t,!0)}set paused(t){lo(this.#w,t,!0)}set startedPlaying(t){lo(this.#b,t,!0)}get variants(){return _s(this.#d)}get activeVariant(){return _s(this.#h)}get activeItemIndex(){return _s(this.#f)}get activeModuleIndex(){return _s(this.#p)}get playingModulePosition(){return _s(this.#m)}get currentItemsList(){return _s(this.#v)}get currentItem(){return _s(this.#g)}get currentModule(){return _s(this.#y)}get playerLoaded(){return _s(this.#x)}get paused(){return _s(this.#w)}get startedPlaying(){return _s(this.#b)}get seeking(){return _s(this.#_)}get currentModulesList(){return _s(this.#k)}}const nc={assetsDeliveryBase:"https://{{env}}assets.eko.com"},ic=2,rc=5,oc=["activeItemIndex","activeModuleIndex","paused","startedPlaying"],sc=["version","selectItem","selectItemAndStep","next","prev","subscribe"];var ac=new WeakMap,lc=new WeakMap,cc=new WeakMap,uc=new WeakMap,dc=new WeakSet;class hc{constructor(t){var e,n,i;j(this,dc),W(this,ac,void 0),W(this,lc,void 0),W(this,cc,void 0),W(this,uc,void 0),$(this,"public",void 0),$(this,"version","0.0.7"),Ra(this),U(cc,this,t),U(ac,this,new ec(null==t||null===(e=t.options)||void 0===e?void 0:e.galleryEnv)),U(uc,this,((t="")=>("production"===t&&(t=""),Object.fromEntries(Object.entries(nc).map((([e,n])=>[e,n.replaceAll("{{env}}",t)])))))(null==t||null===(n=t.options)||void 0===n?void 0:n.galleryEnv)),U(lc,this,[]);const r=null==t||null===(i=t.instance)||void 0===i||null===(i=i.data)||void 0===i||null===(i=i.blocks)||void 0===i||null===(i=i.blocksArr)||void 0===i||null===(i=i.find((t=>"GalleryBlock"===t.blockType)))||void 0===i?void 0:i.config;var o;r?(L(dc,this,fc).call(this,r.items),L(dc,this,pc).call(this,r.items)):console.warn("[eko-gallery-app] Gallery initiated without an instance, results will be empty"),this.public=(o=this,sc.reduce(((t,e)=>{if(!(e in o))throw new Error(`[eko-gallery-app] Public API member "${e}" does not exist on GalleryLogic`);const n=o[e];return t[e]="function"==typeof n?n.bind(o):n,t}),{}))}start(t){z(ac,this).playerLoaded=!0,z(lc,this).forEach((e=>{e.start(t)})),U(lc,this,null),L(dc,this,mc).call(this,t),z(ac,this).currentModule.play()}selectItem(t){const e=z(ac,this);t!==e.activeItemIndex&&(e.activeItemIndex=t,e.activeModuleIndex=0)}selectItemAndStep(t,e){const n=z(ac,this);t===n.activeItemIndex&&e===n.activeModuleIndex||(n.activeItemIndex=t,n.activeModuleIndex=e)}next(){L(dc,this,gc).call(this)}prev(){const t=z(ac,this);if(t.activeModuleIndex=t.activeModuleIndex-1,!t.currentItem.modules[t.activeModuleIndex])if(t.currentItemsList[t.activeItemIndex-1]){t.activeItemIndex=t.activeItemIndex-1;const e=t.currentItemsList[t.activeItemIndex];t.activeModuleIndex=e.modules.length-1}else t.activeModuleIndex=t.activeModuleIndex+1}subscribe(t){const e=z(ac,this);return function(t){cr.ensure();const e=Fo(Hn|oi,t,!0);return()=>{qo(e)}}((()=>{Po((()=>{const n=oc.reduce(((t,n)=>(t[n]=e[n],t)),{});t(n)}))}))}getCoverUrl(t,e){var n,i,r,o;const s=(null==t||null===(n=t.entity)||void 0===n?void 0:n.entityId)||(null==t?void 0:t.assetId),a=null!==(i=null==t||null===(r=t.entity)||void 0===r?void 0:r.entityRevision)&&void 0!==i?i:null==t?void 0:t.assetRevision;if(!s)throw new Error(`[getCoverUrl] No assetId found in assetConfig: ${JSON.stringify(t||{},null,2)}`);if(!a&&0!==a)throw new Error(`[getCoverUrl] No assetRevision found for asset ${s}.`);let l;return null!==(o=z(cc,this))&&void 0!==o&&null!==(o=o.coverAssetsMap)&&void 0!==o&&o[s]?(l=new URL(z(cc,this).coverAssetsMap[s]),/^[a-z0-9]*assets.eko.com$/.test(l.host)&&e&&(l.pathname=l.pathname.replace(".png",".webp"))):(l=new URL(`${z(uc,this).assetsDeliveryBase}/image/${s}/${a}?startOffset=0`),l.pathname+=e?".webp":".png"),e&&l.searchParams.set("width",e),l.href}get currentConfig(){return z(cc,this)}get state(){return z(ac,this)}get urls(){return z(uc,this)}}function fc(t){const e={};for(let n of t)for(let t of Object.keys(n.variants||{}))e[t]=[];e.ekonovar=[],z(ac,this).variants=e}function pc(t){const e=(t=[],e)=>{const n=[];for(let[i,r]of t.entries()){if(!tc[r.itemType])throw new Error(`Unknown module type ${r.itemType}`);const t=new tc[r.itemType]({position:{...e,moduleIndex:i},config:r,galleryState:z(ac,this)});t.moduleEndListener=L(dc,this,vc).bind(this),n.push(t)}return n};for(const[i,r]of t.entries())if("galleryItemV2"===r.itemType){const{modules:t,...o}=r;for(const[s,a]of Object.entries(z(ac,this).variants)){var n;if(null===(n=r.variants)||void 0===n?void 0:n[s])console.log("NO IMPLEMENTED");else{const n={...o};n.modules=e(t,{variantId:s,itemIndex:i}),U(lc,this,[...z(lc,this),...n.modules]),a.push(n)}}}}function mc(t){for(const[,e]of Object.entries(z(ac,this).variants))for(const[n,i]of e.entries()){const r=i.modules,o=e.filter((t=>t!==i)).map((t=>t.modules[0]));for(const[i,s]of r.entries()){let a=r[i+1];a||(a=e[(n+1)%e.length].modules[0]);const l=a.timeline.getNodesAtTime(0)[0],c=o.filter((t=>t!==a)).map((t=>t.timeline.getNodesAtTime(0)[0])),u=[{nodeId:l.id,weight:ic},...c.map((t=>({nodeId:t.id,weight:rc})))];for(const e of s.timeline.placements){t.getNode(e.nodeId).setChildren(u)}}}}function vc(){const t=z(ac,this),e=t.currentItem.modules;e.length>1&&t.activeModuleIndex===e.length-1?t.activeModuleIndex=0:L(dc,this,gc).call(this)}function gc(){const t=z(ac,this);t.activeModuleIndex=t.activeModuleIndex+1,t.currentItem.modules[t.activeModuleIndex]||(t.currentItemsList[t.activeItemIndex+1]?(t.activeItemIndex=t.activeItemIndex+1,t.activeModuleIndex=0):t.activeModuleIndex=t.activeModuleIndex-1)}var yc=Ds('<button><span class="svelte-er27y2"> </span></button>'),bc=Ds('<div class="nav-buttons-container svelte-er27y2"><div class="nav-buttons svelte-er27y2"></div></div>');const kc={hash:"svelte-er27y2",code:".eko-gallery-app {--nav_gap: 10px;--nav_padding: 12px 16px;--nav_bgColor: #FFFFFF;--nav_justifyContent: center;--nav_button_width: fit-content;--nav_button_bgColor: #FFFFFF;--nav_button_borderRadius: 100px;--nav_button_paddingTop: 8px;--nav_button_paddingBottom: var(--nav_button_paddingTop);--nav_button_paddingLeft: 12px;--nav_button_paddingRight: var(--nav_button_paddingLeft);--nav_button_boxShadow: 0 0 0 1px #E7E7E7;--nav_button_gap: 2px;--nav_button_selected_boxShadow: 0 0 0 1px #000000;--nav_button_selected_bgColor: var(--nav_button_bgColor);--nav_button_text_color: #000000;--nav_button_text_fontSize: 14px;--nav_button_text_fontWeight: 500;--nav_button_text_fontFamily: var(--fontName);--nav_button_text_lineHeight: 120%;--nav_button_text_letterSpacing: 0px;--nav_button_text_align: center;--nav_button_selected_text_color: var(--nav_button_text_color);--nav_button_selected_text_fontWeight: var(--nav_button_text_fontWeight);--nav_button_image_borderRadius: calc(var(--nav_button_borderRadius) - var(--nav_button_paddingTop));--nav_arrow_color: var(--secondaryColor);--nav_arrow_bgColor: var(--primaryColor);--nav_arrow_padding: 9px;--nav_arrow_size: 28px;--nav_arrow_boxShadow: 0 0 8px 0 rgba(0, 0, 0, 0.3);}.nav-buttons-container.svelte-er27y2 {width:100%;background-color:var(--nav_bgColor);height:var(--buttonsContainerHeight);display:flex;box-sizing:border-box;text-align:center;justify-content:var(--nav_justifyContent);align-items:center;position:relative;flex-shrink:0;}.nav-buttons-container.svelte-er27y2 :where(.svelte-er27y2) {touch-action:auto;}.nav-buttons.svelte-er27y2 {display:flex;margin:0;gap:var(--nav_gap);height:100%;align-items:center;padding:var(--nav_padding);box-sizing:border-box;overflow-x:auto;scrollbar-width:none;max-width:100%;width:fit-content;overflow-y:hidden;overscroll-behavior-y:none;}.nav-button.svelte-er27y2 {display:flex;outline:none;flex-shrink:0;height:100%;width:var(--nav_button_width);border:none;cursor:pointer;align-items:center;gap:var(--nav_button_gap);background-color:var(--nav_button_bgColor);border-radius:var(--nav_button_borderRadius);\n /* eslint-disable-next-line max-len */padding:var(--nav_button_paddingTop) var(--nav_button_paddingRight) var(--nav_button_paddingBottom) var(--nav_button_paddingLeft);box-shadow:var(--nav_button_boxShadow);}.nav-button.svelte-er27y2 span:where(.svelte-er27y2) {flex:1 0 0;transition:color 0.2s ease-in-out;color:var(--nav_button_text_color);font-weight:var(--nav_button_text_fontWeight);font-size:var(--nav_button_text_fontSize);font-family:var(--nav_button_text_fontFamily);line-height:var(--nav_button_text_lineHeight);letter-spacing:var(--nav_button_text_letterSpacing);text-align:var(--nav_button_text_align);}.nav-button.selected.svelte-er27y2 {background-color:var(--nav_button_selected_bgColor);box-shadow:var(--nav_button_selected_boxShadow);}.nav-button.selected.svelte-er27y2 span:where(.svelte-er27y2) {color:var(--nav_button_selected_text_color);font-weight:var(--nav_button_selected_text_fontWeight);}"};Fs(["click"]);const xc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%20512'%3e%3cpath%20d='M310.6%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L242.7%20256%2073.4%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z'/%3e%3c/svg%3e";var wc=Ds('<button><img class="svelte-1al44kl"/></button>');const _c={hash:"svelte-1al44kl",code:'.nav-button.svelte-1al44kl {height:30px;width:30px;border-radius:100%;background-color:transparent;padding:9px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;pointer-events:auto;border:0;opacity:100%;cursor:pointer;transition-property:background-color, box-shadow, opacity;position:relative;}.nav-button.prev.svelte-1al44kl {transform:rotate(180deg);}.nav-button.hidden.svelte-1al44kl {opacity:0;pointer-events:none;}.nav-button.svelte-1al44kl::before {content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;}.nav-button.svelte-1al44kl img:where(.svelte-1al44kl) {height:100%;}'};function Tc(t,e){oa(t,_c);const n=Fa(e,"hidden",3,!1);var i=wc();let r;i.__click=function(...t){var n;null===(n=e.onClick)||void 0===n||n.apply(this,t)};var o=_o(i);Ii(i),Bo((()=>{var t;r=ha(i,1,`nav-button ${null!==(t=e.type)&&void 0!==t?t:""}`,"svelte-1al44kl",r,{hidden:n()}),_a(i,"aria-label",e.type),_a(o,"src",xc),_a(o,"alt",e.type)})),Ls(t,i)}Fs(["click"]);var Ic=Ds('<button><span class="svelte-1mxltt0"> </span></button>'),Ec=Ds('<div class="steps-indicator-container svelte-1mxltt0"><button aria-label="Scroll to previous steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M12.8333 16.6668C12.68 16.6668 12.5266 16.5935 12.4266 16.4601L9.42663 12.2935C9.36482 12.2081 9.33154 12.1055 9.33154 12.0001C9.33154 11.8948 9.36482 11.7921 9.42663 11.7068L12.4266 7.54012C12.4651 7.48671 12.5138 7.44142 12.5698 7.40682C12.6259 7.37222 12.6882 7.349 12.7532 7.33848C12.8182 7.32795 12.8846 7.33033 12.9487 7.34549C13.0128 7.36064 13.0732 7.38826 13.1266 7.42678C13.18 7.46531 13.2253 7.51397 13.2599 7.56999C13.2945 7.62602 13.3177 7.68831 13.3283 7.75331C13.3388 7.81831 13.3364 7.88475 13.3213 7.94883C13.3061 8.01291 13.2785 8.07338 13.24 8.12678L10.4466 12.0001L13.2333 15.8735C13.2864 15.9479 13.3181 16.0355 13.3251 16.1267C13.332 16.2179 13.314 16.3092 13.2728 16.3909C13.2316 16.4725 13.1689 16.5414 13.0915 16.59C13.014 16.6386 12.9247 16.6652 12.8333 16.6668Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button> <div role="group" aria-roledescription="Sequence navigation buttons"></div> <button aria-label="Scroll to next steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M11.1668 16.6666C11.0668 16.6666 10.9601 16.6333 10.8734 16.5733C10.8199 16.5348 10.7746 16.4862 10.7399 16.4302C10.7053 16.3741 10.682 16.3118 10.6715 16.2468C10.6609 16.1818 10.6634 16.1153 10.6786 16.0512C10.6938 15.9871 10.7215 15.9266 10.7601 15.8733L13.5534 11.9999L10.7601 8.12661C10.6001 7.89994 10.6468 7.59328 10.8734 7.42661C11.1001 7.26661 11.4068 7.31994 11.5734 7.53994L14.5734 11.7066C14.7001 11.8799 14.7001 12.1133 14.5734 12.2933L11.5734 16.4599C11.4734 16.5933 11.3201 16.6666 11.1668 16.6666Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button></div>');const Sc={hash:"svelte-1mxltt0",code:'.steps-indicator-container.svelte-1mxltt0 {width:calc(100% - 32px);position:absolute;bottom:12px;left:16px;animation-duration:0.75s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:0.15s;\n animation-name: svelte-1mxltt0-gallery-steps-appear-anim;}.steps-indicator.svelte-1mxltt0 {--stepSize: 6px;--stepPadding: 7px;padding:4px 0px;display:flex;gap:8px;align-items:center;overflow-x:auto;pointer-events:all;scrollbar-width:none;}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0) {position:relative;overflow:hidden;}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0):after {transition:0.3s ease-in-out;transition-property:opacity, width;}.step-button.svelte-1mxltt0 {padding:8px 12px;border:#E4E5E8 solid 1px;background-color:#FBFBFB;cursor:pointer;pointer-events:all;flex-shrink:0;border-radius:100px;font-size:12px;font-weight:500;line-height:16px;color:#030303;transition:all 0.3s ease-in-out;outline-color:#3191fc;}.step-button.active.svelte-1mxltt0 {background-color:#014FD3;color:#FFFFFF;box-shadow:none;border-color:#014FD3;}.step-button.active.svelte-1mxltt0:after {opacity:100%;\n animation: svelte-1mxltt0-stepDurationAnimation var(--stepDuration) linear forwards;animation-play-state:running;}.step-button.svelte-1mxltt0:hover:not(.active) {background:#F3F4F6;}.step-button.svelte-1mxltt0:active:not(.active) {background:#E4E5E8;}.step-button.svelte-1mxltt0:focus {outline-offset:4px;outline-width:2px;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0) {display:block;box-sizing:border-box;pointer-events:none;white-space:nowrap;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0):after {content:"";background-color:rgba(0, 0, 0, 0.6);position:absolute;border-radius:var(--stepSize);width:0;height:100%;top:0;left:-100%;opacity:0;transform:translateX(0);animation-play-state:paused;}.step-arrow.svelte-1mxltt0 {max-height:34px;position:absolute;padding-top:4px;padding-bottom:4px;z-index:10;bottom:4px;border:none;background-color:#FFF;pointer-events:none;cursor:pointer;opacity:0;}.step-arrow.svelte-1mxltt0:hover {background:#F6F6F7;}.step-arrow.svelte-1mxltt0:active {background:#E4E5E8;}.step-arrow-prev.svelte-1mxltt0 {padding-right:8px;padding-left:0;left:0;transform:translateX(-100%);\n animation: svelte-1mxltt0-arrow-left-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-prev.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-left-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.svelte-1mxltt0 {padding-right:0;padding-left:8px;right:0;transform:translateX(100%);\n animation: svelte-1mxltt0-arrow-right-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-right-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}\n\n@keyframes svelte-1mxltt0-gallery-steps-appear-anim {\n from {\n opacity: 0;\n transform: translate(0, 10px);\n }\n to {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n@keyframes svelte-1mxltt0-gallery-steps-disappear-anim {\n from {\n opacity: 1;\n transform: translate(0, 0);\n }\n to {\n opacity: 0;\n transform: translate(0, 10px);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-appear {\n from {\n opacity: 0;\n transform: translateX(-100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(-100%);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-appear {\n from {\n opacity: 0;\n transform: translateX(100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(100%);\n }\n}\n@keyframes svelte-1mxltt0-stepDurationAnimation {\n 0% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n}'};function Ac(t,e){Pi(e,!0),oa(t,Sc);const n=16,i=32,r=Ci("state");let o=so(null),s=so(null),a=so(!1),l=so(!1);const c=Qr((()=>{let t=[];return t=r().currentItem.modules.map(((t,e)=>({index:e,type:e===r().activeModuleIndex?"active":"",name:t.name}))),t}));function u(){_s(o)&&(lo(a,_s(o).scrollLeft>3),lo(l,_s(o).scrollLeft+_s(o).clientWidth<_s(o).scrollWidth-3))}function d(t){_s(o).scrollBy({left:t,behavior:"smooth"})}function h(t,e){const r=t.getBoundingClientRect(),o=e.getBoundingClientRect(),s=n+i;o.left<r.left+i?d(o.left-r.left-s):o.right>r.right-i&&d(o.right-r.right+s)}function f(){const t=Array.from(_s(o).querySelectorAll(".step-button")).find((t=>{const e=t.getBoundingClientRect(),n=_s(o).getBoundingClientRect();return e.left>n.left+i}));if(t){const e=t.previousElementSibling;e&&h(_s(o),e)}}function p(){const t=Array.from(_s(o).querySelectorAll(".step-button")).reverse().find((t=>{const e=t.getBoundingClientRect(),n=_s(o).getBoundingClientRect();return e.right<n.right-i}));if(t){const e=t.nextElementSibling;e&&h(_s(o),e)}}Po((()=>{if(_s(o)){u();const t=new MutationObserver((()=>{const t=_s(o).querySelector(".step-button.active");t&&lo(s,t,!0)}));return t.observe(_s(o),{attributes:!0,attributeFilter:["class"],subtree:!0}),()=>{t.disconnect()}}})),Po((()=>{_s(s)&&_s(o)&&h(_s(o),_s(s))}));var m=Rs();Ms("resize",mo,u),function(t,e,n){xi&&Ti();var i=new Ys(t);zo((()=>{var t=e();i.ensure(t,n)}))}(To(m),(()=>r().activeItemIndex),(t=>{var e=Ec(),n=_o(e);let i;n.__click=f;var s=Io(n,2);let d;ea(s,21,(()=>_s(c)),Js,((t,e)=>{var n=Ic();let i;n.__click=t=>{return n=t.currentTarget,i=_s(e).index,r().activeModuleIndex=i,void h(_s(o),n);var n,i};var s=_o(n),a=_o(s,!0);Ii(s),Ii(n),Bo((()=>{i=ha(n,1,"step-button svelte-1mxltt0",null,i,{active:"active"===_s(e).type}),_a(n,"aria-label",`Go to step $${_s(e).index+1}`),qs(a,_s(e).name)})),Ls(t,n)})),Ii(s),Na(s,(t=>lo(o,t)),(()=>_s(o)));var m=Io(s,2);let v;m.__click=p,Ii(e),Bo(((t,e)=>{i=ha(n,1,"step-arrow step-arrow-prev svelte-1mxltt0",null,i,{visible:_s(a)}),d=ha(s,1,"steps-indicator svelte-1mxltt0",null,d,t),pa(s,`--stepDuration: ${null!=e?e:""}s`),v=ha(m,1,"step-arrow step-arrow-next svelte-1mxltt0",null,v,{visible:_s(l)})}),[()=>({"with-duration":r().currentModule.hasDuration,paused:r().paused}),()=>r().currentModule.duration]),Ms("scroll",s,u),Ls(t,e)})),Ls(t,m),Di()}Fs(["click"]);const Nc="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.01318%203.42005C3.01318%202.06672%204.50652%201.26672%205.66652%201.90672C6.82652%202.54672%2014.0732%206.48672%2014.0732%206.48672C15.2865%207.15339%2015.2865%208.86005%2014.0732%209.52005L5.66652%2014.1001C4.50652%2014.7334%203.01318%2013.9401%203.01318%2012.5801V3.42005ZM3.98652%2012.5801C3.98652%2013.1334%204.63318%2013.5467%205.19985%2013.2401L13.6065%208.66005C14.1399%208.36672%2014.1465%207.63339%2013.6065%207.34005C13.0665%207.04672%205.19985%202.76005%205.19985%202.76005C4.63985%202.44672%203.98652%202.86005%203.98652%203.42005V12.5801Z'%20fill='%23030303'/%3e%3c/svg%3e",Mc="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.8332%2014C10.5598%2014%2010.3332%2013.7733%2010.3332%2013.5V2.5C10.3332%202.22667%2010.5598%202%2010.8332%202C11.1065%202%2011.3332%202.22667%2011.3332%202.5V13.5C11.3332%2013.7733%2011.1065%2014%2010.8332%2014ZM5.1665%2014C4.89317%2014%204.6665%2013.7733%204.6665%2013.5V2.5C4.6665%202.22667%204.89317%202%205.1665%202C5.43984%202%205.6665%202.22667%205.6665%202.5V13.5C5.6665%2013.7733%205.43984%2014%205.1665%2014Z'%20fill='%23030303'/%3e%3c/svg%3e";var Fc=Ds('<img alt="Play" class="svelte-a3r6re"/>'),Oc=Ds('<img alt="Pause" class="svelte-a3r6re"/>'),Cc=Ds('<button class="pause-button svelte-a3r6re"><!></button>');const Pc={hash:"svelte-a3r6re",code:".pause-button.svelte-a3r6re {position:absolute;top:10px;right:10px;background:#FFFFFF;border-radius:100%;border:1px #C4C8CF solid;padding:0;width:32px;height:32px;display:flex;justify-content:center;align-items:center;pointer-events:auto;transition:background 0.2s ease-in-out;cursor:pointer;outline-color:#3191fc;}.pause-button.svelte-a3r6re:hover {background:#F6F6F7;}.pause-button.svelte-a3r6re:active {background:#E4E5E8;}.pause-button.svelte-a3r6re:focus {outline-offset:8px;outline-width:2px;}.pause-button.svelte-a3r6re img:where(.svelte-a3r6re) {width:16px;height:16px;pointer-events:none;}"};Fs(["click"]);const Dc=300,Rc=60,Lc="none";function Bc(t,e,n){return t.addEventListener(e,n),()=>t.removeEventListener(e,n)}function zc(t,e,n){const{x:i,y:r}=function(t,e){const n=t.getBoundingClientRect();return{x:Math.round(e.clientX-n.left),y:Math.round(e.clientY-n.top)}}(t,e);return{event:e,pointersCount:n.length,target:e.target,x:i,y:r,attachmentNode:t}}function Wc(t,e,n,i,r){const o=zc(t,n,i);return t.dispatchEvent(new CustomEvent(`${e}${r}`,{detail:o})),o}function Uc(){let t=[],e=()=>{},n=[];return{setPointerControls:(i,r,o,s,a,l=Lc,c=[])=>{var u;if(r.style.touchAction=(u=l,Array.isArray(u)?u:[u]).join(" "),n=c,n.forEach((e=>{var n;null===(n=e.onInit)||void 0===n||n.call(e,t)})),!t.length){let l=function(e){t.push(e);const l=Wc(r,i,e,t,"down");function c(e){const o=t.length;t=function(t,e){return e.filter((e=>t.pointerId!==e.pointerId))}(e,t);if(o>t.length){t.length||(u(),d(),h(),f());const o=Wc(r,i,e,t,"up");null==a||a(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onUp)||void 0===n||n.call(e,o,t)}))}))}}null==s||s(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onDown)||void 0===n||n.call(e,l,t)}))}));const u=Bc(r,"pointermove",(e=>{t=t.map((t=>e.pointerId===t.pointerId?e:t));const s=Wc(r,i,e,t,"move");null==o||o(t,e),n.forEach((e=>{var n;null===(n=e.onMove)||void 0===n||n.call(e,s,t)}))})),d=Bc(r,"lostpointercapture",(t=>{c(t)})),h=Bc(r,"pointerup",(t=>{c(t)})),f=Bc(r,"pointerleave",(t=>{c(t)}))};e=Bc(r,"pointerdown",l)}return{destroy:()=>{t.length||(e(),n.forEach((t=>{var e;null===(e=t.onDestroy)||void 0===e||e.call(t)})))}}}}}const jc="@attach";const $c="swipe";function qc(t,e,n,i=!1){const{setPointerControls:r}=Uc(),o=i?$c:Symbol(jc);return{...n,[`on${$c}`]:t,[o]:t=>{const{onDown:n,onUp:i,parameters:o}=function(t,e){const n={timeframe:Dc,minSwipeDistance:Rc,touchAction:Lc,composed:!1,...e};let i,r,o,s;function a(t,e){r=e.clientX,o=e.clientY,i=Date.now(),1===t.length&&(s=e.target)}function l(e,a){if("pointerup"===a.type&&0===e.length&&Date.now()-i<n.timeframe){const e=a.clientX-r,i=a.clientY-o,l=Math.abs(e),c=Math.abs(i);let u=null;l>=2*c&&l>n.minSwipeDistance?u=e>0?"right":"left":c>=2*l&&c>n.minSwipeDistance&&(u=i>0?"bottom":"top"),u&&t.dispatchEvent(new CustomEvent($c,{detail:{direction:u,target:s,pointerType:a.pointerType}}))}}return{onDown:a,onUp:l,parameters:n}}(t,null==e?void 0:e());return r($c,t,null,n,i,o.touchAction,o.plugins).destroy}}}const Vc=t=>{const e="#00ff00",n=1e6,i=4;let r,o,s,a=null,l=!1,c=Date.now();const u={x:void 0,y:void 0};function d(){const e=t.fadeTime,n=Date.now(),i=n-c;i>e/20&&(a&&o&&s&&r&&(s.drawImage(r,0,0),a.clearRect(0,0,r.width,r.height),a.globalAlpha=1-3*i/e,a.drawImage(o,0,0),a.globalAlpha=1,s.clearRect(0,0,r.width,r.height)),c=n),l&&requestAnimationFrame(d)}function h(t){u.x=t.x,u.y=t.y}function f(){a&&o&&r&&(a.canvas.width=window.innerWidth,a.canvas.height=window.innerHeight,o.width=r.width,o.height=r.height)}function p(e){var i;m(),r=window.document.createElement("canvas"),r.id="svelte-gestures-highlight-plugin",a=r.getContext("2d"),r.style.cssText=`\ndisplay: block; \nwidth: 100dvw;\nheight: 100dvh;\ntop: 0;\nleft: 0;\nposition: fixed;\npointer-events: none;\nz-index: ${null!==(i=t.zIndex)&&void 0!==i?i:n};\n`,window.document.body.appendChild(r),window.addEventListener("resize",f),e&&h(e.event),o=document.createElement("canvas"),f(),s=o.getContext("2d"),l=!0,d()}function m(){var t;l=!1,null===(t=window.document.getElementById("svelte-gestures-highlight-plugin"))||void 0===t||t.remove(),window.removeEventListener("resize",f)}return{onMove:n=>{var r,o,s;r=n.event,a&&(a.beginPath(),a.lineWidth=null!==(o=t.lineWidth)&&void 0!==o?o:i,a.lineCap="round",a.strokeStyle=null!==(s=t.color)&&void 0!==s?s:e,void 0!==u.x&&void 0!==u.y?(a.moveTo(u.x,u.y),h(r),a.lineTo(u.x,u.y)):h(r),a.stroke())},onDown:t=>{p(t)},onUp:(t,e)=>{0===e.length&&m()},onDestroy:m,onInit:t=>{t.length&&(u.x=void 0,u.y=void 0,p())}}};var Gc=Ds("<div></div>");const Hc={hash:"svelte-1fv6njc",code:".swiper.svelte-1fv6njc {position:absolute;top:0;left:0;pointer-events:auto;width:100%;height:100%;}"};var Kc=Ds("<img/>"),Xc=Ds('<div class="ui-container svelte-1rvgxfc"><!></div>'),Yc=Ds('<div class="cover-container svelte-1rvgxfc"><!> <!> <!></div>'),Qc=Ds('<div class="covers-container svelte-1rvgxfc" style="scroll-behavior: auto;"></div>');const Jc={hash:"svelte-1rvgxfc",code:".covers-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;display:flex;gap:0.5px;}.covers-container.svelte-1rvgxfc::-webkit-scrollbar {display:none;}.cover-container.svelte-1rvgxfc {position:relative;display:flex;width:100%;height:100%;flex-shrink:0;scroll-snap-align:center;user-select:none;justify-content:center;align-items:center;}.cover-image.svelte-1rvgxfc {width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);object-fit:cover;pointer-events:none;background:#ffffff;}.cover-image.hidden.svelte-1rvgxfc {opacity:0;}.cover-image.hidden.force-show.svelte-1rvgxfc {opacity:1;background:transparent;}.ui-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none;}"};function Zc(t,e){Pi(e,!0),oa(t,Jc);const n=[375,768,1024,1400,1920];let i=Fa(e,"scrollOffset",15),r=Fa(e,"isMobile",3,!1);const o=Ci("state");let s,a=Qr((()=>o().playingModulePosition)),l=null,c=null,u=Qr((()=>o().startedPlaying)),d=Qr((()=>o().currentModulesList)),h=Qr((()=>_s(d).findIndex((t=>f(o().playingModulePosition,t.position)))));function f(t,e){return t.itemIndex===e.itemIndex&&t.moduleIndex===e.moduleIndex}function p(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}function m(t){var e;r()&&t.preventDefault();const{target:n}=t,u=p(n),m=(null===(e=_s(d))||void 0===e?void 0:e.length)||1,v=100/(m-1||1),g=Math.round(u/v);let y=Math.min(g,m-1);const b=_s(d)[y],k={itemIndex:o().activeItemIndex,moduleIndex:o().activeModuleIndex};if(!l){const t=s.children[_s(h)],e=s.getBoundingClientRect(),n=t.getBoundingClientRect();i(n.x-e.x)}c&&clearTimeout(c),c=setTimeout((()=>{const t=p(n);Math.abs(t-g*v)<.25&&async function(){o().seeking&&(o().playerLoaded?o().currentItemsList[o().activeItemIndex].modules[o().activeModuleIndex].play():o().playingModulePosition=_s(a),i(0))}()}),l?0:150),null!==l||f(b.position,k)?null!==l&&f(b.position,l)&&(l=null):(o().activeItemIndex=b.position.itemIndex,o().activeModuleIndex=b.position.moduleIndex),lo(a,b.position)}function v(){}Po((()=>{const{activeItemIndex:t,activeModuleIndex:e}=o();t===_s(a).itemIndex&&e===_s(a).moduleIndex||Es((()=>{var n,i;const r=_s(d).findIndex((n=>{const{itemIndex:i,moduleIndex:r}=n.position;return t===i&&e===r}));l=(null===(n=_s(d)[r])||void 0===n?void 0:n.position)||null;const o=null===(i=s)||void 0===i||null===(i=i.children)||void 0===i?void 0:i[r];if(!s||!o)return;const a=s.getBoundingClientRect(),c=o.getBoundingClientRect();let u=s.scrollLeft+(c.left-a.left);const h=Math.max(0,s.scrollWidth-s.clientWidth);u=Math.max(0,Math.min(h,u)),s.scrollTo({left:u,behavior:"auto"})}))})),Po((()=>{_s(u)&&Es((()=>{}))}));var g=Rs(),y=To(g),b=t=>{var i=Qc();ea(i,23,(()=>_s(d)),(t=>t.id),((t,i,o)=>{var s=Yc(),a=_o(s),l=t=>{var r=Kc();let s;Bo((t=>{s=ha(r,1,"cover-image svelte-1rvgxfc",null,s,{hidden:_s(u)&&_s(o)===_s(h),"force-show":_s(i).showCover}),_a(r,"src",t),_a(r,"alt",_s(i).name),_a(r,"fetchpriority",0===_s(o)?"high":"auto")}),[()=>e.gallery.getCoverUrl(_s(i).cover,n[n.length-1])]),Ms("load",r,(function(...t){var e;null===(e=0===_s(o)?v:()=>{})||void 0===e||e.apply(this,t)})),function(t){if(!xi)return;t.removeAttribute("onload"),t.removeAttribute("onerror");const e=t.__e;void 0!==e&&(t.__e=void 0,queueMicrotask((()=>{t.isConnected&&t.dispatchEvent(e)})))}(r),Ls(t,r)};Qs(a,(t=>{t(l)}));var c=Io(a,2),d=t=>{!function(t,e){Pi(e,!0),oa(t,Hc);const n={color:"#e3e3e3",fadeTime:300,lineWidth:8};function i(t){const{direction:n}=t.detail;var i;if("left"===n)null===(i=e.gallery)||void 0===i||i.next(),e.onEvent("swipe",[-1,0]);else if("right"===n){var r;null===(r=e.gallery)||void 0===r||r.prev(),e.onEvent("swipe",[1,0])}}var r=Gc();Ta(r,(t=>({...t,class:"swiper"})),[()=>qc(i,(()=>({touchAction:"pan-y",plugins:e.debug?[Vc(n)]:[]})))],void 0,void 0,"svelte-1fv6njc"),Ls(t,r),Di()}(t,{get gallery(){return e.gallery},get debug(){return e.debug},get onEvent(){return e.onEvent}})};Qs(c,(t=>{r()&&t(d)}));var f=Io(c,2),p=t=>{var e=Xc();!function(t,e,n){xi&&Ti();var i=new Ys(t);zo((()=>{var t,r=null!==(t=e())&&void 0!==t?t:null;i.ensure(r,r&&(t=>n(t,r)))}),ni)}(_o(e),(()=>_s(i).Component),((t,e)=>{e(t,{get state(){return _s(i).state},get isMobile(){return r()}})})),Ii(e),Ls(t,e)};Qs(f,(t=>{var e;null!==(e=_s(i))&&void 0!==e&&e.Component&&t(p)})),Ii(s),Ls(t,s)})),Ii(i),Na(i,(t=>s=t),(()=>s)),Ms("scroll",i,m),Ls(t,i)};Qs(y,(t=>{_s(d)&&t(b)})),Ls(t,g),Di()}const tu="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};let eu;function nu(){const t=tu&&tu.navigator&&(tu.navigator.userAgent||tu.navigator.platform||tu.navigator.vendor)||"";if(eu&&eu.ua===t)return eu;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile");return eu={ua:t,isMobile:r},eu}"undefined"!=typeof window&&window.addEventListener("pageshow",(function(t){t.persisted&&setTimeout((function(){window.location.reload()}),10)}),!1);var iu=Ds('<div class="paging-buttons svelte-1n46o8q"><!> <!></div>'),ru=Ds('<div style="position: absolute; top: 0; left: 0; width: 100%;"></div>'),ou=Ds("<!> <!>",1),su=Ds('<div class="player-container svelte-1n46o8q"><div class="player-div swipable svelte-1n46o8q"></div> <!> <!> <!> <!></div> <!>',1),au=Ds('<div class="eko-gallery-app svelte-1n46o8q"><!></div>');const lu={hash:"svelte-1n46o8q",code:'.eko-gallery-app.svelte-1n46o8q {position:relative;width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}.eko-gallery-app.svelte-1n46o8q:hover .paging-buttons:where(.svelte-1n46o8q) .nav-button {background-color:#FFFFFF;box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.12);}.eko-gallery-app.svelte-1n46o8q * {box-sizing:border-box;touch-action:pan-y;font-family:"Human BBY Digital", sans-serif;}.player-container.svelte-1n46o8q {position:relative;flex:1;width:100%;pointer-events:none;overflow:hidden;display:flex;align-items:center;justify-content:center;}.player-div.svelte-1n46o8q {position:absolute;width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);}.swipable.svelte-1n46o8q {will-change:transform;transform:translate3d(var(--uiTranformX, 0), 0, 0);}.paging-buttons.svelte-1n46o8q {position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;padding:0 12px;}.paging-buttons.svelte-1n46o8q .nav-button {transition:0.2s ease-in-out;box-shadow:none;}.paging-buttons.svelte-1n46o8q .nav-button img {opacity:0.6;}'};function cu(t,e){Pi(e,!0),oa(t,lu);const n=Fa(e,"config",19,(()=>({}))),i=Fa(e,"forceMobile",3,!1),r=Fa(e,"videoAspectRatio",3,"unset"),o=Fa(e,"onGalleryReady",3,(()=>{})),s=Fa(e,"onEvent",3,(()=>{}));let a,l=!1,c=so(new hc(n())),u=so(null),d=Qr((()=>i()||nu().isMobile)),h=so(0),f=so(void 0),p=so(!0),m=so(fo({width:"100%",height:"100%"}));var v,g,y;function b(){const t={AssetsDeliveryService:{assetsDeliveryServiceUrl:_s(c).urls.assetsDeliveryBase}};lo(u,new e.EkoPlayer(a,Object.assign(t,e.playerOptions))),_s(u).on("playing",(()=>{_s(c).state.paused=!1})),_s(u).on("pause",(()=>{_s(c).state.paused=!0})),_s(u).once("playing",(()=>{_s(c).state.startedPlaying=!0,s()("galleryloaded")}))}function k(t){var e;null===(e=_s(c))||void 0===e||e.selectItem(t)}function x(){var t;null===(t=_s(c))||void 0===t||t.next()}function w(){var t;null===(t=_s(c))||void 0===t||t.prev()}function _(){_s(u).paused?_s(u).play():_s(u).pause()}function T(){return`--uiTranformX: ${_s(h)}px;--videoAspect: ${r()};--videoWidth: ${_s(m).width};--videoHeight: ${_s(m).height};`}v="state",g=()=>_s(c).state,Ri().set(v,g),y=()=>(o()(_s(c).public),n()&&e.EkoPlayer&&(b(),_s(c).start(_s(u))),()=>{var t;null===(t=_s(u))||void 0===t||t.dispose()}),null===Fi&&yi(),Po((()=>{const t=Es(y);if("function"==typeof t)return t})),Po((()=>{n()&&e.EkoPlayer&&(l?Es((()=>{var t;lo(c,new hc(n())),null===(t=_s(u))||void 0===t||t.dispose(),lo(p,!1),ws().then((()=>(lo(p,!0),ws()))).then((()=>{o()(_s(c).public),b(),_s(c).start(_s(u))}))})):l=!0)})),Po((()=>{_s(f)&&_s(u)&&_s(u).loadDebugOverlay({containerElement:_s(f)})})),Po((()=>{if("unset"!==r()&&r().includes("/")){const[t,e]=r().split("/").map((t=>Number(t)));isNaN(t)||isNaN(e)||lo(m,t>e?{width:"100%",height:"auto"}:{width:"auto",height:"100%"},!0)}else lo(m,{width:"100%",height:"100%"},!0)}));var I=au(),E=_o(I),S=t=>{var n=su(),i=To(n),r=_o(i);Na(r,(t=>a=t),(()=>a));var o=Io(r,2);Zc(o,{get isMobile(){return _s(d)},get gallery(){return _s(c)},get debug(){return e.debug},get onEvent(){return s()},get scrollOffset(){return _s(h)},set scrollOffset(t){lo(h,t,!0)}});var l=Io(o,2),u=t=>{var e=iu(),n=_o(e);Tc(n,{type:"prev",onClick:w}),Tc(Io(n,2),{type:"next",onClick:x}),Ii(e),Ls(t,e)};Qs(l,(t=>{_s(d)||e.hideNav||t(u)}));var p=Io(l,2),m=t=>{Ac(t,{})};Qs(p,(t=>{var e;!_s(d)&&(null===(e=_s(c).state.currentItem)||void 0===e?void 0:e.modules.length)>1&&t(m)}));var v=Io(p,2),g=t=>{var n=ou(),i=To(n);!function(t,e){Pi(e,!0),oa(t,Pc);const n=Ci("state");var i=Cc();i.__click=function(...t){var n;null===(n=e.onPauseClick)||void 0===n||n.apply(this,t)};var r=_o(i),o=t=>{var e=Fc();Bo((()=>_a(e,"src",Nc))),Ls(t,e)},s=t=>{var e=Oc();Bo((()=>_a(e,"src",Mc))),Ls(t,e)};Qs(r,(t=>{n().paused?t(o):t(s,!1)})),Ii(i),Bo((t=>_a(i,"aria-label",t)),[()=>n().paused?"Play":"Pause"]),Ls(t,i),Di()}(i,{onPauseClick:_});var r=Io(i,2),o=t=>{var e=ru();Na(e,(t=>lo(f,t)),(()=>_s(f))),Ls(t,e)};Qs(r,(t=>{e.debug&&t(o)})),Ls(t,n)};Qs(v,(t=>{_s(c).state.startedPlaying&&t(g)})),Ii(i);var y=Io(i,2),b=t=>{!function(t,e){Pi(e,!0),oa(t,kc);let n=Fa(e,"onNavItemClick",3,(()=>{}));const i=Ci("state");var r=bc(),o=_o(r);ea(o,23,(()=>i().currentItemsList),(t=>t.id),((t,e,r)=>{var o=yc();let s;o.__click=()=>n()(_s(r));var a=_o(o),l=_o(a,!0);Ii(a),Ii(o),Bo((t=>{s=ha(o,1,"nav-button svelte-er27y2",null,s,t),qs(l,_s(e).name)}),[()=>({selected:_s(r)===i().activeItemIndex})]),Ls(t,o)})),Ii(o),Ii(r),Ls(t,r),Di()}(t,{onNavItemClick:k})};Qs(y,(t=>{e.hideNav||t(b)})),Bo((t=>pa(i,t)),[T]),Ls(t,n)};Qs(E,(t=>{n()&&_s(p)&&t(S)})),Ii(I),Ls(t,I),Di()}function uu(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var du,hu,fu,pu,mu={exports:{}},vu=uu((du||(du=1,fu=mu.exports,pu=function(){var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},o=null;function s(t,e){var n=t[e];if("function"==typeof n.bind)return n.bind(t);try{return Function.prototype.bind.call(n,t)}catch(e){return function(){return Function.prototype.apply.apply(n,[t,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(){for(var n=this.getLevel(),r=0;r<i.length;r++){var o=i[r];this[o]=r<n?t:this.methodFactory(o,n,this.name)}if(this.log=this.debug,typeof console===e&&n<this.levels.SILENT)return"No console available for logging"}function c(t){return function(){typeof console!==e&&(l.call(this),this[t].apply(this,arguments))}}function u(i,r,o){return"debug"===(l=i)&&(l="log"),typeof console!==e&&("trace"===l&&n?a:void 0!==console[l]?s(console,l):void 0!==console.log?s(console,"log"):t)||c.apply(this,arguments);var l}function d(t,n){var s,a,c,d=this,h="loglevel";function f(){var t;if(typeof window!==e&&h){try{t=window.localStorage[h]}catch(t){}if(typeof t===e)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(t=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch(t){}return void 0===d.levels[t]&&(t=void 0),t}}function p(t){var e=t;if("string"==typeof e&&void 0!==d.levels[e.toUpperCase()]&&(e=d.levels[e.toUpperCase()]),"number"==typeof e&&e>=0&&e<=d.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+t)}"string"==typeof t?h+=":"+t:"symbol"==typeof t&&(h=void 0),d.name=t,d.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},d.methodFactory=n||u,d.getLevel=function(){return null!=c?c:null!=a?a:s},d.setLevel=function(t,n){return c=p(t),!1!==n&&function(t){var n=(i[t]||"silent").toUpperCase();if(typeof window!==e&&h){try{return void(window.localStorage[h]=n)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(t){}}}(c),l.call(d)},d.setDefaultLevel=function(t){a=p(t),f()||d.setLevel(t,!1)},d.resetLevel=function(){c=null,function(){if(typeof window!==e&&h){try{window.localStorage.removeItem(h)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(t){}}}(),l.call(d)},d.enableAll=function(t){d.setLevel(d.levels.TRACE,t)},d.disableAll=function(t){d.setLevel(d.levels.SILENT,t)},d.rebuild=function(){if(o!==d&&(s=p(o.getLevel())),l.call(d),o===d)for(var t in r)r[t].rebuild()},s=p(o?o.getLevel():"WARN");var m=f();null!=m&&(c=p(m)),l.call(d)}(o=new d).getLogger=function(t){if("symbol"!=typeof t&&"string"!=typeof t||""===t)throw new TypeError("You must supply a name when creating a logger.");var e=r[t];return e||(e=r[t]=new d(t,o.methodFactory)),e};var h=typeof window!==e?window.log:void 0;return o.noConflict=function(){return typeof window!==e&&window.log===o&&(window.log=h),o},o.getLoggers=function(){return r},o.default=o,o},(hu=mu).exports?hu.exports=pu():fu.log=pu()),mu.exports));const gu=()=>{},yu=["trace","log","debug","info","warn","error","getLevel","setLevel"],bu=["trace","debug","info","warn","error","silent"],ku={TRACE:"color: white; background-color: magenta;",DEBUG:"color: black; background-color: turquoise;",INFO:"color: white; background-color: green;",WARN:"color: black; background-color: yellow;",ERROR:"color: white; background-color: red;"},xu="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global;let wu={level:"trace",appName:""},_u=[];const Tu="object"==typeof xu&&xu.performance&&"function"==typeof xu.performance.now?xu.performance.now.bind(xu.performance):Date.now.bind(Date),Iu=t=>t&&"string"==typeof t?t.toLowerCase().trim():"",Eu=(()=>{try{const t=new URLSearchParams(document.location.search),e=[].concat(t.getAll("log")).concat(t.getAll("ekolog")).concat(t.getAll("ekologger")).join(",").split(",");if(0===e.length)return{};let n={};return e.forEach((t=>{const[e,i]=t.split(":");n[Iu(e)]=Iu(i)||"trace"})),n}catch(t){return{}}})(),Su=(t,e="")=>{const n=Iu(t),i=vu.getLogger(n);if(i.__ekologger)return i.__ekologger;e||Eu[n]||Eu["*"]||(i.__noExplicitLevel=!0);const r=i.methodFactory;i.methodFactory=(e,n,i)=>{const o=r(e,n,i),s=e.toUpperCase();return(...e)=>{o(`[${((t,e=3)=>(Tu()/1e3).toFixed(e))()}] %c[${s}] ${wu.appName?`[${wu.appName}] `:""}[${t}]`,ku[s],...e)}},e=Eu[n]||Eu["*"]||e||wu.level,i.setLevel(e,!1);const o=(...t)=>i.log(...t);return yu.forEach((t=>{o[t]=(...e)=>(_u.forEach((n=>{n[t](...e)})),i[t](...e))})),i.__ekologger=o,o};Su.setDefaults=({appName:t="",level:e})=>{t&&"string"==typeof t&&(wu.appName=t),(e=Iu(e))&&bu.includes(e)&&(wu.level=e,Object.values(vu.getLoggers()).filter((t=>t.__noExplicitLevel)).forEach((t=>t.setLevel(wu.level,!1))))},Su.installDriver=t=>{const e={...yu.reduce(((e,n)=>(e[n]="function"==typeof(null==t?void 0:t[n])?t[n]:gu,e)),{})};_u.push(e)};let Au=class{#T=new Map;on(t,e){if("function"!=typeof e)return this;const n=this.#T.get(t)||new Set;return n.add(e),this.#T.set(t,n),this}once(t,e){if("function"!=typeof e)return this;const n=(...i)=>(this.off(t,n),e(...i));return this.on(t,n)}off(t,e){if(!t)return this.#T.clear(),this;const n=this.#T.get(t);return n?e?(n.delete(e),0===n.size&&this.#T.delete(t),this):(this.#T.delete(t),this):this}trigger(t,...e){const n=this.#T.get(t);return n?(n.forEach((t=>t(...e))),this):this}};function Nu(t){return"[object Object]"===Object.prototype.toString.call(t)}function Mu(t,...e){const n=Nu(t)?{...t}:{};return e.forEach((t=>{Nu(t)&&Object.keys(t).forEach((e=>{const i=t[e],r=n[e];Nu(i)&&Nu(r)?n[e]=Mu(r,i):Array.isArray(i)?n[e]=i.slice():n[e]=i}))})),n}function Fu(t){if("string"==typeof t)return`'${t}'`;if(Array.isArray(t))return`[${t.map((t=>Fu(t))).join(", ")}]`;if(Nu(t))try{return JSON.stringify(t)}catch(t){return"[object Object]"}return null===t?"null":void 0===t?"undefined":String(t)}function Ou(t){return Array.from(t).map((t=>Fu(t))).join(", ")}var Cu=new WeakSet;class Pu extends Au{constructor(...t){super(),j(this,Cu);const e=t.length?t[t.length-1]:void 0,n=this.name;if(!n||"string"!=typeof n)throw new Error("Extending classes must implement get name() returning a string.");this.log=Su(n,this.loglevel);const i=Nu(this.defaults)?this.defaults:{},r=Nu(e)&&Nu(e[n])?e[n]:{};this.settings=Mu({},i,r),L(Cu,this,Du).call(this),L(Cu,this,Ru).call(this)}get name(){throw new Error("BaseModuleClass requires a name getter.")}get loglevel(){return"warn"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set(["constructor","on","off","once","trigger","#wrapMethodsForLogging"])}dispose(){this._disposed||(this._disposed=!0,"function"==typeof this._lifecycleCleanup&&(this._lifecycleCleanup(),this._lifecycleCleanup=null),"function"==typeof this.onDispose&&this.onDispose())}onDispose(){}}function Du(){const t=new Set,e=this.methodsExcludedFromAutoLog;let n=Object.getPrototypeOf(this);for(;n&&n!==Object.prototype;){const i=Object.getOwnPropertyNames(n);for(let r=0;r<i.length;r+=1){const o=i[r];if("constructor"===o||o.startsWith("#"))continue;if(t.has(o))continue;const s=Object.getOwnPropertyDescriptor(n,o);if(!s||"function"!=typeof s.value)continue;const a=s.value.bind(this),l=!e.has(o);this[o]=l?(...t)=>(this.log&&"function"==typeof this.log.debug&&this.log.debug(`${this.name}.${o}(${Ou(t)})`),a(...t)):a,t.add(o)}n=Object.getPrototypeOf(n)}}function Ru(){if("undefined"==typeof window||"function"!=typeof window.addEventListener)return;const t=()=>{try{"function"==typeof this.dispose&&this.dispose()}catch(t){this.log&&"function"==typeof this.log.error&&this.log.error("dispose failed",t)}};window.addEventListener("pagehide",t),window.addEventListener("beforeunload",t),this._lifecycleCleanup=()=>{window.removeEventListener("pagehide",t),window.removeEventListener("beforeunload",t)}}const Lu="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};function Bu(t){return Boolean(t)&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.appendChild}class zu extends Pu{#I;#E;#S;get defaults(){return{style:{width:"100%",height:"100%"},contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1,powerPreference:"low-power"}}}constructor(...t){var e,n;super(...t);const[i]=t,r=function(t,e=(null==Lu?void 0:Lu.document)){if(Bu(t))return t;const n="string"==typeof t?t:null;if(!n||!e||"function"!=typeof e.querySelector)return null;const i=e.querySelector(n);return Bu(i)?i:null}(i);if(!r)throw new Error("Canvas requires a valid mount target (HTMLElement or selector string).");this.#I=r;const o=null==Lu?void 0:Lu.document;if(!o||"function"!=typeof o.createElement)throw new Error("Canvas requires document.createElement.");var s,a;this.#E=o.createElement("canvas"),s=this.#E,a=null===(e=this.settings)||void 0===e?void 0:e.style,s&&a&&"object"==typeof a&&!Array.isArray(a)&&Object.keys(a).forEach((t=>{const e=a[t];null!=e&&(s.style[t]=String(e))})),this.#I.appendChild(this.#E);const l=null===(n=this.settings)||void 0===n?void 0:n.contextAttributes,c=l&&"object"==typeof l&&!Array.isArray(l)?l:void 0;if(this.#S=this.#E.getContext("webgl2",c),!this.#S)throw new Error("Canvas WebGL2 context is not available.")}get name(){return"Canvas"}get element(){return this.#E}get gl(){return this.#S}onDispose(){this.#E&&this.#E.parentNode&&this.#E.parentNode.removeChild(this.#E),this.#S=null,this.#E=null,this.#I=null}}var Wu=new WeakMap,Uu=new WeakMap,ju=new WeakMap,$u=new WeakMap,qu=new WeakMap,Vu=new WeakMap,Gu=new WeakSet;class Hu extends Pu{get name(){return"ContainerSize"}get containerWidth(){return z(Uu,this)}get containerHeight(){return z(ju,this)}get width(){return z(Uu,this)}get height(){return z(ju,this)}constructor(...t){super(...t),j(this,Gu),W(this,Wu,void 0),W(this,Uu,0),W(this,ju,0),W(this,$u,null),W(this,qu,null),W(this,Vu,null);const[e]=t;var n;U(Wu,this,(n=e)&&n.element&&Bu(n.element)?n.element:Bu(n)?n:null),z(Wu,this)&&(L(Gu,this,Xu).call(this,!0),L(Gu,this,Ku).call(this))}onDispose(){z($u,this)&&"function"==typeof z($u,this).disconnect&&z($u,this).disconnect(),U($u,this,null),z(Vu,this)&&"function"==typeof(null==Lu?void 0:Lu.removeEventListener)&&Lu.removeEventListener("resize",z(Vu,this)),U(Vu,this,null),z(qu,this)&&((null==Lu?void 0:Lu.clearInterval)||clearInterval)(z(qu,this)),U(qu,this,null),U(Wu,this,null)}}function Ku(){if(!z(Wu,this))return;const t=null==Lu?void 0:Lu.ResizeObserver;if("function"==typeof t)return U($u,this,new t((()=>L(Gu,this,Xu).call(this)))),void z($u,this).observe(z(Wu,this));U(Vu,this,(()=>L(Gu,this,Xu).call(this))),"function"==typeof(null==Lu?void 0:Lu.addEventListener)&&Lu.addEventListener("resize",z(Vu,this));const e=(null==Lu?void 0:Lu.setInterval)||setInterval;U(qu,this,e((()=>L(Gu,this,Xu).call(this)),250))}function Xu(t=!1){if(!z(Wu,this))return;const{width:e,height:n}=function(t){const e=Number(null==t?void 0:t.clientWidth),n=Number(null==t?void 0:t.clientHeight);return{width:Number.isFinite(e)&&e>0?Math.round(e):0,height:Number.isFinite(n)&&n>0?Math.round(n):0}}(z(Wu,this));(t||e!==z(Uu,this)||n!==z(ju,this))&&(U(Uu,this,e),U(ju,this,n),this.trigger("containerresize",{width:e,height:n}))}var Yu={VIDEO_SOURCE_PREFIX:"__SRC_VID:",TEXTURE_SOURCE_PREFIX:"__SRC_TEXTURE:",PREVIOUS_OUTPUT_PREFIX:"__PREVIOUS:",SAVED_FRAME_PREFIX:"__SAVED_FRAME:",SYSTEM_NODES:{FILTERS:{RENDER_TO_CANVAS:"__default"},TAGS:{ATOM:"atom",FILTER:"filter",COMPOSITE_FILTER:"composite",TRANSITION_FILTER:"transition"}},MESSAGES:{UPDATE_OPTIONS:"update_options"}};class Qu{constructor(t,e){this.canvasSource=t,this.startRendering=e,this.gl=null,this.glOptions=null}init(t,e,n){this.glOptions=n||{};const i=this.initCanvas(this.canvasSource,t,e);return this.initWebgl(i,this.glOptions)}initCanvas(){throw new Error("implement on concrete class")}getContextConfig(t={}){if(!t||"object"!=typeof t)return{contextType:"webgl",contextAttributes:void 0};const{contextType:e,contextAttributes:n,__shaderGraph:i,...r}=t;return{contextType:e||"webgl",contextAttributes:Object.prototype.hasOwnProperty.call(t,"contextAttributes")?n:r}}initWebgl(t,e={}){const{contextType:n,contextAttributes:i}=this.getContextConfig(e),r=t.getContext(n,i);if(!r)throw new Error(`Browser doesn't support ${n}`);return r.enable(r.BLEND),r.disable(r.DEPTH_TEST),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r}isStartRendering(){return this.startRendering}}var Ju,Zu={exports:{}},td=(Ju||(Ju=1,function(t){var e=Object.prototype.hasOwnProperty,n="~";function i(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,i,o,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new r(i,o||t,s),l=n?n+e:e;return t._events[l]?t._events[l].fn?t._events[l]=[t._events[l],a]:t._events[l].push(a):(t._events[l]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new i:delete t._events[e]}function a(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(n=!1)),a.prototype.eventNames=function(){var t,i,r=[];if(0===this._eventsCount)return r;for(i in t=this._events)e.call(t,i)&&r.push(n?i.slice(1):i);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},a.prototype.listeners=function(t){var e=n?n+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,o=i.length,s=new Array(o);r<o;r++)s[r]=i[r].fn;return s},a.prototype.listenerCount=function(t){var e=n?n+t:t,i=this._events[e];return i?i.fn?1:i.length:0},a.prototype.emit=function(t,e,i,r,o,s){var a=n?n+t:t;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,i),!0;case 4:return u.fn.call(u.context,e,i,r),!0;case 5:return u.fn.call(u.context,e,i,r,o),!0;case 6:return u.fn.call(u.context,e,i,r,o,s),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var h,f=u.length;for(c=0;c<f;c++)switch(u[c].once&&this.removeListener(t,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,e);break;case 3:u[c].fn.call(u[c].context,e,i);break;case 4:u[c].fn.call(u[c].context,e,i,r);break;default:if(!l)for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},a.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},a.prototype.removeListener=function(t,e,i,r){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==e||r&&!a.once||i&&a.context!==i||s(this,o);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==e||r&&!a[l].once||i&&a[l].context!==i)&&c.push(a[l]);c.length?this._events[o]=1===c.length?c[0]:c:s(this,o)}return this},a.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&s(this,e)):(this._events=new i,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a}(Zu)),Zu.exports),ed=uu(td);class nd extends Qu{constructor(t){super(t,!0),this.setSrcVidTracksFn=null,this.shouldUpdateTexture=!0,this.onPlayerSeeking=this.onPlayerSeeking.bind(this),this.onPlayerSeeked=this.onPlayerSeeked.bind(this),this.onPlayerNodeStart=this.onPlayerNodeStart.bind(this),this.oncePlayerPlaying=this.oncePlayerPlaying.bind(this);const e=new ed;this.on=e.on.bind(e),this.off=e.off.bind(e),this.once=e.once.bind(e),this.trigger=e.emit.bind(e)}onPlayerSeeking(){this.shouldUpdateTexture=!1}onPlayerSeeked(){this.shouldUpdateTexture=!0}onPlayerNodeStart(){this.shouldUpdateTexture=!0,"function"==typeof this.player.canvas.drawFrame&&this.player.canvas.drawFrame(),this.trigger("forcerender")}oncePlayerPlaying(){this.onPlayerNodeStart()}addPlayerListeners(){this.player&&(this.player.on("seeking",this.onPlayerSeeking),this.player.on("seeked",this.onPlayerSeeked),this.player.on("nodestart",this.onPlayerNodeStart),this.player.once("playing",this.oncePlayerPlaying))}removePlayerListeners(){this.player&&(this.player.off("seeking",this.onPlayerSeeking),this.player.off("seeked",this.onPlayerSeeked),this.player.off("nodestart",this.onPlayerNodeStart),this.player.off("playing",this.oncePlayerPlaying))}initCanvas(t,e,n){var i;this.player=t,this.setSrcVidTracksFn=e;const{contextType:r,contextAttributes:o}=this.getContextConfig(this.glOptions),s=!1!==(null===(i=this.glOptions)||void 0===i||null===(i=i.__shaderGraph)||void 0===i?void 0:i.forwardContextAttributes);const a={contextType:r};s&&void 0!==o&&(a.contextAttributes=o),t.initPlugin("canvas",a);const l={drawFrame:this.canvasDrawFrameFn.bind(this),resize:n,contextType:r,offscreenVideoCanvasEnabled:!1,viewportModeEnabled:!0,fps:0};return s&&void 0!==o&&(l.contextAttributes=o),t.canvas.init(l),t.paused&&0===t.currentTime&&(this.shouldUpdateTexture=!1),this.addPlayerListeners(),t.canvas.canvas}canvasDrawFrameFn(t,e,n){var i;this.setSrcVidTracksFn&&this.shouldUpdateTexture&&t&&e&&n&&(n.videoWidth||n.displayWidth)&&(n.videoHeight||n.displayHeight)&&(!(i=n)||"boolean"!=typeof i.isDataLoaded||i&&i.isDataLoaded&&(void 0===i.isFrameTextureReady||i.isFrameTextureReady))&&this.setSrcVidTracksFn(n)}async recover(){if(this.player&&this.player.paused)return new Promise((t=>{this.player.once("seeked",(()=>{this.shouldUpdateTexture=!0,t()})),this.player.currentTime=this.player.currentTime}))}dispose(){this.player&&(this.player.canvas&&"function"==typeof this.player.canvas.dispose&&this.player.canvas.dispose(),this.removePlayerListeners(),this.player=null)}}class id extends Qu{constructor(t){super(t,!1)}initCanvas(t,e){const n=function(){const t=document.querySelector("video");t&&t.videoHeight&&e(t),requestAnimationFrame(n)};return requestAnimationFrame(n),document.getElementById(t)}}class rd extends Qu{constructor(t){super(t,!1)}initCanvas({src:t,dest:e},n,i){const r="string"==typeof e?document.querySelector(e):e,o="undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement,s=()=>{this.isDisposed||(t&&t.videoHeight&&n(t),requestAnimationFrame(s))};return o?requestAnimationFrame(s):"function"==typeof t?t(n,i):n(t),r}dispose(){this.isDisposed=!0}}var od=function(t){let e;return e="string"==typeof t?new id(t):t&&t.src&&t.dest?new rd(t):new nd(t),e};function sd(t){return Array.isArray(t)||(t=[t]),t}class ad{constructor(t){this.store=t?{...t.get()}:{}}reset(){this.store={}}get(t){if(!t)return this.store;const e=(t=sd(t)).reduce(((t,e)=>{const n=this.store[e];return t.push(n),t}),[]);return 1===e.length?e[0]:e}set(t,e){if(t=sd(t),e=sd(e),t.length!==e.length)throw new Error(`cant set values ${e} to keys ${t}, length did not match`);t.forEach(((t,n)=>{this.store[t]=e[n]}))}}class ld{constructor(t,e,n,i){this.gl=i.gl,this.unit=t,this.bindPoint=e,this.height=1080,this.width=1920,this.textureObject=n.object,this.textureObjectInfo=n,this.isStatic=!1,n.needRefresh&&this.setParameters()}getUnit(){return this.unit}getObject(){return this.textureObject}bind(){this.gl.bindTexture(this.bindPoint,this.textureObject)}fill(){throw new Error("impl in concrete class")}setParameters(){this.bind(),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR)}active(){this.gl.activeTexture(this.gl.TEXTURE0+this.getUnit())}beforeUse(){this.active(),this.bind()}dispose(){this.gl.deleteTexture(this.textureObject)}setHeight(t){this.height=t}setWidth(t){this.width=t}getHeight(){if(!this.height)throw new Error(`texture ${this.unit} no height init `);return this.height}getWidth(){if(!this.width)throw new Error(`texture ${this.unit} no width init `);return this.width}}const cd=Su("frame","warn");let ud=!1;if("undefined"!=typeof window&&window.InterludePlayer){let t=window.InterludePlayer.environment,e=t.isAffectedBySafari17SeekBug,n=t.ua.includes("WMT1H")&&t.ua.includes("iOS/17");ud=e||n}function dd(t,e){const n=t.gl;var i;n.texImage2D(t.bindPoint,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.__hasAllocated=!0,i=t,Number.isFinite(i.width)&&Number.isFinite(i.height)&&(i.actualWidth=i.width,i.actualHeight=i.height,i.textureObjectInfo&&(i.textureObjectInfo.allocatedWidth=i.width,i.textureObjectInfo.allocatedHeight=i.height))}class hd extends ld{fill(t){if(ud&&(t.paused||"undefined"!=typeof document&&"hidden"===document.visibilityState))return;if(t.__closed)return;this.bind();const e=function(t,e){let n=!t.__hasAllocated;return e?(e.width===t.width&&e.height===t.height||(n=!0),t.width=e.width,t.height=e.height,n):n}(this,function(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t)),n=performance.now();!function(t,e,n){const i=t.gl,r=function(t){if("undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement)return!0;const e="object"==typeof window?window:"object"==typeof self?self:null,n=e&&e.VideoFrame;return"function"==typeof n&&t instanceof n}(e);r&&(t.__useSubImage=!1),n||!1===t.__useSubImage||r?dd(t,e):(i.texSubImage2D(t.bindPoint,0,0,0,i.RGBA,i.UNSIGNED_BYTE,e),void 0===t.__useSubImage&&(i.getError()!==i.NO_ERROR?(t.__useSubImage=!1,dd(t,e)):t.__useSubImage=!0))}(this,t,e);const i=(performance.now()-n)/1e3;i>=.1&&cd.warn(`[fill] texImage2D() took ${i.toFixed(3)} seconds to execute.`),"function"==typeof t.close&&!0!==t.__keepOpen&&(t.close(),t.__closed=!0)}}class fd extends ld{constructor(t,e,n){super(...arguments),n.needRefresh&&(this.fill(null),n.needRefresh=!1)}fill(t){if(this.bind(),t&&t.tagName&&"IMG"===t.tagName){const e=Number(t.naturalWidth||t.width),n=Number(t.naturalHeight||t.height);this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}else{const e=this.gl.canvas.width,n=this.gl.canvas.height;this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,e,n,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}}}var pd=function(t,e,n,i,r){let o;switch(t){case"frame":o=new hd(e,n,i,r);break;case"pixel":o=new fd(e,n,i,r);break;default:throw new Error(`cant recognize type ${t}`)}return o};class md{constructor(t){return this.gl=t.gl,this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(20).keys()),this.activeTextures=t.activeTextures instanceof Set?t.activeTextures:new Set,{createTexture:this.createTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),refreshTextureObjects:this.refreshTextureObjects.bind(this),refreshActiveTextures:this.refreshActiveTextures.bind(this)}}getTextureObject(){return this.textureObjectPool.pop()||{object:this.gl.createTexture(),needRefresh:!0}}getTextureUnit(){const t=this.textureUnitsPool.values(),e=Math.min.apply(null,[...t]);return this.textureUnitsPool.delete(e),e}createTexture(t){const e=t&&t.type||{},n=this.gl.TEXTURE_2D,i=this.getTextureUnit(),r=this.getTextureObject(),o=pd(e,i,n,r,{gl:this.gl});return this.activeTextures.add(o),o}releaseTexture(t){this.textureUnitsPool.has(t.getUnit())||(this.textureObjectPool.push({object:t.getObject(),needRefresh:!1}),this.textureUnitsPool.add(t.getUnit())),this.activeTextures.delete(t)}refreshTextureObjects(){this.textureObjectPool.forEach((t=>{t.needRefresh=!0}))}refreshActiveTextures(){const t=new Set;this.activeTextures.forEach((e=>{if(!e||"function"!=typeof e.getUnit)return;t.add(e.getUnit());const n={object:this.gl.createTexture(),needRefresh:!0};e.gl=this.gl,e.textureObjectInfo=n,e.textureObject=n.object,e.__hasAllocated=!1,e.__useSubImage=void 0,e.actualWidth=null,e.actualHeight=null,"function"==typeof e.setParameters&&e.setParameters()})),this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(20).keys()),t.forEach((t=>{this.textureUnitsPool.delete(t)}))}}const vd=Yu.VIDEO_SOURCE_PREFIX,gd=Yu.TEXTURE_SOURCE_PREFIX,yd=Yu.PREVIOUS_OUTPUT_PREFIX,bd=Yu.SAVED_FRAME_PREFIX;function kd(t,e,n){t.set(`${vd}${n}`,e)}function xd(t,e,n){t.set(`${yd}${n}`,e)}function wd(t,e,n){t.set(`${bd}${n}`,e)}class _d{constructor(t){return this.gl=t.gl,this.glSource=t.glSource,this.textureManager=t.textureManager,this.capturedFramesManager=t.capturedFramesManager,{setVideoSources:this.setVideoSources.bind(this),setTextureSource:this.setTextureSource.bind(this),getInput:this.getInput.bind(this),getPrevOutput:this.getPrevOutput.bind(this),setOutputs:this.setOutputs.bind(this),disposeTextures:this.disposeTextures.bind(this),disposeAllStore:this.disposeAllStore.bind(this)}}setVideoSources(t){for(const[e,n]of Object.entries(this.capturedFramesManager.getCurrentFrames()))kd(t,n,e),xd(t,n,e);for(const[e,n]of Object.entries(this.capturedFramesManager.getSavedFrames()))wd(t,n,e)}setTextureSource(t,e,n){t.set(`${gd}${n}`,e)}getInput(t,e){return t.get(e)}getPrevOutput(t,e){return e=Number.isInteger(e)?e:0,t.get(`${yd}${e}`)}setOutputs(t,e=[],n=[]){if(Array.isArray(n)||(n=[n]),e.length>n.length)throw new Error(`output ids ${e.length} is bigger then supplied outputs ${n.length}`);n.forEach(((e,n)=>{xd(t,e,n)})),e.forEach(((e,i)=>{t.set(e,n[i])}))}disposeTextures(t,e){const n=e.getUnit();t.forEach((t=>{const e=t.getUnit();this.capturedFramesManager.isReservedUnit(e)||n===e||this.textureManager.releaseTexture(t)}))}disposeAllStore(t){const e=new Set;Object.values(t.get()).forEach((t=>{const n=t.getUnit();this.capturedFramesManager.isReservedUnit(n)||e.has(n)||t.isStatic||(this.textureManager.releaseTexture(t),e.add(n))}))}}class Td{constructor(t){this.context=t}bind(){throw new Error("impl in concrete")}}let Id=100,Ed=100;function Sd(t,e){Id=t,Ed=e}let Ad=class extends Td{bind(t){var e,n;this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,null);const i=null===(e=this.context.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,r=null===(n=this.context.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;return Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0&&(this.context.gl.viewport(0,0,i,r),Sd(i,r)),t}},Nd=class extends Td{bind(t){Array.isArray(t)||(t=[t]),this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,this.context.frameBufferObject);const e=this.context.textureManager.createTexture({type:"pixel"}),n=this.context.gl.COLOR_ATTACHMENT0;if(this.context.gl.framebufferTexture2D(this.context.gl.FRAMEBUFFER,n,this.context.gl.TEXTURE_2D,e.textureObject,0),this.context.gl.clear(this.context.gl.COLOR_BUFFER_BIT),!1!==this.context.useCanvasSizedFilterTargets){var i,r;const t=null===(i=this.context.gl)||void 0===i||null===(i=i.canvas)||void 0===i?void 0:i.width,n=null===(r=this.context.gl)||void 0===r||null===(r=r.canvas)||void 0===r?void 0:r.height;Number.isFinite(t)&&t>0&&e.setWidth(t),Number.isFinite(n)&&n>0&&e.setHeight(n);const o=e.textureObjectInfo,s=null==o?void 0:o.allocatedWidth,a=null==o?void 0:o.allocatedHeight;Number.isFinite(t)&&Number.isFinite(n)&&(s!==t||a!==n)&&"function"==typeof e.fill&&e.fill(null)}else t[0]&&(e.setHeight(t[0].getHeight()),e.setWidth(t[0].getWidth()));return e}};class Md{constructor(t){this.gl=t.gl,this.textureManager=t.textureManager,this.useCanvasSizedFilterTargets=t.useCanvasSizedFilterTargets,this.bufferIndex=0,this.frameBufferObjectsPool=[this.gl.createFramebuffer(),this.gl.createFramebuffer(),this.gl.createFramebuffer()]}getFrameBufferObject(){const t=this.frameBufferObjectsPool[this.bufferIndex];return this.bufferIndex=this.bufferIndex++%this.frameBufferObjectsPool.length,t}create(t){let e;return e=t===Yu.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS?new Ad({gl:this.gl}):new Nd({gl:this.gl,textureManager:this.textureManager,frameBufferObject:this.getFrameBufferObject(),useCanvasSizedFilterTargets:this.useCanvasSizedFilterTargets}),e}}function Fd(t,e,n){const i=e===t.VERTEX_SHADER?"vertex":"fragment";var r;r=t,Boolean(r)&&("undefined"!=typeof WebGL2RenderingContext&&r instanceof WebGL2RenderingContext||"function"==typeof r.createVertexArray)&&(n=function(t="",e){if("string"!=typeof t||!t||function(t=""){return"string"==typeof t&&t.includes("#version 300 es")}(t))return t;let n=t;if("vertex"===e&&(n=n.replace(/\battribute\b/g,"in"),n=n.replace(/\bvarying\b/g,"out")),"fragment"===e&&(n=n.replace(/\bvarying\b/g,"in"),n=n.replace(/\bgl_FragColor\b/g,"fragColor")),n=n.replace(/\btexture2D\b/g,"texture"),n=`#version 300 es\n${n}`,"fragment"===e&&n.includes("fragColor")&&!/\bout\s+vec4\s+fragColor\s*;/.test(n)){const t=n.split("\n");let e=1;for(let n=1;n<t.length;n+=1)if(t[n].trim().startsWith("precision ")){e=n+1;break}t.splice(e,0,"out vec4 fragColor;"),n=t.join("\n")}return n}(n,i));const o=t.createShader(e);if(!o)throw new Error(`Failed to create ${i} shader`);if(t.shaderSource(o,n),t.compileShader(o),t.getShaderParameter(o,t.COMPILE_STATUS))return o;const s=t.getShaderInfoLog(o);throw t.deleteShader(o),new Error(s)}var Od=function(t,e){return Fd(t,t.VERTEX_SHADER,e)},Cd=function(t,e){return Fd(t,t.FRAGMENT_SHADER,e)};const Pd={position_3d:0,texture_coordinate_2d:1};var Dd=function(t,e,n){const i=t.createProgram();if(t.attachShader(i,e),t.attachShader(i,n),Object.entries(Pd).forEach((([e,n])=>{t.bindAttribLocation(i,n,e)})),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS))return i;const r=t.getProgramInfoLog(i);throw t.deleteProgram(i),new Error(r)},Rd=[-1,-1,1,1,-1,1,-1,1,1,1,1,1],Ld=[0,1,2,2,1,3],Bd=[0,0,1,0,0,1,1,1];const zd=96,Wd=[new Float32Array(new ArrayBuffer(zd)),new Float32Array(new ArrayBuffer(zd)),new Float32Array(new ArrayBuffer(zd)),new Float32Array(new ArrayBuffer(zd)),new Float32Array(new ArrayBuffer(zd)),new Float32Array(new ArrayBuffer(zd))],Ud=[new Int16Array(6),new Int16Array(6),new Int16Array(6)];class jd{constructor(t,e,n){return this.gl=n.gl,this.program=n.program,this.bindPoint=e,this.location=this.gl.getAttribLocation(this.program,t),this.buffer=this.gl.createBuffer(),this.floatBufferCounter=0,this.unit16BufferCounter=0,{fillBuffer:this.fillBuffer.bind(this),bindBuffer:this.bindBuffer.bind(this),setPointer:this.setPointer.bind(this),dispose:this.dispose.bind(this)}}enable(){this.gl.enableVertexAttribArray(this.location)}bindBuffer(){this.gl.bindBuffer(this.bindPoint,this.buffer)}getBuffer(){let t;switch(this.bindPoint){case this.gl.ARRAY_BUFFER:t=Wd[this.floatBufferCounter],this.floatBufferCounter=this.floatBufferCounter++%Wd.length;break;case this.gl.ELEMENT_ARRAY_BUFFER:t=Ud[this.unit16BufferCounter],this.unit16BufferCounter=this.unit16BufferCounter++%Ud.length;break;default:throw new Error("cant get buffer for this bind point: ",this.bindPoint)}return t}fillBuffer(t){this.bindBuffer();const e=this.getBuffer();e.set(t,0),this.gl.bufferData(this.bindPoint,e,this.gl.STATIC_DRAW)}getPointerData(){throw new Error("you should impl this function")}setPointer(){this.bindBuffer(),this.enable();const t=this.getPointerData();this.gl.vertexAttribPointer(this.location,t.size,t.type,t.normalize,t.stride,t.offset)}dispose(){this.gl.deleteBuffer(this.buffer)}}const $d={position_3d:class extends jd{getPointerData(){return{size:3,type:this.gl.FLOAT,normalize:!1,stride:0,offset:0}}},position_indexes:class extends jd{setPointer(){}getPointerData(){}enable(){}},texture_coordinate_2d:class extends jd{getPointerData(){return{size:2,type:this.gl.FLOAT,normalize:!0,stride:0,offset:0}}}};var qd=function(t,e,n){const i=$d[t];if(!i)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys($d)}`);return new i(t,e,n)};class Vd{constructor(t,e){this.gl=e.gl,this.program=e.program,this.location=this.gl.getUniformLocation(this.program,t)}compute(){return this}set(){return this}}class Gd extends Vd{set(t){this.gl.uniform1fv(this.location,t)}}class Hd extends Vd{set(t){t&&(t.beforeUse(),this.gl.uniform1i(this.location,t.getUnit()))}}const Kd="first_texture_dimensions",Xd="viewport_dimensions",Yd="time",Qd={RUNTIME_OPTIONS:"runtimeOptions[0]",STATIC_OPTIONS:"staticOptions[0]",FIRST_TEXTURE:"first_texture",SECOND_TEXTURE:"second_texture",FIRST_MATRIX:"first_mat4"},Jd={[Qd.FIRST_TEXTURE]:Hd,[Qd.SECOND_TEXTURE]:Hd,[Qd.FIRST_MATRIX]:class extends Vd{set(t){this.gl.uniformMatrix4fv(this.location,!1,t)}},[Qd.STATIC_OPTIONS]:Gd,[Qd.RUNTIME_OPTIONS]:Gd};var Zd=function(t,e){const n=Jd[t];if(!n)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(Jd)}`);return new n(t,e)},th=function(t,e){let n=(Date.now()-t||0)/(e||1);return n=Number.parseFloat(n).toFixed(7),n=Math.min(1,n),n};const eh="position_3d",nh="position_indexes",ih="texture_coordinate_2d";class rh{constructor(t,e,n,i){this.type=t,this.gl=i.gl,this.frameBuffer=i.frameBufferFactory.create(t),this.rebindAttributesOnProgramSwitch=!1!==i.rebindAttributesOnProgramSwitch,this.vertexShader=Od(this.gl,e.vertex),this.fragmentShader=Cd(this.gl,e.fragment),this.program=Dd(this.gl,this.vertexShader,this.fragmentShader);const r={gl:this.gl,program:this.program};this.attributes=function(t,e){const n={};return t=t||[],(t=[{id:eh,bindPoint:e.gl.ARRAY_BUFFER},{id:nh,bindPoint:e.gl.ELEMENT_ARRAY_BUFFER},{id:ih,bindPoint:e.gl.ARRAY_BUFFER}].concat(t)).forEach((t=>{const i=t.id;n[i]=qd(i,t.bindPoint,e)})),n}(n.attributes,r),this.uniforms=function(t,e){const n={};return(t=t||[]).forEach((t=>{const i=t.id;n[i]=Zd(i,e)})),n}(n.uniforms,r),this.gl.useProgram(this.program),i.__handleAttributesInitedOnce||(this.handleAttributes(),i.__handleAttributesInitedOnce=!0),this.handleStaticUniforms(i.options)}static getFilterType(){throw new Error("impl in concrete class")}static getInputsCount(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getInitialOptions(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getUniformInfo(t){let e=[{id:Qd.RUNTIME_OPTIONS},{id:Qd.STATIC_OPTIONS}];return(t.getUniformList||rh.getUniformList)().forEach((t=>{Object.values(Qd).includes(t)&&e.push({id:t})})),e}handleRuntimeUniforms(t,e){const{inputTextures:n,viewportDimensions:i}=t;let r=Array.isArray(n)?n:[n],o=[];(this.constructor.getUniformList||rh.getUniformList)().forEach((t=>{switch(t){case Qd.FIRST_TEXTURE:this.uniforms[Qd.FIRST_TEXTURE].set(r[0]);break;case Qd.SECOND_TEXTURE:this.uniforms[Qd.SECOND_TEXTURE].set(r[1]);break;case Kd:o=[...o,r[0].getWidth(),r[0].getHeight()];break;case Xd:o=[...o,i.width,i.height];break;case Yd:{const t=th(e.startTime,e.duration);o=[...o,t];break}}})),o.length>0&&this.uniforms[Qd.RUNTIME_OPTIONS].set(o)}static getUniformList(){return[Qd.FIRST_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(){}handleAttributes(){this.attributes[eh].fillBuffer(Rd),this.attributes[eh].setPointer(),this.attributes[nh].fillBuffer(Ld),this.attributes[ih].fillBuffer(Bd),this.attributes[ih].setPointer()}disposeAttributes(){Object.values(this.attributes).forEach((t=>{t.dispose()}))}render(t,e){const n=this.frameBuffer.bind(t);let i={width:Id,height:Ed};return this.gl.useProgram(this.program),this.rebindAttributesOnProgramSwitch&&this.gl.__shaderGraphLastProgram!==this.program&&(this.handleAttributes(),this.gl.__shaderGraphLastProgram=this.program),this.handleRuntimeUniforms({inputTextures:t,viewportDimensions:i},e),this.draw(),n}draw(){const t=this.gl.TRIANGLES,e=this.gl.UNSIGNED_SHORT;this.gl.drawElements(t,6,e,0)}updateStaticUniforms(t){this.gl.useProgram(this.program),this.handleStaticUniforms(t)}dispose(){this.gl.detachShader(this.program,this.vertexShader),this.gl.deleteShader(this.vertexShader),this.gl.detachShader(this.program,this.fragmentShader),this.gl.deleteShader(this.fragmentShader),this.gl.deleteProgram(this.program)}}class oh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(oh)};super(oh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // we need to flip y poisiton bacause webgl display the canvas\n // with 0,0 being the bottom left corner \n // insted of the traditional top left\n float flip_y_position = position_3d.y * (-1.0);\n vec4 normalize_poistion = vec4(position_3d.x, flip_y_position, position_3d.z, 1);\n \n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"__default"}static getInputsCount(){return 1}static getInitialOptions(){return{}}}var sh,ah="undefined"!=typeof Float32Array?Float32Array:Array;function lh(){var t=new ah(3);return ah!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function ch(t,e,n){var i=new ah(3);return i[0]=t,i[1]=e,i[2]=n,i}function uh(){var t=new ah(4);return ah!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}lh(),function(){var t;t=new ah(4),ah!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}(),lh(),ch(1,0,0),ch(0,1,0),uh(),uh(),sh=new ah(9),ah!=Float32Array&&(sh[1]=0,sh[2]=0,sh[3]=0,sh[5]=0,sh[6]=0,sh[7]=0),sh[0]=1,sh[4]=1,sh[8]=1;class dh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(dh)};super(dh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform mat4 first_mat4;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xy, 1, 1);\n\n gl_Position = first_mat4 * normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n // gl_FragColor = vec4(256,0,0,1);\n}"},e,t)}static getFilterType(){return"transform"}static getInputsCount(){return 1}static getInitialOptions(){return{translate:{x:0,y:0},scale:{x:1,y:1},rotate:0}}getOptionsDisplay(){return[{properties:["translate","x"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:dh.getInitialOptions().translate.x},{properties:["translate","y"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:dh.getInitialOptions().translate.y},{properties:["scale","x"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:dh.getInitialOptions().scale.x},{properties:["scale","y"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:dh.getInitialOptions().scale.y},{properties:["rotate"],type:"slider",minValue:-360,maxValue:360,step:1,initialValue:dh.getInitialOptions().rotate}]}static getUniformList(){return[Qd.FIRST_TEXTURE,Qd.FIRST_MATRIX]}handleStaticUniforms(t){if(!t||!t.translate||!t.scale)throw new Error(`bad options object for Transform filter, check ${t}`);const e=Number.parseFloat(t.translate.x).toFixed(7),n=-1*Number.parseFloat(t.translate.y).toFixed(7),i=Number.parseFloat(t.scale.x).toFixed(7),r=Number.parseFloat(t.scale.y).toFixed(7),o=t.rotate||0;var s;this.transformMatrix=function(t,e,n,i){var r=e[0],o=e[1],s=e[2],a=e[3],l=r+r,c=o+o,u=s+s,d=r*l,h=r*c,f=r*u,p=o*c,m=o*u,v=s*u,g=a*l,y=a*c,b=a*u,k=i[0],x=i[1],w=i[2];return t[0]=(1-(p+v))*k,t[1]=(h+b)*k,t[2]=(f-y)*k,t[3]=0,t[4]=(h-b)*x,t[5]=(1-(d+v))*x,t[6]=(m+g)*x,t[7]=0,t[8]=(f+y)*w,t[9]=(m-g)*w,t[10]=(1-(d+p))*w,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}((s=new ah(16),ah!=Float32Array&&(s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=0,s[12]=0,s[13]=0,s[14]=0),s[0]=1,s[5]=1,s[10]=1,s[15]=1,s),function(t,e,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"zyx",o=Math.PI/360;e*=o,i*=o,n*=o;var s=Math.sin(e),a=Math.cos(e),l=Math.sin(n),c=Math.cos(n),u=Math.sin(i),d=Math.cos(i);switch(r){case"xyz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"xzy":t[0]=s*c*d-a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d+s*l*u;break;case"yxz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;case"yzx":t[0]=s*c*d+a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d-s*l*u;break;case"zxy":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"zyx":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;default:throw new Error("Unknown angle order "+r)}return t}(uh(),0,0,o),ch(e,n,0),ch(i,r,1)),this.uniforms[Qd.FIRST_MATRIX].set(this.transformMatrix)}}class hh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(hh)};super(hh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[0];\n float pixel_width = 1.0 / texture_width;\n\n \n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2(pixel_width * current_i, 0.0); \n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"horizontalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Qd.FIRST_TEXTURE,Kd]}}class fh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(fh)};super(fh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[1];\n float pixel_height = 1.0 / texture_width;\n\n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2( 0.0, pixel_height * current_i);\n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"verticalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Qd.FIRST_TEXTURE,Kd]}}class ph extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(ph)};super(ph.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[3];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nconst float Depth = 3.;\nconst float Samples = 8.;\nfloat OffsetDist = staticOptions[0];\n\nvec2 srcDims = vec2(runtimeOptions[0], runtimeOptions[1]);\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\nvec2 iResolution = vpDims;\n\n\n#define TAU 6.28318530718\n\nvec4 RadialBlur(vec2 fragCoord, float radius) {\n if (radius <= 0.) {\n return texture2D(first_texture, fragCoord/iResolution.xy);\n }\n\n vec2 offset;\n float angle = 0.;\n vec4 color = vec4(0.);\n\n for(float angle = 0.; angle < TAU; angle += (TAU/Samples)) {\n offset = vec2(cos(angle), sin(angle)) * radius;\n color += texture2D(first_texture, (fragCoord + offset)/iResolution.xy);\n }\n\n return color/Samples;\n\n}\n\nvec4 FastBlur(vec2 fragCoord) {\n\n vec4 color;\n vec2 offset;\n float fib = 2.;\n float fibTotal = 0.;\n\n for(float i = 1.; i <= Depth; ++i) {\n fib += i;\n color += RadialBlur(fragCoord, i * OffsetDist)/ fib;\n fibTotal += 1./fib;\n }\n\n return color/fibTotal;\n\n}\n\n// based on https://www.shadertoy.com/view/3ljBDd\nvoid main() {\n// vec2 fragCoords = (vec2(current_texture_coordinate_2d) + 1.0) / 2.0 * vpDims;\n vec2 fragCoords = vec2(current_texture_coordinate_2d) * vpDims;\n gl_FragColor = FastBlur(fragCoords);\n}"},e,t)}static getFilterType(){return"fastBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Qd.FIRST_TEXTURE,Kd,Xd]}handleStaticUniforms(t){var e;const n=(null!==(e=Number.parseFloat(t.offsetDist))&&void 0!==e?e:4).toFixed(3);this.uniforms[Qd.STATIC_OPTIONS].set([n])}}class mh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(mh)};super(mh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[2];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n\n// A simple directional blur that doesn't brighten the image, based on https://www.shadertoy.com/view/WdSXWD\n// and https://www.shadertoy.com/view/NltSD4\n\nvec4 dirBlur() {\n float angle = staticOptions[0];\n float strength = staticOptions[1];\n if (strength == 0.0){\n return texture2D(first_texture, current_texture_coordinate_2d);\n }\n\n vec2 uv = current_texture_coordinate_2d;\n\n float r = radians(angle);\n vec2 direction = vec2(sin(r), cos(r));\n\n vec2 strengthDirection = strength * direction;\n vec3 acc = vec3(0);\n for(float i = -1.0; i <= 1.0; i += (2.0 / 50.0)) {\n acc += texture2D(first_texture, uv - vec2(strengthDirection.x * i, strengthDirection.y * i)).rgb * (2.0 / 50.0) * .5;\n }\n\n return vec4(acc, 1.0);\n\n}\n\nvoid main() {\n gl_FragColor = dirBlur();\n}"},e,t)}static getFilterType(){return"directionalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Qd.FIRST_TEXTURE,Kd,Xd]}handleStaticUniforms(t){var e,n;const i=(null!==(e=Number.parseFloat(t.angle))&&void 0!==e?e:90).toFixed(3),r=(null!==(n=Number.parseFloat(t.strength))&&void 0!==n?n:.1).toFixed(3);this.uniforms[Qd.STATIC_OPTIONS].set([i,r])}}class vh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(vh)};super(vh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[1];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n float opacity = texture.w - (1.0 - staticOptions[0]);\n gl_FragColor = vec4((texture.xyz) , opacity);\n}"},e,t)}static getFilterType(){return"opacity"}static getInputsCount(){return 1}static getInitialOptions(){return{power:1}}getOptionsDisplay(){return[{properties:["power"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){const e=Number.parseFloat(t.power).toFixed(7);this.uniforms[Qd.STATIC_OPTIONS].set([e])}}class gh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(gh)};super(gh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nuniform float staticOptions[7];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 point, vec2 center, vec2 area, float radius) {\n return length(max(abs(point - center) - area + radius, 0.0)) - radius;\n}\n\nfloat boxSDF(vec2 point, vec2 center, vec2 area){\n vec2 d = abs(point - center) - area;\n return length(max(d,vec2(0)));\n}\n\n\nvoid main() {\n float type = staticOptions[0];\n vec2 aspectRatio = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n\n\n vec2 center = vec2(staticOptions[1], staticOptions[2]) * aspectRatio;\n vec2 area = max(vec2(staticOptions[3], staticOptions[4]) * aspectRatio, 0.0); \n float radius = staticOptions[5];\n\n vec2 SDF_PositionCoordinate2d = vec2(\n current_position_coordinate_2d.x,\n current_position_coordinate_2d.y * -1.0\n ) * aspectRatio;\n\n vec4 color1 = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color2 = texture2D(second_texture, current_texture_coordinate_2d);\n\n float dist;\n vec4 color;\n if(type == 0.0){\n dist = boxSDF(SDF_PositionCoordinate2d, center, area);\n color = (dist > 0.0) ? color2: color1;\n } else {\n dist = roundedBoxSDF(SDF_PositionCoordinate2d, center, area, radius);\n color = (dist > 0.0) ? color2: color1;\n color = mix( color, color2, 1.0-smoothstep(0.0,0.0025,abs(dist)));\n }\n \n gl_FragColor = color;\n}"},e,t)}static getFilterType(){return"shapeCompositeMask"}static getInputsCount(){return 2}static getInitialOptions(){return{type:"box",center:{x:0,y:0},area:{width:0,height:0},radius:.01,edgeSoftness:0}}getOptionsDisplay(){return[{properties:["center","x"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["center","y"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["area","width"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["area","height"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["radius"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["edgeSoftness"],type:"slider",minValue:-2,maxValue:2,step:.001}]}static getUniformList(){return[Qd.FIRST_TEXTURE,Kd,Qd.SECOND_TEXTURE]}handleStaticUniforms(t){let e;switch(t.type){case"box":e=0;break;case"rounded":e=1;break;default:throw new Error("cant recognize shape composite mask type")}const n=Number.parseFloat(t.center.x).toFixed(7);let i=Number.parseFloat(t.center.y).toFixed(7);i+=0;const r=Number.parseFloat(t.area.width).toFixed(7),o=Number.parseFloat(t.area.height).toFixed(7),s=Number.parseFloat(t.radius).toFixed(7),a=Number.parseFloat(t.edgeSoftness).toFixed(7);this.uniforms[Qd.STATIC_OPTIONS].set([e,n,i,r,o,s,a])}}class yh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(yh)};super(yh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 fgColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 bgColor = texture2D(second_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(\n mix(bgColor.xyz, fgColor.xyz, fgColor.w),\n 1.0\n );\n // vec4 fgColor = texture2D(textures[1], current_texture_coordinate_2d);\n // if(fgColor.w > 0.0){\n // gl_FragColor = vec4(1.0,0,0,1);\n // }else{\n // gl_FragColor = vec4(1.0,1.0,0,1);\n // }\n \n \n}"},e,t)}static getFilterType(){return"shapeComposite"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Qd.FIRST_TEXTURE,Qd.SECOND_TEXTURE]}}class bh extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(bh)};super(bh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // Look it up in the LUT\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n\n mediump float blueColor = textureColor.b * 63.0;\n\n mediump vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n\n mediump vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n\n highp vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n\n highp vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n lowp vec4 newColor1 = texture2D(second_texture, texPos1);\n lowp vec4 newColor2 = texture2D(second_texture, texPos2);\n\n lowp vec4 color = mix(newColor1, newColor2, fract(blueColor));\n\n gl_FragColor = color;\n\n // debug\n// if (current_texture_coordinate_2d.x < 0.5) {\n// // Left half: show original\n// gl_FragColor = textureColor;\n// } else {\n// gl_FragColor = color;\n// }\n}\n"},e,t)}static getFilterType(){return"lut"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Qd.FIRST_TEXTURE,Qd.SECOND_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(t){const e=Number.parseFloat(t.lutSize).toFixed(1);this.uniforms[Qd.STATIC_OPTIONS].set([e])}}var kh="attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",xh='precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 256 * 4 length array with values for the master, r, g and b curve respectively\n// Temporarily changed length to 256 to avoid the following error on some machines:\n// "Implementation limit of 4096 (e.g., number of built-in plus user defined active uniforms components) exceeded, fragment shader uses 4100 total uniforms."\nuniform float staticOptions[256];\n\n\n// implementation of round (doesn\'t exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 256; k++) {\n if (k == round(pixelValue * 255.0)){\n v = float(staticOptions[k]) / 255.0;\n }\n }\n return v;\n}\n\nvec3 masterCurve(vec4 color){\n float r = getCurveValue(color.r);\n float g = getCurveValue(color.g);\n float b = getCurveValue(color.b);\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.g) * 256){\n// g = float(staticOptions[k]) / 256.0;\n// }\n// }\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.b) * 256){\n// b = float(staticOptions[k]) / 256.0;\n// }\n// }\n return vec3(r,g,b);\n}\n\n//vec3 redCurve(vec3 color){\n// int offset = 256;\n// return vec3(staticOptions[int(int(color.r) + offset)], color.g, color.b);\n//}\n//\n//vec3 greenCurve(vec3 color){\n// int offset = 256 * 2;\n// return vec3(color.r, staticOptions[int(int(color.g) + offset)], color.b);\n//}\n//\n//vec3 blueCurve(vec3 color){\n// int offset = 256 * 3;\n// return vec3(color.r, color.g, staticOptions[int(int(color.b) + offset)]);\n//}\n\nvoid main() {\n// vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n// vec3 afterMaster = masterCurve(textureColor);\n// vec3 afterRed = redCurve(afterMaster);\n// vec3 afterGreen = greenCurve(afterRed);\n// vec3 afterBlue = blueCurve(afterGreen);\n// vec4 finalColor = vec4(afterBlue, textureColor.a);\n\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 afterMaster = masterCurve(textureColor);\n vec4 finalColor = vec4(afterMaster, textureColor.a);\n\n gl_FragColor = finalColor;\n}\n';const{abs:wh,cos:_h,sin:Th,acos:Ih,atan2:Eh,sqrt:Sh,pow:Ah}=Math;function Nh(t){return t<0?-Ah(-t,1/3):Ah(t,1/3)}const Mh=Math.PI,Fh=2*Mh,Oh=Mh/2,Ch=Number.MAX_SAFE_INTEGER||9007199254740991,Ph=Number.MIN_SAFE_INTEGER||-9007199254740991,Dh={x:0,y:0,z:0},Rh={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(t,e){const n=e(t);let i=n.x*n.x+n.y*n.y;return void 0!==n.z&&(i+=n.z*n.z),Sh(i)},compute:function(t,e,n){if(0===t)return e[0].t=0,e[0];const i=e.length-1;if(1===t)return e[i].t=1,e[i];const r=1-t;let o=e;if(0===i)return e[0].t=t,e[0];if(1===i){const e={x:r*o[0].x+t*o[1].x,y:r*o[0].y+t*o[1].y,t:t};return n&&(e.z=r*o[0].z+t*o[1].z),e}if(i<4){let e,s,a,l=r*r,c=t*t,u=0;2===i?(o=[o[0],o[1],o[2],Dh],e=l,s=r*t*2,a=c):3===i&&(e=l*r,s=l*t*3,a=r*c*3,u=t*c);const d={x:e*o[0].x+s*o[1].x+a*o[2].x+u*o[3].x,y:e*o[0].y+s*o[1].y+a*o[2].y+u*o[3].y,t:t};return n&&(d.z=e*o[0].z+s*o[1].z+a*o[2].z+u*o[3].z),d}const s=JSON.parse(JSON.stringify(e));for(;s.length>1;){for(let e=0;e<s.length-1;e++)s[e]={x:s[e].x+(s[e+1].x-s[e].x)*t,y:s[e].y+(s[e+1].y-s[e].y)*t},void 0!==s[e].z&&(s[e].z=s[e].z+(s[e+1].z-s[e].z)*t);s.splice(s.length-1,1)}return s[0].t=t,s[0]},computeWithRatios:function(t,e,n,i){const r=1-t,o=n,s=e;let a,l=o[0],c=o[1],u=o[2],d=o[3];return l*=r,c*=t,2===s.length?(a=l+c,{x:(l*s[0].x+c*s[1].x)/a,y:(l*s[0].y+c*s[1].y)/a,z:!!i&&(l*s[0].z+c*s[1].z)/a,t:t}):(l*=r,c*=2*r,u*=t*t,3===s.length?(a=l+c+u,{x:(l*s[0].x+c*s[1].x+u*s[2].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z)/a,t:t}):(l*=r,c*=1.5*r,u*=3*r,d*=t*t*t,4===s.length?(a=l+c+u+d,{x:(l*s[0].x+c*s[1].x+u*s[2].x+d*s[3].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y+d*s[3].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z+d*s[3].z)/a,t:t}):void 0))},derive:function(t,e){const n=[];for(let i=t,r=i.length,o=r-1;r>1;r--,o--){const t=[];for(let n,r=0;r<o;r++)n={x:o*(i[r+1].x-i[r].x),y:o*(i[r+1].y-i[r].y)},e&&(n.z=o*(i[r+1].z-i[r].z)),t.push(n);n.push(t),i=t}return n},between:function(t,e,n){return e<=t&&t<=n||Rh.approximately(t,e)||Rh.approximately(t,n)},approximately:function(t,e,n){return wh(t-e)<=(n||1e-6)},length:function(t){const e=Rh.Tvalues.length;let n=0;for(let i,r=0;r<e;r++)i=.5*Rh.Tvalues[r]+.5,n+=Rh.Cvalues[r]*Rh.arcfn(i,t);return.5*n},map:function(t,e,n,i,r){return i+(t-e)/(n-e)*(r-i)},lerp:function(t,e,n){const i={x:e.x+t*(n.x-e.x),y:e.y+t*(n.y-e.y)};return void 0!==e.z&&void 0!==n.z&&(i.z=e.z+t*(n.z-e.z)),i},pointToString:function(t){let e=t.x+"/"+t.y;return void 0!==t.z&&(e+="/"+t.z),e},pointsToString:function(t){return"["+t.map(Rh.pointToString).join(", ")+"]"},copy:function(t){return JSON.parse(JSON.stringify(t))},angle:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-t.x,s=n.y-t.y;return Eh(i*s-r*o,i*o+r*s)},round:function(t,e){const n=""+t,i=n.indexOf(".");return parseFloat(n.substring(0,i+1+e))},dist:function(t,e){const n=t.x-e.x,i=t.y-e.y;return Sh(n*n+i*i)},closest:function(t,e){let n,i,r=Ah(2,63);return t.forEach((function(t,o){i=Rh.dist(e,t),i<r&&(r=i,n=o)})),{mdist:r,mpos:n}},abcratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=Ah(t,e)+Ah(1-t,e);return wh((n-1)/n)},projectionratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=Ah(1-t,e);return n/(Ah(t,e)+n)},lli8:function(t,e,n,i,r,o,s,a){const l=(t-n)*(o-a)-(e-i)*(r-s);return 0!=l&&{x:((t*i-e*n)*(r-s)-(t-n)*(r*a-o*s))/l,y:((t*i-e*n)*(o-a)-(e-i)*(r*a-o*s))/l}},lli4:function(t,e,n,i){const r=t.x,o=t.y,s=e.x,a=e.y,l=n.x,c=n.y,u=i.x,d=i.y;return Rh.lli8(r,o,s,a,l,c,u,d)},lli:function(t,e){return Rh.lli4(t,t.c,e,e.c)},makeline:function(t,e){return new Gh(t.x,t.y,(t.x+e.x)/2,(t.y+e.y)/2,e.x,e.y)},findbbox:function(t){let e=Ch,n=Ch,i=Ph,r=Ph;return t.forEach((function(t){const o=t.bbox();e>o.x.min&&(e=o.x.min),n>o.y.min&&(n=o.y.min),i<o.x.max&&(i=o.x.max),r<o.y.max&&(r=o.y.max)})),{x:{min:e,mid:(e+i)/2,max:i,size:i-e},y:{min:n,mid:(n+r)/2,max:r,size:r-n}}},shapeintersections:function(t,e,n,i,r){if(!Rh.bboxoverlap(e,i))return[];const o=[],s=[t.startcap,t.forward,t.back,t.endcap],a=[n.startcap,n.forward,n.back,n.endcap];return s.forEach((function(e){e.virtual||a.forEach((function(i){if(i.virtual)return;const s=e.intersects(i,r);s.length>0&&(s.c1=e,s.c2=i,s.s1=t,s.s2=n,o.push(s))}))})),o},makeshape:function(t,e,n){const i=e.points.length,r=t.points.length,o=Rh.makeline(e.points[i-1],t.points[0]),s=Rh.makeline(t.points[r-1],e.points[0]),a={startcap:o,forward:t,back:e,endcap:s,bbox:Rh.findbbox([o,t,e,s]),intersections:function(t){return Rh.shapeintersections(a,a.bbox,t,t.bbox,n)}};return a},getminmax:function(t,e,n){if(!n)return{min:0,max:0};let i,r,o=Ch,s=Ph;-1===n.indexOf(0)&&(n=[0].concat(n)),-1===n.indexOf(1)&&n.push(1);for(let a=0,l=n.length;a<l;a++)i=n[a],r=t.get(i),r[e]<o&&(o=r[e]),r[e]>s&&(s=r[e]);return{min:o,mid:(o+s)/2,max:s,size:s-o}},align:function(t,e){const n=e.p1.x,i=e.p1.y,r=-Eh(e.p2.y-i,e.p2.x-n);return t.map((function(t){return{x:(t.x-n)*_h(r)-(t.y-i)*Th(r),y:(t.x-n)*Th(r)+(t.y-i)*_h(r)}}))},roots:function(t,e){e=e||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=t.length-1,i=Rh.align(t,e),r=function(t){return 0<=t&&t<=1};if(2===n){const t=i[0].y,e=i[1].y,n=i[2].y,o=t-2*e+n;if(0!==o){const i=-Sh(e*e-t*n),s=-t+e;return[-(i+s)/o,-(-i+s)/o].filter(r)}return e!==n&&0===o?[(2*e-n)/(2*e-2*n)].filter(r):[]}const o=i[0].y,s=i[1].y,a=i[2].y;let l=3*s-o-3*a+i[3].y,c=3*o-6*s+3*a,u=-3*o+3*s,d=o;if(Rh.approximately(l,0)){if(Rh.approximately(c,0))return Rh.approximately(u,0)?[]:[-d/u].filter(r);const t=Sh(u*u-4*c*d),e=2*c;return[(t-u)/e,(-u-t)/e].filter(r)}c/=l,u/=l,d/=l;const h=(3*u-c*c)/3,f=h/3,p=(2*c*c*c-9*c*u+27*d)/27,m=p/2,v=m*m+f*f*f;let g,y,b,k,x;if(v<0){const t=-h/3,e=Sh(t*t*t),n=-p/(2*e),i=Ih(n<-1?-1:n>1?1:n),o=2*Nh(e);return b=o*_h(i/3)-c/3,k=o*_h((i+Fh)/3)-c/3,x=o*_h((i+2*Fh)/3)-c/3,[b,k,x].filter(r)}if(0===v)return g=m<0?Nh(-m):-Nh(m),b=2*g-c/3,k=-g-c/3,[b,k].filter(r);{const t=Sh(v);return g=Nh(-m+t),y=Nh(m+t),[g-y-c/3].filter(r)}},droots:function(t){if(3===t.length){const e=t[0],n=t[1],i=t[2],r=e-2*n+i;if(0!==r){const t=-Sh(n*n-e*i),o=-e+n;return[-(t+o)/r,-(-t+o)/r]}return n!==i&&0===r?[(2*n-i)/(2*(n-i))]:[]}if(2===t.length){const e=t[0],n=t[1];return e!==n?[e/(e-n)]:[]}return[]},curvature:function(t,e,n,i,r){let o,s,a,l,c=0,u=0;const d=Rh.compute(t,e),h=Rh.compute(t,n),f=d.x*d.x+d.y*d.y;if(i?(o=Sh(Ah(d.y*h.z-h.y*d.z,2)+Ah(d.z*h.x-h.z*d.x,2)+Ah(d.x*h.y-h.x*d.y,2)),s=Ah(f+d.z*d.z,1.5)):(o=d.x*h.y-d.y*h.x,s=Ah(f,1.5)),0===o||0===s)return{k:0,r:0};if(c=o/s,u=s/o,!r){const r=Rh.curvature(t-.001,e,n,i,!0).k,o=Rh.curvature(t+.001,e,n,i,!0).k;l=(o-c+(c-r))/2,a=(wh(o-c)+wh(c-r))/2}return{k:c,r:u,dk:l,adk:a}},inflections:function(t){if(t.length<4)return[];const e=Rh.align(t,{p1:t[0],p2:t.slice(-1)[0]}),n=e[2].x*e[1].y,i=e[3].x*e[1].y,r=e[1].x*e[2].y,o=18*(-3*n+2*i+3*r-e[3].x*e[2].y),s=18*(3*n-i-3*r),a=18*(r-n);if(Rh.approximately(o,0)){if(!Rh.approximately(s,0)){let t=-a/s;if(0<=t&&t<=1)return[t]}return[]}const l=2*o;if(Rh.approximately(l,0))return[];const c=s*s-4*o*a;if(c<0)return[];const u=Math.sqrt(c);return[(u-s)/l,-(s+u)/l].filter((function(t){return 0<=t&&t<=1}))},bboxoverlap:function(t,e){const n=["x","y"],i=n.length;for(let r,o,s,a,l=0;l<i;l++)if(r=n[l],o=t[r].mid,s=e[r].mid,a=(t[r].size+e[r].size)/2,wh(o-s)>=a)return!1;return!0},expandbox:function(t,e){e.x.min<t.x.min&&(t.x.min=e.x.min),e.y.min<t.y.min&&(t.y.min=e.y.min),e.z&&e.z.min<t.z.min&&(t.z.min=e.z.min),e.x.max>t.x.max&&(t.x.max=e.x.max),e.y.max>t.y.max&&(t.y.max=e.y.max),e.z&&e.z.max>t.z.max&&(t.z.max=e.z.max),t.x.mid=(t.x.min+t.x.max)/2,t.y.mid=(t.y.min+t.y.max)/2,t.z&&(t.z.mid=(t.z.min+t.z.max)/2),t.x.size=t.x.max-t.x.min,t.y.size=t.y.max-t.y.min,t.z&&(t.z.size=t.z.max-t.z.min)},pairiteration:function(t,e,n){const i=t.bbox(),r=e.bbox(),o=1e5,s=n||.5;if(i.x.size+i.y.size<s&&r.x.size+r.y.size<s)return[(o*(t._t1+t._t2)/2|0)/o+"/"+(o*(e._t1+e._t2)/2|0)/o];let a=t.split(.5),l=e.split(.5),c=[{left:a.left,right:l.left},{left:a.left,right:l.right},{left:a.right,right:l.right},{left:a.right,right:l.left}];c=c.filter((function(t){return Rh.bboxoverlap(t.left.bbox(),t.right.bbox())}));let u=[];return 0===c.length||(c.forEach((function(t){u=u.concat(Rh.pairiteration(t.left,t.right,s))})),u=u.filter((function(t,e){return u.indexOf(t)===e}))),u},getccenter:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-e.x,s=n.y-e.y,a=i*_h(Oh)-r*Th(Oh),l=i*Th(Oh)+r*_h(Oh),c=o*_h(Oh)-s*Th(Oh),u=o*Th(Oh)+s*_h(Oh),d=(t.x+e.x)/2,h=(t.y+e.y)/2,f=(e.x+n.x)/2,p=(e.y+n.y)/2,m=d+a,v=h+l,g=f+c,y=p+u,b=Rh.lli8(d,h,m,v,f,p,g,y),k=Rh.dist(b,t);let x,w=Eh(t.y-b.y,t.x-b.x),_=Eh(e.y-b.y,e.x-b.x),T=Eh(n.y-b.y,n.x-b.x);return w<T?((w>_||_>T)&&(w+=Fh),w>T&&(x=T,T=w,w=x)):T<_&&_<w?(x=T,T=w,w=x):T+=Fh,b.s=w,b.e=T,b.r=k,b},numberSort:function(t,e){return t-e}};class Lh{constructor(t){this.curves=[],this._3d=!1,t&&(this.curves=t,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map((function(t){return Rh.pointsToString(t.points)})).join(", ")+"]"}addCurve(t){this.curves.push(t),this._3d=this._3d||t._3d}length(){return this.curves.map((function(t){return t.length()})).reduce((function(t,e){return t+e}))}curve(t){return this.curves[t]}bbox(){const t=this.curves;for(var e=t[0].bbox(),n=1;n<t.length;n++)Rh.expandbox(e,t[n].bbox());return e}offset(t){const e=[];return this.curves.forEach((function(n){e.push(...n.offset(t))})),new Lh(e)}}const{abs:Bh,min:zh,max:Wh,cos:Uh,sin:jh,acos:$h,sqrt:qh}=Math,Vh=Math.PI;let Gh=class e{constructor(t){let e=t&&t.forEach?t:Array.from(arguments).slice(),n=!1;if("object"==typeof e[0]){n=e.length;const t=[];e.forEach((function(e){["x","y","z"].forEach((function(n){void 0!==e[n]&&t.push(e[n])}))})),e=t}let i=!1;const r=e.length;if(n){if(n>4){if(1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(6!==r&&8!==r&&9!==r&&12!==r&&1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const o=this._3d=!i&&(9===r||12===r)||t&&t[0]&&void 0!==t[0].z,s=this.points=[];for(let t=0,n=o?3:2;t<r;t+=n){var a={x:e[t],y:e[t+1]};o&&(a.z=e[t+2]),s.push(a)}const l=this.order=s.length-1,c=this.dims=["x","y"];o&&c.push("z"),this.dimlen=c.length;const u=Rh.align(s,{p1:s[0],p2:s[l]}),d=Rh.dist(s[0],s[l]);this._linear=u.reduce(((t,e)=>t+Bh(e.y)),0)<d/50,this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(t,n,i,r){if(void 0===r&&(r=.5),0===r)return new e(n,n,i);if(1===r)return new e(t,n,n);const o=e.getABC(2,t,n,i,r);return new e(t,o.A,i)}static cubicFromPoints(t,n,i,r,o){void 0===r&&(r=.5);const s=e.getABC(3,t,n,i,r);void 0===o&&(o=Rh.dist(n,s.C));const a=o*(1-r)/r,l=Rh.dist(t,i),c=(i.x-t.x)/l,u=(i.y-t.y)/l,d=o*c,h=o*u,f=a*c,p=a*u,m=n.x-d,v=n.y-h,g=n.x+f,y=n.y+p,b=s.A,k=b.x+(m-b.x)/(1-r),x=b.y+(v-b.y)/(1-r),w=b.x+(g-b.x)/r,_=b.y+(y-b.y)/r,T={x:t.x+(k-t.x)/r,y:t.y+(x-t.y)/r},I={x:i.x+(w-i.x)/(1-r),y:i.y+(_-i.y)/(1-r)};return new e(t,T,I,i)}static getUtils(){return Rh}getUtils(){return e.getUtils()}static get PolyBezier(){return Lh}valueOf(){return this.toString()}toString(){return Rh.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const t=this.points,e=["M",t[0].x,t[0].y,2===this.order?"Q":"C"];for(let n=1,i=t.length;n<i;n++)e.push(t[n].x),e.push(t[n].y);return e.join(" ")}setRatios(t){if(t.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=t,this._lut=[]}verify(){const t=this.coordDigest();t!==this._print&&(this._print=t,this.update())}coordDigest(){return this.points.map((function(t,e){return""+e+t.x+t.y+(t.z?t.z:0)})).join("")}update(){this._lut=[],this.dpoints=Rh.derive(this.points,this._3d),this.computedirection()}computedirection(){const t=this.points,e=Rh.angle(t[0],t[this.order],t[1]);this.clockwise=e>0}length(){return Rh.length(this.derivative.bind(this))}static getABC(t=2,e,n,i,r=.5){const o=Rh.projectionratio(r,t),s=1-o,a={x:o*e.x+s*i.x,y:o*e.y+s*i.y},l=Rh.abcratio(r,t);return{A:{x:n.x+(n.x-a.x)/l,y:n.y+(n.y-a.y)/l},B:n,C:a,S:e,E:i}}getABC(t,n){n=n||this.get(t);let i=this.points[0],r=this.points[this.order];return e.getABC(this.order,i,n,r,t)}getLUT(t){if(this.verify(),t=t||100,this._lut.length===t+1)return this._lut;this._lut=[],t++,this._lut=[];for(let e,n,i=0;i<t;i++)n=i/(t-1),e=this.compute(n),e.t=n,this._lut.push(e);return this._lut}on(e,n){n=n||5;const i=this.getLUT(),r=[];for(let t,o=0,s=0;o<i.length;o++)t=i[o],Rh.dist(t,e)<n&&(r.push(t),s+=o/i.length);return!!r.length&&(t/=r.length)}project(t){const e=this.getLUT(),n=e.length-1,i=Rh.closest(e,t),r=i.mpos,o=(r-1)/n,s=(r+1)/n,a=.1/n;let l,c=i.mdist,u=o,d=u;c+=1;for(let e;u<s+a;u+=a)l=this.compute(u),e=Rh.dist(t,l),e<c&&(c=e,d=u);return d=d<0?0:d>1?1:d,l=this.compute(d),l.t=d,l.d=c,l}get(t){return this.compute(t)}point(t){return this.points[t]}compute(t){return this.ratios?Rh.computeWithRatios(t,this.points,this.ratios,this._3d):Rh.compute(t,this.points,this._3d,this.ratios)}raise(){const t=this.points,n=[t[0]],i=t.length;for(let e,r,o=1;o<i;o++)e=t[o],r=t[o-1],n[o]={x:(i-o)/i*e.x+o/i*r.x,y:(i-o)/i*e.y+o/i*r.y};return n[i]=t[i-1],new e(n)}derivative(t){return Rh.compute(t,this.dpoints[0],this._3d)}dderivative(t){return Rh.compute(t,this.dpoints[1],this._3d)}align(){let t=this.points;return new e(Rh.align(t,{p1:t[0],p2:t[t.length-1]}))}curvature(t){return Rh.curvature(t,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return Rh.inflections(this.points)}normal(t){return this._3d?this.__normal3(t):this.__normal2(t)}__normal2(t){const e=this.derivative(t),n=qh(e.x*e.x+e.y*e.y);return{t:t,x:-e.y/n,y:e.x/n}}__normal3(t){const e=this.derivative(t),n=this.derivative(t+.01),i=qh(e.x*e.x+e.y*e.y+e.z*e.z),r=qh(n.x*n.x+n.y*n.y+n.z*n.z);e.x/=i,e.y/=i,e.z/=i,n.x/=r,n.y/=r,n.z/=r;const o={x:n.y*e.z-n.z*e.y,y:n.z*e.x-n.x*e.z,z:n.x*e.y-n.y*e.x},s=qh(o.x*o.x+o.y*o.y+o.z*o.z);o.x/=s,o.y/=s,o.z/=s;const a=[o.x*o.x,o.x*o.y-o.z,o.x*o.z+o.y,o.x*o.y+o.z,o.y*o.y,o.y*o.z-o.x,o.x*o.z-o.y,o.y*o.z+o.x,o.z*o.z];return{t:t,x:a[0]*e.x+a[1]*e.y+a[2]*e.z,y:a[3]*e.x+a[4]*e.y+a[5]*e.z,z:a[6]*e.x+a[7]*e.y+a[8]*e.z}}hull(t){let e=this.points,n=[],i=[],r=0;for(i[r++]=e[0],i[r++]=e[1],i[r++]=e[2],3===this.order&&(i[r++]=e[3]);e.length>1;){n=[];for(let o,s=0,a=e.length-1;s<a;s++)o=Rh.lerp(t,e[s],e[s+1]),i[r++]=o,n.push(o);e=n}return i}split(t,n){if(0===t&&n)return this.split(n).left;if(1===n)return this.split(t).right;const i=this.hull(t),r={left:2===this.order?new e([i[0],i[3],i[5]]):new e([i[0],i[4],i[7],i[9]]),right:2===this.order?new e([i[5],i[4],i[2]]):new e([i[9],i[8],i[6],i[3]]),span:i};return r.left._t1=Rh.map(0,0,1,this._t1,this._t2),r.left._t2=Rh.map(t,0,1,this._t1,this._t2),r.right._t1=Rh.map(t,0,1,this._t1,this._t2),r.right._t2=Rh.map(1,0,1,this._t1,this._t2),n?(n=Rh.map(n,t,1,0,1),r.right.split(n).left):r}extrema(){const t={};let e=[];return this.dims.forEach(function(n){let i=function(t){return t[n]},r=this.dpoints[0].map(i);t[n]=Rh.droots(r),3===this.order&&(r=this.dpoints[1].map(i),t[n]=t[n].concat(Rh.droots(r))),t[n]=t[n].filter((function(t){return t>=0&&t<=1})),e=e.concat(t[n].sort(Rh.numberSort))}.bind(this)),t.values=e.sort(Rh.numberSort).filter((function(t,n){return e.indexOf(t)===n})),t}bbox(){const t=this.extrema(),e={};return this.dims.forEach(function(n){e[n]=Rh.getminmax(this,n,t[n])}.bind(this)),e}overlaps(t){const e=this.bbox(),n=t.bbox();return Rh.bboxoverlap(e,n)}offset(t,n){if(void 0!==n){const e=this.get(t),i=this.normal(t),r={c:e,n:i,x:e.x+i.x*n,y:e.y+i.y*n};return this._3d&&(r.z=e.z+i.z*n),r}if(this._linear){const n=this.normal(0),i=this.points.map((function(e){const i={x:e.x+t*n.x,y:e.y+t*n.y};return e.z&&n.z&&(i.z=e.z+t*n.z),i}));return[new e(i)]}return this.reduce().map((function(e){return e._linear?e.offset(t)[0]:e.scale(t)}))}simple(){if(3===this.order){const t=Rh.angle(this.points[0],this.points[3],this.points[1]),e=Rh.angle(this.points[0],this.points[3],this.points[2]);if(t>0&&e<0||t<0&&e>0)return!1}const t=this.normal(0),e=this.normal(1);let n=t.x*e.x+t.y*e.y;return this._3d&&(n+=t.z*e.z),Bh($h(n))<Vh/3}reduce(){let t,e,n=0,i=0,r=.01,o=[],s=[],a=this.extrema().values;for(-1===a.indexOf(0)&&(a=[0].concat(a)),-1===a.indexOf(1)&&a.push(1),n=a[0],t=1;t<a.length;t++)i=a[t],e=this.split(n,i),e._t1=n,e._t2=i,o.push(e),n=i;return o.forEach((function(t){for(n=0,i=0;i<=1;)for(i=n+r;i<=1.01;i+=r)if(e=t.split(n,i),!e.simple()){if(i-=r,Bh(n-i)<r)return[];e=t.split(n,i),e._t1=Rh.map(n,0,1,t._t1,t._t2),e._t2=Rh.map(i,0,1,t._t1,t._t2),s.push(e),n=i;break}n<1&&(e=t.split(n,1),e._t1=Rh.map(n,0,1,t._t1,t._t2),e._t2=t._t2,s.push(e))})),s}translate(t,n,i){i="number"==typeof i?i:n;const r=this.order;let o=this.points.map(((t,e)=>(1-e/r)*n+e/r*i));return new e(this.points.map(((e,n)=>({x:e.x+t.x*o[n],y:e.y+t.y*o[n]}))))}scale(t){const n=this.order;let i=!1;if("function"==typeof t&&(i=t),i&&2===n)return this.raise().scale(i);const r=this.clockwise,o=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):t,i?i(1):t);const s=i?i(0):t,a=i?i(1):t,l=[this.offset(0,10),this.offset(1,10)],c=[],u=Rh.lli4(l[0],l[0].c,l[1],l[1].c);if(!u)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach((function(t){const e=c[t*n]=Rh.copy(o[t*n]);e.x+=(t?a:s)*l[t].n.x,e.y+=(t?a:s)*l[t].n.y})),i?([0,1].forEach((function(e){if(2!==n||!e){var s=o[e+1],a={x:s.x-u.x,y:s.y-u.y},l=i?i((e+1)/n):t;i&&!r&&(l=-l);var d=qh(a.x*a.x+a.y*a.y);a.x/=d,a.y/=d,c[e+1]={x:s.x+l*a.x,y:s.y+l*a.y}}})),new e(c)):([0,1].forEach((t=>{if(2===n&&t)return;const e=c[t*n],i=this.derivative(t),r={x:e.x+i.x,y:e.y+i.y};c[t+1]=Rh.lli4(e,r,u,o[t+1])})),new e(c))}outline(t,n,i,r){if(n=void 0===n?t:n,this._linear){const o=this.normal(0),s=this.points[0],a=this.points[this.points.length-1];let l,c,u;void 0===i&&(i=t,r=n),l={x:s.x+o.x*t,y:s.y+o.y*t},u={x:a.x+o.x*i,y:a.y+o.y*i},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const d=[l,c,u];l={x:s.x-o.x*n,y:s.y-o.y*n},u={x:a.x-o.x*r,y:a.y-o.y*r},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const h=[u,c,l],f=Rh.makeline(h[2],d[0]),p=Rh.makeline(d[2],h[0]),m=[f,new e(d),p,new e(h)];return new Lh(m)}const o=this.reduce(),s=o.length,a=[];let l,c=[],u=0,d=this.length();const h=void 0!==i&&void 0!==r;function f(t,e,n,i,r){return function(o){const s=i/n,a=(i+r)/n,l=e-t;return Rh.map(o,0,1,t+s*l,t+a*l)}}o.forEach((function(e){const o=e.length();h?(a.push(e.scale(f(t,i,d,u,o))),c.push(e.scale(f(-n,-r,d,u,o)))):(a.push(e.scale(t)),c.push(e.scale(-n))),u+=o})),c=c.map((function(t){return l=t.points,l[3]?t.points=[l[3],l[2],l[1],l[0]]:t.points=[l[2],l[1],l[0]],t})).reverse();const p=a[0].points[0],m=a[s-1].points[a[s-1].points.length-1],v=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],y=Rh.makeline(v,p),b=Rh.makeline(m,g),k=[y].concat(a).concat([b]).concat(c);return new Lh(k)}outlineshapes(t,e,n){e=e||t;const i=this.outline(t,e).curves,r=[];for(let t=1,e=i.length;t<e/2;t++){const o=Rh.makeshape(i[t],i[e-t],n);o.startcap.virtual=t>1,o.endcap.virtual=t<e/2-1,r.push(o)}return r}intersects(t,n){return t?t.p1&&t.p2?this.lineIntersects(t):(t instanceof e&&(t=t.reduce()),this.curveintersects(this.reduce(),t,n)):this.selfintersects(n)}lineIntersects(t){const e=zh(t.p1.x,t.p2.x),n=zh(t.p1.y,t.p2.y),i=Wh(t.p1.x,t.p2.x),r=Wh(t.p1.y,t.p2.y);return Rh.roots(this.points,t).filter((t=>{var o=this.get(t);return Rh.between(o.x,e,i)&&Rh.between(o.y,n,r)}))}selfintersects(t){const e=this.reduce(),n=e.length-2,i=[];for(let r,o,s,a=0;a<n;a++)o=e.slice(a,a+1),s=e.slice(a+2),r=this.curveintersects(o,s,t),i.push(...r);return i}curveintersects(t,e,n){const i=[];t.forEach((function(t){e.forEach((function(e){t.overlaps(e)&&i.push({left:t,right:e})}))}));let r=[];return i.forEach((function(t){const e=Rh.pairiteration(t.left,t.right,n);e.length>0&&(r=r.concat(e))})),r}arcs(t){return t=t||.5,this._iterate(t,[])}_error(t,e,n,i){const r=(i-n)/4,o=this.get(n+r),s=this.get(i-r),a=Rh.dist(t,e),l=Rh.dist(t,o),c=Rh.dist(t,s);return Bh(l-a)+Bh(c-a)}_iterate(t,e){let n,i=0,r=1;do{n=0,r=1;let o,s,a,l,c,u=this.get(i),d=!1,h=!1,f=r,p=1;do{if(h=d,l=a,f=(i+r)/2,o=this.get(f),s=this.get(r),a=Rh.getccenter(u,o,s),a.interval={start:i,end:r},d=this._error(a,u,i,r)<=t,c=h&&!d,c||(p=r),d){if(r>=1){if(a.interval.end=p=1,l=a,r>1){let t={x:a.x+a.r*Uh(a.e),y:a.y+a.r*jh(a.e)};a.e+=Rh.angle({x:a.x,y:a.y},t,this.get(1))}break}r+=(r-i)/2}else r=f}while(!c&&n++<100);if(n>=100)break;l=l||a,e.push(l),i=p}while(r<1);return e}};var Hh={pointsToCurve:function(t,e){let n=1/e;if(0===t.length){let t=[];for(let i=0;i<e;i++){let e=i*n;t.push({x:e,y:.5})}return t}if(1===t.length){let i=t[0].y,r=[{x:0,y:i}];for(let t=0;t<e;t++){let e=t*n+n;r.push({x:e,y:i})}return r}let i=[],r=t[0],o=t[t.length-1],s=new Gh({x:o.x-1,y:o.y},{x:o.x-1+(r.x-(o.x-1))/2,y:o.y},{x:r.x-(r.x-(o.x-1))/2,y:r.y},r),a=new Gh(o,{x:o.x+(r.x+1-o.x)/2,y:o.y},{x:r.x+1-(r.x+1-o.x)/2,y:r.y},{x:r.x+1,y:r.y});for(let e=0;e<t.length-1;e++){let n=t[e],r=t[e+1],o={x:n.x+(r.x-n.x)/2,y:n.y},s={x:r.x-(r.x-n.x)/2,y:r.y},a=new Gh(n,o,s,r);i.push(a)}i.unshift(s),i.push(a);let l=[s.get(s.intersects({p1:{x:0,y:0},p2:{x:0,y:1}})[0])];for(let t=0;t<e;t++){let e,r=t*n+n;i.every((t=>{let n=t.intersects({p1:{x:r,y:0},p2:{x:r,y:1}});return!(n.length>0&&(e=t.get(n[0]),l.push(e),1))}))}return l}};class Kh{constructor(t,e){this.xs=t,this.ys=e,this.ks=this.getNaturalKs(new Float64Array(this.xs.length))}getNaturalKs(t){const e=this.xs.length-1,n=function(t,e){const n=[];for(let i=0;i<t;i++)n.push(new Float64Array(e));return n}(e+1,e+2);for(let t=1;t<e;t++)n[t][t-1]=1/(this.xs[t]-this.xs[t-1]),n[t][t]=2*(1/(this.xs[t]-this.xs[t-1])+1/(this.xs[t+1]-this.xs[t])),n[t][t+1]=1/(this.xs[t+1]-this.xs[t]),n[t][e+1]=3*((this.ys[t]-this.ys[t-1])/((this.xs[t]-this.xs[t-1])*(this.xs[t]-this.xs[t-1]))+(this.ys[t+1]-this.ys[t])/((this.xs[t+1]-this.xs[t])*(this.xs[t+1]-this.xs[t])));return n[0][0]=2/(this.xs[1]-this.xs[0]),n[0][1]=1/(this.xs[1]-this.xs[0]),n[0][e+1]=3*(this.ys[1]-this.ys[0])/((this.xs[1]-this.xs[0])*(this.xs[1]-this.xs[0])),n[e][e-1]=1/(this.xs[e]-this.xs[e-1]),n[e][e]=2/(this.xs[e]-this.xs[e-1]),n[e][e+1]=3*(this.ys[e]-this.ys[e-1])/((this.xs[e]-this.xs[e-1])*(this.xs[e]-this.xs[e-1])),function(t,e){const n=t.length;let i=0,r=0;for(;i<n&&r<=n;){let e=0,o=-1/0;for(let s=i;s<n;s++){const n=Math.abs(t[s][r]);n>o&&(e=s,o=n)}if(0===t[e][r])r++;else{Xh(t,i,e);for(let e=i+1;e<n;e++){const o=t[e][r]/t[i][r];t[e][r]=0;for(let s=r+1;s<=n;s++)t[e][s]-=t[i][s]*o}i++,r++}}for(let i=n-1;i>=0;i--){var o=0;t[i][i]&&(o=t[i][n]/t[i][i]),e[i]=o;for(let e=i-1;e>=0;e--)t[e][n]-=t[e][i]*o,t[e][i]=0}return e}(n,t)}getIndexBefore(t){let e=0,n=this.xs.length,i=0;for(;e<n;)i=Math.floor((e+n)/2),this.xs[i]<t&&i!==e?e=i:n=this.xs[i]>=t&&i!==n?i:e;return e===this.xs.length-1?this.xs.length-1:e+1}at(t){let e=this.getIndexBefore(t);const n=(t-this.xs[e-1])/(this.xs[e]-this.xs[e-1]),i=this.ks[e-1]*(this.xs[e]-this.xs[e-1])-(this.ys[e]-this.ys[e-1]),r=-this.ks[e]*(this.xs[e]-this.xs[e-1])+(this.ys[e]-this.ys[e-1]);return(1-n)*this.ys[e-1]+n*this.ys[e]+n*(1-n)*(i*(1-n)+r*n)}}function Xh(t,e,n){let i=t[e];t[e]=t[n],t[n]=i}function Yh(t,e,n){const i=n[0],r=n[n.length-1];if(t<i.x)return i.y;if(t>r.x)return r.y;const o=e.at(t);return Math.max(0,Math.min(o,1))}var Qh={pointsToCurve:function(t,e){if(!Array.isArray(t)||!t.every((t=>"object"==typeof t&&"number"==typeof t.x&&"number"==typeof t.y&&t.x>=0&&t.x<=1&&t.y>=0&&t.y<=1)))throw new Error("[pointsToCurve] Invalid points. Expected array of objects with x and y in [0, 1] range.");if(!("number"==typeof e&&e>=1))throw new Error(`[pointsToCurve] Invalid resolution: ${e}. Expected integer >= 1.`);const n=t.map((t=>t.x)),i=t.map((t=>t.y)),r=new Kh(n,i);let o=[];for(let n=0;n<e;n++)o.push(Yh(n/(e-1),r,t));return o}};function Jh(t,e=256,n={}){return"bezier"===n.type?Hh.pointsToCurve(t,e,n):Qh.pointsToCurve(t,e)}const Zh=[];for(let t=0;t<256;t++)Zh[t]=t;class tf extends rh{constructor(t){const e={vertex:kh,fragment:xh},n={uniforms:rh.getUniformInfo(tf)};super(tf.getFilterType(),e,n,t)}static getFilterType(){return"curves"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[];var n;e=[...t.master||t.points||t.masterPoints?t.master||(n=t.points||t.masterPoints,Jh(n,256).map((t=>255*t))):Zh],this.uniforms[Qd.STATIC_OPTIONS].set(e)}}function ef(t,e,n){if("number"!=typeof t||t<0||t>255)throw new Error(`[levels] Invalid black point: ${t}. Expected integer between 0 and 255`);if("number"!=typeof e||e<0||e>255)throw new Error(`[levels] Invalid white point: ${e}. Expected integer between 0 and 255`);if("number"!=typeof n||n<.01||n>9.99)throw new Error(`[levels] Invalid gamma: ${n}. Expected float between 0.01 and 9.99`);if(t>e)throw new Error(`[levels] Invalid black and white points: ${t}, ${e}. Expected black <= white`);let i=[];for(let r=0;r<256;r++){let o;o=r<=t?0:r>=e?255:255*Math.pow((r-t)/(e-t),1/n),i[r]=o}return i}class nf extends rh{constructor(t){const e={vertex:kh,fragment:xh},n={uniforms:rh.getUniformInfo(nf)};super(nf.getFilterType(),e,n,t)}static getFilterType(){return"levels"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[...ef(t.black,t.white,t.gamma)];this.uniforms[Qd.STATIC_OPTIONS].set(e)}}const rf=360,of=[];for(let t=0;t<rf;t++)of[t]=t;class sf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(sf)};super(sf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 360 length array with values for the hue curve\n// this represents a lookup table from a hue value to another hue value\nuniform float staticOptions[360];\n\n// implementation of round (doesn't exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// glsl mod doesn't work with negative numbers so\n// this is a safer version that lets us play with negatives > -1.0\nfloat safeMod(float val){\n return mod(val + 1.0, 1.0);\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 360; k++) {\n if (k == round(pixelValue * 359.0)){\n v = float(staticOptions[k]) / 359.0;\n }\n }\n return v;\n}\n\n// function source https://www.shadertoy.com/view/4dKcWK\nconst float EPSILON = 1e-10;\n\nvec3 HUEtoRGB(in float hue) {\n // Hue [0..1] to RGB [0..1]\n // See http://www.chilliant.com/rgb2hsv.html\n vec3 rgb = abs(hue * 6. - vec3(3, 2, 4)) * vec3(1, -1, -1) + vec3(-1, 2, 2);\n return clamp(rgb, 0., 1.);\n}\n\nvec3 RGBtoHCV(in vec3 rgb) {\n // RGB [0..1] to Hue-Chroma-Value [0..1]\n // Based on work by Sam Hocevar and Emil Persson\n vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1., 2. / 3.) : vec4(rgb.gb, 0., -1. / 3.);\n vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);\n float c = q.x - min(q.w, q.y);\n float h = abs((q.w - q.y) / (6. * c + EPSILON) + q.z);\n return vec3(h, c, q.x);\n}\n\nvec3 HSVtoRGB(in vec3 hsv) {\n // Hue-Saturation-Value [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsv.x);\n return ((rgb - 1.) * hsv.y + 1.) * hsv.z;\n}\n\nvec3 HSLtoRGB(in vec3 hsl) {\n // Hue-Saturation-Lightness [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsl.x);\n float c = (1. - abs(2. * hsl.z - 1.)) * hsl.y;\n return (rgb - 0.5) * c + hsl.z;\n}\n\nvec3 RGBtoHSV(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Value [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float s = hcv.y / (hcv.z + EPSILON);\n return vec3(hcv.x, s, hcv.z);\n}\n\nvec3 RGBtoHSL(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Lightness [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float z = hcv.z - hcv.y * 0.5;\n float s = hcv.y / (1. - abs(z * 2. - 1.) + EPSILON);\n return vec3(hcv.x, s, z);\n}\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 inHSL = RGBtoHSL(textureColor.rgb);\n // in the UI hue 0 is cyan and 180 is red\n float shiftedHue = getCurveValue(mod(inHSL.x + 0.5, 1.0));\n vec3 inRGB = HSLtoRGB(vec3(shiftedHue, inHSL.y, inHSL.z));\n\n vec4 finalColor = vec4(inRGB, textureColor.a);\n\n // During the rgb-to-hsl-to-rgb conversion total whites gets clipped on OSX for some reason\n // make sure to retain absolute white (since it has no chroma component)\n if (textureColor.r == 1.0 && textureColor.g == 1.0 && textureColor.b == 1.0){\n finalColor.rgb = vec3(1.0, 1.0, 1.0);\n }\n\n gl_FragColor = finalColor;\n}\n"},e,t)}static getFilterType(){return"hue"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.points&&function(t){return Jh(t,rf,{type:"bezier"}).map((t=>{return e=t,((Math.round(e.x*rf)+180)%rf+(1-e.y-.5)*rf+rf)%rf;var e}))}(t.points)||of;this.uniforms[Qd.STATIC_OPTIONS].set(e)}}class af extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(af)};super(af.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[2];\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\nvec3 lab2xyz(vec3 c){\n float fy=(c.x+16.)/116.,\n fx=c.y/500.+fy,\n fz=fy-c.z/200.;\n return vec3(\n 95.047*((fx>.206897)?fx*fx*fx:(fx-16./116.)/7.787),\n 100. *((fy>.206897)?fy*fy*fy:(fy-16./116.)/7.787),\n 108.883*((fz>.206897)?fz*fz*fz:(fz-16./116.)/7.787)\n );\n}\nvec3 xyz2rgb(vec3 c){\n mat3 mat=mat3(\n 3.2406,-1.5372,-.4986,\n -.9689, 1.8758, .0415,\n .0557, -.2040,1.0570\n );\n vec3 v=(c/100.0)*mat,\n r=vec3(\n (v.r>.0031308)?((1.055*pow(v.r,(1./2.4)))-.055):12.92*v.r,\n (v.g>.0031308)?((1.055*pow(v.g,(1./2.4)))-.055):12.92*v.g,\n (v.b>.0031308)?((1.055*pow(v.b,(1./2.4)))-.055):12.92*v.b\n );\n return r;\n}\nvec3 lab2rgb(vec3 c){return xyz2rgb(lab2xyz(vec3(100.*c.x,2.*127.*(c.y-.5),2.*127.*(c.z-.5))));}\n\n\nfloat handleMix(float x){\n return pow(x * 2.0 - 1.0, 2.0);\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n// inColor = vec3(148.0 / 255.0, 99.0 / 255.0, 95.0 / 255.0); // debug\n\n vec3 inLab = rgb2lab(inColor);\n vec3 inRGB ;\n\n// vec2 tempTint = vec2(staticOptions[1], -staticOptions[0]);\n\n// inLab.yz += (tempTint.xy); // * 0.3; // damping of effect\n\n // lab range is 0 to 1, input is -128 to 127\n // lab chromacity zero is 0.5, 0.5 so convert between the ranges\n // y is a, z is b\n inLab.y -= (-staticOptions[1] + 128.0) / 255.0 - 0.5;\n inLab.z -= (staticOptions[0] + 128.0) / 255.0 - 0.5;\n\n inRGB = lab2rgb(inLab);\n\n\n // vec3 mixed = mix(inRGB, inColor, handleMix(inLab.x)); // mid tones\n // vec3 mixed = mix(inRGB, inColor, inLab.x); // only high tones\n vec3 mixed = mix(inRGB, inColor, 0.0); // no mix\n\n gl_FragColor = vec4(mixed,1.0);\n}\n"},e,t)}static getFilterType(){return"whiteBalance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Qd.STATIC_OPTIONS].set([e,n])}}class lf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(lf)};super(lf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[4];\n\n// algorithm from here\n// https://github.com/CeeJayDK/SweetFX/blob/master/Shaders/Vibrance.fx\n\nvoid main() {\n float percentAmount = staticOptions[0];\n float redBalance = staticOptions[1];\n float greenBalance = staticOptions[2];\n float blueBalance = staticOptions[3];\n\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 coefLuma = vec3(0.212656, 0.715158, 0.072186);\n\n float luma = dot(coefLuma, color);\n\n float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color\n float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color\n\n float color_saturation = max_color - min_color; // The difference between the two is the saturation\n\n // Extrapolate between luma and original by 1 + (1-saturation) - current\n vec3 coeffVibrance = vec3(redBalance, greenBalance, blueBalance) * percentAmount;\n\n color.r = mix(luma, color.r, 1.0 + (coeffVibrance.r * (1.0 - (sign(coeffVibrance.r) * color_saturation))));\n color.g = mix(luma, color.g, 1.0 + (coeffVibrance.g * (1.0 - (sign(coeffVibrance.g) * color_saturation))));\n color.b = mix(luma, color.b, 1.0 + (coeffVibrance.b * (1.0 - (sign(coeffVibrance.b) * color_saturation))));\n\n\n gl_FragColor = vec4(color, 1.0);\n\n}\n"},e,t)}static getFilterType(){return"vibrance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.amount?t.amount/100*2:0,n=null===t.redBalance?1:t.redBalance,i=null===t.greenBalance?1:t.greenBalance,r=null===t.blueBalance?1:t.blueBalance;this.uniforms[Qd.STATIC_OPTIONS].set([e,n,i,r])}}class cf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(cf)};super(cf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\n// algorithm from here\n// https://github.com/minus34/cesium1/blob/master/Cesium/Shaders/Builtin/Functions/saturation.glsl\n\n/**\n * Adjusts the saturation of a color.\n *\n * @name czm_saturation\n * @glslFunction\n *\n * @param {vec3} rgb The color.\n * @param {float} adjustment The amount to adjust the saturation of the color.\n *\n * @returns {float} The color with the saturation adjusted.\n *\n * @example\n * vec3 greyScale = czm_saturation(color, 0.0);\n * vec3 doubleSaturation = czm_saturation(color, 2.0);\n */\nvec3 czm_saturation(vec3 rgb, float adjustment)\n{\n // Algorithm from Chapter 16 of OpenGL Shading Language\n const vec3 W = vec3(0.2125, 0.7154, 0.0721);\n vec3 intensity = vec3(dot(rgb, W));\n return mix(intensity, rgb, adjustment);\n}\n\n\nvoid main() {\n float amount = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n gl_FragColor = vec4(czm_saturation(color, amount), 1.0);\n}\n"},e,t)}static getFilterType(){return"saturation"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.amount?1:t.amount;this.uniforms[Qd.STATIC_OPTIONS].set([e])}}class uf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(uf)};super(uf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[12];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 CenterPosition, vec2 Size, float Radius) {\n return length(max(abs(CenterPosition)-Size+Radius,0.0))-Radius;\n}\n\nvoid main() {\n vec2 srcAR = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n // custom aspect ratio (other than the default 1920/1080)\n // useful for example when doing crop on crop\n if (staticOptions[10] > 0.0) { //\n srcAR.x = staticOptions[10];\n }\n vec2 srcCenter = vec2(staticOptions[0], staticOptions[1]);\n vec2 srcDims = vec2(staticOptions[2], staticOptions[3]);\n vec2 srcTL = vec2(srcCenter.x - srcDims[0] / 2.0, srcCenter.y - srcDims[1] / 2.0); // top left point\n\n vec2 srcDims_AR = srcDims * srcAR;\n vec2 srcTL_AR = srcTL * srcAR;\n\n vec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n vec2 vpAR = vec2(vpDims[0]/vpDims[1], 1.0);\n\n vec2 tgtCenter = vec2(staticOptions[4], staticOptions[5]);\n vec2 tgtDims = vec2(staticOptions[6], staticOptions[7]);\n vec2 tgtTL = vec2(tgtCenter.x - tgtDims[0] / 2.0, tgtCenter.y - tgtDims[1] / 2.0);\n\n vec2 tgtDims_AR = tgtDims * vpAR;\n vec2 tgtTL_AR = tgtTL * vpAR;\n\n vec2 pos_AR = current_texture_coordinate_2d * vpAR;\n\n float ratioW = tgtDims_AR[0] / srcDims_AR[0];\n float ratioH = tgtDims_AR[1] / srcDims_AR[1];\n\n float ratio;\n\n // the type of crop fit. 0 - contain, 1 - fill, 3 - stretch\n float fitType = staticOptions[8];\n\n if (fitType == 0.0){\n ratio = ratioW > ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR - (tgtDims_AR - tgtDims_OLD_AR) / 2.0;\n } else if (fitType == 1.0){\n ratio = ratioW < ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR + (tgtDims_OLD_AR - tgtDims_AR) / 2.0;\n }\n\n vec2 final_pos_AR = (pos_AR - tgtTL_AR) / tgtDims_AR * srcDims_AR + srcTL_AR;\n\n // transform coords back from AR into 0 to 1 range\n vec2 pos = final_pos_AR / srcAR;\n\n // How soft the edges should be . Higher values could be used to simulate a drop shadow.\n float edgeSoftness = staticOptions[11];\n\n // The radius of the corners in pixels\n float radius = staticOptions[9];\n\n float tightDistance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) , tgtDims_AR / vpAR / 2.0, 0.0);\n// float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpAR, tgtDims * vpAR / 2.0, 0.01);\n float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpDims, (tgtDims * vpDims) / 2.0, radius);\n\n // Smooth the result (free antialiasing).\n float smoothedAlpha = 1.0 - smoothstep(0.0, edgeSoftness * 2.0, distance);\n\n // Return the resultant shape.\n vec4 textureColor = texture2D(first_texture, pos);\n vec4 quadColor = vec4(textureColor.xyz, smoothedAlpha);\n\n // Apply a drop shadow effect.\n// float shadowSoftness = 0.0;\n// vec2 shadowOffset = vec2(0.0, 0.0);\n// float shadowDistance = roundedBoxSDF(pos + shadowOffset, tgtDims_AR / 2.0, radius);\n// float shadowAlpha = 1.0 - smoothstep(-shadowSoftness, shadowSoftness, shadowDistance);\n// vec4 shadowColor = vec4(0.4, 0.4, 0.4, 1.0);\n // gl_FragColor = mix(quadColor, shadowColor, shadowAlpha - smoothedAlpha);\n\n\n // pillarboxing\n if (tightDistance > 0.0 && distance <= 0.0){\n gl_FragColor = vec4(0, 0, 0, 1.0);\n } else {\n gl_FragColor = quadColor;\n }\n\n // debug\n // gl_FragColor = texture2D(first_texture, pos);\n\n}"},e,t)}static getFilterType(){return"crop"}static getInputsCount(){return 1}static getInitialOptions(){return{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:10,edgeSoftness:0}}getOptionsDisplay(){return[]}static getUniformList(){return[Qd.FIRST_TEXTURE,Kd,Xd]}handleStaticUniforms(t){let e={...uf.getInitialOptions(),...t};const n=Number.parseFloat(e.source.center.x).toFixed(5),i=Number.parseFloat(e.source.center.y).toFixed(5),r=Number.parseFloat(e.source.width).toFixed(5),o=Number.parseFloat(e.source.height).toFixed(5),s=Number.parseFloat(e.target.center.x).toFixed(5),a=Number.parseFloat(e.target.center.y).toFixed(5),l=Number.parseFloat(e.target.width).toFixed(5),c=Number.parseFloat(e.target.height).toFixed(5),u=Number.parseFloat(e.edgeSoftness).toFixed(5),d=e.source.aspectRatio?Number.parseFloat(e.source.aspectRatio).toFixed(5):0;let h;h="fill"===e.fitType?0:"contain"===e.fitType?1:2;const f=Number.parseFloat(e.cornerRadius).toFixed(5);this.uniforms[Qd.STATIC_OPTIONS].set([n,i,r,o,s,a,l,c,h,f,d,u])}}class df extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(df)};super(df.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[4];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n // this is the the texture from the prev shader\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color = vec4(staticOptions[0], staticOptions[1], staticOptions[2], 1.0);\n vec4 blended = mix(texture, color, staticOptions[3]);\n gl_FragColor = blended;\n}"},e,t)}static getFilterType(){return"solid"}static getInputsCount(){return 1}static getInitialOptions(){return{color:{r:.33,g:.66,b:.99,a:1}}}getOptionsDisplay(){return[{properties:["color","r"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","g"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","b"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){var e;const n=Number.parseFloat(t.color.r).toFixed(5),i=Number.parseFloat(t.color.g).toFixed(5),r=Number.parseFloat(t.color.b).toFixed(5),o=(null!==(e=Number.parseFloat(t.color.a))&&void 0!==e?e:1).toFixed(5);this.uniforms[Qd.STATIC_OPTIONS].set([n,i,r,o])}}class hf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(hf)};super(hf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float runtimeOptions[1];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(textureColor.rgb, 1.0);\n}\n"},e,t)}static getFilterType(){return"solidImage"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}}class ff extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(ff)};super(ff.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_position = vec4(position_3d.xyz, 1);\n gl_Position = normalize_position;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 inLab = rgb2lab(inColor);\n gl_FragColor = vec4(inLab, 1.0);\n}\n"},e,t)}static getFilterType(){return"lab"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Qd.STATIC_OPTIONS].set([e,n])}}class pf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(pf)};super(pf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n} ",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\nvoid main() {\n float exposureStops = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n \n // Convert exposure stops to multiplier: pow(2.0, stops)\n float multiplier = pow(2.0, exposureStops);\n \n // Apply exposure adjustment\n vec3 exposedColor = color * multiplier;\n \n gl_FragColor = vec4(exposedColor, 1.0);\n} "},e,t)}static getFilterType(){return"exposure"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.exposure?0:t.exposure;this.uniforms[Qd.STATIC_OPTIONS].set([e])}}var mf,vf,gf,yf,bf,kf,xf,wf;function _f(){if(yf)return gf;yf=1;const t=vf?mf:(vf=1,mf={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),e={};for(const n of Object.keys(t))e[t[n]]=n;const n={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};gf=n;for(const t of Object.keys(n)){if(!("channels"in n[t]))throw new Error("missing channels property: "+t);if(!("labels"in n[t]))throw new Error("missing channel labels property: "+t);if(n[t].labels.length!==n[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:i}=n[t];delete n[t].channels,delete n[t].labels,Object.defineProperty(n[t],"channels",{value:e}),Object.defineProperty(n[t],"labels",{value:i})}function i(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}return n.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(e,n,i),o=Math.max(e,n,i),s=o-r;let a,l;o===r?a=0:e===o?a=(n-i)/s:n===o?a=2+(i-e)/s:i===o&&(a=4+(e-n)/s),a=Math.min(60*a,360),a<0&&(a+=360);const c=(r+o)/2;return l=o===r?0:c<=.5?s/(o+r):s/(2-o-r),[a,100*l,100*c]},n.rgb.hsv=function(t){let e,n,i,r,o;const s=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(s,a,l),u=c-Math.min(s,a,l),d=function(t){return(c-t)/6/u+.5};return 0===u?(r=0,o=0):(o=u/c,e=d(s),n=d(a),i=d(l),s===c?r=i-n:a===c?r=1/3+e-i:l===c&&(r=2/3+n-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*c]},n.rgb.hwb=function(t){const e=t[0],i=t[1];let r=t[2];const o=n.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(i,r));return r=1-1/255*Math.max(e,Math.max(i,r)),[o,100*s,100*r]},n.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(1-e,1-n,1-i);return[100*((1-e-r)/(1-r)||0),100*((1-n-r)/(1-r)||0),100*((1-i-r)/(1-r)||0),100*r]},n.rgb.keyword=function(n){const r=e[n];if(r)return r;let o,s=1/0;for(const e of Object.keys(t)){const r=i(n,t[e]);r<s&&(s=r,o=e)}return o},n.keyword.rgb=function(e){return t[e]},n.rgb.xyz=function(t){let e=t[0]/255,n=t[1]/255,i=t[2]/255;return e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,[100*(.4124*e+.3576*n+.1805*i),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},n.rgb.lab=function(t){const e=n.rgb.xyz(t);let i=e[0],r=e[1],o=e[2];return i/=95.047,r/=100,o/=108.883,i=i>.008856?i**(1/3):7.787*i+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,[116*r-16,500*(i-r),200*(r-o)]},n.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;let r,o,s;if(0===n)return s=255*i,[s,s,s];r=i<.5?i*(1+n):i+n-i*n;const a=2*i-r,l=[0,0,0];for(let t=0;t<3;t++)o=e+1/3*-(t-1),o<0&&o++,o>1&&o--,s=6*o<1?a+6*(r-a)*o:2*o<1?r:3*o<2?a+(r-a)*(2/3-o)*6:a,l[t]=255*s;return l},n.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,i=t[2]/100,r=n;const o=Math.max(i,.01);return i*=2,n*=i<=1?i:2-i,r*=o<=1?o:2-o,[e,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},n.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let i=t[2]/100;const r=Math.floor(e)%6,o=e-Math.floor(e),s=255*i*(1-n),a=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,s];case 1:return[a,i,s];case 2:return[s,i,l];case 3:return[s,a,i];case 4:return[l,s,i];case 5:return[i,s,a]}},n.hsv.hsl=function(t){const e=t[0],n=t[1]/100,i=t[2]/100,r=Math.max(i,.01);let o,s;s=(2-n)*i;const a=(2-n)*r;return o=n*r,o/=a<=1?a:2-a,o=o||0,s/=2,[e,100*o,100*s]},n.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,i=t[2]/100;const r=n+i;let o;r>1&&(n/=r,i/=r);const s=Math.floor(6*e),a=1-i;o=6*e-s,1&s&&(o=1-o);const l=n+o*(a-n);let c,u,d;switch(s){default:case 6:case 0:c=a,u=l,d=n;break;case 1:c=l,u=a,d=n;break;case 2:c=n,u=a,d=l;break;case 3:c=n,u=l,d=a;break;case 4:c=l,u=n,d=a;break;case 5:c=a,u=n,d=l}return[255*c,255*u,255*d]},n.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100,r=t[3]/100;return[255*(1-Math.min(1,e*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},n.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100;let r,o,s;return r=3.2406*e+-1.5372*n+-.4986*i,o=-.9689*e+1.8758*n+.0415*i,s=.0557*e+-.204*n+1.057*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*r,255*o,255*s]},n.xyz.lab=function(t){let e=t[0],n=t[1],i=t[2];return e/=95.047,n/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,[116*n-16,500*(e-n),200*(n-i)]},n.lab.xyz=function(t){let e,n,i;n=(t[0]+16)/116,e=t[1]/500+n,i=n-t[2]/200;const r=n**3,o=e**3,s=i**3;return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,e*=95.047,n*=100,i*=108.883,[e,n,i]},n.lab.lch=function(t){const e=t[0],n=t[1],i=t[2];let r;return r=360*Math.atan2(i,n)/2/Math.PI,r<0&&(r+=360),[e,Math.sqrt(n*n+i*i),r]},n.lch.lab=function(t){const e=t[0],n=t[1],i=t[2]/360*2*Math.PI;return[e,n*Math.cos(i),n*Math.sin(i)]},n.rgb.ansi16=function(t,e=null){const[i,r,o]=t;let s=null===e?n.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(i/255));return 2===s&&(a+=60),a},n.hsv.ansi16=function(t){return n.rgb.ansi16(n.hsv.rgb(t),t[2])},n.rgb.ansi256=function(t){const e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},n.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},n.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},n.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},n.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let n=e[0];3===e[0].length&&(n=n.split("").map((t=>t+t)).join(""));const i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},n.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.max(Math.max(e,n),i),o=Math.min(Math.min(e,n),i),s=r-o;let a,l;return a=s<1?o/(1-s):0,l=s<=0?0:r===e?(n-i)/s%6:r===n?2+(i-e)/s:4+(e-n)/s,l/=6,l%=1,[360*l,100*s,100*a]},n.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=n<.5?2*e*n:2*e*(1-n);let r=0;return i<1&&(r=(n-.5*i)/(1-i)),[t[0],100*i,100*r]},n.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=e*n;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];const r=[0,0,0],o=e%1*6,s=o%1,a=1-s;let l=0;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=a,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=a,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=a}return l=(1-n)*i,[255*(n*r[0]+l),255*(n*r[1]+l),255*(n*r[2]+l)]},n.hcg.hsv=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);let i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},n.hcg.hsl=function(t){const e=t[1]/100,n=t[2]/100*(1-e)+.5*e;let i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},n.hcg.hwb=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},n.hwb.hcg=function(t){const e=t[1]/100,n=1-t[2]/100,i=n-e;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},n.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},n.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},n.gray.hsl=function(t){return[0,0,t[0]]},n.gray.hsv=n.gray.hsl,n.gray.hwb=function(t){return[0,100,t[0]]},n.gray.cmyk=function(t){return[0,0,0,t[0]]},n.gray.lab=function(t){return[t[0],0,0]},n.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},n.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]},gf}function Tf(){if(kf)return bf;kf=1;const t=_f();function e(t,e){return function(n){return e(t(n))}}function n(n,i){const r=[i[n].parent,n];let o=t[i[n].parent][n],s=i[n].parent;for(;i[s].parent;)r.unshift(i[s].parent),o=e(t[i[s].parent][s],o),s=i[s].parent;return o.conversion=r,o}return bf=function(e){const i=function(e){const n=function(){const e={},n=Object.keys(t);for(let t=n.length,i=0;i<t;i++)e[n[i]]={distance:-1,parent:null};return e}(),i=[e];for(n[e].distance=0;i.length;){const e=i.pop(),r=Object.keys(t[e]);for(let t=r.length,o=0;o<t;o++){const t=r[o],s=n[t];-1===s.distance&&(s.distance=n[e].distance+1,s.parent=e,i.unshift(t))}}return n}(e),r={},o=Object.keys(i);for(let t=o.length,e=0;e<t;e++){const t=o[e];null!==i[t].parent&&(r[t]=n(t,i))}return r}}var If=function(){if(wf)return xf;wf=1;const t=_f(),e=Tf(),n={};return Object.keys(t).forEach((i=>{n[i]={},Object.defineProperty(n[i],"channels",{value:t[i].channels}),Object.defineProperty(n[i],"labels",{value:t[i].labels});const r=e(i);Object.keys(r).forEach((t=>{const e=r[t];n[i][t]=function(t){const e=function(...e){const n=e[0];if(null==n)return n;n.length>1&&(e=n);const i=t(e);if("object"==typeof i)for(let t=i.length,e=0;e<t;e++)i[e]=Math.round(i[e]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}(e),n[i][t].raw=function(t){const e=function(...e){const n=e[0];return null==n?n:(n.length>1&&(e=n),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(e)}))})),xf=n}(),Ef=uu(If);class Sf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(Sf)};super(Sf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[3];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 blend = texture2D(first_texture, current_texture_coordinate_2d);\n \n vec3 blendRGB = blend.rgb;\n vec3 baseRGB = vec3(staticOptions[0], staticOptions[1], staticOptions[2]);\n \n vec3 limit = step(0.5, blendRGB);\n vec3 mixedRGB = mix(2.0 * baseRGB * blendRGB, 1.0 - 2.0 * (1.0 - baseRGB) * (1.0 - blendRGB), limit);\n \n gl_FragColor = vec4((mixedRGB * blend.a) + ((1.0 - blend.a) * baseRGB), 1);\n}"},e,t)}static getFilterType(){return"hardLight"}static getInputsCount(){return 1}static getInitialOptions(){return{color:"4b0082"}}getOptionsDisplay(){return[{properties:["color"],type:"colorPicker"}]}handleStaticUniforms(t){const e=Ef.hex.rgb(t.color).map((t=>t/255));this.uniforms[Qd.STATIC_OPTIONS].set([e[0],e[1],e[2]])}}class Af extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(Af)};super(Af.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n exposure_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4((texture.xyz) * (1.0 + exposure_value) , texture.w);\n}\n\n"},e,t)}static getFilterType(){return"exposureTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]}}}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Qd.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Qd.FIRST_TEXTURE,Yd]}}class Nf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(Nf)};super(Nf.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n dipToBlack_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(texture.xyz - dipToBlack_value, texture.w);\n}"},e,t)}static getFilterType(){return"dipToBlackTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Qd.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Qd.FIRST_TEXTURE,Yd]}}class Mf extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(Mf)};super(Mf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[16];\n\nvarying vec2 current_texture_coordinate_2d;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n // time range from 0 to 1\n float current_time = runtimeOptions[0];\n\n // scale X\n float current_scale_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_x_value = mix(staticOptions[0], staticOptions[1], current_scale_x_progress);\n\n // scale Y\n float current_scale_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_y_value = mix(staticOptions[2], staticOptions[3], current_scale_y_progress);\n\n // translate x\n float current_translate_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n \n float currnet_translate_x_value = mix(staticOptions[8], staticOptions[9], current_translate_x_progress); \n\n // translate y\n float current_translate_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n float currnet_translate_y_value = mix(staticOptions[10], staticOptions[11], current_translate_y_progress); \n\n // See Default vertex shader, we normalize y axis to be -y\n // because of webgl texture coordinates\n currnet_translate_y_value = currnet_translate_y_value * -1.0;\n\n // create matries\n mat4 scaleMatrix;\n scaleMatrix[0] = vec4(currnet_scale_x_value, 0, 0, 0); \n scaleMatrix[1] = vec4(0, currnet_scale_y_value, 0, 0); \n scaleMatrix[2] = vec4(0, 0, 1, 0); \n scaleMatrix[3] = vec4(0, 0, 0, 1); \n\n mat4 translateMatrix;\n translateMatrix[0] = vec4(1, 0, 0, 0); \n translateMatrix[1] = vec4(0, 1, 0, 0); \n translateMatrix[2] = vec4(0, 0, 1, 0); \n translateMatrix[3] = vec4(currnet_translate_x_value, currnet_translate_y_value, 0, 1); \n\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n // gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n \n \n current_texture_coordinate_2d = texture_coordinate_2d;\n \n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"transformTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.scale||{},n=t.properties.translate||{};e.ease=e.ease||[0,0,1,1],n.ease=n.ease||[0,0,1,1],this.uniforms[Qd.STATIC_OPTIONS].set([e.from&&e.from.x||1,e.to&&e.to.x||1,e.from&&e.from.y||1,e.to&&e.to.y||1,...e.ease,n.from&&n.from.x||0,n.to&&n.to.x||0,n.from&&n.from.y||0,n.to&&n.to.y||0,...n.ease])}static getUniformList(){return[Qd.FIRST_TEXTURE,Yd]}}class Ff extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(Ff)};super(Ff.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nconst int samples = 12; //multiple of 2\n\nvoid main() {\n vec2 pixel = vec2(1.0/runtimeOptions[1], 1.0/runtimeOptions[2]);\n vec2 direction = vec2(staticOptions[6], staticOptions[7]);\n \n vec4 color = vec4(0.0); \n\n for (int i=1; i<=samples/2; i++) {\n vec2 motion = float(i) * current_power_value / float(samples / 2) * direction * pixel;\n \n color += texture2D(\n first_texture,\n current_texture_coordinate_2d + motion);\n\n color += texture2D(\n first_texture,\n current_texture_coordinate_2d - motion);\n }\n\t\n color = color/float(samples);\n\n \n gl_FragColor = color;\n // gl_FragColor = vec4(0,1,0,1);\n \n}"},e,t)}static getFilterType(){return"motionBlurTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0},n=t.properties.direction||{x:0,y:0};e.ease=e.ease||[0,0,1,1],this.uniforms[Qd.STATIC_OPTIONS].set([e.from,e.to,...e.ease,n.x,n.y])}static getUniformList(){return[Qd.FIRST_TEXTURE,Yd,Kd]}}class Of extends rh{constructor(t){const e={uniforms:rh.getUniformInfo(Of)};super(Of.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 fadeColor = vec4(staticOptions[6], staticOptions[7], staticOptions[8], 1.0) ;\n gl_FragColor = mix(texture,fadeColor, current_power_value);\n}"},e,t)}static getFilterType(){return"fadeToColorTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]},color:"#FFFFFF"}}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0};e.ease=e.ease||[0,0,1,1];const n=t.properties.color,i=Ef.hex.rgb(n).map((t=>t/255));this.uniforms[Qd.STATIC_OPTIONS].set([e.from,e.to,...e.ease,i[0],i[1],i[2]])}static getUniformList(){return[Qd.FIRST_TEXTURE,Yd]}}var Cf=Object.freeze({__proto__:null,Crop:uf,Curves:tf,Default:oh,DipToBlackTransition:Nf,DirectionalBlur:mh,Exposure:pf,ExposureTransition:Af,FadeToColorTransition:Of,FastBlur:ph,HardLight:Sf,HorizontalBlur:hh,Hue:sf,Lab:ff,Levels:nf,Lut:bh,MotionBlurTransition:Ff,Opacity:vh,Saturation:cf,ShapeComposite:yh,ShapeCompositeMask:gh,Solid:df,SolidImage:hf,Transform:dh,TransformTransition:Mf,VerticalBlur:fh,Vibrance:lf,WhiteBalance:af});const Pf=Object.values(Cf).reduce(((t,e)=>(t[e.getFilterType()]=e,t)),{});class Df{constructor(t){this.context=t}static getFilterClass(t){return Pf[t]}getFilterIds(){return Object.keys(this.filterTypeToInstanceMap)}create(t,e){this.context={...this.context,options:e.options};const n=new Pf[t](this.context);if(!n)throw new Error(`${t} is not a atom filter, atomFilter list: `,this.getFilterIds());return n}}const Rf=Yu.PREVIOUS_OUTPUT_PREFIX,Lf=Object.values(Cf).reduce(((t,e)=>(t[e.getFilterType()]={type:e.getFilterType(),options:e.getInitialOptions(),inputs:[...Array(e.getInputsCount())].map(((t,e)=>`${Rf}${e}`)),outputs:[]},t)),{});var Bf,zf,Wf=function(){if(zf)return Bf;zf=1;var t=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&(n=t,!("[object RegExp]"===(i=Object.prototype.toString.call(n))||"[object Date]"===i||n.$$typeof===e));var n,i},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(t,e){return!1!==e.clone&&e.isMergeableObject(t)?s((n=t,Array.isArray(n)?[]:{}),t,e):t;var n}function i(t,e,i){return t.concat(e).map((function(t){return n(t,i)}))}function r(t){return Object.keys(t).concat((e=t,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]));var e}function o(t,e){try{return e in t}catch(t){return!1}}function s(e,a,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=n;var c=Array.isArray(a);return c===Array.isArray(e)?c?l.arrayMerge(e,a,l):function(t,e,i){var a={};return i.isMergeableObject(t)&&r(t).forEach((function(e){a[e]=n(t[e],i)})),r(e).forEach((function(r){var l,c;o(l=t,c=r)&&(!Object.hasOwnProperty.call(l,c)||!Object.propertyIsEnumerable.call(l,c))||(o(t,r)&&i.isMergeableObject(e[r])?a[r]=function(t,e){if(!e.customMerge)return s;var n=e.customMerge(t);return"function"==typeof n?n:s}(r,i)(t[r],e[r],i):a[r]=n(e[r],i))})),a}(e,a,l):n(a,l)}return s.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return s(t,n,e)}),{})},Bf=s}(),Uf=uu(Wf),jf=function(t,e){return Uf(t,e,{arrayMerge:(t,e)=>e})};const $f=Yu.MESSAGES.UPDATE_OPTIONS;let qf=class{constructor(t,e){this.eventEmitter=new ed,this.type=t,this.inputs=e.inputs,this.outputs=e.outputs,this.options=e.options}render(){throw new Error("concrete class should implement")}_updateOptions(){throw new Error("concrete class should implement")}updateOptions(t){this._updateOptions(t),this.eventEmitter.emit($f,this.options)}updateInputs(t){t&&(this.inputs.length===t.length&&this.inputs.every(((e,n)=>e===t[n]))||(this.inputs=[...t]))}getEventEmitter(){return this.eventEmitter}getType(){return this.type}getInputs(){return this.inputs}getOutputs(){return this.outputs}getOptions(){return this.options}getInfo(){return{inputs:this.inputs,outputs:this.outputs,options:this.options}}getOptionsDisplay(){return this.filter.getOptionsDisplay()}dispose(){throw new Error("concrete class should implement")}};class Vf extends qf{constructor(t,e,n){super(...arguments),this.filter=n.filterFactory.create(this.type,{options:this.options})}render(t){const e=t.ioStore,n=t.graphIOManager,i=this.getInputs(),r=this.getOutputs(),o=e.get(i),s=this.filter.render(o,this.options);return n.setOutputs(e,r,s),s}_updateOptions(t){this.options=jf(this.options,t),this.filter.updateStaticUniforms(this.options)}dispose(){this.filter.dispose()}}const Gf=Yu.MESSAGES.UPDATE_OPTIONS;class Hf extends Vf{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}baseNodeUpdateOptions(t){this.options=jf(this.options,t),this.filter.updateStaticUniforms(this.options)}registerListeners(){this.baseNode.getEventEmitter().on(Gf,this.baseNodeUpdateOptions,this)}dispose(){this.filter.dispose(),this.baseNode.getEventEmitter().off(Gf,this.baseNodeUpdateOptions,this)}}function Kf(t){return null!==t&&"object"==typeof t}function Xf(t){if(!Kf(t)||(e=t,Array.isArray(e)))return t;var e;const n=Object.keys(t).sort(),i={};return n.forEach((e=>{i[e]=Xf(t[e])})),i}function Yf(t,e){return null!=t&&t.id&&null!=e&&e.id?t.type===e.type&&t.id===e.id:t.type===e.type}function Qf(t,e){const n=[];t.forEach(((t,i)=>{const r=(o=t,e.findIndex((t=>function(t,e){const n=JSON.parse(JSON.stringify(t));return r=JSON.parse(JSON.stringify(e)),Kf(i=n)&&Kf(r)?JSON.stringify(Xf(i))===JSON.stringify(Xf(r)):!(!Number.isNaN(i)||!Number.isNaN(r))||i===r;var i,r}(o,t))));var o;if(-1!==r)return void n.push({type:"take",index:r});const s=(a=t,l=i,(c=e)&&c[l]&&Yf(a,c[l])?l:c.findIndex((t=>Yf(a,t))));var a,l,c;-1===s?n.push({type:"create",newGraphIndex:i}):n.push({type:"update",currentGraphIndex:s,newGraphIndex:i})}));const i=n.reduce(((t,e)=>("take"===e.type?t.push(e.index):"update"===e.type&&t.push(e.currentGraphIndex),t)),[]);return e.reduce(((t,e,n)=>(i.includes(n)||t.push(n),t)),[]).forEach((t=>{n.push({type:"dispose",currentGraphIndex:t})})),n}function Jf(t,e,n,i){const r=[];return t.forEach((t=>{switch(t.type){case"take":r.push(n[t.index]);break;case"update":const o=e[t.newGraphIndex].options,s=n[t.currentGraphIndex];s.updateInputs(e[t.newGraphIndex].inputs),s.updateOptions(o),r.push(s);break;case"create":const a=up.create(e[t.newGraphIndex],i);r.push(a);break;case"dispose":n[t.currentGraphIndex].dispose();break;default:throw new Error("cant apply action type: ",t.type)}})),r}var Zf=function(t,e,n,i){const r=t.graph,o=e.graph;if(!(o&&r&&Array.isArray(o)&&Array.isArray(r)))throw new Error("cant apply new composite options",t);return Jf(Qf(r,o),r,n,i)};class tp extends qf{constructor(t,e,n){super(...arguments),this.context=n,this.nodes=this.createNodes(this.options)}createNodes(t){if(!t||!t.graph)throw new Error("cant create composite node, please supply info.options.graph");return t.graph.map((t=>up.create(t,this.context)))}render(t){const e=t.ioStore,n=t.graphIOManager;let i=n.getPrevOutput(e);const r=this.outputs;if(this.nodes.length){const t=new ad(e),r=[];this.nodes.forEach(((e,o)=>{const s={ioStore:t,graphIOManager:n};i=e.render(s),o!==this.nodes.length-1&&r.push(i)})),n.disposeTextures(r,i)}return n.setOutputs(e,r,i),i}getOptionsDisplay(){return[]}_updateOptions(t){this.nodes=Zf(t,this.options,this.nodes,this.context),this.options=t}dispose(){this.nodes.forEach((t=>{t.dispose()}))}}const ep=Yu.MESSAGES.UPDATE_OPTIONS;class np extends tp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}registerListeners(){this.baseNode.getEventEmitter().on(ep,this.updateOptions,this)}dispose(){this.nodes.forEach((t=>{t.dispose()})),this.baseNode.getEventEmitter().off(ep,this.updateOptions,this)}}const ip=Yu.SYSTEM_NODES.TAGS.ATOM,rp=Yu.SYSTEM_NODES.TAGS.FILTER,op=Yu.SYSTEM_NODES.TAGS.COMPOSITE_FILTER,sp=Yu.SYSTEM_NODES.TAGS.TRANSITION_FILTER,ap=Yu.PREVIOUS_OUTPUT_PREFIX,lp=Object.keys(Lf);function cp(t,e){const n=(i=t.type,Lf[i]);var i;return t=jf(n,t),new Vf(t.type,t,e)}var up={create:function(t,e){let n;switch(function(t){let e;return n=t,e=lp.includes(n)?ip:t===op?op:t===sp?sp:rp,e;var n}((t=JSON.parse(JSON.stringify(t))).type)){case ip:n=cp(t,e);break;case rp:n=function(t,e){const n=function(t,e){const n=e.get(t);if(!n)throw new Error(`no base node, cant resolve type: ${t}`);return n}(t.type,e.nodeStore),i=n.getType(),r=n.getInfo();let o;return t=jf(r,t),e={...e,baseNode:n},o=i===op?new np(i,t,e):new Hf(i,t,e),o}(t,e);break;case op:n=function(t,e){const n=t.type;return t=jf({inputs:[`${ap}0`]},t),new tp(n,t,e)}(t,e);break;case sp:n=function(t,e){const n=t.options.filter;if(!n)throw new Error(`transition filter should supply base filter ${n}`);return t.type=`${n}Transition`,cp(t,e)}(t,e);break;default:throw new Error("cant create node",t.type)}return n}};const dp=Yu.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS;var hp=function(t){const e={[dp]:Lf[dp]};for(const[n,i]of Object.entries(e)){const e=up.create(i,t);t.nodeStore.set(n,e)}},fp=function(t,e){for(const[n,i]of Object.entries(t)){const t=up.create(i,e);e.nodeStore.set(n,t)}};const pp=Yu.CAPTURED_FRAME_PREFIX;class mp{constructor(t){return this.textureManager=t.textureManager,this.currentFrameTextures={0:this.textureManager.createTexture({type:"frame"})},this.saveInNextFrameTextures=[],this.savedFramesTextures={},this.reservedUnits=new Set([this.currentFrameTextures[0].getUnit()]),{capture:this.capture.bind(this),createCaptureId:this.createCaptureId.bind(this),releaseCaptureId:this.releaseCaptureId.bind(this),getCurrentFrames:this.getCurrentFrames.bind(this),getSavedFrames:this.getSavedFrames.bind(this),isReservedUnit:this.isReservedUnit.bind(this)}}updateCurrentFrame(t,e){e=e||0,this.currentFrameTextures[e].fill(t)}saveFrame(t){0!==this.saveInNextFrameTextures.length&&(this.saveInNextFrameTextures.forEach((e=>{e.fill(t)})),this.saveInNextFrameTextures=[])}capture(t,e){(t.videoHeight>150||t.displayHeight>150)&&(this.updateCurrentFrame(t,e),this.saveFrame(t))}createCaptureId(){const t=this.textureManager.createTexture({type:"frame"});this.saveInNextFrameTextures.push(t);const e=t.getUnit(),n=`${pp}${e}`;return this.savedFramesTextures[n]=t,this.reservedUnits.add(e),n}releaseCaptureId(t){if("string"!=typeof t)throw new Error("capture id should be string");delete this.saveInNextFrameTextures[t];const e=t.split(":")[1];this.reservedUnits.delete(parseInt(e,10))}getCurrentFrames(){return this.currentFrameTextures}getSavedFrames(){return this.savedFramesTextures}isReservedUnit(t){return this.reservedUnits.has(t)}}const vp=Su("ShaderGraphApplication","warn"),gp=Yu.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS,yp=Object.freeze({useCanvasSizedFilterTargets:!1,rebindAttributesOnProgramSwitch:!0,forwardContextAttributes:!0});function bp(t={}){const e=null==t?void 0:t.performanceToggles;return e&&"object"==typeof e?{...yp,...e}:{...yp}}class kp{constructor(t,e={}){return this.glSource=t,this.config=e,this.performanceToggles=bp(e),this.isContextLost=!1,this.isRecovering=!1,this.isDisposed=!1,this.pendingNodeOptionUpdates=new Map,this.doInit(t,e)}doInit(t,e){this.source=od(t),this.performanceToggles=bp(e),this.isDisposed=!1,this.render=this.render.bind(this),this.resizeCanvasSize=this.resizeCanvasSize.bind(this),this.setSrcVidTracks=this.setSrcVidTracks.bind(this),this.onWebGLContextLost=this.onWebGLContextLost.bind(this),this.onForceRender=this.onForceRender.bind(this),this.resizeCanvasSize._shouldPreventDefault=!0;const n=function(t={},e=yp){const n=null!=t&&t.glOptions&&"object"==typeof t.glOptions?{...t.glOptions}:{},i=n.__shaderGraph&&"object"==typeof n.__shaderGraph?n.__shaderGraph:{};return{...n,__shaderGraph:{...i,forwardContextAttributes:!1!==e.forwardContextAttributes}}}(e,this.performanceToggles);return this.gl=this.source.init(this.setSrcVidTracks,this.resizeCanvasSize,n),this.addCanvasListeners(),this.addSourceListeners(),"undefined"!=typeof window&&(window.ekoShaderGraph=this),this.selectedRenderNode=null,this.activeTextures=this.activeTextures||new Set,this.textureManager=new md({gl:this.gl,activeTextures:this.activeTextures}),this.capturedFramesManager=new mp({textureManager:this.textureManager}),this.graphIOManager=new _d({glSource:t,gl:this.gl,textureManager:this.textureManager,capturedFramesManager:this.capturedFramesManager}),this.frameBufferFactory=new Md({gl:this.gl,textureManager:this.textureManager,useCanvasSizedFilterTargets:this.performanceToggles.useCanvasSizedFilterTargets}),this.filterFactory=new Df({gl:this.gl,frameBufferFactory:this.frameBufferFactory,rebindAttributesOnProgramSwitch:this.performanceToggles.rebindAttributesOnProgramSwitch}),this.nodeStore=new ad,this.ioStore=new ad,hp({nodeStore:this.nodeStore,filterFactory:this.filterFactory}),this.addClientNodes(e.nodes,this.isRecovering),e.userWillCallRender||(this.rafId=requestAnimationFrame(this.render)),this.dirtyCanvasSize=!0,{getNodes:this.getNodes.bind(this),addNodes:this.addClientNodes.bind(this),selectNode:this.selectNode.bind(this),addTexture:this.addTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),captureTexture:this.captureTexture.bind(this),disposeTexture:this.disposeTexture.bind(this),updateOptions:this.updateOptions.bind(this),render:this.render,dispose:this.dispose.bind(this)}}getNodes(){return vp.debug("[getNodes]"),this.nodeStore.get()}addClientNodes(t,e=!1){if(vp.debug("[addClientNodes]",t),t&&!e&&(this.addClientNodeInvocations=this.addClientNodeInvocations||[],this.addClientNodeInvocations.push(t)),!e&&this.isContextUnavailable())return;t=t||{};const n=JSON.parse(JSON.stringify(t));fp(n,{nodeStore:this.nodeStore,filterFactory:this.filterFactory})}addTexture(t,e,n){if(vp.debug("[addTexture]",t,e,n),this.isContextUnavailable())return null;let i=this.textureManager.createTexture({type:e});return i.isStatic=!0,t&&i.fill(t),this.graphIOManager.setTextureSource(this.ioStore,i,n),i}releaseTexture(t){vp.debug("[releaseTexture]",t),this.isContextUnavailable()||this.textureManager.releaseTexture(t)}selectNode(t){if(vp.debug("[selectNode]",t),!this.isContextUnavailable())return this.nodeStore.get(t)||vp.warn("Missing render node",t),void(this.selectedRenderNodeId=t);this.selectedRenderNodeId=t}captureTexture(){return vp.debug("[captureTexture]"),this.isContextUnavailable()?null:this.capturedFramesManager.createCaptureId()}disposeTexture(t){return vp.debug("[disposeTexture]",t),this.isContextUnavailable()||"string"!=typeof t?null:this.capturedFramesManager.releaseCaptureId(t)}setSrcVidTracks(t){this.isContextUnavailable()||this.capturedFramesManager&&this.capturedFramesManager.capture(t)}resizeCanvasSize(t,e,n,i){this.dirtyCanvasSize={width:n,height:i}}isContextUnavailable(){return!!this.isDisposed||!(!this.isRecovering&&!this.isContextLost)||!(!this.gl||"function"!=typeof this.gl.isContextLost)&&this.gl.isContextLost()}queueNodeOptionUpdate(t,e){t&&e&&"object"==typeof e&&(this.pendingNodeOptionUpdates||(this.pendingNodeOptionUpdates=new Map),this.pendingNodeOptionUpdates.set(t,e))}applyPendingNodeOptionUpdates(t=!1){if(!this.pendingNodeOptionUpdates||!this.pendingNodeOptionUpdates.size)return;const e=Array.from(this.pendingNodeOptionUpdates.entries());this.pendingNodeOptionUpdates.clear(),e.forEach((([e,n])=>{try{if(t){const t=this.nodeStore.get(e);if(!t||"function"!=typeof t.updateOptions)return void this.queueNodeOptionUpdate(e,n);try{t.updateOptions(n)}catch(t){vp.error("Failed to apply pending node options",e,t),this.queueNodeOptionUpdate(e,n)}return}this.updateOptions(e,n)}catch(t){vp.error("Failed to apply pending node options",e,t)}}))}render(t={}){var e,n;const{noRaf:i=!1}=t;if(this.isContextUnavailable())return;if(this.dirtyCanvasSize){let{width:t=this.gl.canvas.width,height:e=this.gl.canvas.height}=this.dirtyCanvasSize;Sd(t,e),this.gl.canvas.width=t,this.gl.canvas.height=e,this.textureManager.refreshTextureObjects(),this.gl.viewport(0,0,t,e),this.dirtyCanvasSize=!1}const r=null===(e=this.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,o=null===(n=this.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0&&(Sd(r,o),this.gl.viewport(0,0,r,o)),this.graphIOManager.setVideoSources(this.ioStore);let s={ioStore:this.ioStore,graphIOManager:this.graphIOManager};this.renderSelectedNode(s),this.config.onPreRenderToScreen&&this.config.onPreRenderToScreen(),this.renderToCanvas(s),this.config.onPostRenderToScreen&&this.config.onPostRenderToScreen(),this.graphIOManager.disposeAllStore(this.ioStore),s=null,!i&&!this.config.userWillCallRender&&(this.rafId=requestAnimationFrame(this.render))}renderSelectedNode(t){if(!this.selectedRenderNodeId)return;const e=this.nodeStore.get(this.selectedRenderNodeId);e&&"function"==typeof e.render?e.render(t):(vp.warn("Missing selected render node",this.selectedRenderNodeId),this.selectedRenderNodeId=null)}renderToCanvas(t){const e=this.nodeStore.get(gp);e&&"function"==typeof e.render?e.render(t):vp.warn("Missing render-to-canvas node")}updateOptions(t,e){if(vp.debug("[updateOptions]",t,e),this.isContextUnavailable())return void this.queueNodeOptionUpdate(t,e);const n=this.nodeStore.get(t);if(n&&"function"==typeof n.updateOptions)try{n.updateOptions(e)}catch(n){vp.error("Failed to update node options",t,n),this.queueNodeOptionUpdate(t,e)}else this.queueNodeOptionUpdate(t,e)}addSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.on)&&this.source.on("forcerender",this.onForceRender)}removeSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.off)&&this.source.off("forcerender",this.onForceRender)}addCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&(this.config.noWebGLContextLostRecovery||this.gl.canvas.addEventListener("webglcontextlost",this.onWebGLContextLost))}removeCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&this.gl.canvas.removeEventListener("webglcontextlost",this.onWebGLContextLost)}getNodesOptions(){const t=this.getNodes();let e={};return Object.keys(t).filter((t=>"__default"!==t)).forEach((n=>{e[n]=t[n].options})),e}getDocumentVisibilityPromise(){return new Promise((t=>{"visible"===document.visibilityState&&t();const e=()=>{"visible"===document.visibilityState&&(document.removeEventListener("visibilitychange",e),t())};document.addEventListener("visibilitychange",e)}))}onForceRender(){vp.info("[onForceRender]"),this.render({noRaf:!0})}async onWebGLContextLost(t){if(t&&"function"==typeof t.preventDefault&&t.preventDefault(),this.isDisposed||this.isRecovering)return;this.isContextLost=!0,this.isRecovering=!0;const e=this.getNodesOptions(),n=this.addClientNodeInvocations,i=this.selectedRenderNodeId;cancelAnimationFrame(this.rafId),vp.warn("WebGL context lost - attempting to recover");const r=async()=>{if(this.isDisposed)this.isRecovering=!1;else try{var t;if(await this.getDocumentVisibilityPromise(),this.isDisposed)return void(this.isRecovering=!1);if(this.gl&&"function"==typeof this.gl.isContextLost&&this.gl.isContextLost())return void setTimeout(r,200);this.dispose(!1),this.doInit(this.glSource,this.config),this.textureManager&&"function"==typeof this.textureManager.refreshActiveTextures&&this.textureManager.refreshActiveTextures(),n&&n.length&&n.forEach((t=>{vp.debug("Re-adding client nodes",t),this.addClientNodes(t,!0)})),Object.entries(e).forEach((([t,e])=>{vp.debug("Re-applying node options",t,e);const n=this.nodeStore.get(t);n&&"function"==typeof n.updateOptions&&n.updateOptions(e)})),i&&(this.selectedRenderNodeId=i),this.applyPendingNodeOptionUpdates(!0);const o="function"==typeof(null===(t=this.source)||void 0===t?void 0:t.recover);o&&(vp.debug("Recovering glSource (i.e. seeking/resetting player)"),await this.source.recover()),this.isContextLost=!1,this.isRecovering=!1,o&&this.render()}catch(t){vp.error("Failed to recover WebGL context, retrying",t),setTimeout(r,200)}};await r()}dispose(t=!0){if(this.selectedRenderNode=null,t&&(this.isDisposed=!0,this.isRecovering=!1,this.isContextLost=!1),this.source&&(this.removeSourceListeners(),"function"==typeof this.source.dispose&&this.source.dispose()),this.gl){this.removeCanvasListeners();const e=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS);for(let t=0;t<e;++t)this.gl.activeTexture(this.gl.TEXTURE0+t),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP,null);if(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,null),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,null),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,null),t)try{this.gl.getExtension("WEBGL_lose_context").loseContext()}catch(t){console.error(t)}}this.selectedRenderNodeId=null,t&&delete this.addClientNodeInvocations}}class xp{constructor(t={}){this.options=t}get type(){return"stage"}getSignature(){return this.type}build({inputs:t=[]}={}){return{graph:[],outputs:t,signature:this.getSignature()}}}function wp(t={}){const e={source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0},n={...e.source,...t.source||{}},i={...e.target,...t.target||{}};return{...e,...t,source:n,target:i}}class _p extends xp{get type(){return"retarget"}getSignature(){var t;const e=Array.isArray(null===(t=this.options)||void 0===t?void 0:t.frames)?this.options.frames:[];return`${this.type}:${e.length}`}build({inputs:t=[],stageIndex:e=0}={}){var n;const i=Array.isArray(null===(n=this.options)||void 0===n?void 0:n.frames)?this.options.frames:[];if(!i.length)return{graph:[],outputs:t,signature:this.getSignature()};const r=[],o=[];for(let n=0;n<t.length;n+=1){const s=t[n],a=i[n];if(!a){o.push(s);continue}const l=`retarget-${e}-${n}`;r.push({id:l,type:"crop",inputs:[s],outputs:[l],options:wp(a)}),o.push(l)}return{graph:r,outputs:o,signature:this.getSignature()}}}class Tp{#A=new Map;constructor(){this.register("retarget",_p)}register(t,e){t&&"function"==typeof e&&this.#A.set(t,e)}create(t={}){const e="string"==typeof(null==t?void 0:t.type)?t.type:null;if(!e)return null;const n=this.#A.get(e);return n?new n((null==t?void 0:t.options)||{}):null}}class Ip{constructor(t={}){this.params=t}static get panAndScanTarget(){return"pre"}static buildDefaultLayoutGraph(t=[]){const e=t[0]||"__SRC_TEXTURE:0";return{type:"default",signature:`default:${t.length}`,isDynamic:!1,graph:[{type:"opacity",inputs:[e],options:{power:1}}]}}static prepareRenderFrames({frames:t}={}){return Array.isArray(t)?t:[]}static getRenderTiming({timing:t}={}){return t&&"object"==typeof t?t:{}}static resetRenderState(t){}render(t){}}class Ep extends Ip{#N=null;#M=null;static get type(){return"default"}static get aliases(){return["DefaultRenderNode","default"]}static get requiresFrameCadence(){return!1}static buildLayoutGraph({inputs:t=[]}={}){return super.buildDefaultLayoutGraph(t)}static prepareRenderFrames({frames:t}={}){const e=Array.isArray(t)?t:[];if(e.length<=1)return e;const n=e[e.length-1];return n?[n]:e}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;const o=null==r?void 0:r.default;if(o)try{const t=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),e=Ep.buildLayoutGraph({inputs:t}),r=e.signature;this.#N!==r&&(i.updateOptions(o,{graph:e.graph}),this.#N=r),this.#M!==o&&(i.selectNode(o),this.#M=o),i.render({noRaf:!0})}catch(t){}}}var Sp=new WeakMap,Ap=new WeakMap,Np=new WeakSet;class Mp extends Ip{constructor(...t){super(...t),j(this,Np),W(this,Sp,null),W(this,Ap,null)}static get type(){return"side-by-side"}static get aliases(){return["SideBySideRenderNode","side-by-side","sidebyside"]}static get requiresFrameCadence(){return!1}static get panAndScanTarget(){return"skip"}static buildLayoutGraph({inputs:t=[]}={}){const e=t.length;if(e<=1)return super.buildDefaultLayoutGraph(t);const n=1/e,i=[],r=t.map(((t,e)=>{const r=(e+.5)*n,o=`slice-${e}`;return i.push({id:`side-by-side-crop-${e}`,type:"crop",inputs:[t],outputs:[o],options:{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:r,y:.5},width:n,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0}}),o}));let o=r[0];for(let t=1;t<e;t+=1){const e=(t+.5)*n*2-1;i.push({id:`side-by-side-mask-${t}`,type:"shapeCompositeMask",inputs:[r[t],o],outputs:["accum"],options:{type:"box",center:{x:e,y:0},area:{width:n,height:1},radius:0,edgeSoftness:0}}),o="accum"}return{type:Mp.type,signature:`${Mp.type}:${t.length}`,isDynamic:!1,graph:i}}static prepareRenderFrames({frames:t,state:e}={}){const n=Array.isArray(t)?t:[],i=e&&"object"==typeof e?e:{},r=Array.isArray(i.frames)?i.frames:[];if(!n.length&&!r.length)return i.frames=[],i!==e&&e&&"object"==typeof e&&Object.assign(e,i),[];const o=Math.max(n.length,r.length,2),s=Array.from({length:o}),a=n[0]||r[0];for(let t=0;t<o;t+=1)s[t]=n[t]||r[t]||a;return i.frames=s,i!==e&&e&&"object"==typeof e&&Object.assign(e,i),s}static resetRenderState(t){t&&"object"==typeof t&&(t.frames=null)}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;const o=null==r?void 0:r.sideBySide;if(o){if(1===n.length){const t=null==r?void 0:r.default;try{L(Np,this,Fp).call(this,i,t)}catch(t){}return}try{L(Np,this,Op).call(this,i,o,n)}catch(t){}}}}function Fp(t,e){if(!e)return;const n=pe.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]}),i=n.signature;z(Sp,this)!==i&&(t.updateOptions(e,{graph:n.graph}),U(Sp,this,i)),z(Ap,this)!==e&&(t.selectNode(e),U(Ap,this,e)),t.render({noRaf:!0})}function Op(t,e,n){const i=Array.isArray(n)?n.length:0;if(!e||!i||i<2)return;const r=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),o=pe.buildLayoutGraph({inputs:r}),s=o.signature;z(Sp,this)!==s&&(t.updateOptions(e,{graph:o.graph}),U(Sp,this,s)),z(Ap,this)!==e&&(t.selectNode(e),U(Ap,this,e)),t.render({noRaf:!0})}function Cp(t){const e=Number(t);return Number.isFinite(e)?e<=0?0:e>=1?1:e:0}pe=Mp;class Pp extends Ip{#N=null;#M=null;#F=null;static get type(){return"cross-fade"}static get aliases(){return["CrossFadeRenderNode","cross-fade","crossfade"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=Cp(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:Pp.type,signature:`${Pp.type}:${t.length}`,isDynamic:!0,graph:i}}static prepareRenderFrames({frames:t,timelineTime:e,active:n}={}){let i=(Array.isArray(t)?t:[]).slice(0,2);if(i.length<2)return i;const r=Number.isFinite(null==n?void 0:n.duration)&&n.duration>0?n.duration:void 0,o=Number.isFinite(null==n?void 0:n.offset)?n.offset:void 0;if(!Number.isFinite(e)||!Number.isFinite(r)||!Number.isFinite(o))return i;const s=Cp((e-o)/r);return s<=0?[i[0]]:s>=1?[i[1]]:i}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;if(n.length<2){const t=null==r?void 0:r.default;if(!t)return;try{const e="default";if(this.#N!==e){const n=Pp.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]});i.updateOptions(t,{graph:n.graph}),this.#N=e}this.#M!==t&&(i.selectNode(t),this.#M=t),i.render({noRaf:!0})}catch(t){}return}const o=null==r?void 0:r.crossFade;if(o)try{const e=["__SRC_TEXTURE:0","__SRC_TEXTURE:1"],n=Pp.buildLayoutGraph({inputs:e,normalizedTime:null==t?void 0:t.renderNodeNormalizedTime}),r=n.signature,s=Number(null==t?void 0:t.renderNodeNormalizedTime),a=Number.isFinite(s)?s:0;this.#N===r&&this.#F===a||(i.updateOptions(o,{graph:n.graph}),this.#N=r,this.#F=a),this.#M!==o&&(i.selectNode(o),this.#M=o),i.render({noRaf:!0})}catch(t){}}}function Dp(t,e,n={}){if("number"==typeof(null==t?void 0:t.nodeDurationOverride)&&Number.isFinite(t.nodeDurationOverride))return t.nodeDurationOverride;const i="function"==typeof(null==n?void 0:n.getNode)?n.getNode:e&&"function"==typeof e.get?t=>e.get(t):null;if(!i)return;const r=i(null==t?void 0:t.nodeId);if(!r)return;const o=r.duration;if("number"!=typeof o||Number.isNaN(o)||!Number.isFinite(o))return;const s="string"!=typeof r.state||"ready"===r.state;if(!0!==(null==n?void 0:n.allowUnready)&&!s)return;if(!(!0!==(null==n?void 0:n.allowUnready)||s||o>0))return;let a=0;"number"==typeof t.nodeOffsetOverride&&Number.isFinite(t.nodeOffsetOverride)&&(a=t.nodeOffsetOverride);const l=o-a;return l>0?l:0}function Rp(t){return!(!t||!0===t.offsetPending)&&Number.isFinite(t.offset)}function Lp(t){return Rp(t)?t.offset:void 0}function Bp(t,e,n,i={}){if(!t)return!1;const r=Lp(t);if(!Number.isFinite(r))return!1;const o=Dp(t,n,i);return Number.isFinite(o)?e>=r&&e<r+o:e>=r}function zp(t=[]){if(!Array.isArray(t))return t;const e=[],n=[];return t.forEach((t=>{Rp(t)?e.push(t):n.push(t)})),e.sort(((t,e)=>t.offset-e.offset)),t.splice(0,t.length,...e,...n),t}function Wp(t=[],e={}){if(!Array.isArray(t)||!t.length)return{updated:!1,resolvedPlacements:[]};const n="function"==typeof e.getPlacementDuration?e.getPlacementDuration:()=>{},i="function"==typeof e.snapPlacementOffset?e.snapPlacementOffset:t=>t,r="function"==typeof e.onResolvedPlacement?e.onResolvedPlacement:null,o=new Map,s=[];if(t.forEach((t=>{null!=t&&t.placementId&&o.set(t.placementId,t),!0===(null==t?void 0:t.offsetPending)&&s.push(t)})),!s.length)return{updated:!1,resolvedPlacements:[]};let a=!1;const l=[];let c=s,u=!0;for(;c.length&&u;){u=!1;const t=[];for(let e=0;e<c.length;e+=1){const s=c[e],d=null==s?void 0:s.offsetAnchorPlacementId;if(!d){t.push(s);continue}const h=o.get(d);if(!h||!0===h.offsetPending){t.push(s);continue}const f=Lp(h);if(!Number.isFinite(f)){t.push(s);continue}let p;if("start"===s.offsetAnchorEdge)p=i(f,s);else{const e=n(h);if(!(e>0)){t.push(s);continue}const r=f+e-(Number.isFinite(s.offsetEndSeconds)?s.offsetEndSeconds:0);if(!Number.isFinite(r)){t.push(s);continue}const o=i(r,s);p=!0===s.offsetAnchorIsReference?Math.max(o,r):o}Number.isFinite(p)?(s.offset=p,s.offsetPending=!1,s.offsetAnchorPlacementId=void 0,s.offsetAnchorEdge=void 0,s.offsetAnchorIsReference=void 0,r&&r(s,h,p),l.push(s),a=!0,u=!0):t.push(s)}c=t}return a&&!1!==e.sortPlacements&&zp(t),{updated:a,resolvedPlacements:l}}function Up(t){const e=Number(t);return Number.isFinite(e)?e:0}function jp(t,e={}){const n=function(t){const e=Number(t);return Number.isFinite(e)&&e<0?Math.abs(e):0}(t),i=Number.isFinite(null==e?void 0:e.offsetEndSeconds)?e.offsetEndSeconds:n;var r;return{wantsEndOffset:"end"===(r=t)||null==r||n>0||!0===(null==e?void 0:e.offsetPending),endOffsetSeconds:i,endOffsetFromAtSeconds:n}}function $p(t){if("string"!=typeof t)return null;const e=t.trim();if(!e||"end"===e)return null;const n=Number(e);if(Number.isFinite(n))return null;const i=e.split("@"),r=i[0]?i[0].trim():"";if(!r)return null;if(1===i.length)return{placementId:r,anchor:"start"};if(2!==i.length)return null;const o=i[1]?i[1].trim().toLowerCase():"";return"start"!==o&&"end"!==o?null:{placementId:r,anchor:o}}function qp(t=[],e,n,i){if(Array.isArray(t))for(let r=0;r<t.length;r+=1){const o=t[r],s="number"==typeof(null==o?void 0:o.offset)?o.offset:0;if(e<s+("number"==typeof(null==o?void 0:o.duration)&&Number.isFinite(o.duration)?o.duration:Number.POSITIVE_INFINITY)&&s<n)throw new Error(i)}}function Vp(t){const e=Number(t);return Number.isFinite(e)&&e>0?e:0}function Gp(t){return(null==t?void 0:t.id)||(null==t?void 0:t.nodeId)||null}function Hp(t,e){return Array.isArray(t)&&e?t.findIndex((t=>Gp(t)===e)):-1}function Kp(t,e,n){const i=function(t,e,n){if(!Array.isArray(e)||0===e.length)return null;const i=e.length;if(null==t||"next"===t){const t=Hp(e,n);return t>=0?(t+1)%i:0}if("prev"===t){const t=Hp(e,n);return t>=0?(t-1+i)%i:i-1}const r=Number(t);return Number.isInteger(r)&&r>=0&&r<i?r:null}(t,e,n);return Number.isInteger(i)?Gp(e[i]):null}function Xp(t,e,n,i){const r=function(t,e){if(!Array.isArray(t)||t.length<=1)return t||[];const n=function(t){const e=[],n=new Set;return Array.isArray(t)?(t.forEach((t=>{const i=null==t?void 0:t.placementId;i&&!n.has(i)&&(n.add(i),e.push(i))})),e):e}(e);if(!n.length)return t;const i=new Map;t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!i.has(e)&&i.set(e,t)}));const r=[],o=new Set;return n.forEach((t=>{const e=i.get(t);e&&!o.has(t)&&(o.add(t),r.push(e))})),t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!o.has(e)&&(o.add(e),r.push(t))})),r}(function(t,e){const n=function(t){const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration),i=n===Number.POSITIVE_INFINITY,r=Number.isFinite(n)&&n>0||i;return Number.isFinite(e)&&r?{start:e,end:i?Number.POSITIVE_INFINITY:e+n}:null}(e);if(!n||!t||!Array.isArray(t.placements))return[];const i=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return!Number.isFinite(n)||n<=0?0:.5/n}(t),r=t.placements.filter((e=>{const r=function(t,e){const n=Lp(t);if(!Number.isFinite(n))return null;const i="function"==typeof(null==e?void 0:e.getPlacementDuration)?e.getPlacementDuration(t):void 0;return{start:n,end:Number.isFinite(i)&&i>=0?n+i:Number.POSITIVE_INFINITY}}(e,t);return!!r&&r.start<n.end&&r.end>n.start+i}));return r.sort(((t,e)=>Lp(t)-Lp(e))),r}(e,n),i),o=function(t,e){const n=[],i=new Set;return Array.isArray(t)?(t.forEach((t=>{const r=null==t?void 0:t.nodeId;if(!r||i.has(r))return;const o="function"==typeof(null==e?void 0:e.getNode)?e.getNode(r):null;if(o){const t="object"==typeof o&&null!==o?o.id||o.nodeId?o:{...o,id:r}:{id:r};n.push(t),i.add(r)}})),n):n}(r,e),s=function(t){const e=new Map;return t.forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;n&&i&&(e.has(i)||e.set(i,[]),e.get(i).push(n))})),e}(r),a=Array.isArray(t.nodes)?t.nodes:[];return a.splice(0,a.length,...o),t.nodes=a,t.placements=r,t.nodePlacementMap=s,{nodes:a,placements:r,nodePlacementMap:s}}function Yp(t,e,n){if(!Array.isArray(t))return null;if(e){const n=t.find((t=>(null==t?void 0:t.placementId)===e));if(n)return n}return n&&t.find((t=>(null==t?void 0:t.nodeId)===n))||null}function Qp(t,e){if(!e||!Array.isArray(t))return null;const n=t.find((t=>(null==t?void 0:t.placementId)===e));return(null==n?void 0:n.nodeId)||null}function Jp(t,e,n){if(!t||!e)return null;const i=e.get(t);if(!Array.isArray(i)||!i.length)return null;for(let e=0;e<i.length;e+=1){const r=i[e];if(Yp(n,r,t))return r}return null}function Zp(t){t.initialized=!1,t.activeRenderPlacementId=null,t.nodes=[],t.placements=[],t.nodePlacementMap=null,t.selectedPlacementId=null,t.previousPlacementId=null,t.pendingSwitch=null,t.switchStartTime=null,t.switchDuration=0,t.switchNormalizedTime=void 0,t.switchTo=null,t.countOfConcurrentChannels=null}class tm extends Ip{static get type(){return"switching"}static get aliases(){return["SwitchingRenderNode","switching","switch"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=Cp(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:tm.type,signature:`${tm.type}:${t.length}`,isDynamic:!0,graph:i}}static getRenderTiming({timing:t,state:e}={}){const n=t&&"object"==typeof t?t:{},i=Number(null==e?void 0:e.switchNormalizedTime);return Number.isFinite(i)?{...n,normalizedTime:Cp(i)}:n}static prepareRenderFrames({frames:t,timelineTime:e,timeline:n,active:i,renderNodeParams:r,state:o}={}){const s=Array.isArray(t)?t:[],a=o&&"object"==typeof o?o:{},l=null==i?void 0:i.renderPlacementId;l&&a.activeRenderPlacementId!==l&&(Zp(a),a.activeRenderPlacementId=l);const c=null==r?void 0:r.initSwitching,u=Xp(a,n,i,s),d=(f=s,Array.isArray(f)?f.length:0),h=a.countOfConcurrentChannels;var f;if(a.countOfConcurrentChannels=d,"function"==typeof c&&(a.switchTo||(a.switchTo=(t,e)=>{const n=Qp(a.placements,a.selectedPlacementId),i=Kp(t,a.nodes,n);if(!i)return;const r={nodeId:i};e&&Object.prototype.hasOwnProperty.call(e,"crossfadeSeconds")&&void 0!==e.crossfadeSeconds&&(r.crossfadeSeconds=e.crossfadeSeconds),a.pendingSwitch=r}),!a.initialized||h!==d)){a.initialized=!0,a.countOfConcurrentChannels=d;try{c({nodes:u.nodes,countOfConcurrentChannels:d,switchTo:a.switchTo})}catch(f){}}if(!a.selectedPlacementId){const t=Number(null==r?void 0:r.initialChannelIndex),e=Kp(Number.isInteger(t)&&t>=0?t:0,a.nodes,null);let n=null;if(e&&(n=Jp(e,a.nodePlacementMap,s),!n&&a.nodePlacementMap)){const t=a.nodePlacementMap.get(e);Array.isArray(t)&&t.length&&(n=t[0])}a.selectedPlacementId=n||function(t,e){if(Array.isArray(e))for(let i=0;i<e.length;i+=1){var n;const r=null===(n=e[i])||void 0===n?void 0:n.placementId;if(r&&Yp(t,r))return r}const i=Array.isArray(t)?t.find((t=>null==t?void 0:t.placementId)):null;return i?i.placementId:null}(s,a.placements)}if(a.pendingSwitch&&Number.isFinite(e)){const t=Jp(a.pendingSwitch.nodeId,a.nodePlacementMap,s);if(t){const n=a.selectedPlacementId;a.previousPlacementId=n&&n!==t?n:null,a.selectedPlacementId=t;const i=Object.prototype.hasOwnProperty.call(a.pendingSwitch,"crossfadeSeconds"),o=Vp(a.pendingSwitch.crossfadeSeconds),s=Vp(null==r?void 0:r.switchCrossfadeSeconds),l=i?o:s;a.switchDuration=l,l>0?a.switchStartTime=e:(a.switchStartTime=null,a.previousPlacementId=null)}a.pendingSwitch=null}let p;if(Number.isFinite(a.switchStartTime)&&a.switchDuration>0&&Number.isFinite(e)){const t=e-a.switchStartTime;t>=a.switchDuration?(a.switchStartTime=null,a.switchDuration=0,a.previousPlacementId=null):t>=0&&(p=Cp(t/a.switchDuration))}a.switchNormalizedTime=Number.isFinite(p)?p:void 0;const m=Qp(a.placements,a.selectedPlacementId),v=Yp(s,a.selectedPlacementId,m)||s[0];let g=null;if(Number.isFinite(a.switchNormalizedTime)&&a.previousPlacementId){const t=Qp(a.placements,a.previousPlacementId),e=Qp(a.placements,a.selectedPlacementId),n=Yp(s,a.previousPlacementId,t),i=Yp(s,a.selectedPlacementId,e);n&&i&&(g=[n,i])}return g||(g=v?[v]:s),g}static resetRenderState(t){t&&"object"==typeof t&&Zp(t)}}const em=[Ep,Mp,Pp,tm],nm=new Map;function im(t){if("string"!=typeof t)return null;const e=t.trim();return e?e.toLowerCase():null}function rm(t){const e=im(t);return e&&nm.get(e)||null}function om(t){return rm(t)||Ep}em.forEach((t=>function(t){(function(t){const e=Array.isArray(t.aliases)?t.aliases:[],n=t.type;return(n?[n,...e]:e.slice()).filter((t=>"string"==typeof t&&t.trim().length))})(t).forEach((e=>{const n=im(e);n&&nm.set(n,t)}))}(t)));class sm{static get defaultType(){return Ep.type||"default"}static getRenderNodeClass(t){return rm(t)}static normalizeType(t){const e=rm(t);return e?e.type:null}static doesRenderNodeTypeRequireFrameCadence(t){const e=rm(t);return!!e&&!0===e.requiresFrameCadence}static buildLayoutGraph({type:t,inputs:e=[],normalizedTime:n}={}){const i=om(t);return i&&"function"==typeof i.buildLayoutGraph?i.buildLayoutGraph({inputs:e,normalizedTime:n}):Ep.buildLayoutGraph({inputs:e,normalizedTime:n})}static getPanAndScanTarget(t){const e=om(t);return"post"===(n=null==e?void 0:e.panAndScanTarget)||"skip"===n?n:"pre";var n}static prepareRenderFrames({type:t,frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s}={}){const a=om(t);if(a&&"function"==typeof a.prepareRenderFrames){const t=a.prepareRenderFrames({frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s});if(Array.isArray(t))return t}return Array.isArray(e)?e:[]}static getRenderTiming({type:t,timing:e,timelineTime:n,active:i,renderNodeParams:r,state:o}={}){const s=om(t),a=e&&"object"==typeof e?e:{};if(s&&"function"==typeof s.getRenderTiming){const t=s.getRenderTiming({timing:a,timelineTime:n,active:i,renderNodeParams:r,state:o});if(t&&"object"==typeof t)return{...a,...t}}return a}static resetRenderState(t,e){const n=om(t);n&&"function"==typeof n.resetRenderState&&n.resetRenderState(e)}static resetAllRenderStates(t){t&&"function"==typeof t.forEach&&t.forEach(((t,e)=>{sm.resetRenderState(e,t)}))}create(t,e){return t&&"function"==typeof t.render?t:new(om(t))(e)}}function am(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function lm(t,e){return t&&"function"==typeof t.getSignature?t.getSignature():(null==e?void 0:e.type)||"stage"}class cm{#O;constructor(t){this.#O=t||new Tp}build(t={}){const e=(Array.isArray(null==t?void 0:t.frames)?t.frames:[]).length,n=Array.from({length:e},((t,e)=>`__SRC_TEXTURE:${e}`)),i=sm.normalizeType(null==t?void 0:t.layoutType)||sm.defaultType,r=null==t?void 0:t.normalizedTime,o=am(null==t?void 0:t.preStages),s=am(null==t?void 0:t.postStages),a=[],l=[`layout:${i}`,`inputs:${e}`];let c=n;o.forEach(((e,n)=>{const i=this.#O.create(e);if(!i)return;const r=i.build({inputs:c,stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length&&(c=r.outputs),l.push(lm(i,e))}));const u=sm.buildLayoutGraph({type:i,inputs:c,normalizedTime:r}),d=!(null==u||!u.isDynamic);Array.isArray(null==u?void 0:u.graph)&&u.graph.length&&a.push(...u.graph),l.push((null==u?void 0:u.signature)||`${i}:${c.length}`);let h="__PREVIOUS:0";return s.forEach(((e,n)=>{const i=this.#O.create(e);if(!i)return;const r=i.build({inputs:[h],stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),h=Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length?r.outputs[0]:"__PREVIOUS:0",l.push(lm(i,e))})),{graph:a,signature:l.join("|"),isDynamic:d}}}const um=[0,0,1,1],dm="zoomInExposure",hm=["transform","exposure","fadeToColor","dipToBlack"],fm={zoomInExposure:{filters:{fadeToColor:{duration:150,ease:[1,0,1,0],power:{from:0,to:1},color:"#ffffff"},exposure:!1,transform:{duration:150,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.1,y:1.1}},translate:{from:{x:0,y:0},to:{x:0,y:0}}}},reverseFilters:{fadeToColor:{duration:700,ease:[0,1,0,1]},exposure:!1,transform:{duration:700,ease:[0,1,0,1]}}},dipToBlack:{filters:{transform:{duration:250,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.05,y:1.05}},translate:{from:{x:0,y:0},to:{x:0,y:0}}},dipToBlack:{duration:250,ease:[0,.5,.5,1],power:{from:0,to:1}}},reverseFilters:{dipToBlack:{duration:800,ease:[0,1,0,1]}}}};function pm(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function mm(t,e=um){return Array.isArray(t)&&t.length>=4?t:e}function vm(t){return"string"==typeof t&&t.trim()?t.trim():"#ffffff"}function gm(t,e){const n=null==t?void 0:t[e];return!1===n||null==n?null:Nu(n)?n:{}}function ym(t={}){let e=0;return hm.forEach((n=>{const i=gm(t,n);if(!i)return;const r=pm(null==i?void 0:i.duration);r>e&&(e=r)})),e}function bm(t,e,n,i,r){const o=[];return hm.forEach((s=>{const a=gm(t,s);if(!a)return;const l=function(t,e,n){const i=pm(null==t?void 0:t.duration);return Number.isFinite(n)&&n>0?i>0&&e>0?i*e:n:i}(a,n,i),c=function(t,e,n,i,r){const o={type:"transition",inputs:["__PREVIOUS:0"],options:{filter:t,startTime:n,duration:i,properties:{}}};if("transform"===t){var s,a,l,c;const t=mm(null==e?void 0:e.ease),n=(null==e||null===(s=e.scale)||void 0===s?void 0:s.from)||{x:1,y:1},i=(null==e||null===(a=e.scale)||void 0===a?void 0:a.to)||{x:1,y:1},r=(null==e||null===(l=e.translate)||void 0===l?void 0:l.from)||{x:0,y:0},u=(null==e||null===(c=e.translate)||void 0===c?void 0:c.to)||{x:0,y:0};return o.options.properties.scale={from:n,to:i,ease:t},o.options.properties.translate={from:r,to:u,ease:t},o}if("fadeToColor"===t){const t=mm(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:pm(null==n?void 0:n.from,0),to:pm(null==n?void 0:n.to,1),ease:t},o.options.properties.color=vm((null==e?void 0:e.color)||r),o}if("exposure"===t||"dipToBlack"===t){const t=mm(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:pm(null==n?void 0:n.from,0),to:pm(null==n?void 0:n.to,1),ease:t},o}return null}(s,a,e,l,r);c&&o.push(c)})),o}function km(t=[]){const e=t.map((t=>{const e=JSON.parse(JSON.stringify(t));return null!=e&&e.options&&(e.options.startTime=0),e}));return JSON.stringify(e)}class xm{#C=null;start(t={}){const e=null==t?void 0:t.shaderGraph;if(!e||"function"!=typeof e.captureTexture)return null;const{baseFilters:n,reverseFilters:i}=function(t={}){const e=function(t={}){if(Nu(null==t?void 0:t.transition))return t.transition;if("string"==typeof(null==t?void 0:t.transition))return fm[t.transition]||fm[dm];if(Nu(null==t?void 0:t.filters)||Nu(null==t?void 0:t.reverseFilters))return{filters:t.filters||{},reverseFilters:t.reverseFilters||{}};if("string"==typeof(null==t?void 0:t.filter)){const e=pm(t.duration)>0?1e3*t.duration:500;return{filters:{[t.filter]:{duration:e,power:{from:0,to:1}}},reverseFilters:{}}}return fm[dm]}(t),n=Mu({},(null==e?void 0:e.filters)||{},Nu(null==t?void 0:t.filters)?t.filters:{}),i=function(t={}){const e={};return Object.keys(t).forEach((n=>{const i=t[n];if(!1===i)return void(e[n]=!1);const r=JSON.parse(JSON.stringify(Nu(i)?i:{}));Object.values(r).forEach((t=>function(t){if(t&&"object"==typeof t&&"from"in t&&"to"in t){const e=t.from;t.from=t.to,t.to=e}}(t))),e[n]=r})),e}(n),r=Mu({},(null==e?void 0:e.reverseFilters)||{},Nu(null==t?void 0:t.reverseFilters)?t.reverseFilters:{});return{baseFilters:n,reverseFilters:Mu({},i,r)}}(t),r=pm(null==t?void 0:t.duration),o=r>0?1e3*r:null,s=ym(n),a=ym(i),l=o&&s>0?o/s:1,c=o&&a>0?o/a:1,u=o||s||500,d=o||a||u,h=vm(null==t?void 0:t.color),f=e.captureTexture(),p=Date.now(),m=bm(n,p,l,o,h);return this.#C={phase:"out",startTime:p,outDurationMs:u,inDurationMs:d,color:h,captureId:f,baseFilters:n,reverseFilters:i,outScale:l,inScale:c,durationOverrideMs:o,outGraph:m,outSignature:km(m),inGraph:null,inSignature:null},{captureId:f,outDurationMs:u,inDurationMs:d}}beginIncoming(){if(!this.#C)return;const t=Date.now(),e=bm(this.#C.reverseFilters,t,this.#C.inScale,this.#C.durationOverrideMs,this.#C.color);this.#C={...this.#C,phase:"in",startTime:t,inGraph:e,inSignature:km(e)}}reset(t){var e;t&&"function"==typeof t.disposeTexture&&null!==(e=this.#C)&&void 0!==e&&e.captureId&&t.disposeTexture(this.#C.captureId),this.#C=null}getState(){return this.#C}buildOutgoingGraph(){const t=this.#C;return t&&"out"===t.phase&&Array.isArray(t.outGraph)&&t.outGraph.length?{signature:`transition:out:${t.outSignature||""}`,forceUpdate:!1,graph:t.outGraph}:null}buildIncomingGraph(){const t=this.#C;return t&&"in"===t.phase&&Array.isArray(t.inGraph)&&t.inGraph.length?{signature:`transition:in:${t.inSignature||""}`,forceUpdate:!1,graph:t.inGraph}:null}}let wm;const _m=[/firefox\/(\d+)/,/edg\/(\d+)/,/opr\/(\d+)/,/chrome\/(\d+)/];function Tm(){const t=Lu&&Lu.navigator&&(Lu.navigator.userAgent||Lu.navigator.platform||Lu.navigator.vendor)||"";if(wm&&wm.ua===t)return wm;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile"),o=!!t&&!r,s=e.includes("firefox/"),a=function(t=""){for(let e=0;e<_m.length;e+=1){const n=_m[e],i=t.match(n);if(!i)continue;const r=Number(i[1]);return Number.isFinite(r)?r:null}if(t.includes("safari/")&&t.includes("version/")){const e=t.match(/version\/(\d+)/);if(!e)return null;const n=Number(e[1]);return Number.isFinite(n)?n:null}return null}(e);return wm={ua:t,lowerUA:e,isAndroid:n,isiOS:i,isMobile:r,isDesktop:o,isFirefox:s,browserMajorVersion:a},wm}function Im(){return Tm().ua}function Em(){return Tm().isAndroid}function Sm(){return Tm().isiOS}function Am(){return Tm().isMobile}function Nm(){return Tm().isDesktop}function Mm(){return Tm().isFirefox}function Fm(){return Tm().browserMajorVersion}var Om={getUserAgent:Im,isAndroid:Em,isiOS:Sm,isMobile:Am,isDesktop:Nm,isFirefox:Mm,getBrowserMajorVersion:Fm},Cm=Object.freeze({__proto__:null,default:Om,getBrowserMajorVersion:Fm,getUserAgent:Im,isAndroid:Em,isDesktop:Nm,isFirefox:Mm,isMobile:Am,isiOS:Sm});const Pm=Object.freeze({NODE_ADD:"node:add",NODE_CHILDREN_CHANGED:"node:childrenchanged",NODE_LOADED:"node:loaded",NODE_LOAD_ERROR:"node:loaderror",PLACEMENT_ADDED:"placement:added",RENDER_PLACEMENT_ADDED:"renderplacement:added",TIMELINE_TIME_UPDATE:"timeline:timeupdate",TIMELINE_STATE_CHANGE:"statechange",TIMELINE_SEEKING:"seeking",TIMELINE_SEEKED:"seeked",TIMELINE_RESET:"timeline:reset",TIMELINE_PLAYER_STATE:"player:state",TIMELINE_CUEPOINT:"cuepoint",VISUAL_FRAMES_AVAILABLE:"visualframesavailable",TRACK_BUFFER_UPDATE:"track:bufferupdate",TRACK_READY:"track:ready",TRACK_UNDERFLOW:"track:underflow",CLOCK_TICK:"tick",DECODE_READY:"decode:ready",DECODE_ERROR:"decode:error",DECODER_AUDIO:"decoder:audio",DECODER_FRAME:"decoder:frame",DECODER_INIT:"decoder:init",DECODER_ERROR:"decoder:error",QOE_SCORE:"qoescore",QOE_STATUS:"qoestatus",CONTAINER_RESIZE:"containerresize"});function Dm(t,e){const n={};return Number.isFinite(t)&&(n.time=t),"string"==typeof e&&(n.source=e),n}function Rm({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,pts:o,duration:s,frame:a,audioBuffer:l}={}){const c={};return t&&(c.placementId=t),e&&(c.nodeId=e),n&&(c.trackId=n),i&&(c.segmentId=i),r&&(c.trackType=r),Number.isFinite(o)&&(c.pts=o),Number.isFinite(s)&&(c.duration=s),a&&(c.frame=a),l&&(c.audioBuffer=l),c}function Lm({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,error:o}={}){const s={};return t&&(s.placementId=t),e&&(s.nodeId=e),n&&(s.trackId=n),i&&(s.segmentId=i),r&&(s.trackType=r),o&&(s.error=o),s}const Bm="Idle",zm="Playing",Wm="FirstFramePending",Um="Waiting",jm="Paused",$m="Seeking",qm="Resetting";function Vm(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function Gm(t,e){return!!Array.isArray(t)&&t.some((t=>(null==t?void 0:t.type)===e))}function Hm(t){const e=Number(t);return!Number.isFinite(e)||e<=0?null:{type:"retarget",options:{frames:Array.from({length:e},(()=>({fitType:"fill"})))},meta:{source:"panAndScan"}}}function Km(t){return Array.isArray(t)?t.filter((t=>{return!("panAndScan"===(null==(e=t)||null===(n=e.meta)||void 0===n?void 0:n.source));var e,n})):[]}const Xm=2073600;function Ym(t,e){const n=Number(t);return Number.isFinite(n)&&n>0?n:e}function Qm(t,e){if(null==t)return e;const n=Number(t);return Number.isFinite(n)?n:e}var Jm=new WeakMap,Zm=new WeakMap,tv=new WeakMap,ev=new WeakMap,nv=new WeakMap,iv=new WeakMap,rv=new WeakMap,ov=new WeakMap,sv=new WeakMap,av=new WeakMap,lv=new WeakMap,cv=new WeakMap,uv=new WeakMap,dv=new WeakMap,hv=new WeakMap,fv=new WeakMap,pv=new WeakMap,mv=new WeakMap,vv=new WeakMap,gv=new WeakMap,yv=new WeakMap,bv=new WeakMap,kv=new WeakMap,xv=new WeakMap,wv=new WeakMap,_v=new WeakMap,Tv=new WeakMap,Iv=new WeakMap,Ev=new WeakMap,Sv=new WeakMap,Av=new WeakSet;class Nv extends Pu{static get pipelineNodeId(){return"ekoplayer-render-pipeline"}get defaults(){return{defaultRenderParams:void 0,resourceLimits:{enabled:!0,maxCanvasPixels:Xm,maxDevicePixelRatio:0,renderScale:1,transitionMinFrameIntervalMs:33}}}constructor(...t){super(...t),j(this,Av),W(this,Jm,void 0),W(this,Zm,void 0),W(this,tv,void 0),W(this,ev,void 0),W(this,nv,void 0),W(this,iv,void 0),W(this,rv,void 0),W(this,ov,void 0),W(this,sv,void 0),W(this,av,void 0),W(this,lv,null),W(this,cv,null),W(this,uv,void 0),W(this,dv,void 0),W(this,hv,void 0),W(this,fv,[]),W(this,pv,[]),W(this,mv,null),W(this,vv,null),W(this,gv,null),W(this,yv,null),W(this,bv,null),W(this,kv,null),W(this,xv,new Map),W(this,wv,null),W(this,_v,null),W(this,Tv,!1),W(this,Iv,!1),W(this,Ev,[]),W(this,Sv,null);const[e,n,i]=t;U(Jm,this,e),U(Zm,this,n),U(tv,this,i),z(Jm,this)&&"function"==typeof z(Jm,this).enableFirstFrameRenderedGate&&z(Jm,this).enableFirstFrameRenderedGate(),U(av,this,new cm),U(uv,this,new xm),U(dv,this,null),U(hv,this,null),U(gv,this,null),U(ev,this,(t=>L(Av,this,lg).call(this,t))),z(Jm,this)&&"function"==typeof z(Jm,this).on&&(z(Jm,this).on(Pm.VISUAL_FRAMES_AVAILABLE,z(ev,this)),U(nv,this,(()=>{var t,e,n,i;L(Av,this,Cv).call(this),L(Av,this,ig).call(this,0),U(pv,this,[]),U(mv,this,null),U(lv,this,null),U(cv,this,null),L(Av,this,Hv).call(this),U(wv,this,null);(null===(t=z(uv,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t))||null===(n=z(uv,this))||void 0===n||null===(i=n.reset)||void 0===i||i.call(n,z(dv,this))})),z(Jm,this).on(Pm.TIMELINE_SEEKING,z(nv,this)),U(iv,this,(()=>L(Av,this,Pv).call(this))),z(Jm,this).on(Pm.TIMELINE_RESET,z(iv,this)),U(sv,this,(()=>L(Av,this,Qv).call(this))),z(Jm,this).on(Pm.TIMELINE_TIME_UPDATE,z(sv,this)),U(rv,this,(()=>{L(Av,this,cg).call(this)&&z(vv,this)&&L(Av,this,lg).call(this,z(vv,this))})),z(Jm,this).on(Pm.TIMELINE_STATE_CHANGE,z(rv,this))),U(ov,this,(()=>{U(mv,this,null),z(vv,this)&&L(Av,this,cg).call(this)&&L(Av,this,lg).call(this,z(vv,this))})),z(tv,this)&&"function"==typeof z(tv,this).on&&z(tv,this).on(Pm.CONTAINER_RESIZE,z(ov,this))}get name(){return"Renderer"}onDispose(){z(Jm,this)&&z(ev,this)&&"function"==typeof z(Jm,this).off&&z(Jm,this).off(Pm.VISUAL_FRAMES_AVAILABLE,z(ev,this)),z(Jm,this)&&z(nv,this)&&"function"==typeof z(Jm,this).off&&z(Jm,this).off(Pm.TIMELINE_SEEKING,z(nv,this)),z(Jm,this)&&z(iv,this)&&"function"==typeof z(Jm,this).off&&z(Jm,this).off(Pm.TIMELINE_RESET,z(iv,this)),z(Jm,this)&&z(sv,this)&&"function"==typeof z(Jm,this).off&&z(Jm,this).off(Pm.TIMELINE_TIME_UPDATE,z(sv,this)),z(Jm,this)&&z(rv,this)&&"function"==typeof z(Jm,this).off&&z(Jm,this).off(Pm.TIMELINE_STATE_CHANGE,z(rv,this)),z(tv,this)&&z(ov,this)&&"function"==typeof z(tv,this).off&&z(tv,this).off(Pm.CONTAINER_RESIZE,z(ov,this)),L(Av,this,Mv).call(this),U(ev,this,null),U(nv,this,null),U(iv,this,null),U(sv,this,null),U(rv,this,null),U(ov,this,null),U(av,this,null),U(uv,this,null),U(xv,this,null),U(wv,this,null),U(Zm,this,null),U(tv,this,null),U(Jm,this,null)}startTransition(t={}){var e;const n=null===(e=z(Zm,this))||void 0===e?void 0:e.element;if(!n)return null;if(L(Av,this,Rv).call(this,n),!z(dv,this))return null;const i=z(uv,this).start({shaderGraph:z(dv,this),duration:null==t?void 0:t.duration,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition});return U(gv,this,z(vv,this)||null),L(Av,this,og).call(this),i}beginTransitionIn(t={}){var e,n;null!==(e=z(uv,this))&&void 0!==e&&null!==(n=e.beginIncoming)&&void 0!==n&&n.call(e,t),U(gv,this,null),L(Av,this,og).call(this)}resetTransition(){var t,e;null!==(t=z(uv,this))&&void 0!==t&&null!==(e=t.reset)&&void 0!==e&&e.call(t,z(dv,this)),U(gv,this,null),L(Av,this,sg).call(this)}}function Mv(){if(L(Av,this,Cv).call(this),z(uv,this)&&"function"==typeof z(uv,this).reset&&z(uv,this).reset(z(dv,this)),L(Av,this,ig).call(this,0),z(dv,this)&&"function"==typeof z(dv,this).dispose)try{z(dv,this).dispose()}catch(t){}U(dv,this,null),U(hv,this,null),U(fv,this,[]),U(pv,this,[]),U(mv,this,null),U(lv,this,null),U(cv,this,null),U(vv,this,null),U(gv,this,null),L(Av,this,sg).call(this),L(Av,this,Hv).call(this),U(wv,this,null)}function Fv(){return{schedule:"function"==typeof Lu.requestAnimationFrame?Lu.requestAnimationFrame.bind(Lu):t=>setTimeout(t,16),cancel:"function"==typeof Lu.cancelAnimationFrame?Lu.cancelAnimationFrame.bind(Lu):clearTimeout}}function Ov(t){U(Ev,this,z(Ev,this).filter((e=>e!==t))),z(Ev,this).length||U(Sv,this,null)}function Cv(){z(Sv,this)&&z(Ev,this).forEach((t=>z(Sv,this).call(this,t))),U(Ev,this,[]),U(Sv,this,null),U(Iv,this,!1)}function Pv(){L(Av,this,Cv).call(this),U(Tv,this,!1)}function Dv(){if(z(Tv,this)||z(Iv,this))return;const{schedule:t,cancel:e}=L(Av,this,Fv).call(this);let n;U(Sv,this,e),U(Iv,this,!0),n=t((()=>{let e;L(Av,this,Ov).call(this,n),e=t((()=>{L(Av,this,Ov).call(this,e),U(Iv,this,!1),z(Tv,this)||(U(Tv,this,!0),z(Jm,this)&&"function"==typeof z(Jm,this).notifyFirstFrameRendered&&z(Jm,this).notifyFirstFrameRendered())})),z(Ev,this).push(e)})),z(Ev,this).push(n)}function Rv(t){if(z(dv,this)||!t)return;const e=this,n={dest:t,src:(t,n)=>{U(hv,e,n)}};U(dv,e,new kp(n,{userWillCallRender:!0,glOptions:{contextType:"webgl2"},performanceToggles:{useCanvasSizedFilterTargets:!0}})),z(dv,e)&&"function"==typeof z(dv,e).addNodes&&z(dv,e).addNodes({[me.pipelineNodeId]:{type:"composite",options:{graph:[]}}})}function Lv(){var t;const e=null===(t=this.settings)||void 0===t?void 0:t.resourceLimits;return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function Bv(){const t=L(Av,this,Lv).call(this).enabled;return!0===t||!1!==t&&Sm()}function zv(){if(!L(Av,this,Bv).call(this))return 0;const t=Qm(L(Av,this,Lv).call(this).transitionMinFrameIntervalMs,33);return Number.isFinite(t)&&t>0?t:0}function Wv(t,e,n={}){const i=!0===(null==n?void 0:n.useDevicePixelRatio),r=L(Av,this,Bv).call(this),o=i?Ym(null==Lu?void 0:Lu.devicePixelRatio,1):1;let s=o,a=0;if(r){const t=L(Av,this,Lv).call(this);a=Qm(t.maxCanvasPixels,Xm);const e=Qm(t.maxDevicePixelRatio,0);s=Ym(t.renderScale,1)*(e>0?Math.min(o,e):o)}let l=Math.max(1,Math.round(t*s)),c=Math.max(1,Math.round(e*s));if(r&&a>0){const t=l*c;if(t>a){const e=Math.sqrt(a/t);l=Math.max(1,Math.floor(l*e)),c=Math.max(1,Math.floor(c*e))}}return{width:l,height:c}}function Uv(t=[],e={}){var n;const i=null===(n=z(Zm,this))||void 0===n?void 0:n.element,r=z(hv,this);if(!i||"function"!=typeof r)return!1;let o=0,s=0;const a=!0===(null==e?void 0:e.useViewportSize);if(a){var l,c,u,d,h,f;const t=Number(null!==(l=null===(c=z(tv,this))||void 0===c?void 0:c.containerWidth)&&void 0!==l?l:null===(u=z(tv,this))||void 0===u?void 0:u.width),e=Number(null!==(d=null===(h=z(tv,this))||void 0===h?void 0:h.containerHeight)&&void 0!==d?d:null===(f=z(tv,this))||void 0===f?void 0:f.height);if(Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0)o=Math.round(t),s=Math.round(e);else{const t=Number(i.clientWidth),e=Number(i.clientHeight);Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0&&(o=Math.round(t),s=Math.round(e))}}if(!(o>0&&s>0)){if(!Array.isArray(t)||!t.length)return;for(let e=0;e<t.length;e+=1){var p;const n=null===(p=t[e])||void 0===p?void 0:p.frame,i=Number((null==n?void 0:n.displayWidth)||(null==n?void 0:n.codedWidth)||(null==n?void 0:n.videoWidth)||(null==n?void 0:n.naturalWidth)||(null==n?void 0:n.width)),r=Number((null==n?void 0:n.displayHeight)||(null==n?void 0:n.codedHeight)||(null==n?void 0:n.videoHeight)||(null==n?void 0:n.naturalHeight)||(null==n?void 0:n.height));!Number.isFinite(i)||!Number.isFinite(r)||i<=0||r<=0||(i>o&&(o=i),r>s&&(s=r))}}if(!(o>0&&s>0))return!1;const m=L(Av,this,Wv).call(this,o,s,{useDevicePixelRatio:a}),v=m.width,g=m.height,y=z(mv,this);return!(y&&y.width===v&&y.height===g||(U(mv,this,{width:v,height:g}),r(null,null,v,g),0))}function jv(t){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.trackId,i=null==t?void 0:t.segmentId,r=null==t?void 0:t.presentationTime;return e&&n&&i&&Number.isFinite(r)?`${e}:${n}:${i}@${r}`:null}function $v(t,e,n){const i=Number.isFinite(null==t?void 0:t.duration)&&t.duration>0?t.duration:void 0;let r;if(i&&Number.isFinite(null==t?void 0:t.offset)){const n=(e-t.offset)/i;r=n<0?0:n>1?1:n}const o=L(Av,this,qv).call(this,t),s=L(Av,this,Vv).call(this,o);return sm.getRenderTiming({type:o,timing:{duration:i,normalizedTime:r},timelineTime:e,active:t,renderNodeParams:n,state:s})}function qv(t){return sm.normalizeType(null==t?void 0:t.type)||sm.defaultType}function Vv(t){if(!t||!z(xv,this))return null;let e=z(xv,this).get(t);return e||(e={},z(xv,this).set(t,e)),e}function Gv(t){if(!t||!z(xv,this))return;const e=z(xv,this).get(t);e&&sm.resetRenderState(t,e),z(xv,this).delete(t)}function Hv(){z(xv,this)&&(sm.resetAllRenderStates(z(xv,this)),z(xv,this).clear())}function Kv(t,e,n,i){const r=L(Av,this,qv).call(this,t);z(wv,this)&&z(wv,this)!==r&&L(Av,this,Gv).call(this,z(wv,this)),U(wv,this,r);const o=L(Av,this,Vv).call(this,r);return sm.prepareRenderFrames({type:r,frames:e,timelineTime:n,timeline:z(Jm,this),active:t,renderNodeParams:i,state:o})}function Xv(t){var e;return null!=t&&t.params&&"object"==typeof t.params?t.params:!t&&null!==(e=this.settings)&&void 0!==e&&e.defaultRenderParams&&"object"==typeof this.settings.defaultRenderParams?this.settings.defaultRenderParams:{}}function Yv(t){return t?String(t.renderPlacementId||t.type||"unknown"):"default"}function Qv(){if(!z(Jm,this)||!z(vv,this))return;const t=z(Jm,this).currentTime,e=z(Jm,this).getActiveRenderPlacement(t),n=L(Av,this,Yv).call(this,e);n!==z(_v,this)&&(U(_v,this,n),L(Av,this,lg).call(this,{...z(vv,this),time:t}))}function Jv(t){return!t||"object"!=typeof t||!Object.prototype.hasOwnProperty.call(t,"panAndScan")||!1!==t.panAndScan}function Zv(t,e){const n=L(Av,this,Xv).call(this,t),i=null==n?void 0:n.stages;let r=Vm(null==i?void 0:i.pre),o=Vm(null==i?void 0:i.post);const s=L(Av,this,Jv).call(this,n),a=L(Av,this,qv).call(this,t),l=Gm(r,"retarget")||Gm(o,"retarget");if(s&&!l){const t=sm.getPanAndScanTarget(a);if("pre"===t){const t=Hm(Array.isArray(e)?e.length:0);t&&(r=[t,...r])}else if("post"===t){const t=Hm(1);t&&(o=[...o,t])}}else s||(r=Km(r),o=Km(o));return{preStages:r,postStages:o,renderNodeParams:n}}function tg(t,e,n,i,r){const o=r||L(Av,this,$v).call(this,t,n,i),s=L(Av,this,Zv).call(this,t,e);return z(av,this).build({layoutType:null==t?void 0:t.type,frames:e,preStages:s.preStages,postStages:s.postStages,normalizedTime:o.normalizedTime,renderNodeDuration:o.duration,renderNodeParams:s.renderNodeParams,timelineTime:n})}function eg(){var t,e;const n=null===(t=z(uv,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t);return"out"===(null==n?void 0:n.phase)?z(uv,this).buildOutgoingGraph():"in"===(null==n?void 0:n.phase)?z(uv,this).buildIncomingGraph():null}function ng(t,e,n,i){const r=n||e!==z(lv,this),o=r||i;return r&&z(dv,this)&&"function"==typeof z(dv,this).updateOptions&&(z(dv,this).updateOptions(me.pipelineNodeId,{graph:t}),U(lv,this,e)),z(dv,this)&&"function"==typeof z(dv,this).selectNode&&z(cv,this)!==me.pipelineNodeId&&(z(dv,this).selectNode(me.pipelineNodeId),U(cv,this,me.pipelineNodeId)),!(!o||!z(dv,this)||"function"!=typeof z(dv,this).render||(z(dv,this).render({noRaf:!0}),0))}function ig(t){if(!Array.isArray(z(fv,this))||!z(fv,this).length)return;const e=Number.isFinite(t)?Math.max(0,t):0;if(!(z(fv,this).length<=e)){for(let t=e;t<z(fv,this).length;t+=1){const e=z(fv,this)[t];if(e&&z(dv,this)&&"function"==typeof z(dv,this).releaseTexture)try{z(dv,this).releaseTexture(e)}catch(t){}}z(fv,this).length=e,z(pv,this).length=e}}function rg(t=[]){if(!z(dv,this)||"function"!=typeof z(dv,this).addTexture)return!1;if("function"==typeof z(dv,this).isContextUnavailable&&z(dv,this).isContextUnavailable())return!1;if(!Array.isArray(t)||!t.length)return L(Av,this,ig).call(this,0),!1;L(Av,this,ig).call(this,t.length);let e=!1;for(let i=0;i<t.length;i+=1){var n;z(fv,this)[i]||"function"!=typeof z(dv,this).addTexture||(z(fv,this)[i]=z(dv,this).addTexture(null,"frame",i));const r=L(Av,this,jv).call(this,t[i]),o=null===(n=t[i])||void 0===n?void 0:n.frame;if(z(fv,this)[i]&&o&&(!r||r!==z(pv,this)[i]))try{z(fv,this)[i].fill(o),z(pv,this)[i]=r,e=!0}catch(t){}}return e}function og(){if(z(yv,this))return;const t="function"==typeof Lu.requestAnimationFrame?t=>Lu.requestAnimationFrame(t):t=>setTimeout(t,16),e="function"==typeof Lu.cancelAnimationFrame?t=>Lu.cancelAnimationFrame(t):clearTimeout;U(bv,this,e);const n=()=>{var e,i;if(null!==(e=z(uv,this))&&void 0!==e&&null!==(i=e.getState)&&void 0!==i&&i.call(e)){if(z(vv,this)){const t=L(Av,this,zv).call(this),e=Date.now();(!t||!z(kv,this)||e-z(kv,this)>=t)&&(U(kv,this,e),L(Av,this,lg).call(this,z(vv,this)))}U(yv,this,t(n))}else U(yv,this,null)};U(yv,this,t(n))}function sg(){z(yv,this)&&z(bv,this)&&z(bv,this).call(this,z(yv,this)),U(yv,this,null),U(bv,this,null),U(kv,this,null)}function ag(t){var e,n;const i=null===(e=z(uv,this))||void 0===e||null===(n=e.getState)||void 0===n?void 0:n.call(e);return"out"===(null==i?void 0:i.phase)&&z(gv,this)?z(gv,this):t}function lg(t={}){var e,n;const i=null===(e=z(Zm,this))||void 0===e?void 0:e.element,r=null===(n=z(Zm,this))||void 0===n?void 0:n.gl;if(!i||!r)return;if(t&&U(vv,this,t),!L(Av,this,cg).call(this))return;const o=L(Av,this,ag).call(this,t),s=Number.isFinite(null==o?void 0:o.time)?o.time:void 0;if(!Number.isFinite(s))return;if(L(Av,this,Rv).call(this,i),!z(dv,this))return;const a=z(Jm,this)&&"function"==typeof z(Jm,this).getActiveRenderPlacement?z(Jm,this).getActiveRenderPlacement(s):void 0,l=L(Av,this,Yv).call(this,a);l!==z(_v,this)&&U(_v,this,l);const c=Array.isArray(null==o?void 0:o.frames)?o.frames:[],u=L(Av,this,Xv).call(this,a),d=L(Av,this,Jv).call(this,u),h=L(Av,this,Kv).call(this,a,c,s,u),f=L(Av,this,$v).call(this,a,s,u),p=L(Av,this,Uv).call(this,h,{useViewportSize:d}),m=L(Av,this,rg).call(this,h),v=L(Av,this,tg).call(this,a,h,s,u,f),g=L(Av,this,eg).call(this);let y=v.graph,b=v.signature,k=!!v.isDynamic;g&&Array.isArray(g.graph)&&g.graph.length&&(y=y.concat(g.graph),b=`${b}|${g.signature||"transition"}`,k=k||!!g.forceUpdate);const x=p||m||k||g&&Array.isArray(g.graph)&&g.graph.length;L(Av,this,ng).call(this,y,b,k,x)&&h.length&&L(Av,this,Dv).call(this)}function cg(){var t;const e=null===(t=z(Jm,this))||void 0===t?void 0:t.state;return e===Bm||e===Wm||e===zm||e===jm}function ug(t){return"number"==typeof t&&Number.isFinite(t)&&t>0}function dg(t){return t&&"resource"===t.entryType&&t.transferSize>0&&t.duration>0&&t.responseEnd>=t.requestStart}function hg(t){return Array.isArray(t)&&0!==t.length?t.reduce(((t,e)=>t+e),0)/t.length:NaN}me=Nv;var fg=new WeakMap,pg=new WeakMap,mg=new WeakMap,vg=new WeakMap,gg=new WeakSet;class yg extends Pu{get name(){return"DownloadSpeedGuesstimator"}get defaults(){return{persistentStorage:{key:"ekoDownloadSpeedKbps",ttl:-1},priorities:[["resourceTiming","downlink","persistentValue"],["resourceTiming","downlink"],["resourceTiming","persistentValue","ua"],["resourceTiming","ua","defaultKbps"],["downlink","persistentValue"],["downlink"],["persistentValue"],["connectionType"],["ua"],["defaultKbps"]],defaultKbps:2500,connectionType:{"slow-2g":50,"2g":70,"3g":700,"4g":3500,bluetooth:750,cellular:750,ethernet:3500,wifi:2500,wimax:2500,none:0},ua:{desktop:2500,ios:2500,android:2500}}}constructor(...t){super(...t),j(this,gg),W(this,fg,void 0),W(this,pg,void 0),W(this,mg,void 0),W(this,vg,void 0),U(fg,this,!!(Lu&&Lu.navigator&&Lu.navigator.connection)),U(pg,this,!(!Lu||!Lu.performance||"function"!=typeof Lu.performance.getEntriesByType)),U(mg,this,L(gg,this,kg).call(this)),U(vg,this,L(gg,this,Ig).call(this))}guesstimate(){const t=L(gg,this,Sg).call(this);this.log.debug("[guesstimate] Data:",t);const e=L(gg,this,Eg).call(this,t),n=ug(e)?e:t.defaultKbps;return L(gg,this,xg).call(this,n),this.log.info(`[guesstimate] Result: ${n} kbps`),n}update(t){ug(t)&&L(gg,this,xg).call(this,t)}onDispose(){U(mg,this,void 0),U(vg,this,void 0)}}function bg(){return Math.round(Date.now()/1e3)}function kg(){try{if(!Lu||!Lu.localStorage||"function"!=typeof Lu.localStorage.getItem)return}catch(t){return}const t=this.settings.persistentStorage.key,e=Lu.localStorage.getItem(t);if(e)try{const t=JSON.parse(e),n=this.settings.persistentStorage.ttl,i=L(gg,this,bg).call(this)-t.timestamp;if("number"==typeof n&&n>=0&&i>n)return null;if(!ug(t.value))return;return t.value}catch(t){return}}function xg(t){if(!ug(t))return;try{if(!Lu||!Lu.localStorage||"function"!=typeof Lu.localStorage.setItem)return}catch(t){return}const e=this.settings.persistentStorage.key,n=JSON.stringify({value:t,timestamp:L(gg,this,bg).call(this)});try{Lu.localStorage.setItem(e,n),U(mg,this,t)}catch(t){}}function wg(){return Lu&&Lu.performance&&"function"==typeof Lu.performance.getEntriesByType?hg(Lu.performance.getEntriesByType("resource").filter(dg).map((t=>8*t.transferSize/t.duration))):NaN}function _g(){if(!Lu||!Lu.navigator||!Lu.navigator.connection)return NaN;const t=Lu.navigator.connection.downlink;return ug(t)?1e3*t:NaN}function Tg(){if(!z(fg,this))return NaN;const t=Lu.navigator.connection,e=t.effectiveType||t.type,n=this.settings.connectionType||{};return e&&Object.prototype.hasOwnProperty.call(n,e)?n[e]:NaN}function Ig(){const t=this.settings.ua||{};return Em()?t.android:Sm()?t.ios:t.desktop}function Eg(t){const e=Array.isArray(this.settings.priorities)?this.settings.priorities:[];for(let n=0;n<e.length;n+=1){const i=e[n];if(!Array.isArray(i)||0===i.length)continue;const r=i.map((e=>t[e])).filter((t=>ug(t)));if(r.length===i.length)return this.log.debug("[#selectFromPriorities] Selected from priorities:",i,"with values:",r),hg(r)}return NaN}function Sg(){const t=this.settings.testOverrides||{},e=ug(t.resourceTiming)?t.resourceTiming:L(gg,this,wg).call(this),n=ug(t.downlink)?t.downlink:L(gg,this,_g).call(this),i=ug(t.persistentValue)?t.persistentValue:z(mg,this),r=ug(t.connectionType)?t.connectionType:L(gg,this,Tg).call(this),o=ug(t.ua)?t.ua:z(vg,this);return{defaultKbps:this.settings.defaultKbps,resourceTiming:e,downlink:n,connectionType:r,persistentValue:i,ua:o}}const Ag=new Au;function Ng(t){return"string"!=typeof t||0===t.length?[]:t.split(".").filter((t=>t.length>0))}function Mg(t){if("string"!=typeof t)return!1;if(0===t.length)return!1;const e=Number(t);return Number.isInteger(e)&&String(e)===t}function Fg(t){return null!==t&&"object"==typeof t}function Og(t,e,n){const i=Ng(e);if(0===i.length)return void 0===t?n:t;let r=t;for(let t=0;t<i.length;t+=1){if(null==r)return n;if(r=r[i[t]],void 0===r)return n}return void 0===r?n:r}function Cg(t,e,n){if(!Fg(t))return t;const i=Ng(e);if(0===i.length)return t;let r=t;for(let t=0;t<i.length;t+=1){const e=i[t];if(t===i.length-1){r[e]=n;break}Fg(r[e])||(r[e]=Mg(i[t+1])?[]:{}),r=r[e]}return t}const Pg={get:(t,e)=>Lu&&Lu.eko?Og(Lu.eko,t,e):e,set(t,e){if(Lu)return Lu.eko&&"object"==typeof Lu.eko||(Lu.eko={}),Cg(Lu.eko,t,e),Lu.eko}},Dg=Lu&&Lu.performance,Rg=Dg&&"function"==typeof Dg.now?()=>Dg.now():()=>Date.now();function Lg(){return"undefined"==typeof AbortController?null:new AbortController}function Bg(){const t=new Error("The operation was aborted");return t.name="AbortError",t.code="ABORT_ERR",t}function zg(t,e){return!(!e||!e.aborted)||!!t&&("AbortError"===t.name||"ABORT_ERR"===t.code||20===t.code)}const Wg=2,Ug=100,jg=2,$g="runtime.downloadSpeedSamples",qg=Su("download","warn");function Vg(t){return new Promise((e=>{setTimeout(e,t)}))}function Gg(t){return t>=500}function Hg(t){if(!t||!t.headers||"function"!=typeof t.headers.get)return 0;const e=t.headers.get("content-length");if(!e)return 0;const n=Number(e);return Number.isNaN(n)||n<0?0:n}function Kg(t,e,n,i,r,o){const s={bytes:t,durationMs:e,kbps:e>0?8*t/e:0,startTime:n,endTime:i,url:o};try{let t=Pg.get(r);t||(t=[],Pg.set(r,t)),t.push(s)}catch(t){}return s}async function Xg(t,e={}){const{method:n="GET",headers:i,body:r,retries:o=Wg,retryDelay:s=Ug,backoffFactor:a=jg,samplesTargetPath:l=$g,fetch:c,loglevel:u="warn",cache:d,signal:h,onProgress:f,returnType:p="default"}=e;qg.setLevel(u);const m=function(t){if(t)return t;if(Lu&&"function"==typeof Lu.fetch)return Lu.fetch.bind(Lu);throw new Error("fetch is not available in this environment")}(c);let v=0,g=s;for(;;){if(h&&h.aborted)throw Bg();const e=Rg();try{const s=await m(t,{method:n,headers:i,body:r,cache:d,mode:"cors",signal:h});if(h&&h.aborted)throw Bg();if(!s.ok){if(v<o&&Gg(s.status)){v+=1,qg.warn(`[${t}] Download attempt #${v} failed with status ${s.status}, retrying in ${g}ms...`),await Vg(g),g*=a;continue}qg.error(`[${t}] Download attempt #${v} failed with status ${s.status}, no more retries.`);const e=new Error(`Download failed with status ${s.status}`);throw e.status=s.status,e}let c=Rg();const u=Hg(s),y="arrayBuffer"===p||"bytes"===p,b=y&&"function"==typeof f;let k,x,w,_,T,I=0;if(y&&s.body&&"function"==typeof s.body.getReader&&b){const t=s.body.getReader(),e=[];for(;;){if(h&&h.aborted)throw Bg();const{done:n,value:i}=await t.read();if(n)break;if(i&&i.length){const t=Rg();Number.isFinite(_)||(_=t),T=t,e.push(i),I+=i.length,f({loaded:I,total:u||void 0,chunk:i})}}k=new Uint8Array(I);let n=0;e.forEach((t=>{k.set(t,n),n+=t.length})),c=Rg()}else if(y){const t=await s.arrayBuffer();k=new Uint8Array(t),I=k.length,c=Rg()}else"text"===p?(x=await s.text(),c=Rg()):"json"===p&&(w=await s.json(),c=Rg());if(h&&h.aborted)throw Bg();const E=y?k?k.length:I:("text"===p&&"string"==typeof x?x.length:0)||("json"===p&&w?JSON.stringify(w).length:0),S=u||E||0;let A=e,N=c;Number.isFinite(_)&&(A=_,Number.isFinite(T)&&(N=Math.max(T,c))),(!Number.isFinite(A)||!Number.isFinite(N)||N<A)&&(A=e,N=c);const M=Math.max(0,N-A),F=Kg(S,M,A,N,l,t);try{Ag.trigger("download:sample",F)}catch(t){}const O={response:s,bytes:S,durationMs:M,kbps:F.kbps,startTime:F.startTime,endTime:F.endTime};if("default"===p)return O;if("arrayBuffer"===p||"bytes"===p){const t=k||new Uint8Array(await s.arrayBuffer());return"arrayBuffer"===p?t.buffer:t}return"text"===p?x:"json"===p?w:O}catch(e){if(zg(e,h))throw"AbortError"===e.name?e:Bg();if(!(v<o)||e.status&&!Gg(e.status))throw qg.error(`[${t}] Download attempt #${v} failed with error ${e}, no more retries.`),e;v+=1,qg.warn(`[${t}] Download attempt #${v} failed with error ${e}, retrying in ${g}ms...`),await Vg(g),g*=a}}}const Yg={disabledTracks:{default:["audio"],targetPaths:["NodeRepository.disabledTracks"]},muted:{default:!1,targetPaths:["AudioPlaybackManager.muted"]},volume:{default:1,targetPaths:["AudioPlaybackManager.volume"]},encodeProfile:{default:null,targetPaths:["AssetsDeliveryService.profile"]},forceVideoCodec:{default:void 0,targetPaths:["NodeRepository.forceVideoCodec"]},forceImageFallback:{default:!1,targetPaths:["NodeRepository.forceImageFallback"]},mediaHostRewriteMap:{default:{"storageeko.s3.amazonaws.com":"https://storage.eko.com","studioz-post.s3.amazonaws.com":"https://studioz-post.eko.com"},targetPaths:["NodeRepository.mediaHostRewriteMap"]},playbackRate:{default:1,targetPaths:["PlaybackClock.playbackRate"]},initialKbps:{default:"auto",targetPaths:["DownloadSpeed.initialKbps"]},defaultRenderParams:{default:void 0,targetPaths:["Renderer.defaultRenderParams"]},maxBufferedVideoFrames:{default:24,targetPaths:["Timeline.maxBufferedVideoFrames"]},waitingBufferAheadSeconds:{default:3,targetPaths:["Timeline.waitingBufferAheadSeconds"]},abrStrategy:{default:"auto",targetPaths:["ABRSelector.abrStrategy"]},segmentEvictionEnabled:{default:!0,targetPaths:["SegmentEvictionCoordinator.enabled"]},segmentEvictionBufferBehindSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferBehindSeconds"]},segmentEvictionBufferAheadSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferAheadSeconds"]},segmentEvictionMaxRetainedBytes:{default:52428800,targetPaths:["SegmentEvictionCoordinator.maxRetainedBytes"]},autoplay:{default:!0,targetPaths:["Idle.autoplay"]},autoPauseOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoPauseOnVisibilityChange"]},autoResumeOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoResumeOnVisibilityChange"]},trackingEnabled:{default:!0,targetPaths:["Tracker.trackingEnabled"]}},Qg=Object.freeze(Object.entries(Yg).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,"default")&&(t[e]=n.default),t)),{})),Jg=Su("config","warn");function Zg(t){return Qg[t]}var ty=new WeakMap,ey=new WeakMap,ny=new WeakMap,iy=new WeakMap,ry=new WeakMap,oy=new WeakSet;class sy extends Pu{get name(){return"DownloadSpeed"}get defaults(){return{alpha:.3,maxSamples:30,minBytesPerSample:1024,minDurationMs:5,maxSampleKbpsCap:void 0,ignoreCacheHits:!0,samplesPath:"runtime.downloadSpeedSamples",initialKbps:Zg("initialKbps"),probeUrl:void 0,defaultKbps:2500}}constructor(...t){super(...t),j(this,oy),W(this,ty,void 0),W(this,ey,void 0),W(this,ny,void 0),W(this,iy,void 0),W(this,ry,void 0),U(ny,this,[]),U(ey,this,0),U(ty,this,L(oy,this,cy).call(this)),U(ry,this,Lg()),U(iy,this,(t=>{L(oy,this,my).call(this,t,"event")})),L(oy,this,uy).call(this),Ag.on("download:sample",z(iy,this)),L(oy,this,dy).call(this),this.log.debug(`[#constructor] Initial estimate: ${z(ty,this)} kbps`)}getKbps(){return z(ty,this)}addSample(t){L(oy,this,my).call(this,t,"manual")}reset(){U(ny,this,[]),U(ey,this,0),U(ty,this,L(oy,this,cy).call(this))}onDispose(){z(ry,this)&&z(ry,this).abort(),U(ry,this,null),Ag.off("download:sample",z(iy,this)),U(ny,this,[]),U(ey,this,0),U(ty,this,void 0),U(iy,this,null)}}function ay(t,e){return!!(this.settings.ignoreCacheHits&&(0===e||t&&"boolean"==typeof t.cached&&t.cached||t&&"number"==typeof t.transferSize&&"number"==typeof t.encodedBodySize&&t.transferSize<=t.encodedBodySize))}function ly(t){if(!t||"object"!=typeof t)return null;const e=Number(t.bytes),n=Number(t.durationMs);let i=ug(t.kbps)?Number(t.kbps):NaN;return!ug(i)&&n>0&&ug(e)&&(i=8*e/n),ug(i)?e<=this.settings.minBytesPerSample||n<=this.settings.minDurationMs||L(oy,this,ay).call(this,t,e)?null:(ug(this.settings.maxSampleKbpsCap)&&i>this.settings.maxSampleKbpsCap&&(i=this.settings.maxSampleKbpsCap),{...t,bytes:e,durationMs:n,kbps:i}):null}function cy(){const t=this.settings.initialKbps;if(ug(t))return t;if("auto"===t)try{const t=(new yg).guesstimate();if(ug(t))return t}catch(t){}return this.settings.defaultKbps}function uy(){const t=Pg.get(this.settings.samplesPath,[]);if(!Array.isArray(t)||0===t.length)return;const e=t.slice(-this.settings.maxSamples);for(let t=0;t<e.length;t+=1)L(oy,this,my).call(this,e[t],"replay",{emit:!1})}async function dy(){if(!this.settings.probeUrl||z(ey,this)>0)return;const t=z(ry,this)?z(ry,this).signal:void 0;if(!t||!t.aborted)try{await Xg(this.settings.probeUrl,{cache:"no-store",samplesTargetPath:this.settings.samplesPath,signal:t})}catch(t){}}function hy(t){return"number"==typeof t.startTime&&"number"==typeof t.endTime&&Number.isFinite(t.startTime)&&Number.isFinite(t.endTime)&&t.startTime>=0&&t.endTime>t.startTime}function fy(t,e){if(!L(oy,this,hy).call(this,t)||!L(oy,this,hy).call(this,e))return 0;const n=Math.max(t.startTime,e.startTime);return Math.min(t.endTime,e.endTime)-n}function py(t){if(!L(oy,this,hy).call(this,t))return t;const e=[];for(let n=0;n<z(ny,this).length;n+=1){const i=z(ny,this)[n];L(oy,this,hy).call(this,i)&&(L(oy,this,fy).call(this,t,i)>0&&e.push(i))}if(0===e.length)return t;U(ny,this,z(ny,this).filter((t=>!e.includes(t))));const n=[t,...e],i=n.reduce(((t,e)=>t+(e.bytes||0)),0),r=Math.min(...n.map((t=>t.startTime))),o=Math.max(...n.map((t=>t.endTime))),s=o-r;if(!ug(i)||s<=0)return t;const a={bytes:i,durationMs:s,kbps:8*i/s,startTime:r,endTime:o,url:t.url||e[e.length-1].url};return L(oy,this,ly).call(this,a)}function my(t,e,{emit:n=!0}={}){const i=L(oy,this,ly).call(this,t);if(!i)return;const r=L(oy,this,py).call(this,i);if(!r)return;U(ey,this,z(ey,this)+1),z(ny,this).push(r),z(ny,this).length>this.settings.maxSamples&&z(ny,this).shift();const o=this.defaults.alpha,s="number"==typeof this.settings.alpha?this.settings.alpha:o,a=ug(z(ty,this)),l=a?z(ty,this):r.kbps,c=a||1!==z(ey,this)?s*r.kbps+(1-s)*l:r.kbps;U(ty,this,c),this.log.debug(`[#ingestSample] Next estimate: ${c} kbps`),n&&this.trigger("download:speed",{kbps:z(ty,this),sample:r,source:e,samplesCount:z(ey,this)})}class vy{constructor(t={}){const{id:e,url:n,uri:i,mime:r,codecs:o,bandwidth:s,timescale:a,sizeBytes:l,...c}=t;if(!e)throw new Error("Representation requires id");const u=n||i;if(!u)throw new Error("Representation requires url or uri");this.id=e,this.url=u,this.mime=r,this.codecs=o,this.baseCodec=function(t=""){if(!t||"string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(o),ug(s)&&(this.bandwidth=s),ug(a)&&(this.timescale=a),ug(l)&&(this.sizeBytes=l),Object.assign(this,c)}}class gy{#P=new Map;#D;#R;#L=0;#B;constructor(t={}){const{id:e,offset:n=0,duration:i=0,isInit:r=!1,representations:o=[]}=t;if(!e)throw new Error("Segment requires id");o.forEach((t=>{if(!t||!t.url&&!t.uri)throw new Error("Segment representation must include uri or url")})),this.id=e,this.offset=n,this.duration=i,this.isInit=!!r,this.originalRepresentations=o.map((t=>t instanceof vy?t:new vy(t))),this.representations=this.originalRepresentations.map((t=>t)),this.appliedFilters=[],this.loadAttempts=0,this.loadError=void 0}setRepresentationBuffer(t,e){t&&e&&this.#P.set(t,e)}setDownloadProgress(t,e){const n=Number(t);Number.isFinite(n)&&n>=0&&(this.#L=Math.max(this.#L,n));const i=Number(e);Number.isFinite(i)&&i>0&&(this.#B=i)}setChosenRepresentation(t){this.#D=t;const e=null==t?void 0:t.id;if(!(this.isInit||!e||this.#P.size<=1))for(const t of this.#P.keys())t!==e&&this.#P.delete(t)}setABRDecisionSnapshot(t){if(!t||"object"!=typeof t)return void(this.#R=void 0);const e={...t};Array.isArray(t.availableRepresentations)&&(e.availableRepresentations=t.availableRepresentations.map((t=>({...t})))),this.#R=e}markLoadAttempt(){const t=Number(this.loadAttempts);this.loadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.loadError=void 0}setLoadError(t){this.loadError=t||new Error("Segment load failed")}getRepresentationBuffer(t){return this.#P.get(t)}get chosenRepresentation(){return this.#D}get abrDecision(){return this.#R}get arrayBuffer(){return this.#D?this.#P.get(this.#D.id):void 0}get retainedByteLength(){let t=0;for(const e of this.#P.values())e&&"number"==typeof e.byteLength&&(t+=e.byteLength);return t}get bufferedRatio(){var t;const e=ug(this.#B)?this.#B:null===(t=this.#D)||void 0===t?void 0:t.sizeBytes;return ug(e)?Math.min(1,Math.max(0,this.#L/e)):this.retainedByteLength>0?1:0}get isLoaded(){return this.retainedByteLength>0}evict(){this.#D=void 0,this.#R=void 0,this.#P.clear(),this.#L=0,this.#B=void 0}}class yy{constructor(t={}){const{timestamp:e,name:n,data:i,isSticky:r=!1}=t;this.timestamp="number"==typeof e?e:0,this.name="string"==typeof n?n:"",this.data=i,this.isSticky="boolean"==typeof r&&r}}function by(t,e){const n=Number(null==t?void 0:t.offset),i=Number(null==t?void 0:t.duration);if(!e)return{offset:n,duration:i};const r=(null==t?void 0:t.chosenRepresentation)||(Array.isArray(null==t?void 0:t.representations)?t.representations[0]:void 0),o=Number(null==r?void 0:r.segStart),s=Number(null==r?void 0:r.segDuration);return Number.isFinite(o)&&Number.isFinite(s)&&s>0?{offset:o,duration:s}:{offset:n,duration:i}}function ky(t,e,n={}){if(!Array.isArray(t)||!t.length)return;const i=Number(e);if(!Number.isFinite(i))return;const r=!!n.preferRepresentationTime;let o,s,a=-1/0;for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||n.isInit)continue;o||(o=n);const l=by(n,r);if(!Number.isFinite(l.offset))continue;const c=Number(l.duration);if(Number.isFinite(c)&&c>0&&i>=l.offset&&i<l.offset+c)return n;l.offset<=i&&l.offset>a&&(a=l.offset,s=n)}return s||o}const xy=new Set(["video","audio","image","cue","data","bbox"]);class wy{constructor(t={}){const{id:e,type:n,offset:i=0,duration:r,source:o,segments:s=[],cues:a=[]}=t;if(!e)throw new Error("Track requires id");if(!xy.has(n))throw new Error(`Track type must be one of ${Array.from(xy).join("|")}`);this.id=e,this.type=n,this.offset=i,this.duration=ug(r)?r:void 0,this.source=o,"cue"===n?(this._cues=a.map((t=>t instanceof yy?t:new yy(t))),this._segments=[]):(this._segments=s.map((t=>t instanceof gy?t:new gy(t))),this._cues=void 0)}get segments(){return this._segments.slice()}get cues(){if("cue"===this.type)return this._cues.slice()}get endTime(){if(ug(this.duration))return this.offset+this.duration;if(!this._segments.length)return;const t=this._segments.reduce(((t,e)=>{const n=ug(e.duration)?e.duration:0;return Math.max(t,e.offset+n)}),this.offset);return t}get buffered(){const t=this._segments.map((t=>({duration:ug(null==t?void 0:t.duration)?t.duration:0,offset:ug(null==t?void 0:t.offset)?t.offset:0,ratio:t&&!t.isInit&&"number"==typeof t.bufferedRatio?t.bufferedRatio:0}))).filter((t=>t.duration>0&&t.ratio>0));if(!t.length)return;const e=t.reduce(((t,e)=>Math.min(t,e.offset)),1/0),n=t.reduce(((t,e)=>{const n=e.offset+e.duration*Math.min(1,e.ratio);return Math.max(t,n)}),0);return!Number.isFinite(e)||!Number.isFinite(n)||n<=e?void 0:{start:e,end:n}}getMediaSegmentAtTime(t,e={}){return ky(this._segments,t,e)}setSegments(t=[]){if("cue"===this.type)return;const e=Array.isArray(t)?t:[];this._segments=e.map((t=>t instanceof gy?t:new gy(t)))}}function _y(t){return"string"==typeof t?t:t&&"object"==typeof t?t.nodeId||t.nodeIdOrRef||t.id:void 0}function Ty(t){const e=_y(t);let n=1;if(t&&"object"==typeof t&&ug(t.weight)&&(n=t.weight),!e)throw new Error("Child entry requires a nodeId");return{nodeId:e,weight:n}}function Iy(t){return(Array.isArray(t)?t:[]).map((t=>Ty(t)))}function Ey(t,e=void 0){if("string"==typeof t){const e=t.match(/\d+\.?\d*/);if(e){const t=Number(e[0]);if(Number.isFinite(t))return t}}else if("number"==typeof t&&Number.isFinite(t))return t;return e}function Sy(t,e){if(t){if(t.includes("$Number%")){const n=t.match(/\$Number%0(\d+)d\$/);if(n){const i=Number(n[1]),r=String(e).padStart(i,"0");return t.replace(/\$Number%0\d+d\$/,r)}}return t.replace(/\$Number\$/g,String(e))}}function Ay(t,e){if(e)try{var n;return new URL(e,t||(null==Lu||null===(n=Lu.location)||void 0===n?void 0:n.href)||void 0).toString()}catch(t){return e}}const Ny=new Map;class My{static register(t,e){if(!t||"function"!=typeof e)throw new Error("ManifestFactory.register requires type and parser function");Ny.set(t,e)}static inferType(t={}){const{typeHint:e,url:n,mimeType:i,body:r}=t;return e||function(t=""){const e=function(t=""){return t&&"string"==typeof t?t.split("#")[0].split("?")[0].toLowerCase():""}(t);return e.endsWith(".mpd")?"dash":e.endsWith(".ivd")?"ivd":e.endsWith(".jpg")||e.endsWith(".jpeg")||e.endsWith(".png")||e.endsWith(".webp")||e.endsWith(".gif")||e.endsWith(".avif")?"image":void 0}(n||"")||function(t=""){const e=t.toLowerCase();return e.includes("dash")||e.includes("mpd")||e.includes("xml")?"dash":e.includes("ivd")||e.includes("json")?"ivd":e.includes("image/")?"image":void 0}(i||"")||function(t=""){const e="string"==typeof t?t.trim():"";if(e.startsWith("<")&&e.includes("<MPD"))return"dash";if(e.startsWith("{"))try{const t=JSON.parse(e);if(t&&"object"==typeof t)return"ivd"}catch(t){return}}(r||"")}static parse(t={}){const e=My.inferType(t);if(!e||!Ny.has(e))throw new Error("Unsupported manifest type");return Ny.get(e)(t)}}My.register("dash",(function(t={}){const{body:e,url:n}=t,i=function(){if(Lu&&"function"==typeof Lu.DOMParser)return new Lu.DOMParser;throw new Error("DOMParser is not available in this environment")}().parseFromString(e||"","application/xml"),r=i.getElementsByTagName("MPD")[0];if(!r)throw new Error("Invalid MPD");const o=i.getElementsByTagName("Period")[0],s=o?Array.from(o.getElementsByTagName("AdaptationSet")):[],a=[];let l=Ey(r.getAttribute("mediaPresentationDuration"));l=Number.isFinite(l)?l:void 0,s.forEach(((t,e)=>{const i=t.getAttribute("mimeType")||"",r=function(t=""){const e=t.toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":e.includes("image")?"image":"data"}(i),o=t.getAttribute("id")||`${r}-${e+1}`,s=t.getElementsByTagName("SegmentTemplate")[0],c=Array.from(t.getElementsByTagName("Representation")).map((t=>function(t,e,n){const i=t.getAttribute("id")||t.getAttribute("representationId")||"",r=Ey(t.getAttribute("bandwidth")),o=t.getAttribute("codecs"),s=t.getAttribute("mimeType")||e&&e.getAttribute("mimeType")||n,a=t.getElementsByTagName("SegmentTemplate")[0]||e;return{repId:i,bandwidth:r,codecs:o,mime:s,media:a?a.getAttribute("media"):void 0,initialization:a?a.getAttribute("initialization"):void 0,timescale:Ey(a&&a.getAttribute("timescale"))||Ey(e&&e.getAttribute("timescale"),1)||1,startNumber:Ey(a&&a.getAttribute("startNumber"))||Ey(e&&e.getAttribute("startNumber"),1)||1,timeline:function(t){const e=[],n=t.getElementsByTagName("SegmentTimeline")[0];if(!n)return e;const i=Array.from(n.getElementsByTagName("S"));let r=0;for(let t=0;t<i.length;t+=1){const n=i[t],o=Ey(n.getAttribute("t")),s=Ey(n.getAttribute("d")),a=Ey(n.getAttribute("r"),0);if(!ug(s))continue;ug(o)&&(r=o);const l=a>=0?a:0;for(let t=0;t<=l;t+=1)e.push({start:r,duration:s}),r+=s}return e}(a)}}(t,s,i))),u=c.map((t=>({id:t.repId,url:Ay(n,Sy(t.initialization,t.startNumber)),bandwidth:t.bandwidth,mime:t.mime,codecs:t.codecs,timescale:t.timescale}))).filter((t=>t.url)),d=c.reduce(((t,e)=>{const n=Array.isArray(null==t?void 0:t.timeline)?t.timeline.length:0;return(Array.isArray(null==e?void 0:e.timeline)?e.timeline.length:0)>n?e:t}),c[0]),h=Array.isArray(null==d?void 0:d.timeline)?d.timeline:[],f=h.length,p=[],m=(null==d?void 0:d.timescale)||1;u.length>0&&p.push({id:`init-${o}`,offset:0,duration:0,isInit:!0,representations:u});for(let t=0;t<f;t+=1){const e=h[t];if(!e)continue;const i=c.map((e=>{const i=e.startNumber+t,r=e.timescale||m,o=Array.isArray(e.timeline)?e.timeline[t]:void 0;if(!o)return null;const s=o.start,a=o.duration;return{id:e.repId,url:Ay(n,Sy(e.media,i)),bandwidth:e.bandwidth,mime:e.mime,codecs:e.codecs,timescale:e.timescale,segIndex:t,segStart:s/r,segDuration:a/r}})).filter(Boolean);i.length&&p.push({id:`${o}-seg-${t+1}`,offset:e.start/m,duration:e.duration/m,isInit:!1,representations:i})}a.push({id:o,type:r,offset:0,duration:l,segments:p})}));const c=a[0]?a[0].id:void 0;return{id:n||r.getAttribute("id")||"mpd",mainTrackId:c,tracks:a,duration:l}})),My.register("ivd",(function(t={}){var e;const{body:n,url:i}=t;let r;try{r="string"==typeof n?JSON.parse(n):n}catch(t){throw new Error("Invalid IVD manifest")}if(!r||"object"!=typeof r)throw new Error("Invalid IVD manifest");const o=Array.isArray(r.representations)?r.representations:[],s=new Map;o.forEach(((t,e)=>{const n=function(t){const e=(t.mimeType||"").toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":"data"}(t),i=Number.isInteger(t.altIndex)?t.altIndex:0,r=`${n}-${i}`,o=(l=e,{id:`${(a=t).format||"unknownformat"}-${a.altIndex||0}-${a.label||l+1}`,url:a.url,mime:a.mimeType,codecs:a.codecs,bandwidth:a.bandwidth||a.audioBandwidth||a.videoBandwidth,sizeBytes:a.contentLength,duration:ug(a.duration)?a.duration:void 0,segIndex:Number.isInteger(a.segIndex)&&a.segIndex>=0?a.segIndex:0});var a,l;s.has(r)||s.set(r,{type:n,altIndex:i,reps:[]}),s.get(r).reps.push(o)}));const a=Array.from(s.values()).map(((t,e)=>{const n=new Map;t.reps.forEach((t=>{const e=Number.isInteger(t.segIndex)?t.segIndex:0;n.has(e)||n.set(e,[]),n.get(e).push(t)}));const i=Array.from(n.keys()).sort(((t,e)=>t-e));let o=0;const s=i.map((i=>{var r;const s=n.get(i)||[],a=(null===(r=s.find((t=>ug(t.duration))))||void 0===r?void 0:r.duration)||0,l={id:`${t.type}-${t.altIndex}-${e+1}-seg-${i+1}`,offset:o,duration:a,isInit:!1,representations:s.map((t=>{const{duration:e,segIndex:n,...i}=t;return i}))};return o+=a,l})),a=s.reduce(((t,e)=>t+(ug(e.duration)?e.duration:0)),0),l=ug(r.duration)?r.duration:a||void 0;return{id:`${t.type}-${t.altIndex}-${e+1}`,type:t.type,offset:0,duration:l,segments:s}})),l=r.mainTrackId||(null===(e=a.find((t=>"video"===t.type)))||void 0===e?void 0:e.id)||a[0]&&a[0].id,c=a.find((t=>t.id===l)),u=(null==c?void 0:c.duration)||void 0;return{id:r.id||i||"ivd",metadata:r.metadata||{},mainTrackId:l,tracks:a,duration:u}})),My.register("image",(function(t={}){const e=null==t?void 0:t.url;if(!e||"string"!=typeof e)throw new Error("ImageParser requires url");const n=ug(null==t?void 0:t.duration)?t.duration:30,i=ug(null==t?void 0:t.width)?t.width:void 0,r=ug(null==t?void 0:t.height)?t.height:void 0,o={id:"image-1",url:e,mime:"string"==typeof(null==t?void 0:t.mimeType)?t.mimeType:void 0};ug(i)&&ug(r)&&(o.width=i,o.height=r);const s="image-1";return{id:e,metadata:{},mainTrackId:s,tracks:[{id:s,type:"image",offset:0,duration:n,segments:[{id:"image-1-seg-1",offset:0,duration:n,isInit:!1,representations:[o]}]}],duration:n}}));const Fy=["video/mp4"];function Oy(t){return Fy.includes(t.mime)}var Cy={name:"containers",fn:function(t=[]){return t.filter(Oy)},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}};const Py=new(ve=new WeakMap,ge=new WeakSet,class extends Pu{get name(){return"MediaCapabilities"}get defaults(){return{enabled:!0,smoothWeight:10,powerWeight:10,ignoreSmooth:!1,ignorePower:!0,codecBonus:{av01:.2,hvc1:.15,hev1:.15,vp09:.1,avc1:0}}}constructor(...t){super(...t),j(this,ge),W(this,ve,void 0),U(ve,this,new Map)}onDispose(){z(ve,this)&&z(ve,this).clear()}async sortRepsCodecs(t=[]){if(!Array.isArray(t)||0===t.length)return[];const e=[],n=new Set;let i=0;t.forEach((t=>{const r=null==t?void 0:t.baseCodec;r&&!n.has(r)&&(n.add(r),e.push({codec:r,rep:t,index:i}),i+=1)}));const r=(await Promise.all(e.map((async t=>{const{score:e}=await L(ge,this,zy).call(this,t.rep);return{...t,score:e}})))).sort(((t,e)=>{const n=e.score-t.score;return 0!==n?n:t.index-e.index}));return this.log.info("[sortRepsCodecs] Sorted entries:",r),r.map((t=>t.codec))}});function Dy(){return!!(Lu&&Lu.navigator&&Lu.navigator.mediaCapabilities&&"function"==typeof Lu.navigator.mediaCapabilities.decodingInfo)}function Ry(t){if(!t||"object"!=typeof t)return void this.log.debug("[#buildConfig] Invalid representation:",t);const e=t.mime||t.mimeType||"",n=function(t="",e=""){const n=t||"",i=e||"";return i?`${n}; codecs="${i}"`:n}(e,t.codecs||"");return function(t=""){return t.toLowerCase().includes("video")}(e)?(this.log.debug("[#buildConfig] Building video config for:",t),{type:"file",video:{contentType:n,width:t.width||1920,height:t.height||1080,bitrate:t.videoBandwidth||t.bandwidth||0,framerate:t.framerate||t.frameRate||24}}):function(t=""){return t.toLowerCase().includes("audio")}(e)?(this.log.debug("[#buildConfig] Building audio config for:",t),{type:"file",audio:{contentType:n,channels:t.channels||2,bitrate:t.audioBandwidth||t.bandwidth||0,samplerate:t.audioSamplingRate||48e3}}):void this.log.debug("[#buildConfig] Unknown mime type:",e)}function Ly(t){return t?JSON.stringify(t):"invalid"}async function By(t){if(!this.settings.enabled||!L(ge,this,Dy).call(this)||!t)return this.log.debug("[#queryCapabilities] Not supported, returning false",t),{supported:!1,smooth:!1,powerEfficient:!1};const e=L(ge,this,Ly).call(this,t),n=z(ve,this).get(e);if(n)return n;let i;try{i=await Lu.navigator.mediaCapabilities.decodingInfo(t)}catch(t){i={supported:!1,smooth:!1,powerEfficient:!1}}return this.log.debug("[#queryCapabilities] Config:",t,"\nDecoding info result:",i),z(ve,this).set(e,i),i}async function zy(t){if(L(ge,this,Uy).call(this,t))return this.log.debug("[#scoreRepresentation] Blocking HEVC on Firefox versions below support threshold",null==t?void 0:t.codecs),{score:-1e3,capability:{supported:!1,smooth:!1,powerEfficient:!1}};const e=L(ge,this,Ry).call(this,t),n=await L(ge,this,By).call(this,e),i=function(t="",e={}){const n=(t||"").toLowerCase();return Object.keys(e).reduce(((t,i)=>n.includes(i.toLowerCase())?e[i]:t),0)}(t.codecs||"",this.settings.codecBonus);let r=0;return n.supported&&(r+=1),!this.settings.ignoreSmooth&&n.smooth&&(r+=this.settings.smoothWeight),!this.settings.ignorePower&&n.powerEfficient&&(r+=this.settings.powerWeight),r+=i,{score:r,capability:n}}function Wy(){if(!Mm())return!1;const t=Fm();return!Number.isFinite(t)||t<150}function Uy(t){if(!L(ge,this,Wy).call(this))return!1;const e=function(t=""){const e=String(t||"").toLowerCase(),[n]=e.split(".");return n||""}((null==t?void 0:t.baseCodec)||(null==t?void 0:t.codecs)||"");return"hvc1"===e||"hev1"===e}const jy=[],$y=()=>!0;[Cy,{name:"force-video-codec",fn:function(t=[],{node:e}={}){const n=function(t){if("string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(null==e?void 0:e.forceVideoCodec);if(!n)return t;const i=t.filter((t=>(null==t?void 0:t.baseCodec)===n));return i.length?i:t},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}},{name:"media-capabilities",fn:async function(t=[],{track:e}){if(null==e||!e.preferredCodec){const n=await Py.sortRepsCodecs(t);if(!Array.isArray(n)||0===n.length)return t;e.preferredCodec=n[0]}return t.filter((t=>(null==t?void 0:t.baseCodec)===e.preferredCodec))},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}}].forEach((({name:t,fn:e,isRelevantForTrack:n})=>{!function(t,e,{isRelevantForTrack:n}={}){if(!t||"function"!=typeof e)throw new Error("registerRepresentationFilter requires a name and function");const i="function"==typeof n?n:$y;jy.push({name:t,fn:e,isRelevantForTrack:i})}(t,e,{isRelevantForTrack:n})}));const qy=Su("Node","warn"),Vy={start:0,end:0},Gy=.001;function Hy(t){if(!Array.isArray(t)||!t.length)return;const e=t.map((t=>{const e=Number(null==t?void 0:t.segStart),n=Number(null==t?void 0:t.segDuration);return!Number.isFinite(e)||!Number.isFinite(n)||n<=0?null:{start:e,duration:n}}));if(e.some((t=>!t)))return;const n=e[0];return e.every((t=>Math.abs(t.start-n.start)<=Gy&&Math.abs(t.duration-n.duration)<=Gy))?{offset:n.start,duration:n.duration}:void 0}var Ky=new WeakMap,Xy=new WeakMap,Yy=new WeakMap,Qy=new WeakMap,Jy=new WeakMap,Zy=new WeakMap,tb=new WeakMap,eb=new WeakMap,nb=new WeakMap,ib=new WeakMap,rb=new WeakSet;class ob extends Au{constructor(t={},e={}){super(),j(this,rb),W(this,Ky,void 0),W(this,Xy,void 0),W(this,Yy,void 0),W(this,Qy,void 0),W(this,Jy,void 0),W(this,Zy,void 0),W(this,tb,void 0),W(this,eb,void 0),W(this,nb,void 0),W(this,ib,[]);const{id:n,manifestRef:i,duration:r,width:o,height:s,metadata:a={},children:l=[]}=t;if(!n)throw new Error("Node requires id");if(!i)throw new Error("Node requires manifestRef");this.id=n,this.manifestRef=i,this.metadata=a,this.state="pending",this.error=void 0,this.tracks=[],this.mainTrackId=void 0,this.imageFallbackActive=!1,this.disabledTracks=[],this.disabledTrackTypes=Array.isArray(e.disabledTracks)?e.disabledTracks.filter((t=>"string"==typeof t)):[],this.enabledRepFilters=Array.isArray(e.enabledRepFilters)?e.enabledRepFilters:void 0,this.forceVideoCodec="string"==typeof e.forceVideoCodec&&e.forceVideoCodec.trim()?e.forceVideoCodec.trim():void 0,U(tb,this,!0===e.forceImageFallback),U(Ky,this,e.abrSelector),U(Xy,this,e.assetsDeliveryService),U(Qy,this,ug(r)?r:void 0),U(Jy,this,ug(o)?o:void 0),U(Zy,this,ug(s)?s:void 0),U(eb,this,e&&"object"==typeof e.mediaHostRewriteMap?e.mediaHostRewriteMap:void 0),U(nb,this,ug(e.maxManifestLoadAttempts)?e.maxManifestLoadAttempts:1/0),this.manifestLoadAttempts=0,this.manifestLoadError=void 0,U(ib,this,Iy(l))}setChildren(t){const e=Iy(t);return L(rb,this,_b).call(this,e,{emit:!0})}addChild(t){const e=Ty(t),n=z(ib,this).slice(),i=n.findIndex((t=>(null==t?void 0:t.nodeId)===e.nodeId));if(i>=0){var r;if((null===(r=n[i])||void 0===r?void 0:r.weight)===e.weight)return this.children;n[i]=e}else n.push(e);return L(rb,this,_b).call(this,n,{emit:!0})}removeChild(t){const e=_y(t);if(!e)return this.children;const n=z(ib,this).filter((t=>(null==t?void 0:t.nodeId)!==e));return n.length===z(ib,this).length?this.children:L(rb,this,_b).call(this,n,{emit:!0})}async load(t={}){const{loadingMode:e="full",signal:n}=t;qy.info(`[load] [${this.id}] Loading node in '${e}' mode`);try{if(n&&n.aborted)throw Bg();"ready"!==this.state&&await this.resolve({signal:n});const t="partial"===e,i=[];this.tracks.forEach((e=>{const n=e.segments||[];if(t){const t=n.find((t=>t.isInit)),r=n.find((t=>!t.isInit));t&&Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t}),r&&Array.isArray(r.representations)&&!r.isLoaded&&i.push({track:e,segment:r})}else n.forEach((t=>{Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t})}))}));const r=i.filter((({segment:t})=>t.isInit)),o=i.filter((({segment:t})=>!t.isInit)),s=o.length?o[0]:void 0,a=r.map((({track:t,segment:e})=>L(rb,this,bb).call(this,t,e,n))),l=s?L(rb,this,kb).call(this,s.segment,s.track,n):Promise.resolve();await Promise.all([...a,l]);const c=s?o.slice(1):o;for(const t of c)await L(rb,this,kb).call(this,t.segment,t.track,n);if(n&&n.aborted)throw Bg();return this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:e}),this}catch(t){if(zg(t,n))throw t;throw this.trigger("node:loaderror",{nodeId:this.id,node:this,error:t,loadingMode:e}),t}}async loadMediaSegmentsAtOffset(t,e={}){const n=Number(t);if(qy.info(`[loadMediaSegmentsAtOffset] [${this.id}] Loading media segments at offset ${n}`),!Number.isFinite(n))return;const{signal:i}=e;if(i&&i.aborted)throw Bg();if("ready"!==this.state&&await this.resolve({signal:i}),"ready"!==this.state)return;const r=[],o=[];if(this.tracks.forEach((t=>{const e=(null==t?void 0:t.segments)||[];if(!Array.isArray(e)||!e.length)return;const s=e.find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));s&&!s.isLoaded&&r.push(L(rb,this,bb).call(this,t,s,i)),e.forEach((e=>{if(!e||e.isInit||!Array.isArray(e.representations))return;const i=Number(e.offset);Number.isFinite(i)&&Math.abs(i-n)<=Gy&&!e.isLoaded&&o.push({segment:e,track:t})}))})),r.length||o.length){if(await Promise.all(r),o.length&&await Promise.all(o.map((({segment:t,track:e})=>L(rb,this,kb).call(this,t,e,i)))),i&&i.aborted)throw Bg();this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:"segment-offset",offsetSeconds:n})}}async resolve(t={}){const{signal:e,manifestOverride:n}=t;let i=!0;for(;i;){if(i=!1,"ready"===this.state)return this;if("resolving"===this.state)try{return await z(Yy,this)}catch(t){if(!zg(t)||e&&e.aborted)throw t;i=!0;continue}if(e&&e.aborted)throw Bg();if(this.hasExceededManifestLoadAttempts()){const t=this.manifestLoadError||new Error("Manifest load retry limit reached");throw this.state="failed",this.error=t,t}const t=L(rb,this,hb).call(this);return this.state="resolving",this.error=void 0,U(Yy,this,(async()=>{try{const t=await L(rb,this,xb).call(this,{signal:e,manifestOverride:n});if(e&&e.aborted)throw Bg();let i=My.parse(t);return i=L(rb,this,db).call(this,i),this.tracks=(i.tracks||[]).map((t=>t instanceof wy?t:new wy(t))),this.mainTrackId=i.mainTrackId||this.mainTrackId,this.metadata=i.metadata||this.metadata,L(rb,this,Ib).call(this),L(rb,this,Tb).call(this),await L(rb,this,wb).call(this),this.state="ready",this}catch(n){if(zg(n,e))throw L(rb,this,fb).call(this,t),n;throw this.state="failed",this.error=n,n}})()),z(Yy,this)}return z(Yy,this)}evict(){this.tracks.forEach((t=>{(t.segments||[]).forEach((t=>{t.evict()}))}))}get children(){return z(ib,this).slice()}set children(t){this.setChildren(t)}get duration(){if(!this.mainTrackId)return 0;const t=this.tracks.find((t=>t.id===this.mainTrackId));return t?ug(t.duration)?t.duration:t.endTime:0}get retainedByteLength(){let t=0;return this.tracks.forEach((e=>{(Array.isArray(e.segments)?e.segments:[]).forEach((e=>{t+=ug(e.retainedByteLength)?e.retainedByteLength:0}))})),t}get buffered(){if("ready"!==this.state)return Vy;const t=Array.isArray(this.tracks)?this.tracks.find((t=>(null==t?void 0:t.id)===this.mainTrackId)):void 0,e=this.duration;if(!t||!ug(e))return Vy;const n=Array.isArray(this.tracks)?this.tracks.map((t=>{if(!t||void 0===t.buffered)return;const e=t.buffered;return e&&Number.isFinite(e.start)&&Number.isFinite(e.end)?{track:t,range:e}:void 0})).filter(Boolean):[];if(!n.length)return Vy;if(n.length===this.tracks.length&&n.every((({track:t,range:e})=>{const n=t.endTime,i=ug(t.offset)?t.offset:0;return Number.isFinite(n)&&e.start<=i&&e.end>=n})))return{start:0,end:e};const i=n.reduce(((t,{range:e})=>Math.min(t,e.end)),1/0);if(!Number.isFinite(i))return Vy;const r=Math.min(i,e);return r>0?{start:0,end:r}:Vy}get isLoaded(){return"ready"===this.state&&(Array.isArray(this.tracks)?this.tracks:[]).flatMap((t=>Array.isArray(null==t?void 0:t.segments)?t.segments:[])).every((t=>t.isLoaded))}hasExceededManifestLoadAttempts(){if(!Number.isFinite(z(nb,this))||z(nb,this)<=0)return!1;if(!this.manifestLoadError)return!1;const t=Number(this.manifestLoadAttempts);return Number.isFinite(t)&&t>=z(nb,this)}}function sb(t){return function(t,e){if(!t||"string"!=typeof t)return t;if(!e||"object"!=typeof e)return t;const n=Lu&&"function"==typeof Lu.URL?Lu.URL:"function"==typeof URL?URL:null;if(!n)return t;let i;try{i=new n(t)}catch(e){return t}const r=function(t,e){const n=null==t?void 0:t.hostname,i=null==t?void 0:t.pathname;if("string"!=typeof n||"string"!=typeof i)return t;if(!/^s3(?:[.-][a-z0-9-]+)?\.amazonaws\.com$/i.test(n))return t;const r=i.split("/").filter(Boolean);if(r.length<2)return t;const o=r[0],s=new e(t.toString());return s.hostname=`${o}.${n}`,s.pathname=`/${r.slice(1).join("/")}`,s}(i,n),o=e[r.hostname]?r:i,s=e[o.hostname];if(!s||"string"!=typeof s)return t;let a;try{a=new n(s)}catch(e){return t}return a.protocol&&a.host?(o.protocol=a.protocol,o.host=a.host,o.toString()):t}(t,z(eb,this))}function ab(){return z(tb,this)||void 0===Lu.VideoDecoder}function lb(){return this.manifestRef&&"object"==typeof this.manifestRef&&"assets-delivery-service"===this.manifestRef.type}function cb(t){if(!L(rb,this,lb).call(this))return!1;if(!L(rb,this,ab).call(this))return!1;const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0];return"image"!==(null==n?void 0:n.type)}function ub(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=function(t){const e=Number(null==t?void 0:t.duration);if(Number.isFinite(e)&&e>0)return e;const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[];let i=0;return n.forEach((t=>{if(null!=t&&t.isInit)return;const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration);!Number.isFinite(e)||!Number.isFinite(n)||n<=0||(i=Math.max(i,e+n))})),i>0?i:void 0}(e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0]);return ug(n)?n:ug(z(Qy,this))?z(Qy,this):void 0}function db(t){if(this.imageFallbackActive=!1,!L(rb,this,cb).call(this,t))return t;if(!z(Xy,this)||"function"!=typeof z(Xy,this).resolveImageOne)return t;const e=z(Xy,this).resolveImageOne(this.manifestRef),n=L(rb,this,sb).call(this,null==e?void 0:e.url);if(!n)return t;const i={typeHint:"image",url:n,duration:L(rb,this,ub).call(this,t),width:z(Jy,this),height:z(Zy,this)},r=My.parse(i);return t&&"object"==typeof t.metadata&&!Array.isArray(t.metadata)&&(r.metadata=t.metadata),this.imageFallbackActive=!0,r}function hb(){return{state:this.state,error:this.error,tracks:this.tracks,mainTrackId:this.mainTrackId,metadata:this.metadata,imageFallbackActive:this.imageFallbackActive,disabledTracks:this.disabledTracks,manifestRef:this.manifestRef,manifestLoadAttempts:this.manifestLoadAttempts,manifestLoadError:this.manifestLoadError}}function fb(t){t&&(this.state=t.state,this.error=t.error,this.tracks=t.tracks,this.mainTrackId=t.mainTrackId,this.metadata=t.metadata,this.imageFallbackActive=t.imageFallbackActive,this.disabledTracks=t.disabledTracks,this.manifestRef=t.manifestRef,this.manifestLoadAttempts=t.manifestLoadAttempts,this.manifestLoadError=t.manifestLoadError)}function pb(){const t=Number(this.manifestLoadAttempts);this.manifestLoadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.manifestLoadError=void 0}function mb(t){this.manifestLoadError=t||new Error("Manifest load failed")}function vb(t){if(!t)return null;const e={loadAttempts:Number(t.loadAttempts),loadError:t.loadError};if("function"==typeof t.markLoadAttempt)return t.markLoadAttempt(),e;const n=Number(t.loadAttempts);return t.loadAttempts=Number.isFinite(n)&&n>0?n+1:1,t.loadError=void 0,e}function gb(t,e){if(!t||!e)return;const n=Number(e.loadAttempts);t.loadAttempts=Number.isFinite(n)&&n>=0?n:0,t.loadError=e.loadError}function yb(t,e){t&&("function"!=typeof t.setLoadError?t.loadError=e||new Error("Segment load failed"):t.setLoadError(e))}async function bb(t,e,n){const i=L(rb,this,vb).call(this,e);try{const i=e.representations.map((async i=>{const r=L(rb,this,sb).call(this,i.url),o=await Xg(r,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{e&&"function"==typeof e.setDownloadProgress&&e.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==t?void 0:t.id,trackType:null==t?void 0:t.type,segmentId:e.id,isInit:!0,loaded:n,total:i,chunk:r})}}),s=o instanceof ArrayBuffer?o:null==o?void 0:o.arrayBuffer;s&&e.setRepresentationBuffer(i.id,s)}));await Promise.all(i)}catch(t){if(zg(t,n))throw L(rb,this,gb).call(this,e,i),t;throw L(rb,this,yb).call(this,e,t),t}}async function kb(t,e,n){const i=z(Ky,this),r={representations:t.representations,nodeId:this.id,trackId:null==e?void 0:e.id,segmentId:t.id},o=i&&"function"==typeof i.select?i.select(r):void 0,s=t.representations.find((t=>t.id===o))||t.representations[0];if(!s)return;t&&"function"==typeof t.setABRDecisionSnapshot&&t.setABRDecisionSnapshot(r.abrDecision),t.setChosenRepresentation(s);const a=L(rb,this,vb).call(this,t);try{const i=L(rb,this,sb).call(this,s.url),r=await Xg(i,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{t&&"function"==typeof t.setDownloadProgress&&t.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:t.id,isInit:!1,loaded:n,total:i,chunk:r})}}),o=r instanceof ArrayBuffer?r:null==r?void 0:r.arrayBuffer;o&&(t.setRepresentationBuffer(s.id,o),t.setChosenRepresentation(s))}catch(e){if(zg(e,n))throw L(rb,this,gb).call(this,t,a),e;throw L(rb,this,yb).call(this,t,e),e}}async function xb(t={}){const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw Bg();L(rb,this,pb).call(this);try{let t=this.manifestRef;if(n&&"object"==typeof n){if(L(rb,this,lb).call(this)&&"string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...this.manifestRef,encodeProfile:n.encodeProfile},t=this.manifestRef),n.ivd)return{typeHint:"ivd",body:n.ivd};if(n.body){const t=L(rb,this,sb).call(this,n.url);return{typeHint:n.typeHint,url:t,mimeType:n.mimeType,body:n.body,duration:z(Qy,this),width:z(Jy,this),height:z(Zy,this)}}"string"==typeof n.url&&n.url&&(t=n)}if(t&&"object"==typeof t&&"assets-delivery-service"===t.type){if(!z(Xy,this)||"function"!=typeof z(Xy,this).resolveOne)throw new Error("AssetsDeliveryService is required for assets-delivery-service manifestRef");const n=await z(Xy,this).resolveOne(t,{signal:e});if(!n)throw new Error("AssetsDeliveryService returned empty result");if("string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...t,encodeProfile:n.encodeProfile}),n.ivd)return{typeHint:"ivd",body:n.ivd};const i=n.typeHint,r=L(rb,this,sb).call(this,n.url),o=n.mimeType,s=n.body;if(r||s||o)return{typeHint:i,url:r,mimeType:o,body:s,duration:z(Qy,this),width:z(Jy,this),height:z(Zy,this)};throw new Error("AssetsDeliveryService returned unsupported manifest shape")}if(t&&"object"==typeof t){const e=L(rb,this,sb).call(this,t.url),n=t.mimeType;if(t.body)return{url:e,mimeType:n,body:"string"==typeof t.body?t.body:JSON.stringify(t.body)}}if("string"==typeof t||t&&"string"==typeof t.url){const n="string"==typeof t?t:t.url,i=L(rb,this,sb).call(this,n),r="object"==typeof t?t.typeHint:void 0,o="object"==typeof t?t.mimeType:void 0;if("image"===My.inferType({typeHint:r,url:i,mimeType:o})){const e="object"==typeof t&&ug(t.duration)?t.duration:z(Qy,this);return{typeHint:"image",url:i,mimeType:o,duration:e,width:"object"==typeof t&&ug(t.width)?t.width:z(Jy,this),height:"object"==typeof t&&ug(t.height)?t.height:z(Zy,this)}}const s=await Xg(i,{returnType:"default",signal:e});return{url:i,body:s&&s.response&&"function"==typeof s.response.text?await s.response.text():void 0,mimeType:(s&&s.response&&s.response.headers&&"function"==typeof s.response.headers.get&&s.response.headers.get("content-type")?s.response.headers.get("content-type"):void 0)||o}}throw new Error("Node manifestRef is invalid or missing")}catch(t){if(zg(t,e))throw t;throw L(rb,this,mb).call(this,t),t}}async function wb(){const t=jy.slice().filter((t=>!this.enabledRepFilters||this.enabledRepFilters.includes(t.name)));if(t.length)for(let e=0;e<this.tracks.length;e+=1){const n=this.tracks[e],i=Array.isArray(n.segments)?n.segments:[],r=[];for(let e=0;e<i.length;e+=1){const o=i[e];if(!Array.isArray(o.representations)){r.push(o);continue}o.appliedFilters=o.appliedFilters||[];let s=o.representations;for(let e=0;e<t.length;e+=1){const{name:i,fn:r,isRelevantForTrack:a}=t[e];if(!a(n))continue;const l=await r(s,{segment:o,track:n,node:this});Array.isArray(l)&&(s=l),o.appliedFilters.push(i)}if(o.representations=s,o.representations.length){if(!o.isInit){const t=Hy(o.representations);t&&(o.offset=t.offset,o.duration=t.duration)}r.push(o)}}r.length!==i.length&&n&&"function"==typeof n.setSegments&&n.setSegments(r)}}function _b(t,{emit:e=!1}={}){return function(t=[],e=[]){if(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],r=e[n];if((null==i?void 0:i.nodeId)!==(null==r?void 0:r.nodeId)||(null==i?void 0:i.weight)!==(null==r?void 0:r.weight))return!1}return!0}(z(ib,this),t)||(U(ib,this,t),e&&(n=this)&&"function"==typeof n.trigger&&n.trigger("node:childrenchanged",{nodeId:n.id,node:n,children:Array.isArray(n.children)?n.children:[]})),this.children;var n}function Tb(){var t;const e=Array.isArray(this.disabledTrackTypes)?this.disabledTrackTypes:[];if(!e.length||!Array.isArray(this.tracks)||!this.tracks.length)return void(this.disabledTracks=[]);const n=new Set(e),i=[],r=[];this.tracks.forEach((t=>{t&&n.has(t.type)?r.push(t):t&&i.push(t)})),this.tracks=i,this.disabledTracks=r,this.mainTrackId&&!i.some((t=>t.id===this.mainTrackId))&&(this.mainTrackId=null===(t=i[0])||void 0===t?void 0:t.id)}function Ib(){if(!Array.isArray(this.tracks)||!this.tracks.length)return;const t=this.duration;if(!ug(t))return;const e=[new yy({name:"nodestart",timestamp:0,data:{id:this.id},isSticky:!0}),new yy({name:"nodeend",timestamp:t,data:{id:this.id}})],n=new wy({id:`${this.id}-auto-cue`,type:"cue",cues:e,offset:0,duration:t});this.tracks.push(n)}var Eb=new WeakMap,Sb=new WeakMap,Ab=new WeakMap,Nb=new WeakMap,Mb=new WeakSet;class Fb extends Pu{constructor(...t){super(...t),j(this,Mb),W(this,Eb,new Map),W(this,Sb,new Map),W(this,Ab,void 0),W(this,Nb,void 0);const[e,n]=t;U(Ab,this,e),U(Nb,this,n)}get name(){return"NodeRepository"}get defaults(){return{enabledRepFilters:["containers","force-video-codec","media-capabilities"],disabledTracks:Zg("disabledTracks"),forceVideoCodec:Zg("forceVideoCodec"),forceImageFallback:Zg("forceImageFallback"),mediaHostRewriteMap:Zg("mediaHostRewriteMap"),maxManifestLoadAttempts:3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"get","list"])}onDispose(){z(Eb,this).forEach(((t,e)=>{const n=z(Sb,this).get(e);n&&t&&"function"==typeof t.off&&t.off(Pm.NODE_CHILDREN_CHANGED,n)})),z(Sb,this).clear(),z(Eb,this).clear()}add(t){const e=t instanceof ob?t:new ob(t,{enabledRepFilters:this.settings.enabledRepFilters,disabledTracks:this.settings.disabledTracks,forceVideoCodec:this.settings.forceVideoCodec,forceImageFallback:this.settings.forceImageFallback,mediaHostRewriteMap:this.settings.mediaHostRewriteMap,maxManifestLoadAttempts:this.settings.maxManifestLoadAttempts,abrSelector:z(Ab,this),assetsDeliveryService:z(Nb,this)});if(!e.id)throw new Error("NodeRepository.add requires node with id");if(z(Eb,this).has(e.id))throw new Error(`NodeRepository.add: node with id ${e.id} already exists`);return z(Eb,this).set(e.id,e),L(Mb,this,Ob).call(this,e),this.trigger(Pm.NODE_ADD,{node:e}),e}get(t){const e=(null==t?void 0:t.id)||t;if(!e)throw new Error("NodeRepository.get requires node or id");return z(Eb,this).get(e)}list(){return Array.from(z(Eb,this).values())}}function Ob(t){if(!t||"function"!=typeof t.on||!t.id)return;const e=t=>{this.trigger(Pm.NODE_CHILDREN_CHANGED,t)};t.on(Pm.NODE_CHILDREN_CHANGED,e),z(Sb,this).set(t.id,e)}var Cb=new WeakMap,Pb=new WeakMap,Db=new WeakSet;class Rb extends Pu{constructor(...t){super(...t),j(this,Db),W(this,Cb,void 0),W(this,Pb,new Map);const[e]=t;U(Cb,this,e)}get name(){return"ABRSelector"}get defaults(){return{safetyMargin:.35,minBufferForUpgrade:5,minBufferCritical:1,hysteresisRatio:1.1,abrStrategy:Zg("abrStrategy")}}select(t={}){var e;const{representations:n=[],bufferSeconds:i}=t;if(!Array.isArray(n)||0===n.length)return;const r=z(Cb,this)&&"function"==typeof z(Cb,this).getKbps?z(Cb,this).getKbps():void 0,o=L(Db,this,Lb).call(this,n[0]),s=z(Pb,this).get(o),a=this.settings.abrStrategy||"auto";this.log.debug(`[select] strategy=${a}, bw=${r}, buffer=${i}, prev=${s}`);const l=n.slice().sort(((t,e)=>L(Db,this,Bb).call(this,t.bandwidth)-L(Db,this,Bb).call(this,e.bandwidth)));if("bottom"===a){const e=l[0];return L(Db,this,Ub).call(this,e,t,{decisionReason:"strategy:bottom",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("top"===a){const e=l[l.length-1];return L(Db,this,Ub).call(this,e,t,{decisionReason:"strategy:top",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("random"===a){const e=l[Math.floor(Math.random()*l.length)];return L(Db,this,Ub).call(this,e,t,{decisionReason:"strategy:random",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}const c=Number.isFinite(i)?i:void 0,u=ug(r)?r*this.settings.safetyMargin:void 0;let d="auto:highest-available";if(s&&void 0!==c&&c<this.settings.minBufferCritical){const e=l[0];return this.log.debug("[select] critical buffer -> lowest",t),L(Db,this,Ub).call(this,e,t,{decisionReason:"auto:critical-buffer",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null==e?void 0:e.id}let h=l[l.length-1];if(void 0!==u){const e=l.filter((t=>L(Db,this,Bb).call(this,t.bandwidth)<=u));e.length>0?(h=e[e.length-1],d="auto:highest-under-safe-bandwidth",this.log.debug("[select] under safe bandwidth ->",h.id,t)):(this.log.debug("[select] no rep under safe bandwidth, fallback lowest",t),h=l[0],d="auto:no-rep-under-safe-bandwidth")}if(s&&void 0!==c&&c<this.settings.minBufferForUpgrade){const e=n.find((t=>t.id===s));e&&ug(e.bandwidth)&&ug(h.bandwidth)&&h.bandwidth/e.bandwidth>this.settings.hysteresisRatio&&(h=n.filter((t=>t.bandwidth&&t.bandwidth<=e.bandwidth*this.settings.hysteresisRatio)).sort(((t,e)=>t.bandwidth-e.bandwidth)).pop()||e,d="auto:hysteresis-hold",this.log.debug("[select] hysteresis prevents upgrade; hold",h.id,t))}return L(Db,this,Ub).call(this,h,t,{decisionReason:d,trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null===(e=h)||void 0===e?void 0:e.id}onDispose(){z(Pb,this).clear(),U(Cb,this,null)}}function Lb(t){var e,n;return(null===(e=t.mime)||void 0===e||null===(n=e.split)||void 0===n||null===(n=n.call(e,"/"))||void 0===n?void 0:n[0])||"unknown"}function Bb(t){return ug(t)?t/1e3:0}function zb(t){return ug(t)?t/1e3:void 0}function Wb(t,e,n={}){const i=Array.isArray(null==e?void 0:e.representations)?e.representations.map((t=>({id:null==t?void 0:t.id,bandwidthKbps:L(Db,this,zb).call(this,null==t?void 0:t.bandwidth)}))):[];return{timeMs:Date.now(),strategy:this.settings.abrStrategy||"auto",decisionReason:n.decisionReason,nodeId:null==e?void 0:e.nodeId,trackId:null==e?void 0:e.trackId,segmentId:null==e?void 0:e.segmentId,trackType:n.trackType,measuredDownloadSpeedKbps:Number.isFinite(n.measuredDownloadSpeedKbps)?n.measuredDownloadSpeedKbps:void 0,safeBandwidthKbps:Number.isFinite(n.safeBandwidthKbps)?n.safeBandwidthKbps:void 0,bufferSeconds:Number.isFinite(n.bufferSeconds)?n.bufferSeconds:void 0,previousRepresentationId:n.previousRepresentationId,selectedRepresentationId:null==t?void 0:t.id,selectedRepresentationBandwidthKbps:L(Db,this,zb).call(this,null==t?void 0:t.bandwidth),safetyMargin:Number(this.settings.safetyMargin),minBufferForUpgrade:Number(this.settings.minBufferForUpgrade),minBufferCritical:Number(this.settings.minBufferCritical),hysteresisRatio:Number(this.settings.hysteresisRatio),availableRepresentations:i}}function Ub(t,e,n={}){if(!t)return;const i=L(Db,this,Wb).call(this,t,e,n);e&&"object"==typeof e&&(e.abrDecision=i),this.log.info("[select] Chosen representation:",t,"context:",e,"decision:",i),this.trigger("abr:selection",{representation:t,context:e,strategy:this.settings.abrStrategy,decision:i});const r=L(Db,this,Lb).call(this,t);z(Pb,this).set(r,t.id)}var jb=new WeakMap,$b=new WeakSet;class qb extends Pu{constructor(...t){super(...t),j(this,$b),W(this,jb,void 0);const[e]=t;if(U(jb,this,e),!z(jb,this)||"function"!=typeof z(jb,this).list)throw new Error("NodePrioritizer requires a NodeRepository instance")}get name(){return"NodePrioritizer"}get defaults(){return{levelMultiplier:1,priorityMultiplier:.3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"sortNodes"])}onDispose(){U(jb,this,null)}getPrioritizationSnapshot(t){const e=z(jb,this).list();if(!e.length)return{orderedIds:[],reachableIds:[]};const{levels:n,weights:i}=L($b,this,Vb).call(this,e,t);return{orderedIds:L($b,this,Gb).call(this,e,n,i),reachableIds:Array.from(n.keys())}}sortNodes(t){const{orderedIds:e}=this.getPrioritizationSnapshot(t);return e.length?(this.log.info(`[sortNodes(${t})] Sorted nodes: [${e.join(", ")}]`),e):[]}getReachableNodeIds(t){const{reachableIds:e}=this.getPrioritizationSnapshot(t);return e}}function Vb(t,e){const n=new Map;t.forEach((t=>{t&&t.id&&n.set(t.id,t)}));const i=new Map,r=new Map;if(!e||!n.has(e))return{levels:i,weights:r};const o=[{id:e,level:0,priority:1}];for(i.set(e,0),r.set(e,1);o.length;){const{id:t,level:e,priority:s}=o.shift(),a=n.get(t),l=Array.isArray(null==a?void 0:a.children)?a.children:[];for(let t=0;t<l.length;t+=1){const a=l[t],c=(null==a?void 0:a.nodeId)||(null==a?void 0:a.id);if(!c||!n.has(c)||i.has(c))continue;const u=ug(null==a?void 0:a.weight)?a.weight:1,d=Math.max(u,s);i.set(c,e+1),r.set(c,d),o.push({id:c,level:e+1,priority:d})}}return{levels:i,weights:r}}function Gb(t,e,n){const i=e.size>0,{levelMultiplier:r,priorityMultiplier:o}=this.settings,s=t.map((t=>{var s;const a=e.has(t.id)?e.get(t.id):i?Number.MAX_SAFE_INTEGER:0,l=Number.isFinite(a)?a:Number.MAX_SAFE_INTEGER,c=null!==(s=n.get(t.id))&&void 0!==s?s:1,u=(Number.isFinite(l)?r*l:Number.MAX_SAFE_INTEGER)+o*c;return{id:t.id,score:u,level:l,priorityWeight:c}}));return s.sort(((t,e)=>t.score!==e.score?t.score-e.score:t.level!==e.level?t.level-e.level:t.priorityWeight!==e.priorityWeight?t.priorityWeight-e.priorityWeight:t.id.localeCompare(e.id))),s.map((t=>t.id))}function Hb(t,e){return function(t,e){const n=Array.isArray(t)?t:[];return n.length?e&&n.includes(e)?e:n[0]:e||void 0}(null==t?void 0:t.availableEncodeProfiles,e)}function Kb(t,e){const n=t&&"object"==typeof t?{...t}:t;return n&&"object"==typeof n?("string"==typeof e&&e?n.encodeProfile=e:delete n.encodeProfile,n):n}function Xb(t){return"string"==typeof t&&t.startsWith("cmaf:")}function Yb(t){return"image"===(null==t?void 0:t.assetType)?"image":"ivd"}function Qb(t){if(!t||"object"!=typeof t)return t;if(Object.prototype.hasOwnProperty.call(t,"mpd")){const e="string"==typeof t.mpdUrl&&t.mpdUrl||"string"==typeof t.url&&t.url||void 0;return{typeHint:"dash",body:t.mpd,url:e}}return t.ivd||t.url||t.body||t.mimeType||t.typeHint?t:(e=t)&&"object"==typeof e&&Array.isArray(e.representations)?{ivd:t}:t;var e}var Jb=new WeakMap,Zb=new WeakMap,tk=new WeakSet;class ek extends Pu{constructor(...t){super(...t),j(this,tk),W(this,Jb,void 0),W(this,Zb,void 0);const[,e={}]=t;U(Jb,this,"function"==typeof e.fetchFn?e.fetchFn:void 0),U(Zb,this,Lg())}get name(){return"AssetsDeliveryService"}get defaults(){return{assetsDeliveryServiceUrl:"https://assets.eko.com",profile:Zg("encodeProfile"),maxBatchSize:5,imageQueryParams:{startOffset:0,width:1024}}}async resolveOne(t,e={}){var n;const i=await this.resolve([t],e);if(!i.length)return;const r=i[0],o=null==r?void 0:r.manifest,s=null==r||null===(n=r.manifestRef)||void 0===n?void 0:n.encodeProfile;return o&&"object"==typeof o&&"string"==typeof s&&s?{...o,encodeProfile:s}:o}resolveImageOne(t){if(!L(tk,this,ik).call(this,t))return;const e=Hb(t,this.settings.profile),n=function(t,e,n){const i=(t||"").replace(/\/$/,""),r=null==e?void 0:e.assetId,o=null==e?void 0:e.assetRevision;if(!i||"string"!=typeof r||"number"!=typeof o)return;const s=`${i}/image/${encodeURIComponent(r)}/${o}`,a=function(t){if(!t||"object"!=typeof t||Array.isArray(t))return"";const e=new URLSearchParams;return Object.keys(t).forEach((n=>{if("string"!=typeof n||!n)return;const i=t[n];null!=i&&("number"!=typeof i||Number.isFinite(i))&&("string"!=typeof i&&"number"!=typeof i&&"boolean"!=typeof i||e.set(n,String(i)))})),e.toString()}(n);return a?`${s}?${a}`:s}(this.settings.assetsDeliveryServiceUrl||"",t,this.settings.imageQueryParams);if(!n)return;const i={typeHint:"image",url:n};return"string"==typeof e&&e&&(i.encodeProfile=e),i}async resolve(t=[],e={}){const n=(Array.isArray(t)?t:[t]).filter((t=>L(tk,this,ik).call(this,t)));if(!n.length)return[];const i=L(tk,this,nk).call(this,e);if(i&&i.aborted)return[];const r=[],o=this.settings.profile;n.forEach((t=>{if("image"!==Yb(t))return;const e=this.resolveImageOne(t);e&&e.url&&r.push({manifestRef:Kb(t,e.encodeProfile),manifest:{typeHint:"image",url:e.url}})}));const s=n.filter((t=>"image"!==Yb(t))).map((t=>function(t,e){const n=Hb(t,e);return{ref:t,profile:n,route:Xb(n)?"dash":"ivd"}}(t,o))),a=L(tk,this,ok).call(this,s);for(const{refs:t,route:e}of a){if(i&&i.aborted)return r;const{url:n}=L(tk,this,sk).call(this,t,e),o=await L(tk,this,ak).call(this,n,{method:"GET",signal:i});o&&"object"==typeof o&&t.forEach((({ref:t,profile:e})=>{const n=`${t.assetId}:${t.assetRevision}`,i=o[n]||o[t.assetId]||o[t.assetId||n];i&&r.push({manifestRef:Kb(t,e),manifest:Qb(i)})}))}return r}onDispose(){z(Zb,this)&&z(Zb,this).abort(),U(Zb,this,null),U(Jb,this,null)}}function nk(t){return t&&t.signal?t.signal:z(Zb,this)?z(Zb,this).signal:void 0}function ik(t){const e="number"==typeof(null==t?void 0:t.assetRevision)&&Number.isFinite(t.assetRevision)&&t.assetRevision>=0;return t&&"assets-delivery-service"===t.type&&"string"==typeof t.assetId&&e}function rk(t,e){const n=Number.isFinite(e)&&e>0?e:t.length,i=[];for(let e=0;e<t.length;e+=n)i.push(t.slice(e,e+n));return i}function ok(t){if(!Array.isArray(t)||!t.length)return[];const e=[];t.forEach((t=>{const n=e[e.length-1];n&&n.route===t.route?n.refs.push(t):e.push({route:t.route,refs:[t]})}));const n=[];return e.forEach((t=>{L(tk,this,rk).call(this,t.refs,this.settings.maxBatchSize).forEach((e=>{n.push({route:t.route,refs:e})}))})),n}function sk(t,e="ivd"){const n=t.map((({ref:t,profile:e})=>function(t,e){const n=`${t.assetId}:${t.assetRevision}`;return e?`${n}:${e}`:n}(t,e))),i=new URLSearchParams({assets:n.join(","),type:"data"});return{url:`${(this.settings.assetsDeliveryServiceUrl||"").replace(/\/$/,"")}/${"dash"===e?"dash":"ivd"}?${i.toString()}`}}async function ak(t,e){return z(Jb,this)?z(Jb,this).call(this,t,e):await Xg(t,{returnType:"json",method:(null==e?void 0:e.method)||"GET",signal:null==e?void 0:e.signal})}function lk({prioritizer:t,repository:e,startNodeId:n,prioritizedIds:i,pendingIds:r,allowedIds:o,filter:s,fallbackToRepository:a=!0}={}){const l=Array.isArray(i)?i:t&&"function"==typeof t.sortNodes?t.sortNodes(n):[],c=a?(f=e)&&"function"==typeof f.list?f.list().map((t=>null==t?void 0:t.id)).filter(Boolean):[]:[],u=l.length?l:c,d=r?new Set(r):null,h=o?new Set(o):null;var f;return u.filter((t=>{if(!t)return!1;if(d&&d.has(t))return!1;if(h&&!h.has(t))return!1;const n=function(t,e){if(t&&"function"==typeof t.get)return t.get(e)}(e,t);return!(!n||"function"==typeof s&&!s(n,t))}))}const ck=(Lu.requestAnimationFrame||Lu.mozRequestAnimationFrame||Lu.webkitRequestAnimationFrame||Lu.msRequestAnimationFrame||(t=>Lu.setTimeout(t,1e3/60))).bind(Lu),uk=(Lu.cancelAnimationFrame||Lu.mozCancelAnimationFrame||Lu.webkitCancelAnimationFrame||Lu.msCancelAnimationFrame||(t=>Lu.clearTimeout(t))).bind(Lu),dk=Su("ticker","warn");let hk,fk=[],pk=null,mk=Rg();function vk(){mk=Rg();const t=[];let e,n;for(n=fk.length-1;n>=0;--n)e=fk[n],mk>=e.lastTick+e.interval&&t.push(e);for(n=t.length-1;n>=0;--n)if(e=t[n],!e.stopped){e.lastTick=mk;try{e.callback()}catch(t){console&&"function"==typeof console.error?console.error(t):dk.error(t)}}hk=ck(vk)}function gk(){Rg()-mk>=200&&(uk(hk),vk())}function yk(t){let e=-1;for(let n=0;n<fk.length;n+=1)if(fk[n].callback===t){e=n;break}return e}function bk(t,e=0){if(!t||"function"!=typeof t||"number"!=typeof e||e<0)return void dk.error("[start] Invalid arguments given to start method.",arguments);const n=yk(t);return-1!==n?(dk.debug("[start] Callback already exists, overriding interval.",arguments),fk[n].interval=e,t):(fk.push({callback:t,interval:e,lastTick:Rg()}),1===fk.length&&(hk=ck(vk),pk||(pk=Lu.setInterval(gk,1e3))),t)}function kk(t){const e=yk(t);-1!==e?(fk[e].stopped=!0,fk.splice(e,1),fk.length||(uk(hk),Lu.clearInterval(pk),pk=null)):dk.debug("[stop] Callback not found, doing nothing.",arguments)}function xk(t){return-1!==yk(t)}function wk(t,e,n){const i="number"==typeof n?n:(null==n?void 0:n.maxQueueSize)||Number.POSITIVE_INFINITY,r=null!=n&&n.immediatelyFlushFirst?"boolean"==typeof n.immediatelyFlushFirst?n.immediatelyFlushFirst?1:0:Number(n.immediatelyFlushFirst):0;let o=0;if("function"!=typeof t)return void dk.error("[createThrottler] Bad argument given to createThrottler, first argument must be a function.",arguments);dk.debug("[createThrottler] Creating a new throttler instance.",arguments);const s=[];function a(){dk.debug("[onThrottlerTick] Calling callback with "+s.length+" queued items.");const e=s.slice(0);s.length=0,kk(a),t(e)}const l={push:function(t){dk.debug("[push] Queuing argument:",t),0===s.length&&bk(a,e),s.push(t),o+=1,(o<=r||s.length>=i)&&a()},flush:function(){dk.debug("[flush] Flushing queue."),0!==s.length&&a()},dispose:function(){dk.debug("[dispose] Disposing of throttler.");const t=s.slice(0);return s.length=0,kk(a),t}};return Object.defineProperty(l,"interval",{enumerable:!0,get:function(){return e},set:function(t){"number"==typeof t&&(e=t)}}),l}function _k(t,e){if(t&&"function"==typeof t)return t.__tickerThrottler||(t.__tickerThrottler=wk((function(){t()}),e)),"number"==typeof e&&(t.__tickerThrottler.interval=e),t.__tickerThrottler.push(),t.__tickerThrottler;dk.error("[scheduleExecution] Bad argument given to scheduleExecution, first argument must be a function.",arguments)}var Tk=new WeakMap,Ik=new WeakMap,Ek=new WeakMap,Sk=new WeakMap,Ak=new WeakMap,Nk=new WeakMap,Mk=new WeakMap,Fk=new WeakMap,Ok=new WeakMap,Ck=new WeakMap,Pk=new WeakMap,Dk=new WeakMap,Rk=new WeakMap,Lk=new WeakMap,Bk=new WeakMap,zk=new WeakMap,Wk=new WeakSet;class Uk extends Pu{constructor(...t){super(...t),j(this,Wk),W(this,Tk,void 0),W(this,Ik,void 0),W(this,Ek,void 0),W(this,Sk,void 0),W(this,Ak,[]),W(this,Nk,[]),W(this,Mk,new Set),W(this,Fk,new Set),W(this,Ok,!1),W(this,Ck,void 0),W(this,Pk,void 0),W(this,Dk,void 0),W(this,Rk,void 0),W(this,Lk,void 0),W(this,Bk,void 0),W(this,zk,void 0);const[e,n,i,r]=t;U(Tk,this,e),U(Ik,this,n),U(Ek,this,i),U(Sk,this,r),U(Ck,this,Lg());const o=t.length?t[t.length-1]:void 0,s=o&&"object"==typeof o&&Number.isFinite(o.maxConcurrent)?o.maxConcurrent:void 0;Number.isFinite(s)&&(this.settings.maxConcurrent=s),U(zk,this,(()=>L(Wk,this,Jk).call(this))),L(Wk,this,Vk).call(this),L(Wk,this,qk).call(this)}get name(){return"NodeResolver"}get defaults(){return{maxConcurrent:5}}onDispose(){var t;z(Ck,this)&&z(Ck,this).abort(),U(Ck,this,null),z(Sk,this)&&"function"==typeof z(Sk,this).off&&z(Dk,this)&&z(Sk,this).off(Pm.PLACEMENT_ADDED,z(Dk,this)),z(Sk,this)&&"function"==typeof z(Sk,this).off&&z(Bk,this)&&z(Sk,this).off(Pm.TIMELINE_RESET,z(Bk,this)),z(Tk,this)&&"function"==typeof z(Tk,this).off&&z(Rk,this)&&z(Tk,this).off(Pm.NODE_ADD,z(Rk,this)),z(Tk,this)&&"function"==typeof z(Tk,this).off&&z(Lk,this)&&z(Tk,this).off(Pm.NODE_CHILDREN_CHANGED,z(Lk,this)),U(Dk,this,null),U(Rk,this,null),U(Lk,this,null),U(Bk,this,null),U(Ak,this,[]),U(Nk,this,[]),z(Mk,this).clear(),z(Fk,this).clear(),U(Ok,this,!1),U(Pk,this,void 0),null!==(t=z(zk,this))&&void 0!==t&&t.__tickerThrottler&&z(zk,this).__tickerThrottler.dispose(),U(zk,this,null)}}function jk(){return z(Ck,this)?z(Ck,this).signal:void 0}function $k(){return this._disposed||z(Ck,this)&&z(Ck,this).signal.aborted}function qk(){z(Sk,this)&&"function"==typeof z(Sk,this).on&&(U(Dk,this,(t=>{L(Wk,this,Hk).call(this,null==t?void 0:t.nodeId)})),z(Sk,this).on(Pm.PLACEMENT_ADDED,z(Dk,this)),U(Bk,this,(()=>L(Wk,this,Gk).call(this))),z(Sk,this).on(Pm.TIMELINE_RESET,z(Bk,this))),z(Tk,this)&&"function"==typeof z(Tk,this).on&&(U(Rk,this,(({node:t})=>{(null==t?void 0:t.id)&&L(Wk,this,Hk).call(this,t.id,{fromRepoAdd:!0})})),z(Tk,this).on(Pm.NODE_ADD,z(Rk,this)),U(Lk,this,(()=>{_k(z(zk,this),100)})),z(Tk,this).on(Pm.NODE_CHILDREN_CHANGED,z(Lk,this)))}function Vk(){const t=z(Sk,this)&&Array.isArray(z(Sk,this).placements)?z(Sk,this).placements:[];t.forEach((t=>L(Wk,this,Hk).call(this,t.nodeId)));const e=t.length?t[t.length-1]:void 0;e&&e.nodeId&&U(Pk,this,e.nodeId)}function Gk(){z(Ck,this)&&z(Ck,this).abort(),U(Ck,this,Lg()),U(Ak,this,[]),U(Nk,this,[]),z(Mk,this).clear(),U(Ok,this,!1),U(Pk,this,void 0)}function Hk(t,{fromRepoAdd:e=!1}={}){L(Wk,this,$k).call(this)||t&&(z(Fk,this).has(t)||z(Mk,this).has(t)||(z(Ak,this).push(t),z(Pk,this)||e||U(Pk,this,t),!z(Ok,this)&&e||L(Wk,this,Kk).call(this)))}function Kk(){if(z(Ok,this))return void L(Wk,this,Xk).call(this);if(0===z(Ak,this).length)return;U(Ok,this,!0);const t=z(Ak,this).shift();L(Wk,this,Zk).call(this,t).finally((()=>{L(Wk,this,Xk).call(this)}))}async function Xk(){if(!L(Wk,this,$k).call(this))for(z(Ak,this).length||z(Nk,this).length||U(Nk,this,L(Wk,this,Yk).call(this));z(Mk,this).size<this.settings.maxConcurrent;){const t=this.settings.maxConcurrent-z(Mk,this).size;if(t<=0)break;const e=[];for(;e.length<t&&(z(Ak,this).length||z(Nk,this).length);){let t=z(Ak,this).shift();t||(t=z(Nk,this).shift()),t&&e.push(t)}if(!e.length)break;const n=L(Wk,this,tx).call(this,e);n.length&&z(Ek,this)&&"function"==typeof z(Ek,this).resolve&&L(Wk,this,ex).call(this,n).finally((()=>L(Wk,this,Xk).call(this))),e.filter((t=>!n.find((e=>e.nodeId===t)))).forEach((t=>{L(Wk,this,Zk).call(this,t).finally((()=>L(Wk,this,Xk).call(this)))}))}}function Yk(){const t=new Set([...z(Fk,this),...z(Mk,this),...z(Ak,this)]);return L(Wk,this,Qk).call(this,t)}function Qk(t){const e=z(Sk,this)&&Array.isArray(z(Sk,this).placements)?z(Sk,this).placements:[],n=(e.length?e[e.length-1].nodeId:void 0)||z(Pk,this);return lk({prioritizer:z(Ik,this),repository:z(Tk,this),startNodeId:n,pendingIds:t,fallbackToRepository:!1})}function Jk(){L(Wk,this,$k).call(this)||(z(Ok,this)||0!==z(Ak,this).length)&&(U(Nk,this,L(Wk,this,Yk).call(this)),z(Ok,this)&&L(Wk,this,Xk).call(this))}async function Zk(t,e){if(!t||z(Fk,this).has(t)||z(Mk,this).has(t))return;const n=L(Wk,this,jk).call(this);if(n&&n.aborted)return;const i=z(Tk,this)&&"function"==typeof z(Tk,this).get?z(Tk,this).get(t):void 0;if(i&&"function"==typeof i.resolve)if("function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts())z(Fk,this).add(t);else{z(Mk,this).add(t);try{const r={signal:n};e&&(r.manifestOverride=e),await i.resolve(r),z(Fk,this).add(t)}catch(e){if(zg(e,n))return;this.log.warn(`NodeResolver failed to resolve node ${t}: ${(null==e?void 0:e.message)||e}`),"function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts()&&z(Fk,this).add(t)}finally{z(Mk,this).delete(t)}}}function tx(t){const e=[];return t.forEach((t=>{const n=z(Tk,this)&&"function"==typeof z(Tk,this).get?z(Tk,this).get(t):void 0;n&&n.manifestRef&&"assets-delivery-service"===n.manifestRef.type&&e.push({nodeId:t,ref:n.manifestRef})})),e}async function ex(t){const e=L(Wk,this,jk).call(this);if(!e||!e.aborted){t.forEach((({nodeId:t})=>z(Mk,this).add(t)));try{const n=t.map((t=>t.ref)),i=await z(Ek,this).resolve(n,{signal:e});t.forEach((({nodeId:t,ref:e})=>{var n;const r=z(Tk,this)&&"function"==typeof z(Tk,this).get?z(Tk,this).get(t):void 0;if(z(Mk,this).delete(t),!r||"function"!=typeof r.resolve)return;const o=Array.isArray(i)?i.find((t=>{const n=null==t?void 0:t.manifestRef;return n&&n.assetId===e.assetId&&n.assetRevision===e.assetRevision})):void 0,s="string"==typeof(null==o||null===(n=o.manifestRef)||void 0===n?void 0:n.encodeProfile)&&o.manifestRef.encodeProfile?o.manifestRef.encodeProfile:void 0,a=o?L(Wk,this,nx).call(this,o.manifest,s):void 0;L(Wk,this,Zk).call(this,t,a)}))}catch(n){zg(n,e)||this.log.warn(`NodeResolver ADS batch failed: ${(null==n?void 0:n.message)||n}`),t.forEach((({nodeId:t})=>z(Mk,this).delete(t)))}}}function nx(t,e){if(!t)return;const n="string"==typeof e&&e?e:void 0,i=t=>n&&t&&"object"==typeof t?{...t,encodeProfile:n}:t;return t.ivd?i({typeHint:"ivd",body:t.ivd}):t.url||t.body||t.mimeType?i({typeHint:t.typeHint,url:t.url,mimeType:t.mimeType,body:t.body}):i(t)}const ix=.001,rx="priority";function ox(t){const e=Number(t);return Number.isFinite(e)?e:0}var sx=new WeakMap,ax=new WeakMap,lx=new WeakMap,cx=new WeakMap,ux=new WeakMap,dx=new WeakMap,hx=new WeakMap,fx=new WeakMap,px=new WeakMap,mx=new WeakMap,vx=new WeakMap,gx=new WeakMap,yx=new WeakMap,bx=new WeakMap,kx=new WeakMap,xx=new WeakMap,wx=new WeakMap,_x=new WeakMap,Tx=new WeakMap,Ix=new WeakMap,Ex=new WeakSet;class Sx extends Pu{constructor(...t){super(...t),j(this,Ex),W(this,sx,void 0),W(this,ax,void 0),W(this,lx,void 0),W(this,cx,new Map),W(this,ux,new Map),W(this,dx,[]),W(this,hx,new Set),W(this,fx,new Map),W(this,px,!1),W(this,mx,void 0),W(this,vx,void 0),W(this,gx,void 0),W(this,yx,void 0),W(this,bx,void 0),W(this,kx,void 0),W(this,xx,void 0),W(this,wx,void 0),W(this,_x,!1),W(this,Tx,[]),W(this,Ix,void 0);const[e,n,i]=t;U(sx,this,e),U(ax,this,n),U(lx,this,i),U(vx,this,Lg()),U(Ix,this,(()=>L(Ex,this,cw).call(this))),L(Ex,this,jx).call(this)}get name(){return"SegmentLoadCoordinator"}get defaults(){return{maxConcurrentLoads:3,maxSegmentLoadAttempts:3}}onDispose(){var t;z(vx,this)&&z(vx,this).abort(),U(vx,this,null),z(fx,this).size&&z(fx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(fx,this).clear(),z(lx,this)&&"function"==typeof z(lx,this).off&&(z(gx,this)&&z(lx,this).off(Pm.PLACEMENT_ADDED,z(gx,this)),z(bx,this)&&z(lx,this).off(Pm.TIMELINE_SEEKING,z(bx,this)),z(kx,this)&&z(lx,this).off(Pm.TIMELINE_SEEKED,z(kx,this)),z(xx,this)&&z(lx,this).off(Pm.TIMELINE_RESET,z(xx,this))),z(sx,this)&&"function"==typeof z(sx,this).off&&z(yx,this)&&z(sx,this).off(Pm.NODE_CHILDREN_CHANGED,z(yx,this)),z(wx,this)&&"function"==typeof Lu.removeEventListener&&Lu.removeEventListener("online",z(wx,this)),U(gx,this,null),U(yx,this,null),U(bx,this,null),U(kx,this,null),U(xx,this,null),U(wx,this,null),z(cx,this).clear(),z(ux,this).clear(),U(dx,this,[]),z(hx,this).clear(),z(fx,this).clear(),U(px,this,!1),U(mx,this,void 0),U(_x,this,!1),U(Tx,this,[]),null!==(t=z(Ix,this))&&void 0!==t&&t.__tickerThrottler&&z(Ix,this).__tickerThrottler.dispose(),U(Ix,this,null)}}function Ax(){return z(vx,this)?z(vx,this).signal:void 0}function Nx(){return this._disposed||z(vx,this)&&z(vx,this).signal.aborted}function Mx(){const t=Number(this.settings.maxSegmentLoadAttempts);return Number.isFinite(t)&&t>0?t:1/0}function Fx(t){const e=L(Ex,this,Mx).call(this);if(!Number.isFinite(e)||e===1/0)return!1;if(null==t||!t.loadError)return!1;const n=Number(t.loadAttempts);return Number.isFinite(n)&&n>=e}function Ox(t){return!!t&&(!!L(Ex,this,Fx).call(this,t)||L(Ex,this,Cx).call(this,t))}function Cx(t){if(!t)return!1;if("boolean"==typeof t.isLoaded)return t.isLoaded;const e=Number(t.retainedByteLength);return Number.isFinite(e)&&e>0}function Px(t){if(!t||L(Ex,this,Cx).call(this,t))return;const e=Number(t.loadAttempts);(Number.isFinite(e)&&e>0||t.loadError)&&("function"==typeof t.evict&&t.evict(),t.loadAttempts=0,t.loadError=void 0)}function Dx(t){t&&(t.manifestLoadError&&(t.manifestLoadAttempts=0,t.manifestLoadError=void 0,"failed"===t.state&&(t.state="pending",t.error=void 0)),(Array.isArray(t.tracks)?t.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{L(Ex,this,Px).call(this,t)}))})))}function Rx(){(z(sx,this)&&"function"==typeof z(sx,this).list?z(sx,this).list():[]).forEach((t=>{L(Ex,this,Dx).call(this,t)}))}function Lx(t,{allowSeekKeep:e=!1,segmentOffset:n}={}){const i=Lg(),r=i?i.signal:L(Ex,this,Ax).call(this);return t&&z(fx,this).set(t,{controller:i,allowSeekKeep:!!e,segmentOffset:n}),{signal:r,controller:i}}function Bx(t,e,n={}){const i=z(fx,this).get(t);i&&i.controller===e&&(Object.prototype.hasOwnProperty.call(n,"allowSeekKeep")&&(i.allowSeekKeep=!!n.allowSeekKeep),Object.prototype.hasOwnProperty.call(n,"segmentOffset")&&(i.segmentOffset=n.segmentOffset))}function zx(t,e){const n=z(fx,this).get(t);n&&(e&&n.controller!==e||z(fx,this).delete(t))}function Wx(t,e){const n=new Set;return(Array.isArray(t)?t:[]).forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i)return;const r=z(sx,this)&&"function"==typeof z(sx,this).get?z(sx,this).get(i):void 0;if(!r)return;const o=L(Ex,this,Zx).call(this,r,t,e);Number.isFinite(o)&&n.add(`${i}:${o}`)})),n}function Ux(t){z(fx,this).size&&z(fx,this).forEach(((e,n)=>{const i=null==e?void 0:e.segmentOffset,r=Number.isFinite(i)?`${n}:${i}`:"";!(null!=e&&e.allowSeekKeep&&r&&t&&t.has(r))&&(null==e?void 0:e.controller)&&e.controller.abort()}))}function jx(){z(lx,this)&&"function"==typeof z(lx,this).on&&(U(gx,this,(t=>{L(Ex,this,Kx).call(this,t)})),z(lx,this).on(Pm.PLACEMENT_ADDED,z(gx,this)),U(bx,this,(t=>L(Ex,this,$x).call(this,t))),z(lx,this).on(Pm.TIMELINE_SEEKING,z(bx,this)),U(kx,this,(t=>L(Ex,this,qx).call(this,t))),z(lx,this).on(Pm.TIMELINE_SEEKED,z(kx,this)),U(xx,this,(()=>L(Ex,this,Hx).call(this))),z(lx,this).on(Pm.TIMELINE_RESET,z(xx,this))),z(sx,this)&&"function"==typeof z(sx,this).on&&(U(yx,this,(()=>{_k(z(Ix,this),100)})),z(sx,this).on(Pm.NODE_CHILDREN_CHANGED,z(yx,this))),"function"==typeof Lu.addEventListener&&(U(wx,this,(()=>L(Ex,this,Gx).call(this))),Lu.addEventListener("online",z(wx,this)))}function $x(t={}){if(L(Ex,this,Nx).call(this))return;const e=Number(null==t?void 0:t.targetTime);if(!Number.isFinite(e))return;const n=Array.isArray(null==t?void 0:t.placements)?t.placements:[],i=L(Ex,this,Wx).call(this,n,e);L(Ex,this,Ux).call(this,i),U(_x,this,!0),U(Tx,this,n.map((t=>{const n=null==t?void 0:t.nodeId;if(n)return{nodeId:n,placement:t,targetTime:e}})).filter(Boolean)),setTimeout((()=>L(Ex,this,Yx).call(this)),0)}function qx(t={}){var e;if(L(Ex,this,Nx).call(this))return;U(_x,this,!1),U(Tx,this,[]);const n=Number.isFinite(null==t?void 0:t.targetTime)?Number(t.targetTime):Number(null===(e=z(lx,this))||void 0===e?void 0:e.currentTime);L(Ex,this,Vx).call(this,n),setTimeout((()=>L(Ex,this,Yx).call(this)),0)}function Vx(t){var e;(Array.isArray(null===(e=z(lx,this))||void 0===e?void 0:e.placements)?z(lx,this).placements:[]).forEach((e=>{if(!e)return;const n=Lp(e);if(Number.isFinite(n)){if(Number.isFinite(t)){if(n>=t)return void L(Ex,this,Kx).call(this,e);const i=Dp(e,z(sx,this));return Number.isFinite(i)?void(n+i>t&&L(Ex,this,Kx).call(this,e)):void(n<=t&&L(Ex,this,Kx).call(this,e))}L(Ex,this,Kx).call(this,e)}}))}function Gx(){var t;L(Ex,this,Nx).call(this)||(L(Ex,this,Rx).call(this),U(_x,this,!1),U(Tx,this,[]),L(Ex,this,Vx).call(this,Number(null===(t=z(lx,this))||void 0===t?void 0:t.currentTime)),U(dx,this,L(Ex,this,aw).call(this)),setTimeout((()=>L(Ex,this,Yx).call(this)),0))}function Hx(){z(vx,this)&&z(vx,this).abort(),U(vx,this,Lg()),z(fx,this).size&&z(fx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(fx,this).clear(),z(cx,this).clear(),z(ux,this).clear(),U(dx,this,[]),z(hx,this).clear(),U(px,this,!1),U(mx,this,void 0),U(_x,this,!1),U(Tx,this,[])}function Kx(t){if(L(Ex,this,Nx).call(this))return;const e=null==t?void 0:t.nodeId;if(!e)return;const n=z(cx,this).get(e);if(n){const i=Lp(n),r=Lp(t);Number.isFinite(i)?Number.isFinite(r)&&r<i&&z(cx,this).set(e,t):Number.isFinite(r)&&z(cx,this).set(e,t)}else z(cx,this).set(e,t);const i=z(mx,this);U(mx,this,e),i&&i!==e&&U(dx,this,[]),z(px,this)?setTimeout((()=>L(Ex,this,Yx).call(this)),0):L(Ex,this,Xx).call(this)}function Xx(){z(px,this)||z(cx,this).size&&(U(px,this,!0),L(Ex,this,Yx).call(this))}async function Yx(){if(L(Ex,this,Nx).call(this))return;if(z(hx,this).size>=this.settings.maxConcurrentLoads)return;if(z(_x,this))return void(z(Tx,this).length&&L(Ex,this,Qx).call(this));const t=L(Ex,this,nw).call(this);if(t.hasPending)L(Ex,this,iw).call(this,t);else for(z(dx,this).length||U(dx,this,L(Ex,this,aw).call(this));z(hx,this).size<this.settings.maxConcurrentLoads&&z(dx,this).length;){const t=z(dx,this).shift();L(Ex,this,uw).call(this,t,"partial").finally((()=>{setTimeout((()=>L(Ex,this,Yx).call(this)),0)}))}}function Qx(){if(L(Ex,this,Nx).call(this))return;const t=Math.max(0,this.settings.maxConcurrentLoads-z(hx,this).size);if(!t||!z(Tx,this).length)return;const e=[],n=[];for(let i=0;i<z(Tx,this).length;i+=1){const r=z(Tx,this)[i];(null==r?void 0:r.nodeId)&&(e.length<t&&!z(hx,this).has(r.nodeId)?e.push(r):n.push(r))}U(Tx,this,n),e.forEach((t=>{L(Ex,this,Jx).call(this,t).finally((()=>{setTimeout((()=>L(Ex,this,Yx).call(this)),0)}))}))}async function Jx(t={}){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.placement,i=Number(null==t?void 0:t.targetTime);if(!e||!n||!Number.isFinite(i))return;if(z(hx,this).has(e))return;const{signal:r,controller:o}=L(Ex,this,Lx).call(this,e);if(r&&r.aborted)L(Ex,this,zx).call(this,e,o);else{z(hx,this).add(e);try{const t=z(sx,this)&&"function"==typeof z(sx,this).get?z(sx,this).get(e):void 0;if(!t)return;if("ready"!==t.state&&"function"==typeof t.resolve)try{await t.resolve({signal:r})}catch(t){return}if("ready"!==t.state)return;const s=L(Ex,this,Zx).call(this,t,n,i);if(!Number.isFinite(s)){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks.map((t=>null==t?void 0:t.type)).filter(Boolean):[];return void this.log.debug(`[#loadSeekWork] No seek segment offset for node [${e}] targetTime=${i} mainTrackId=${(null==t?void 0:t.mainTrackId)||"n/a"} trackTypes=[${n.join(",")}]`)}"function"==typeof t.loadMediaSegmentsAtOffset?(this.log.debug(`[#loadSeekWork] Loading seek segment for node [${e}] at offset=${s}`),L(Ex,this,Bx).call(this,e,o,{allowSeekKeep:!0,segmentOffset:s}),await t.loadMediaSegmentsAtOffset(s,{signal:r})):"function"==typeof t.load&&await t.load({loadingMode:"partial",signal:r})}catch(t){zg(t,r)||this.log.warn(`[#loadSeekWork] SegmentLoadCoordinator failed to seek-load node ${e}: ${(null==t?void 0:t.message)||t}`)}finally{z(hx,this).delete(e),L(Ex,this,zx).call(this,e,o)}}}function Zx(t,e,n){var i;const r=Lp(e);if(!Number.isFinite(r))return;const o=ox(null==e?void 0:e.nodeOffsetOverride),s=Math.max(0,n-r+o),a=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let l;if(null!=t&&t.mainTrackId){const e=a.find((e=>(null==e?void 0:e.id)===t.mainTrackId));"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(l=e)}if(l||(l=a.find((t=>"video"===(null==t?void 0:t.type)))||a.find((t=>"image"===(null==t?void 0:t.type)))),!l||!Array.isArray(l.segments))return;const c=l.segments.filter((t=>t&&!t.isInit&&Array.isArray(t.representations)));if(!c.length)return;const u=ox(null===(i=l)||void 0===i?void 0:i.offset),d=ky(c,Math.max(0,s-u),{preferRepresentationTime:!0}),h=Number(null==d?void 0:d.offset);return Number.isFinite(h)?h:void 0}function tw(t,e,n=(t=>null===(t=z(lx,this))||void 0===t?void 0:t.currentTime)()){var i;const r=(Array.isArray(null===(i=z(lx,this))||void 0===i?void 0:i.placements)?z(lx,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Lp(e)))).sort(((t,e)=>Lp(t)-Lp(e)));if(!r.length)return e;const o=Number(n);if(!Number.isFinite(o))return e||r[0];let s,a;for(let t=0;t<r.length;t+=1){const e=r[t],n=Lp(e);if(!Number.isFinite(n))continue;const i=Dp(e,z(sx,this)),l=Number.isFinite(i)&&i>=0;(!a&&n>=o-ix&&(a=e),l)?o+ix>=n&&o<n+i-ix&&(s=e):o+ix>=n&&(s=e)}return s||a||r[r.length-1]}function ew(t,e){var n;const i=Number(Lp(e));if(!Number.isFinite(i))return;const r=Dp(e,z(sx,this)),o=Number.isFinite(r)&&r>=0?i+r:void 0,s=(Array.isArray(null===(n=z(lx,this))||void 0===n?void 0:n.placements)?z(lx,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(Lp(e)))).sort(((t,e)=>Lp(t)-Lp(e)));for(let t=0;t<s.length;t+=1){const e=s[t],n=Number(Lp(e));if(Number.isFinite(n)&&!(n<=i+ix)){if(Number.isFinite(o)&&n>o+ix)return;return e}}}function nw(){const t=[];let e=!1,n=1/0;if(z(cx,this).forEach(((i,r)=>{if(!r||!i)return;const o=z(ux,this).get(r);if(o)return e=!0,void(n=Math.min(n,ox(o.timelineStart)));const s=L(Ex,this,rw).call(this,r,i);s&&(e=!0,n=Math.min(n,ox(s.timelineStart)),t.push(s))})),!e||!Number.isFinite(n))return{hasPending:!1,waveTime:void 0,startable:[]};const i=t.filter((t=>ox(t.timelineStart)===n&&!z(hx,this).has(t.nodeId))).sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.timelineStart)?t.timelineStart:Number.POSITIVE_INFINITY,i=Number.isFinite(null==e?void 0:e.timelineStart)?e.timelineStart:Number.POSITIVE_INFINITY;return n!==i?n-i:String(t.nodeId).localeCompare(String(e.nodeId))}));return{hasPending:!0,waveTime:n,startable:i}}function iw({waveTime:t,startable:e}){const n=Math.max(0,this.settings.maxConcurrentLoads-z(hx,this).size);n&&e.length&&e.slice(0,n).forEach((e=>{L(Ex,this,sw).call(this,e,t).finally((()=>{setTimeout((()=>L(Ex,this,Yx).call(this)),0)}))}))}function rw(t,e){var n,i;const r=z(sx,this)&&"function"==typeof z(sx,this).get?z(sx,this).get(t):void 0;if(!r)return;if("function"==typeof r.hasExceededManifestLoadAttempts&&r.hasExceededManifestLoadAttempts())return void z(cx,this).delete(t);const o=L(Ex,this,tw).call(this,t,e,null===(n=z(lx,this))||void 0===n?void 0:n.currentTime),s=Number(Lp(o)),a=ox(null===(i=z(lx,this))||void 0===i?void 0:i.currentTime),l="function"==typeof r.loadMediaSegmentsAtOffset,c="function"==typeof r.load;if(!l&&!c)return void z(cx,this).delete(t);if(r.isLoaded)return void z(cx,this).delete(t);if("ready"!==r.state){if(!Number.isFinite(s))return;return{nodeId:t,segmentOffset:0,timelineStart:s}}if(!L(Ex,this,dw).call(this,r))return void z(cx,this).delete(t);const u=Array.isArray(r.tracks)?r.tracks:[],d=u.some((t=>{const e=(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));return!!e&&!L(Ex,this,Ox).call(this,e)})),h=new Set;u.forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return;const e=Number(t.offset);if(Number.isFinite(e)){const t=Math.round(e/ix)*ix;h.add(t)}}))}));const f=Array.from(h).sort(((t,e)=>t-e)),p=e=>{const n=Number(Lp(e));if(!Number.isFinite(n))return{status:"none"};const i=ox(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,a-n+i);let s=0;for(let t=0;t<f.length&&f[t]<=o+ix;t+=1)s=t;const l=f.slice(s);if(!l.some((t=>L(Ex,this,ow).call(this,r,t))))return{status:f.slice(0,s).some((t=>L(Ex,this,ow).call(this,r,t)))?"beforeOnly":"none"};const c=l.find((t=>L(Ex,this,ow).call(this,r,t))),u=Math.max(0,ox(c)-i);return{status:"work",work:{nodeId:t,segmentOffset:c,timelineStart:n+u}}},m=p(o);if("work"===m.status)return m.work;if("beforeOnly"!==m.status){if(d&&Number.isFinite(s))return{nodeId:t,segmentOffset:0,timelineStart:s};z(cx,this).delete(t)}else{const e=L(Ex,this,ew).call(this,t,o);if(e){const t=p(e);if("work"===t.status)return t.work}}}function ow(t,e){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],i=ox(e);return n.some((t=>(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).some((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return!1;const e=Number(t.offset);return Number.isFinite(e)&&Math.abs(e-i)<=ix&&!L(Ex,this,Ox).call(this,t)}))))}async function sw(t,e){const n=null==t?void 0:t.nodeId,i=null==t?void 0:t.segmentOffset;if(this.log.debug(`[#loadP0Work] Loading ${rx} node [${n}] at segmentOffset=${i} wave=${e}`),!n)return;const r=z(sx,this)&&"function"==typeof z(sx,this).get?z(sx,this).get(n):void 0;if(!r)return void z(cx,this).delete(n);const o="function"==typeof r.loadMediaSegmentsAtOffset&&Number.isFinite(i),{signal:s,controller:a}=L(Ex,this,Lx).call(this,n,{allowSeekKeep:o,segmentOffset:i});if(s&&s.aborted)L(Ex,this,zx).call(this,n,a);else{z(hx,this).add(n),z(ux,this).set(n,{timelineStart:e,segmentOffset:i});try{"function"==typeof r.loadMediaSegmentsAtOffset?await r.loadMediaSegmentsAtOffset(i,{signal:s}):"function"==typeof r.load&&await r.load({loadingMode:"full",signal:s})}catch(t){if(zg(t,s))return;const e=`[#loadP0Work] SegmentLoadCoordinator failed to load ${rx} work for node ${n}: ${(null==t?void 0:t.message)||t}`;this.log.warn(e)}finally{this.log.debug(`[#loadP0Work] Finished ${rx} work for node [${n}]`),z(ux,this).delete(n),z(hx,this).delete(n),L(Ex,this,zx).call(this,n,a)}}}function aw(){const t=new Set([...z(cx,this).keys(),...z(hx,this)]),e=L(Ex,this,lw).call(this),n=Array.isArray(null==e?void 0:e.orderedIds)?e.orderedIds:null,i=Array.isArray(null==e?void 0:e.reachableIds)&&e.reachableIds.length?new Set(e.reachableIds):null,r=t=>!("function"==typeof t.hasExceededManifestLoadAttempts&&t.hasExceededManifestLoadAttempts()||t.isLoaded||"ready"===t.state&&L(Ex,this,hw).call(this,t));if(i){const e=lk({prioritizer:z(ax,this),repository:z(sx,this),startNodeId:z(mx,this),prioritizedIds:n,pendingIds:t,allowedIds:i,filter:r});if(e.length)return e}return lk({prioritizer:z(ax,this),repository:z(sx,this),startNodeId:z(mx,this),prioritizedIds:n,pendingIds:t,filter:r})}function lw(){return z(ax,this)&&z(mx,this)?"function"==typeof z(ax,this).getPrioritizationSnapshot?z(ax,this).getPrioritizationSnapshot(z(mx,this)):{orderedIds:"function"==typeof z(ax,this).sortNodes?z(ax,this).sortNodes(z(mx,this)):[],reachableIds:"function"==typeof z(ax,this).getReachableNodeIds?z(ax,this).getReachableNodeIds(z(mx,this)):[]}:null}function cw(){L(Ex,this,Nx).call(this)||(z(px,this)||z(cx,this).size)&&(U(dx,this,L(Ex,this,aw).call(this)),z(px,this)&&!z(_x,this)&&L(Ex,this,Yx).call(this))}async function uw(t,e){if(this.log.debug(`[#loadNode] Loading node [${t}] in '${e}' mode`),!t)return;const n=z(sx,this)&&"function"==typeof z(sx,this).get?z(sx,this).get(t):void 0;if(!n||"function"!=typeof n.load)return;if("function"==typeof n.hasExceededManifestLoadAttempts&&n.hasExceededManifestLoadAttempts())return;if(n.isLoaded)return void this.log.debug(`[#loadNode] Skipping load for ${t}: already loaded`);const{signal:i,controller:r}=L(Ex,this,Lx).call(this,t,{allowSeekKeep:!1});if(i&&i.aborted)L(Ex,this,zx).call(this,t,r);else try{if("ready"!==n.state&&await n.resolve({signal:i}),"ready"!==n.state)return void this.log.debug(`[#loadNode] Skipping load for ${t}: not ready`);if("partial"===e&&L(Ex,this,hw).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: partial already loaded`);if(!L(Ex,this,dw).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: no loadable tracks`);z(hx,this).add(t),await n.load({loadingMode:e,signal:i})}catch(e){if(zg(e,i))return;this.log.warn(`[#loadNode] SegmentLoadCoordinator failed to load node ${t}: ${(null==e?void 0:e.message)||e}`)}finally{this.log.debug(`[#loadNode] Finished loading node [${t}]`),z(hx,this).delete(t),L(Ex,this,zx).call(this,t,r)}}function dw(t){return(Array.isArray(t.tracks)?t.tracks:[]).some((t=>{var e;return null==t||null===(e=t.segments)||void 0===e?void 0:e.length}))}function hw(t){const e=(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>Array.isArray(null==t?void 0:t.segments)&&t.segments.length));return!e.length||e.every((t=>{const e=Array.isArray(null==t?void 0:t.segments)?t.segments:[];if(!e.length)return!0;const n=e.find((t=>null==t?void 0:t.isInit)),i=e.find((t=>t&&!t.isInit));return!(n&&!L(Ex,this,Ox).call(this,n)||i&&!L(Ex,this,Ox).call(this,i))}))}class fw extends Pu{constructor(...t){super(...t),this.track=void 0,this.lastSegment=void 0}get name(){return"BaseDecoder"}configure(t){this.track=t}decode(t){this.lastSegment=t}decodeChunk(t,e){}onDispose(){this.track=void 0,this.lastSegment=void 0}}function pw(t){if(!t)throw new Error("Assertion failed.")}const mw=t=>t&&t[t.length-1],vw=t=>{let e=0;for(;0===t.readBits(1)&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},gw=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),yw=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),bw=new TextDecoder,kw=t=>Object.fromEntries(Object.entries(t).map((([t,e])=>[e,t]))),xw={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},ww=kw(xw),_w={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},Tw=kw(_w),Iw={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},Ew=kw(Iw),Sw=t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),Aw=t=>(t=(t=(t=(t=(t=t>>1&1431655765|(1431655765&t)<<1)>>2&858993459|(858993459&t)<<2)>>4&252645135|(252645135&t)<<4)>>8&16711935|(16711935&t)<<8)>>16&65535|(65535&t)<<16)>>>0,Nw=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+r>>1,a=n(t[s]);a===e?(o=s,r=s-1):a<e?i=s+1:r=s-1}return o},Mw=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+(r-i+1)/2|0;n(t[s])<=e?(o=s,i=s+1):r=s-1}return o},Fw=()=>{let t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}},Ow=(t,e,n)=>t.getUint8(e)<<16|t.getUint8(e+1)<<8|t.getUint8(e+2),Cw=(t,e,n)=>Math.max(e,Math.min(n,t)),Pw=/^[a-z]{3}$/,Dw=1e6*(1+Number.EPSILON);let Rw=null;let Lw=null;const Bw=()=>{if(null!==Lw)return Lw;if("undefined"==typeof navigator)return null;const t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?Lw=Number(t[1]):null},zw=t=>"number"==typeof t&&!Number.isNaN(t);class Ww{constructor(t,e){if(this.data=t,this.mimeType=e,!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("string"!=typeof e)throw new TypeError("mimeType must be a string.")}}const Uw={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1};class jw{constructor(t){this.bytes=t,this.pos=0}seekToByte(t){this.pos=8*t}readBit(){var t;const e=Math.floor(this.pos/8),n=null!==(t=this.bytes[e])&&void 0!==t?t:0,i=7-(7&this.pos),r=(n&1<<i)>>i;return this.pos++,r}readBits(t){if(1===t)return this.readBit();let e=0;for(let n=0;n<t;n++)e<<=1,e|=this.readBit();return e}writeBits(t,e){const n=this.pos+t;for(let t=this.pos;t<n;t++){const i=Math.floor(t/8);let r=this.bytes[i];const o=7-(7&t);r&=~(1<<o),r|=(e&1<<n-t-1)>>n-t-1<<o,this.bytes[i]=r}this.pos=n}readAlignedByte(){var t;if(this.pos%8!=0)throw new Error("Bitstream is not byte-aligned.");const e=this.pos/8,n=null!==(t=this.bytes[e])&&void 0!==t?t:0;return this.pos+=8,n}skipBits(t){this.pos+=t}getBitsLeft(){return 8*this.bytes.length-this.pos}clone(){const t=new jw(this.bytes);return t.pos=this.pos,t}}const $w=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],qw=[-1,1,2,3,4,5,6,8],Vw=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");const e=new jw(t);let n=e.readBits(5);31===n&&(n=32+e.readBits(6));const i=e.readBits(4);let r=null;15===i?r=e.readBits(24):i<$w.length&&(r=$w[i]);const o=e.readBits(4);let s=null;return o>=1&&o<=7&&(s=qw[o]),{objectType:n,frequencyIndex:i,sampleRate:r,channelConfiguration:o,numberOfChannels:s}},Gw=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],Hw=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],Kw=t=>{const{codec:e,codecDescription:n,colorSpace:i,avcCodecInfo:r,hevcCodecInfo:o,vp9CodecInfo:s,av1CodecInfo:a}=t;if("avc"===e){if(pw(null!==t.avcType),r){const e=new Uint8Array([r.avcProfileIndication,r.profileCompatibility,r.avcLevelIndication]);return`avc${t.avcType}.${Sw(e)}`}if(!n||n.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${Sw(n.subarray(1,4))}`}if("hevc"===e){let t,e,i,r,s,a;if(o)t=o.generalProfileSpace,e=o.generalProfileIdc,i=Aw(o.generalProfileCompatibilityFlags),r=o.generalTierFlag,s=o.generalLevelIdc,a=[...o.generalConstraintIndicatorFlags];else{if(!n||n.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");const o=yw(n),l=o.getUint8(1);t=l>>6&3,e=31&l,i=Aw(o.getUint32(2)),r=l>>5&1,s=o.getUint8(12),a=[];for(let t=0;t<6;t++)a.push(o.getUint8(6+t))}let l="hev1.";for(l+=["","A","B","C"][t]+e,l+=".",l+=i.toString(16).toUpperCase(),l+=".",l+=0===r?"L":"H",l+=s;a.length>0&&0===a[a.length-1];)a.pop();return a.length>0&&(l+=".",l+=a.map((t=>t.toString(16).toUpperCase())).join(".")),l}if("vp8"===e)return"vp8";if("vp9"===e){if(!s){const e=t.width*t.height;let n=mw(Hw).level;for(const t of Hw)if(e<=t.maxPictureSize){n=t.level;break}return`vp09.00.${n.toString().padStart(2,"0")}.08`}let e=`vp09.${s.profile.toString().padStart(2,"0")}.${s.level.toString().padStart(2,"0")}.${s.bitDepth.toString().padStart(2,"0")}.${s.chromaSubsampling.toString().padStart(2,"0")}`;return e+=`.${s.colourPrimaries.toString().padStart(2,"0")}.${s.transferCharacteristics.toString().padStart(2,"0")}.${s.matrixCoefficients.toString().padStart(2,"0")}.${s.videoFullRangeFlag.toString().padStart(2,"0")}`,e.endsWith(".01.01.01.01.00")&&(e=e.slice(0,-15)),e}if("av1"===e){if(!a){const e=t.width*t.height;let n=mw(Hw).level;for(const t of Hw)if(e<=t.maxPictureSize){n=t.level;break}return`av01.0.${n.toString().padStart(2,"0")}M.08`}const e=a.profile,n=a.level.toString().padStart(2,"0"),r=a.tier?"H":"M",o=a.bitDepth.toString().padStart(2,"0"),s=a.monochrome?"1":"0",l=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),c=null!=i&&i.primaries?xw[i.primaries]:1,u=null!=i&&i.transfer?_w[i.transfer]:1,d=null!=i&&i.matrix?Iw[i.matrix]:1,h=null!=i&&i.fullRange?1:0;let f=`av01.${e}.${n}${r}.${o}`;return f+=`.${s}.${l.toString().padStart(3,"0")}`,f+=`.${c.toString().padStart(2,"0")}`,f+=`.${u.toString().padStart(2,"0")}`,f+=`.${d.toString().padStart(2,"0")}`,f+=`.${h}`,f.endsWith(".0.110.01.01.01.0")&&(f=f.slice(0,-17)),f}throw new TypeError(`Unhandled codec '${e}'.`)},Xw=t=>{const{codec:e,codecDescription:n,aacCodecInfo:i}=t;if("aac"===e){if(!i)throw new TypeError("AAC codec info must be provided.");if(i.isMpeg2)return"mp4a.67";{let t;return t=null!==i.objectType?i.objectType:Vw(n).objectType,`mp4a.40.${t}`}}if("mp3"===e)return"mp3";if("opus"===e)return"opus";if("vorbis"===e)return"vorbis";if("flac"===e)return"flac";if("ac3"===e)return"ac-3";if("eac3"===e)return"ec-3";if(e&&Gw.includes(e))return e;throw new TypeError(`Unhandled codec '${e}'.`)},Yw=/^pcm-([usf])(\d+)+(be)?$/,Qw=[48e3,44100,32e3],Jw=[24e3,22050,16e3];var Zw,t_;!function(t){t[t.NON_IDR_SLICE=1]="NON_IDR_SLICE",t[t.SLICE_DPA=2]="SLICE_DPA",t[t.SLICE_DPB=3]="SLICE_DPB",t[t.SLICE_DPC=4]="SLICE_DPC",t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.AUD=9]="AUD",t[t.SPS_EXT=13]="SPS_EXT"}(Zw||(Zw={})),function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.AUD_NUT=35]="AUD_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"}(t_||(t_={}));const e_=function*(t){let e=0,n=-1;for(;e<t.length-2;){const i=t.indexOf(0,e);if(-1===i||i>=t.length-2)break;e=i;let r=0;e+3<t.length&&0===t[e+1]&&0===t[e+2]&&1===t[e+3]?r=4:0===t[e+1]&&1===t[e+2]&&(r=3),0!==r?(-1!==n&&e>n&&(yield{offset:n,length:e-n}),n=e+r,e=n):e++}-1!==n&&n<t.length&&(yield{offset:n,length:t.length-n})},n_=function*(t,e){let n=0;const i=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;n+e<=t.length;){let t;1===e?t=i.getUint8(n):2===e?t=i.getUint16(n,!1):3===e?t=Ow(i,n):(pw(4===e),t=i.getUint32(n,!1)),n+=e,yield{offset:n,length:t},n+=t}},i_=t=>31&t,r_=t=>{const e=[],n=t.length;for(let i=0;i<n;i++)i+2<n&&0===t[i]&&0===t[i+1]&&3===t[i+2]?(e.push(0,0),i+=2):e.push(t[i]);return new Uint8Array(e)},o_=t=>t>>1&63,s_=function*(t){const e=new jw(t),n=()=>{let t=0;for(let n=0;n<8;n++){const i=e.readAlignedByte();if(t|=(127&i)<<7*n,!(128&i))break;if(7===n&&128&i)return null}return t>=2**32-1?null:t};for(;e.getBitsLeft()>=8;){e.skipBits(1);const i=e.readBits(4),r=e.readBits(1),o=e.readBits(1);let s;if(e.skipBits(1),r&&e.skipBits(8),o){const t=n();if(null===t)return;s=t}else s=Math.floor(e.getBitsLeft()/8);pw(e.pos%8==0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+s)},e.skipBits(8*s)}};var a_;!function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"}(a_||(a_={}));const l_=[2,1,2,3,3,4,4,5];class c_{constructor(t){this.input=t}}const u_=[],d_=[],h_=new Uint8Array(0);class f_{constructor(t,e,n,i,r=-1,o,s){if(this.data=t,this.type=e,this.timestamp=n,this.duration=i,this.sequenceNumber=r,t===h_&&void 0===o)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(void 0===o&&(o=t.byteLength),!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("key"!==e&&"delta"!==e)throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(n))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(i)||i<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(r))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");if(void 0!==s&&("object"!=typeof s||!s))throw new TypeError("sideData, when provided, must be an object.");if(void 0!==(null==s?void 0:s.alpha)&&!(s.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(void 0!==(null==s?void 0:s.alphaByteLength)&&(!Number.isInteger(s.alphaByteLength)||s.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=o,this.sideData=null!=s?s:{},this.sideData.alpha&&void 0===this.sideData.alphaByteLength&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===h_}get microsecondTimestamp(){return Math.trunc(Dw*this.timestamp)}get microsecondDuration(){return Math.trunc(Dw*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(t=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:t,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if("undefined"==typeof EncodedAudioChunk)throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(t,e){var n;if(!(t instanceof EncodedVideoChunk||t instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");const i=new Uint8Array(t.byteLength);return t.copyTo(i),new f_(i,t.type,t.timestamp/1e6,(null!==(n=t.duration)&&void 0!==n?n:0)/1e6,void 0,void 0,e)}clone(t){var e,n,i,r,o,s;if(void 0!==t&&("object"!=typeof t||null===t))throw new TypeError("options, when provided, must be an object.");if(void 0!==(null==t?void 0:t.data)&&!(t.data instanceof Uint8Array))throw new TypeError("options.data, when provided, must be a Uint8Array.");if(void 0!==(null==t?void 0:t.type)&&"key"!==t.type&&"delta"!==t.type)throw new TypeError('options.type, when provided, must be either "key" or "delta".');if(void 0!==(null==t?void 0:t.timestamp)&&!Number.isFinite(t.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(void 0!==(null==t?void 0:t.duration)&&!Number.isFinite(t.duration))throw new TypeError("options.duration, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sequenceNumber)&&!Number.isFinite(t.sequenceNumber))throw new TypeError("options.sequenceNumber, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sideData)&&("object"!=typeof t.sideData||null===t.sideData))throw new TypeError("options.sideData, when provided, must be an object.");return new f_(null!==(e=null==t?void 0:t.data)&&void 0!==e?e:this.data,null!==(n=null==t?void 0:t.type)&&void 0!==n?n:this.type,null!==(i=null==t?void 0:t.timestamp)&&void 0!==i?i:this.timestamp,null!==(r=null==t?void 0:t.duration)&&void 0!==r?r:this.duration,null!==(o=null==t?void 0:t.sequenceNumber)&&void 0!==o?o:this.sequenceNumber,this.byteLength,null!==(s=null==t?void 0:t.sideData)&&void 0!==s?s:this.sideData)}}const p_=t=>{if(!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(void 0!==t.metadataOnly&&"boolean"!=typeof t.metadataOnly)throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(void 0!==t.verifyKeyPackets&&"boolean"!=typeof t.verifyKeyPackets)throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},m_=t=>{if(!zw(t))throw new TypeError("timestamp must be a number.")},v_=(t,e,n)=>n.verifyKeyPackets?e.then((async e=>{if(!e||"delta"===e.type)return e;const n=await t.determinePacketType(e);return n&&(e.type=n),e})):e;class g_{constructor(t){if(!(t instanceof y_))throw new TypeError("track must be an InputTrack.");this._track=t}getFirstPacket(t={}){if(p_(t),this._track.input._disposed)throw new q_;return v_(this._track,this._track._backing.getFirstPacket(t),t)}async getFirstKeyPacket(t={}){p_(t);const e=await this.getFirstPacket(t);return e?"key"===e.type?e:this.getNextKeyPacket(e,t):null}getPacket(t,e={}){if(m_(t),p_(e),this._track.input._disposed)throw new q_;return v_(this._track,this._track._backing.getPacket(t,e),e)}getNextPacket(t,e={}){if(!(t instanceof f_))throw new TypeError("packet must be an EncodedPacket.");if(p_(e),this._track.input._disposed)throw new q_;return v_(this._track,this._track._backing.getNextPacket(t,e),e)}async getKeyPacket(t,e={}){if(m_(t),p_(e),this._track.input._disposed)throw new q_;if(!e.verifyKeyPackets)return this._track._backing.getKeyPacket(t,e);const n=await this._track._backing.getKeyPacket(t,e);return n?(pw("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getKeyPacket(n.timestamp-1/this._track.timeResolution,e):n):n}async getNextKeyPacket(t,e={}){if(!(t instanceof f_))throw new TypeError("packet must be an EncodedPacket.");if(p_(e),this._track.input._disposed)throw new q_;if(!e.verifyKeyPackets)return this._track._backing.getNextKeyPacket(t,e);const n=await this._track._backing.getNextKeyPacket(t,e);return n?(pw("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getNextKeyPacket(n,e):n):n}packets(t,e,n={}){if(void 0!==t&&!(t instanceof f_))throw new TypeError("startPacket must be an EncodedPacket.");if(void 0!==t&&t.isMetadataOnly&&(null==n||!n.metadataOnly))throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(void 0!==e&&!(e instanceof f_))throw new TypeError("endPacket must be an EncodedPacket.");if(p_(n),this._track.input._disposed)throw new q_;const i=[];let{promise:r,resolve:o}=Fw(),{promise:s,resolve:a}=Fw(),l=!1,c=!1,u=null;const d=[];(async()=>{let u=null!=t?t:await this.getFirstPacket(n);for(;u&&!c&&!this._track.input._disposed&&!(e&&u.sequenceNumber>=(null==e?void 0:e.sequenceNumber));)i.length>Math.max(2,d.length)?(({promise:s,resolve:a}=Fw()),await s):(i.push(u),o(),({promise:r,resolve:o}=Fw()),u=await this.getNextPacket(u,n));l=!0,o()})().catch((t=>{u||(u=t,o())}));const h=this._track;return{async next(){for(;;){if(h.input._disposed)throw new q_;if(c)return{value:void 0,done:!0};if(u)throw u;if(i.length>0){const t=i.shift(),e=performance.now();for(d.push(e);d.length>0&&e-d[0]>=1e3;)d.shift();return a(),{value:t,done:!1}}if(l)return{value:void 0,done:!0};await r}},return:async()=>(c=!0,a(),o(),{value:void 0,done:!0}),async throw(t){throw t},[Symbol.asyncIterator](){return this}}}}class y_{constructor(t,e){this.input=t,this._backing=e}isVideoTrack(){return this instanceof b_}isAudioTrack(){return this instanceof k_}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}get disposition(){return this._backing.getDisposition()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(t=1/0){const e=new g_(this);let n=1/0,i=-1/0,r=0,o=0;for await(const s of e.packets(void 0,void 0,{metadataOnly:!0})){if(r>=t&&s.timestamp>=i)break;n=Math.min(n,s.timestamp),i=Math.max(i,s.timestamp+s.duration),r++,o+=s.byteLength}return{packetCount:r,averagePacketRate:r?Number((r/(i-n)).toPrecision(16)):0,averageBitrate:r?Number((8*o/(i-n)).toPrecision(16)):0}}}class b_ extends y_{constructor(t,e){super(t,e),this._backing=e,this.pixelAspectRatio=(t=>{pw(0!==t.den);let e=Math.abs(t.num),n=Math.abs(t.den);for(;0!==n;){const t=e%n;e=n,n=t}const i=e||1;return{num:t.num/i,den:t.den/i}})({num:this._backing.getSquarePixelWidth()*this._backing.getCodedHeight(),den:this._backing.getSquarePixelHeight()*this._backing.getCodedWidth()})}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get squarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelHeight(){return this._backing.getSquarePixelHeight()}get displayWidth(){return this._backing.getRotation()%180==0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this._backing.getRotation()%180==0?this.squarePixelHeight:this.squarePixelWidth}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){const t=await this._backing.getColorSpace();return"bt2020"===t.primaries||"smpte432"===t.primaries||"pg"===t.transfer||"hlg"===t.transfer||"bt2020-ncl"===t.matrix}canBeTransparent(){return this._backing.canBeTransparent()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return pw(null!==e),u_.some((n=>n.supports(e,t)))?!0:"undefined"!=typeof VideoDecoder&&!0===(await VideoDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof f_))throw new TypeError("packet must be an EncodedPacket.");if(t.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");if(null===this.codec)return null;const e=await this.getDecoderConfig();return pw(e),((t,e,n)=>{switch(t){case"avc":for(const t of((t,e)=>{if(e.description){const n=3&gw(e.description)[4];return n_(t,n+1)}return e_(t)})(n,e)){const e=n[t.offset],r=i_(e);if(r>=Zw.NON_IDR_SLICE&&r<=Zw.SLICE_DPC)return"delta";if(r===Zw.IDR)return"key";if(r===Zw.SEI&&(i=void 0,!(null!==Rw?Rw:Rw=!("undefined"==typeof navigator||(null===(i=navigator.vendor)||void 0===i||!i.includes("Google Inc"))&&!/Chrome/.test(navigator.userAgent)))||Bw()>=144)){const e=n.subarray(t.offset,t.offset+t.length),i=r_(e);let r=1;do{let t=0;for(;;){const e=i[r++];if(void 0===e)break;if(t+=e,e<255)break}let e=0;for(;;){const t=i[r++];if(void 0===t)break;if(e+=t,t<255)break}if(6===t){const t=new jw(i);t.pos=8*r;const e=vw(t),n=t.readBits(1);if(0===e&&1===n)return"key"}r+=e}while(r<i.length-1)}}return"delta";case"hevc":for(const t of((t,e)=>{if(e.description){const n=3&gw(e.description)[21];return n_(t,n+1)}return e_(t)})(n,e)){const e=o_(n[t.offset]);if(e<t_.BLA_W_LP)return"delta";if(e<=t_.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 1&n[0]?"delta":"key";case"vp9":{const t=new jw(n);if(2!==t.readBits(2))return null;const e=t.readBits(1);return 3===(t.readBits(1)<<1)+e&&t.skipBits(1),t.readBits(1)?null:0===t.readBits(1)?"key":"delta"}case"av1":{let t=!1;for(const{type:e,data:i}of s_(n))if(1===e){const e=new jw(i);e.skipBits(4),t=!!e.readBits(1)}else if(3===e||6===e||7===e){if(t)return"key";const e=new jw(i);return e.readBits(1)?null:0===e.readBits(2)?"key":"delta"}return null}default:(t=>{throw new Error(`Unexpected value: ${t}`)})(t),pw(!1)}var i})(this.codec,e,t.data)}}class k_ extends y_{constructor(t,e){super(t,e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return pw(null!==e),d_.some((n=>n.supports(e,t)))?!0:!!t.codec.startsWith("pcm-")||"undefined"!=typeof AudioDecoder&&!0===(await AudioDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof f_))throw new TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}const x_=t=>{let e=Z_(t);const n=rT(t,4);let i=8;1===e&&(e=eT(t),i=16);const r=e-i;return r<0?null:{name:n,totalSize:e,headerSize:i,contentSize:r}},w_=t=>tT(t)/65536,__=t=>tT(t)/1073741824,T_=t=>{let e=0;for(let n=0;n<4;n++){e<<=7;const n=X_(t);if(e|=127&n,!(128&n))break}return e},I_=t=>{let e=Y_(t);return t.skip(2),e=Math.min(e,t.remainingLength),bw.decode(K_(t,e))},E_=t=>{const e=x_(t);if(!e||"data"!==e.name)return null;if(t.remainingLength<8)return null;const n=Z_(t);t.skip(4);const i=K_(t,e.contentSize-8);switch(n){case 1:return bw.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new Ww(i,"image/jpeg");case 14:return new Ww(i,"image/png");case 27:return new Ww(i,"image/bmp");default:return i}};class S_ extends c_{constructor(t){super(t),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.currentFragment=null,this.lastReadFragment=null,this.reader=t._reader}async computeDuration(){const t=await this.getTracks(),e=await Promise.all(t.map((t=>t.computeDuration())));return Math.max(0,...e)}async getTracks(){return await this.readMetadata(),this.tracks.map((t=>t.inputTrack))}async getMimeType(){await this.readMetadata();const t=await Promise.all(this.tracks.map((t=>t.inputTrack.getCodecParameterString())));return(t=>{let e=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");return t.codecStrings.length>0&&(e+=`; codecs="${[...new Set(t.codecStrings)].join(", ")}"`),e})({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some((t=>{var e;return"video"===(null===(e=t.info)||void 0===e?void 0:e.type)})),hasAudio:this.tracks.some((t=>{var e;return"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)})),codecStrings:t.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){var t;return null!==(t=this.metadataPromise)&&void 0!==t?t:this.metadataPromise=(async()=>{let t=0;for(;;){let e=this.reader.requestSliceRange(t,8,16);if(e instanceof Promise&&(e=await e),!e)break;const n=t,i=x_(e);if(!i)break;if("ftyp"===i.name){const t=rT(e,4);this.isQuickTime="qt "===t}else if("moov"===i.name){let t=this.reader.requestSlice(e.filePos,i.contentSize);if(t instanceof Promise&&(t=await t),!t)break;this.moovSlice=t,this.readContiguousBoxes(this.moovSlice),this.tracks.sort(((t,e)=>Number(e.disposition.default)-Number(t.disposition.default)));for(const t of this.tracks){const e=t.editListPreviousSegmentDurations/this.movieTimescale;t.editListOffset-=Math.round(e*t.timescale)}break}t=n+i.totalSize}if(this.isFragmented&&null!==this.reader.fileSize){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),pw(t);const e=Z_(t),n=this.reader.fileSize-e;if(n>=0&&n<=this.reader.fileSize-16){let t=this.reader.requestSliceRange(n,8,16);if(t instanceof Promise&&(t=await t),t){const e=x_(t);if(e&&"mfra"===e.name){let n=this.reader.requestSlice(t.filePos,e.contentSize);n instanceof Promise&&(n=await n),n&&this.readContiguousBoxes(n)}}}}})()}getSampleTableForTrack(t){var e;if(t.sampleTable)return t.sampleTable;const n={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};t.sampleTable=n,pw(this.moovSlice);const i=this.moovSlice.slice(t.sampleTableByteOffset);if(this.currentTrack=t,this.traverseBox(i),this.currentTrack=null,"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)&&t.info.codec&&Gw.includes(t.info.codec)&&0===n.sampleCompositionTimeOffsets.length){var r;pw("audio"===(null===(r=t.info)||void 0===r?void 0:r.type));const e=(t=>{if(pw(Gw.includes(t)),"ulaw"===t)return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if("alaw"===t)return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};const e=Yw.exec(t);let n;return pw(e),n="u"===e[1]?"unsigned":"s"===e[1]?"signed":"float",{dataType:n,sampleSize:Number(e[2])/8,littleEndian:"be"!==e[3],silentValue:"pcm-u8"===t?128:0}})(t.info.codec),i=[],o=[];for(let r=0;r<n.sampleToChunk.length;r++){const s=n.sampleToChunk[r],a=n.sampleToChunk[r+1],l=(a?a.startChunkIndex:n.chunkOffsets.length)-s.startChunkIndex;for(let r=0;r<l;r++){const a=s.startSampleIndex+r*s.samplesPerChunk,l=a+s.samplesPerChunk,c=Mw(n.sampleTimingEntries,a,(t=>t.startIndex)),u=n.sampleTimingEntries[c],d=Mw(n.sampleTimingEntries,l,(t=>t.startIndex)),h=n.sampleTimingEntries[d],f=u.startDecodeTimestamp+(a-u.startIndex)*u.delta,p=h.startDecodeTimestamp+(l-h.startIndex)*h.delta-f,m=mw(i);m&&m.delta===p?m.count++:i.push({startIndex:s.startChunkIndex+r,startDecodeTimestamp:f,count:1,delta:p});const v=s.samplesPerChunk*e.sampleSize*t.info.numberOfChannels;o.push(v)}s.startSampleIndex=s.startChunkIndex,s.samplesPerChunk=1}n.sampleTimingEntries=i,n.sampleSizes=o}if(n.sampleCompositionTimeOffsets.length>0){n.presentationTimestamps=[];for(const t of n.sampleTimingEntries)for(let e=0;e<t.count;e++)n.presentationTimestamps.push({presentationTimestamp:t.startDecodeTimestamp+e*t.delta,sampleIndex:t.startIndex+e});for(const t of n.sampleCompositionTimeOffsets)for(let e=0;e<t.count;e++){const i=t.startIndex+e,r=n.presentationTimestamps[i];r&&(r.presentationTimestamp+=t.offset)}n.presentationTimestamps.sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp)),n.presentationTimestampIndexMap=Array(n.presentationTimestamps.length).fill(-1);for(let t=0;t<n.presentationTimestamps.length;t++)n.presentationTimestampIndexMap[n.presentationTimestamps[t].sampleIndex]=t}return n}async readFragment(t){var e;if((null===(e=this.lastReadFragment)||void 0===e?void 0:e.moofOffset)===t)return this.lastReadFragment;let n=this.reader.requestSliceRange(t,8,16);n instanceof Promise&&(n=await n),pw(n);const i=x_(n);pw("moof"===(null==i?void 0:i.name));let r=this.reader.requestSlice(t,i.totalSize);r instanceof Promise&&(r=await r),pw(r),this.traverseBox(r);const o=this.lastReadFragment;pw(o&&o.moofOffset===t);for(const[,t]of o.trackData){const e=t.track,{fragmentPositionCache:n}=e;if(!t.startTimestampIsFinal){const i=e.fragmentLookupTable.find((t=>t.moofOffset===o.moofOffset));if(i)D_(t,i.timestamp);else{const e=Mw(n,o.moofOffset-1,(t=>t.moofOffset));if(-1!==e){const i=n[e];D_(t,i.endTimestamp)}}t.startTimestampIsFinal=!0}const i=Mw(n,t.startTimestamp,(t=>t.startTimestamp));-1!==i&&n[i].moofOffset===o.moofOffset||n.splice(i+1,0,{moofOffset:o.moofOffset,startTimestamp:t.startTimestamp,endTimestamp:t.endTimestamp})}return o}readContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8&&this.traverseBox(t););}*iterateContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8;){const e=t.filePos,n=x_(t);if(!n)break;yield{boxInfo:n,slice:t},t.filePos=e+n.totalSize}}traverseBox(t){var e,n,i,r,o,s,a,l,c,u,d,h,f,p,m,v,g,y,b,k,x,w,_,T,I,E,S,A,N,M,F,O,C,P,D,R;const L=t.filePos,B=x_(t);if(!B)return!1;const z=t.filePos,W=L+B.totalSize;switch(B.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mvhd":{const e=X_(t);t.skip(3),1===e?(t.skip(16),this.movieTimescale=Z_(t),this.movieDurationInTimescale=eT(t)):(t.skip(8),this.movieTimescale=Z_(t),this.movieDurationInTimescale=Z_(t))}break;case"trak":{const e={id:-1,demuxer:this,inputTrack:null,disposition:{...Uw},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:"und",sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=e,this.readContiguousBoxes(t.slice(z,B.contentSize)),-1!==e.id&&-1!==e.timescale&&null!==e.info)if("video"===e.info.type&&-1!==e.info.width){const t=e;e.inputTrack=new b_(this.input,new N_(t)),this.tracks.push(e)}else if("audio"===e.info.type&&-1!==e.info.numberOfChannels){const t=e;e.inputTrack=new k_(this.input,new M_(t)),this.tracks.push(e)}this.currentTrack=null}break;case"tkhd":{const e=this.currentTrack;if(!e)break;const n=X_(t),i=!!(1&Q_(t));if(e.disposition.default=i,0===n)t.skip(8),e.id=Z_(t),t.skip(4),e.durationInMovieTimescale=Z_(t);else{if(1!==n)throw new Error(`Incorrect track header version ${n}.`);t.skip(16),e.id=Z_(t),t.skip(4),e.durationInMovieTimescale=eT(t)}t.skip(16);const r=[w_(t),w_(t),__(t),w_(t),w_(t),__(t),w_(t),w_(t),__(t)],o=(t=>{const e=(t%360+360)%360;if(0===e||90===e||180===e||270===e)return e;throw new Error(`Invalid rotation ${t}.`)})((Ot=R_(r),90*Math.round(Ot/90)));pw(0===o||90===o||180===o||270===o),e.rotation=o}break;case"elst":{const e=this.currentTrack;if(!e)break;const n=X_(t);t.skip(3);let i=!1,r=0;const o=Z_(t);for(let s=0;s<o;s++){const o=1===n?eT(t):Z_(t),s=1===n?nT(t):tT(t),a=w_(t);if(0!==o){if(i){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1!==s){if(1!==a){console.warn("Unsupported edit list entry: media rate must be 1.");break}e.editListPreviousSegmentDurations=r,e.editListOffset=s,i=!0}else r+=o}}}break;case"mdhd":{const e=this.currentTrack;if(!e)break;const n=X_(t);t.skip(3),0===n?(t.skip(8),e.timescale=Z_(t),e.durationInMediaTimescale=Z_(t)):1===n&&(t.skip(16),e.timescale=Z_(t),e.durationInMediaTimescale=eT(t));let i=Y_(t);if(i>0){e.languageCode="";for(let t=0;t<3;t++)e.languageCode=String.fromCharCode(96+(31&i))+e.languageCode,i>>=5;Ft=e.languageCode,Pw.test(Ft)||(e.languageCode="und")}}break;case"hdlr":{const e=this.currentTrack;if(!e)break;t.skip(8);const n=rT(t,4);"vide"===n?e.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:"soun"===n&&(e.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{const e=this.currentTrack;if(!e)break;e.sampleTableByteOffset=L,this.readContiguousBoxes(t.slice(z,B.contentSize))}break;case"stsd":{const e=this.currentTrack;if(!e)break;if(null===e.info||e.sampleTable)break;const n=X_(t);t.skip(3);const i=Z_(t);for(let r=0;r<i;r++){const i=t.filePos,r=x_(t);if(!r)break;e.internalCodecId=r.name;const o=r.name.toLowerCase();if("video"===e.info.type)"avc1"===o||"avc3"===o?(e.info.codec="avc",e.info.avcType="avc1"===o?1:3):"hvc1"===o||"hev1"===o?e.info.codec="hevc":"vp08"===o?e.info.codec="vp8":"vp09"===o?e.info.codec="vp9":"av01"===o?e.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${r.name}').`),t.skip(24),e.info.width=Y_(t),e.info.height=Y_(t),e.info.squarePixelWidth=e.info.width,e.info.squarePixelHeight=e.info.height,t.skip(50),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos));else{"mp4a"===o||("opus"===o?e.info.codec="opus":"flac"===o?e.info.codec="flac":"twos"===o||"sowt"===o||"raw "===o||"in24"===o||"in32"===o||"fl32"===o||"fl64"===o||"lpcm"===o||"ipcm"===o||"fpcm"===o||("ulaw"===o?e.info.codec="ulaw":"alaw"===o?e.info.codec="alaw":"ac-3"===o?e.info.codec="ac3":"ec-3"===o?e.info.codec="eac3":console.warn(`Unsupported audio codec (sample entry type '${r.name}').`))),t.skip(8);const s=Y_(t);t.skip(6);let a=Y_(t),l=Y_(t);t.skip(4);let c=Z_(t)/65536;if(0===n&&s>0)if(1===s)t.skip(4),l=8*Z_(t),t.skip(8);else if(2===s){t.skip(4),c=iT(t),a=Z_(t),t.skip(4),l=Z_(t);const n=Z_(t);if(t.skip(8),"lpcm"===o){const t=l+7>>3,i=Boolean(1&n),r=Boolean(2&n),o=4&n?-1:0;l>0&&l<=64&&(i?32===l&&(e.info.codec=r?"pcm-f32be":"pcm-f32"):o&1<<t-1?1===t?e.info.codec="pcm-s8":2===t?e.info.codec=r?"pcm-s16be":"pcm-s16":3===t?e.info.codec=r?"pcm-s24be":"pcm-s24":4===t&&(e.info.codec=r?"pcm-s32be":"pcm-s32"):1===t&&(e.info.codec="pcm-u8")),null===e.info.codec&&console.warn("Unsupported PCM format.")}}"opus"===e.info.codec&&(c=48e3),e.info.numberOfChannels=a,e.info.sampleRate=c,"twos"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${l} for codec 'twos'.`),e.info.codec=null):"sowt"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${l} for codec 'sowt'.`),e.info.codec=null):"raw "===o?e.info.codec="pcm-u8":"in24"===o?e.info.codec="pcm-s24be":"in32"===o?e.info.codec="pcm-s32be":"fl32"===o?e.info.codec="pcm-f32be":"fl64"===o?e.info.codec="pcm-f64be":"ipcm"===o?e.info.codec="pcm-s16be":"fpcm"===o&&(e.info.codec="pcm-f32be"),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos))}}}break;case"avcC":{const e=this.currentTrack;if(!e)break;pw(e.info),e.info.codecDescription=K_(t,B.contentSize)}break;case"hvcC":{const e=this.currentTrack;if(!e)break;pw(e.info),e.info.codecDescription=K_(t,B.contentSize)}break;case"vpcC":{var U;const e=this.currentTrack;if(!e)break;pw("video"===(null===(U=e.info)||void 0===U?void 0:U.type)),t.skip(4);const n=X_(t),i=X_(t),r=X_(t),o=r>>4,s=r>>1&7,a=1&r,l=X_(t),c=X_(t),u=X_(t);e.info.vp9CodecInfo={profile:n,level:i,bitDepth:o,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:l,transferCharacteristics:c,matrixCoefficients:u}}break;case"av1C":{var j;const e=this.currentTrack;if(!e)break;pw("video"===(null===(j=e.info)||void 0===j?void 0:j.type)),t.skip(1);const n=X_(t),i=n>>5,r=31&n,o=X_(t),s=o>>7,a=o>>6&1,l=o>>4&1,c=o>>3&1,u=o>>2&1,d=3&o,h=2===i&&a?o>>5&1?12:10:a?10:8;e.info.av1CodecInfo={profile:i,level:r,tier:s,bitDepth:h,monochrome:l,chromaSubsamplingX:c,chromaSubsamplingY:u,chromaSamplePosition:d}}break;case"colr":{var $;const e=this.currentTrack;if(!e)break;if(pw("video"===(null===($=e.info)||void 0===$?void 0:$.type)),"nclx"!==rT(t,4))break;const n=Y_(t),i=Y_(t),r=Y_(t),o=Boolean(128&X_(t));e.info.colorSpace={primaries:ww[n],transfer:Tw[i],matrix:Ew[r],fullRange:o}}break;case"pasp":{var q;const e=this.currentTrack;if(!e)break;pw("video"===(null===(q=e.info)||void 0===q?void 0:q.type));const n=Z_(t),i=Z_(t);n>i?e.info.squarePixelWidth=Math.round(e.info.width*n/i):e.info.squarePixelHeight=Math.round(e.info.height*i/n)}break;case"esds":{var V;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(V=e.info)||void 0===V?void 0:V.type)),t.skip(4),pw(3===X_(t)),T_(t),t.skip(2);const n=X_(t),i=!!(64&n),r=!!(32&n);if(!!(128&n)&&t.skip(2),i){const e=X_(t);t.skip(e)}r&&t.skip(2),pw(4===X_(t));const o=T_(t),s=t.filePos,a=X_(t);if(64===a||103===a?(e.info.codec="aac",e.info.aacCodecInfo={isMpeg2:103===a,objectType:null}):105===a||107===a?e.info.codec="mp3":221===a?e.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${a}) - discarding track.`),t.skip(12),o>t.filePos-s){pw(5===X_(t));const n=T_(t);if(e.info.codecDescription=K_(t,n),"aac"===e.info.codec){const t=Vw(e.info.codecDescription);null!==t.numberOfChannels&&(e.info.numberOfChannels=t.numberOfChannels),null!==t.sampleRate&&(e.info.sampleRate=t.sampleRate)}}}break;case"enda":{var G;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(G=e.info)||void 0===G?void 0:G.type)),255&Y_(t)&&("pcm-s16be"===e.info.codec?e.info.codec="pcm-s16":"pcm-s24be"===e.info.codec?e.info.codec="pcm-s24":"pcm-s32be"===e.info.codec?e.info.codec="pcm-s32":"pcm-f32be"===e.info.codec?e.info.codec="pcm-f32":"pcm-f64be"===e.info.codec&&(e.info.codec="pcm-f64"))}break;case"pcmC":{var H;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(H=e.info)||void 0===H?void 0:H.type)),t.skip(4);const n=X_(t),i=Boolean(1&n),r=X_(t);"pcm-s16be"===e.info.codec?i?16===r?e.info.codec="pcm-s16":24===r?e.info.codec="pcm-s24":32===r?e.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):16===r?e.info.codec="pcm-s16be":24===r?e.info.codec="pcm-s24be":32===r?e.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):"pcm-f32be"===e.info.codec&&(i?32===r?e.info.codec="pcm-f32":64===r?e.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null):32===r?e.info.codec="pcm-f32be":64===r?e.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null));break}case"dOps":{var K;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(K=e.info)||void 0===K?void 0:K.type)),t.skip(1);const n=X_(t),i=Y_(t),r=Z_(t),o=J_(t),s=X_(t);let a;a=0!==s?K_(t,2+n):new Uint8Array(0);const l=new Uint8Array(19+a.byteLength),c=new DataView(l.buffer);c.setUint32(0,1332770163,!1),c.setUint32(4,1214603620,!1),c.setUint8(8,1),c.setUint8(9,n),c.setUint16(10,i,!0),c.setUint32(12,r,!0),c.setInt16(16,o,!0),c.setUint8(18,s),l.set(a,19),e.info.codecDescription=l,e.info.numberOfChannels=n}break;case"dfLa":{var X;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(X=e.info)||void 0===X?void 0:X.type)),t.skip(4);const n=127,i=128,r=t.filePos;for(;t.filePos<W;){const r=X_(t),o=Q_(t);if((r&n)===a_.STREAMINFO){t.skip(10);const n=Z_(t),i=n>>>12,r=1+(n>>9&7);e.info.sampleRate=i,e.info.numberOfChannels=r,t.skip(20)}else t.skip(o);if(r&i)break}const o=t.filePos;t.filePos=r;const s=K_(t,o-r),a=new Uint8Array(4+s.byteLength);new DataView(a.buffer).setUint32(0,1716281667,!1),a.set(s,4),e.info.codecDescription=a}break;case"dac3":{var Y;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(Y=e.info)||void 0===Y?void 0:Y.type));const n=K_(t,3),i=new jw(n),r=i.readBits(2);i.skipBits(8);const o=i.readBits(3),s=i.readBits(1);r<3&&(e.info.sampleRate=Qw[r]),e.info.numberOfChannels=l_[o]+s}break;case"dec3":{var Q;const e=this.currentTrack;if(!e)break;pw("audio"===(null===(Q=e.info)||void 0===Q?void 0:Q.type));const n=(t=>{if(t.length<2)return null;const e=new jw(t),n=e.readBits(13),i=e.readBits(3),r=[];for(let n=0;n<=i&&!(Math.ceil(e.pos/8)+3>t.length);n++){const t=e.readBits(2),n=e.readBits(5);e.skipBits(1),e.skipBits(1);const i=e.readBits(3),o=e.readBits(3),s=e.readBits(1);e.skipBits(3);const a=e.readBits(4);let l=0;a>0?l=e.readBits(9):e.skipBits(1),r.push({fscod:t,fscod2:null,bsid:n,bsmod:i,acmod:o,lfeon:s,numDepSub:a,chanLoc:l})}return 0===r.length?null:{dataRate:n,substreams:r}})(K_(t,B.contentSize));if(!n){console.warn("Invalid dec3 box contents, ignoring.");break}const i=(t=>{const e=t.substreams[0];return pw(e),e.fscod<3?Qw[e.fscod]:null!==e.fscod2&&e.fscod2<3?Jw[e.fscod2]:null})(n);null!==i&&(e.info.sampleRate=i),e.info.numberOfChannels=(t=>{const e=t.substreams[0];pw(e);let n=l_[e.acmod]+e.lfeon;if(e.numDepSub>0){const t=[2,2,1,1,2,2,2,1,1];for(let i=0;i<9;i++)e.chanLoc&1<<8-i&&(n+=t[i])}return n})(n)}break;case"stts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=Z_(t);let i=0,r=0;for(let o=0;o<n;o++){const n=Z_(t),o=Z_(t);e.sampleTable.sampleTimingEntries.push({startIndex:i,startDecodeTimestamp:r,count:n,delta:o}),i+=n,r+=n*o}}break;case"ctts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=Z_(t);let i=0;for(let r=0;r<n;r++){const n=Z_(t),r=tT(t);e.sampleTable.sampleCompositionTimeOffsets.push({startIndex:i,count:n,offset:r}),i+=n}}break;case"stsz":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=Z_(t),i=Z_(t);if(0===n)for(let n=0;n<i;n++){const n=Z_(t);e.sampleTable.sampleSizes.push(n)}else e.sampleTable.sampleSizes.push(n)}break;case"stz2":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),t.skip(3);const n=X_(t),i=Z_(t),r=K_(t,Math.ceil(i*n/8)),o=new jw(r);for(let t=0;t<i;t++){const t=o.readBits(n);e.sampleTable.sampleSizes.push(t)}}break;case"stss":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),e.sampleTable.keySampleIndices=[];const n=Z_(t);for(let i=0;i<n;i++){const n=Z_(t)-1;e.sampleTable.keySampleIndices.push(n)}0!==e.sampleTable.keySampleIndices[0]&&e.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=Z_(t);for(let i=0;i<n;i++){const n=Z_(t)-1,i=Z_(t),r=Z_(t);e.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:n,samplesPerChunk:i,sampleDescriptionIndex:r})}let i=0;for(let t=0;t<e.sampleTable.sampleToChunk.length;t++)e.sampleTable.sampleToChunk[t].startSampleIndex=i,t<e.sampleTable.sampleToChunk.length-1&&(i+=(e.sampleTable.sampleToChunk[t+1].startChunkIndex-e.sampleTable.sampleToChunk[t].startChunkIndex)*e.sampleTable.sampleToChunk[t].samplesPerChunk)}break;case"stco":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=Z_(t);for(let i=0;i<n;i++){const n=Z_(t);e.sampleTable.chunkOffsets.push(n)}}break;case"co64":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=Z_(t);for(let i=0;i<n;i++){const n=eT(t);e.sampleTable.chunkOffsets.push(n)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mehd":{const e=X_(t);t.skip(3);const n=1===e?eT(t):Z_(t);this.movieDurationInTimescale=n}break;case"trex":{t.skip(4);const e=Z_(t),n=Z_(t),i=Z_(t),r=Z_(t),o=Z_(t);this.fragmentTrackDefaults.push({trackId:e,defaultSampleDescriptionIndex:n,defaultSampleDuration:i,defaultSampleSize:r,defaultSampleFlags:o})}break;case"tfra":{const e=X_(t);t.skip(3);const n=Z_(t),i=this.tracks.find((t=>t.id===n));if(!i)break;const r=Z_(t),o=(12&r)>>2,s=3&r,a=[X_,Y_,Q_,Z_],l=a[(48&r)>>4],c=a[o],u=a[s],d=Z_(t);for(let n=0;n<d;n++){const n=1===e?eT(t):Z_(t),r=1===e?eT(t):Z_(t);l(t),c(t),u(t),i.fragmentLookupTable.push({timestamp:n,moofOffset:r})}i.fragmentLookupTable.sort(((t,e)=>t.timestamp-e.timestamp));for(let t=0;t<i.fragmentLookupTable.length-1;t++){const e=i.fragmentLookupTable[t],n=i.fragmentLookupTable[t+1];e.timestamp===n.timestamp&&(i.fragmentLookupTable.splice(t+1,1),t--)}}break;case"moof":this.currentFragment={moofOffset:L,moofSize:B.totalSize,implicitBaseDataOffset:L,trackData:new Map},this.readContiguousBoxes(t.slice(z,B.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(pw(this.currentFragment),this.readContiguousBoxes(t.slice(z,B.contentSize)),this.currentTrack){const t=this.currentFragment.trackData.get(this.currentTrack.id);if(t){const{currentFragmentState:e}=this.currentTrack;pw(e),null!==e.startTimestamp&&(D_(t,e.startTimestamp),t.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{var J,Z,tt,et;pw(this.currentFragment),t.skip(1);const e=Q_(t),n=Boolean(1&e),i=Boolean(2&e),r=Boolean(8&e),o=Boolean(16&e),s=Boolean(32&e),a=Boolean(65536&e),l=Boolean(131072&e),c=Z_(t),u=this.tracks.find((t=>t.id===c));if(!u)break;const d=this.fragmentTrackDefaults.find((t=>t.trackId===c));this.currentTrack=u,u.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:null!==(J=null==d?void 0:d.defaultSampleDescriptionIndex)&&void 0!==J?J:null,defaultSampleDuration:null!==(Z=null==d?void 0:d.defaultSampleDuration)&&void 0!==Z?Z:null,defaultSampleSize:null!==(tt=null==d?void 0:d.defaultSampleSize)&&void 0!==tt?tt:null,defaultSampleFlags:null!==(et=null==d?void 0:d.defaultSampleFlags)&&void 0!==et?et:null,startTimestamp:null},n?u.currentFragmentState.baseDataOffset=eT(t):l&&(u.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),i&&(u.currentFragmentState.sampleDescriptionIndex=Z_(t)),r&&(u.currentFragmentState.defaultSampleDuration=Z_(t)),o&&(u.currentFragmentState.defaultSampleSize=Z_(t)),s&&(u.currentFragmentState.defaultSampleFlags=Z_(t)),a&&(u.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{const e=this.currentTrack;if(!e)break;pw(e.currentFragmentState);const n=X_(t);t.skip(3);const i=0===n?Z_(t):eT(t);e.currentFragmentState.startTimestamp=i}break;case"trun":{const e=this.currentTrack;if(!e)break;if(pw(this.currentFragment),pw(e.currentFragmentState),this.currentFragment.trackData.has(e.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}const n=X_(t),i=Q_(t),r=Boolean(1&i),o=Boolean(4&i),s=Boolean(256&i),a=Boolean(512&i),l=Boolean(1024&i),c=Boolean(2048&i),u=Z_(t);let d=e.currentFragmentState.baseDataOffset;r&&(d+=tT(t));let h=null;o&&(h=Z_(t));let f=d;if(0===u){this.currentFragment.implicitBaseDataOffset=f;break}let p=0;const m={track:e,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(e.id,m);for(let i=0;i<u;i++){let r,o,u;s?r=Z_(t):(pw(null!==e.currentFragmentState.defaultSampleDuration),r=e.currentFragmentState.defaultSampleDuration),a?o=Z_(t):(pw(null!==e.currentFragmentState.defaultSampleSize),o=e.currentFragmentState.defaultSampleSize),l?u=Z_(t):(pw(null!==e.currentFragmentState.defaultSampleFlags),u=e.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(u=h);let d=0;c&&(d=0===n?Z_(t):tT(t));const v=!(65536&u);m.samples.push({presentationTimestamp:p+d,duration:r,byteOffset:f,byteSize:o,isKeyFrame:v}),f+=o,p+=r}m.presentationTimestamps=m.samples.map(((t,e)=>({presentationTimestamp:t.presentationTimestamp,sampleIndex:e}))).sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp));for(let t=0;t<m.presentationTimestamps.length;t++){const e=m.presentationTimestamps[t],n=m.samples[e.sampleIndex];if(null===m.firstKeyFrameTimestamp&&n.isKeyFrame&&(m.firstKeyFrameTimestamp=n.presentationTimestamp),t<m.presentationTimestamps.length-1){const i=m.presentationTimestamps[t+1];n.duration=i.presentationTimestamp-e.presentationTimestamp}}const v=m.samples[m.presentationTimestamps[0].sampleIndex],g=m.samples[mw(m.presentationTimestamps).sampleIndex];m.startTimestamp=v.presentationTimestamp,m.endTimestamp=g.presentationTimestamp+g.duration,this.currentFragment.implicitBaseDataOffset=f}break;case"udta":{const g=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:y}of g){if("meta"!==t.name&&!this.currentTrack){var nt,it,rt,ot,st,at,lt,ct;const e=y.filePos;null!==(it=(nt=this.metadataTags).raw)&&void 0!==it||(nt.raw={}),"©"===t.name[0]?null!==(st=(rt=this.metadataTags.raw)[ot=t.name])&&void 0!==st||(rt[ot]=I_(y)):null!==(ct=(at=this.metadataTags.raw)[lt=t.name])&&void 0!==ct||(at[lt]=K_(y,t.contentSize)),y.filePos=e}switch(t.name){case"meta":y.skip(-t.headerSize),this.traverseBox(y);break;case"©nam":case"name":this.currentTrack?this.currentTrack.name=bw.decode(K_(y,t.contentSize)):null!==(n=(e=this.metadataTags).title)&&void 0!==n||(e.title=I_(y));break;case"©des":this.currentTrack||null!==(r=(i=this.metadataTags).description)&&void 0!==r||(i.description=I_(y));break;case"©ART":this.currentTrack||null!==(s=(o=this.metadataTags).artist)&&void 0!==s||(o.artist=I_(y));break;case"©alb":this.currentTrack||null!==(l=(a=this.metadataTags).album)&&void 0!==l||(a.album=I_(y));break;case"albr":this.currentTrack||null!==(u=(c=this.metadataTags).albumArtist)&&void 0!==u||(c.albumArtist=I_(y));break;case"©gen":this.currentTrack||null!==(h=(d=this.metadataTags).genre)&&void 0!==h||(d.genre=I_(y));break;case"©day":if(!this.currentTrack){var ut,dt;const t=new Date(I_(y));Number.isNaN(t.getTime())||null!==(dt=(ut=this.metadataTags).date)&&void 0!==dt||(ut.date=t)}break;case"©cmt":this.currentTrack||null!==(p=(f=this.metadataTags).comment)&&void 0!==p||(f.comment=I_(y));break;case"©lyr":this.currentTrack||null!==(v=(m=this.metadataTags).lyrics)&&void 0!==v||(m.lyrics=I_(y))}}}break;case"meta":{if(this.currentTrack)break;const e=0!==Z_(t);this.currentMetadataKeys=new Map,e?this.readContiguousBoxes(t.slice(z,B.contentSize)):this.readContiguousBoxes(t.slice(z+4,B.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;t.skip(4);const e=Z_(t);for(let n=0;n<e;n++){const e=Z_(t);t.skip(4);const i=bw.decode(K_(t,e-8));this.currentMetadataKeys.set(n+1,i)}}break;case"ilst":{if(!this.currentMetadataKeys)break;const e=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:n}of e){var ht,ft,pt,mt,vt;let e=t.name;const i=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(i)&&(e=this.currentMetadataKeys.get(i));const r=E_(n);switch(null!==(ft=(ht=this.metadataTags).raw)&&void 0!==ft||(ht.raw={}),null!==(vt=(pt=this.metadataTags.raw)[mt=e])&&void 0!==vt||(pt[mt]=r),e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(null!==(y=(g=this.metadataTags).title)&&void 0!==y||(g.title=r));break;case"©des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof r&&(null!==(k=(b=this.metadataTags).description)&&void 0!==k||(b.description=r));break;case"©ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof r&&(null!==(w=(x=this.metadataTags).artist)&&void 0!==w||(x.artist=r));break;case"©alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof r&&(null!==(T=(_=this.metadataTags).album)&&void 0!==T||(_.album=r));break;case"aART":case"album_artist":"string"==typeof r&&(null!==(E=(I=this.metadataTags).albumArtist)&&void 0!==E||(I.albumArtist=r));break;case"©cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof r&&(null!==(A=(S=this.metadataTags).comment)&&void 0!==A||(S.comment=r));break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(null!==(M=(N=this.metadataTags).genre)&&void 0!==M||(N.genre=r));break;case"©lyr":case"lyrics":"string"==typeof r&&(null!==(O=(F=this.metadataTags).lyrics)&&void 0!==O||(F.lyrics=r));break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){var gt,yt;const t=new Date(r);Number.isNaN(t.getTime())||null!==(yt=(gt=this.metadataTags).date)&&void 0!==yt||(gt.date=t)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof Ww?(null!==(P=(C=this.metadataTags).images)&&void 0!==P||(C.images=[]),this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(null!==(R=(D=this.metadataTags).images)&&void 0!==R||(D.images=[]),this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){var bt,kt,xt,wt;const t=r.split("/"),e=Number.parseInt(t[0],10),n=t[1]&&Number.parseInt(t[1],10);Number.isInteger(e)&&e>0&&(null!==(kt=(bt=this.metadataTags).trackNumber)&&void 0!==kt||(bt.trackNumber=e)),n&&Number.isInteger(n)&&n>0&&(null!==(wt=(xt=this.metadataTags).tracksTotal)&&void 0!==wt||(xt.tracksTotal=n))}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){var _t,Tt,It,Et;const t=yw(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(Tt=(_t=this.metadataTags).trackNumber)&&void 0!==Tt||(_t.trackNumber=e)),n>0&&(null!==(Et=(It=this.metadataTags).tracksTotal)&&void 0!==Et||(It.tracksTotal=n))}break;case"disc":case"disk":if(r instanceof Uint8Array&&r.length>=6){var St,At,Nt,Mt;const t=yw(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(At=(St=this.metadataTags).discNumber)&&void 0!==At||(St.discNumber=e)),n>0&&(null!==(Mt=(Nt=this.metadataTags).discsTotal)&&void 0!==Mt||(Nt.discsTotal=n))}}}}}var Ft,Ot;return t.filePos=W,!0}}class A_{constructor(t){this.internalTrack=t,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){const t=this.internalTrack.demuxer,e=this.internalTrack.inputTrack.type;let n=0;for(const i of t.tracks)if(i.inputTrack.type===e&&n++,i===this.internalTrack)break;return n}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}getDisposition(){return this.internalTrack.disposition}async computeDuration(){var t,e;const n=await this.getPacket(1/0,{metadataOnly:!0});return(null!==(t=null==n?void 0:n.timestamp)&&void 0!==t?t:0)+(null!==(e=null==n?void 0:n.duration)&&void 0!==e?e:0)}async getFirstTimestamp(){var t;const e=await this.getFirstPacket({metadataOnly:!0});return null!==(t=null==e?void 0:e.timestamp)&&void 0!==t?t:0}async getFirstPacket(t){const e=await this.fetchPacketForSampleIndex(0,t);return e||!this.internalTrack.demuxer.isFragmented?e:this.performFragmentedLookup(null,(t=>t.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1}),-1/0,1/0,t)}mapTimestampIntoTimescale(t){return(t=>{const e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t})(t*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=F_(i,n),o=await this.fetchPacketForSampleIndex(r,e);return L_(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=Mw(e.presentationTimestamps,n,(t=>t.presentationTimestamp));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n)return this.fetchPacketForSampleIndex(n+1,e);const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id);if(i.sampleIndex+1<e.samples.length)return{sampleIndex:i.sampleIndex+1,correctSampleFound:!0}}else if(t.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async getKeyPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=O_(i,n),o=await this.fetchPacketForSampleIndex(r,e);return L_(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=((t,e)=>{for(let n=t.length-1;n>=0;n--)if(e(t[n]))return n;return-1})(e.presentationTimestamps,(t=>e.samples[t.sampleIndex].isKeyFrame&&t.presentationTimestamp<=n));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextKeyPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n){const t=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=P_(t,n);return this.fetchPacketForSampleIndex(i,e)}const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id).samples.findIndex(((t,e)=>t.isKeyFrame&&e>i.sampleIndex));if(-1!==e)return{sampleIndex:e,correctSampleFound:!0}}else{const e=t.trackData.get(this.internalTrack.id);if(e&&null!==e.firstKeyFrameTimestamp){const t=e.samples.findIndex((t=>t.isKeyFrame));return pw(-1!==t),{sampleIndex:t,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async fetchPacketForSampleIndex(t,e){if(-1===t)return null;const n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=C_(n,t);if(!i)return null;let r;if(e.metadataOnly)r=h_;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);t instanceof Promise&&(t=await t),pw(t),r=K_(t,i.sampleSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new f_(r,i.isKeyFrame?"key":"delta",o,s,t,i.sampleSize);return this.packetToSampleIndex.set(a,t),a}async fetchPacketInFragment(t,e,n){if(-1===e)return null;const i=t.trackData.get(this.internalTrack.id).samples[e];let r;if(pw(i),n.metadataOnly)r=h_;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);t instanceof Promise&&(t=await t),pw(t),r=K_(t,i.byteSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new f_(r,i.isKeyFrame?"key":"delta",o,s,t.moofOffset+e,i.byteSize);return this.packetToFragmentLocation.set(a,{fragment:t,sampleIndex:e}),a}async performFragmentedLookup(t,e,n,i,r){var o,s;const a=this.internalTrack.demuxer;let l=null,c=null,u=-1;if(t){const{sampleIndex:n,correctSampleFound:i}=e(t);if(i)return this.fetchPacketInFragment(t,n,r);-1!==n&&(c=t,u=n)}const d=Mw(this.internalTrack.fragmentLookupTable,n,(t=>t.timestamp)),h=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,f=Mw(this.internalTrack.fragmentPositionCache,n,(t=>t.startTimestamp)),p=-1!==f?this.internalTrack.fragmentPositionCache[f]:null,m=Math.max(null!==(o=null==h?void 0:h.moofOffset)&&void 0!==o?o:0,null!==(s=null==p?void 0:p.moofOffset)&&void 0!==s?s:0)||null;let v;for(t?null===m||t.moofOffset>=m?(v=t.moofOffset+t.moofSize,l=t):v=m:v=null!=m?m:0;;){if(l){const t=l.trackData.get(this.internalTrack.id);if(t&&t.startTimestamp>i)break}let t=a.reader.requestSliceRange(v,8,16);if(t instanceof Promise&&(t=await t),!t)break;const n=v,o=x_(t);if(!o)break;if("moof"===o.name){l=await a.readFragment(n);const{sampleIndex:t,correctSampleFound:i}=e(l);if(i)return this.fetchPacketInFragment(l,t,r);-1!==t&&(c=l,u=t)}v=n+o.totalSize}if(h&&(!c||c.moofOffset<h.moofOffset)){var g;const t=this.internalTrack.fragmentLookupTable[d-1];pw(!t||t.timestamp<h.timestamp);const n=null!==(g=null==t?void 0:t.timestamp)&&void 0!==g?g:-1/0;return this.performFragmentedLookup(null,e,n,i,r)}return c?this.fetchPacketInFragment(c,u,r):null}}class N_ extends A_{constructor(t){super(t),this.decoderConfigPromise=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.rotation}async getColorSpace(){var t,e,n,i;return{primaries:null===(t=this.internalTrack.info.colorSpace)||void 0===t?void 0:t.primaries,transfer:null===(e=this.internalTrack.info.colorSpace)||void 0===e?void 0:e.transfer,matrix:null===(n=this.internalTrack.info.colorSpace)||void 0===n?void 0:n.matrix,fullRange:null===(i=this.internalTrack.info.colorSpace)||void 0===i?void 0:i.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){var t;return this.internalTrack.info.codec?null!==(t=this.decoderConfigPromise)&&void 0!==t?t:this.decoderConfigPromise=(async(t,e)=>{if("vp9"!==this.internalTrack.info.codec||this.internalTrack.info.vp9CodecInfo){if("av1"===this.internalTrack.info.codec&&!this.internalTrack.info.av1CodecInfo){const t=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=t&&(t=>{for(const{type:e,data:n}of s_(t)){if(1!==e)continue;const t=new jw(n),i=t.readBits(3);t.readBits(1);const r=t.readBits(1);let o=0,s=0,a=0;if(r)o=t.readBits(5);else{if(t.readBits(1)&&(t.skipBits(32),t.skipBits(32),t.readBits(1)))return null;const e=t.readBits(1);e&&(a=t.readBits(5),t.skipBits(32),t.skipBits(5),t.skipBits(5));const n=t.readBits(5);for(let i=0;i<=n;i++){t.skipBits(12);const n=t.readBits(5);if(0===i&&(o=n),n>7){const e=t.readBits(1);0===i&&(s=e)}if(e&&t.readBits(1)){const e=a+1;t.skipBits(e),t.skipBits(e),t.skipBits(1)}t.readBits(1)&&t.skipBits(4)}}const l=t.readBits(4),c=t.readBits(4),u=l+1;t.skipBits(u);const d=c+1;t.skipBits(d);let h=0;if(h=r?0:t.readBits(1),h&&(t.skipBits(4),t.skipBits(3)),t.skipBits(1),t.skipBits(1),t.skipBits(1),!r){t.skipBits(1),t.skipBits(1),t.skipBits(1),t.skipBits(1);const e=t.readBits(1);e&&(t.skipBits(1),t.skipBits(1));let n=0;n=t.readBits(1)?2:t.readBits(1),n>0&&(t.readBits(1)||t.skipBits(1)),e&&t.skipBits(3)}t.skipBits(1),t.skipBits(1),t.skipBits(1);const f=t.readBits(1);let p=8;2===i&&f?p=t.readBits(1)?12:10:i<=2&&(p=f?10:8);let m=0;1!==i&&(m=t.readBits(1));let v=1,g=1,y=0;return m||(0===i?(v=1,g=1):1===i?(v=0,g=0):12===p&&(v=t.readBits(1),v&&(g=t.readBits(1))),v&&g&&(y=t.readBits(2))),{profile:i,level:o,tier:s,bitDepth:p,monochrome:m,chromaSubsamplingX:v,chromaSubsamplingY:g,chromaSamplePosition:y}}return null})(t.data)}}else{const t=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=t&&(t=>{const e=new jw(t);if(2!==e.readBits(2))return null;const n=e.readBits(1),i=(e.readBits(1)<<1)+n;if(3===i&&e.skipBits(1),1===e.readBits(1))return null;if(0!==e.readBits(1))return null;if(e.skipBits(2),4817730!==e.readBits(24))return null;let r=8;i>=2&&(r=e.readBits(1)?12:10);const o=e.readBits(3);let s=0,a=0;if(7!==o)if(a=e.readBits(1),1===i||3===i){const t=e.readBits(1),n=e.readBits(1);s=t||n?t&&!n?2:1:3,e.skipBits(1)}else s=1;else s=3,a=1;const l=(e.readBits(16)+1)*(e.readBits(16)+1);let c=mw(Hw).level;for(const t of Hw)if(l<=t.maxPictureSize){c=t.level;break}return{profile:i,level:c,bitDepth:r,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:2===o?1:1===o?6:2,transferCharacteristics:2===o?1:1===o?6:2,matrixCoefficients:7===o?0:2===o?1:1===o?6:2}})(t.data)}return{codec:Kw(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,displayAspectWidth:this.internalTrack.info.squarePixelWidth,displayAspectHeight:this.internalTrack.info.squarePixelHeight,description:null!==(t=this.internalTrack.info.codecDescription)&&void 0!==t?t:void 0,colorSpace:null!==(e=this.internalTrack.info.colorSpace)&&void 0!==e?e:void 0}})():null}}class M_ extends A_{constructor(t){super(t),this.decoderConfig=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){var t,e;return this.internalTrack.info.codec?null!==(t=this.decoderConfig)&&void 0!==t?t:this.decoderConfig={codec:Xw(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:null!==(e=this.internalTrack.info.codecDescription)&&void 0!==e?e:void 0}:null}}const F_=(t,e)=>{if(t.presentationTimestamps){const n=Mw(t.presentationTimestamps,e,(t=>t.presentationTimestamp));return-1===n?-1:t.presentationTimestamps[n].sampleIndex}{const n=Mw(t.sampleTimingEntries,e,(t=>t.startDecodeTimestamp));if(-1===n)return-1;const i=t.sampleTimingEntries[n];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},O_=(t,e)=>{if(!t.keySampleIndices)return F_(t,e);if(t.presentationTimestamps){const n=Mw(t.presentationTimestamps,e,(t=>t.presentationTimestamp));if(-1===n)return-1;for(let e=n;e>=0;e--){const n=t.presentationTimestamps[e].sampleIndex;if(-1!==Nw(t.keySampleIndices,n,(t=>t)))return n}return-1}{var n;const i=F_(t,e),r=Mw(t.keySampleIndices,i,(t=>t));return null!==(n=t.keySampleIndices[r])&&void 0!==n?n:-1}},C_=(t,e)=>{const n=Mw(t.sampleTimingEntries,e,(t=>t.startIndex)),i=t.sampleTimingEntries[n];if(!i||i.startIndex+i.count<=e)return null;let r=i.startDecodeTimestamp+(e-i.startIndex)*i.delta;const o=Mw(t.sampleCompositionTimeOffsets,e,(t=>t.startIndex)),s=t.sampleCompositionTimeOffsets[o];s&&e-s.startIndex<s.count&&(r+=s.offset);const a=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],l=Mw(t.sampleToChunk,e,(t=>t.startSampleIndex)),c=t.sampleToChunk[l];pw(c);const u=c.startChunkIndex+Math.floor((e-c.startSampleIndex)/c.samplesPerChunk),d=t.chunkOffsets[u],h=c.startSampleIndex+(u-c.startChunkIndex)*c.samplesPerChunk;let f=0,p=d;if(1===t.sampleSizes.length)p+=a*(e-h),f+=a*c.samplesPerChunk;else for(let n=h;n<h+c.samplesPerChunk;n++){const i=t.sampleSizes[n];n<e&&(p+=i),f+=i}let m=i.delta;if(t.presentationTimestamps){const n=t.presentationTimestampIndexMap[e];pw(void 0!==n),n<t.presentationTimestamps.length-1&&(m=t.presentationTimestamps[n+1].presentationTimestamp-r)}return{presentationTimestamp:r,duration:m,sampleOffset:p,sampleSize:a,chunkOffset:d,chunkSize:f,isKeyFrame:!t.keySampleIndices||-1!==Nw(t.keySampleIndices,e,(t=>t))}},P_=(t,e)=>{var n;if(!t.keySampleIndices)return e+1;const i=Mw(t.keySampleIndices,e,(t=>t));return null!==(n=t.keySampleIndices[i+1])&&void 0!==n?n:-1},D_=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(const n of t.samples)n.presentationTimestamp+=e;for(const n of t.presentationTimestamps)n.presentationTimestamp+=e},R_=t=>{const[e,,,n]=t,i=Math.hypot(e,n),r=e/i,o=n/i,s=-Math.atan2(o,r)*(180/Math.PI);return Number.isFinite(s)?s:0},L_=t=>0===t.sampleSizes.length;class B_{}class z_ extends B_{async _getMajorBrand(t){let e=t._reader.requestSlice(0,12);return e instanceof Promise&&(e=await e),e?(e.skip(4),"ftyp"!==rT(e,4)?null:rT(e,4)):null}_createDemuxer(t){return new S_(t)}}const W_=new class extends z_{async _canReadInput(t){const e=await this._getMajorBrand(t);return!!e&&"qt "!==e}get name(){return"MP4"}get mimeType(){return"video/mp4"}};class U_{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){var t;if(this._disposed)throw new q_;return null!==(t=this._sizePromise)&&void 0!==t?t:this._sizePromise=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new q_;const t=await this.getSizeOrNull();if(null===t)throw new Error("Cannot determine the size of an unsized source.");return t}}class j_ extends U_{constructor(t,e={}){var n;if(!(t instanceof ReadableStream))throw new TypeError("stream must be a ReadableStream.");if(!e||"object"!=typeof e)throw new TypeError("options must be an object.");if(void 0!==e.maxCacheSize&&(!zw(e.maxCacheSize)||e.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=t,this._maxCacheSize=null!==(n=e.maxCacheSize)&&void 0!==n?n:16777216}_retrieveSize(){return this._endIndex}_read(t,e){if(null!==this._endIndex&&e>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,e);const n=Mw(this._cache,t,(t=>t.start)),i=-1!==n?this._cache[n]:null;if(i&&i.start<=t&&e<=i.end)return{bytes:i.bytes,view:i.view,offset:i.start};let r=t;const o=new Uint8Array(e-t);if(-1!==n)for(let i=n;i<this._cache.length;i++){const n=this._cache[i];if(n.start>=e)break;const s=Math.max(t,n.start);s>r&&this._throwDueToCacheMiss();const a=Math.min(e,n.end);s<a&&(o.set(n.bytes.subarray(s-n.start,a-n.start),s-t),r=a)}if(r===e)return{bytes:o,view:yw(o),offset:t};this._currentIndex>r&&this._throwDueToCacheMiss();const{promise:s,resolve:a,reject:l}=Fw();return this._pendingSlices.push({start:t,end:e,bytes:o,resolve:a,reject:l}),this._targetIndex=Math.max(this._targetIndex,e),this._pulling||(this._pulling=!0,this._pull().catch((t=>{if(this._pulling=!1,!(this._pendingSlices.length>0))throw t;this._pendingSlices.forEach((e=>e.reject(t))),this._pendingSlices.length=0}))),s}_throwDueToCacheMiss(){throw new Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(null!==(t=this._reader)&&void 0!==t||(this._reader=this._stream.getReader());this._currentIndex<this._targetIndex&&!this._disposed;){var t;const{done:e,value:n}=await this._reader.read();if(e){for(const t of this._pendingSlices)t.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}const i=this._currentIndex,r=this._currentIndex+n.byteLength;for(let t=0;t<this._pendingSlices.length;t++){const e=this._pendingSlices[t],o=Math.max(i,e.start),s=Math.min(r,e.end);o<s&&(e.bytes.set(n.subarray(o-i,s-i),o-e.start),s===e.end&&(e.resolve({bytes:e.bytes,view:yw(e.bytes),offset:e.start}),this._pendingSlices.splice(t,1),t--))}for(this._cache.push({start:i,end:r,bytes:n,view:yw(n),age:0});this._cache.length>0;){const t=this._cache[0];if(this._maxRequestedIndex-t.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=n.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0}}null!==(ye=Symbol.dispose)&&void 0!==ye||(Symbol.dispose=Symbol("Symbol.dispose"));class $_{get disposed(){return this._disposed}constructor(t){if(this._demuxerPromise=null,this._format=null,this._disposed=!1,!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(!Array.isArray(t.formats)||t.formats.some((t=>!(t instanceof B_))))throw new TypeError("options.formats must be an array of InputFormat.");if(!(t.source instanceof U_))throw new TypeError("options.source must be a Source.");if(t.source._disposed)throw new Error("options.source must not be disposed.");this._formats=t.formats,this._source=t.source,this._reader=new V_(t.source)}_getDemuxer(){var t;return null!==(t=this._demuxerPromise)&&void 0!==t?t:this._demuxerPromise=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(const t of this._formats)if(await t._canReadInput(this))return this._format=t,t._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),pw(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getFirstTimestamp(){const t=await this.getTracks();if(0===t.length)return 0;const e=await Promise.all(t.map((t=>t.getFirstTimestamp())));return Math.min(...e)}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter((t=>t.isVideoTrack()))}async getAudioTracks(){return(await this.getTracks()).filter((t=>t.isAudioTrack()))}async getPrimaryVideoTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isVideoTrack())))&&void 0!==t?t:null}async getPrimaryAudioTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isAudioTrack())))&&void 0!==t?t:null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){this._disposed||(this._disposed=!0,this._source._disposed=!0,this._source._dispose())}[Symbol.dispose](){this.dispose()}}class q_ extends Error{constructor(t="Input has been disposed."){super(t),this.name="InputDisposedError"}}class V_{constructor(t){this.source=t}requestSlice(t,e){if(this.source._disposed)throw new q_;if(t<0)return null;if(null!==this.fileSize&&t+e>this.fileSize)return null;const n=t+e,i=this.source._read(t,n);return i instanceof Promise?i.then((e=>e?new G_(e.bytes,e.view,e.offset,t,n):null)):i?new G_(i.bytes,i.view,i.offset,t,n):null}requestSliceRange(t,e,n){if(this.source._disposed)throw new q_;if(t<0)return null;if(null!==this.fileSize)return this.requestSlice(t,Cw(this.fileSize-t,e,n));{const i=this.requestSlice(t,n),r=i=>{if(i)return i;const r=i=>(pw(null!==i),this.requestSlice(t,Cw(i-t,e,n))),o=this.source._retrieveSize();return o instanceof Promise?o.then(r):r(o)};return i instanceof Promise?i.then(r):r(i)}}}class G_{constructor(t,e,n,i,r){this.bytes=t,this.view=e,this.offset=n,this.start=i,this.end=r,this.bufferPos=i-n}static tempFromBytes(t){return new G_(t,yw(t),0,0,t.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(t){this.bufferPos=t-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(t){this.bufferPos+=t}slice(t,e=this.end-t){if(t<this.start||t+e>this.end)throw new RangeError("Slicing outside of original slice.");return new G_(this.bytes,this.view,this.offset,t,t+e)}}const H_=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},K_=(t,e)=>{H_(t,e);const n=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,n},X_=t=>(H_(t,1),t.view.getUint8(t.bufferPos++)),Y_=t=>{H_(t,2);const e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},Q_=t=>{H_(t,3);const e=Ow(t.view,t.bufferPos);return t.bufferPos+=3,e},J_=t=>{H_(t,2);const e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},Z_=t=>{H_(t,4);const e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},tT=t=>{H_(t,4);const e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},eT=t=>4294967296*Z_(t)+Z_(t),nT=t=>4294967296*tT(t)+Z_(t),iT=t=>{H_(t,8);const e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},rT=(t,e)=>{H_(t,e);let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t.bytes[t.bufferPos++]);return n};var oT=new WeakMap,sT=new WeakMap,aT=new WeakMap,lT=new WeakMap,cT=new WeakMap,uT=new WeakMap,dT=new WeakMap,hT=new WeakMap,fT=new WeakMap,pT=new WeakMap,mT=new WeakMap,vT=new WeakMap,gT=new WeakMap,yT=new WeakMap,bT=new WeakMap,kT=new WeakSet;class xT extends Pu{constructor(...t){super(...t),j(this,kT),W(this,oT,null),W(this,sT,null),W(this,aT,null),W(this,lT,null),W(this,cT,!1),W(this,uT,!1),W(this,dT,!1),W(this,hT,!1),W(this,fT,void 0),W(this,pT,null),W(this,mT,null),W(this,vT,!1),W(this,gT,!1),W(this,yT,null),W(this,bT,!1)}get name(){return"FMP4Demuxer"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"pushChunk","endOfStream"])}pushChunk(t,e={}){if(z(dT,this)||z(hT,this))return;const n=t instanceof Uint8Array?t:new Uint8Array(t),i=!!e.isInit;U(pT,this,L(kT,this,ST).call(this,n,e,i)),i&&(U(fT,this,n),U(mT,this,null),this.trigger("demux:init",{data:n})),L(kT,this,ET).call(this);try{var r;const t=null===(r=z(oT,this))||void 0===r?void 0:r.write(n);t&&"function"==typeof t.catch&&t.catch((t=>{L(kT,this,AT).call(this,t)}))}catch(t){if(z(dT,this)||L(kT,this,wT).call(this,t))return;return this.log.warn("[FMP4Demuxer] mediabunny demux failed",t),void L(kT,this,AT).call(this,t)}const o=L(kT,this,FT).call(this);o&&"function"==typeof o.catch&&o.catch((t=>{L(kT,this,AT).call(this,t)}))}endOfStream(){if(z(hT,this))return;if(z(vT,this))return;let t;U(vT,this,!0),U(gT,this,!1),U(bT,this,!1);try{var e;t=null===(e=z(oT,this))||void 0===e?void 0:e.close()}catch(e){t=Promise.resolve()}let n=!1;L(kT,this,TT).call(this),U(yT,this,setTimeout((()=>{U(yT,this,null),n||z(gT,this)||z(hT,this)||L(kT,this,IT).call(this)}),20)),Promise.resolve(t).catch((()=>{})).finally((()=>{n=!0,L(kT,this,TT).call(this),L(kT,this,IT).call(this)}))}onDispose(){super.onDispose(),U(hT,this,!0);try{var t,e;null===(t=z(aT,this))||void 0===t||null===(e=t.close)||void 0===e||e.call(t)}catch(t){}this.endOfStream();try{var n,i;null===(n=z(sT,this))||void 0===n||null===(i=n.dispose)||void 0===i||i.call(n)}catch(t){}U(aT,this,null),U(sT,this,null),U(dT,this,!1),U(pT,this,null),U(lT,this,null),U(cT,this,!1),U(uT,this,!1),U(vT,this,!1),U(gT,this,!1),U(bT,this,!1),L(kT,this,TT).call(this)}}function wT(t){return!!z(hT,this)&&(!t||("InputDisposedError"===(null==t?void 0:t.name)||("string"==typeof(null==t?void 0:t.message)?t.message:"").includes("Input has been disposed")))}function _T(){try{var t,e;const n=null===(t=z(oT,this))||void 0===t||null===(e=t.close)||void 0===e?void 0:e.call(t);n&&"function"==typeof n.catch&&n.catch((()=>{}))}catch(t){}U(oT,this,null)}function TT(){null!==z(yT,this)&&(clearTimeout(z(yT,this)),U(yT,this,null))}function IT(){if(z(gT,this)||z(hT,this)||z(dT,this))return;if(U(gT,this,!0),z(uT,this))return void U(bT,this,!0);U(bT,this,!1);const t=L(kT,this,FT).call(this);t&&"function"==typeof t.catch&&t.catch((t=>{L(kT,this,AT).call(this,t)}))}function ET(){if(z(sT,this)&&z(oT,this))return;const t=Lu.TransformStream;if(void 0===t)throw new Error("TransformStream is not available in this environment");const{readable:e,writable:n}=new t;U(oT,this,n.getWriter()),U(sT,this,new $_({source:new j_(e),formats:[W_]})),U(cT,this,!1)}function ST(t,e,n){const i={isInit:n,byteLength:(null==t?void 0:t.byteLength)||0};return"number"==typeof e.loaded&&(i.loaded=e.loaded),"number"==typeof e.total&&(i.total=e.total),"number"==typeof e.pts&&(i.pts=e.pts),"number"==typeof e.dts&&(i.dts=e.dts),"number"==typeof e.duration&&(i.duration=e.duration),"boolean"==typeof e.isKey&&(i.isKey=e.isKey),i}function AT(t){if(z(dT,this)||L(kT,this,wT).call(this,t))return;if(L(kT,this,MT).call(this,t))return void U(cT,this,!1);U(dT,this,!0),L(kT,this,_T).call(this);try{var e,n;null===(e=z(aT,this))||void 0===e||null===(n=e.close)||void 0===n||n.call(e)}catch(t){}U(aT,this,null);try{var i,r;null===(i=z(sT,this))||void 0===i||null===(r=i.dispose)||void 0===r||r.call(i)}catch(t){}U(sT,this,null);const o={error:t,recoverable:!1,severity:"fatal",streamClosed:z(vT,this),streamFinalized:z(gT,this)};z(pT,this)&&(o.context={...z(pT,this)}),this.trigger("demux:error",o)}function NT(t){if(!t)return!1;const e="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!e&&(e.includes("unsupported or unrecognizable format")||e.includes("No supported tracks found"))}function MT(t){return!!L(kT,this,NT).call(this,t)&&(!z(gT,this)||z(bT,this))}async function FT(){if(!(z(hT,this)||z(dT,this)||z(cT,this)||z(uT,this))){U(uT,this,!0);try{L(kT,this,ET).call(this);const t=await z(sT,this).getPrimaryVideoTrack(),e=t?null:await z(sT,this).getPrimaryAudioTrack(),n=t||e;if(!n)throw new Error("No supported tracks found in MP4");const i=await n.getDecoderConfig(),r=await n.getCodecParameterString(),o=await z(sT,this).getMimeType();this.trigger("demux:init",{...z(fT,this)?{data:z(fT,this)}:{},decoderConfig:i,codec:r,mimeType:o}),U(aT,this,new g_(n)),U(cT,this,!0),U(lT,this,(async()=>{try{for await(const t of z(aT,this).packets()){if(z(hT,this))break;const e="number"==typeof t.timestamp?t.timestamp:0;null===z(mT,this)&&U(mT,this,e);let n=e-z(mT,this);n<0&&(n=0),this.trigger("demux:sample",{data:t.data,pts:n,dts:n,duration:t.duration,isKey:"key"===t.type})}this.trigger("demux:complete")}catch(t){L(kT,this,AT).call(this,t)}})())}catch(t){if(L(kT,this,MT).call(this,t))return;throw t}finally{U(uT,this,!1),!z(bT,this)||z(dT,this)||z(hT,this)||L(kT,this,IT).call(this)}}}const OT=1e6,CT=24e3/1001,PT={primaries:"bt709",transfer:"bt709",matrix:"bt709",fullRange:!0},DT=new Uint8Array;function RT(t){return t?t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):DT:DT}let LT=null;const BT={video:(be=new WeakMap,ke=new WeakMap,xe=new WeakMap,we=new WeakMap,_e=new WeakMap,Te=new WeakMap,Ie=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ae=new WeakMap,Ne=new WeakMap,Me=new WeakMap,Fe=new WeakMap,Oe=new WeakMap,Ce=new WeakMap,Pe=new WeakMap,De=new WeakMap,Re=new WeakMap,Le=new WeakMap,Be=new WeakMap,ze=new WeakMap,We=new WeakMap,Ue=new WeakMap,je=new WeakMap,$e=new WeakMap,qe=new WeakMap,Ve=new WeakMap,Ge=new WeakMap,He=new WeakMap,Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,Je=new WeakMap,Ze=new WeakSet,class extends fw{get name(){return"WebCodecsSegmentDecoder"}get defaults(){return{decodedHorizonSeconds:1,maxDecodedFrames:24,maxDecodeQueueSize:4,av1ColorSpaceOverrideEnabled:!0,convertFramesToBitmapsOnAndroid:!0,androidFixEndOfSegmentDelta:.2}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"decodeChunk"])}constructor(...t){super(...t),j(this,Ze),W(this,be,void 0),W(this,ke,[]),W(this,xe,void 0),W(this,we,void 0),W(this,_e,void 0),W(this,Te,void 0),W(this,Ie,[]),W(this,Ee,void 0),W(this,Se,new Map),W(this,Ae,!0),W(this,Ne,!1),W(this,Me,!1),W(this,Fe,!1),W(this,Oe,void 0),W(this,Ce,!1),W(this,Pe,!1),W(this,De,0),W(this,Re,void 0),W(this,Le,void 0),W(this,Be,{}),W(this,ze,void 0),W(this,We,0),W(this,Ue,null),W(this,je,!1),W(this,$e,null),W(this,qe,void 0),W(this,Ve,0),W(this,Ge,0),W(this,He,0),W(this,Ke,0),W(this,Xe,!1),W(this,Ye,!1),W(this,Qe,.2),W(this,Je,Promise.resolve()),U(xe,this,this.settings.decodedHorizonSeconds||1),U(we,this,L(Ze,this,NI).call(this,this.settings.maxDecodedFrames)),U(_e,this,L(Ze,this,FI).call(this,this.settings.maxDecodeQueueSize)),U(Xe,this,Em()),U(Ye,this,L(Ze,this,xI).call(this,this.settings.convertFramesToBitmapsOnAndroid)),U(Qe,this,L(Ze,this,wI).call(this,this.settings.androidFixEndOfSegmentDelta)),U(Te,this,(()=>0)),U(Ee,this,(()=>L(Ze,this,dI).call(this)));const e=this.settings.demuxerOptions?{FMP4Demuxer:this.settings.demuxerOptions}:{};U(be,this,new xT(e)),z(be,this).on("demux:init",(t=>L(Ze,this,eI).call(this,t))),z(be,this).on("demux:sample",(t=>L(Ze,this,nI).call(this,t))),z(be,this).on("demux:complete",(()=>L(Ze,this,iI).call(this))),z(be,this).on("demux:error",(t=>L(Ze,this,qT).call(this,t)))}setCurrentTimeProvider(t){"function"==typeof t&&U(Te,this,t)}setTimeOffsetSeconds(t){const e=Number(t);U(We,this,Number.isFinite(e)?e:0)}setSeekTargetTimeSeconds(t){const e=Number(t);U(Ue,this,Number.isFinite(e)?e:null),U(je,this,!1),U($e,this,null)}endOfStream(){z(be,this)&&"function"==typeof z(be,this).endOfStream&&z(be,this).endOfStream()}configure(t){super.configure(t),U(Be,this,{codec:L(Ze,this,RI).call(this,t),width:(null==t?void 0:t.codedWidth)||(null==t?void 0:t.width),height:(null==t?void 0:t.codedHeight)||(null==t?void 0:t.height)}),U(Re,this,z(Be,this).codec)}setSegment(t){this.lastSegment=t,L(Ze,this,QT).call(this)}setNodeId(t){U(qe,this,t)}decode(t){this.setSegment(t);const e=null==t?void 0:t.arrayBuffer;e&&z(be,this).pushChunk(e,{isInit:!(null==t||!t.isInit)})}async decodeChunk(t,e={}){await z(be,this).pushChunk(t,{isInit:!!e.isInit,pts:"number"==typeof e.pts?e.pts:void 0,dts:"number"==typeof e.dts?e.dts:void 0,duration:"number"==typeof e.duration?e.duration:void 0,isKey:!!e.isKey,loaded:"number"==typeof e.loaded?e.loaded:void 0,total:"number"==typeof e.total?e.total:void 0})}get decodedFrames(){return z(ke,this).slice()}onDispose(){if(super.onDispose(),L(Ze,this,pI).call(this),z(be,this)&&"function"==typeof z(be,this).dispose&&z(be,this).dispose(),U(ke,this,[]),U(Ie,this,[]),z(Se,this).clear(),U($e,this,null),z(Oe,this)&&"function"==typeof z(Oe,this).close)try{z(Oe,this).close()}catch(t){}U(Oe,this,null),U(Ce,this,!1),U(Le,this,null),U(Re,this,null),U(qe,this,null),U(Je,this,Promise.resolve()),L(Ze,this,QT).call(this)}}),audio:(tn=new WeakMap,en=new WeakMap,nn=new WeakMap,rn=new WeakMap,on=new WeakMap,sn=new WeakMap,an=new WeakMap,ln=new WeakSet,class extends fw{constructor(...t){super(...t),j(this,ln),W(this,tn,void 0),W(this,en,[]),W(this,nn,0),W(this,rn,!1),W(this,on,!1),W(this,sn,void 0),W(this,an,0)}get name(){return"WebAudioDecoder"}setSegment(t){U(sn,this,t)}setTimeOffsetSeconds(t){const e=Number(t);U(an,this,Number.isFinite(e)?e:0)}decode(t){if(this.lastSegment=t,!t)return;if(t.isInit)return void U(tn,this,RT(t.arrayBuffer));const e=t.arrayBuffer;e&&L(ln,this,UT).call(this,RT(e),!0)}decodeChunk(t,e={}){if(!t)return;if(e.isInit)return void U(tn,this,RT(t));const n=RT(t);if(!n.length)return;z(en,this).push(n),U(nn,this,z(nn,this)+n.length);const i=Number(e.loaded),r=Number(e.total);Number.isFinite(i)&&Number.isFinite(r)&&r>0&&i>=r&&L(ln,this,zT).call(this)}endOfStream(){L(ln,this,zT).call(this)}onDispose(){super.onDispose(),U(tn,this,void 0),U(en,this,[]),U(nn,this,0),U(rn,this,!1),U(on,this,!1),U(sn,this,void 0)}}),image:class extends fw{#z;#W=0;#U=[];#j=0;#$;get name(){return"ImageDecoder"}setSegment(t){this.#z=t}setTimeOffsetSeconds(t){const e=Number(t);this.#W=Number.isFinite(e)?e:0}decode(t){super.decode(t),t&&(this.#z=t);const e=null==t?void 0:t.arrayBuffer;e instanceof ArrayBuffer&&(this.#U=[new Uint8Array(e)],this.#j=e.byteLength,this.endOfStream())}decodeChunk(t,e={}){if(null!=e&&e.isInit)return;const n=function(t){if(t)return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)&&t.buffer?new Uint8Array(t.buffer):void 0}(t);n&&n.length&&(this.#U.push(n),this.#j+=n.length)}async endOfStream(){var t,e,n;if(this.#$)return;if(!(this.#U.length&&this.#j>0))return;const i=new Uint8Array(this.#j);let r=0;for(let t=0;t<this.#U.length;t+=1){const e=this.#U[t];i.set(e,r),r+=e.length}const o=null===(t=this.#z)||void 0===t?void 0:t.chosenRepresentation,s=(null==o?void 0:o.mime)||(null===(e=this.track)||void 0===e?void 0:e.mimeType)||(null===(n=this.track)||void 0===n?void 0:n.mime)||function(t){if(t instanceof Uint8Array&&!(t.byteLength<4))return t.byteLength>=8&&137===t[0]&&80===t[1]&&78===t[2]&&71===t[3]&&13===t[4]&&10===t[5]&&26===t[6]&&10===t[7]?"image/png":255===t[0]&&216===t[1]&&255===t[2]?"image/jpeg":t.byteLength>=6&&71===t[0]&&73===t[1]&&70===t[2]&&56===t[3]?"image/gif":t.byteLength>=12&&82===t[0]&&73===t[1]&&70===t[2]&&70===t[3]&&87===t[8]&&69===t[9]&&66===t[10]&&80===t[11]?"image/webp":void 0}(i);try{var a,l;const t=await async function(t,e){const n=function(t,e){if(!(t&&t.byteLength>0))return;if("function"!=typeof Lu.Blob)return;const n="string"==typeof e?e:"";return new Lu.Blob([t],n?{type:n}:void 0)}(t,e);if(!n)throw new Error("Image decode requires Blob support");let i;if("function"==typeof Lu.Image&&Lu.URL&&"function"==typeof Lu.URL.createObjectURL&&"function"==typeof Lu.URL.revokeObjectURL){const t=Lu.URL.createObjectURL(n);try{const e=new Lu.Image;return await new Promise(((n,i)=>{e.onload=()=>n(),e.onerror=t=>i(t||new Error("Image decode failed")),e.src=t})),e}catch(t){i=t}finally{Lu.URL.revokeObjectURL(t)}}if("function"==typeof Lu.createImageBitmap)try{return Lu.createImageBitmap(n)}catch(t){i=t}if(i)throw i;throw new Error("No supported image decode mechanism")}(i,s);this.#$=t;const e=function(t){if(!t)return;const e=[[t.naturalWidth,t.naturalHeight],[t.width,t.height],[t.displayWidth,t.displayHeight],[t.videoWidth,t.videoHeight],[t.codedWidth,t.codedHeight]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t);e&&o&&(ug(o.width)||(o.width=e.width),ug(o.height)||(o.height=e.height)),this.trigger("decoder:frame",{pts:this.#W,duration:ug(null===(a=this.#z)||void 0===a?void 0:a.duration)?this.#z.duration:null===(l=this.track)||void 0===l?void 0:l.duration,frame:t})}catch(t){this.trigger("decoder:error",{error:t})}}onDispose(){if(super.onDispose(),this.#$&&"function"==typeof this.#$.close)try{this.#$.close()}catch(t){}this.#$=null,this.#U=[],this.#j=0,this.#z=null}}};function zT(){if(z(rn,this)||z(on,this))return;if(!z(nn,this))return;const t=L(ln,this,WT).call(this);t.length&&L(ln,this,UT).call(this,t,!1)}function WT(){const t=z(tn,this),e=t?t.length:0,n=e+z(nn,this);if(!n)return DT;const i=new Uint8Array(n);let r=0;e&&(i.set(t,r),r+=e);for(let t=0;t<z(en,this).length;t+=1){const e=z(en,this)[t];e&&e.length&&(i.set(e,r),r+=e.length)}return i}function UT(t,e){if(z(rn,this)||z(on,this))return;const n=e?L(ln,this,jT).call(this,t):t;if(!n||!n.length)return;const i=function(){if(LT)return LT;const t=Lu.AudioContext||Lu.webkitAudioContext;return t?(LT=new t,LT):null}();if(!i||"function"!=typeof i.decodeAudioData)return void this.trigger("decoder:error",{error:new Error("AudioContext is not available")});const r=n.buffer.slice(0);U(on,this,!0),new Promise(((t,e)=>{const n=i.decodeAudioData(r,t,e);n&&"function"==typeof n.then&&n.then(t).catch(e)})).then((t=>{var e;U(rn,this,!0);const n=Number.isFinite(null==t?void 0:t.duration)?t.duration:Number(null===(e=z(sn,this))||void 0===e?void 0:e.duration)||void 0;this.trigger("decoder:audio",{audioBuffer:t,pts:z(an,this),duration:n})})).catch((t=>{this.trigger("decoder:error",{error:t})})).finally((()=>{U(en,this,[]),U(nn,this,0),U(on,this,!1)}))}function jT(t){const e=z(tn,this);if(!e||!e.length)return t;const n=e.length+t.length,i=new Uint8Array(n);return i.set(e,0),i.set(t,e.length),i}function $T(t,e){var n,i,r,o,s;const a=null!=t&&t.context&&"object"==typeof t.context?t.context:void 0;return{error:e,errorName:null==e?void 0:e.name,errorMessage:"string"==typeof(null==e?void 0:e.message)?e.message:void 0,nodeId:z(qe,this),trackId:null===(n=this.track)||void 0===n?void 0:n.id,trackType:null===(i=this.track)||void 0===i?void 0:i.type,codec:(null===(r=z(Be,this))||void 0===r?void 0:r.codec)||z(Re,this),segmentId:null===(o=this.lastSegment)||void 0===o?void 0:o.id,segmentIsInit:!(null===(s=this.lastSegment)||void 0===s||!s.isInit),chunkContext:a}}function qT(t){const e=(null==t?void 0:t.error)||t,n=L(Ze,this,$T).call(this,t,e);if(L(Ze,this,VT).call(this,t,e))return this.log.warn("[onDemuxError] recoverable demux error",n),void L(Ze,this,iI).call(this);const i=L(Ze,this,tI).call(this,t),r=L(Ze,this,GT).call(this,i);if(i&&0===i.missingFrames)return this.log.warn(`[onDemuxError] ignoring demux error (no missing frames)${r}`,{...n,missingFrameStats:i}),void L(Ze,this,iI).call(this);let o=n;i&&(o={...n,missingFrameStats:i}),this.log.warn(`[onDemuxError] demux error${r}`,o),this.trigger("decoder:error",t)}function VT(t,e){if("boolean"==typeof(null==t?void 0:t.recoverable))return t.recoverable;const n="string"==typeof(null==t?void 0:t.severity)?t.severity:"";if(n)return"recoverable"===n||"transient"===n;const i="string"==typeof(null==e?void 0:e.message)?e.message:"";return!!i&&(i.includes("unsupported or unrecognizable format")||i.includes("No supported tracks found"))}function GT(t){return t?` expectedFrames=${L(Ze,this,HT).call(this,t.expectedFrames)} demuxedFrames=${L(Ze,this,HT).call(this,t.demuxedFrames)} missingFrames=${L(Ze,this,HT).call(this,t.missingFrames)}`:""}function HT(t){if(null==t)return"unknown";const e=Number(t);return Number.isFinite(e)?String(e):"unknown"}function KT(t,e={}){return{expectedFrames:null,demuxedFrames:z(Ve,this),missingFrames:null,reason:t,...e}}function XT(t){const e=Number(t);return Number.isFinite(e)?e:null}function YT(t){var e,n;const i=(null==t?void 0:t.context)||{},r=Number(i.loaded),o=Number(i.total);if(!Number.isFinite(o)||o<=0||!Number.isFinite(r)||r<o)return null;if(null!==(e=this.lastSegment)&&void 0!==e&&e.isInit)return null;const s=Number(null===(n=this.lastSegment)||void 0===n?void 0:n.duration);if(!Number.isFinite(s)||s<=0)return L(Ze,this,KT).call(this,"segment_duration_unavailable",{segmentDurationSeconds:L(Ze,this,XT).call(this,s),demuxedCoverageSeconds:z(Ke,this),frameDurationSeconds:null});const a=L(Ze,this,ZT).call(this);if(!Number.isFinite(a)||a<=0){const t=Math.max(1,Math.round(s*CT));return{expectedFrames:t,demuxedFrames:z(Ve,this),missingFrames:Math.max(0,t-z(Ve,this)),reason:"fallback_fps",fallbackFps:CT,segmentDurationSeconds:s,demuxedCoverageSeconds:z(Ke,this),frameDurationSeconds:L(Ze,this,XT).call(this,a)}}const l=Math.min(.5*a,.02),c=Math.max(0,s-z(Ke,this)),u=c<=l?0:c,d=Math.max(1,Math.floor((s+l)/a)),h=Math.max(0,d-z(Ve,this)),f=u>0?Math.ceil(u/a):0;return{expectedFrames:d,demuxedFrames:z(Ve,this),missingFrames:Math.max(h,f),segmentDurationSeconds:s,demuxedCoverageSeconds:z(Ke,this),frameDurationSeconds:a}}function QT(){U(Ve,this,0),U(Ge,this,0),U(He,this,0),U(Ke,this,0)}function JT(t){U(Ve,this,z(Ve,this)+1);const e=Number(null==t?void 0:t.pts),n=Number(null==t?void 0:t.duration);if(Number.isFinite(n)&&n>0&&(U(Ge,this,z(Ge,this)+n),U(He,this,z(He,this)+1)),!Number.isFinite(e))return;const i=Number.isFinite(n)&&n>0?e+n:e;Number.isFinite(i)&&i>z(Ke,this)&&U(Ke,this,i)}function ZT(){return z(He,this)>0?z(Ge,this)/z(He,this):z(Ve,this)>0&&z(Ke,this)>0?z(Ke,this)/z(Ve,this):null}function tI(t){return L(Ze,this,YT).call(this,t)}function eI(t){(null==t?void 0:t.data)instanceof Uint8Array&&(U(Le,this,t.data.buffer),L(Ze,this,vI).call(this)),null!=t&&t.decoderConfig&&(U(ze,this,t.decoderConfig),U(Re,this,t.decoderConfig.codec||z(Re,this)),L(Ze,this,vI).call(this)),this.trigger("decoder:init",t)}function nI(t){L(Ze,this,JT).call(this,t),z(Ie,this).push(t),L(Ze,this,dI).call(this)}function iI(){U(Ne,this,!0),L(Ze,this,yI).call(this)}function rI(t){const e="number"==typeof(null==t?void 0:t.pts)?t.pts:void 0;if(Number.isFinite(e))return z(We,this)+e}function oI(t){return z(Ie,this).some((e=>{const n=L(Ze,this,rI).call(this,e);return Number.isFinite(n)&&n>=t}))}function sI(t){let e=-1,n=null;for(let i=0;i<z(Ie,this).length;i+=1){const r=z(Ie,this)[i],o=L(Ze,this,rI).call(this,r);Number.isFinite(o)&&(null==r?void 0:r.isKey)&&o<=t&&(e=i,n=o)}return{chosenIndex:e,chosenPtsSeconds:n}}function aI(t){let e=-1,n=null;for(let i=0;i<z(Ie,this).length;i+=1){const r=z(Ie,this)[i],o=L(Ze,this,rI).call(this,r);if(Number.isFinite(o)&&null!=r&&r.isKey&&(e=i,n=o,o>=t))break}return{chosenIndex:e,chosenPtsSeconds:n}}function lI(t){const e=t+z(xe,this),n=z(Ue,this);if(!Number.isFinite(n))return e;const i=Number.isFinite(z($e,this))?z($e,this):null;if(Number.isFinite(i))return Math.max(e,i);const{chosenPtsSeconds:r}=L(Ze,this,aI).call(this,n);return Number.isFinite(r)?Math.max(e,r):e}function cI(t){const e=z(Ue,this);Number.isFinite(e)&&Number.isFinite(t)&&t>=e&&(U(Ue,this,null),U($e,this,null))}function uI(){const t=z(Ue,this);if(!Number.isFinite(t)||z(je,this))return!0;if(!L(Ze,this,oI).call(this,t)&&!z(Ne,this))return!1;const e=L(Ze,this,sI).call(this,t);let n=e;if(-1===e.chosenIndex&&(n=L(Ze,this,aI).call(this,t)),n.chosenIndex>0){const t=`[#maybeAlignToSeekKeyframe] Dropping ${n.chosenIndex} samples before keyframe @ ${n.chosenPtsSeconds}`;this.log.debug(t),z(Ie,this).splice(0,n.chosenIndex)}return U(Ae,this,!0),Number.isFinite(n.chosenPtsSeconds)&&U($e,this,n.chosenPtsSeconds),U(je,this,!0),!0}function dI(){const t=z(Te,this)?z(Te,this).call(this):0,e=L(Ze,this,lI).call(this,t);if(L(Ze,this,SI).call(this,t),L(Ze,this,AI).call(this),!L(Ze,this,uI).call(this))return void L(Ze,this,fI).call(this);const n=void 0!==Lu.VideoDecoder&&void 0!==Lu.EncodedVideoChunk;for(n&&!z(Ce,this)&&z(ze,this)&&L(Ze,this,vI).call(this);z(Ie,this).length&&!L(Ze,this,MI).call(this)&&!(n&&z(Oe,this)&&L(Ze,this,OI).call(this));){const t=z(Ie,this)[0],i="number"==typeof(null==t?void 0:t.pts)?t.pts:0,r=z(We,this)+i;if(r>e)break;if(null!=t&&t.raw)z(Ie,this).shift(),L(Ze,this,hI).call(this,t);else{if(n){if(!z(Ce,this)||!z(Oe,this))break;if(z(Ae,this)&&!t.isKey){z(Ie,this).shift();continue}z(Ie,this).shift();const e=Math.max(0,Math.round(r*OT));z(Se,this).set(e,!!t.isKey);try{const n=new Lu.EncodedVideoChunk({type:t.isKey?"key":"delta",timestamp:e,duration:t.duration?Math.round(t.duration*OT):void 0,data:t.data instanceof Uint8Array?t.data:new Uint8Array(t.data)});z(Oe,this).decode(n),t.isKey&&U(Ae,this,!1);continue}catch(t){z(Se,this).delete(e);const n="string"==typeof(null==t?void 0:t.message)?t.message:"";if("DataError"===(null==t?void 0:t.name)&&n.includes("key frame")){U(Ae,this,!0);continue}this.log.warn("[#drainDecodeQueue] decode failed, falling back to placeholder",t)}}z(Ie,this).shift(),L(Ze,this,hI).call(this,t)}}L(Ze,this,yI).call(this),L(Ze,this,fI).call(this)}function hI(t){const e=z(Te,this)?z(Te,this).call(this):0,n=L(Ze,this,lI).call(this,e),i=z(We,this)+("number"==typeof t.pts?t.pts:0);if(i<e||i>n)return;L(Ze,this,SI).call(this,e);const r={pts:i,duration:t.duration,data:t.data,isKey:t.isKey};z(ke,this).push(r),L(Ze,this,AI).call(this),this.trigger("decoder:frame",r),L(Ze,this,cI).call(this,i)}function fI(){if(z(Ie,this).length>0&&void 0!==Lu.VideoDecoder){if(xk(z(Ee,this)))return;bk(z(Ee,this),50)}else L(Ze,this,pI).call(this)}function pI(){z(Ee,this)&&xk(z(Ee,this))&&kk(z(Ee,this))}function mI(){return null!=Lu&&Lu.performance&&"function"==typeof Lu.performance.now?Lu.performance.now():Date.now()}function vI(){if(z(Ce,this))return;if(void 0===Lu.VideoDecoder)return;if(!z(ze,this))return;if(z(Pe,this)&&L(Ze,this,mI).call(this)<z(De,this))return;const t=L(Ze,this,gI).call(this);try{U(Oe,this,new Lu.VideoDecoder({output:t=>L(Ze,this,kI).call(this,t),error:t=>L(Ze,this,bI).call(this,t)})),z(Oe,this).configure(t),U(Ce,this,!0),U(Ae,this,!0),U(Pe,this,!1),U(De,this,0),L(Ze,this,dI).call(this)}catch(t){this.log.warn("[#maybeConfigureDecoder] configure failed, falling back to placeholder decode",t),U(Oe,this,null),U(Ce,this,!1),U(ze,this,null)}}function gI(){const t={...z(ze,this)};return L(Ze,this,PI).call(this,t)&&z(Be,this).codec?t.codec=z(Be,this).codec:!t.codec&&z(Re,this)&&(t.codec=z(Re,this)),z(Le,this)&&!t.description&&(t.description=z(Le,this)),z(Be,this).width&&!t.codedWidth&&(t.codedWidth=z(Be,this).width),z(Be,this).height&&!t.codedHeight&&(t.codedHeight=z(Be,this).height),L(Ze,this,DI).call(this,t),t}function yI(){void 0!==Lu.VideoDecoder&&void 0!==Lu.EncodedVideoChunk&&(z(Pe,this)||!z(Ne,this)||z(Fe,this)||z(Me,this)||z(Ce,this)&&z(Oe,this)&&"function"==typeof z(Oe,this).flush&&(z(Ie,this).length||(U(Me,this,!0),Promise.resolve().then((()=>z(Oe,this).flush())).then((()=>{U(Fe,this,!0),U(Ae,this,!0)})).catch((t=>{"AbortError"!==(null==t?void 0:t.name)&&this.log.warn("[#maybeFlushDecoder] flush failed",t)})).finally((()=>{U(Me,this,!1)})))))}function bI(t){if(this.log.warn("[#handleDecoderError] decoder error",t),this.trigger("decoder:error",{error:t}),z(Oe,this)&&"function"==typeof z(Oe,this).close)try{z(Oe,this).close()}catch(t){}U(Oe,this,null),U(Ce,this,!1),U(Me,this,!1),U(Fe,this,!1),U(Ae,this,!0),z(Se,this).clear(),U(Pe,this,!0),U(De,this,L(Ze,this,mI).call(this)+1e3)}function kI(t){U(Je,this,z(Je,this).then((()=>{var e;if(!this._disposed)return L(Ze,this,EI).call(this,t);null===(e=t.close)||void 0===e||e.call(t)})).catch((e=>{this.log.warn("[#enqueueDecodedFrame] failed processing decoded frame",e);try{var n;null===(n=t.close)||void 0===n||n.call(t)}catch(t){}})))}function xI(t){return"boolean"!=typeof t||t}function wI(t){const e=Number(t);return!Number.isFinite(e)||e<0?.2:e}function _I(){return!!z(Ye,this)&&"function"==typeof Lu.createImageBitmap&&z(Xe,this)}function TI(t){var e;const n=Number(null===(e=this.lastSegment)||void 0===e?void 0:e.duration);if(!Number.isFinite(n)||n<=0)return!1;if(!Number.isFinite(t))return!1;const i=Number(z(We,this));return!!Number.isFinite(i)&&t>=i+n-z(Qe,this)}async function II(t,e){try{var n;const i=L(Ze,this,TI).call(this,e),r=await Lu.createImageBitmap(t,{premultiplyAlpha:i?"none":"default"});return null!==(n=t.close)&&void 0!==n&&n.call(t),r}catch(e){return this.log.debug("[#maybeConvertFrameToBitmap] createImageBitmap failed",e),t}}async function EI(t){var e,n;let i=t;if(this._disposed)return void(null===(e=(n=i).close)||void 0===e||e.call(n));const r="number"==typeof t.timestamp?t.timestamp:void 0,o="number"==typeof t.timestamp?t.timestamp/OT:z(Te,this)?z(Te,this).call(this):0,s="number"==typeof t.duration?t.duration/OT:void 0;let a;void 0!==r&&(a=z(Se,this).get(r),z(Se,this).delete(r));try{var l,c,u,d;let e=z(Te,this)?z(Te,this).call(this):0,n=L(Ze,this,lI).call(this,e);if(o<e||o>n)return void(null===(l=(c=i).close)||void 0===l||l.call(c));if(L(Ze,this,_I).call(this)){var h,f,p,m;if(i=await L(Ze,this,II).call(this,t,o),this._disposed)return void(null===(h=(f=i).close)||void 0===h||h.call(f));if(e=z(Te,this)?z(Te,this).call(this):0,n=L(Ze,this,lI).call(this,e),o<e||o>n)return void(null===(p=(m=i).close)||void 0===p||p.call(m))}if(L(Ze,this,SI).call(this,e),this._disposed)return void(null===(u=(d=i).close)||void 0===u||u.call(d));const r={frame:i,pts:o,duration:s,isKey:void 0!==a&&a};z(ke,this).push(r),L(Ze,this,AI).call(this),this.trigger("decoder:frame",r),L(Ze,this,cI).call(this,o),this.log.debug(`[#handleDecodedFrame] [${z(Be,this).codec}] Decoded frame:`,r)}catch(t){this.log.warn(`[#handleDecodedFrame] [${z(Be,this).codec}] Failed to handle decoded frame`,t);try{var v,g;null===(v=(g=i).close)||void 0===v||v.call(g)}catch(t){}}}function SI(t){const e=L(Ze,this,lI).call(this,t),n=[];z(ke,this).forEach((i=>{var r;const o=null!==(r=null==i?void 0:i.pts)&&void 0!==r?r:0;o<t||o>e||n.push(i)})),U(ke,this,n)}function AI(){const t=z(we,this);if(!Number.isFinite(t)||t<=0)return;if(z(ke,this).length<=t)return;const e=z(ke,this).length-t;z(ke,this).splice(0,e)}function NI(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function MI(){const t=z(we,this);return!(!Number.isFinite(t)||t<=0)&&z(ke,this).length>=t}function FI(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function OI(){var t;const e=z(_e,this);if(!Number.isFinite(e)||e<=0)return!1;const n=Number(null===(t=z(Oe,this))||void 0===t?void 0:t.decodeQueueSize);return!!Number.isFinite(n)&&n>=e}function CI(t){return"string"==typeof t&&t.toLowerCase().startsWith("av01")}function PI(t){var e;return!1!==this.settings.av1ColorSpaceOverrideEnabled&&L(Ze,this,CI).call(this,(null===(e=z(Be,this))||void 0===e?void 0:e.codec)||(null==t?void 0:t.codec))}function DI(t){L(Ze,this,PI).call(this,t)&&(t.colorSpace={...PT})}function RI(t){if(t&&Array.isArray(t.segments))for(let e=0;e<t.segments.length;e+=1){const n=t.segments[e];if(!Array.isArray(null==n?void 0:n.representations))continue;const i=n.chosenRepresentation||n.representations[0];if(null!=i&&i.codecs)return i.codecs;if(null!=i&&i.mime)return i.mime}}class LI extends Pu{#q;get name(){return"DecoderFactory"}constructor(...t){super(...t);const e=t.length?t[t.length-1]:void 0;this.#q=e&&"object"==typeof e&&!Array.isArray(e)?e:{}}create(t,e=this.#q){if(!t||!t.type)return new fw(e);const n=BT[t.type];return n?(this.log.debug(`[#create] [${t.type}] Creating decoder:`,n),new n(e)):new fw(e)}}class BI{#V;#G;#H;#K;constructor(t={}){this.#V=t.getActiveRenderPlacement,this.#G=t.getPlacementsActiveAtTime,this.#H=t.ensureDecodedForPlacementAtTime;const e=Number(t.lookaheadSeconds);this.#K=Number.isFinite(e)&&e>=0?e:1}handleTimeUpdate(t={}){const e=Number(null==t?void 0:t.time);if(!Number.isFinite(e))return;if("function"!=typeof this.#H)return;const n="function"==typeof this.#G?this.#G:()=>[],i=n(e),r=new Set;i.forEach((t=>{null!=t&&t.placementId&&r.add(t.placementId),this.#H(t,e)}));const o=this.#K;if(!(o>0))return;const s=e+o;n(s).forEach((t=>{const e=null==t?void 0:t.placementId;e&&!r.has(e)&&this.#H(t,s)}))}dispose(){}}class zI{#X;#Y;#Q;#J;#Z;#tt;constructor(t={}){this.#X=t.getNode,this.#Y=t.getPlacementState,this.#Q=t.getDecodeTracks,this.#J=t.getSegmentIdForTrackAtTime,this.#Z=t.decodeLoadedMediaSegment,this.#tt=t.decodeLoadedMediaSegmentsAfter}ensureDecodedForPlacementAtTime(t,e){if(!t||!Number.isFinite(e))return;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r="function"==typeof this.#X?this.#X(i):void 0;if(!r)return;const o="function"==typeof this.#Y?this.#Y(n):void 0,s=null==o?void 0:o.trackStates;s&&"function"==typeof s.get&&("function"==typeof this.#Q?this.#Q(r).filter((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)||"audio"===(null==t?void 0:t.type))):[]).forEach((n=>{var i;const r=s.get(n.id);if(!r)return;const o="function"==typeof this.#J?this.#J(n,t,e):null;if(!o)return;const a=null==n||null===(i=n.segments)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.id)===o));a&&!a.isInit&&a.retainedByteLength>0&&a.arrayBuffer&&(r.segmentDecoders&&"function"==typeof r.segmentDecoders.has&&r.segmentDecoders.has(o)||"function"!=typeof this.#Z||this.#Z(t,n,a),"video"===(null==n?void 0:n.type)&&"function"==typeof this.#tt&&this.#tt(t,n,a))}))}dispose(){}}const WI=new Set(["video","audio","image"]);function UI(t){const e=Number(t);return Number.isFinite(e)?e:0}var jI=new WeakMap,$I=new WeakMap,qI=new WeakMap,VI=new WeakMap,GI=new WeakMap,HI=new WeakMap,KI=new WeakMap,XI=new WeakMap,YI=new WeakMap,QI=new WeakMap,JI=new WeakMap,ZI=new WeakMap,tE=new WeakMap,eE=new WeakMap,nE=new WeakMap,iE=new WeakMap,rE=new WeakMap,oE=new WeakMap,sE=new WeakMap,aE=new WeakSet;class lE extends Pu{constructor(...t){super(...t),j(this,aE),W(this,jI,void 0),W(this,$I,void 0),W(this,qI,void 0),W(this,VI,void 0),W(this,GI,void 0),W(this,HI,void 0),W(this,KI,void 0),W(this,XI,void 0),W(this,YI,void 0),W(this,QI,void 0),W(this,JI,void 0),W(this,ZI,new Map),W(this,tE,new Map),W(this,eE,new Map),W(this,nE,new Map),W(this,iE,new Set),W(this,rE,0),W(this,oE,!1),W(this,sE,null);const[e,n,i]=t;U(jI,this,e),U($I,this,n),U(qI,this,i||new LI),U(VI,this,new zI({getNode:t=>L(aE,this,CE).call(this,t),getPlacementState:t=>z(ZI,this).get(t),getDecodeTracks:t=>L(aE,this,AE).call(this,t),getSegmentIdForTrackAtTime:(t,e,n)=>L(aE,this,vE).call(this,t,e,n),decodeLoadedMediaSegment:(t,e,n)=>{L(aE,this,ZE).call(this,t,e,n)},decodeLoadedMediaSegmentsAfter:(t,e,n)=>{L(aE,this,VE).call(this,t,e,n)}})),U(GI,this,new BI({getActiveRenderPlacement:t=>{var e,n;return null===(e=z($I,this))||void 0===e||null===(n=e.getActiveRenderPlacement)||void 0===n?void 0:n.call(e,t)},getPlacementsActiveAtTime:t=>{var e,n;return(null===(e=z($I,this))||void 0===e||null===(n=e.getPlacementsActiveAtTime)||void 0===n?void 0:n.call(e,t))||[]},ensureDecodedForPlacementAtTime:(t,e)=>{var n,i;null===(n=z(VI,this))||void 0===n||null===(i=n.ensureDecodedForPlacementAtTime)||void 0===i||i.call(n,t,e)}})),L(aE,this,cE).call(this),L(aE,this,IE).call(this)}get name(){return"DecodeCoordinator"}onDispose(){var t,e;z($I,this)&&"function"==typeof z($I,this).off&&z(HI,this)&&z($I,this).off(Pm.PLACEMENT_ADDED,z(HI,this)),z($I,this)&&"function"==typeof z($I,this).off&&z(KI,this)&&z($I,this).off(Pm.TIMELINE_SEEKING,z(KI,this)),z($I,this)&&"function"==typeof z($I,this).off&&z(XI,this)&&z($I,this).off(Pm.TIMELINE_SEEKED,z(XI,this)),z($I,this)&&"function"==typeof z($I,this).off&&z(YI,this)&&z($I,this).off(Pm.TIMELINE_TIME_UPDATE,z(YI,this)),z($I,this)&&"function"==typeof z($I,this).off&&z(QI,this)&&z($I,this).off(Pm.TIMELINE_RESET,z(QI,this)),L(aE,this,uE).call(this),U(HI,this,null),U(KI,this,null),U(XI,this,null),U(YI,this,null),U(QI,this,null),null!==(t=z(VI,this))&&void 0!==t&&null!==(e=t.dispose)&&void 0!==e&&e.call(t),U(VI,this,null),z(GI,this)&&"function"==typeof z(GI,this).dispose&&z(GI,this).dispose(),U(GI,this,null),z(tE,this).forEach(((t,e)=>{const n=L(aE,this,CE).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(tE,this).clear(),z(eE,this).forEach(((t,e)=>{const n=L(aE,this,CE).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(eE,this).clear(),z(nE,this).clear(),z(iE,this).clear(),L(aE,this,xE).call(this),z(ZI,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{L(aE,this,LE).call(this,t)}))})),z(ZI,this).clear()}}function cE(){z($I,this)&&"function"==typeof z($I,this).on&&(U(HI,this,(t=>{L(aE,this,EE).call(this,t)})),z($I,this).on(Pm.PLACEMENT_ADDED,z(HI,this)),U(KI,this,(t=>L(aE,this,dE).call(this,t))),z($I,this).on(Pm.TIMELINE_SEEKING,z(KI,this)),U(XI,this,(()=>L(aE,this,hE).call(this))),z($I,this).on(Pm.TIMELINE_SEEKED,z(XI,this)),U(YI,this,(t=>L(aE,this,fE).call(this,t))),z($I,this).on(Pm.TIMELINE_TIME_UPDATE,z(YI,this)),U(QI,this,(()=>L(aE,this,pE).call(this))),z($I,this).on(Pm.TIMELINE_RESET,z(QI,this))),(null==Lu?void 0:Lu.document)&&"function"==typeof Lu.document.addEventListener&&(U(JI,this,(()=>{L(aE,this,wE).call(this)})),Lu.document.addEventListener("visibilitychange",z(JI,this)))}function uE(){z(JI,this)&&null!=Lu&&Lu.document&&"function"==typeof Lu.document.removeEventListener&&Lu.document.removeEventListener("visibilitychange",z(JI,this)),U(JI,this,null)}function dE(t={}){const e=Number(null==t?void 0:t.targetTime);Number.isFinite(e)&&(z(ZI,this).forEach((t=>{const n=null==t?void 0:t.trackStates;n&&n.forEach((n=>{var i;const r=null==n||null===(i=n.track)||void 0===i?void 0:i.type;"video"!==r&&"image"!==r&&"audio"!==r||(L(aE,this,mE).call(this,n,null==t?void 0:t.placement,e),n.seekSegmentId=null)}))})),(Array.isArray(null==t?void 0:t.placements)?t.placements:[]).forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r=z(ZI,this).get(n);if(!r||!r.trackStates)return;const o=L(aE,this,CE).call(this,i);o&&(r.trackStates.forEach((n=>{const i=null==n?void 0:n.track;!i||"video"!==i.type&&"image"!==i.type&&"audio"!==i.type||L(aE,this,mE).call(this,n,r.placement||t,e)})),L(aE,this,qE).call(this,r.placement||t,o))})))}function hE(){z(ZI,this).forEach((t=>{const e=null==t?void 0:t.trackStates;e&&e.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||(t.seekSegmentId=null)}))}))}function fE(t={}){var e,n;L(aE,this,$E).call(this,null==t?void 0:t.time),null!==(e=z(GI,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,t),L(aE,this,wE).call(this),L(aE,this,BE).call(this,null==t?void 0:t.time)}function pE(){z(tE,this).forEach(((t,e)=>{const n=L(aE,this,CE).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(tE,this).clear(),z(eE,this).forEach(((t,e)=>{const n=L(aE,this,CE).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(eE,this).clear(),z(nE,this).clear(),z(iE,this).clear(),z(ZI,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{const e=null==t?void 0:t.segmentDecoders;e&&e.forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()}))}))})),z(ZI,this).clear()}function mE(t,e,n){t&&(L(aE,this,LE).call(this,t),t.seekSegmentId=L(aE,this,vE).call(this,t.track,e,n))}function vE(t,e,n){if(!t||!e||!Array.isArray(t.segments))return null;const i=Lp(e);if(!Number.isFinite(i))return null;const r=UI(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,n-i+r),s=UI(null==t?void 0:t.offset),a=Math.max(0,o-s),l="function"==typeof t.getMediaSegmentAtTime?t.getMediaSegmentAtTime(a,{preferRepresentationTime:!0}):ky(t.segments,a,{preferRepresentationTime:!0});return(null==l?void 0:l.id)||null}function gE(t){if(!t)return!1;const e=null==t?void 0:t.name;if("QuotaExceededError"===e)return!0;if("EncodingError"===e)return!0;const n="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!n.includes("Decoder failure")||!!n.includes("Codec reclaimed due to inactivity")||!("OperationError"!==e||!n.includes("initialize after flush"))}function yE(){const t=null==Lu?void 0:Lu.document;return!t||"string"!=typeof t.visibilityState||"visible"===t.visibilityState}function bE(){var t;const e=z($I,this);if(!e||"number"!=typeof e.currentTime)return!1;if(e.state===$m)return!1;const n=Date.now();if(n<z(rE,this))return!1;const i=e.currentTime;if(!Number.isFinite(i))return!1;const r="function"==typeof e.getPlacementsActiveAtTime?e.getPlacementsActiveAtTime(i):[],o=Number(null==e||null===(t=e.settings)||void 0===t?void 0:t.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a;if(Array.isArray(r)&&r.length)a=i+s;else if(a=L(aE,this,kE).call(this,i),!Number.isFinite(a))return!1;return U(rE,this,n+1500),this.log.warn("[DecodeCoordinator] attempting decoder recovery seek"),e.currentTime=a,!0}function kE(t){var e;const n=z($I,this);if(!n)return null;const i=Array.isArray(n.placements)?n.placements:[];if(!i.length)return null;const r=Number(t);if(!Number.isFinite(r))return null;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a=Number.NEGATIVE_INFINITY,l=null,c=Number.NEGATIVE_INFINITY,u=null,d=null;return i.forEach((t=>{const e=Lp(t);if(!Number.isFinite(e))return;(!Number.isFinite(d)||e<d)&&(d=e);const n=Dp(t,z(jI,this)),i=Number.isFinite(n),o=i?e+n:e;(o>e||!i)&&((o>a||!Number.isFinite(a)&&Number.isFinite(o))&&(a=o,l=e),o<=r&&o>c&&(c=o,u=i?Math.max(e,o-s):e))})),Number.isFinite(l)&&Number.isFinite(a)&&r>=a-s?l:Number.isFinite(u)?u:Number.isFinite(d)?d:null}function xE(){U(oE,this,!1),U(sE,this,null)}function wE(){z(oE,this)&&L(aE,this,yE).call(this)&&L(aE,this,bE).call(this)}function _E(t){if(!L(aE,this,gE).call(this,t))return;const e=z($I,this);e&&"number"==typeof e.currentTime&&(U(oE,this,!0),U(sE,this,t),L(aE,this,yE).call(this)&&L(aE,this,bE).call(this))}function TE(t){var e;return!!t&&(Array.isArray(null===(e=z($I,this))||void 0===e?void 0:e.placements)?z($I,this).placements:[]).includes(t)}function IE(t){var e;(Array.isArray(null===(e=z($I,this))||void 0===e?void 0:e.placements)?[...z($I,this).placements]:[]).filter((e=>"function"!=typeof t||t(e))).sort(((t,e)=>{const n=Lp(t),i=Lp(e);return(Number.isFinite(n)?n:Number.POSITIVE_INFINITY)-(Number.isFinite(i)?i:Number.POSITIVE_INFINITY)})).forEach((t=>{L(aE,this,EE).call(this,t)}))}async function EE(t){if(!t||!t.placementId||z(ZI,this).has(t.placementId))return;if(!L(aE,this,TE).call(this,t))return;const e=t.nodeId;if(!e||!z(jI,this)||"function"!=typeof z(jI,this).get)return;const n=L(aE,this,CE).call(this,e);if(n){if(n.state&&"ready"!==n.state){if("function"==typeof n.resolve)try{await n.resolve()}catch(n){if(!L(aE,this,TE).call(this,t))return;return void this.log.warn(`[#processPlacement] Failed to resolve node ${e}`,n)}if(!L(aE,this,TE).call(this,t))return;if("ready"!==n.state)return}if(L(aE,this,jE).call(this,t))return L(aE,this,UE).call(this,t,n),void z(iE,this).add(t.placementId);L(aE,this,WE).call(this,t,n)}}function SE(t){return L(aE,this,AE).call(this,t).every((t=>L(aE,this,zE).call(this,t)))}function AE(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>WI.has(null==t?void 0:t.type)))}function NE(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(tE,this).has(t.id))return;const e=()=>{L(aE,this,GE).call(this,t.id)};t.on("node:loaded",e),z(tE,this).set(t.id,e)}function ME(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(eE,this).has(t.id))return;const e=t=>L(aE,this,HE).call(this,t);t.on("segment:chunk",e),z(eE,this).set(t.id,e)}function FE(t,e){if(!t||!e)return;const n=z(nE,this).get(t)||new Set;n.add(e),z(nE,this).set(t,n)}function OE(t){return z(nE,this).get(t)||new Set}function CE(t){if(t&&z(jI,this)&&"function"==typeof z(jI,this).get)return z(jI,this).get(t)}function PE(t){if(!t)return;const e=t.fullBufferRetryTimer;null!=e&&("function"==typeof(null==Lu?void 0:Lu.clearTimeout)?Lu.clearTimeout.bind(Lu):clearTimeout)(e),t.fullBufferRetryTimer=null,t.fullBufferDecodeScheduled=!1,t.fullBufferRetryAttempts=0}function DE(t){const e=null==t?void 0:t.segmentStates;e&&"function"==typeof e.forEach&&e.forEach((t=>{L(aE,this,PE).call(this,t)}))}function RE(t,e,n,i){var r,o;if(!(t&&e&&n&&i))return!1;const s=z(ZI,this).get(t),a=null==s||null===(r=s.trackStates)||void 0===r?void 0:r.get(e);return(null==a||null===(o=a.segmentStates)||void 0===o?void 0:o.get(n))===i}function LE(t){if(!t)return;L(aE,this,DE).call(this,t);const e=t.segmentDecoders;e&&"function"==typeof e.forEach&&(e.forEach((t=>{if(t&&"function"==typeof t.dispose)try{t.dispose()}catch(t){}})),"function"==typeof e.clear&&e.clear()),t.segmentStates&&"function"==typeof t.segmentStates.clear&&t.segmentStates.clear(),t.ready=!1,t.seekSegmentId=null}function BE(t){const e=UI(t);if(!Number.isFinite(e))return;const n=e-2;Number.isFinite(n)&&z(ZI,this).forEach((t=>{const e=null==t?void 0:t.placement;if(!e)return;const i=Lp(e),r=Dp(e,z(jI,this),{allowUnready:!0});if(!Number.isFinite(i)||!Number.isFinite(r))return;const o=i+r;if(!Number.isFinite(o)||o>n)return;const s=null==t?void 0:t.trackStates;s&&"function"==typeof s.forEach&&s.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||L(aE,this,LE).call(this,t)}))}))}function zE(t){if(!t||!Array.isArray(t.segments))return!1;const e=t.segments.find((t=>null==t?void 0:t.isInit));if(e&&!(e.retainedByteLength>0))return!1;const n=t.segments.find((t=>t&&!t.isInit));return!n||n.retainedByteLength>0}function WE(t,e){if(this.log.debug(`[#startDecode] [${t.placementId}] [${e.id}] Starting decode`),L(aE,this,UE).call(this,t,e)){if(L(aE,this,FE).call(this,e.id,t.placementId),!L(aE,this,SE).call(this,e))return L(aE,this,NE).call(this,e),void L(aE,this,ME).call(this,e);L(aE,this,qE).call(this,t,e),L(aE,this,ME).call(this,e)}}function UE(t,e){if(!t||!t.placementId||!e)return;const n=z(ZI,this).get(t.placementId);if(n)return n.placement=t,n;const i=L(aE,this,AE).call(this,e),r=new Map;i.forEach((n=>{try{const t=n.segments.some((t=>null==t?void 0:t.isInit));r.set(n.id,{hasInit:t,track:n,ready:!1,segmentDecoders:new Map,segmentStates:new Map})}catch(i){this.trigger(Pm.DECODE_ERROR,Lm({placementId:t.placementId,nodeId:e.id,trackId:null==n?void 0:n.id,trackType:null==n?void 0:n.type,error:i}))}}));const o={trackStates:r,nodeId:e.id,placement:t};return z(ZI,this).set(t.placementId,o),o}function jE(t){var e;const n=Lp(t),i=UI(null===(e=z($I,this))||void 0===e?void 0:e.currentTime);return!Number.isFinite(n)||!!Number.isFinite(i)&&n-i>2}function $E(t){if(!z(iE,this).size)return;const e=UI(t);if(!Number.isFinite(e))return;const n=[];z(iE,this).forEach((t=>{const i=z(ZI,this).get(t),r=null==i?void 0:i.placement;if(!r)return void n.push(t);const o=Lp(r);Number.isFinite(o)&&o-e<=2&&n.push(t)})),n.forEach((t=>{z(iE,this).delete(t);const e=z(ZI,this).get(t),n=null==e?void 0:e.placement;if(!n)return;const i=L(aE,this,CE).call(this,n.nodeId);i&&L(aE,this,WE).call(this,n,i)}))}function qE(t,e){const n=z(ZI,this).get(t.placementId);n&&L(aE,this,AE).call(this,e).forEach((i=>{const r=n.trackStates.get(i.id);if(r&&!r.ready)try{let n;if(r.seekSegmentId&&(n=i.segments.find((t=>t&&!t.isInit&&t.id===r.seekSegmentId&&t.retainedByteLength>0)),!n))return;if(n||(n=i.segments.find((t=>t&&!t.isInit&&t.retainedByteLength>0))),!n)return;L(aE,this,ZE).call(this,t,i,n),r.seekSegmentId&&"video"===(null==i?void 0:i.type)&&L(aE,this,VE).call(this,t,i,n),r.ready=!0,this.trigger(Pm.DECODE_READY,Rm({placementId:t.placementId,nodeId:e.id,trackId:i.id,trackType:i.type}))}catch(n){this.trigger(Pm.DECODE_ERROR,Lm({placementId:t.placementId,nodeId:e.id,trackId:null==i?void 0:i.id,trackType:null==i?void 0:i.type,error:n}))}}))}function VE(t,e,n){var i;if(!(t&&e&&n&&Array.isArray(e.segments)))return;const r=null==t?void 0:t.placementId,o=r?z(ZI,this).get(r):void 0,s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id),a=null==s?void 0:s.segmentDecoders;if(!a||"function"!=typeof a.has)return;const l=e.segments,c=l.findIndex((t=>(null==t?void 0:t.id)===n.id));if(c<0)return;let u=0;for(let n=c+1;n<l.length;n+=1){const i=l[n];if(!i||i.isInit)continue;if(a.has(i.id))continue;if(!(i.retainedByteLength>0))break;const r=i.arrayBuffer;if(!r||"number"!=typeof r.byteLength||r.byteLength<=0)break;if(L(aE,this,ZE).call(this,t,e,i),u+=1,u>=2)break}}function GE(t){const e=L(aE,this,CE).call(this,t);e&&L(aE,this,SE).call(this,e)&&L(aE,this,OE).call(this,t).forEach((t=>{const n=z(ZI,this).get(t);L(aE,this,qE).call(this,(null==n?void 0:n.placement)||{placementId:t},e)}))}function HE(t){t&&t.nodeId&&t.trackId&&t.chunk&&L(aE,this,OE).call(this,t.nodeId).forEach((e=>L(aE,this,KE).call(this,e,t)))}function KE(t,e){const n=z(ZI,this).get(t);if(!n)return;const i=n.trackStates.get(e.trackId);if(i)try{var r,o;if(e.isInit)return;const s=i.track,a=null==s||null===(r=s.segments)||void 0===r?void 0:r.find((t=>(null==t?void 0:t.id)===e.segmentId));if(!a||a.isInit)return;if("image"===(null==s?void 0:s.type))return void(!i.ready&&a.retainedByteLength>0&&L(aE,this,ZE).call(this,n.placement,s,a)&&(i.ready=!0,this.trigger(Pm.DECODE_READY,Rm({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType}))));if((null===(o=z($I,this))||void 0===o?void 0:o.state)===$m&&i.seekSegmentId&&("video"===(null==s?void 0:s.type)||"audio"===(null==s?void 0:s.type))&&a.id!==i.seekSegmentId)return;const l=a.id,c=i.segmentStates.get(l)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};i.segmentStates.set(l,c);const u=L(aE,this,QE).call(this,n.placement,s,a);if(!u||"function"!=typeof u.decodeChunk)return;if(i.hasInit&&!c.initSent){const t=L(aE,this,JE).call(this,s,a);if(!t)return void c.pendingChunks.push({chunk:e.chunk,loaded:e.loaded,total:e.total});u.decodeChunk(t,{isInit:!0}),c.initSent=!0,c.pendingChunks.length&&(c.pendingChunks.forEach((t=>{u.decodeChunk(t.chunk,{isInit:!1,loaded:t.loaded,total:t.total})})),c.pendingChunks=[])}const d="number"==typeof e.loaded&&"number"==typeof e.total&&e.total>0&&e.loaded>=e.total;L(aE,this,XE).call(this,c,e)?d&&!c.ended&&L(aE,this,YE).call(this,n.placement,s,a,c):(u.decodeChunk(e.chunk,{isInit:!1,loaded:e.loaded,total:e.total}),d&&!c.ended&&"function"==typeof u.endOfStream&&(c.ended=!0,u.endOfStream())),i.ready||(i.ready=!0,this.trigger(Pm.DECODE_READY,Rm({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType})))}catch(n){this.trigger(Pm.DECODE_ERROR,Lm({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType,error:n}))}}function XE(t,e){var n;if(!t||t.missedSegmentPrefix)return!(null==t||!t.missedSegmentPrefix);if(t.firstChunkObserved)return!1;t.firstChunkObserved=!0;const i=Number(null==e?void 0:e.loaded),r=Number(null==e||null===(n=e.chunk)||void 0===n?void 0:n.byteLength);return!(!Number.isFinite(i)||!Number.isFinite(r)||r<=0)&&(t.missedSegmentPrefix=i>r,t.missedSegmentPrefix)}function YE(t,e,n,i){if(!t||!e||!n||!i||i.fullBufferDecodeScheduled)return;const r=null==t?void 0:t.placementId,o=null==e?void 0:e.id,s=null==n?void 0:n.id;if(!r||!o||!s)return;const a="function"==typeof(null==Lu?void 0:Lu.setTimeout)?Lu.setTimeout.bind(Lu):setTimeout;i.fullBufferDecodeScheduled=!0,i.fullBufferRetryAttempts=0;const l=()=>{if(!L(aE,this,RE).call(this,r,o,s,i)||i.ended)return void L(aE,this,PE).call(this,i);if(L(aE,this,ZE).call(this,t,e,n))return void L(aE,this,PE).call(this,i);i.fullBufferRetryAttempts+=1;const c=i.fullBufferRetryAttempts<=8?0:50;i.fullBufferRetryTimer=a((()=>{l()}),c)};i.fullBufferRetryTimer=a((()=>{l()}),0)}function QE(t,e,n){var i,r;const o=null==t?void 0:t.placementId;if(!o||!e||!n)return;const s=z(ZI,this).get(o),a=null==s||null===(i=s.trackStates)||void 0===i?void 0:i.get(e.id);if(!a)return;const l=a.segmentDecoders.get(n.id);if(l)return l;const c=z(qI,this).create(e);if(c&&"function"==typeof c.configure&&c.configure(e),c&&"function"==typeof c.setNodeId&&c.setNodeId(null==t?void 0:t.nodeId),c&&"function"==typeof c.setSegment&&c.setSegment(n),c&&"function"==typeof c.setCurrentTimeProvider&&c.setCurrentTimeProvider((()=>{var t;return"number"==typeof(null===(t=z($I,this))||void 0===t?void 0:t.currentTime)?z($I,this).currentTime:0})),c&&"function"==typeof c.setTimeOffsetSeconds){var u,d;const i=Lp(t),r=UI(null==e?void 0:e.offset),o=UI(null!==(u=null==n||null===(d=n.chosenRepresentation)||void 0===d?void 0:d.segStart)&&void 0!==u?u:null==n?void 0:n.offset);Number.isFinite(i)&&c.setTimeOffsetSeconds(i+r+o)}return c&&"function"==typeof c.setSeekTargetTimeSeconds&&(null===(r=z($I,this))||void 0===r?void 0:r.state)===$m&&"video"===(null==e?void 0:e.type)&&c.setSeekTargetTimeSeconds(z($I,this).currentTime),c&&"function"==typeof c.on&&(c.on(Pm.DECODER_FRAME,(i=>{i&&(!z(oE,this)||"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(U(oE,this,!1),U(sE,this,null)),z($I,this)&&"function"==typeof z($I,this).notifyDecodedFrame&&(i.frame||i.data)&&z($I,this).notifyDecodedFrame({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,frame:i.frame,data:i.data}))})),c.on(Pm.DECODER_AUDIO,(i=>{i&&i.audioBuffer&&this.trigger(Pm.DECODER_AUDIO,Rm({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,audioBuffer:i.audioBuffer}))})),c.on(Pm.DECODER_ERROR,(i=>{const r=(null==i?void 0:i.error)||i;this.trigger(Pm.DECODER_ERROR,Lm({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,error:r})),L(aE,this,_E).call(this,r)}))),a.segmentDecoders.set(n.id,c),c}function JE(t,e){var n,i;if(!t||!e||!Array.isArray(t.segments))return;const r=t.segments.find((t=>null==t?void 0:t.isInit));if(!r||"function"!=typeof r.getRepresentationBuffer)return;const o=(null==e||null===(n=e.chosenRepresentation)||void 0===n?void 0:n.id)||(null==e||null===(i=e.representations)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.id);if(!o)return;const s=r.getRepresentationBuffer(o);return s?s instanceof Uint8Array?s:new Uint8Array(s):void 0}function ZE(t,e,n){var i;if(!t||!e||!n)return!1;const r=t.placementId,o=z(ZI,this).get(r),s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id);if(!s)return!1;const a=L(aE,this,QE).call(this,t,e,n);if(!a||"function"!=typeof a.decodeChunk)return!1;const l=s.segmentStates.get(n.id)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};if(s.segmentStates.set(n.id,l),l.ended)return L(aE,this,PE).call(this,l),!0;if(s.hasInit&&!l.initSent){const t=L(aE,this,JE).call(this,e,n);if(!t)return!1;a.decodeChunk(t,{isInit:!0}),l.initSent=!0}const c=n.arrayBuffer;return!(!c||"number"!=typeof c.byteLength||c.byteLength<=0||(a.decodeChunk(new Uint8Array(c),{isInit:!1,loaded:c.byteLength,total:c.byteLength}),l.ended||"function"!=typeof a.endOfStream||(l.ended=!0,a.endOfStream()),L(aE,this,PE).call(this,l),0))}const tS=1e-6;var eS=new WeakMap,nS=new WeakMap,iS=new WeakMap,rS=new WeakMap,oS=new WeakMap,sS=new WeakMap,aS=new WeakMap,lS=new WeakMap,cS=new WeakSet;class uS extends Pu{get name(){return"TransitionManager"}get defaults(){return{durationSeconds:.5}}constructor(t,e,n){super(n),j(this,cS),W(this,eS,void 0),W(this,nS,void 0),W(this,iS,null),W(this,rS,null),W(this,oS,null),W(this,sS,0),W(this,aS,[]),W(this,lS,null),U(eS,this,t),U(nS,this,e),z(eS,this)&&"function"==typeof z(eS,this).on&&(U(lS,this,(()=>L(cS,this,bS).call(this))),z(eS,this).on(Pm.TIMELINE_RESET,z(lS,this)))}transitionTo(t,e={}){const n=Number(t);if(!Number.isFinite(n))throw new Error("TransitionManager.transitionTo requires a numeric time");L(cS,this,bS).call(this);const i=L(cS,this,dS).call(this),r=L(cS,this,mS).call(this,n,e);return r?L(cS,this,vS).call(this,n,e,i,r):Promise.resolve()}onDispose(){z(eS,this)&&"function"==typeof z(eS,this).off&&z(lS,this)&&z(eS,this).off(Pm.TIMELINE_RESET,z(lS,this)),U(lS,this,null),L(cS,this,bS).call(this),U(nS,this,null),U(eS,this,null)}}function dS(){return U(sS,this,z(sS,this)+1),z(sS,this)}function hS(t={}){var e;const n=Number(null==t?void 0:t.duration),i=Number(null===(e=this.settings)||void 0===e?void 0:e.durationSeconds);return Number.isFinite(n)?n:i}function fS(t={},e){return{duration:e,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition}}function pS(t,e){const n=1e3*t,i=Number.isFinite(Number(null==e?void 0:e.outDurationMs))&&e.outDurationMs>0?e.outDurationMs:n;return{outDurationMs:i,inDurationMs:Number.isFinite(Number(null==e?void 0:e.inDurationMs))&&e.inDurationMs>0?e.inDurationMs:i}}function mS(t,e={}){var n;const i=z(nS,this),r=L(cS,this,hS).call(this,e);if(!i||"function"!=typeof i.startTransition)return z(eS,this).currentTime=t,null;if(!(r>0))return z(eS,this).currentTime=t,null!==(n=i.resetTransition)&&void 0!==n&&n.call(i),null;const o=L(cS,this,fS).call(this,e,r);"function"==typeof(null==e?void 0:e.onTransitionInStart)&&e.onTransitionInStart();const s=i.startTransition(o),{outDurationMs:a,inDurationMs:l}=L(cS,this,pS).call(this,r,s);return{renderer:i,transitionOptions:o,outDurationMs:a,inDurationMs:l,shouldWaitForFrames:!1!==(null==e?void 0:e.waitForVisualFrames)}}function vS(t,e={},n,i){const{renderer:r,transitionOptions:o,outDurationMs:s,inDurationMs:a,shouldWaitForFrames:l}=i,c=L(cS,this,TS).call(this,t,e,n),u=l?L(cS,this,IS).call(this,t,n):Promise.resolve();let d=!1,h=!1,f=!1,p=!l;const m=()=>{var t;L(cS,this,kS).call(this,n)&&!f&&d&&h&&p&&(f=!0,"function"==typeof(null==e?void 0:e.onTransitionInEnd)&&e.onTransitionInEnd(),"function"==typeof(null==e?void 0:e.onTransitionOutStart)&&e.onTransitionOutStart(),null!==(t=r.beginTransitionIn)&&void 0!==t&&t.call(r,o),U(rS,this,setTimeout((()=>{var t;L(cS,this,kS).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),"function"==typeof(null==e?void 0:e.onTransitionOutEnd)&&e.onTransitionOutEnd(),L(cS,this,gS).call(this))}),a)))};return U(iS,this,setTimeout((()=>{d=!0,m()}),s)),c.then((()=>{h=!0,m()})).catch((()=>{var t;L(cS,this,kS).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),L(cS,this,gS).call(this))})),u.then((()=>{p=!0,m()})).catch((()=>{p=!0,m()})),z(eS,this).currentTime=t,new Promise((t=>{U(oS,this,t)}))}function gS(){const t=z(oS,this);U(oS,this,null),L(cS,this,yS).call(this),L(cS,this,_S).call(this),t&&t()}function yS(){z(iS,this)&&clearTimeout(z(iS,this)),z(rS,this)&&clearTimeout(z(rS,this)),U(iS,this,null),U(rS,this,null)}function bS(){var t,e;z(nS,this)&&null!==(t=(e=z(nS,this)).resetTransition)&&void 0!==t&&t.call(e),L(cS,this,yS).call(this),L(cS,this,_S).call(this),z(oS,this)&&(z(oS,this).call(this),U(oS,this,null))}function kS(t){return z(sS,this)===t}function xS(t,e){z(eS,this)&&"function"==typeof z(eS,this).on&&(z(eS,this).on(t,e),z(aS,this).push({eventName:t,handler:e}))}function wS(t,e){z(eS,this)&&"function"==typeof z(eS,this).off&&(z(eS,this).off(t,e),U(aS,this,z(aS,this).filter((n=>n.eventName!==t||n.handler!==e))))}function _S(){z(eS,this)&&"function"==typeof z(eS,this).off?(z(aS,this).forEach((t=>{z(eS,this).off(t.eventName,t.handler)})),U(aS,this,[])):U(aS,this,[])}function TS(t,e,n){const i=null==e?void 0:e.transitionOutPromise;if(i&&"function"==typeof i.then)return i;if("function"==typeof i)try{const t=i();if(t&&"function"==typeof t.then)return t}catch(t){return Promise.resolve()}if(!z(eS,this)||"function"!=typeof z(eS,this).on)return Promise.resolve();const r=L(cS,this,ES).call(this);return new Promise((e=>{let i=!1;const o=r?Pm.TIMELINE_SEEKED:"nodestart";let s,a;const l=()=>{L(cS,this,wS).call(this,Pm.TIMELINE_SEEKING,s),L(cS,this,wS).call(this,o,a),e()};s=(e={})=>{L(cS,this,kS).call(this,n)?L(cS,this,SS).call(this,e,t)&&(i=!0):l()},a=(e={})=>{L(cS,this,kS).call(this,n)?(o!==Pm.TIMELINE_SEEKED||L(cS,this,SS).call(this,e,t))&&(o===Pm.TIMELINE_SEEKED||i)&&l():l()},L(cS,this,xS).call(this,Pm.TIMELINE_SEEKING,s),L(cS,this,xS).call(this,o,a)}))}function IS(t,e){if(!z(eS,this)||"function"!=typeof z(eS,this).on)return Promise.resolve();const n=Number(t);return new Promise((t=>{const i=(r={})=>{if(!L(cS,this,kS).call(this,e))return L(cS,this,wS).call(this,Pm.VISUAL_FRAMES_AVAILABLE,i),void t();const o=Number(null==r?void 0:r.time);Number.isFinite(n)&&Number.isFinite(o)&&o+tS<n||(Array.isArray(null==r?void 0:r.frames)?r.frames:[]).length&&(L(cS,this,wS).call(this,Pm.VISUAL_FRAMES_AVAILABLE,i),t())};L(cS,this,xS).call(this,Pm.VISUAL_FRAMES_AVAILABLE,i)}))}function ES(){var t,e;const n=null===(t=z(eS,this))||void 0===t?void 0:t.state;if(n===jm||n===Bm)return!0;const i=null===(e=z(eS,this))||void 0===e?void 0:e.placements;return!Array.isArray(i)||0===i.length}function SS(t,e){const n=Number(null==t?void 0:t.targetTime);return!Number.isFinite(n)||Math.abs(n-e)<tS}function AS(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}var NS=new WeakMap,MS=new WeakMap,FS=new WeakMap,OS=new WeakMap,CS=new WeakMap,PS=new WeakMap,DS=new WeakMap,RS=new WeakMap,LS=new WeakMap,BS=new WeakMap,zS=new WeakMap,WS=new WeakMap,US=new WeakMap,jS=new WeakMap,$S=new WeakSet;class qS extends Pu{get name(){return"AudioPlaybackManager"}get defaults(){return{muted:!1,volume:1,lookaheadSeconds:1}}constructor(t,e,n){super(n),j(this,$S),W(this,NS,void 0),W(this,MS,void 0),W(this,FS,null),W(this,OS,null),W(this,CS,[]),W(this,PS,new Set),W(this,DS,new Map),W(this,RS,!1),W(this,LS,1),W(this,BS,!0),W(this,zS,null),W(this,WS,null),W(this,US,null),W(this,jS,null),U(NS,this,t),U(MS,this,e),U(RS,this,!!this.settings.muted),U(LS,this,Cp(this.settings.volume));const i=Array.isArray(null==n?void 0:n.disabledTracks)?n.disabledTracks:[];U(BS,this,!i.includes("audio")),L($S,this,VS).call(this)}get muted(){return z(RS,this)}set muted(t){U(RS,this,!!t),L($S,this,nA).call(this)}get volume(){return z(LS,this)}set volume(t){U(LS,this,Cp(t)),L($S,this,nA).call(this)}handleDecodedAudio(t={}){if(!z(BS,this))return;const e=null==t?void 0:t.audioBuffer,n=null==t?void 0:t.placementId,i=null==t?void 0:t.segmentId,r=AS(null==t?void 0:t.pts,null);if(!(e&&n&&i&&Number.isFinite(r)))return;const o=Number.isFinite(null==t?void 0:t.duration)?t.duration:e.duration,s=`${n}:${i}`;z(PS,this).has(s)||(z(CS,this).push({key:s,placementId:n,pts:r,duration:o,audioBuffer:e}),z(CS,this).sort(((t,e)=>t.pts-e.pts)),L($S,this,YS).call(this))}onDispose(){L($S,this,GS).call(this),L($S,this,tA).call(this,!0),z(FS,this)&&"function"==typeof z(FS,this).close&&z(FS,this).close(),U(FS,this,null),U(OS,this,null),U(NS,this,null),U(MS,this,null)}}function VS(){z(NS,this)&&"function"==typeof z(NS,this).on&&(U(zS,this,(t=>L($S,this,HS).call(this,t))),z(NS,this).on(Pm.TIMELINE_TIME_UPDATE,z(zS,this)),U(WS,this,(t=>L($S,this,KS).call(this,t))),z(NS,this).on(Pm.TIMELINE_STATE_CHANGE,z(WS,this)),U(jS,this,(()=>L($S,this,XS).call(this))),z(NS,this).on(Pm.TIMELINE_RESET,z(jS,this))),z(MS,this)&&"function"==typeof z(MS,this).on&&(U(US,this,(t=>this.handleDecodedAudio(t))),z(MS,this).on(Pm.DECODER_AUDIO,z(US,this)))}function GS(){z(NS,this)&&"function"==typeof z(NS,this).off&&(z(zS,this)&&z(NS,this).off(Pm.TIMELINE_TIME_UPDATE,z(zS,this)),z(WS,this)&&z(NS,this).off(Pm.TIMELINE_STATE_CHANGE,z(WS,this)),z(jS,this)&&z(NS,this).off(Pm.TIMELINE_RESET,z(jS,this))),z(MS,this)&&"function"==typeof z(MS,this).off&&z(US,this)&&z(MS,this).off(Pm.DECODER_AUDIO,z(US,this)),U(zS,this,null),U(WS,this,null),U(US,this,null),U(jS,this,null)}function HS(){L($S,this,YS).call(this)}function KS(t={}){const e=null==t?void 0:t.to;if(e)return e===zm?(L($S,this,iA).call(this),void L($S,this,YS).call(this)):void(e!==jm&&e!==Um?e!==$m&&e!==qm||L($S,this,XS).call(this):L($S,this,rA).call(this))}function XS(){L($S,this,rA).call(this),L($S,this,tA).call(this,!0),U(CS,this,[])}function YS(){if(!z(BS,this)||!z(NS,this))return;if(z(NS,this).state!==zm)return;const t=L($S,this,eA).call(this);if(!t)return;const e=AS(z(NS,this).currentTime,0),n=e+Math.max(0,AS(this.settings.lookaheadSeconds,1)),i=[];for(let r=0;r<z(CS,this).length;r+=1){const o=z(CS,this)[r];o&&(o.pts>n?i.push(o):L($S,this,QS).call(this,o)&&L($S,this,ZS).call(this,o,t,e))}U(CS,this,i)}function QS(t){if(!t||!z(NS,this))return!1;const e=L($S,this,JS).call(this,t.pts);return!(!e||e!==t.placementId)}function JS(t){if(!z(NS,this)||"function"!=typeof z(NS,this).getPlacementsActiveAtTime)return null;const e=z(NS,this).getPlacementsActiveAtTime(t);if(!Array.isArray(e)||!e.length)return null;const n=e.find((t=>null==t?void 0:t.placementId));return n?n.placementId:null}function ZS(t,e,n){const i=t.key;if(z(PS,this).has(i))return;const r=t.audioBuffer;if(!r)return;const o=Number.isFinite(t.duration)?t.duration:r.duration,s=t.pts;if(!Number.isFinite(s))return;const a=n-s;if(Number.isFinite(o)&&o>0&&a>=o)return;const l=e.createBufferSource();l.buffer=r,l.connect(z(OS,this));let c=e.currentTime,u=0;a>0?u=a:a<0&&(c=e.currentTime+Math.abs(a));try{l.start(c,u)}catch(t){return void this.log.warn("[AudioPlaybackManager] Failed to start audio buffer",t)}z(PS,this).add(i),z(DS,this).set(i,l),l.onended=()=>{z(DS,this).delete(i)}}function tA(t){z(DS,this).forEach(((t,e)=>{if(t&&"function"==typeof t.stop)try{t.stop()}catch(t){}z(DS,this).delete(e)})),t&&z(PS,this).clear()}function eA(){if(z(FS,this))return z(FS,this);const t=Lu.AudioContext||Lu.webkitAudioContext;if(!t)return this.log.warn("[AudioPlaybackManager] AudioContext is not available."),null;try{return U(FS,this,new t),U(OS,this,z(FS,this).createGain()),z(OS,this).connect(z(FS,this).destination),L($S,this,nA).call(this),z(FS,this)}catch(t){return this.log.warn("[AudioPlaybackManager] Failed to initialize AudioContext",t),U(FS,this,null),U(OS,this,null),null}}function nA(){if(!z(OS,this))return;const t=z(RS,this)?0:z(LS,this);z(OS,this).gain.value=t}function iA(){z(FS,this)&&"function"==typeof z(FS,this).resume&&"suspended"===z(FS,this).state&&z(FS,this).resume().catch((()=>{}))}function rA(){z(FS,this)&&"function"==typeof z(FS,this).suspend&&"running"===z(FS,this).state&&z(FS,this).suspend().catch((()=>{}))}var oA=new WeakMap,sA=new WeakMap,aA=new WeakMap,lA=new WeakMap,cA=new WeakMap,uA=new WeakSet;class dA extends Pu{constructor(...t){super(...t),j(this,uA),W(this,oA,void 0),W(this,sA,void 0),W(this,aA,void 0),W(this,lA,void 0),W(this,cA,void 0),U(oA,this,L(uA,this,fA).call(this,this.settings.currentTime)),U(sA,this,L(uA,this,pA).call(this,this.settings.playbackRate)),U(aA,this,null),U(lA,this,!1),U(cA,this,L(uA,this,hA).bind(this))}get name(){return"PlaybackClock"}get defaults(){return{currentTime:0,playbackRate:Zg("playbackRate")}}get currentTime(){return z(oA,this)}get playbackRate(){return z(sA,this)}set playbackRate(t){U(sA,this,L(uA,this,pA).call(this,t))}play(){z(lA,this)||(U(lA,this,!0),U(aA,this,Rg()),bk(z(cA,this),0))}pause(){z(lA,this)&&(U(lA,this,!1),kk(z(cA,this)))}seek(t){U(oA,this,L(uA,this,fA).call(this,t)),U(aA,this,Rg())}reset(){this.pause(),U(oA,this,0),U(aA,this,null)}onDispose(){this.pause(),U(cA,this,null)}}function hA(){const t=Rg();if(null===z(aA,this))return U(aA,this,t),void this.trigger(Pm.CLOCK_TICK,{currentTime:z(oA,this)});const e=t-z(aA,this);U(aA,this,t);const n=e/1e3;U(oA,this,z(oA,this)+n*z(sA,this)),this.trigger(Pm.CLOCK_TICK,{currentTime:z(oA,this)})}function fA(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<0?0:t}function pA(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<=0?z(sA,this)||1:t}var mA=new WeakMap,vA=new WeakSet;class gA extends Pu{constructor(...t){super(...t),j(this,vA),W(this,mA,new Map)}get name(){return"TrackBuffers"}get defaults(){return{}}refreshNode(t){if(!t||!Array.isArray(t.tracks))return;const e=t.id,n=z(mA,this).get(e)||new Map;z(mA,this).set(e,n),t.tracks.forEach((t=>{const i=null==t?void 0:t.type;if(!i)return;const r=t.buffered,o=n.get(i),s=!!o&&o.ready,a=(l=r)&&Number.isFinite(l.start)&&Number.isFinite(l.end)&&l.end>l.start;var l,c,u;u=r,!(c=null==o?void 0:o.range)&&!u||c&&u&&c.start===u.start&&c.end===u.end?o&&o.ready!==a&&n.set(i,{range:r,ready:a}):(n.set(i,{range:r,ready:a}),this.trigger(Pm.TRACK_BUFFER_UPDATE,{nodeId:e,trackType:i,range:r})),!s&&a?this.trigger(Pm.TRACK_READY,{nodeId:e,trackType:i,range:r}):s&&!a&&this.trigger(Pm.TRACK_UNDERFLOW,{nodeId:e,trackType:i,range:r})}))}getTrackRange(t,e){const n=z(mA,this).get(t),i=null==n?void 0:n.get(e);return null==i?void 0:i.range}computeBuffered(t=[],e=0,n){if(!n||"function"!=typeof n.get)return;const i=Number.isFinite(e)?e:0;let r,o,s=!1;for(let e=0;e<t.length;e+=1){const a=L(vA,this,bA).call(this,n,t[e],i);if(!a||a.end<=i)continue;if(void 0===r){r=a.start,o=a.end,s=a.full;continue}const l=a.start<=o,c=s&&a.full;if(!l&&!c)break;o=Math.max(o,a.end),s=a.full}return void 0===r||void 0===o?{start:0,end:0}:{start:r,end:o}}get buffered(){return z(mA,this)}reset(){z(mA,this).clear()}onDispose(){z(mA,this).clear(),"function"==typeof this.off&&this.off()}}function yA(t,e=0){const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[],i=[];for(let t=0;t<n.length;t+=1){const e=n[t];if(!e||e.isInit)continue;const r=Number(e.duration),o=Number(e.offset),s=Number(e.bufferedRatio);if(!Number.isFinite(r)||r<=0||!Number.isFinite(o)||s<=0)continue;const a=o+r*Math.min(1,s);!Number.isFinite(a)||a<=o||i.push({start:o,end:a})}if(!i.length)return;i.sort(((t,e)=>t.start-e.start));const r=[i[0]];for(let t=1;t<i.length;t+=1){const e=i[t],n=r[r.length-1];e.start<=n.end+.001?n.end=Math.max(n.end,e.end):r.push({...e})}const o=Number.isFinite(e)?e:0;for(let t=0;t<r.length;t+=1){const e=r[t];if(e.end>o+.001)return e}}function bA(t,e,n=0){var i,r;const o=Lp(e);if(!Number.isFinite(o))return;const s=t.get(e.nodeId);if(!s)return;const a=Array.isArray(s.tracks)?s.tracks:[];if(!a.length){const t=s.buffered;if(!t||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;return L(vA,this,kA).call(this,s,t,o,e)}const l=s.mainTrackId,c=Number.isFinite(e.nodeOffsetOverride)?e.nodeOffsetOverride:0,u=Math.max(0,n-o+c);let d;l&&(d=a.find((t=>(null==t?void 0:t.id)===l))),(null===(i=d)||void 0===i?void 0:i.type)||(d=a.find((t=>null==t?void 0:t.type)));const h=L(vA,this,yA).call(this,d,u)||(null===(r=d)||void 0===r?void 0:r.buffered);return h&&Number.isFinite(h.start)&&Number.isFinite(h.end)?L(vA,this,kA).call(this,s,h,o,e):void 0}function kA(t,e,n,i){const r=Number.isFinite(i.nodeOffsetOverride)?i.nodeOffsetOverride:0;let o=e.start-r+n,s=e.end-r+n;const a=t.duration,l=Number.isFinite(i.nodeDurationOverride)?i.nodeDurationOverride:a;if(Number.isFinite(l)){const t=n+l;s=Math.min(s,t);const e=o<=n&&s>=t;if(o=Math.max(o,n),!(s>o))return;return{start:o,end:s,full:e}}if(o=Math.max(o,n),s>o)return{start:o,end:s,full:!1}}class xA{constructor(t={}){const{placementId:e,nodeId:n,offset:i,offsetPending:r=!1,offsetAnchorPlacementId:o,offsetEndSeconds:s,offsetAnchorEdge:a,offsetAnchorIsReference:l,nodeOffsetOverride:c,nodeDurationOverride:u,loop:d=!1,loopRootPlacementId:h,loopRootOffset:f}=t;if(!e)throw new Error("Placement requires placementId");if(!n)throw new Error("Placement requires nodeId");this.placementId=e,this.nodeId=n;const p=Number.isFinite(i)?i:0;this.offsetPending=!0===r,this.offsetAnchorPlacementId=o,this.offsetAnchorEdge=a,this.offsetAnchorIsReference=l,this.offsetEndSeconds=Number.isFinite(s)?s:void 0,this.offset=this.offsetPending?void 0:p,this.nodeOffsetOverride=c,this.nodeDurationOverride=u,this.loop=!0===d,this.loopRootPlacementId=h,this.loopRootOffset=f}}class wA extends Pu{constructor(t,e){super(e),this.timeline=t}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"handleDecodedFrame","handleClockTick","handleMainTrackBufferUpdate"])}enter(){}exit(){}play(){this.timeline.transitionTo(zm)}pause(){this.timeline.transitionTo(jm)}wait(){this.timeline.transitionTo(Um)}reset(){this.timeline.transitionTo(qm)}seek(t){this.timeline.transitionTo($m,{targetTime:t,returnState:this.timeline.state})}getCurrentTime(){return this.timeline.currentTime}emitPlayerStateEvent(t,e={}){if(!t||!this.timeline||"function"!=typeof this.timeline.trigger)return;const n=Number.isFinite(null==e?void 0:e.time)?e.time:this.getCurrentTime(),i={...e,event:t};Number.isFinite(n)&&(i.time=n),this.timeline.trigger("player:state",i)}get buffered(){return this.timeline.computeBuffered(this.timeline.currentTime)}handleMainTrackUnderflow(t){this.wait()}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||jm;this.timeline.transitionTo(e)}handleMainTrackBufferUpdate(t){}handleDecodedFrame(t){}handleClockTick(t){}onDispose(){this.timeline=null}}const _A=24e3/1001;function TA(t,e=(null==t?void 0:t.currentTime)){return Number.isFinite(e)?e:Number.isFinite(null==t?void 0:t.currentTime)?t.currentTime:0}function IA(t){var e;const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return Number.isFinite(n)&&n>0?.5/n:.001}function EA(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function SA(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];if(e.length){if(null!=t&&t.mainTrackId){const n=e.find((e=>(null==e?void 0:e.id)===t.mainTrackId));if("video"===(null==n?void 0:n.type)||"image"===(null==n?void 0:n.type))return n}return e.find((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}}function AA(t,e,n,i,r){var o,s;const a="function"==typeof(null==t?void 0:t.getDecodedVisualBuffer)?t.getDecodedVisualBuffer(e,n):void 0;if(!a)return"function"==typeof(null==t?void 0:t.hasDecodedFirstFrame)&&t.hasDecodedFirstFrame(e,i);const l=Array.isArray(a.frames)?a.frames:[];let c,u=Number.isFinite(null===(o=a.current)||void 0===o?void 0:o.presentationTime)?a.current:void 0;for(let t=0;t<l.length;t+=1){const e=l[t],n=Number(null==e?void 0:e.presentationTime);if(Number.isFinite(n)){if(!(n<=r)){c=n;break}u=e}}const d=Number(null===(s=u)||void 0===s?void 0:s.presentationTime);if(!Number.isFinite(d)||d>r)return!1;const h=function(t,e,n,i){const r=Number(null==n?void 0:n.duration);if(Number.isFinite(r)&&r>0)return e+r;const o=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return 2/(Number.isFinite(n)&&n>0?n:_A)}(t),s=Number.isFinite(i)&&i>e?i-e:o;return e+Math.min(s,o)}(t,d,u,c);return!!Number.isFinite(h)&&r<=h+IA(t)}function NA(t,e=(null==t?void 0:t.currentTime)){const n=TA(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const n=i[e],r=null==n?void 0:n.placementId;if(!r)return!0;const o="function"==typeof(null==t?void 0:t.getNode)?t.getNode(n.nodeId):void 0;if(!o)return!0;const s=EA(o);if(!s)return!0;if(!t.hasDecodedFirstFrame(r,s))return!0}return!1}function MA(t,e=(null==t?void 0:t.currentTime)){return NA(t,e)||function(t,e=(null==t?void 0:t.currentTime)){const n=TA(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const r=i[e],o=null==r?void 0:r.placementId;if(!o)return!0;const s="function"==typeof(null==t?void 0:t.getNode)?t.getNode(r.nodeId):void 0;if(!s)return!0;const a=SA(s);if(null!=a&&a.id&&!AA(t,o,a.id,a.type,n))return!0}return!1}(t,e)}function FA(t,e=(null==t?void 0:t.currentTime)){if("function"!=typeof(null==t?void 0:t.computeBuffered))return!1;const n=TA(t,e),i=t.computeBuffered(n),r=Number(null==i?void 0:i.start),o=Number(null==i?void 0:i.end);if(!Number.isFinite(r)||!Number.isFinite(o)||o<=r)return!1;const s=IA(t);if(!(r<=n+s))return!1;return o-n>=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.waitingBufferAheadSeconds);return!Number.isFinite(n)||n<0?3:n}(t)-s||function(t,e,n,i){const r=function(t){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Lp(r);if(!Number.isFinite(o))continue;const s="function"==typeof(null==t?void 0:t.getPlacementDuration)?t.getPlacementDuration(r):void 0;if(!Number.isFinite(s))continue;const a=o+s;Number.isFinite(a)&&(!Number.isFinite(n)||a>n)&&(n=a)}return n}(t);return!!Number.isFinite(r)&&(e>=r-i||n>=r-i)}(t,n,o,s)}const OA={[Bm]:class extends wA{get name(){return Bm}get defaults(){return{autoplay:Zg("autoplay")}}enter(){this.timeline.recordStableState(jm),this.timeline.stopPlaybackClock()}play(){const t=MA(this.timeline),e=t?Um:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(zm),void this.timeline.transitionTo(Um);this.timeline.transitionTo(e)}pause(){}handleDecodedFrame(t){if(!0!==this.settings.autoplay)return;if(!Array.isArray(this.timeline.placements)||!this.timeline.placements.length)return;if(MA(this.timeline))return;const e=this.timeline.getPlaybackStartState();this.log.info("[handleDecodedFrame] Autoplay enabled, starting playback!"),this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),this.timeline.transitionTo(e)}},[Wm]:class extends wA{get name(){return Wm}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(zm),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("canplay",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(jm)}},[zm]:class extends wA{get name(){return zm}enter(t={}){const{from:e,to:n,fromFirstFramePending:i}=t;this.timeline.recordStableState(zm),this.timeline.startPlaybackClock(),!0!==i&&this.emitPlayerStateEvent("canplay",{from:e,to:n}),this.emitPlayerStateEvent("playing",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(jm)}handleClockTick(t){const e=this.timeline.currentTime;MA(this.timeline,e)&&(this.timeline.recordStableState(zm),this.timeline.transitionTo(Um))}},[Um]:(cn=new WeakMap,un=new WeakMap,dn=new WeakSet,class extends wA{constructor(...t){super(...t),j(this,dn),W(this,cn,void 0),W(this,un,null)}get name(){return Um}enter(t={}){const{from:e,to:n}=t;this.timeline.stopPlaybackClock(),L(dn,this,CA).call(this),L(dn,this,DA).call(this),this.emitPlayerStateEvent("waiting",{from:e,to:n}),L(dn,this,BA).call(this)}exit(){L(dn,this,PA).call(this),L(dn,this,RA).call(this)}play(){this.timeline.recordStableState(zm);const t=L(dn,this,LA).call(this),e=t?Um:this.timeline.getPlaybackStartState();this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t||this.timeline.transitionTo(e)}pause(){this.timeline.transitionTo(jm)}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||jm;e!==zm?this.timeline.transitionTo(e):L(dn,this,BA).call(this)}handleDecodedFrame(t){L(dn,this,BA).call(this)}handleMainTrackBufferUpdate(t){L(dn,this,BA).call(this)}}),[jm]:class extends wA{get name(){return jm}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(jm),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("pause",{from:e,to:n})}play(){const t=MA(this.timeline),e=t?Um:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(zm),void this.timeline.transitionTo(Um);this.timeline.transitionTo(e)}pause(){}},[$m]:class extends wA{get name(){return $m}enter(t={}){const{targetTime:e,returnState:n}=t;if(this.timeline&&"function"==typeof this.timeline.stopPlaybackClock&&this.timeline.stopPlaybackClock(),this.timeline&&"function"==typeof this.timeline.startSeeking)return void this.timeline.startSeeking(e,n);this.timeline.updateTime(e);const i=n===zm||n===Wm,r=i&&"function"==typeof this.timeline.getPlaybackStartState?this.timeline.getPlaybackStartState(e):i?zm:jm;this.timeline.transitionTo(r,{fromSeeking:!0})}play(){var t;if(this.timeline&&"function"==typeof this.timeline.setSeekReturnState)return void this.timeline.setSeekReturnState(zm);const e="function"==typeof(null===(t=this.timeline)||void 0===t?void 0:t.getPlaybackStartState)?this.timeline.getPlaybackStartState():zm;this.timeline.transitionTo(e)}pause(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(jm):this.timeline.transitionTo(jm)}handleDecodedFrame(t){this.timeline&&"function"==typeof this.timeline.maybeCompleteSeek&&this.timeline.maybeCompleteSeek(t)}},[qm]:class extends wA{get name(){return qm}enter(){this.timeline.resetClock(),this.timeline.transitionTo(Bm,{fromReset:!0})}play(){}pause(){}get buffered(){return{start:0,end:0}}}};function CA(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;e&&"function"==typeof e.on&&(U(cn,this,(t=>this.handleMainTrackBufferUpdate(t))),e.on(Pm.TRACK_BUFFER_UPDATE,z(cn,this)))}function PA(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;z(cn,this)&&e&&"function"==typeof e.off?(e.off(Pm.TRACK_BUFFER_UPDATE,z(cn,this)),U(cn,this,null)):U(cn,this,null)}function DA(){if(null!==z(un,this))return;const t="function"==typeof(null==Lu?void 0:Lu.setInterval)?Lu.setInterval.bind(Lu):setInterval;U(un,this,t((()=>{var t;(null===(t=this.timeline)||void 0===t?void 0:t.state)===Um&&L(dn,this,BA).call(this)}),200))}function RA(){null!==z(un,this)&&(("function"==typeof(null==Lu?void 0:Lu.clearInterval)?Lu.clearInterval.bind(Lu):clearInterval)(z(un,this)),U(un,this,null))}function LA(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return function(t,e=(null==t?void 0:t.currentTime),n={}){return!!NA(t,e)||!0===n.skipBufferResume||!FA(t,e)}(this.timeline,t)}function BA(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return(this.timeline.getLastStableState()||jm)===zm&&!L(dn,this,LA).call(this,t)&&(this.timeline.transitionTo(this.timeline.getPlaybackStartState(t)),!0)}function zA(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function WA(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)))}function UA(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}function jA(t){return t===zm||t===Wm}var $A=new WeakMap,qA=new WeakMap,VA=new WeakMap,GA=new WeakMap,HA=new WeakMap,KA=new WeakMap,XA=new WeakMap,YA=new WeakMap,QA=new WeakMap,JA=new WeakMap,ZA=new WeakMap,tN=new WeakMap,eN=new WeakMap,nN=new WeakMap,iN=new WeakSet;class rN{constructor(t={}){j(this,iN),W(this,$A,void 0),W(this,qA,void 0),W(this,VA,void 0),W(this,GA,void 0),W(this,HA,void 0),W(this,KA,void 0),W(this,XA,void 0),W(this,YA,void 0),W(this,QA,void 0),W(this,JA,null),W(this,ZA,jm),W(this,tN,[]),W(this,eN,new Set),W(this,nN,new Map),U($A,this,t.getState),U(qA,this,t.getNode),U(VA,this,t.getPlacementsActiveAtTime),U(GA,this,t.getLastStableState),U(HA,this,t.getPlaybackStartState),U(KA,this,t.clearVisualFrameBuffers),U(XA,this,t.updateTime),U(YA,this,t.transitionTo),U(QA,this,t.trigger)}start(t,e){const n=Number(t);if(!Number.isFinite(n))return;let i=e;i===$m?i=z(ZA,this):i===Um&&"function"==typeof z(GA,this)&&(i=z(GA,this).call(this)),U(ZA,this,jA(i)?zm:jm),U(JA,this,n),z(eN,this).clear(),z(nN,this).clear(),U(tN,this,"function"==typeof z(VA,this)?z(VA,this).call(this,n):[]),"function"==typeof z(KA,this)&&z(KA,this).call(this),"function"==typeof z(XA,this)&&z(XA,this).call(this,n,{source:"seek"}),"function"==typeof z(QA,this)&&z(QA,this).call(this,Pm.TIMELINE_SEEKING,{targetTime:n,placements:z(tN,this).slice()}),this.maybeComplete()}setReturnState(t){U(ZA,this,jA(t)?zm:jm)}maybeComplete(t){if(("function"==typeof z($A,this)?z($A,this).call(this):void 0)!==$m)return;const e=z(JA,this);if(!Number.isFinite(e))return;const n=null==t?void 0:t.trackType,i=null==t?void 0:t.placementId;if(i&&"video"===n){const n=Number(null==t?void 0:t.pts);if(Number.isFinite(n)&&n>=e){z(eN,this).add(i);const t=z(nN,this).get(i);(!Number.isFinite(t)||n<t)&&z(nN,this).set(i,n)}}else i&&"image"===n&&function(t,e){const n=Number(null==t?void 0:t.pts),i=Number(null==t?void 0:t.duration);return!Number.isFinite(n)||(Number.isFinite(i)&&i>0?e>=n&&e<n+i:e>=n)}(t,e)&&z(eN,this).add(i);const r=Array.isArray(z(tN,this))?z(tN,this):[];if(r.length){if("function"==typeof z(qA,this)){for(let t=0;t<r.length;t+=1){const e=r[t],n=null==e?void 0:e.placementId;if(!n)return;const i=z(qA,this).call(this,e.nodeId);if(!zA(i))return;if(UA(i)&&!z(eN,this).has(n))return}L(iN,this,oN).call(this,e,r)}}else L(iN,this,oN).call(this,e,[])}dispose(){U(tN,this,[]),z(eN,this).clear(),z(nN,this).clear(),U(JA,this,null)}}function oN(t,e){const n=L(iN,this,sN).call(this,t,e);if("function"==typeof z(XA,this)&&z(XA,this).call(this,n,{source:"seek"}),U(JA,this,null),U(tN,this,[]),z(eN,this).clear(),z(nN,this).clear(),"function"==typeof z(QA,this)&&z(QA,this).call(this,Pm.TIMELINE_SEEKED,{targetTime:t,placements:Array.isArray(e)?e.slice():[]}),"function"==typeof z(YA,this)){const t=z(ZA,this)===zm&&"function"==typeof z(HA,this)?z(HA,this).call(this,n):z(ZA,this);z(YA,this).call(this,t,{fromSeeking:!0})}}function sN(t,e){const n=Number(t);if(!Number.isFinite(n))return t;if(!Array.isArray(e)||!e.length||"function"!=typeof z(qA,this))return n;let i=n;for(let t=0;t<e.length;t+=1){const n=e[t],r=null==n?void 0:n.placementId;if(!r)continue;if(!WA(z(qA,this).call(this,n.nodeId)))continue;const o=z(nN,this).get(r);Number.isFinite(o)&&o>i&&(i=o)}return i}function aN(t){if(t&&"function"==typeof t.close)try{t.close()}catch(t){}}function lN(t){if(!t)return;const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>aN(null==t?void 0:t.frame)))}function cN(t){return Lp(t)}function uN(t){return Number.isFinite(null==t?void 0:t.loopRootOffset)?t.loopRootOffset:cN(t)}function dN(t,e){return"string"==typeof(null==t?void 0:t.loopRootPlacementId)&&t.loopRootPlacementId?t.loopRootPlacementId:e}function hN(t){if("string"!=typeof t)return Number.NaN;const e=t.match(/(\d+)/);return e?Number(e[1]):Number.NaN}function fN(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}const pN=1e-6;function mN(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function vN(t){const e=Number(t);return Number.isFinite(e)?e:0}function gN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>"cue"===(null==t?void 0:t.type)&&Array.isArray(null==t?void 0:t.cues)))}function yN(t){return t&&"cue"===t.type&&Array.isArray(t.cues)?t.cues:[]}var bN=new WeakMap,kN=new WeakMap,xN=new WeakMap,wN=new WeakMap,_N=new WeakMap,TN=new WeakMap,IN=new WeakMap,EN=new WeakMap,SN=new WeakSet;class AN{constructor(t={}){j(this,SN),W(this,bN,void 0),W(this,kN,void 0),W(this,xN,void 0),W(this,wN,void 0),W(this,_N,void 0),W(this,TN,void 0),W(this,IN,-1e-6),W(this,EN,null),U(bN,this,t.getPlacements),U(kN,this,t.getPlacementsActiveAtTime),U(xN,this,t.getPlacementDuration),U(wN,this,t.getNode),U(_N,this,t.triggerTimeline),U(TN,this,t.triggerNode)}handleSeeking(t,e){const n=vN(t);U(EN,this,n)}handleSeeked(t){const e=vN(t),n=z(EN,this);U(EN,this,null),Number.isFinite(n)?(L(SN,this,MN).call(this,n,e),U(IN,this,e)):U(IN,this,e)}handleTimeUpdate(t,e={}){const n=vN(t),i=z(IN,this);!0===(null==e?void 0:e.isSeeking)?U(IN,this,n):Number.isFinite(i)?n<=i?n<i&&U(IN,this,n-pN):(L(SN,this,NN).call(this,i,n),U(IN,this,n)):U(IN,this,n)}dispose(){U(EN,this,null),U(IN,this,-1e-6)}}function NN(t,e){const n="function"==typeof z(bN,this)?z(bN,this).call(this):[];L(SN,this,FN).call(this,n,t,e,{onlySticky:!1})}function MN(t,e){if("function"!=typeof z(kN,this))return;const n=z(kN,this).call(this,e);L(SN,this,FN).call(this,n,t,e,{onlySticky:!0})}function FN(t,e,n,i={}){if("function"!=typeof z(wN,this)||"function"!=typeof z(_N,this))return;if(!Array.isArray(t)||!t.length)return;const r=!0===i.onlySticky,o=[];for(let i=0;i<t.length;i+=1){const s=t[i],a=null==s?void 0:s.placementId,l=null==s?void 0:s.nodeId;if(!a||!l)continue;const c=z(wN,this).call(this,l);if(!mN(c))continue;const u=gN(c);if(!u.length)continue;const d=Lp(s);if(!Number.isFinite(d))continue;const h=Number.isFinite(null==s?void 0:s.nodeOffsetOverride)?s.nodeOffsetOverride:0,f="function"==typeof z(xN,this)?z(xN,this).call(this,s):void 0,p="number"==typeof f&&Number.isFinite(f)?d+f:Number.POSITIVE_INFINITY,m=r?d-pN:e;for(let t=0;t<u.length;t+=1){const e=yN(u[t]);for(let i=0;i<e.length;i+=1){const s=e[i],c=vN(null==s?void 0:s.timestamp),u=d+Math.max(0,c-h);u<=p&&(r&&!0!==(null==s?void 0:s.isSticky)||u>m&&u<=n&&"string"==typeof(null==s?void 0:s.name)&&s.name&&o.push({time:u,placementOffset:d,placementId:a,nodeId:l,cuepoint:s,trackIndex:t,cueIndex:i}))}}}o.length&&(o.sort(((t,e)=>t.time!==e.time?t.time-e.time:t.placementOffset!==e.placementOffset?t.placementOffset-e.placementOffset:t.placementId!==e.placementId?t.placementId<e.placementId?-1:1:t.trackIndex!==e.trackIndex?t.trackIndex-e.trackIndex:t.cueIndex-e.cueIndex)),o.forEach((t=>{const e=t.cuepoint,n={time:t.time,nodeId:t.nodeId,placementId:t.placementId,cuepoint:e};z(_N,this).call(this,"cuepoint",n),z(_N,this).call(this,e.name,n),"function"==typeof z(TN,this)&&(z(TN,this).call(this,t.nodeId,"cuepoint",n),z(TN,this).call(this,t.nodeId,e.name,n))})))}class ON{#et;#nt=0;#it=new Set;constructor(t){this.#et="string"==typeof t?t:""}claim(t){if(t)return this.#it.add(t),t;let e;do{e=`${this.#et}${++this.#nt}`}while(this.#it.has(e));return this.#it.add(e),e}reset(){this.#nt=0,this.#it.clear()}}const CN=24e3/1001;function PN(t){var e;const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return 0;if("function"==typeof n.allocationSize)try{const t=Number(n.allocationSize());if(Number.isFinite(t)&&t>0)return t}catch(t){}const i=Number(null==n?void 0:n.byteLength);if(Number.isFinite(i)&&i>0)return i;const r=Number(null==n||null===(e=n.data)||void 0===e?void 0:e.byteLength);if(Number.isFinite(r)&&r>0)return r;const o=function(t,e){const n=Number(null==t?void 0:t.width),i=Number(null==t?void 0:t.height);return Number.isFinite(n)&&Number.isFinite(i)&&n>0&&i>0?{width:n,height:i}:fN(e)}(t,n),s=Number(null==o?void 0:o.width),a=Number(null==o?void 0:o.height);return Number.isFinite(s)&&Number.isFinite(a)&&s>0&&a>0?s*a*4:0}var DN=new WeakMap,RN=new WeakMap,LN=new WeakMap,BN=new WeakMap,zN=new WeakMap,WN=new WeakMap,UN=new WeakMap,jN=new WeakMap,$N=new WeakMap,qN=new WeakMap,VN=new WeakMap,GN=new WeakMap,HN=new WeakMap,KN=new WeakMap,XN=new WeakMap,YN=new WeakMap,QN=new WeakMap,JN=new WeakMap,ZN=new WeakMap,tM=new WeakMap,eM=new WeakMap,nM=new WeakMap,iM=new WeakMap,rM=new WeakMap,oM=new WeakMap,sM=new WeakMap,aM=new WeakMap,lM=new WeakMap,cM=new WeakMap,uM=new WeakMap,dM=new WeakMap,hM=new WeakMap,fM=new WeakMap,pM=new WeakSet;class mM extends Pu{constructor(...t){super(...t),j(this,pM),W(this,DN,void 0),W(this,RN,void 0),W(this,LN,void 0),W(this,BN,void 0),W(this,zN,void 0),W(this,WN,!1),W(this,UN,[]),W(this,jN,new ON("placement-")),W(this,$N,[]),W(this,qN,new ON("renderplacement-")),W(this,VN,void 0),W(this,GN,void 0),W(this,HN,void 0),W(this,KN,!1),W(this,XN,new Set),W(this,YN,new Set),W(this,QN,new Map),W(this,JN,[]),W(this,ZN,0),W(this,tM,new Set),W(this,eM,new Set),W(this,nM,Number.NEGATIVE_INFINITY),W(this,iM,[]),W(this,rM,Number.NEGATIVE_INFINITY),W(this,oM,0),W(this,sM,void 0),W(this,aM,void 0),W(this,lM,new Map),W(this,cM,null),W(this,uM,void 0),W(this,dM,void 0),W(this,hM,void 0),W(this,fM,void 0);const[e,n={}]=t;U(DN,this,e),U(sM,this,n),U(zN,this,new dA(n)),U(VN,this,new gA(n)),U(BN,this,jm),L(pM,this,EM).call(this),L(pM,this,SM).call(this),U(uM,this,new rN({getState:()=>this.state,getNode:t=>z(DN,this)&&"function"==typeof z(DN,this).get?z(DN,this).get(t):void 0,getPlacementsActiveAtTime:t=>L(pM,this,sF).call(this,t,{endEpsilonSeconds:L(pM,this,mF).call(this)}),getLastStableState:()=>this.getLastStableState(),getPlaybackStartState:t=>this.getPlaybackStartState(t),clearVisualFrameBuffers:()=>L(pM,this,rF).call(this),updateTime:(t,e)=>this.updateTime(t,e),transitionTo:(t,e)=>this.transitionTo(t,e),trigger:(t,e)=>this.trigger(t,e)})),U(dM,this,new AN({getPlacements:()=>z(UN,this).slice(),getPlacementsActiveAtTime:t=>L(pM,this,sF).call(this,t),getPlacementDuration:t=>L(pM,this,UM).call(this,t),getNode:t=>z(DN,this)&&"function"==typeof z(DN,this).get?z(DN,this).get(t):void 0,triggerTimeline:(t,e)=>this.trigger(t,e),triggerNode:(t,e,n)=>{const i=z(DN,this)&&"function"==typeof z(DN,this).get?z(DN,this).get(t):void 0;i&&"function"==typeof i.trigger&&i.trigger(e,n)}})),U(hM,this,(()=>{var t,e;null===(t=z(dM,this))||void 0===t||null===(e=t.handleSeeked)||void 0===e||e.call(t,this.currentTime)})),this.on(Pm.TIMELINE_SEEKED,z(hM,this)),U(fM,this,(t=>L(pM,this,PM).call(this,t))),this.on("nodestart",z(fM,this)),this.transitionTo(Bm)}get name(){return"Timeline"}get defaults(){return{snapToFps:CN,maxBufferedVideoFrames:24}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"computeBuffered","notifyDecodedFrame","getDecodedFrameStats","getActiveRenderPlacement","maybeCompleteSeek","getPlacementsActiveAtTime","hasDecodedFirstFrame","getDecodedVisualBuffer","getPlacementDuration","getNode"])}transitionTo(t,e={}){const n=z(LN,this),i=function(t,e,n={}){const i=OA[t];return i?new i(e,n):null}(t,this,z(sM,this)),r=e&&"object"==typeof e&&!Array.isArray(e)?{...e,from:n,to:t}:{from:n,to:t};i?(z(RN,this)&&"function"==typeof z(RN,this).exit&&z(RN,this).exit(),U(RN,this,i),U(LN,this,t),"function"==typeof i.enter&&i.enter(r),this.trigger(Pm.TIMELINE_STATE_CHANGE,{from:n,to:t,options:e})):this.log.warn(`Unknown state "${t}"`)}recordStableState(t){U(BN,this,t)}getLastStableState(){return z(BN,this)}enableFirstFrameRenderedGate(){U(WN,this,!0)}getPlaybackStartState(t=this.currentTime){return this.shouldWaitForFirstRenderedFrame(t)?Wm:zm}shouldWaitForFirstRenderedFrame(t=this.currentTime){if(!z(WN,this)||z(KN,this))return!1;const e=Number.isFinite(t)?t:this.currentTime,n=L(pM,this,sF).call(this,e);return Array.isArray(n)&&n.length>0}notifyFirstFrameRendered(){z(KN,this)||(U(KN,this,!0),this.state===Wm&&this.transitionTo(zm,{fromFirstFramePending:!0}))}get state(){return z(LN,this)}get paused(){return z(LN,this)===Bm||z(LN,this)===jm}get currentTime(){return z(zN,this).currentTime}set currentTime(t){z(RN,this).seek(t)}get playbackRate(){return z(zN,this).playbackRate}set playbackRate(t){z(zN,this).playbackRate=t}play(){z(RN,this).play()}pause(){z(RN,this).pause()}reset(){z(RN,this).reset()}seekToPlacement(t){if(!t)throw new Error("Timeline.seekToPlacement requires placement id");L(pM,this,LM).call(this);const e=L(pM,this,dF).call(this,t);if(!e)throw new Error("Timeline.seekToPlacement requires placement id");const n=Lp(e);if(!Number.isFinite(n))throw new Error("Timeline.seekToPlacement requires resolved placement offset");return this.currentTime=n,n}updateTime(t,e={}){var n,i;L(pM,this,LM).call(this),L(pM,this,BM).call(this),z(zN,this).seek(t),L(pM,this,oF).call(this,this.currentTime),L(pM,this,aF).call(this);const r="string"==typeof(null==e?void 0:e.source)?e.source:"set";null!==(n=z(dM,this))&&void 0!==n&&null!==(i=n.handleTimeUpdate)&&void 0!==i&&i.call(n,this.currentTime,{isSeeking:this.state===$m}),L(pM,this,DM).call(this,this.currentTime),L(pM,this,ZM).call(this,this.currentTime),this.trigger(Pm.TIMELINE_TIME_UPDATE,Dm(this.currentTime,r))}startSeeking(t,e){var n,i;null!==(n=z(dM,this))&&void 0!==n&&null!==(i=n.handleSeeking)&&void 0!==i&&i.call(n,this.currentTime,t),z(uM,this)&&"function"==typeof z(uM,this).start&&z(uM,this).start(t,e)}setSeekReturnState(t){z(uM,this)&&"function"==typeof z(uM,this).setReturnState&&z(uM,this).setReturnState(t)}maybeCompleteSeek(t){z(uM,this)&&"function"==typeof z(uM,this).maybeComplete&&z(uM,this).maybeComplete(t)}startPlaybackClock(){z(zN,this).play()}stopPlaybackClock(){z(zN,this).pause()}resetClock(){var t,e;z(zN,this).reset(),null===(t=z(dM,this))||void 0===t||null===(e=t.dispose)||void 0===e||e.call(t)}applyTimelineDefinition(t={}){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[],n=Array.isArray(null==t?void 0:t.renderPlacements)?t.renderPlacements:[];L(pM,this,vM).call(this),L(pM,this,gM).call(this,e),L(pM,this,yM).call(this,n),this.currentTime=0}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t.id:t;if(!i)throw new Error("Timeline.placeOnTimeline requires node id");const r=z(jN,this).claim(n.placementId),o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=$p(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("Timeline.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:jp(e,n);let u,d,h,f=!1;const p=null!==a;if(L(pM,this,LM).call(this),a){const t=z(UN,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("Timeline.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=Lp(t);if("start"===a.anchor)Number.isFinite(e)?u=L(pM,this,jM).call(this,e,{nodeOffsetOverride:o}):f=!0;else{const n=L(pM,this,UM).call(this,t);if(Number.isFinite(e)&&n>0){const t=e+n,i=L(pM,this,jM).call(this,t,{nodeOffsetOverride:o});u=Math.max(i,t)}else f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(UN,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(UN,this).length?z(UN,this)[z(UN,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Lp(t),n=L(pM,this,UM).call(this,t);Number.isFinite(e)&&n>0?u=L(pM,this,jM).call(this,e+n-c,{nodeOffsetOverride:o}):(f=!0,h="end")}else u=L(pM,this,jM).call(this,-c,{nodeOffsetOverride:o})}else u=Up(e),u=L(pM,this,jM).call(this,u,{...n,nodeOffsetOverride:o});const m=!0===n.loop?n.loopRootPlacementId||r:void 0,v=!0===n.loop&&Number.isFinite(n.loopRootOffset)?n.loopRootOffset:!0===n.loop?u:void 0,g=l?c:a&&"end"===a.anchor?0:void 0,y=new xA({placementId:r,nodeId:i,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:g,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop,loopRootPlacementId:m,loopRootOffset:v});if(z(UN,this).push(y),zp(z(UN,this)),L(pM,this,QM).call(this,y),L(pM,this,XM).call(this),f&&d){const t=z(UN,this).find((t=>(null==t?void 0:t.placementId)===d));L(pM,this,qM).call(this,null==t?void 0:t.nodeId)}return this.trigger(Pm.PLACEMENT_ADDED,y),r}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("Timeline.placeRenderNodeOnTimeline requires render node type");const o=L(pM,this,$M).call(this,e,i),s=o.offset,a=!0===o.offsetPending,l=o.offsetAnchorPlacementId,c=o.offsetAnchorEdge,u=o.offsetAnchorIsReference,d=z(qN,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("Timeline.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m=i.params&&"object"==typeof i.params?i.params:void 0,v={renderPlacementId:d,type:r,offset:s,offsetPending:a,offsetAnchorPlacementId:l,offsetAnchorEdge:c,offsetAnchorIsReference:u,duration:p,params:m};if(!a){const t=s,e=s+p;qp(z($N,this),t,e,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements")}if(z($N,this).push(v),zp(z($N,this)),a&&l){const t=z(UN,this).find((t=>(null==t?void 0:t.placementId)===l));L(pM,this,qM).call(this,null==t?void 0:t.nodeId)}return this.trigger(Pm.RENDER_PLACEMENT_ADDED,v),d}get placements(){return z(UN,this).slice()}getPlacementsActiveAtTime(t){return L(pM,this,sF).call(this,t)}getNodesAtTime(t){const e=L(pM,this,hF).call(this,t);if(!Number.isFinite(e))return[];const n=L(pM,this,sF).call(this,e),i=[];return n.forEach((t=>{const e=this.getNode(null==t?void 0:t.nodeId);e&&i.push(e)})),i}getPlacementDuration(t){return L(pM,this,UM).call(this,t)}getNode(t){if(z(DN,this)&&"function"==typeof z(DN,this).get)return z(DN,this).get(t)}get renderPlacements(){return z($N,this).slice()}get placementsAhead(){const t=this.currentTime;return z(UN,this).filter((e=>{const n=Lp(e);if(!Number.isFinite(n))return!1;const i=L(pM,this,UM).call(this,e);return"number"==typeof i?n+i>t:n>=t}))}get buffered(){return z(RN,this)?z(RN,this).buffered:{start:0,end:0}}get trackBuffers(){return z(VN,this)}onDispose(){L(pM,this,TM).call(this),z(YN,this)&&z(YN,this).clear(),z(dM,this)&&"function"==typeof z(dM,this).dispose&&z(dM,this).dispose(),U(dM,this,null),L(pM,this,_M).call(this),L(pM,this,IM).call(this),z(uM,this)&&"function"==typeof z(uM,this).dispose&&z(uM,this).dispose(),U(uM,this,null),z(zN,this)&&"function"==typeof z(zN,this).dispose&&(z(aM,this)&&"function"==typeof z(zN,this).off&&(z(zN,this).off("tick",z(aM,this)),U(aM,this,null)),z(zN,this).dispose(),U(zN,this,null)),L(pM,this,HM).call(this),U(RN,this,null),U(LN,this,null),U(UN,this,[]),U($N,this,[]),L(pM,this,KM).call(this),L(pM,this,XM).call(this),z(lM,this).clear(),U(cM,this,null)}notifyDecodedFrame(t={}){const e=null==t?void 0:t.placementId,n=null==t?void 0:t.trackType;if(!e||!n)return;const i=`${e}:${n}`;z(XN,this).add(i),L(pM,this,iF).call(this,t),L(pM,this,aF).call(this),z(RN,this)&&"function"==typeof z(RN,this).handleDecodedFrame&&z(RN,this).handleDecodedFrame(t)}getDecodedFrameStats(){return function(t){const e={totalBytes:0,frames:0,available:!1};if(!t||"function"!=typeof t.values)return e;for(const n of t.values()){const t=[];null!=n&&n.current&&t.push(n.current),Array.isArray(null==n?void 0:n.frames)&&t.push(...n.frames),t.forEach((t=>{const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return;e.frames+=1;const i=PN(t);Number.isFinite(i)&&i>0&&(e.totalBytes+=i)}))}return e.available=!0,e}(z(lM,this))}hasDecodedFirstFrame(t,e){return!(!t||!e)&&z(XN,this).has(`${t}:${e}`)}getDecodedVisualBuffer(t,e){if(t&&e)return z(lM,this).get(`${t}:${e}`)}computeBuffered(t){const e=z(DN,this);if(e&&"function"==typeof e.get)return z(VN,this).computeBuffered(z(UN,this),t,e)}getActiveRenderPlacement(t=this.currentTime){const e=Number.isFinite(t)?t:this.currentTime,n=Array.isArray(z($N,this))?z($N,this):[];if(!n.length)return;let i;for(let t=0;t<n.length;t+=1){const r=n[t];if(!0===(null==r?void 0:r.offsetPending))continue;const o="number"==typeof r.offset?r.offset:void 0;if(!Number.isFinite(o))continue;const s=r.duration;("number"==typeof s&&Number.isFinite(s)&&s>0?e>=o&&e<o+s:e>=o)&&(i=r)}return i}}function vM(){U(KN,this,!1),this.trigger(Pm.TIMELINE_RESET,{reason:"switch"}),L(pM,this,rF).call(this),z(VN,this)&&"function"==typeof z(VN,this).reset&&z(VN,this).reset(),z(YN,this)&&z(YN,this).clear(),U(UN,this,[]),U($N,this,[]),L(pM,this,KM).call(this),L(pM,this,XM).call(this),z(jN,this).reset(),z(qN,this).reset()}function gM(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.nodeId)continue;const i=L(pM,this,bM).call(this,n),r=L(pM,this,xM).call(this,n);this.placeOnTimeline(n.nodeId,r,i)}}function yM(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.type)continue;const i=L(pM,this,kM).call(this,n),r=L(pM,this,wM).call(this,n);this.placeRenderNodeOnTimeline(n.type,r,n.duration,i)}}function bM(t){const e={};return t.placementId&&(e.placementId=t.placementId),Number.isFinite(t.nodeOffsetOverride)&&(e.nodeOffsetOverride=t.nodeOffsetOverride),Number.isFinite(t.nodeDurationOverride)&&(e.nodeDurationOverride=t.nodeDurationOverride),!0===t.offsetPending&&(e.offsetPending=!0,t.offsetAnchorPlacementId&&(e.offsetAnchorPlacementId=t.offsetAnchorPlacementId),t.offsetAnchorEdge&&(e.offsetAnchorEdge=t.offsetAnchorEdge)),Number.isFinite(t.offsetEndSeconds)&&(e.offsetEndSeconds=t.offsetEndSeconds),!0===t.loop&&(e.loop=!0),t.loopRootPlacementId&&(e.loopRootPlacementId=t.loopRootPlacementId),Number.isFinite(t.loopRootOffset)&&(e.loopRootOffset=t.loopRootOffset),e}function kM(t){const e={};return t.renderPlacementId&&(e.renderPlacementId=t.renderPlacementId),t.params&&"object"==typeof t.params&&(e.params=t.params),e}function xM(t){if(!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge){if(!0===t.offsetAnchorIsReference)return`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`;if("end"===t.offsetAnchorEdge)return Number.isFinite(t.offsetEndSeconds)&&t.offsetEndSeconds>0?-t.offsetEndSeconds:"end"}return"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function wM(t){return!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge&&!0===t.offsetAnchorIsReference?`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`:"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function _M(){z(RN,this)&&"function"==typeof z(RN,this).exit&&z(RN,this).exit()}function TM(){z(hM,this)&&"function"==typeof this.off&&(this.off(Pm.TIMELINE_SEEKED,z(hM,this)),U(hM,this,null)),z(fM,this)&&"function"==typeof this.off&&(this.off("nodestart",z(fM,this)),U(fM,this,null))}function IM(){z(VN,this)&&(z(GN,this)&&(z(VN,this).off("track:underflow",z(GN,this)),U(GN,this,null)),z(HN,this)&&(z(VN,this).off("track:ready",z(HN,this)),U(HN,this,null)),"function"==typeof z(VN,this).dispose&&z(VN,this).dispose(),U(VN,this,null))}function EM(){z(VN,this)&&"function"==typeof z(VN,this).on&&(U(GN,this,(t=>L(pM,this,NM).call(this,t))),U(HN,this,(t=>L(pM,this,MM).call(this,t))),z(VN,this).on(Pm.TRACK_UNDERFLOW,z(GN,this)),z(VN,this).on(Pm.TRACK_READY,z(HN,this)))}function SM(){z(zN,this)&&"function"==typeof z(zN,this).on&&(U(aM,this,(t=>L(pM,this,AM).call(this,t))),z(zN,this).on(Pm.CLOCK_TICK,z(aM,this)))}function AM(t){var e,n;L(pM,this,LM).call(this),L(pM,this,aF).call(this),null!==(e=z(dM,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,this.currentTime,{isSeeking:!1}),L(pM,this,DM).call(this,this.currentTime),this.trigger(Pm.TIMELINE_TIME_UPDATE,Dm(this.currentTime,"clock")),z(RN,this)&&"function"==typeof z(RN,this).handleClockTick&&z(RN,this).handleClockTick(t)}function NM(t){L(pM,this,LM).call(this);const e=L(pM,this,FM).call(this);e&&(null==t?void 0:t.trackType)===e.trackType&&(z(RN,this)&&"function"==typeof z(RN,this).handleMainTrackUnderflow?z(RN,this).handleMainTrackUnderflow(t):this.transitionTo(Um))}function MM(t){if(L(pM,this,LM).call(this),this.state!==Um)return;const e=L(pM,this,FM).call(this);if(!e)return;if((null==t?void 0:t.trackType)!==e.trackType)return;if(z(RN,this)&&"function"==typeof z(RN,this).handleMainTrackReady)return void z(RN,this).handleMainTrackReady(t);const n=this.getLastStableState()||jm;this.transitionTo(n)}function FM(t=this.currentTime){const e=L(pM,this,CM).call(this,t);if(!e)return;const n=z(DN,this)&&"function"==typeof z(DN,this).get?z(DN,this).get(e.nodeId):void 0;if(!n)return;const i=L(pM,this,OM).call(this,n);return i?{placement:e,trackType:i}:void 0}function OM(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function CM(t=this.currentTime){const e=z(UN,this)||[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=Lp(r);if(!Number.isFinite(o))continue;const s=L(pM,this,UM).call(this,r);if(Number.isFinite(s)){if(t>=o&&t<o+s)return r}else if(t<=o)return r;!n&&t<o&&(n=r)}return n}function PM(t={}){if(this.state!==zm)return;const e=null==t?void 0:t.placementId;if(!e)return;const n=L(pM,this,dF).call(this,e);n&&L(pM,this,RM).call(this,n)}function DM(t=this.currentTime){if(this.state!==zm)return;const e=L(pM,this,sF).call(this,t);Array.isArray(e)&&e.length&&e.forEach((t=>L(pM,this,RM).call(this,t)))}function RM(t){const e=null==t?void 0:t.placementId;if(!e)return;if(z(YN,this).has(e))return;if(!t||!0!==t.loop)return;if(!t.nodeId)return;const n=L(pM,this,UM).call(this,t);if(!Number.isFinite(n)||n<=0)return;const i=Lp(t);if(!Number.isFinite(i))return;const r=i+n;if(!Number.isFinite(r))return;const o=t.loopRootPlacementId||t.placementId,s=Number.isFinite(t.loopRootOffset)?t.loopRootOffset:i;z(YN,this).add(e),this.placeOnTimeline(t.nodeId,r,{nodeOffsetOverride:t.nodeOffsetOverride,nodeDurationOverride:t.nodeDurationOverride,loop:!0,loopRootPlacementId:o,loopRootOffset:s})}function LM(){const t=Wp(z(UN,this),{getPlacementDuration:t=>L(pM,this,UM).call(this,t),snapPlacementOffset:(t,e)=>L(pM,this,jM).call(this,t,{nodeOffsetOverride:null==e?void 0:e.nodeOffsetOverride}),onResolvedPlacement:(t,e)=>{!0!==t.loop||Number.isFinite(t.loopRootOffset)||(t.loopRootOffset=t.offset),L(pM,this,VM).call(this,null==e?void 0:e.nodeId)}});return t.updated&&(L(pM,this,XM).call(this),t.resolvedPlacements.forEach((t=>{L(pM,this,QM).call(this,t),this.trigger(Pm.PLACEMENT_ADDED,t)}))),t.updated}function BM(){if(!z($N,this).length||!z(UN,this).length)return!1;const t=new Map;z(UN,this).forEach((e=>{(null==e?void 0:e.placementId)&&t.set(e.placementId,e)}));const e=z($N,this).filter((t=>!0===(null==t?void 0:t.offsetPending)));if(!e.length)return!1;let n=!1;const i=[];for(let r=0;r<e.length;r+=1){const o=e[r];L(pM,this,zM).call(this,o,t)&&(n=!0,i.push(o))}return n&&(zp(z($N,this)),i.forEach((t=>{this.trigger(Pm.RENDER_PLACEMENT_ADDED,t)}))),n}function zM(t,e){const n=null==t?void 0:t.offsetAnchorPlacementId,i=null==t?void 0:t.offsetAnchorEdge;if(!n||!i)return!1;const r=e.get(n);if(!r||!0===r.offsetPending)return!1;const o=L(pM,this,WM).call(this,r,t);if(!Number.isFinite(o))return!1;t.offset=o,t.offsetPending=!1,t.offsetAnchorPlacementId=void 0,t.offsetAnchorEdge=void 0,t.offsetAnchorIsReference=void 0;const s=t.offset,a=t.offset+t.duration;return qp(z($N,this).filter((e=>e!==t&&!0!==(null==e?void 0:e.offsetPending))),s,a,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements"),L(pM,this,VM).call(this,null==r?void 0:r.nodeId),!0}function WM(t,e){const n=Lp(t);if(!Number.isFinite(n))return;if("start"===e.offsetAnchorEdge)return L(pM,this,jM).call(this,n);const i=L(pM,this,UM).call(this,t);if(!(i>0))return;const r=n+i;if(!Number.isFinite(r))return;const o=L(pM,this,jM).call(this,r);return!0===e.offsetAnchorIsReference?Math.max(o,r):o}function UM(t){return Dp(t,z(DN,this))}function jM(t,e={}){var n;return function(t,e={},n){const i=Number(n);if(!(i>0))return t;const r=Number(t);if(!Number.isFinite(r))return t;const o=Number.isFinite(null==e?void 0:e.nodeOffsetOverride)?e.nodeOffsetOverride:0,s=r-o;return Math.round(s*i)/i+o}(t,e,null===(n=this.settings)||void 0===n?void 0:n.snapToFps)}function $M(t,e={}){const n=$p(t);if("string"==typeof t&&t.includes("@")&&!n)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");if(!n){const n=Up(t);return{offset:L(pM,this,jM).call(this,n,e)}}const i=z(UN,this).find((t=>(null==t?void 0:t.placementId)===n.placementId));if(!i)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");const r=Lp(i);if("start"===n.anchor)return Number.isFinite(r)?{offset:L(pM,this,jM).call(this,r,e)}:{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"start",offsetAnchorIsReference:!0};const o=L(pM,this,UM).call(this,i);if(!(Number.isFinite(r)&&o>0))return{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"end",offsetAnchorIsReference:!0};const s=r+o,a=L(pM,this,jM).call(this,s,e);return{offset:Math.max(a,s)}}function qM(t){if(!t||!z(DN,this)||"function"!=typeof z(DN,this).get)return;if(z(QN,this).has(t))return;let e;try{e=z(DN,this).get(t)}catch(t){return}if(!e||"function"!=typeof e.on)return;if("ready"===e.state&&e.duration>0)return void this.updateTime(this.currentTime);const n=()=>{this.updateTime(this.currentTime),L(pM,this,VM).call(this,t)};e.on(Pm.NODE_LOADED,n),z(QN,this).set(t,n)}function VM(t){if(!t)return;if(L(pM,this,GM).call(this,t))return;const e=z(QN,this).get(t);if(!e)return;let n;try{n=z(DN,this).get(t)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(Pm.NODE_LOADED,e),z(QN,this).delete(t)}function GM(t){if(!t)return!1;const e=new Map;z(UN,this).forEach((t=>{(null==t?void 0:t.placementId)&&e.set(t.placementId,t)}));const n=n=>{if(null==n||!n.offsetPending||null==n||!n.offsetAnchorPlacementId)return!1;const i=e.get(n.offsetAnchorPlacementId);return(null==i?void 0:i.nodeId)===t};return!!z(UN,this).some((t=>n(t)))||!!z($N,this).some((t=>n(t)))}function HM(){z(QN,this).size&&z(DN,this)?(z(QN,this).forEach(((t,e)=>{let n;try{n=z(DN,this).get(e)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(Pm.NODE_LOADED,t)})),z(QN,this).clear()):z(QN,this).clear()}function KM(){U(JN,this,[]),U(ZN,this,0),z(tM,this).clear(),z(eM,this).clear(),U(nM,this,Number.NEGATIVE_INFINITY)}function XM(){U(iM,this,[]),U(oM,this,0),U(rM,this,Number.NEGATIVE_INFINITY)}function YM(t,e){const n=z(JN,this),i={placementId:t,endTime:e};if(!n.length||e>=n[n.length-1].endTime)return void n.push(i);const r=n.findIndex((t=>e<t.endTime)),o=-1===r?n.length:r;n.splice(o,0,i),o<z(ZN,this)&&U(ZN,this,z(ZN,this)+1)}function QM(t){const e=null==t?void 0:t.placementId;if(!e||z(tM,this).has(e))return;const n=Lp(t),i=L(pM,this,UM).call(this,t);if(!Number.isFinite(n)||!Number.isFinite(i)||i<0)return void z(eM,this).add(e);const r=n+i;Number.isFinite(r)&&(z(tM,this).add(e),z(eM,this).delete(e),L(pM,this,YM).call(this,e,r))}function JM(){z(eM,this).size&&Array.from(z(eM,this)).forEach((t=>{const e=L(pM,this,dF).call(this,t);e?L(pM,this,QM).call(this,e):z(eM,this).delete(t)}))}function ZM(t){const e=Number(t);if(!Number.isFinite(e))return;if(e<z(nM,this))return void U(nM,this,e);if(U(nM,this,e),L(pM,this,JM).call(this),!z(JN,this).length)return;const n=new Set;let i=z(ZN,this);for(;i<z(JN,this).length;){const t=z(JN,this)[i];if(!t||!Number.isFinite(t.endTime)||t.endTime>e)break;t.placementId&&n.add(t.placementId),i+=1}i!==z(ZN,this)&&(U(ZN,this,i),n.size&&(L(pM,this,nF).call(this,n),L(pM,this,tF).call(this,n)))}function tF(t){if(t&&t.size)for(const e of z(XN,this)){const n=e.split(":")[0];t.has(n)&&z(XN,this).delete(e)}}function eF(t){const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>{const e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}))}function nF(t){if(t&&t.size)for(const[e,n]of z(lM,this).entries())t.has(null==n?void 0:n.placementId)&&(L(pM,this,eF).call(this,n),z(lM,this).delete(e))}function iF(t={}){var e;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId,r=null==t?void 0:t.trackId,o=null==t?void 0:t.segmentId,s=null==t?void 0:t.trackType;if(!(n&&i&&r&&o))return;if("video"!==s&&"image"!==s)return;const a=(null==t?void 0:t.frame)||(null==t?void 0:t.data);if(!a)return;"video"===s&&"object"==typeof a&&"function"==typeof a.close&&(a.__keepOpen=!0);const l=fN(a),c=Number.isFinite(null==l?void 0:l.width)?l.width:void 0,u=Number.isFinite(null==l?void 0:l.height)?l.height:void 0,d=Number.isFinite(null==t?void 0:t.pts)?t.pts:void 0;if(!Number.isFinite(d))return;const h=Number.isFinite(null==t?void 0:t.duration)?t.duration:void 0,f=`${n}:${r}`,p=z(lM,this).get(f),m=p||{placementId:n,nodeId:i,trackId:r,trackType:s,frames:[],current:void 0},v={placementId:n,nodeId:i,trackId:r,segmentId:o,frame:a,width:c,height:u,presentationTime:d,duration:h},g=m.frames,y=g.length?g[g.length-1]:void 0;if(!y||y.presentationTime<=v.presentationTime)g.push(v);else{let t=g.findIndex((t=>t.presentationTime>v.presentationTime));-1===t&&(t=g.length),g.splice(t,0,v)}const b=Number(null===(e=this.settings)||void 0===e?void 0:e.maxBufferedVideoFrames);if("video"===s&&Number.isFinite(b)&&b>0&&g.length>b){const t=g.length-b;for(let e=0;e<t;e+=1){const t=g.pop(),e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}}p||z(lM,this).set(f,m)}function rF(){for(const t of z(lM,this).values())L(pM,this,eF).call(this,t);z(lM,this).clear(),U(cM,this,null),z(XN,this).clear()}function oF(t){const e=Number.isFinite(t)?t:this.currentTime;if(!Number.isFinite(e))return;e<z(rM,this)&&(U(iM,this,[]),U(oM,this,0));const n=Array.isArray(z(UN,this))?z(UN,this):[],i=[],r=new Set;z(iM,this).forEach((t=>{L(pM,this,vF).call(this,t,e)&&(i.push(t),(null==t?void 0:t.placementId)&&r.add(t.placementId))}));let o=z(oM,this);for(;o<n.length;){const t=n[o],s=Lp(t);if(!Number.isFinite(s))break;if(s>e)break;if(L(pM,this,vF).call(this,t,e)){const e=null==t?void 0:t.placementId;e&&r.has(e)||(i.push(t),e&&r.add(e))}o+=1}U(iM,this,i),U(oM,this,o),U(rM,this,e)}function sF(t,e={}){const n=Number.isFinite(t)?t:this.currentTime,i=Number.isFinite(null==e?void 0:e.endEpsilonSeconds)?e.endEpsilonSeconds:0;return 0===i&&n===this.currentTime&&n===z(rM,this)?z(iM,this).slice():(Array.isArray(z(UN,this))?z(UN,this):[]).filter((t=>L(pM,this,vF).call(this,t,n,i)))}function aF(){const t=this.currentTime,e=L(pM,this,cF).call(this,t);if(!e.length)return void U(cM,this,null);const n=this.getActiveRenderPlacement(t),i=L(pM,this,uF).call(this,e,n);(i!==z(cM,this)||L(pM,this,lF).call(this,t,n))&&(U(cM,this,i),this.trigger(Pm.VISUAL_FRAMES_AVAILABLE,{time:t,frames:e}))}function lF(t,e){const n=e||this.getActiveRenderPlacement(t);if(!n)return!1;if(!sm.doesRenderNodeTypeRequireFrameCadence(null==n?void 0:n.type))return!1;const i=n.duration;return"number"==typeof i&&i>0}function cF(t){return function(t={}){const e=t.buffers,n=t.time,i=t.getPlacementById,r=t.isPlacementActiveAtTime,o=t.getPlacementDuration,s=[];if(!e||"function"!=typeof e.entries)return[];const a=[];for(const[t,c]of e.entries()){const e=null==c?void 0:c.placementId,u="function"==typeof i?i(e):void 0;if(!u){lN(c),a.push(t);continue}if("function"==typeof r&&!r(u,n)){const e=cN(u),i="function"==typeof o?o(u):void 0;Number.isFinite(i)&&Number.isFinite(e)&&n>=e+i&&(lN(c),a.push(t));continue}const d=Array.isArray(null==c?void 0:c.frames)?c.frames:[];for(;d.length&&Number.isFinite(null===(l=d[0])||void 0===l?void 0:l.presentationTime)&&d[0].presentationTime<=n;){var l;const t=c.current,e=d.shift();c.current=e,t&&t!==e&&aN(null==t?void 0:t.frame)}if(!c.current)continue;const h={placementId:e,nodeId:c.current.nodeId,trackId:c.current.trackId,segmentId:c.current.segmentId,frame:c.current.frame,width:c.current.width,height:c.current.height,presentationTime:c.current.presentationTime,duration:c.current.duration};s.push({frame:h,placementId:e,placementOffset:cN(u),placementSortOffset:uN(u),placementSortId:dN(u,e)})}return a.forEach((t=>{e.delete(t)})),s.sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.placementSortOffset)?t.placementSortOffset:Number.isFinite(null==t?void 0:t.placementOffset)?t.placementOffset:0,i=Number.isFinite(null==e?void 0:e.placementSortOffset)?e.placementSortOffset:Number.isFinite(null==e?void 0:e.placementOffset)?e.placementOffset:0;if(n!==i)return n-i;const r=(null==t?void 0:t.placementSortId)||(null==t?void 0:t.placementId),o=(null==e?void 0:e.placementSortId)||(null==e?void 0:e.placementId),s=hN(r),a=hN(o);return Number.isFinite(s)&&Number.isFinite(a)&&s!==a?s-a:r&&o&&r!==o?r<o?-1:1:function(t,e){const n=(null==t?void 0:t.frame)||{},i=(null==e?void 0:e.frame)||{};return n.trackId!==i.trackId?n.trackId<i.trackId?-1:1:n.nodeId!==i.nodeId?n.nodeId<i.nodeId?-1:1:n.segmentId!==i.segmentId?n.segmentId<i.segmentId?-1:1:("number"==typeof n.presentationTime?n.presentationTime:0)-("number"==typeof i.presentationTime?i.presentationTime:0)}(t,e)})),s.map((t=>t.frame))}({buffers:z(lM,this),time:t,getPlacementById:t=>L(pM,this,dF).call(this,t),isPlacementActiveAtTime:(t,e)=>L(pM,this,vF).call(this,t,e),getPlacementDuration:t=>L(pM,this,UM).call(this,t)})}function uF(t,e){return`${e?`render:${e.renderPlacementId||e.type||"unknown"}`:"render:default"}|${t.map((t=>`${t.nodeId}:${t.trackId}:${t.segmentId}@${t.presentationTime}`)).join("|")}`}function dF(t){if(t)return(z(UN,this)||[]).find((e=>(null==e?void 0:e.placementId)===t))}function hF(t){if("end"===t){const t=L(pM,this,fF).call(this);if(!Number.isFinite(t))return;const e=L(pM,this,pF).call(this);return Math.max(0,t-Math.min(t,e))}const e=Number(t);return Number.isFinite(e)?e:0}function fF(){let t;return(Array.isArray(z(UN,this))?z(UN,this):[]).forEach((e=>{const n=Lp(e);if(!Number.isFinite(n))return;const i=L(pM,this,UM).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}function pF(){const t=L(pM,this,mF).call(this);return t>0?t:.001}function mF(){var t;const e=Number(null===(t=this.settings)||void 0===t?void 0:t.snapToFps);return!Number.isFinite(e)||e<=0?0:.5/e}function vF(t,e,n=0){if(!Bp(t,e,z(DN,this)))return!1;const i=Number(n);if(!Number.isFinite(i)||i<=0)return!0;const r=L(pM,this,UM).call(this,t);if(!Number.isFinite(r))return!0;const o=Lp(t);return!Number.isFinite(o)||e<o+r-i}var gF=new WeakMap,yF=new WeakMap,bF=new WeakMap,kF=new WeakMap,xF=new WeakMap,wF=new WeakMap,_F=new WeakMap,TF=new WeakMap,IF=new WeakMap,EF=new WeakMap,SF=new WeakMap,AF=new WeakMap,NF=new WeakMap,MF=new WeakMap,FF=new WeakMap,OF=new WeakMap,CF=new WeakMap,PF=new WeakSet;class DF extends Pu{get name(){return"QoE"}get defaults(){return{calcScoreInterval:1,streamQualityWeight:.8,fpsWeight:.2,fpsMathFuncType:"quad",bestFpsMobile:27,bestFpsDesktop:57,waitingMultiplier:1,statusFloors:{excellent:.98,good:.85,fair:.7,poor:0,alert:0},alertStatusCeil:.3,fpsGracePeriod:2,windowSeconds:30}}constructor(...t){super(...t),j(this,PF),W(this,gF,void 0),W(this,yF,void 0),W(this,bF,1),W(this,kF,1),W(this,xF,1),W(this,wF,""),W(this,_F,0),W(this,TF,[]),W(this,IF,null),W(this,EF,void 0),W(this,SF,[]),W(this,AF,null),W(this,NF,null),W(this,MF,0),W(this,FF,0),W(this,OF,0),W(this,CF,void 0);const[e]=t;U(gF,this,e),U(MF,this,Rg()),U(CF,this,L(PF,this,RF).call(this)),L(PF,this,LF).call(this),L(PF,this,BF).call(this),L(PF,this,$F).call(this),L(PF,this,UF).call(this)}get publicAPI(){return z(CF,this)}calcScore(){L(PF,this,JF).call(this)}onDispose(){z(gF,this)&&z(yF,this)&&"function"==typeof z(gF,this).off&&z(gF,this).off(Pm.TIMELINE_PLAYER_STATE,z(yF,this)),U(yF,this,null),L(PF,this,jF).call(this),L(PF,this,qF).call(this),U(gF,this,null),U(SF,this,[]),U(TF,this,[]),U(CF,this,null)}}function RF(){const t=this;return{get score(){return z(bF,t)},get status(){return z(wF,t)},get streamQualityScore(){return z(kF,t)},get fpsScore(){return z(xF,t)},get browserFps(){return z(_F,t)},get waitingSeconds(){return z(FF,t)/1e3},get playingSeconds(){return z(OF,t)/1e3}}}function LF(){Number(this.settings.streamQualityWeight)+Number(this.settings.fpsWeight)!==1&&(this.log.warn("QoE weights must sum to 1; resetting to legacy defaults."),this.settings.streamQualityWeight=.8,this.settings.fpsWeight=.2)}function BF(){z(gF,this)&&"function"==typeof z(gF,this).on&&(U(yF,this,(t=>L(PF,this,zF).call(this,t))),z(gF,this).on(Pm.TIMELINE_PLAYER_STATE,z(yF,this)))}function zF(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";"playing"!==e?"waiting"!==e?"pause"!==e&&"seeking"!==e&&"seeked"!==e&&"reset"!==e||L(PF,this,WF).call(this,null):L(PF,this,WF).call(this,"waiting"):L(PF,this,WF).call(this,"playing")}function WF(t){if(t===z(AF,this))return;const e=Rg();z(AF,this)&&Number.isFinite(z(NF,this))&&z(SF,this).push({state:z(AF,this),startMs:z(NF,this),endMs:e}),U(AF,this,t),U(NF,this,t?e:null),L(PF,this,HF).call(this,e)}function UF(){const t=Number(this.settings.calcScoreInterval);!Number.isFinite(t)||t<=0||(U(EF,this,(()=>L(PF,this,JF).call(this))),bk(z(EF,this),1e3*t))}function jF(){z(EF,this)&&kk(z(EF,this)),U(EF,this,null)}function $F(){if("function"!=typeof ck)return;const t=()=>{if(this._disposed)return;const e=Rg();U(_F,this,L(PF,this,VF).call(this,z(TF,this),e)),U(IF,this,ck(t))};U(IF,this,ck(t))}function qF(){z(IF,this)&&"function"==typeof uk&&uk(z(IF,this)),U(IF,this,null)}function VF(t,e){const n=L(PF,this,GF).call(this);for(t.push(e);t.length&&e-t[0]>n;)t.shift();if(t.length<2)return 0;const i=t[t.length-1]-t[0];return i<=0?0:1e3*(t.length-1)/i}function GF(){const t=Number(this.settings.windowSeconds);return!Number.isFinite(t)||t<=0?3e4:1e3*t}function HF(t){const e=t-L(PF,this,GF).call(this);for(;z(SF,this).length&&z(SF,this)[0].endMs<=e;)z(SF,this).shift()}function KF(t){const e=t-L(PF,this,GF).call(this);let n=0,i=0;const r=(r,o,s)=>{const a=Math.max(o,e),l=Math.min(s,t);l<=a||("waiting"===r?n+=l-a:"playing"===r&&(i+=l-a))};return z(SF,this).forEach((t=>{r(t.state,t.startMs,t.endMs)})),z(AF,this)&&Number.isFinite(z(NF,this))&&r(z(AF,this),z(NF,this),t),U(FF,this,n),U(OF,this,i),{waitingMs:n,playingMs:i}}function XF(t,e){if(t<=0)return 1;if(t>e)return 0;const n=e||1;return Cp(1-t*this.settings.waitingMultiplier/n)}function YF(){if(Rg()-z(MF,this)<=1e3*this.settings.fpsGracePeriod)return 1;const t=Number(z(_F,this)),e=Om.isDesktop()?this.settings.bestFpsDesktop:this.settings.bestFpsMobile,n=Cp(e>0?t/e:0);return"quad"===this.settings.fpsMathFuncType?n*n:n}function QF(t,e){const n=this.settings.statusFloors||{};let i="";return t>=n.excellent?i="excellent":t>=n.good?i="good":t>=n.fair?i="fair":(i="poor",t<=this.settings.alertStatusCeil&&e>0&&(i="alert")),i}function JF(){const t=Rg(),{waitingMs:e,playingMs:n}=L(PF,this,KF).call(this,t),i=L(PF,this,XF).call(this,e,n),r=L(PF,this,YF).call(this),o=Cp(i*this.settings.streamQualityWeight+r*this.settings.fpsWeight);o!==z(bF,this)&&(U(bF,this,o),this.trigger(Pm.QOE_SCORE,o)),U(kF,this,i),U(xF,this,r);const s=L(PF,this,QF).call(this,o,e);s!==z(wF,this)&&(U(wF,this,s),this.trigger(Pm.QOE_STATUS,s))}function ZF(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function tO(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:e}var eO=new WeakMap,nO=new WeakMap,iO=new WeakMap,rO=new WeakMap,oO=new WeakSet;class sO extends Pu{get name(){return"SegmentEvictionCoordinator"}get defaults(){return{enabled:Zg("segmentEvictionEnabled"),bufferBehindSeconds:Zg("segmentEvictionBufferBehindSeconds"),bufferAheadSeconds:Zg("segmentEvictionBufferAheadSeconds"),maxRetainedBytes:Zg("segmentEvictionMaxRetainedBytes")}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"evictAtTime"])}constructor(t,e,n={}){super(n),j(this,oO),W(this,eO,void 0),W(this,nO,void 0),W(this,iO,void 0),W(this,rO,void 0),U(eO,this,t),U(nO,this,e),U(iO,this,(t=>L(oO,this,aO).call(this,t))),U(rO,this,(t=>L(oO,this,lO).call(this,t))),z(eO,this)&&"function"==typeof z(eO,this).on&&(z(eO,this).on(Pm.TIMELINE_TIME_UPDATE,z(iO,this)),z(eO,this).on(Pm.TIMELINE_SEEKED,z(rO,this)))}onDispose(){z(eO,this)&&"function"==typeof z(eO,this).off&&(z(eO,this).off(Pm.TIMELINE_TIME_UPDATE,z(iO,this)),z(eO,this).off(Pm.TIMELINE_SEEKED,z(rO,this))),U(eO,this,null),U(nO,this,null),U(iO,this,null),U(rO,this,null)}evictAtTime(t){if(!0!==this.settings.enabled)return;const e=Number(t);if(!Number.isFinite(e))return;const n=tO(this.settings.bufferBehindSeconds),i=tO(this.settings.bufferAheadSeconds),r=e-n,o=e+i,s=L(oO,this,cO).call(this);if(!s.length)return;const a=Number(this.settings.maxRetainedBytes);if(Number.isFinite(a)&&a>0&&L(oO,this,uO).call(this,s)<=a)return;const l=new Map;s.forEach((t=>{const e=null==t?void 0:t.nodeId;if(!e)return;const n=Lp(t);if(!Number.isFinite(n))return;const i=l.get(e)||[];i.push(t),l.set(e,i)})),l.size&&l.forEach(((t,e)=>{const n=L(oO,this,dO).call(this,e);if(!n)return;const i=t.filter((t=>L(oO,this,hO).call(this,t,r,o)));i.length?L(oO,this,fO).call(this,n,i,r,o):"function"==typeof n.evict&&n.evict()}))}}function aO(t){var e,n;if(!0!==this.settings.enabled)return;if((null===(e=z(eO,this))||void 0===e?void 0:e.state)===$m)return;const i=Number(null==t?void 0:t.time),r=Number.isFinite(i)?i:Number(null===(n=z(eO,this))||void 0===n?void 0:n.currentTime);this.evictAtTime(r)}function lO(t){var e;if(!0!==this.settings.enabled)return;const n=Number(null==t?void 0:t.targetTime),i=Number.isFinite(n)?n:Number(null===(e=z(eO,this))||void 0===e?void 0:e.currentTime);this.evictAtTime(i)}function cO(){var t;const e=null===(t=z(eO,this))||void 0===t?void 0:t.placements;return Array.isArray(e)?e:[]}function uO(t){if(!Array.isArray(t)||!t.length)return 0;const e=new Set;let n=0;return t.forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i||e.has(i))return;e.add(i);const r=L(oO,this,dO).call(this,i),o=Number(null==r?void 0:r.retainedByteLength);ug(o)?n+=o:(Array.isArray(null==r?void 0:r.tracks)?r.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{ug(null==t?void 0:t.retainedByteLength)&&(n+=t.retainedByteLength)}))}))})),n}function dO(t){if(z(nO,this)&&"function"==typeof z(nO,this).get)return z(nO,this).get(t)}function hO(t,e,n){const i=Lp(t);if(!Number.isFinite(i))return!1;const r=Dp(t,z(nO,this));return(Number.isFinite(r)?i+r:Number.POSITIVE_INFINITY)>e&&i<n}function fO(t,e,n,i){const r=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];r.length&&r.forEach((t=>{const r=Array.isArray(null==t?void 0:t.segments)?t.segments:[],o=ZF(null==t?void 0:t.offset,0);r.forEach((t=>{if(!t||!ug(null==(r=t)?void 0:r.retainedByteLength))return;var r;if(t.isInit)return;let s=!1;for(let r=0;r<e.length;r+=1){const a=e[r],l=Lp(a);if(!Number.isFinite(l))continue;const c=ZF(null==a?void 0:a.nodeOffsetOverride,0),u=ZF(null==t?void 0:t.offset,NaN);if(!Number.isFinite(u))continue;const d=ZF(null==t?void 0:t.duration,0),h=l+o+u-c,f=h+(d>0?d:0),p=Dp(a,z(nO,this)),m=Number.isFinite(p)?l+p:Number.POSITIVE_INFINITY;if(!(f<=l||h>=m||f<=n||h>=i)){s=!0;break}}s||t.evict()}))}))}var pO=new WeakMap,mO=new WeakMap,vO=new WeakMap,gO=new WeakSet;class yO extends Pu{get name(){return"DocumentVisibility"}get defaults(){return{autoPauseOnVisibilityChange:!0,autoResumeOnVisibilityChange:!0}}constructor(t,e={}){super(e),j(this,gO),W(this,pO,void 0),W(this,mO,null),W(this,vO,!1),U(pO,this,t),L(gO,this,bO).call(this)}onDispose(){L(gO,this,kO).call(this),U(pO,this,null),U(vO,this,!1)}}function bO(){const t=null==Lu?void 0:Lu.document;t&&"function"==typeof t.addEventListener&&(U(mO,this,(()=>L(gO,this,xO).call(this))),t.addEventListener("visibilitychange",z(mO,this)))}function kO(){const t=null==Lu?void 0:Lu.document;z(mO,this)&&t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",z(mO,this)),U(mO,this,null)}function xO(){const t=null==Lu?void 0:Lu.document,e=null==t?void 0:t.visibilityState;"string"==typeof e&&("hidden"!==e?"visible"===e&&L(gO,this,_O).call(this):L(gO,this,wO).call(this))}function wO(){var t;(null===(t=this.settings)||void 0===t?void 0:t.autoPauseOnVisibilityChange)&&z(pO,this)&&"function"==typeof z(pO,this).pause&&(z(pO,this).state===zm?(this.log.info("[#handleHidden] Pausing timeline due to document visibility change"),z(pO,this).pause(),U(vO,this,!0)):U(vO,this,!1))}function _O(){var t;z(vO,this)&&(null===(t=this.settings)||void 0===t?void 0:t.autoResumeOnVisibilityChange)&&z(pO,this)&&"function"==typeof z(pO,this).play&&(z(pO,this).state!==zm?(this.log.info("[#handleVisible] Resuming timeline due to document visibility change"),z(pO,this).play(),U(vO,this,!1)):U(vO,this,!1))}const TO=[{event:"canplay",once:!0,trackAs:"canplay"},{event:"playing",once:!0,trackAs:"startedplaying"},"play","playing","waiting","pause","seeking","seeked","nodestart","nodeend"];function IO(t,e=0){return Number.isFinite(t)?t:e}function EO(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}const SO=[function(t){return{schema:"iglu:com.helloeko/player/jsonschema/1-0-6",match:/^.*$/,getData:()=>{var e,n,i;const r=function(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}(t);return{playerversion:"string"==typeof(null==r?void 0:r.version)?r.version:"0.0.0",isautoplay:!(null==r||null===(e=r.options)||void 0===e||!e.autoplay),playerqoe:IO(null==r||null===(n=r.qoe)||void 0===n?void 0:n.score),playerqoestatus:"string"==typeof(null==r||null===(i=r.qoe)||void 0===i?void 0:i.status)?r.qoe.status:"",ismuted:!(null==r||!r.muted),playervolume:IO(null==r?void 0:r.volume),playercontainerwidth:IO(null==r?void 0:r.containerWidth),playercontainerheight:IO(null==r?void 0:r.containerHeight)}}}},function(t){return{schema:"iglu:com.helloeko/currentnode/jsonschema/1-0-1",match:/^.*$/,getData:()=>{var e;const n=EO(t),i=function(t){const e=EO(t);if(!e||"function"!=typeof e.getNodesAtTime)return null;const n=Number.isFinite(e.currentTime)?e.currentTime:0,i=e.getNodesAtTime(n);return Array.isArray(i)&&0!==i.length&&i[0]||null}(t);return{currentnodeid:"string"==typeof(null==i?void 0:i.id)?i.id:"",currentnodetime:Number.isFinite(null==n?void 0:n.currentTime)?n.currentTime:0,currentnodeduration:Number.isFinite(null==i?void 0:i.duration)?i.duration:0,currentnodeprofile:"string"==typeof(null==i||null===(e=i.metadata)||void 0===e?void 0:e.profile)?i.metadata.profile:""}}}},function(t){let e=0,n=0;const i=()=>{e||(e=Date.now(),n=0)},r=()=>{e&&!n&&(n=Date.now())};return t&&"function"==typeof t.on&&(t.on("seeking",i),t.on("seeked",r)),{schema:"iglu:com.helloeko/seeked/jsonschema/1-0-0",match:"seeked",getData:()=>{r();const t=e&&n&&n>=e?(n-e)/1e3:0;return e=0,n=0,{seekduration:t}},dispose:()=>{t&&"function"==typeof t.off&&(t.off("seeking",i),t.off("seeked",r))}}},function(){return{schema:"iglu:com.helloeko/environment/jsonschema/1-0-0",match:/^.*$/,getData:()=>{var t;const e=null==Lu||null===(t=Lu.eko)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.embeddingApp;return e?{embeddingapp:e}:{}}}}],AO=Object.freeze({once:!1,trackAs:""});var NO=new WeakMap,MO=new WeakMap,FO=new WeakMap,OO=new WeakMap,CO=new WeakSet;class PO extends Pu{get name(){return"Tracker"}get defaults(){return{trackingEnabled:Zg("trackingEnabled"),defaultForwarders:TO,defaultContextPackers:SO}}constructor(t,e={}){super(e),j(this,CO),W(this,NO,void 0),W(this,MO,new Map),W(this,FO,[]),W(this,OO,!1),U(NO,this,t),L(CO,this,WO).call(this),L(CO,this,DO).call(this)}track(t,...e){if(!this.settings.trackingEnabled)return;if("string"!=typeof t||!t)return void this.log.warn("[track] Expected event to be a non-empty string.");const n=L(CO,this,jO).call(this);n&&n("track",t,...e)}registerContextPacker(t){if(!t||"object"!=typeof t)return void this.log.warn("[registerContextPacker] Expected a packer object.");const e={schema:t.schema,match:t.match,getData:t.getData};if("string"!=typeof e.schema||!e.schema)return void this.log.warn('[registerContextPacker] Expected "schema" to be a non-empty string.');if("function"!=typeof e.getData)return void this.log.warn('[registerContextPacker] Expected "getData" to be a function.');if(!this.settings.trackingEnabled)return;const n=L(CO,this,jO).call(this);n&&n("registerContextPacker",e)}onDispose(){L(CO,this,zO).call(this),L(CO,this,UO).call(this),U(NO,this,null),U(OO,this,!1)}}function DO(){(Array.isArray(this.settings.defaultForwarders)?this.settings.defaultForwarders:[]).forEach((t=>L(CO,this,RO).call(this,t)))}function RO(t){const e=L(CO,this,LO).call(this,t);if(!e)return void this.log.warn("[#addEventForwarder] Invalid forwarder input.",t);const n=z(NO,this);if(!n||"function"!=typeof n.on)return;const i=L(CO,this,BO).call(this,e);if(z(MO,this).has(i))return;const r=(...t)=>{e.once&&n&&"function"==typeof n.off&&n.off(e.event,r);const i=e.trackAs||e.event;this.track(i,...t)};n.on(e.event,r),z(MO,this).set(i,{event:e.event,listener:r})}function LO(t){return"string"==typeof t&&t?{event:t,...AO}:t&&"object"==typeof t&&"string"==typeof t.event&&t.event?{event:t.event,once:!!t.once,trackAs:"string"==typeof t.trackAs?t.trackAs:""}:null}function BO({event:t,once:e,trackAs:n}){return`${t}:${e}:${n}`}function zO(){const t=z(NO,this);t&&"function"==typeof t.off&&z(MO,this).forEach((({event:e,listener:n})=>{t.off(e,n)})),z(MO,this).clear()}function WO(){(Array.isArray(this.settings.defaultContextPackers)?this.settings.defaultContextPackers:[]).forEach((t=>{if("function"!=typeof t)return;const e=t(z(NO,this),this);e&&"object"==typeof e&&("function"==typeof e.dispose&&z(FO,this).push(e.dispose),e.disabled||this.registerContextPacker({schema:e.schema,match:e.match,getData:e.getData}))}))}function UO(){z(FO,this).forEach((t=>{try{t()}catch(t){this.log.warn("[#teardownContextPackers] Failed disposing context packer.",t)}})),U(FO,this,[])}function jO(){const t=null==Lu?void 0:Lu.EkoAnalytics;return"function"==typeof t?t:(L(CO,this,$O).call(this),null)}function $O(){this.settings.trackingEnabled&&!z(OO,this)&&(this.log.warn("EkoAnalytics not found on window."),U(OO,this,!0))}class qO{#E;#rt;#ot;#st;#at;#lt;#ct;#ut;#dt;#ht;#ft;#pt;#mt;#vt;#gt;#yt;#bt;#kt;#xt;constructor(t,e={},n=null){this.#E=new zu(t,e),this.#rt=new Hu(this.#E,e),this.#ot=new ek(e),this.#st=new sy(e),this.#at=new Rb(this.#st,e),this.#lt=new Fb(this.#at,this.#ot,e),this.#ct=new qb(this.#lt,e),this.#ut=new mM(this.#lt,e),this.#dt=new yO(this.#ut,e),this.#kt=new sO(this.#ut,this.#lt,e),this.#ht=new Uk(this.#lt,this.#ct,this.#ot,this.#ut,e),this.#ft=new Sx(this.#lt,this.#ct,this.#ut,e),this.#pt=new LI(e),this.#mt=new lE(this.#lt,this.#ut,this.#pt,e),this.#gt=new DF(this.#ut,e),this.#xt=new PO(n,e);const i=e&&"object"==typeof e?e.adapters:null,r=i&&"object"==typeof i&&"function"==typeof i.renderAdapterFactory?i.renderAdapterFactory:null,o=i&&"object"==typeof i&&"function"==typeof i.audioAdapterFactory?i.audioAdapterFactory:null;this.#yt=r?r({timeline:this.#ut,canvas:this.#E,containerSize:this.#rt,options:e}):new Nv(this.#ut,this.#E,this.#rt,e),this.#vt=o?o({timeline:this.#ut,decodeCoordinator:this.#mt,options:e}):new qS(this.#ut,this.#mt,e),this.#bt=new uS(this.#ut,this.#yt,e)}get canvas(){return this.#E}get containerSize(){return this.#rt}get assetsDeliveryService(){return this.#ot}get downloadSpeed(){return this.#st}get abrSelector(){return this.#at}get nodeRepository(){return this.#lt}get nodePrioritizer(){return this.#ct}get timeline(){return this.#ut}get documentVisibility(){return this.#dt}get nodeResolver(){return this.#ht}get segmentLoadCoordinator(){return this.#ft}get decoderFactory(){return this.#pt}get parsingManager(){return this.#mt}get audioAdapter(){return this.#vt}get audioPlaybackManager(){return this.#vt}get qoe(){return this.#gt}get renderAdapter(){return this.#yt}get renderer(){return this.#yt}get transitionManager(){return this.#bt}get tracker(){return this.#xt}dispose(){[this.#xt,this.#ut,this.#dt,this.#ft,this.#ht,this.#ct,this.#lt,this.#ot,this.#at,this.#st,this.#mt,this.#pt,this.#vt,this.#gt,this.#yt,this.#bt,this.#kt,this.#rt,this.#E].forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()})),this.#ut=null,this.#dt=null,this.#ft=null,this.#ht=null,this.#ct=null,this.#lt=null,this.#ot=null,this.#at=null,this.#st=null,this.#mt=null,this.#pt=null,this.#vt=null,this.#gt=null,this.#yt=null,this.#bt=null,this.#kt=null,this.#E=null,this.#xt=null}}const VO="main.1154004";var GO={isPlainObject:Nu,deepMerge:Mu,get:Og,set:Cg,ekoGlobalStore:Pg,download:Xg,isPositiveNumber:ug,clamp01:Cp,root:Lu,now:Rg,getFrameDimensions:fN,useragent:Cm,requestAnimationFrame:ck,cancelAnimationFrame:uk,start:bk,stop:kk,isTicking:xk,predicator:function(t,e){const n=e||{};if("function"!=typeof t)return void dk.error("[predicator] Bad argument given to predicator, first argument must be a function.",arguments);if(t.apply())return dk.debug("[predicator] Invoking onFulfilled immediately."),void("function"==typeof n.onFulfilled&&n.onFulfilled.call(null,0));const i=n.timeout||1e4,r=n.interval,o=Rg();let s,a,l,c,u;c=function(){t.apply()&&l()},l=function(){kk(c),Lu.clearTimeout(s),u=Rg()-o,dk.debug("[predicator] Invoking onFulfilled after "+u+" ms."),"function"==typeof n.onFulfilled&&n.onFulfilled.call(null,u)},a=function(){kk(c),u=Rg()-o,dk.debug("[predicator] Invoking onTimeout after "+u+" ms."),"function"==typeof n.onTimeout&&n.onTimeout.call(null,u)},s=Lu.setTimeout(a,i),bk(c,r)},createThrottler:wk,scheduleExecution:_k},HO=new WeakMap,KO=new WeakMap,XO=new WeakMap,YO=new WeakMap,QO=new WeakMap,JO=new WeakMap,ZO=new WeakMap,tC=new WeakSet;class eC{constructor(t){j(this,tC),W(this,HO,[]),W(this,KO,[]),W(this,XO,new ON("placement-")),W(this,YO,new ON("renderplacement-")),W(this,QO,void 0),W(this,JO,new Map),W(this,ZO,void 0),U(QO,this,t),U(ZO,this,{allowUnready:!0,getNode:t=>L(tC,this,nC).call(this,t)})}get placements(){return z(HO,this).slice()}get renderPlacements(){return z(KO,this).slice()}getNodesAtTime(t){L(tC,this,iC).call(this);const e=L(tC,this,oC).call(this,t);if(!Number.isFinite(e))return[];const n=z(HO,this).filter((t=>Bp(t,e,null,z(ZO,this)))),i=[];return n.forEach((t=>{const e=L(tC,this,nC).call(this,null==t?void 0:t.nodeId);e&&i.push(e)})),i}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t:null,r=i?i.id:t;if(!r)throw new Error("TimelineDefinition.placeOnTimeline requires node id");i&&z(JO,this).set(r,i);const o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=$p(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:jp(e,n);let u,d,h,f=!1;const p=null!==a;if(a){const t=z(HO,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=Lp(t);if("start"===a.anchor)Number.isFinite(e)?u=e:f=!0;else{const n=L(tC,this,rC).call(this,t);Number.isFinite(e)&&n>0?u=e+n:f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(HO,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(HO,this).length?z(HO,this)[z(HO,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=Lp(t),n=L(tC,this,rC).call(this,t);Number.isFinite(e)&&n>0?u=e+n-c:(f=!0,h="end")}else u=-c}else u=Up(e);const m=z(XO,this).claim(n.placementId),v={placementId:m,nodeId:r,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:l?c:a&&"end"===a.anchor?0:void 0,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop};return z(HO,this).push(v),zp(z(HO,this)),m}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires render node type");let o,s,a,l=!1;const c=$p(e);if("string"==typeof e&&e.includes("@")&&!c)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");const u=null!==c;if(c){const t=z(HO,this).find((t=>(null==t?void 0:t.placementId)===c.placementId));if(!t)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");s=t.placementId,a=c.anchor;const e=Lp(t);if("start"===c.anchor)Number.isFinite(e)?o=e:l=!0;else{const n=L(tC,this,rC).call(this,t);Number.isFinite(e)&&Number.isFinite(n)?o=e+n:l=!0}}else o=Up(e);const d=z(YO,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m={renderPlacementId:d,type:r,offset:o,offsetPending:l,offsetAnchorPlacementId:l?s:void 0,offsetAnchorEdge:l?a:void 0,offsetAnchorIsReference:l?u:void 0,duration:p,params:i.params&&"object"==typeof i.params?i.params:void 0};if(!l){const t=o,e=o+p;qp(z(KO,this),t,e,"TimelineDefinition.placeRenderNodeOnTimeline does not allow overlapping render nodes")}return z(KO,this).push(m),zp(z(KO,this)),d}}function nC(t){if(t)return z(QO,this)&&"function"==typeof z(QO,this).get?z(QO,this).get(t):z(JO,this).get(t)}function iC(){return Wp(z(HO,this),{getPlacementDuration:t=>L(tC,this,rC).call(this,t)}).updated}function rC(t){return Dp(t,null,z(ZO,this))}function oC(t){if("end"===t){const t=L(tC,this,sC).call(this);if(!Number.isFinite(t))return;return Math.max(0,t-Math.min(t,.001))}const e=Number(t);return Number.isFinite(e)?e:0}function sC(){let t;return z(HO,this).forEach((e=>{const n=Lp(e);if(!Number.isFinite(n))return;const i=L(tC,this,rC).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}const aC=new Set(["canplay","play","playing","waiting","pause","seeking","seeked"]);var lC=new WeakMap,cC=new WeakMap,uC=new WeakMap,dC=new WeakMap,hC=new WeakMap,fC=new WeakMap,pC=new WeakMap,mC=new WeakMap,vC=new WeakMap,gC=new WeakMap,yC=new WeakMap,bC=new WeakMap,kC=new WeakMap,xC=new WeakMap,wC=new WeakMap,_C=new WeakMap,TC=new WeakMap,IC=new WeakMap,EC=new WeakMap,SC=new WeakMap,AC=new WeakMap,NC=new WeakMap,MC=new WeakMap,FC=new WeakMap,OC=new WeakMap,CC=new WeakSet;class PC extends Pu{get name(){return"EkoPlayer"}get exposedPlayerAPI(){return z(dC,this)}constructor(t,e={}){const{options:n,publicOptions:i}=function(t={}){const e=Mu({},Qg,t);Object.entries(Yg).forEach((([t,{targetPaths:n}])=>{void 0!==e[t]&&n.forEach((n=>{void 0===Og(e,n)&&Cg(e,n,e[t])}))}));const n=function(t){const e={};return Object.keys(Yg).forEach((n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})),Object.freeze(e)}(e);return Jg.info("Processed options:",e),Jg.info("Public options:",n),{options:e,publicOptions:n}}(e);return super(n),j(this,CC),W(this,lC,void 0),W(this,cC,void 0),W(this,uC,void 0),W(this,dC,void 0),W(this,hC,void 0),W(this,fC,void 0),W(this,pC,void 0),W(this,mC,void 0),W(this,vC,void 0),W(this,gC,void 0),W(this,yC,void 0),W(this,bC,void 0),W(this,kC,void 0),W(this,xC,void 0),W(this,wC,void 0),W(this,_C,void 0),W(this,TC,void 0),W(this,IC,void 0),W(this,EC,void 0),W(this,SC,void 0),W(this,AC,void 0),W(this,NC,void 0),W(this,MC,void 0),W(this,FC,void 0),W(this,OC,0),U(uC,this,i),this.log.info("Initializing EkoPlayer with options:",i),U(bC,this,new qO(t,n,this)),L(CC,this,qC).call(this,z(bC,this)),U(wC,this,(t=>L(CC,this,DC).call(this,t))),z(cC,this)&&"function"==typeof z(cC,this).on&&z(cC,this).on(Pm.TIMELINE_CUEPOINT,z(wC,this)),U(_C,this,null),U(IC,this,(t=>L(CC,this,RC).call(this,t))),U(EC,this,(t=>{const e=t&&"object"==typeof t?t:{};L(CC,this,RC).call(this,{...e,event:"seeking"})})),U(SC,this,(t=>{const e=t&&"object"==typeof t?t:{};L(CC,this,RC).call(this,{...e,event:"seeked"})})),z(cC,this)&&"function"==typeof z(cC,this).on&&(z(cC,this).on(Pm.TIMELINE_PLAYER_STATE,z(IC,this)),z(cC,this).on(Pm.TIMELINE_SEEKING,z(EC,this)),z(cC,this).on(Pm.TIMELINE_SEEKED,z(SC,this))),U(MC,this,(t=>{const e=t&&"object"==typeof t?t:{};this.trigger(Pm.CONTAINER_RESIZE,e)})),z(kC,this)&&"function"==typeof z(kC,this).on&&z(kC,this).on(Pm.CONTAINER_RESIZE,z(MC,this)),L(CC,this,WC).call(this),L(CC,this,zC).call(this),U(dC,this,L(CC,this,$C).call(this)),z(dC,this)}onDispose(){z(cC,this)&&"function"==typeof z(cC,this).off&&z(wC,this)&&z(cC,this).off(Pm.TIMELINE_CUEPOINT,z(wC,this)),U(wC,this,null),z(cC,this)&&"function"==typeof z(cC,this).off&&(z(IC,this)&&z(cC,this).off(Pm.TIMELINE_PLAYER_STATE,z(IC,this)),z(EC,this)&&z(cC,this).off(Pm.TIMELINE_SEEKING,z(EC,this)),z(SC,this)&&z(cC,this).off(Pm.TIMELINE_SEEKED,z(SC,this))),U(IC,this,null),U(EC,this,null),U(SC,this,null),U(_C,this,null),z(kC,this)&&"function"==typeof z(kC,this).off&&z(MC,this)&&z(kC,this).off(Pm.CONTAINER_RESIZE,z(MC,this)),U(MC,this,null),z(yC,this)&&"function"==typeof z(yC,this).off&&(z(AC,this)&&z(yC,this).off("qoescore",z(AC,this)),z(NC,this)&&z(yC,this).off("qoestatus",z(NC,this))),U(AC,this,null),U(NC,this,null),z(gC,this)&&"function"==typeof z(gC,this).off&&z(FC,this)&&z(gC,this).off(Pm.DECODER_ERROR,z(FC,this)),U(FC,this,null),U(OC,this,0),z(xC,this)&&"function"==typeof z(xC,this).dispose&&z(xC,this).dispose(),U(xC,this,null),z(bC,this)&&"function"==typeof z(bC,this).dispose&&z(bC,this).dispose(),U(cC,this,null),U(lC,this,null),U(fC,this,null),U(pC,this,null),U(mC,this,null),U(vC,this,null),U(gC,this,null),U(yC,this,null),U(kC,this,null),U(hC,this,null),U(dC,this,null),U(bC,this,null)}}function DC(t={}){var e;this.trigger(Pm.TIMELINE_CUEPOINT,t);const n="string"==typeof(null==t||null===(e=t.cuepoint)||void 0===e?void 0:e.name)?t.cuepoint.name:"";n&&this.trigger(n,t)}function RC(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";if(!aC.has(e))return;if("playing"!==e||Number.isFinite(z(TC,this))||(U(TC,this,Rg()),this.log.info(`[#handlePlayerStateEvent] Playback started @ ${(z(TC,this)/1e3).toFixed(3)}s (${Date.now()})`)),z(_C,this)===e)return;U(_C,this,e);const n=Number.isFinite(null==t?void 0:t.time)?t.time:z(cC,this)&&Number.isFinite(z(cC,this).currentTime)?z(cC,this).currentTime:0,i={};Number.isFinite(n)&&(i.time=n),"string"==typeof(null==t?void 0:t.from)&&(i.from=t.from),"string"==typeof(null==t?void 0:t.to)&&(i.to=t.to),Number.isFinite(null==t?void 0:t.targetTime)&&(i.targetTime=t.targetTime),Array.isArray(null==t?void 0:t.placements)&&(i.placements=t.placements.slice()),this.trigger(e,i)}function LC(){return new eC(z(lC,this))}function BC(t){if(!t||"object"!=typeof t)throw new Error("EkoPlayer.switchTimeline requires a timeline definition");if(!z(cC,this)||"function"!=typeof z(cC,this).applyTimelineDefinition)throw new Error("EkoPlayer.switchTimeline requires an active timeline");z(cC,this).applyTimelineDefinition(t),"function"==typeof z(cC,this).play&&z(cC,this).play()}function zC(){z(yC,this)&&"function"==typeof z(yC,this).on&&(U(AC,this,(t=>{this.trigger(Pm.QOE_SCORE,t)})),U(NC,this,(t=>{this.trigger(Pm.QOE_STATUS,t)})),z(yC,this).on(Pm.QOE_SCORE,z(AC,this)),z(yC,this).on(Pm.QOE_STATUS,z(NC,this)))}function WC(){z(gC,this)&&"function"==typeof z(gC,this).on&&(U(FC,this,(t=>{const e=t&&"object"==typeof t?t:{error:t};this.trigger(Pm.DECODER_ERROR,e),L(CC,this,UC).call(this,e)})),z(gC,this).on(Pm.DECODER_ERROR,z(FC,this)))}function UC(t={}){var e;const n=z(cC,this);if(!n||"number"!=typeof n.currentTime)return;const i=Date.now();if(i<z(OC,this))return;const r=Number(n.currentTime);if(!Number.isFinite(r))return;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;U(OC,this,i+1500),this.log.warn("[#attemptDecoderRecoverySeek] decoder:error received, attempting seek recovery",null==t?void 0:t.error),n.currentTime=r+s}async function jC(t={}){if(z(xC,this))return z(xC,this);const e=t&&"object"==typeof t&&!Array.isArray(t)?{...t}:{},n=z(hC,this)&&z(hC,this).element?z(hC,this).element:null;if(!n)throw new Error("Debug overlay requires an initialized player canvas and mount element.");const i=function({canvasElement:t,containerElement:e}={}){const n=t&&t.parentNode?t.parentNode:null;if(null==e)return n;const i=function(t,e=(null==Lu?void 0:Lu.document)){if(Bu(t))return t;if("string"!=typeof t)return null;let n=t.trim();if("#"===n.charAt(0)&&(n=n.slice(1)),!n||!e||"function"!=typeof e.getElementById)return null;const i=e.getElementById(n);return Bu(i)?i:null}(e,t&&t.ownerDocument?t.ownerDocument:null);if(i)return i;if("string"==typeof e){const t=e.trim(),n="#"===t.charAt(0)?t.slice(1):t;if(!n)throw new Error("Debug overlay containerElement id cannot be empty.");throw new Error(`Debug overlay containerElement id "${n}" was not found.`)}throw new Error("Debug overlay containerElement must be an element id string or DOM element.")}({canvasElement:n,containerElement:e.containerElement});if(!i)throw new Error("Debug overlay requires an initialized player canvas and mount element.");Object.prototype.hasOwnProperty.call(e,"containerElement")&&delete e.containerElement;const r=await import("./debug-overlay-BIxN1VnC.esm.js"),o=(null==r?void 0:r.createDebugOverlay)||(null==r?void 0:r.default);if("function"!=typeof o)throw new Error("Debug overlay bundle does not export createDebugOverlay().");return e.publicOptions=z(uC,this),e.playerVersion=VO,U(xC,this,o({mountElement:i,canvasElement:n,timeline:z(cC,this),getNode:t=>z(lC,this)&&"function"==typeof z(lC,this).get?z(lC,this).get(t):void 0,listNodes:()=>z(lC,this)&&"function"==typeof z(lC,this).list?z(lC,this).list():[],downloadSpeed:z(bC,this)?z(bC,this).downloadSpeed:void 0,downloadEvents:Ag,qoe:z(yC,this)?z(yC,this).publicAPI:void 0,qoeEvents:this,options:e,playbackStartedAtMs:z(TC,this)})),z(xC,this)}function $C(){const t=this;return{createTimeline:()=>L(CC,t,LC).call(t),switchTimeline:e=>L(CC,t,BC).call(t,e),play:z(cC,this).play,pause:z(cC,this).pause,reset:z(cC,this).reset,placeOnTimeline:z(cC,this).placeOnTimeline,placeRenderNodeOnTimeline:z(cC,this).placeRenderNodeOnTimeline,addNode:z(lC,this).add,getNode:z(lC,this).get,listNodes:z(lC,this).list,getNodesAtTime:e=>z(cC,t).getNodesAtTime(e),dispose:this.dispose,on:t.on,off:t.off,once:t.once,trigger:t.trigger,transitionTo:(e,n)=>z(pC,t).transitionTo(e,n),track:(e,...n)=>{if(z(vC,t)&&"function"==typeof z(vC,t).track)return z(vC,t).track(e,...n)},seekToPlacement:e=>z(cC,t).seekToPlacement(e),get currentTime(){return z(cC,t).currentTime},set currentTime(e){z(cC,t).currentTime=e},get buffered(){return z(cC,t).buffered},get options(){return z(uC,t)},get containerWidth(){return z(kC,t)?z(kC,t).containerWidth:0},get containerHeight(){return z(kC,t)?z(kC,t).containerHeight:0},get playbackRate(){return z(cC,t).playbackRate},set playbackRate(e){z(cC,t).playbackRate=e},get paused(){return!!z(cC,t)&&!0===z(cC,t).paused},get muted(){return!!z(mC,t)&&z(mC,t).muted},set muted(e){z(mC,t)&&(z(mC,t).muted=e)},get volume(){return z(mC,t)?z(mC,t).volume:1},set volume(e){z(mC,t)&&(z(mC,t).volume=e)},get qoe(){return z(yC,t)?z(yC,t).publicAPI:void 0},get utils(){return GO},get version(){return VO},loadDebugOverlay:(...e)=>L(CC,t,jC).call(t,...e)}}function qC(t){t&&(U(hC,this,t.canvas),U(lC,this,t.nodeRepository),U(cC,this,t.timeline),U(mC,this,t.audioAdapter||t.audioPlaybackManager),U(vC,this,t.tracker),U(gC,this,t.parsingManager),U(yC,this,t.qoe),U(fC,this,t.renderAdapter||t.renderer),U(pC,this,t.transitionManager),U(kC,this,t.containerSize))}class VC{constructor({target:t,props:e}){if(!t)throw new Error("`options.target` is required");lo(this.#wt,e,!0),this.#wt.v.EkoPlayer=PC;const n=t.hasChildNodes()?Gs:Vs;this.#_t=n(cu,{target:t,props:this.#wt.v})}#_t;#wt=so(fo({}));destroy(t){if(this.#_t)return function(t,e){const n=Xs.get(t);return n?(Xs.delete(t),n(e)):Promise.resolve()}(this.#_t,t)}get props(){return _s(this.#wt)}}const GC=b("gallery-react");const HC=a(((t,i)=>{const{config:r,debug:a,ssrHtml:c,activeItem:u={index:0,step:0},forceMobile:d,videoAspectRatio:h,onEvent:f=()=>{}}=t,p=n(null),m=n({}),v=function(t){return void 0!==t}(r),g=n(u),y=n(c);m.current.initEventSent||(f("galleryinit"),m.current.initEventSent=!0);const b=o((t=>{m.current.state=t,t.activeItemIndex===g.current.index&&t.activeModuleIndex===g.current.step||f("activeitemchanged",{index:t.activeItemIndex,step:t.activeModuleIndex})}),[]),k=o((t=>{m.current.API=t,0===u.index&&0===u.step||t.selectItemAndStep(u.index,u.step),m.current.unsubscribe&&m.current.unsubscribe(),m.current.unsubscribe=t.subscribe(b)}),[]),x=o(((t,e)=>{f(t,e)}),[f]);return s((()=>(GC.setDataStorage("gallery-react",{config:r}),window.eko=window.eko||{},window.eko.config=r,window.eko.gallery={version:"4.0.4"},()=>{window.eko.config=void 0})),[r]),l(i,(()=>({prev:()=>{var t;null===(t=m.current.API)||void 0===t||t.prev()},next:()=>{var t;null===(t=m.current.API)||void 0===t||t.next()}}))),s((()=>{if(null==p||!p.current)return;const t=p.current;return m.current.app=new VC({target:t,props:{config:r,forceMobile:d,videoAspectRatio:h,hideNav:!0,onGalleryReady:k,onEvent:x}}),()=>{var t;null===(t=m.current.app)||void 0===t||t.destroy()}}),[]),s((()=>{m.current.app&&(m.current.app.props.config=r)}),[r]),s((()=>{m.current.app&&(m.current.app.props.debug=a,m.current.app.props.forceMobile=d,m.current.app.props.videoAspectRatio=h,m.current.app.props.onEvent=x)}),[a,d,h,x]),s((()=>{g.current=u,m.current.state&&(m.current.state.activeItemIndex===u.index&&m.current.state.activeModuleIndex===u.step||m.current.API.selectItemAndStep(u.index,u.step))}),[u]),v?e.createElement("div",q({style:{position:"relative",width:"100%",height:"100%"},ref:p},y.current?{dangerouslySetInnerHTML:{__html:y.current}}:{})):t.children}));HC.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,ssrHtml:Ct.string,videoAspectRatio:Ct.string,debug:Ct.bool,activeItem:Ct.shape({index:Ct.number,step:Ct.number}),forceMobile:Ct.bool,instanceId:Ct.string,children:Ct.node},HC.displayName="EkoGallerySvelte";const KC=d("v2"),XC=d("v1");export{hn as E,j as _,W as a,U as b,z as c,L as d,u as e,XC as f,KC as g,HC as h,R as w};
|
|
14
|
+
*/var bt=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},n=0;n<10;n++)e["_"+String.fromCharCode(n)]=n;var i=Object.getOwnPropertyNames(e).map((function(t){return e[t]}));if("0123456789"!==i.join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(t){r[t]=t})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var n,i,r=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),o=1;o<arguments.length;o++){for(var s in n=Object(arguments[o]))gt.call(n,s)&&(r[s]=n[s]);if(vt){i=vt(n);for(var a=0;a<i.length;a++)yt.call(n,i[a])&&(r[i[a]]=n[i[a]])}}return r},kt="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED",xt=Function.call.bind(Object.prototype.hasOwnProperty),wt=function(){};if("production"!==process.env.NODE_ENV){var _t=kt,Tt={},It=xt;wt=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}}}function Et(t,e,n,i,r){if("production"!==process.env.NODE_ENV)for(var o in t)if(It(t,o)){var s;try{if("function"!=typeof t[o]){var a=Error((i||"React class")+": "+n+" type `"+o+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof t[o]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw a.name="Invariant Violation",a}s=t[o](e,o,i,n,null,_t)}catch(t){s=t}if(!s||s instanceof Error||wt((i||"React class")+": type specification of "+n+" `"+o+"` is invalid; the type checker function must return `null` or an `Error` but returned a "+typeof s+". You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument)."),s instanceof Error&&!(s.message in Tt)){Tt[s.message]=!0;var l=r?r():"";wt("Failed "+n+" type: "+s.message+(null!=l?l:""))}}}Et.resetWarningCache=function(){"production"!==process.env.NODE_ENV&&(Tt={})};var St=Et,At=function(){};function Nt(){return null}"production"!==process.env.NODE_ENV&&(At=function(t){var e="Warning: "+t;"undefined"!=typeof console&&console.error(e);try{throw new Error(e)}catch(t){}});var Mt=function(t,e){var n="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";var r="<<anonymous>>",o={array:c("array"),bigint:c("bigint"),bool:c("boolean"),func:c("function"),number:c("number"),object:c("object"),string:c("string"),symbol:c("symbol"),any:l(Nt),arrayOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside arrayOf.");var s=e[n];if(!Array.isArray(s))return new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected an array.");for(var l=0;l<s.length;l++){var c=t(s,l,i,r,o+"["+l+"]",kt);if(c instanceof Error)return c}return null}))},element:l((function(e,n,i,r,o){var s=e[n];return t(s)?null:new a("Invalid "+r+" `"+o+"` of type `"+h(s)+"` supplied to `"+i+"`, expected a single ReactElement.")})),elementType:l((function(t,e,n,i,r){var o=t[e];return mt.isValidElementType(o)?null:new a("Invalid "+i+" `"+r+"` of type `"+h(o)+"` supplied to `"+n+"`, expected a single ReactElement type.")})),instanceOf:function(t){return l((function(e,n,i,o,s){if(!(e[n]instanceof t)){var l=t.name||r;return new a("Invalid "+o+" `"+s+"` of type `"+(((c=e[n]).constructor&&c.constructor.name?c.constructor.name:r)+"` supplied to `")+i+"`, expected instance of `"+l+"`.")}var c;return null}))},node:l((function(t,e,n,i,r){return d(t[e])?null:new a("Invalid "+i+" `"+r+"` supplied to `"+n+"`, expected a ReactNode.")})),objectOf:function(t){return l((function(e,n,i,r,o){if("function"!=typeof t)return new a("Property `"+o+"` of component `"+i+"` has invalid PropType notation inside objectOf.");var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected an object.");for(var c in s)if(xt(s,c)){var u=t(s,c,i,r,o+"."+c,kt);if(u instanceof Error)return u}return null}))},oneOf:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At(arguments.length>1?"Invalid arguments supplied to oneOf, expected an array, got "+arguments.length+" arguments. A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).":"Invalid argument supplied to oneOf, expected an array."),Nt;return l((function(e,n,i,r,o){for(var l=e[n],c=0;c<t.length;c++)if(s(l,t[c]))return null;var u=JSON.stringify(t,(function(t,e){return"symbol"===f(e)?String(e):e}));return new a("Invalid "+r+" `"+o+"` of value `"+String(l)+"` supplied to `"+i+"`, expected one of "+u+".")}))},oneOfType:function(t){if(!Array.isArray(t))return"production"!==process.env.NODE_ENV&&At("Invalid argument supplied to oneOfType, expected an instance of array."),Nt;for(var e=0;e<t.length;e++){var n=t[e];if("function"!=typeof n)return At("Invalid argument supplied to oneOfType. Expected an array of check functions, but received "+p(n)+" at index "+e+"."),Nt}return l((function(e,n,i,r,o){for(var s=[],l=0;l<t.length;l++){var c=(0,t[l])(e,n,i,r,o,kt);if(null==c)return null;c.data&&xt(c.data,"expectedType")&&s.push(c.data.expectedType)}return new a("Invalid "+r+" `"+o+"` supplied to `"+i+"`"+(s.length>0?", expected one of type ["+s.join(", ")+"]":"")+".")}))},shape:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");for(var c in t){var d=t[c];if("function"!=typeof d)return u(i,r,o,c,f(d));var p=d(s,c,i,r,o+"."+c,kt);if(p)return p}return null}))},exact:function(t){return l((function(e,n,i,r,o){var s=e[n],l=h(s);if("object"!==l)return new a("Invalid "+r+" `"+o+"` of type `"+l+"` supplied to `"+i+"`, expected `object`.");var c=bt({},e[n],t);for(var d in c){var p=t[d];if(xt(t,d)&&"function"!=typeof p)return u(i,r,o,d,f(p));if(!p)return new a("Invalid "+r+" `"+o+"` key `"+d+"` supplied to `"+i+"`.\nBad object: "+JSON.stringify(e[n],null," ")+"\nValid keys: "+JSON.stringify(Object.keys(t),null," "));var m=p(s,d,i,r,o+"."+d,kt);if(m)return m}return null}))}};function s(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e}function a(t,e){this.message=t,this.data=e&&"object"==typeof e?e:{},this.stack=""}function l(t){if("production"!==process.env.NODE_ENV)var n={},i=0;function o(o,s,l,c,u,d,h){if(c=c||r,d=d||l,h!==kt){if(e){var f=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types");throw f.name="Invariant Violation",f}if("production"!==process.env.NODE_ENV&&"undefined"!=typeof console){var p=c+":"+l;!n[p]&&i<3&&(At("You are manually calling a React.PropTypes validation function for the `"+d+"` prop on `"+c+"`. This is deprecated and will throw in the standalone `prop-types` package. You may be seeing this warning due to a third-party PropTypes library. See https://fb.me/react-warning-dont-call-proptypes for details."),n[p]=!0,i++)}}return null==s[l]?o?null===s[l]?new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `null`."):new a("The "+u+" `"+d+"` is marked as required in `"+c+"`, but its value is `undefined`."):null:t(s,l,c,u,d)}var s=o.bind(null,!1);return s.isRequired=o.bind(null,!0),s}function c(t){return l((function(e,n,i,r,o,s){var l=e[n];return h(l)!==t?new a("Invalid "+r+" `"+o+"` of type `"+f(l)+"` supplied to `"+i+"`, expected `"+t+"`.",{expectedType:t}):null}))}function u(t,e,n,i,r){return new a((t||"React class")+": "+e+" type `"+n+"."+i+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+r+"`.")}function d(e){switch(typeof e){case"number":case"string":case"undefined":return!0;case"boolean":return!e;case"object":if(Array.isArray(e))return e.every(d);if(null===e||t(e))return!0;var r=function(t){var e=t&&(n&&t[n]||t[i]);if("function"==typeof e)return e}(e);if(!r)return!1;var o,s=r.call(e);if(r!==e.entries){for(;!(o=s.next()).done;)if(!d(o.value))return!1}else for(;!(o=s.next()).done;){var a=o.value;if(a&&!d(a[1]))return!1}return!0;default:return!1}}function h(t){var e=typeof t;return Array.isArray(t)?"array":t instanceof RegExp?"object":function(t,e){return"symbol"===t||!!e&&("Symbol"===e["@@toStringTag"]||"function"==typeof Symbol&&e instanceof Symbol)}(e,t)?"symbol":e}function f(t){if(null==t)return""+t;var e=h(t);if("object"===e){if(t instanceof Date)return"date";if(t instanceof RegExp)return"regexp"}return e}function p(t){var e=f(t);switch(e){case"array":case"object":return"an "+e;case"boolean":case"date":case"regexp":return"a "+e;default:return e}}return a.prototype=Error.prototype,o.checkPropTypes=St,o.resetWarningCache=St.resetWarningCache,o.PropTypes=o,o};function Ft(){}function Ot(){}Ot.resetWarningCache=Ft;var Ct=V((function(t){if("production"!==process.env.NODE_ENV){var e=mt;t.exports=Mt(e.isElement,!0)}else t.exports=function(){function t(t,e,n,i,r,o){if(o!==kt){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function e(){return t}t.isRequired=t;var n={array:t,bigint:t,bool:t,func:t,number:t,object:t,string:t,symbol:t,any:t,arrayOf:e,element:t,elementType:t,instanceOf:e,node:t,objectOf:e,oneOf:e,oneOfType:e,shape:e,exact:e,checkPropTypes:Ot,resetWarningCache:Ft};return n.PropTypes=n,n}()}));const Pt=/https?:\/\/(.*?\.)?eko.com/,Dt={"eko.project.interaction":"interaction","eko.project.swipe":"swipe"};let Rt=null,Lt=null,Bt=[];function zt(t){return e=>{var n;if(!Pt.test(e.origin)||"eko.embedapi"!==(null===(n=e.data)||void 0===n?void 0:n.source))return;const i=e.data,r=Dt[i.type];r&&(t?t(r,i.data):Bt.push({type:r,data:i.data}))}}"undefined"!=typeof window&&(Lt=zt(null),window.addEventListener("message",Lt));var Wt={subscribe:function(t){"function"==typeof t?Rt?console.warn("[eko-gallery-react] Ignoring events subscribe since already subscribed"):(Rt=t,Lt=zt(t),window.addEventListener("message",Lt),function(t){Bt.forEach((e=>{t(e.type,e.data)})),Bt=[]}(t)):console.warn("[eko-gallery-react] Ignoring events subscribe since a callback function was not provided as argument")},unsubscribe:function(){Lt?(window.removeEventListener("message",Lt),Lt=null,Rt=null,Bt=[]):console.warn("[eko-gallery-react] Ignoring events unsubscribe since not subscribed")},send:function(t,e){Rt?Rt(t,e):Bt.push({type:t,data:e})}};const Ut=({index:t,activeIndex:n,setActiveIndex:i,item:r,src:o,navItemRefs:s,itemIcon:a})=>{var l,c;const u=null==r||null===(l=r.media)||void 0===l?void 0:l.srcset,d=null==r||null===(c=r.media)||void 0===c?void 0:c.sizes,h=!o&&(null==r?void 0:r.label),f=u?o:function(t,e=200){if(!t)return null;try{let n=t;t.includes("assets.eko.com")&&t.includes("/raw/")&&(n=t.replace("/raw/","/image/"));const i=new URL(n);return i.searchParams.set("width",e),i.href}catch(e){return t}}(o,150);let p=["addons-container",h?"full-thumb-label":""].join(" ").trim();return e.createElement("li",{className:"eko-nav-item","aria-current":n===t,onClick:function(){i(t),function(t){R.track("gallery.interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"}),Wt.send("interaction",{elementid:`thumbnail-${t}`,interactiontype:"click"})}(t)},ref:s.current[t]},e.createElement("button",{type:"button","aria-label":`Go to item ${t}`},!h&&e.createElement("img",{src:f,srcSet:u,sizes:d,alt:null==r?void 0:r.name,loading:"eager",fetchPriority:"high"}),e.createElement("div",{className:p},(null==r?void 0:r.stepsIndication)&&e.createElement("div",{className:"step-indicator"},e.createElement("span",null),e.createElement("span",null),e.createElement("span",null)),(null==r?void 0:r.label)&&e.createElement("div",{className:"thumb-label"},null==r?void 0:r.label)),a&&e.createElement("div",{className:"item-icon"},e.createElement("span",{style:{backgroundImage:`url(${a})`}}))))};Ut.propTypes={index:Ct.number,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,item:Ct.object.isRequired,src:Ct.string,navItemRefs:Ct.object.isRequired,itemIcon:Ct.string};const $t=({layout:t,nav:i,isVerticalNav:r,showPrevArrow:o,showNextArrow:s})=>{var a,l,c,u,d;const h=n(null),f=n(null),p="arrows"===(null==t||null===(a=t.mobile)||void 0===a||null===(a=a.config)||void 0===a||null===(a=a.navPagination)||void 0===a?void 0:a.type)?"eko-mobile-arrows":"",m="arrows"===(null!==(l=null==t||null===(c=t.desktop)||void 0===c||null===(c=c.config)||void 0===c||null===(c=c.navPagination)||void 0===c?void 0:c.type)&&void 0!==l?l:"arrows")?"eko-desktop-arrows":"",v=p||m,g=r?null==i||null===(u=i.current)||void 0===u?void 0:u.scrollHeight:null==i||null===(d=i.current)||void 0===d?void 0:d.scrollWidth;function y(t){const e=r?i.current.clientHeight:i.current.clientWidth,n=function(t,e){const n=r?e.scrollTop:e.scrollLeft;return Math.max(-n,Math.min(g-t-n,t))}("next"===t?e:-e,i.current);return{top:r?n:0,left:r?0:n,behavior:"smooth"}}function b(t){var e,n,r;const o=y(t),s="next"===t?null==f||null===(e=f.current)||void 0===e?void 0:e.id:null==h||null===(n=h.current)||void 0===n?void 0:n.id;var a,l;window.EkoAnalytics("track","gallery.interaction",{elementid:s,interactiontype:"click"}),null==i||null===(r=i.current)||void 0===r||r.scrollBy(o),a=s,l="click",R.track("gallery.interaction",{elementId:a,interactiontype:l}),Wt.send("interaction",{elementId:a,interactiontype:l})}return e.createElement(e.Fragment,null,v&&e.createElement(e.Fragment,null,e.createElement("button",q({type:"button","aria-label":"Go to previous item","aria-hidden":o?"false":"true",onClick:()=>b("prev"),ref:h,id:"eko-nav-prev-arrow",className:`eko-nav-arrow eko-prev-nav-button ${p} ${m} ${o?"":"eko-hidden-nav-button"}`},o?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M5.56127 9.52817C5.28966 9.22635 5.28966 8.77361 5.56127 8.502L10.39 3.67331C10.6918 3.37157 11.1445 3.37157 11.4161 3.67331C11.7179 3.94492 11.7179 4.39766 11.4161 4.66927L7.10044 8.98487L11.4161 13.3307C11.7179 13.6023 11.7179 14.055 11.4161 14.3266C11.1445 14.6285 10.6918 14.6285 10.4202 14.3266L5.56127 9.52817Z",fill:"black"}))),e.createElement("button",q({type:"button","aria-label":"Go to next item","aria-hidden":s?"false":"true",onClick:()=>b("next"),ref:f,className:`eko-nav-arrow eko-next-nav-button ${p} ${m} ${s?"":"eko-hidden-nav-button"}`,id:"eko-nav-next-arrow"},s?{}:{tabIndex:"-1"}),e.createElement("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg"},e.createElement("path",{d:"M12.4387 8.47185C12.7103 8.77367 12.7103 9.22641 12.4387 9.49802L7.61003 14.3267C7.30821 14.6284 6.85547 14.6284 6.58386 14.3267C6.28212 14.0551 6.28212 13.6024 6.58386 13.3308L10.8996 9.01515L6.58386 4.66933C6.28212 4.39772 6.28212 3.94499 6.58386 3.67338C6.85547 3.37155 7.30821 3.37155 7.57982 3.67338L12.4387 8.47185Z",fill:"black"})))))};function jt(t,e,n){let i;return function(){const n=this,r=arguments;clearTimeout(i),i=setTimeout((function(){i=null,t.apply(n,r)}),e)}}$t.propTypes={layout:Ct.object.isRequired,nav:Ct.object.isRequired,isVerticalNav:Ct.bool.isRequired,showPrevArrow:Ct.bool.isRequired,showNextArrow:Ct.bool.isRequired};const qt=({items:t,setActiveIndex:a,activeIndex:l,layout:c,carouselMounted:u,forceMobile:d})=>{const h=n(null),f=n(null),p=n([]),m=3,[g,y]=i(null),[b,k]=i(!1),[x,w]=i(0),[_,T]=i(!1),[I,E]=i(!1);function S(){var t;const e=d||window.innerWidth<768?"mobile":"desktop",n=(null==c||null===(t=c[e])||void 0===t||null===(t=t.config)||void 0===t?void 0:t.orientation)||("desktop"===e?"left":"bottom");k("left"===n||"right"===n);const i=f.current.parentNode,r=u?".eko-smart-gallery-container iframe":".eko-carousel",o=i.querySelector(r);setTimeout((()=>{w(o.clientHeight)}),0)}function A(){var t,e;const n=d||v()?"mobile":"desktop",i=null!==(t=null==c||null===(e=c[n])||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.scrollThreshold)&&void 0!==t?t:m;!function(t=m){var e,n;const i=h.current;if(!i)return;const r="none"!==(null==c||null===(e=c.desktop)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.navPagination)||void 0===e?void 0:e.type),o=(s=null==c||null===(n=c.mobile)||void 0===n||null===(n=n.config)||void 0===n||null===(n=n.navPagination)||void 0===n?void 0:n.type,"mask"===s||"arrows"===s);var s;if((d||v())&&!o)return void i.style.setProperty("-webkit-mask","none");if(!v()&&!r)return void i.style.setProperty("-webkit-mask","none");const a=i.scrollHeight-i.clientHeight,l=i.scrollTop>t?"85%":"100%",u=i.scrollTop<=a-t?"15%":"0%",f=i.scrollWidth-i.clientWidth,p=i.scrollLeft>t?"15%":"0%",g=i.scrollLeft<=f-t?"85%":"100%";b?i.style.setProperty("-webkit-mask",`linear-gradient(0deg,#0000,#000 ${u} ${l},#0000)`):i.style.setProperty("-webkit-mask",`linear-gradient(90deg,#0000,#000 ${p} ${g},#0000)`)}(i),function(t=m){var e,n,i,r,o,s;const a=b?null==h||null===(e=h.current)||void 0===e?void 0:e.scrollTop:null==h||null===(n=h.current)||void 0===n?void 0:n.scrollLeft,l=b?null==h||null===(i=h.current)||void 0===i?void 0:i.clientHeight:null==h||null===(r=h.current)||void 0===r?void 0:r.clientWidth,c=b?null==h||null===(o=h.current)||void 0===o?void 0:o.scrollHeight:null==h||null===(s=h.current)||void 0===s?void 0:s.scrollWidth;c-t<l?(T(!1),E(!1)):a<=t?(T(!1),E(!0)):a+l>c-t?(T(!0),E(!1)):a+t>0&&a<c-t&&(T(!0),E(!0))}(i)}p.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==p||null===(i=p.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const N=jt((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"nav",interactiontype:e}),Wt.send("interaction",{elementid:"nav",interactiontype:e})}),200);const M=o((t=>{a({index:t,step:0,source:"nav"})}),[]);return s((()=>{var t;y(null===(t=p.current)||void 0===t?void 0:t[l])}),[l]),s((()=>{if(null!=g&&g.current&&null!=h&&h.current){const t=g.current,e=h.current.clientWidth/2,n=t.clientWidth/2,i=h.current.clientHeight/2,r=t.clientHeight/2;h.current.scrollTo({left:t.offsetLeft-e+n,top:t.offsetTop-i+r,behavior:"smooth"})}}),[g]),s((()=>{S()}),[]),s((()=>(window.addEventListener("resize",S),()=>{window.removeEventListener("resize",S)})),[f,u,d]),s((()=>{w(0),S()}),[t,f,u,d]),s((()=>{A();const t=new ResizeObserver(A);return t.observe(h.current),()=>{t.disconnect()}}),[t,d,b]),e.createElement("div",{className:"eko-nav-container",ref:f,style:{opacity:x>0?1:0,height:""+(x&&b?x+"px":"auto")}},e.createElement($t,{layout:c,nav:h,isVerticalNav:b,showPrevArrow:_,showNextArrow:I}),e.createElement("ul",{className:`eko-nav eko-mobile-nav-selected-${null!==(F=null==c||null===(O=c.mobile)||void 0===O||null===(O=O.config)||void 0===O?void 0:O.navItemsSelectedType)&&void 0!==F?F:"underline"} eko-desktop-nav-selected-${null!==(C=null==c||null===(P=c.desktop)||void 0===P||null===(P=P.config)||void 0===P?void 0:P.navItemsSelectedType)&&void 0!==C?C:"underline"}`,ref:h,onScroll:function(){A()},onWheel:function(){N("wheel")},onTouchMove:function(){N("swipe")}},null==t?void 0:t.map(((t,n)=>{var i;const r=(null==t||null===(i=t.media)||void 0===i?void 0:i.url)||(null==t?void 0:t.media)||"";return e.createElement(Ut,{key:r+n,index:n,activeIndex:l,setActiveIndex:M,item:t,src:r,navItemRefs:p,itemIcon:null==t?void 0:t.icon})}))));var F,O,C,P};qt.propTypes={items:Ct.array.isRequired,activeIndex:Ct.number,setActiveIndex:Ct.func.isRequired,layout:Ct.object,carouselMounted:Ct.bool,forceMobile:Ct.bool};function Vt(){R.track("gallery.cover.displayed"),Wt.send("gallerycoverdisplayed")}function Gt(t){if(!t)return t;try{const e=new URL(t);return e.host.includes("assets.eko.com")&&e.pathname.startsWith("/image")&&!e.searchParams.has("width")?(e.pathname.endsWith(".png")&&(e.pathname=e.pathname.replace(/\.png$/,".webp")),e.searchParams.set("width",1920),e.toString()):t}catch(e){return t}}const Ht=({item:t,src:i,srcset:r,sizes:o,isCoverElement:a})=>{const l=n(null);return s((()=>{var t;if(a){if(null===(t=l.current)||void 0===t||!t.complete)return l.current.addEventListener("load",Vt,{once:!0}),()=>{var t;null===(t=l.current)||void 0===t||t.removeEventListener("load",Vt,{once:!0})};Vt()}}),[]),e.createElement("img",{ref:l,src:Gt(i),srcSet:r,sizes:o,alt:t.name,fetchPriority:a?"high":"auto",loading:a?"eager":"lazy",style:{width:"100%",height:"100%"}})};Ht.propTypes={item:Ct.object.isRequired,src:Ct.string,srcset:Ct.string,sizes:Ct.string,isCoverElement:Ct.bool};const Kt=jt((t=>{var e;e=t,R.track("gallery.interaction",{elementid:"carousel",interactiontype:e}),Wt.send("interaction",{elementid:"carousel",interactiontype:e})}),200);function Xt(){Kt("wheel")}const Yt=a((({items:t,setActiveIndex:o,activeIndex:a,showSmartLoaders:c},u)=>{const d=n(null),h=n([]);h.current=null==t?void 0:t.map(((t,e)=>{var n,i;return null!==(n=null==h||null===(i=h.current)||void 0===i?void 0:i[e])&&void 0!==n?n:r()}));const[f,p]=i(),[m,v]=i(),g=n(a),y=n(!1);function b(){const e=function(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}(d.current)*(null==t?void 0:t.length)/100,n=Math.min(Math.trunc(e),(null==t?void 0:t.length)-1),i=g.current;"nav"!==i.source&&"external-nav"!==i.source?(y.current&&n!==i.index&&(y.current=!1),y.current||(n>(null==t?void 0:t.length)-1?o({index:(null==t?void 0:t.length)-1,source:"carousel"}):o({index:n,source:"carousel"}))):n===i.index?y.current=!0:y.current&&n!==i.index&&(y.current=!1,o({index:n,source:"carousel"}))}return l(u,(()=>({prev:()=>{o({index:Math.max(0,g.current.index-1),source:"carousel"})},next:()=>{o({index:Math.min((null==t?void 0:t.length)-1,g.current.index+1),source:"carousel"})}}))),s((()=>{const t=d.current;if(t)return t.addEventListener("scroll",b),()=>{t.removeEventListener("scroll",b)}}),[t]),s((()=>{var t;let e=null===(t=h.current)||void 0===t?void 0:t[a.index];if(e&&("nav"===a.source||"external-nav"===a.source)){const t=e.current,n=d.current.clientWidth/2,i=(null==t?void 0:t.clientWidth)/2,r=(null==t?void 0:t.offsetLeft)-n+i;d.current.scrollTo({left:r,behavior:"smooth"})}}),[a]),s((()=>{g.current=a,"nav"!==a.source&&"external-nav"!==a.source||(y.current=!1)}),[a]),e.createElement("ul",{className:"eko-carousel",ref:d,onScroll:b,onWheel:Xt,onTouchMove:function(t){v(t.targetTouches[0].clientX)},onTouchStart:function(t){p(t.targetTouches[0].clientX),v(null)},onTouchEnd:function(){m&&f&&(f-m>75||f-m<-75)&&Kt("swipe")}},null==t?void 0:t.map(((t,n)=>{const i=(null==t?void 0:t.cover)||(null==t?void 0:t.media),r=(null==i?void 0:i.url)||i;return e.createElement("li",{className:"eko-carousel-item",key:r+n,ref:h.current[n]},e.createElement(Ht,{item:t,src:r,srcset:null==i?void 0:i.srcset,sizes:null==i?void 0:i.sizes,isCoverElement:0===n}),c&&"image"!==t.type&&e.createElement("div",{className:"eko-smart-loading"},e.createElement("div",null),e.createElement("p",null,"Loading video experience")))})))}));function Qt(t){var e;return function(t){var e;return"eko.block.event"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)&&"GalleryBlock"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.blockType)}Yt.propTypes={items:Ct.array.isRequired,setActiveIndex:Ct.func.isRequired,activeIndex:Ct.object,showSmartLoaders:Ct.bool},Yt.displayName="CarouselLoop";const Jt="eko.project.invoke",Zt="eko.block.invoke";function te(t,e,n){var i;null!=t&&t.contentWindow&&(null==t||null===(i=t.contentWindow)||void 0===i||i.postMessage({target:"eko.embedapi",type:e,data:n},"*"))}function ee(t){return`#variantId=${encodeURIComponent(t)}`}const ne=a((({config:t,instanceId:r,setActiveItem:o,activeItem:a,variantId:c,smartGalleryLoaded:u,onLoad:d,forceMobile:h},f)=>{var p,m,g;const y=null!==(p=null===(m=t.options)||void 0===m?void 0:m.galleryEnv)&&void 0!==p?p:"",b=null===(g=t.__autoGenerated)||void 0===g||null===(g=g.publishItem)||void 0===g?void 0:g.id,k=function(t={}){let e="";return Object.entries(t).forEach((([t,n])=>{e+=`&${t}=${n}`})),e}(null==t?void 0:t.qp),x=function(t,e,n){return`https://${t}play.eko.com/embed?${n?`id=${n}`:`piid=${e}`}&nocover=true&galleryBlockMode=gallery&eko_pixel=true`}(y,b,r),w=n(null),_=n(null),T=n(!1),[I,E]=i(ee(c||"ekonovar")),[S,A]=i(x+k+I);let N;function M(){R.track("gallery.project.display"),d(),Wt.send("galleryloaded")}return l(f,(()=>({prev:()=>{te(null==_?void 0:_.current,Zt,{action:"onPrevModule"})},next:()=>{te(null==_?void 0:_.current,Zt,{action:"onNextModule"})}}))),s((()=>{T.current?te(null==_?void 0:_.current,Jt,{action:"updateVariant",args:{id:c}}):E(ee(c))}),[c]),s((()=>{te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}})}),[a]),s((()=>{function t(t){if((function(t){var e;return"eko.project.blockstart"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)}(t)||function(t){var e,n;return"eko.project.started"===(null==t||null===(e=t.data)||void 0===e?void 0:e.type)&&(null==t||null===(n=t.data)||void 0===n||null===(n=n.data)||void 0===n?void 0:n.started)}(t))&&!T.current)return e=t.data.data.blockType,T.current=!0,void("GalleryBlock"===e?te(null==_?void 0:_.current,Zt,{action:"updateActiveModule",args:{activeItemIndex:null==a?void 0:a.index,activeModuleIndex:null==a?void 0:a.step}}):M());var e;if(T.current){if(function(t){var e;return Qt(t)&&"activeModuleChanged"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)}(t))return void function(t){const e=t.data.data.data.activeItemIndex,n=t.data.data.data.activeModuleIndex;e===(null==a?void 0:a.index)&&n===(null==a?void 0:a.step)||o({index:e,step:n,source:"carousel"})}(t);(function(t){var e;return Qt(t)&&"activeModuleChangeDone"===(null==t||null===(e=t.data)||void 0===e||null===(e=e.data)||void 0===e?void 0:e.name)})(t)&&!u&&M()}}return N=h||v()?"mobile":"desktop",function(t,e={}){window.addEventListener("message",t,e)}(t),()=>{!function(t,e={}){window.removeEventListener("message",t,e)}(t)}}),[a]),s((()=>{T.current||te(null==_?void 0:_.current,Jt,{action:"queryProjectStarted"})}),[a,u]),s((()=>{T.current=!1}),[t]),s((()=>{A(x+k+I)}),[I]),e.createElement("div",{className:"eko-smart-gallery-container "+(u?"":"eko-project-not-ready"),ref:w,"data-type":"smart-gallery","data-qp":k,"data-variant":c,"data-device":N},e.createElement("iframe",{allow:"autoplay; fullscreen",title:"eko gallery",src:S,style:{border:0},ref:_}))}));ne.propTypes={config:Ct.object.isRequired,instanceId:Ct.string,setActiveItem:Ct.func.isRequired,activeItem:Ct.object.isRequired,variantId:Ct.string,smartGalleryLoaded:Ct.bool,onLoad:Ct.func,forceMobile:Ct.bool},ne.displayName="SmartGallery";const ie=()=>e.createElement("style",{suppressHydrationWarning:!0},'.eko-gallery {\n --accentColorEko: #000;\n --primaryColorEko: #000;\n --backgroundColorEko: #25D7A2;\n --navItemsBackgroundColorEko: transparent;\n --navItemsBannerBackgroundColorEko: #EEEEEE;\n --carouselItemsBackgroundColorEko: transparent;\n --carouselInteractiveCoverBackgroundColorEko: transparent;\n --galleryGapEkoMobile: 12px;\n --galleryGapEkoDesktop: 12px;\n --galleryPaddingEkoMobile: 0;\n --galleryPaddingEkoDesktop: 0;\n --galleryMaxWidthEkoMobile: 100%;\n --galleryMaxWidthEkoDesktop: 900px;\n --galleryTransition: .8s cubic-bezier(.35, 0, 0, 1) 1.5s;\n --navBarPaddingEkoMobile: 0 0 0 20px;\n --navBarPaddingEkoDesktop: 0;\n --navItemsWidthEkoMobile: 80px;\n --navItemsWidthEkoDesktop: 80px;\n --navItemsHeightEkoMobile: 80px;\n --navItemsHeightEkoDesktop: 80px;\n --navItemsGapEkoMobile: 14px;\n --navItemsGapEkoDesktop: 14px;\n --navItemsRadiusEkoMobile: 8px;\n --navItemsRadiusEkoDesktop: 8px;\n --navItemsSelectedMarginEkoMobile: 3px;\n --navItemsSelectedMarginEkoDesktop: 3px;\n --navItemsSelectedThicknessEkoMobile: 3px;\n --navItemsSelectedThicknessEkoDesktop: 3px;\n --navItemsSelectedUnderlineRadiusEkoMobile: 100px;\n --navItemsSelectedUnderlineRadiusEkoDesktop: 100px;\n --navItemsObjectFitEkoMobile: cover;\n --navItemsObjectFitEkoDesktop: cover;\n --navMediaBadgeSizeEkoMobile: 22px;\n --navMediaBadgeSizeEkoDesktop: 22px;\n --navMediaBadgeMarginTopEkoMobile: 4px;\n --navMediaBadgeMarginTopEkoDesktop: 4px;\n --navMediaBadgeMarginRightEkoMobile: 4px;\n --navMediaBadgeMarginRightEkoDesktop: 4px;\n --carouselItemsAspectRatioEkoMobile: 1 / 1;\n --carouselItemsAspectRatioEkoDesktop: 1 / 1;\n --carouselItemsRadiusEkoMobile: 0px;\n --carouselItemsRadiusEkoDesktop: 12px;\n --carouselItemsObjectFitEkoMobile: cover;\n --carouselItemsObjectFitEkoDesktop: cover;\n --navBannerFontSizeEkoMobile: 12px;\n --navBannerFontSizeEkoDesktop: 12px;\n --navBannerFontLineHeightEkoMobile: 120%;\n --navBannerFontLineHeightEkoDesktop: 120%;\n --navBannerFontFamilyEkoMobile: inherit;\n --navBannerFontFamilyEkoDesktop: inherit;\n --navBannerFontWeightEkoMobile: 400;\n --navBannerFontWeightEkoDesktop: 400;\n --outerWidth: 0\n}\n\n.eko-gallery * {\n box-sizing: border-box\n}\n\n.eko-gallery ul,\n.eko-gallery li {\n padding: 0;\n text-indent: 0;\n list-style-type: none;\n font-size: 0;\n margin: 0\n}\n\n.eko-gallery button {\n border: none;\n padding: 0\n}\n\n.eko-gallery .eko-hidden {\n display: none !important\n}\n\n.eko-gallery .eko-not-visible {\n visibility: hidden !important\n}\n\n.eko-hidden-variant {\n display: none !important\n}\n\n.eko-sr-only {\n width: 1px;\n height: 1px;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n margin: -1px;\n padding: 0;\n position: absolute;\n overflow: hidden\n}\n\n.eko-sticky-top {\n position: sticky;\n top: 0\n}\n\n.eko-gallery .eko-nav {\n height: 100%;\n display: flex;\n align-items: start;\n align-self: start;\n flex-shrink: 0;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-gallery .eko-nav li {\n font-size: 0;\n position: relative;\n display: flex;\n flex-shrink: 0;\n justify-content: center;\n -webkit-box-pack: center;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button {\n position: relative;\n background-color: transparent;\n border-radius: 0;\n line-height: 0;\n overflow: hidden;\n cursor: pointer\n}\n\n.eko-gallery .eko-nav li button img {\n background-color: var(--navItemsBackgroundColorEko);\n pointer-events: none\n}\n\n.eko-gallery .eko-nav li button .item-icon {\n position: absolute;\n top: 0;\n right: 0;\n width: 32px;\n height: 32px;\n transform: scale(.25);\n transform-origin: top right\n}\n\n.eko-gallery .eko-nav li button .item-icon span {\n display: block;\n width: 400%;\n height: 400%;\n position: absolute;\n top: 0;\n right: 0;\n background-position: top right;\n background-repeat: no-repeat;\n background-size: contain\n}\n\n.eko-gallery .eko-nav li .addons-container {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n flex-direction: column;\n font-size: 10px;\n line-height: 100%\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n width: 100%;\n background: var(--navItemsBannerBackgroundColorEko);\n padding: 4px;\n text-align: center;\n text-wrap: balance;\n color: var(--primaryColorEko)\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator {\n width: 100%;\n display: flex;\n flex-direction: row;\n justify-content: center;\n gap: 5px;\n padding: 6px\n}\n\n.eko-gallery .eko-nav li .addons-container .step-indicator span {\n width: 5px;\n height: 5px;\n border-radius: 100px;\n background: #fff;\n box-shadow: 0 0 3px #00000094\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label {\n position: relative\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .step-indicator {\n position: absolute;\n bottom: 0\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n align-content: center\n}\n\n.eko-gallery .eko-nav::-webkit-scrollbar {\n display: none\n}\n\n.eko-nav-container {\n display: flex\n}\n\n.eko-nav-container:has(.eko-nav.eko-not-visible) .eko-nav-arrow {\n display: none\n}\n\n.eko-nav-container {\n position: relative;\n opacity: 0;\n transition: opacity .15s ease-in\n}\n\n.eko-nav-container .eko-nav-arrow {\n width: 28px;\n height: 28px;\n position: absolute;\n display: none;\n justify-content: center;\n align-items: center;\n border-radius: 28px;\n background-color: #fff;\n box-shadow: 0 0 6px #0000001f;\n z-index: 1;\n bottom: 50%;\n opacity: 1;\n transition: opacity .15s ease-in;\n transform: translateY(50%);\n cursor: pointer\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button svg,\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button svg {\n padding: 1px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-prev-nav-button {\n left: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-next-nav-button {\n right: 8px\n}\n\n.eko-nav-container .eko-nav-arrow.eko-hidden-nav-button {\n opacity: 0;\n pointer-events: none\n}\n\n.eko-gallery .eko-nav {\n gap: var(--navItemsGapEkoMobile);\n padding: var(--navBarPaddingEkoMobile)\n}\n\n.eko-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile);\n object-fit: var(--navItemsObjectFitEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoMobile);\n font-size: var(--navBannerFontSizeEkoMobile);\n line-height: var(--navBannerFontLineHeightEkoMobile);\n font-weight: var(--navBannerFontWeightEkoMobile)\n}\n\n.eko-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoMobile);\n height: var(--navItemsHeightEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li {\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile))\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoMobile);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoMobile);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoMobile)\n}\n\n.eko-gallery .eko-nav.eko-mobile-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoMobile) + var(--navItemsSelectedMarginEkoMobile));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoMobile) var(--accentColorEko)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-liquid-gallery .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav {\n gap: var(--navItemsGapEkoDesktop);\n padding: var(--navBarPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li button img {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop);\n object-fit: var(--navItemsObjectFitEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container .thumb-label {\n font-family: var(--navBannerFontFamilyEkoDesktop);\n font-size: var(--navBannerFontSizeEkoDesktop);\n line-height: var(--navBannerFontLineHeightEkoDesktop);\n font-weight: var(--navBannerFontWeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .addons-container.full-thumb-label .thumb-label {\n width: var(--navItemsWidthEkoDesktop);\n height: var(--navItemsHeightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li {\n border-radius: 0;\n padding: 0;\n padding-bottom: calc(var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop))\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true] {\n box-shadow: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-underline li[aria-current=true]:after {\n content: "";\n width: 100%;\n height: var(--navItemsSelectedThicknessEkoDesktop);\n border-radius: var(--navItemsSelectedUnderlineRadiusEkoDesktop);\n background-color: var(--accentColorEko);\n display: block;\n position: absolute;\n bottom: 0;\n left: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li {\n padding: var(--navItemsSelectedMarginEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li button {\n border-radius: var(--navItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true] {\n border-radius: calc(var(--navItemsRadiusEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop));\n box-shadow: 0 0 0 var(--navItemsSelectedThicknessEkoDesktop) var(--accentColorEko)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav.eko-desktop-nav-selected-outline li[aria-current=true]:after {\n content: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow {\n width: 30px;\n height: 30px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container .eko-nav-arrow.eko-desktop-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav-container:has(.eko-desktop-nav-selected-underline) .eko-nav-arrow.eko-desktop-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoDesktop) + var(--navItemsSelectedMarginEkoDesktop)) / 2))\n }\n}\n\n@media screen and (max-width: 767px) {\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-arrow.eko-mobile-arrows {\n display: flex\n }\n\n .eko-gallery.eko-react-gallery.eko-mobile .eko-nav-container:has(.eko-mobile-nav-selected-underline) .eko-nav-arrow.eko-mobile-arrows {\n transform: translateY(calc(50% - (var(--navItemsSelectedThicknessEkoMobile) + var(--navItemsSelectedMarginEkoMobile)) / 2))\n }\n}\n\n.eko-media-badge {\n display: none;\n width: var(--navMediaBadgeSizeEkoMobile);\n height: var(--navMediaBadgeSizeEkoMobile);\n background: #fff;\n align-items: center;\n justify-content: center;\n border-radius: 100%;\n box-shadow: 0 0 4px #00000014;\n place-content: center;\n position: absolute;\n top: var(--navMediaBadgeMarginTopEkoMobile);\n right: var(--navMediaBadgeMarginRightEkoMobile)\n}\n\n.eko-media-badge svg {\n width: 100%;\n height: 100%\n}\n\n.eko-media-badge svg path {\n fill: #000\n}\n\n.eko-nav li .eko-media-badge-mobile {\n display: flex\n}\n\nsvg.interactiveThumb {\n position: absolute;\n top: 3px;\n right: -2.5px;\n width: 100%;\n height: 100%\n}\n\nsvg.interactiveThumb.hand {\n animation: handAnim 2.5s linear infinite\n}\n\nsvg.interactiveThumb.beam {\n animation: beamAnim 2.5s linear infinite;\n transform-origin: 26% 40%;\n top: 0\n}\n\n@keyframes handAnim {\n 0% {\n transform: translateY(0)\n }\n\n 3% {\n transform: translateY(-4px)\n }\n\n 15% {\n transform: translateY(0)\n }\n\n to {\n transform: translateY(0)\n }\n}\n\n@keyframes beamAnim {\n 0% {\n transform: scale(1);\n opacity: 0\n }\n\n 5% {\n transform: scale(1.1);\n opacity: 1\n }\n\n 30% {\n transform: scale(1.4);\n opacity: 0\n }\n\n to {\n transform: scale(1.4);\n opacity: 0\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-media-badge {\n width: var(--navMediaBadgeSizeEkoDesktop);\n height: var(--navMediaBadgeSizeEkoDesktop);\n top: var(--navMediaBadgeMarginTopEkoDesktop);\n right: var(--navMediaBadgeMarginRightEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-mobile {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-nav li .eko-media-badge-desktop {\n display: flex\n }\n}\n\n.eko-loading-animation {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n pointer-events: none\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar {\n opacity: .6\n}\n\n.eko-loading-animation.eko-show-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n animation: eko-loading-bar-inner-animation 2s infinite\n}\n\n.eko-loading-animation.eko-show-loading-text .eko-loading-text {\n opacity: 1\n}\n\n.eko-loading-animation .eko-animated-bar {\n width: 100%;\n height: 4px;\n background-color: #e8e8e8b2;\n opacity: 0;\n transition: opacity .5s;\n position: relative\n}\n\n.eko-loading-animation .eko-animated-bar .eko-animated-bar-inner {\n width: 150px;\n height: 100%;\n transform: translate(-150px);\n background-color: var(--accentColorEko, #4d484b);\n display: block;\n position: absolute\n}\n\n.eko-loading-animation .eko-loading-text {\n position: absolute;\n top: 10px;\n left: 50%;\n transform: translate(-50%);\n color: #656565;\n font-size: 12px;\n font-family: Bogle-Medium, sans-serif;\n font-weight: 500;\n opacity: 0;\n align-items: center;\n display: flex;\n gap: 2px;\n transition: opacity .5s\n}\n\n.eko-loading-animation .eko-loading-text-icon {\n opacity: 60%\n}\n\n.eko-loading-animation .eko-loading-text-icon svg {\n transform: translate(2px, 2px)\n}\n\n.eko-loading-animation .eko-loading-text-icon path {\n fill: var(--accentColorEko, #4d484b)\n}\n\n.eko-loading-animation.eko-hide-icon .eko-loading-text-icon {\n display: none\n}\n\n@keyframes eko-loading-bar-inner-animation {\n 0% {\n left: -350px\n }\n\n to {\n left: calc(100% + 350px)\n }\n}\n\n.eko-smart-loading {\n position: absolute;\n top: 8px;\n left: 50%;\n transform: translate(-50%);\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 4px\n}\n\n.eko-smart-loading div {\n position: relative;\n width: 158px;\n height: 3px;\n background-color: #dcdcdc;\n overflow: hidden;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 1s\n}\n\n.eko-smart-loading div:after {\n content: "";\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n background-color: #878787;\n animation: eko-smart-loading-animation 2.5s ease-in-out infinite\n}\n\n.eko-smart-loading p {\n font-size: 11px;\n line-height: 120%;\n font-weight: 500;\n color: #6b6b6b;\n text-shadow: 0 0 2px white;\n opacity: 0;\n animation: eko-smart-loading-show-animation .2s linear forwards 3s\n}\n\n@keyframes eko-smart-loading-animation {\n 0% {\n transform: translate(-100%)\n }\n\n to {\n transform: translate(100%)\n }\n}\n\n@keyframes eko-smart-loading-show-animation {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 100%\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-liquid-gallery .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n@media screen and (min-width: 450px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-animated-bar {\n height: 6px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text {\n font-size: 16px;\n top: 12px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-loading-animation .eko-loading-text-icon {\n transform: rotate(180deg)\n }\n}\n\n.eko-carousel {\n width: 100%;\n white-space: nowrap;\n overflow-x: auto;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n overscroll-behavior-x: contain;\n align-self: start;\n align-items: start;\n display: flex;\n gap: 10px;\n scrollbar-width: none;\n -ms-overflow-style: none\n}\n\n.eko-carousel li {\n width: 100%;\n display: inline-block;\n position: relative;\n align-items: start;\n overflow: hidden;\n scroll-snap-align: center;\n scroll-snap-stop: always;\n flex-shrink: 0\n}\n\n.eko-carousel li img.eko-cover-image {\n position: relative;\n pointer-events: none;\n transition: opacity .5s;\n z-index: 1;\n width: 100%;\n height: 100%;\n background-color: var(--carouselInteractiveCoverBackgroundColorEko)\n}\n\n.eko-carousel li iframe {\n position: absolute;\n border: none;\n top: 0;\n left: 0\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n width: 100%;\n height: 100%;\n max-width: 100%;\n max-height: 100%;\n min-width: 0;\n background-color: var(--carouselItemsBackgroundColorEko)\n}\n\n.eko-carousel li[data-type=videoembed],\n.eko-carousel li[data-type=video] {\n cursor: pointer\n}\n\n.eko-carousel::-webkit-scrollbar {\n display: none\n}\n\n.eko-carousel:has(.zoomed) {\n overflow: hidden\n}\n\n.eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoMobile)\n}\n\n.eko-carousel li img.eko-desktop-cover-image {\n display: none\n}\n\n.eko-carousel li img.eko-mobile-cover-image {\n display: inline\n}\n\n.eko-carousel li img,\n.eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile);\n object-fit: var(--carouselItemsObjectFitEkoMobile)\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-carousel li img,\n .eko-gallery.eko-liquid-gallery .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li img,\n .eko-gallery.eko-react-gallery.eko-desktop .eko-carousel li video {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop);\n object-fit: var(--carouselItemsObjectFitEkoDesktop)\n }\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-nav-container {\n display: none\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-carousel {\n overflow-x: hidden\n}\n\n.eko-gallery.eko-mobile-embed-layout .eko-mobile-carousel-scroll {\n overflow-x: auto\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-nav-container {\n display: none\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel {\n overflow-x: hidden\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-embed-layout .eko-carousel.eko-desktop-carousel-scroll {\n overflow-x: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-mobile-embed-layout.eko-desktop-nav-layout .eko-nav-container {\n display: flex\n }\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom .eko-nav,\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top .eko-nav,\n.eko-gallery.eko-desktop-nav-layout.eko-desktop-nav-top .eko-nav {\n flex-direction: row;\n overflow-x: auto;\n overflow-y: hidden;\n max-width: 100%;\n margin: auto\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-bottom {\n flex-direction: column-reverse\n}\n\n.eko-gallery.eko-mobile-nav-layout.eko-mobile-nav-top {\n flex-direction: column\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-bottom {\n flex-direction: column-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-top {\n flex-direction: column\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-liquid-gallery.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right {\n flex-direction: row-reverse\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left {\n flex-direction: row\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav {\n display: flex;\n flex-direction: column;\n justify-content: start;\n overflow-x: hidden;\n overflow-y: auto;\n gap: var(--navItemsGapEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container {\n display: flex;\n flex-shrink: 0\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button {\n top: 4px;\n left: auto\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n bottom: 4px\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button {\n right: 50%;\n transform: translate(50%)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-left .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-prev-nav-button svg,\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout.eko-desktop-nav-right .eko-nav-container button.eko-nav-arrow.eko-next-nav-button svg {\n transform: rotate(90deg)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop.eko-desktop-nav-layout .eko-carousel {\n align-self: start\n }\n}\n\n.eko-gallery .eko-introButton {\n cursor: pointer;\n white-space: nowrap;\n pointer-events: auto;\n position: absolute;\n bottom: 100px;\n left: 50%;\n transform: translate(-50%);\n padding: 15px 20px\n}\n\n.eko-gallery .eko-introButton .eko-handContainer {\n display: none\n}\n\n.eko-gallery {\n position: relative;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n justify-content: start;\n margin-inline-start: calc(-1 * var(--outerWidth));\n margin-inline-end: calc(-1 * var(--outerWidth));\n padding: var(--galleryPaddingEkoMobile);\n margin: auto;\n max-width: var(--galleryMaxWidthEkoMobile);\n transition: height var(--galleryTransition, .8s cubic-bezier(.35, 0, 0, 1) 1.5s), padding 0s;\n gap: var(--galleryGapEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoMobile);\n overflow: hidden;\n flex: 1;\n display: flex;\n height: fit-content\n}\n\n.eko-gallery .eko-smart-gallery-container iframe {\n width: 100%;\n aspect-ratio: var(--carouselItemsAspectRatioEkoMobile)\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n opacity: 0;\n pointer-events: none;\n touch-action: none\n}\n\n.eko-gallery .eko-smart-gallery-container.eko-project-not-ready iframe {\n pointer-events: none;\n touch-action: none\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-liquid-gallery {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-liquid-gallery .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}\n\n@media screen and (min-width: 768px) {\n .eko-gallery.eko-react-gallery.eko-desktop {\n max-width: var(--galleryMaxWidthEkoDesktop);\n gap: var(--galleryGapEkoDesktop);\n padding: var(--galleryPaddingEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container {\n border-radius: var(--carouselItemsRadiusEkoDesktop)\n }\n\n .eko-gallery.eko-react-gallery.eko-desktop .eko-smart-gallery-container iframe {\n aspect-ratio: var(--carouselItemsAspectRatioEkoDesktop)\n }\n}'),re=({layout:t,style:n})=>{let i={};return function(t={}){Object.keys(t).forEach((e=>{i[`--${e}Eko`]=t[e]}))}(n),function(t){var e,n;const r=(null==t||null===(e=t.desktop)||void 0===e?void 0:e.config)||{},o=(null==t||null===(n=t.mobile)||void 0===n?void 0:n.config)||{};Object.keys(r).forEach((t=>{"string"==typeof r[t]&&(i[`--${t}EkoDesktop`]=r[t])})),Object.keys(o).forEach((t=>{"string"==typeof o[t]&&(i[`--${t}EkoMobile`]=o[t])}))}(t),e.createElement("style",{key:{layout:t,style:n}},`.eko-gallery {${Object.keys(i).map((t=>`${t}: ${i[t]};`)).join("\n")}}`)};re.propTypes={layout:Ct.object,style:Ct.object},b("experiment");const oe=({activeVariantId:t,activeElementId:e,hasInteractive:i,experiments:r,publishItem:o})=>{const a="gallery",l=n(t),c=n(e),u=n(i),d=n(r),h=n(o);s((()=>{l.current=t,c.current=e,u.current=i,d.current=r,h.current=o}),[t,e,i,r,o]);const f={publishItemPacker:{tag:a,schema:"iglu:com.helloeko/publishitem/jsonschema/1-0-0",match:/.*/,getData:function(){const t=h.current;if(t){const e={};return null!=t&&t.id&&(e.id=t.id),null!=t&&t.productId&&(e.productid=t.productId),t.salesChannelId&&(e.saleschannelid=t.salesChannelId),null!=t&&t.salesChannelName&&(e.saleschannelname=t.salesChannelName),t.salesChannelType&&(e.saleschanneltype=t.salesChannelType),e.id?e:void 0}}},galleryInteractionPacker:{tag:a,schema:"iglu:com.helloeko/gallery_interaction/jsonschema/1-0-0",match:"gallery.interaction",getData:function({elementid:t,interactiontype:e}){return{elementid:String(t),interactiontype:e}}},galleryPacker:{tag:a,schema:"iglu:com.helloeko/gallery/jsonschema/1-0-2",match:/^gallery.*/,getData:function(){var t;return{activeitemid:c.current.toString(),activevariantid:l.current,hasinteractive:u.current,version:(null===(t=window.eko)||void 0===t||null===(t=t.gallery)||void 0===t?void 0:t.version)||""}}},activeVariantIdPacker:{tag:a,schema:"iglu:com.helloeko/variant/jsonschema/1-0-1",match:/.*/,getData:function(){if(l.current)return{id:l.current}}},experimentPacker:{tag:a,schema:"iglu:com.helloeko/experiment/jsonschema/1-0-3",match:/.*/,getData:function(){var t;let e=function(t){let e=null;if(t){const n=Math.floor(Date.now()/1e3);for(const i of t){if("deliverable"!==i.type)return;const t=Math.floor(new Date(i.startDate).getTime()/1e3),r=Math.floor(new Date(i.endDate).getTime()/1e3);!0===i.active&&n>t&&n<r&&(e=i)}}return e}(d.current);if(!e)return;let n={experimentid:e.id||"",experimentvariant:e.chosen||"pending decision",experimenttype:e.type||""},i=null===(t=e.targetDevice)||void 0===t?void 0:t.toLowerCase();return"mobile"!==i&&"notmobile"!==i||(n.experimenttargeting={device:i}),n}}};return s((()=>(Object.values(f).forEach((t=>{window.EkoAnalytics("registerContextPacker",t)})),()=>{window.EkoAnalytics("reset",a)})),[]),null};oe.propTypes={activeVariantId:Ct.string,activeElementId:Ct.number,hasInteractive:Ct.bool,experiments:Ct.array,publishItem:Ct.object};const se=({variantId:t,activeItem:i,hasInteractive:r,activeIndex:o,experiments:a,publishItem:l})=>{const c=n(!0);return s((()=>{c.current||t&&R.track("gallery.variant.change")}),[t]),s((()=>{c.current||R.track("gallery.element.change",{activeIndex:o})}),[o]),s((()=>{c.current||i&&null!=l&&l.id&&R.track("gallery.asset.view",{publishitemid:l.id,type:i.type,name:i.name})}),[i]),s((()=>{c.current=!1}),[]),e.createElement(oe,{activeVariantId:t||"ekonovar",activeElementId:o,hasInteractive:r,experiments:a,publishItem:l})};se.propTypes={variantId:Ct.string,activeItem:Ct.object,hasInteractive:Ct.bool,activeIndex:Ct.number,experiments:Ct.array,publishItem:Ct.object};const ae="eko-gallery-react";function le(t,e){var n,i,r;const o=(null==t||null===(n=t.variantMap)||void 0===n?void 0:n[e])||"ekonovar";return(null==t||null===(i=t.items)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.variantId)===o)))||(null==t||null===(r=t.items)||void 0===r?void 0:r[0])}"undefined"!=typeof window&&(window.EkoAnalytics||(console.log("EkoAnalytics is not defined, initializing a no-op function..."),window.EkoAnalytics=()=>{}));const ce=a((({className:t,config:r,instanceId:o,variantId:a,activeItem:l={index:0,step:0},onEvent:c,forceMobile:u},d)=>{var h,f,p,m,v,g;const y=null!==(h=null===(f=r.options)||void 0===f?void 0:f.loadingTimeout)&&void 0!==h?h:12,b=null===(p=null===(m=r.options)||void 0===m?void 0:m.showCoverLoadAnimation)||void 0===p||p,[k,x]=i(le(r,a)),[w,_]=i({index:l.index,step:l.step,source:"external-nav"}),[T,I]=i(!1),[E,S]=i(!1),[A,N]=i("eko-desktop"),M=n(!1),F=n(!1),O=n(l),C=n(null),P=n(a);function D(){const t=u||window.innerWidth<768?"eko-mobile":"eko-desktop";N(t)}return F.current||(Wt.send("galleryinit"),F.current=!0),s((()=>{const t=P.current!==a;P.current=a,x(le(r,a)),t&&!M.current&&_({index:0,step:0,source:"external-nav"})}),[r,a]),s((()=>{if(c)return Wt.subscribe(c),()=>{Wt.unsubscribe()}}),[c]),s((()=>{M.current=E}),[E]),s((()=>{I(!1),S(!1);const t=setTimeout((()=>{M.current||(I(!0),R.track("gallery.load.timeout"))}),1e3*y);return()=>{clearTimeout(t)}}),[r]),s((()=>{D()}),[u]),s((()=>(window.addEventListener("resize",D),D(),()=>{window.removeEventListener("resize",D)})),[u]),s((()=>(window.EkoAnalytics("trackElementVisibility",C.current,ae),()=>{window.EkoAnalytics("stopTrackingElementVisibility",ae)})),[]),s((()=>{!("carousel"===(null==w?void 0:w.source)||"nav"===(null==w?void 0:w.source))||(null==w?void 0:w.index)===l.index&&(null==w?void 0:w.step)===l.step||Wt.send("activeitemchanged",{index:null==w?void 0:w.index,step:null==w?void 0:w.step})}),[w,l]),s((()=>{O.current.index===l.index&&O.current.step===l.step||(O.current=l,_({index:l.index,step:l.step,source:"external-nav"}))}),[l]),e.createElement(e.Fragment,null,e.createElement(ie,null),e.createElement(re,{layout:r.layout,style:r.style,forceMobile:u}),e.createElement(se,{variantId:a,activeItem:null==k||null===(v=k.items)||void 0===v?void 0:v[w.index],activeIndex:w.index,hasInteractive:E,experiments:r.experiments,publishItem:null==r||null===(g=r.__autoGenerated)||void 0===g?void 0:g.publishItem}),e.createElement("section",{className:`${`eko-gallery eko-react-gallery ${function(t){let e="";return["mobile","desktop"].forEach((n=>{var i,r;const o=null!==(i=null==t||null===(r=t[n])||void 0===r?void 0:r.type)&&void 0!==i?i:"nav";if(e+=`eko-${n}-${o}-layout `,"nav"===o){var s;const i="desktop"===n,r=(null==t||null===(s=t[n])||void 0===s||null===(s=s.config)||void 0===s?void 0:s.orientation)||(i?"left":"bottom");e+=`eko-${n}-nav-${r} `}})),e}(r.layout)} ${null!=t?t:""}`.trim()} ${A}`,"aria-controls":"main-content",ref:C},e.createElement(qt,{items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:w.index,layout:r.layout,carouselMounted:E,forceMobile:u}),!E&&e.createElement(Yt,{ref:d,items:(null==k?void 0:k.items)||[],setActiveIndex:_,activeIndex:{index:w.index,source:null==w?void 0:w.source},showSmartLoaders:!T&&b}),!T&&e.createElement(ne,{ref:d,config:r,instanceId:o,activeItem:w,setActiveItem:_,variantId:null==k?void 0:k.variantId,smartGalleryLoaded:E,forceMobile:u,onLoad:function(){S(!0)}})))}));ce.propTypes={className:Ct.string,config:Ct.object.isRequired,instanceId:Ct.string,variantId:Ct.string,activeItem:Ct.object,onEvent:Ct.func,forceMobile:Ct.bool,onPrev:Ct.func,onNext:Ct.func},ce.displayName="EkoGallery";var ue=c(ce);const de=b("gallery-react");const he=a(((t,n)=>{var i;s((()=>(de.setDataStorage("gallery-react",{config:t.config}),window.eko=window.eko||{},window.eko.config=t.config,window.eko.gallery={version:"bby-debug-logs/4.0.4"},()=>{window.eko.config=void 0})),[t.config]);const{children:r,...o}=t;return void 0!==t.config?e.createElement(ue,q({ref:n},o,{key:null===(i=t.config.__autoGenerated)||void 0===i||null===(i=i.publishItem)||void 0===i?void 0:i.id})):r}));he.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,instanceId:Ct.string,children:Ct.node},he.displayName="EkoGalleryWrapper";var fe,pe,me,ve,ge,ye,be,ke,xe,we,_e,Te,Ie,Ee,Se,Ae,Ne,Me,Fe,Oe,Ce,Pe,De,Re,Le,Be,ze,We,Ue,$e,je,qe,Ve,Ge,He,Ke,Xe,Ye,Qe,Je,Ze,tn,en,nn,rn,on,sn,an,ln,cn,un,dn,hn=c(he);const fn=1,pn=2,mn=4,vn=8,gn=16,yn=1,bn=4,kn=8,xn=16,wn="[",_n="[!",Tn="]",In={},En=Symbol(),Sn=Symbol("filename"),An="http://www.w3.org/1999/xhtml",Nn="@attach",Mn=!0;var Fn=Array.isArray,On=Array.prototype.indexOf,Cn=Array.from,Pn=Object.defineProperty,Dn=Object.getOwnPropertyDescriptor,Rn=Object.getOwnPropertyDescriptors,Ln=Object.prototype,Bn=Array.prototype,zn=Object.getPrototypeOf,Wn=Object.isExtensible;function Un(){var t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}}const $n=2,jn=4,qn=8,Vn=1<<24,Gn=16,Hn=32,Kn=64,Xn=128,Yn=512,Qn=1024,Jn=2048,Zn=4096,ti=8192,ei=16384,ni=32768,ii=65536,ri=1<<17,oi=1<<18,si=1<<19,ai=1<<20,li=1<<25,ci=32768,ui=1<<21,di=1<<22,hi=1<<23,fi=Symbol("$state"),pi=Symbol("legacy props"),mi=Symbol(""),vi=Symbol("proxy path"),gi=new class extends Error{name="StaleReactionError";message="The reaction that called `getAbortSignal()` was re-run or destroyed"},yi=3,bi=8;function ki(t){{const e=new Error(`lifecycle_outside_component\n\`${t}(...)\` can only be used during component initialisation\nhttps://svelte.dev/e/lifecycle_outside_component`);throw e.name="Svelte error",e}}var xi="font-weight: bold",wi="font-weight: normal";function _i(t){console.warn("%c[svelte] hydration_mismatch\n%cHydration failed because the initial UI does not match what was rendered on the server\nhttps://svelte.dev/e/hydration_mismatch",xi,wi)}function Ti(t){console.warn(`%c[svelte] state_proxy_equality_mismatch\n%cReactive \`$state(...)\` proxies and the values they proxy have different identities. Because of this, comparisons with \`${t}\` will produce unexpected results\nhttps://svelte.dev/e/state_proxy_equality_mismatch`,xi,wi)}let Ii,Ei=!1;function Si(t){Ei=t}function Ai(t){if(null===t)throw _i(),In;return Ii=t}function Ni(){return Ai(Yo(Ii))}function Mi(t){if(Ei){if(null!==Yo(Ii))throw _i(),In;Ii=t}}function Fi(t=!0){for(var e=0,n=Ii;;){if(n.nodeType===bi){var i=n.data;if(i===Tn){if(0===e)return n;e-=1}else i!==wn&&i!==_n||(e+=1)}var r=Yo(n);t&&n.remove(),n=r}}function Oi(t){if(!t||t.nodeType!==bi)throw _i(),In;return t.data}function Ci(t){return t===this.v}function Pi(t){return e=t,n=this.v,!(e!=e?n==n:e!==n||null!==e&&"object"==typeof e||"function"==typeof e);var e,n}let Di=!1;var Ri="font-weight: bold",Li="font-weight: normal";function Bi(t){console.warn(`%c[svelte] state_snapshot_uncloneable\n%c${t?`The following properties cannot be cloned with \`$state.snapshot\` — the return value contains the originals:\n\n${t}`:"Value cannot be cloned with `$state.snapshot` — the original value was returned"}\nhttps://svelte.dev/e/state_snapshot_uncloneable`,Ri,Li)}const zi=[];function Wi(t,e=!1,n=!1){if(!e){const e=[],i=Ui(t,new Map,"",e,null,n);if(1===e.length&&""===e[0])Bi();else if(e.length>0){const t=e.length>10?e.slice(0,7):e.slice(0,10),n=e.length-t.length;let i=t.map((t=>`- <value>${t}`)).join("\n");n>0&&(i+=`\n- ...and ${n} more`),Bi(i)}return i}return Ui(t,new Map,"",zi,null,n)}function Ui(t,e,n,i,r=null,o=!1){if("object"==typeof t&&null!==t){var s=e.get(t);if(void 0!==s)return s;if(t instanceof Map)return new Map(t);if(t instanceof Set)return new Set(t);if(Fn(t)){var a=Array(t.length);e.set(t,a),null!==r&&e.set(r,a);for(var l=0;l<t.length;l+=1){var c=t[l];l in t&&(a[l]=Ui(c,e,`${n}[${l}]`,i,null,o))}return a}if(zn(t)===Ln){for(var u in a={},e.set(t,a),null!==r&&e.set(r,a),t)a[u]=Ui(t[u],e,`${n}.${u}`,i,null,o);return a}if(t instanceof Date)return structuredClone(t);if("function"==typeof t.toJSON&&!o)return Ui(t.toJSON(),e,`${n}.toJSON()`,i,t)}if(t instanceof EventTarget)return t;try{return structuredClone(t)}catch(e){return i.push(n),t}}function $i(t,e){return t.label=e,ji(t.v,e),t}function ji(t,e){var n;return null==t||null===(n=t[vi])||void 0===n||n.call(t,e),t}function qi(t){const e=new Error,n=function(){const t=Error.stackTraceLimit;Error.stackTraceLimit=1/0;const e=(new Error).stack;if(Error.stackTraceLimit=t,!e)return[];const n=e.split("\n"),i=[];for(let t=0;t<n.length;t++){const e=n[t],r=e.replaceAll("\\","/");if("Error"!==e.trim()){if(e.includes("validate_each_keys"))return[];r.includes("svelte/src/internal")||r.includes("node_modules/.vite")||i.push(e)}}return i}();return 0===n.length?null:(n.unshift("\n"),Pn(e,"stack",{value:n.join("\n")}),Pn(e,"name",{value:t}),e)}let Vi=null;function Gi(t){Vi=t}let Hi=null;function Ki(t){Hi=t}let Xi=null;function Yi(t){Xi=t}function Qi(t){return tr("getContext").get(t)}function Ji(t,e=!1,n){Vi={p:Vi,i:!1,c:null,e:null,s:t,x:null,l:null},Vi.function=n,Xi=n}function Zi(t){var e,n,i=Vi,r=i.e;if(null!==r)for(var o of(i.e=null,r))cs(o);return i.i=!0,Vi=i.p,Xi=null!==(e=null===(n=Vi)||void 0===n?void 0:n.function)&&void 0!==e?e:null,{}}function tr(t){var e,n;return null===Vi&&ki(t),null!==(n=(e=Vi).c)&&void 0!==n?n:e.c=new Map(function(t){let e=t.p;for(;null!==e;){const t=e.c;if(null!==t)return t;e=e.p}return null}(Vi)||void 0)}let er=[];function nr(){var t=er;er=[],function(t){for(var e=0;e<t.length;e++)t[e]()}(t)}function ir(t){if(0===er.length&&!kr){var e=er;queueMicrotask((()=>{e===er&&nr()}))}er.push(t)}function rr(){for(;er.length>0;)nr()}const or=new WeakMap;function sr(t){var e=Os;if(null===e)return Ns.f|=hi,t;if(t instanceof Error&&!or.has(t)&&or.set(t,function(t,e){var n,i;const r=Dn(t,"message");if(r&&!r.configurable)return;var o=qo?" ":"\t",s=`\n${o}in ${(null===(n=e.fn)||void 0===n?void 0:n.name)||"<unknown>"}`,a=e.ctx;for(;null!==a;){var l;s+=`\n${o}in ${null===(l=a.function)||void 0===l?void 0:l[Sn].split("/").pop()}`,a=a.p}return{message:t.message+`\n${s}\n`,stack:null===(i=t.stack)||void 0===i?void 0:i.split("\n").filter((t=>!t.includes("svelte/src/internal"))).join("\n")}}(t,e)),e.f&ni)ar(t,e);else{if(!(e.f&Xn))throw!e.parent&&t instanceof Error&&lr(t),t;e.b.error(t)}}function ar(t,e){for(;null!==e;){if(e.f&Xn)try{return void e.b.error(t)}catch(e){t=e}e=e.parent}throw t instanceof Error&&lr(t),t}function lr(t){const e=or.get(t);e&&(Pn(t,"message",{value:e.message}),Pn(t,"stack",{value:e.stack}))}const cr=-7169;function ur(t,e){t.f=t.f&cr|e}function dr(t){t.f&Yn||null===t.deps?ur(t,Qn):ur(t,Zn)}function hr(t){if(null!==t)for(const e of t)e.f&$n&&e.f&ci&&(e.f^=ci,hr(e.deps))}function fr(t,e,n){t.f&Jn?e.add(t):t.f&Zn&&n.add(t),hr(t.deps),ur(t,Qn)}const pr=new Set;let mr=null,vr=null,gr=[],yr=null,br=!1,kr=!1;var xr=new WeakMap,wr=new WeakMap,_r=new WeakMap,Tr=new WeakMap,Ir=new WeakMap,Er=new WeakMap,Sr=new WeakMap,Ar=new WeakSet;class Nr{constructor(){$(this,Ar),j(this,"committed",!1),j(this,"current",new Map),j(this,"previous",new Map),W(this,xr,new Set),W(this,wr,new Set),W(this,_r,0),W(this,Tr,0),W(this,Ir,null),W(this,Er,new Set),W(this,Sr,new Set),j(this,"skipped_effects",new Set),j(this,"is_fork",!1)}is_deferred(){return this.is_fork||z(Tr,this)>0}process(t){gr=[],this.apply();var e,n=[],i=[];for(const e of t)L(Ar,this,Mr).call(this,e,n,i);(this.is_fork||L(Ar,this,Or).call(this),this.is_deferred())?(L(Ar,this,Fr).call(this,i),L(Ar,this,Fr).call(this,n)):(mr=null,Lr(i),Lr(n),null===(e=z(Ir,this))||void 0===e||e.resolve());vr=null}capture(t,e){var n;(e===En||this.previous.has(t)||this.previous.set(t,e),t.f&hi)||(this.current.set(t,t.v),null===(n=vr)||void 0===n||n.set(t,t.v))}activate(){mr=this,this.apply()}deactivate(){mr===this&&(mr=null,vr=null)}flush(){if(this.activate(),gr.length>0){if(Pr(),null!==mr&&mr!==this)return}else 0===z(_r,this)&&this.process([]);this.deactivate()}discard(){for(const t of z(wr,this))t(this);z(wr,this).clear()}increment(t){U(_r,this,z(_r,this)+1),t&&U(Tr,this,z(Tr,this)+1)}decrement(t){U(_r,this,z(_r,this)-1),t&&U(Tr,this,z(Tr,this)-1),this.revive()}revive(){for(const t of z(Er,this))z(Sr,this).delete(t),ur(t,Jn),Wr(t);for(const t of z(Sr,this))ur(t,Zn),Wr(t);this.flush()}oncommit(t){z(xr,this).add(t)}ondiscard(t){z(wr,this).add(t)}settled(){var t;return(null!==(t=z(Ir,this))&&void 0!==t?t:U(Ir,this,Un())).promise}static ensure(){if(null===mr){const t=mr=new Nr;pr.add(mr),kr||Nr.enqueue((()=>{mr===t&&t.flush()}))}return mr}static enqueue(t){ir(t)}apply(){}}function Mr(t,e,n){t.f^=Qn;for(var i=t.first,r=null;null!==i;){var o=i.f,s=!!(o&(Hn|Kn));if(!(s&&!!(o&Qn)||!!(o&ti)||this.skipped_effects.has(i))&&null!==i.fn){s?i.f^=Qn:null!==r&&o&(jn|qn|Vn)?r.b.defer_effect(i):o&jn?e.push(i):qs(i)&&(o&Gn&&z(Er,this).add(i),Xs(i));var a=i.first;if(null!==a){i=a;continue}}var l=i.parent;for(i=i.next;null===i&&null!==l;)l===r&&(r=null),i=l.next,l=l.parent}}function Fr(t){for(var e=0;e<t.length;e+=1)fr(t[e],z(Er,this),z(Sr,this))}function Or(){if(0===z(Tr,this)){for(const t of z(xr,this))t();z(xr,this).clear()}0===z(_r,this)&&L(Ar,this,Cr).call(this)}function Cr(){if(pr.size>1){this.previous.clear();var t=vr,e=!0;for(const t of pr){if(t===this){e=!1;continue}const i=[];for(const[n,r]of this.current){if(t.current.has(n)){if(!e||r===t.current.get(n))continue;t.current.set(n,r)}i.push(n)}if(0===i.length)continue;const r=[...t.current.keys()].filter((t=>!this.current.has(t)));if(r.length>0){var n=gr;gr=[];const e=new Set,o=new Map;for(const t of i)Br(t,r,e,o);if(gr.length>0){mr=t,t.apply();for(const e of gr)L(Ar,t,Mr).call(t,e,[],[]);t.deactivate()}gr=n}}mr=null,vr=t}this.committed=!0,pr.delete(this)}function Pr(){var t=Is;br=!0;var e=new Set;try{var n=0;for(Es(!0);gr.length>0;){var i=Nr.ensure();if(n++>1e3){if(Mn){var r=new Map;for(const t of i.current.keys())for(const[e,n]of null!==(o=t.updated)&&void 0!==o?o:[]){var o,s=r.get(e);s||(s={error:n.error,count:0},r.set(e,s)),s.count+=n.count}for(const t of r.values())t.error&&console.error(t.error)}Dr()}if(i.process(gr),Eo.clear(),Mn)for(const t of i.current.keys())e.add(t)}}finally{br=!1,Es(t),yr=null;for(const t of e)t.updated=null}}function Dr(){try{!function(){{const t=new Error("effect_update_depth_exceeded\nMaximum update depth exceeded. This typically indicates that an effect reads and writes the same piece of state\nhttps://svelte.dev/e/effect_update_depth_exceeded");throw t.name="Svelte error",t}}()}catch(t){Pn(t,"stack",{value:""}),ar(t,yr)}}let Rr=null;function Lr(t){var e=t.length;if(0!==e){for(var n=0;n<e;){var i,r=t[n++];if(!(r.f&(ei|ti))&&qs(r))if(Rr=new Set,Xs(r),null===r.deps&&null===r.first&&null===r.nodes&&(null===r.teardown&&null===r.ac?bs(r):r.fn=null),(null===(i=Rr)||void 0===i?void 0:i.size)>0){Eo.clear();for(const t of Rr){if(t.f&(ei|ti))continue;const e=[t];let n=t.parent;for(;null!==n;)Rr.has(n)&&(Rr.delete(n),e.push(n)),n=n.parent;for(let t=e.length-1;t>=0;t--){const n=e[t];n.f&(ei|ti)||Xs(n)}}Rr.clear()}}Rr=null}}function Br(t,e,n,i){if(!n.has(t)&&(n.add(t),null!==t.reactions))for(const r of t.reactions){const t=r.f;t&$n?Br(r,e,n,i):t&(di|Gn)&&!(t&Jn)&&zr(r,e,i)&&(ur(r,Jn),Wr(r))}}function zr(t,e,n){const i=n.get(t);if(void 0!==i)return i;if(null!==t.deps)for(const i of t.deps){if(e.includes(i))return!0;if(i.f&$n&&zr(i,e,n))return n.set(i,!0),!0}return n.set(t,!1),!1}function Wr(t){for(var e=yr=t;null!==e.parent;){var n=(e=e.parent).f;if(br&&e===Os&&n&Gn&&!(n&oi))return;if(n&(Kn|Hn)){if(!(n&Qn))return;e.f^=Qn}}gr.push(e)}var Ur=ii|si|Xn;var $r=new WeakMap,jr=new WeakMap,qr=new WeakMap,Vr=new WeakMap,Gr=new WeakMap,Hr=new WeakMap,Kr=new WeakMap,Xr=new WeakMap,Yr=new WeakMap,Qr=new WeakMap,Jr=new WeakMap,Zr=new WeakMap,to=new WeakMap,eo=new WeakMap,no=new WeakMap,io=new WeakMap,ro=new WeakMap,oo=new WeakSet;class so{constructor(t,e,n){$(this,oo),j(this,"parent",void 0),j(this,"is_pending",!1),W(this,$r,void 0),W(this,jr,Ei?Ii:null),W(this,qr,void 0),W(this,Vr,void 0),W(this,Gr,void 0),W(this,Hr,null),W(this,Kr,null),W(this,Xr,null),W(this,Yr,null),W(this,Qr,null),W(this,Jr,0),W(this,Zr,0),W(this,to,!1),W(this,eo,new Set),W(this,no,new Set),W(this,io,null),W(this,ro,function(t){let e,n=0,i=No(0);return $i(i,"createSubscriber version"),()=>{ss()&&(Qs(i),ds((()=>(0===n&&(e=ta((()=>t((()=>Do(i)))))),n+=1,()=>{ir((()=>{var t;n-=1,0===n&&(null===(t=e)||void 0===t||t(),e=void 0,Do(i))}))}))))}}((()=>(U(io,this,No(z(Jr,this))),$i(z(io,this),"$effect.pending()"),()=>{U(io,this,null)})))),U($r,this,t),U(qr,this,e),U(Vr,this,n),this.parent=Os.b,this.is_pending=!!z(qr,this).pending,U(Gr,this,fs((()=>{if(Os.b=this,Ei){const t=z(jr,this);Ni();t.nodeType===bi&&t.data===_n?L(oo,this,lo).call(this):(L(oo,this,ao).call(this),0===z(Zr,this)&&(this.is_pending=!1))}else{var t=L(oo,this,co).call(this);try{U(Hr,this,ms((()=>n(t))))}catch(t){this.error(t)}z(Zr,this)>0?L(oo,this,ho).call(this):this.is_pending=!1}return()=>{var t;null===(t=z(Qr,this))||void 0===t||t.remove()}}),Ur)),Ei&&U($r,this,Ii)}defer_effect(t){fr(t,z(eo,this),z(no,this))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!z(qr,this).pending}update_pending_count(t){L(oo,this,fo).call(this,t),U(Jr,this,z(Jr,this)+t),z(io,this)&&Co(z(io,this),z(Jr,this))}get_effect_pending(){return z(ro,this).call(this),Qs(z(io,this))}error(t){var e=z(qr,this).onerror;let n=z(qr,this).failed;if(z(to,this)||!e&&!n)throw t;z(Hr,this)&&(ys(z(Hr,this)),U(Hr,this,null)),z(Kr,this)&&(ys(z(Kr,this)),U(Kr,this,null)),z(Xr,this)&&(ys(z(Xr,this)),U(Xr,this,null)),Ei&&(Ai(z(jr,this)),function(t=1){if(Ei){for(var e=t,n=Ii;e--;)n=Yo(n);Ii=n}}(),Ai(Fi()));var i=!1,r=!1;const o=()=>{i?console.warn("%c[svelte] svelte_boundary_reset_noop\n%cA `<svelte:boundary>` `reset` function only resets the boundary the first time it is called\nhttps://svelte.dev/e/svelte_boundary_reset_noop",xi,wi):(i=!0,r&&function(){{const t=new Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throw t.name="Svelte error",t}}(),Nr.ensure(),U(Jr,this,0),null!==z(Xr,this)&&ks(z(Xr,this),(()=>{U(Xr,this,null)})),this.is_pending=this.has_pending_snippet(),U(Hr,this,L(oo,this,uo).call(this,(()=>(U(to,this,!1),ms((()=>z(Vr,this).call(this,z($r,this)))))))),z(Zr,this)>0?L(oo,this,ho).call(this):this.is_pending=!1)};var s=Ns;try{Fs(null),r=!0,null==e||e(t,o),r=!1}catch(t){ar(t,z(Gr,this)&&z(Gr,this).parent)}finally{Fs(s)}n&&ir((()=>{U(Xr,this,L(oo,this,uo).call(this,(()=>{Nr.ensure(),U(to,this,!0);try{return ms((()=>{n(z($r,this),(()=>t),(()=>o))}))}catch(t){return ar(t,z(Gr,this).parent),null}finally{U(to,this,!1)}})))}))}}function ao(){try{U(Hr,this,ms((()=>z(Vr,this).call(this,z($r,this)))))}catch(t){this.error(t)}}function lo(){const t=z(qr,this).pending;t&&(U(Kr,this,ms((()=>t(z($r,this))))),Nr.enqueue((()=>{var t=L(oo,this,co).call(this);U(Hr,this,L(oo,this,uo).call(this,(()=>(Nr.ensure(),ms((()=>z(Vr,this).call(this,t))))))),z(Zr,this)>0?L(oo,this,ho).call(this):(ks(z(Kr,this),(()=>{U(Kr,this,null)})),this.is_pending=!1)})))}function co(){var t=z($r,this);return this.is_pending&&(U(Qr,this,Ko()),z($r,this).before(z(Qr,this)),t=z(Qr,this)),t}function uo(t){var e=Os,n=Ns,i=Vi;Cs(z(Gr,this)),Fs(z(Gr,this)),Gi(z(Gr,this).ctx);try{return t()}catch(t){return sr(t),null}finally{Cs(e),Fs(n),Gi(i)}}function ho(){const t=z(qr,this).pending;null!==z(Hr,this)&&(U(Yr,this,document.createDocumentFragment()),z(Yr,this).append(z(Qr,this)),Ts(z(Hr,this),z(Yr,this))),null===z(Kr,this)&&U(Kr,this,ms((()=>t(z($r,this)))))}function fo(t){var e;if(this.has_pending_snippet()){if(U(Zr,this,z(Zr,this)+t),0===z(Zr,this)){this.is_pending=!1;for(const t of z(eo,this))ur(t,Jn),Wr(t);for(const t of z(no,this))ur(t,Zn),Wr(t);z(eo,this).clear(),z(no,this).clear(),z(Kr,this)&&ks(z(Kr,this),(()=>{U(Kr,this,null)})),z(Yr,this)&&(z($r,this).before(z(Yr,this)),U(Yr,this,null))}}else this.parent&&L(oo,e=this.parent,fo).call(e,t)}function po(t,e,n,i){const r=go;if(0!==n.length||0!==t.length){var o,s,a,l,c,u=mr,d=Os,h=(o=Os,s=Ns,a=Vi,l=mr,c=Hi,function(t=!0){Cs(o),Fs(s),Gi(a),t&&(null==l||l.activate()),Ki(c)});t.length>0?Promise.all(t).then((()=>{h();try{return f()}finally{null==u||u.deactivate(),mo()}})):f()}else i(e.map(r));function f(){Promise.all(n.map((t=>yo(t)))).then((t=>{h();try{i([...e.map(r),...t])}catch(t){d.f&ei||ar(t,d)}null==u||u.deactivate(),mo()})).catch((t=>{ar(t,d)}))}}function mo(){Cs(null),Fs(null),Gi(null),Ki(null)}const vo=new Set;function go(t){var e=$n|Jn,n=null!==Ns&&Ns.f&$n?Ns:null;null!==Os&&(Os.f|=si);return{ctx:Vi,deps:null,effects:null,equals:Ci,f:e,fn:t,reactions:null,rv:0,v:En,wv:0,parent:null!=n?n:Os,ac:null}}function yo(t,e,n){let i=Os;null===i&&function(){{const t=new Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throw t.name="Svelte error",t}}();var r=i.b,o=void 0,s=No(En);s.label=e;var a=!Ns,l=new Map;return function(t){os(di|si,t,!0)}((()=>{var e=Un();o=e.promise;try{Promise.resolve(t()).then(e.resolve,e.reject).then((()=>{n===mr&&n.committed&&n.deactivate(),mo()}))}catch(t){e.reject(t),mo()}var n=mr;if(a){var i,c=r.is_rendered();r.update_pending_count(1),n.increment(c),null===(i=l.get(n))||void 0===i||i.reject(gi),l.delete(n),l.set(n,e)}const u=(t,e=void 0)=>{if(n.activate(),e)e!==gi&&(s.f|=hi,Co(s,e));else{s.f&hi&&(s.f^=hi),Co(s,t);for(const[t,e]of l){if(l.delete(t),t===n)break;e.reject(gi)}}a&&(r.update_pending_count(-1),n.decrement(c))};e.promise.then(u,(t=>u(null,t||"unknown")))})),as((()=>{for(const t of l.values())t.reject(gi)})),s.f|=di,new Promise((t=>{!function e(n){function i(){n===o?t(s):e(o)}n.then(i,i)}(o)}))}function bo(t){const e=go(t);return Ds(e),e}function ko(t){const e=go(t);return e.equals=Pi,e}function xo(t){var e=t.effects;if(null!==e){t.effects=null;for(var n=0;n<e.length;n+=1)ys(e[n])}}let wo=[];function _o(t){var e,n=Os;Cs(function(t){for(var e=t.parent;null!==e;){if(!(e.f&$n))return e.f&ei?null:e;e=e.parent}return null}(t));{let i=Io;So(new Set);try{wo.includes(t)&&function(){{const t=new Error("derived_references_self\nA derived value cannot reference itself recursively\nhttps://svelte.dev/e/derived_references_self");throw t.name="Svelte error",t}}(),wo.push(t),t.f&=~ci,xo(t),e=Gs(t)}finally{Cs(n),So(i),wo.pop()}}return e}function To(t){var e,n,i=_o(t);if(!t.equals(i)&&(t.wv=js(),(null===(e=mr)||void 0===e||!e.is_fork||null===t.deps)&&(t.v=i,null===t.deps)))return void ur(t,Qn);Ss||(null!==vr?(ss()||null!==(n=mr)&&void 0!==n&&n.is_fork)&&vr.set(t,i):dr(t))}let Io=new Set;const Eo=new Map;function So(t){Io=t}let Ao=!1;function No(t,e){return{f:0,v:t,reactions:null,equals:Ci,rv:0,wv:0}}function Mo(t,e){const n=No(t);return Ds(n),n}function Fo(t,e=!1,n=!0){const i=No(t);return e||(i.equals=Pi),i}function Oo(t,e,n=!1){var i;null!==Ns&&(!Ms||Ns.f&ri)&&Ns.f&($n|Gn|di|ri)&&(null===(i=Ps)||void 0===i||!i.includes(t))&&function(){{const t=new Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throw t.name="Svelte error",t}}();let r=n?Bo(e):e;return ji(r,t.label),Co(t,r)}function Co(t,e){if(!t.equals(e)){var n=t.v;Ss?Eo.set(t,e):Eo.set(t,n),t.v=e;var i=Nr.ensure();if(i.capture(t,n),null!==Os){var r,o,s;null!==(r=t.updated)&&void 0!==r||(t.updated=new Map);const e=(null!==(o=null===(s=t.updated.get(""))||void 0===s?void 0:s.count)&&void 0!==o?o:0)+1;if(t.updated.set("",{error:null,count:e}),e>5){const e=qi("updated at");if(null!==e){let n=t.updated.get(e.stack);n||(n={error:e,count:0},t.updated.set(e.stack,n)),n.count++}}}if(null!==Os&&(t.set_during_effect=!0),t.f&$n){const e=t;t.f&Jn&&_o(e),dr(e)}t.wv=js(),Ro(t,Jn),null!==Os&&Os.f&Qn&&!(Os.f&(Hn|Kn))&&(null===Bs?function(t){Bs=t}([t]):Bs.push(t)),!i.is_fork&&Io.size>0&&!Ao&&Po()}return e}function Po(){Ao=!1;var t=Is;Es(!0);const e=Array.from(Io);try{for(const t of e)t.f&Qn&&ur(t,Zn),qs(t)&&Xs(t)}finally{Es(t)}Io.clear()}function Do(t){Oo(t,t.v+1)}function Ro(t,e){var n=t.reactions;if(null!==n)for(var i=n.length,r=0;r<i;r++){var o=n[r],s=o.f;if(s&ri)Io.add(o);else{var a=!(s&Jn);if(a&&ur(o,e),s&$n){var l,c=o;null===(l=vr)||void 0===l||l.delete(c),s&ci||(s&Yn&&(o.f|=ci),Ro(c,Zn))}else a&&(s&Gn&&null!==Rr&&Rr.add(o),Wr(o))}}}const Lo=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Bo(t){if("object"!=typeof t||null===t||fi in t)return t;const e=zn(t);if(e!==Ln&&e!==Bn)return t;var n=new Map,i=Fn(t),r=Mo(0),o=Us,s=t=>{if(Us===o)return t();var e=Ns,n=Us;Fs(null),$s(o);var i=t();return Fs(e),$s(n),i};i&&(n.set("length",Mo(t.length)),t=new Proxy(t,{get(t,e,n){var i=Reflect.get(t,e,n);return Uo.has(e)?function(...t){Ao=!0;var e=i.apply(this,t);return Po(),e}:i}}));var a="";let l=!1;function c(t){if(!l){l=!0,$i(r,`${a=t} version`);for(const[t,e]of n)$i(e,zo(a,t));l=!1}}return new Proxy(t,{defineProperty(t,e,i){"value"in i&&!1!==i.configurable&&!1!==i.enumerable&&!1!==i.writable||function(){{const t=new Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throw t.name="Svelte error",t}}();var r=n.get(e);return void 0===r?r=s((()=>{var t=Mo(i.value);return n.set(e,t),"string"==typeof e&&$i(t,zo(a,e)),t})):Oo(r,i.value,!0),!0},deleteProperty(t,e){var i=n.get(e);if(void 0===i){if(e in t){const t=s((()=>Mo(En)));n.set(e,t),Do(r),$i(t,zo(a,e))}}else Oo(i,En),Do(r);return!0},get(e,i,r){var o;if(i===fi)return t;if(i===vi)return c;var l=n.get(i),u=i in e;if(void 0===l&&(!u||null!==(o=Dn(e,i))&&void 0!==o&&o.writable)&&(l=s((()=>{var t=Mo(Bo(u?e[i]:En));return $i(t,zo(a,i)),t})),n.set(i,l)),void 0!==l){var d=Qs(l);return d===En?void 0:d}return Reflect.get(e,i,r)},getOwnPropertyDescriptor(t,e){var i=Reflect.getOwnPropertyDescriptor(t,e);if(i&&"value"in i){var r=n.get(e);r&&(i.value=Qs(r))}else if(void 0===i){var o=n.get(e),s=null==o?void 0:o.v;if(void 0!==o&&s!==En)return{enumerable:!0,configurable:!0,value:s,writable:!0}}return i},has(t,e){var i;if(e===fi)return!0;var r=n.get(e),o=void 0!==r&&r.v!==En||Reflect.has(t,e);if((void 0!==r||null!==Os&&(!o||null!==(i=Dn(t,e))&&void 0!==i&&i.writable))&&(void 0===r&&(r=s((()=>{var n=Mo(o?Bo(t[e]):En);return $i(n,zo(a,e)),n})),n.set(e,r)),Qs(r)===En))return!1;return o},set(t,e,o,l){var c,u=n.get(e),d=e in t;if(i&&"length"===e)for(var h=o;h<u.v;h+=1){var f=n.get(h+"");void 0!==f?Oo(f,En):h in t&&(f=s((()=>Mo(En))),n.set(h+"",f),$i(f,zo(a,h)))}void 0===u?(!d||null!==(c=Dn(t,e))&&void 0!==c&&c.writable)&&($i(u=s((()=>Mo(void 0))),zo(a,e)),Oo(u,Bo(o)),n.set(e,u)):(d=u.v!==En,Oo(u,s((()=>Bo(o)))));var p=Reflect.getOwnPropertyDescriptor(t,e);if(null!=p&&p.set&&p.set.call(l,o),!d){if(i&&"string"==typeof e){var m=n.get("length"),v=Number(e);Number.isInteger(v)&&v>=m.v&&Oo(m,v+1)}Do(r)}return!0},ownKeys(t){Qs(r);var e=Reflect.ownKeys(t).filter((t=>{var e=n.get(t);return void 0===e||e.v!==En}));for(var[i,o]of n)o.v===En||i in t||e.push(i);return e},setPrototypeOf(){!function(){{const t=new Error("state_prototype_fixed\nCannot set prototype of `$state` object\nhttps://svelte.dev/e/state_prototype_fixed");throw t.name="Svelte error",t}}()}})}function zo(t,e){var n;return"symbol"==typeof e?`${t}[Symbol(${null!==(n=e.description)&&void 0!==n?n:""})]`:Lo.test(e)?`${t}.${e}`:/^\d+$/.test(e)?`${t}[${e}]`:`${t}['${e}']`}function Wo(t){try{if(null!==t&&"object"==typeof t&&fi in t)return t[fi]}catch{}return t}const Uo=new Set(["copyWithin","fill","pop","push","reverse","shift","sort","splice","unshift"]);function $o(t,e,n=!0){try{t===e!=(Wo(t)===Wo(e))&&Ti(n?"===":"!==")}catch{}return t===e===n}var jo,qo,Vo,Go;function Ho(){if(void 0===jo){jo=window,qo=/Firefox/.test(navigator.userAgent);var t=Element.prototype,e=Node.prototype,n=Text.prototype;Vo=Dn(e,"firstChild").get,Go=Dn(e,"nextSibling").get,Wn(t)&&(t.__click=void 0,t.__className=void 0,t.__attributes=null,t.__style=void 0,t.__e=void 0),Wn(n)&&(n.__t=void 0),t.__svelte_meta=null,function(){const t=Array.prototype,e=Array.__svelte_cleanup;e&&e();const{indexOf:n,lastIndexOf:i,includes:r}=t;t.indexOf=function(t,e){const i=n.call(this,t,e);if(-1===i)for(let n=null!=e?e:0;n<this.length;n+=1)if(Wo(this[n])===t){Ti("array.indexOf(...)");break}return i},t.lastIndexOf=function(t,e){const n=i.call(this,t,null!=e?e:this.length-1);if(-1===n)for(let n=0;n<=(null!=e?e:this.length-1);n+=1)if(Wo(this[n])===t){Ti("array.lastIndexOf(...)");break}return n},t.includes=function(t,e){const n=r.call(this,t,e);if(!n)for(let e=0;e<this.length;e+=1)if(Wo(this[e])===t){Ti("array.includes(...)");break}return n},Array.__svelte_cleanup=()=>{t.indexOf=n,t.lastIndexOf=i,t.includes=r}}()}}function Ko(t=""){return document.createTextNode(t)}function Xo(t){return Vo.call(t)}function Yo(t){return Go.call(t)}function Qo(t,e){if(!Ei)return Xo(t);var n=Xo(Ii);if(null===n)n=Ii.appendChild(Ko());else if(e&&n.nodeType!==yi){var i,r=Ko();return null===(i=n)||void 0===i||i.before(r),Ai(r),r}return Ai(n),n}function Jo(t,e=!1){var n;if(!Ei){var i=Xo(t);return i instanceof Comment&&""===i.data?Yo(i):i}if(e&&(null===(n=Ii)||void 0===n?void 0:n.nodeType)!==yi){var r,o=Ko();return null===(r=Ii)||void 0===r||r.before(o),Ai(o),o}return Ii}function Zo(t,e=1,n=!1){var i;let r=Ei?Ii:t;for(var o;e--;)o=r,r=Yo(r);if(!Ei)return r;if(n&&(null===(i=r)||void 0===i?void 0:i.nodeType)!==yi){var s,a=Ko();if(null===r)null===(s=o)||void 0===s||s.after(a);else r.before(a);return Ai(a),a}return Ai(r),r}function ts(t){t.textContent=""}function es(t,e){if(e){const e=document.body;t.autofocus=!0,ir((()=>{document.activeElement===e&&t.focus()}))}}let ns=!1;function is(t){var e=Ns,n=Os;Fs(null),Cs(null);try{return t()}finally{Fs(e),Cs(n)}}function rs(t){null===Os&&(null===Ns&&function(t){{const e=new Error(`effect_orphan\n\`${t}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throw e.name="Svelte error",e}}(t),function(){{const t=new Error("effect_in_unowned_derived\nEffect cannot be created inside a `$derived` value that was not itself created inside an effect\nhttps://svelte.dev/e/effect_in_unowned_derived");throw t.name="Svelte error",t}}()),Ss&&function(t){{const e=new Error(`effect_in_teardown\n\`${t}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throw e.name="Svelte error",e}}(t)}function os(t,e,n){for(var i=Os;null!==i&&i.f&ri;)i=i.parent;null!==i&&i.f&ti&&(t|=ti);var r={ctx:Vi,deps:null,nodes:null,f:t|Jn|Yn,first:null,fn:e,last:null,next:null,parent:i,b:i&&i.b,prev:null,teardown:null,wv:0,ac:null};if(r.component_function=Xi,n)try{Xs(r),r.f|=ni}catch(t){throw ys(r),t}else null!==e&&Wr(r);var o=r;if(!n||null!==o.deps||null!==o.teardown||null!==o.nodes||o.first!==o.last||o.f&si||(o=o.first,t&Gn&&t&ii&&null!==o&&(o.f|=ii)),null!==o&&(o.parent=i,null!==i&&function(t,e){var n=e.last;null===n?e.last=e.first=t:(n.next=t,t.prev=n,e.last=t)}(o,i),null!==Ns&&Ns.f&$n&&!(t&Kn))){var s,a=Ns;(null!==(s=a.effects)&&void 0!==s?s:a.effects=[]).push(o)}return r}function ss(){return null!==Ns&&!Ms}function as(t){const e=os(qn,null,!1);return ur(e,Qn),e.teardown=t,e}function ls(t){rs("$effect"),Pn(t,"name",{value:"$effect"});var e=Os.f;if(!!(Ns||!(e&Hn)||e&ni))return cs(t);var n,i=Vi;(null!==(n=i.e)&&void 0!==n?n:i.e=[]).push(t)}function cs(t){return os(jn|ai,t,!1)}function us(t){return os(jn,t,!1)}function ds(t,e=0){return os(qn|e,t,!0)}function hs(t,e=[],n=[],i=[]){po(i,e,n,(e=>{os(qn,(()=>t(...e.map(Qs))),!0)}))}function fs(t,e=0){var n=os(Gn|e,t,!0);return n.dev_stack=Hi,n}function ps(t,e=0){var n=os(Vn|e,t,!0);return n.dev_stack=Hi,n}function ms(t){return os(Hn|si,t,!0)}function vs(t){var e=t.teardown;if(null!==e){const t=Ss,n=Ns;As(!0),Fs(null);try{e.call(null)}finally{As(t),Fs(n)}}}function gs(t,e=!1){var n=t.first;for(t.first=t.last=null;null!==n;){const t=n.ac;null!==t&&is((()=>{t.abort(gi)}));var i=n.next;n.f&Kn?n.parent=null:ys(n,e),n=i}}function ys(t,e=!0){var n=!1;(e||t.f&oi)&&null!==t.nodes&&null!==t.nodes.end&&(!function(t,e){for(;null!==t;){var n=t===e?null:Yo(t);t.remove(),t=n}}(t.nodes.start,t.nodes.end),n=!0),gs(t,e&&!n),Ks(t,0),ur(t,ei);var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)t.stop();vs(t);var r=t.parent;null!==r&&null!==r.first&&bs(t),t.component_function=null,t.next=t.prev=t.teardown=t.ctx=t.deps=t.fn=t.nodes=t.ac=null}function bs(t){var e=t.parent,n=t.prev,i=t.next;null!==n&&(n.next=i),null!==i&&(i.prev=n),null!==e&&(e.first===t&&(e.first=i),e.last===t&&(e.last=n))}function ks(t,e,n=!0){var i=[];xs(t,i,!0);var r=()=>{n&&ys(t),e&&e()},o=i.length;if(o>0){var s=()=>--o||r();for(var a of i)a.out(s)}else r()}function xs(t,e,n){if(!(t.f&ti)){t.f^=ti;var i=t.nodes&&t.nodes.t;if(null!==i)for(const t of i)(t.is_global||n)&&e.push(t);for(var r=t.first;null!==r;){var o=r.next;xs(r,e,!!(!!(r.f&ii)||!!(r.f&Hn)&&!!(t.f&Gn))&&n),r=o}}}function ws(t){_s(t,!0)}function _s(t,e){if(t.f&ti){t.f^=ti,t.f&Qn||(ur(t,Jn),Wr(t));for(var n=t.first;null!==n;){var i=n.next;_s(n,!!(!!(n.f&ii)||!!(n.f&Hn))&&e),n=i}var r=t.nodes&&t.nodes.t;if(null!==r)for(const t of r)(t.is_global||e)&&t.in()}}function Ts(t,e){if(t.nodes)for(var n=t.nodes.start,i=t.nodes.end;null!==n;){var r=n===i?null:Yo(n);e.append(n),n=r}}let Is=!1;function Es(t){Is=t}let Ss=!1;function As(t){Ss=t}let Ns=null,Ms=!1;function Fs(t){Ns=t}let Os=null;function Cs(t){Os=t}let Ps=null;function Ds(t){null!==Ns&&(null===Ps?Ps=[t]:Ps.push(t))}let Rs=null,Ls=0,Bs=null;let zs=1,Ws=0,Us=Ws;function $s(t){Us=t}function js(){return++zs}function qs(t){var e=t.f;if(e&Jn)return!0;if(e&$n&&(t.f&=~ci),e&Zn){for(var n=t.deps,i=n.length,r=0;r<i;r++){var o=n[r];if(qs(o)&&To(o),o.wv>t.wv)return!0}e&Yn&&null===vr&&ur(t,Qn)}return!1}function Vs(t,e,n=!0){var i,r=t.reactions;if(null!==r&&(null===(i=Ps)||void 0===i||!i.includes(t)))for(var o=0;o<r.length;o++){var s=r[o];s.f&$n?Vs(s,e,!1):e===s&&(n?ur(s,Jn):s.f&Qn&&ur(s,Zn),Wr(s))}}function Gs(t){var e=Rs,n=Ls,i=Bs,r=Ns,o=Ps,s=Vi,a=Ms,l=Us,c=t.f;Rs=null,Ls=0,Bs=null,Ns=c&(Hn|Kn)?null:t,Ps=null,Gi(t.ctx),Ms=!1,Us=++Ws,null!==t.ac&&(is((()=>{t.ac.abort(gi)})),t.ac=null);try{t.f|=ui;var u=(0,t.fn)(),d=t.deps;if(null!==Rs){var h;if(Ks(t,Ls),null!==d&&Ls>0)for(d.length=Ls+Rs.length,h=0;h<Rs.length;h++)d[Ls+h]=Rs[h];else t.deps=d=Rs;if(ss()&&t.f&Yn)for(h=Ls;h<d.length;h++){var f,p;(null!==(p=(f=d[h]).reactions)&&void 0!==p?p:f.reactions=[]).push(t)}}else null!==d&&Ls<d.length&&(Ks(t,Ls),d.length=Ls);if(!(null===Bs||Ms||null===d||t.f&($n|Zn|Jn)))for(h=0;h<Bs.length;h++)Vs(Bs[h],t);return null!==r&&r!==t&&(Ws++,null!==Bs&&(null===i?i=Bs:i.push(...Bs))),t.f&hi&&(t.f^=hi),u}catch(t){return sr(t)}finally{t.f^=ui,Rs=e,Ls=n,Bs=i,Ns=r,Ps=o,Gi(s),Ms=a,Us=l}}function Hs(t,e){let n=e.reactions;if(null!==n){var i=On.call(n,t);if(-1!==i){var r=n.length-1;0===r?n=e.reactions=null:(n[i]=n[r],n.pop())}}if(null===n&&e.f&$n&&(null===Rs||!Rs.includes(e))){var o=e;o.f&Yn&&(o.f^=Yn,o.f&=~ci),dr(o),xo(o),Ks(o,0)}}function Ks(t,e){var n=t.deps;if(null!==n)for(var i=e;i<n.length;i++)Hs(t,n[i])}function Xs(t){var e=t.f;if(!(e&ei)){ur(t,Qn);var n=Os,i=Is;Os=t,Is=!0;var r,o=Xi;Yi(t.component_function);var s=Hi;Ki(null!==(r=t.dev_stack)&&void 0!==r?r:Hi);try{e&(Gn|Vn)?function(t){for(var e=t.first;null!==e;){var n=e.next;e.f&Hn||ys(e),e=n}}(t):gs(t),vs(t);var a=Gs(t);t.teardown="function"==typeof a?a:null,t.wv=zs,Mn&&Di&&t.f&Jn&&t.deps}finally{Is=i,Os=n,Yi(o),Ki(s)}}}async function Ys(){await Promise.resolve(),function(){var t=kr;kr=!0;try{for(;;){var e;if(rr(),0===gr.length&&(null===(e=mr)||void 0===e||e.flush(),0===gr.length))return void(yr=null);Pr()}}finally{kr=t}}()}function Qs(t){var e,n,i=!!(t.f&$n);if(null!==Ns&&!Ms&&!(null!==Os&&!!(Os.f&ei)||null!==(n=Ps)&&void 0!==n&&n.includes(t))){var r=Ns.deps;if(Ns.f&ui)t.rv<Ws&&(t.rv=Ws,null===Rs&&null!==r&&r[Ls]===t?Ls++:null===Rs?Rs=[t]:Rs.includes(t)||Rs.push(t));else{var o,s;(null!==(s=(o=Ns).deps)&&void 0!==s?s:o.deps=[]).push(t);var a=t.reactions;null===a?t.reactions=[Ns]:a.includes(Ns)||a.push(Ns)}}if(vo.delete(t),Ss&&Eo.has(t))return Eo.get(t);if(i){var l=t;if(Ss){var c=l.v;return(l.f&Qn||null===l.reactions)&&!Zs(l)||(c=_o(l)),Eo.set(l,c),c}var u=!(l.f&Yn)&&!Ms&&null!==Ns&&(Is||!!(Ns.f&Yn)),d=null===l.deps;qs(l)&&(u&&(l.f|=Yn),To(l)),u&&!d&&Js(l)}if(null!==(e=vr)&&void 0!==e&&e.has(t))return vr.get(t);if(t.f&hi)throw t.v;return t.v}function Js(t){if(null!==t.deps){t.f|=Yn;for(const n of t.deps){var e;(null!==(e=n.reactions)&&void 0!==e?e:n.reactions=[]).push(t),n.f&$n&&!(n.f&Yn)&&Js(n)}}}function Zs(t){if(t.v===En)return!0;if(null===t.deps)return!1;for(const e of t.deps){if(Eo.has(e))return!0;if(e.f&$n&&Zs(e))return!0}return!1}function ta(t){var e=Ms;try{return Ms=!0,t()}finally{Ms=e}}const ea=new Set,na=new Set;function ia(t,e,n,i={}){function r(t){if(i.capture||aa.call(e,t),!t.cancelBubble)return is((()=>null==n?void 0:n.call(this,t)))}return t.startsWith("pointer")||t.startsWith("touch")||"wheel"===t?ir((()=>{e.addEventListener(t,r,i)})):e.addEventListener(t,r,i),r}function ra(t,e,n,i,r){var o={capture:i,passive:r},s=ia(t,e,n,o);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&as((()=>{e.removeEventListener(t,s,o)}))}function oa(t){for(var e=0;e<t.length;e++)ea.add(t[e]);for(var n of na)n(t)}let sa=null;function aa(t){var e,n=this,i=n.ownerDocument,r=t.type,o=(null===(e=t.composedPath)||void 0===e?void 0:e.call(t))||[],s=o[0]||t.target;sa=t;var a=0,l=sa===t&&t.__root;if(l){var c=o.indexOf(l);if(-1!==c&&(n===document||n===window))return void(t.__root=n);var u=o.indexOf(n);if(-1===u)return;c<=u&&(a=c)}if((s=o[a]||t.target)!==n){Pn(t,"currentTarget",{configurable:!0,get:()=>s||i});var d=Ns,h=Os;Fs(null),Cs(null);try{for(var f,p=[];null!==s;){var m=s.assignedSlot||s.parentNode||s.host||null;try{var v=s["__"+r];null==v||s.disabled&&t.target!==s||v.call(s,t)}catch(t){f?p.push(t):f=t}if(t.cancelBubble||m===n||null===m)break;s=m}if(f){for(let t of p)queueMicrotask((()=>{throw t}));throw f}}finally{t.__root=n,delete t.currentTarget,Fs(d),Cs(h)}}}function la(t,e){var n=Os;null===n.nodes&&(n.nodes={start:t,end:e,a:null,t:null})}function ca(t,e){var n,i=!!(1&e),r=!!(2&e),o=!t.startsWith("<!>");return()=>{if(Ei)return la(Ii,null),Ii;var e,s;void 0===n&&(e=o?t:"<!>"+t,(s=document.createElement("template")).innerHTML=e.replaceAll("<!>","\x3c!----\x3e"),n=s.content,i||(n=Xo(n)));var a=r||qo?document.importNode(n,!0):n.cloneNode(!0);i?la(Xo(a),a.lastChild):la(a,a);return a}}function ua(){if(Ei)return la(Ii,null),Ii;var t=document.createDocumentFragment(),e=document.createComment(""),n=Ko();return t.append(e,n),la(e,n),t}function da(t,e){if(Ei){var n=Os;return n.f&ni&&null!==n.nodes.end||(n.nodes.end=Ii),void Ni()}null!==t&&t.before(e)}function ha(t){return t.endsWith("capture")&&"gotpointercapture"!==t&&"lostpointercapture"!==t}const fa=["beforeinput","click","change","dblclick","contextmenu","focusin","focusout","input","keydown","keyup","mousedown","mousemove","mouseout","mouseover","mouseup","pointerdown","pointermove","pointerout","pointerover","pointerup","touchend","touchmove","touchstart"];function pa(t){return fa.includes(t)}const ma={formnovalidate:"formNoValidate",ismap:"isMap",nomodule:"noModule",playsinline:"playsInline",readonly:"readOnly",defaultvalue:"defaultValue",defaultchecked:"defaultChecked",srcobject:"srcObject",novalidate:"noValidate",allowfullscreen:"allowFullscreen",disablepictureinpicture:"disablePictureInPicture",disableremoteplayback:"disableRemotePlayback"};function va(t){var e;return t=t.toLowerCase(),null!==(e=ma[t])&&void 0!==e?e:t}const ga=["touchstart","touchmove"];function ya(t,e){var n,i=null==e?"":"object"==typeof e?e+"":e;i!==(null!==(n=t.__t)&&void 0!==n?n:t.__t=t.nodeValue)&&(t.__t=i,t.nodeValue=i+"")}function ba(t,e){return wa(t,e)}function ka(t,e){var n;Ho(),e.intro=null!==(n=e.intro)&&void 0!==n&&n;const i=e.target,r=Ei,o=Ii;try{for(var s=Xo(i);s&&(s.nodeType!==bi||s.data!==wn);)s=Yo(s);if(!s)throw In;Si(!0),Ai(s);const n=wa(t,{...e,anchor:s});return Si(!1),n}catch(n){if(n instanceof Error&&n.message.split("\n").some((t=>t.startsWith("https://svelte.dev/e/"))))throw n;return n!==In&&console.warn("Failed to hydrate: ",n),!1===e.recover&&function(){{const t=new Error("hydration_failed\nFailed to hydrate the application\nhttps://svelte.dev/e/hydration_failed");throw t.name="Svelte error",t}}(),Ho(),ts(i),Si(!1),ba(t,e)}finally{Si(r),Ai(o)}}const xa=new Map;function wa(t,{target:e,anchor:n,props:i={},events:r,context:o,intro:s=!0}){Ho();var a=new Set,l=t=>{for(var n=0;n<t.length;n++){var i=t[n];if(!a.has(i)){a.add(i);var r=(s=i,ga.includes(s));e.addEventListener(i,aa,{passive:r});var o=xa.get(i);void 0===o?(document.addEventListener(i,aa,{passive:r}),xa.set(i,1)):xa.set(i,o+1)}}var s};l(Cn(ea)),na.add(l);var c=void 0,u=function(t){Nr.ensure();const e=os(Kn|si,t,!0);return(t={})=>new Promise((n=>{t.outro?ks(e,(()=>{ys(e),n(void 0)})):(ys(e),n(void 0))}))}((()=>{var s=null!=n?n:e.appendChild(Ko());return function(t,e,n){new so(t,e,n)}(s,{pending:()=>{}},(e=>{o&&(Ji({}),Vi.c=o);if(r&&(i.$$events=r),Ei&&la(e,null),c=t(e,i)||{},Ei&&(Os.nodes.end=Ii,null===Ii||Ii.nodeType!==bi||Ii.data!==Tn))throw _i(),In;o&&Zi()})),()=>{for(var t of a){e.removeEventListener(t,aa);var i=xa.get(t);0==--i?(document.removeEventListener(t,aa),xa.delete(t)):xa.set(t,i)}var r;(na.delete(l),s!==n)&&(null===(r=s.parentNode)||void 0===r||r.removeChild(s))}}));return _a.set(c,u),c}let _a=new WeakMap;function Ta(t,e){const n=_a.get(t);return n?(_a.delete(t),n(e)):(fi in t?console.warn("%c[svelte] state_proxy_unmount\n%cTried to unmount a state proxy, rather than a component\nhttps://svelte.dev/e/state_proxy_unmount",xi,wi):console.warn("%c[svelte] lifecycle_double_unmount\n%cTried to unmount a component that was not mounted\nhttps://svelte.dev/e/lifecycle_double_unmount",xi,wi),Promise.resolve())}class Ia{anchor;#t=new Map;#e=new Map;#n=new Map;#i=new Set;#r=!0;constructor(t,e=!0){this.anchor=t,this.#r=e}#o=()=>{var t=mr;if(this.#t.has(t)){var e=this.#t.get(t),n=this.#e.get(e);if(n)ws(n),this.#i.delete(e);else{var i=this.#n.get(e);i&&(this.#e.set(e,i.effect),this.#n.delete(e),i.fragment.lastChild.remove(),this.anchor.before(i.fragment),n=i.effect)}for(const[e,n]of this.#t){if(this.#t.delete(e),e===t)break;const i=this.#n.get(n);i&&(ys(i.effect),this.#n.delete(n))}for(const[t,i]of this.#e){if(t===e||this.#i.has(t))continue;const r=()=>{if(Array.from(this.#t.values()).includes(t)){var e=document.createDocumentFragment();Ts(i,e),e.append(Ko()),this.#n.set(t,{effect:i,fragment:e})}else ys(i);this.#i.delete(t),this.#e.delete(t)};this.#r||!n?(this.#i.add(t),ks(i,r,!1)):r()}}};#s=t=>{this.#t.delete(t);const e=Array.from(this.#t.values());for(const[t,n]of this.#n)e.includes(t)||(ys(n.effect),this.#n.delete(t))};ensure(t,e){var n=mr;!e||this.#e.has(t)||this.#n.has(t)||this.#e.set(t,ms((()=>e(this.anchor)))),this.#t.set(n,t),Ei&&(this.anchor=Ii),this.#o()}}{let t=function(t){if(!(t in globalThis)){let e;Object.defineProperty(globalThis,t,{configurable:!0,get:()=>{if(void 0!==e)return e;!function(t){{const e=new Error(`rune_outside_svelte\nThe \`${t}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throw e.name="Svelte error",e}}(t)},set:t=>{e=t}})}};t("$state"),t("$effect"),t("$derived"),t("$inspect"),t("$props"),t("$bindable")}var Ea,Sa=new Map;function Aa(t,e,n=!1){Ei&&Ni();var i=new Ia(t);function r(e,n){if(Ei){if(e===(Oi(t)===_n)){var r=Fi();return Ai(r),i.anchor=r,Si(!1),i.ensure(e,n),void Si(!0)}}i.ensure(e,n)}fs((()=>{var t=!1;e(((e,n=!0)=>{t=!0,r(n,e)})),t||r(!1,null)}),n?ii:0)}function Na(t,e){return e}function Ma(t,e=!0){for(var n=0;n<t.length;n++)ys(t[n],e)}function Fa(t,e,n,i,r,o=null){var s=t,a=new Map;if(!!(e&mn)){var l=t;s=Ei?Ai(Xo(l)):l.appendChild(Ko())}Ei&&Ni();var c,u=null,d=ko((()=>{var t=n();return Fn(t)?t:null==t?[]:Cn(t)})),h=!0;function f(){m.fallback=u,function(t,e,n,i,r){var o,s,a,l,c,u=!!(i&vn),d=e.length,h=t.items,f=t.effect.first,p=null,m=[],v=[];if(u)for(c=0;c<d;c+=1){var g,y;if(a=r(e[c],c),!((l=h.get(a).e).f&li))null===(g=l.nodes)||void 0===g||null===(g=g.a)||void 0===g||g.measure(),(null!==(y=s)&&void 0!==y?y:s=new Set).add(l)}for(c=0;c<d;c+=1){if(a=r(e[c],c),l=h.get(a).e,null!==t.outrogroups)for(const e of t.outrogroups)e.pending.delete(l),e.done.delete(l);if(l.f&li){if(l.f^=li,l!==f){var b=p?p.next:f;l===t.effect.last&&(t.effect.last=l.prev),l.prev&&(l.prev.next=l.next),l.next&&(l.next.prev=l.prev),Pa(t,p,l),Pa(t,l,b),Ca(l,b,n),m=[],v=[],f=(p=l).next;continue}Ca(l,null,n)}var k,x;if(l.f&ti)if(ws(l),u)null===(k=l.nodes)||void 0===k||null===(k=k.a)||void 0===k||k.unfix(),(null!==(x=s)&&void 0!==x?x:s=new Set).delete(l);if(l!==f){if(void 0!==o&&o.has(l)){if(m.length<v.length){var w,_=v[0];p=_.prev;var T=m[0],I=m[m.length-1];for(w=0;w<m.length;w+=1)Ca(m[w],_,n);for(w=0;w<v.length;w+=1)o.delete(v[w]);Pa(t,T.prev,I.next),Pa(t,p,T),Pa(t,I,_),f=_,p=I,c-=1,m=[],v=[]}else o.delete(l),Ca(l,f,n),Pa(t,l.prev,l.next),Pa(t,l,null===p?t.effect.first:p.next),Pa(t,p,l),p=l;continue}for(m=[],v=[];null!==f&&f!==l;){var E;(null!==(E=o)&&void 0!==E?E:o=new Set).add(f),v.push(f),f=f.next}if(null===f)continue}l.f&li||m.push(l),p=l,f=l.next}if(null!==t.outrogroups){for(const e of t.outrogroups){var S;if(0===e.pending.size)Ma(Cn(e.done)),null===(S=t.outrogroups)||void 0===S||S.delete(e)}0===t.outrogroups.size&&(t.outrogroups=null)}if(null!==f||void 0!==o){var A=[];if(void 0!==o)for(l of o)l.f&ti||A.push(l);for(;null!==f;)f.f&ti||f===t.fallback||A.push(f),f=f.next;var N=A.length;if(N>0){var M=i&mn&&0===d?n:null;if(u){for(c=0;c<N;c+=1){var F;null===(F=A[c].nodes)||void 0===F||null===(F=F.a)||void 0===F||F.measure()}for(c=0;c<N;c+=1){var O;null===(O=A[c].nodes)||void 0===O||null===(O=O.a)||void 0===O||O.fix()}}!function(t,e,n){for(var i,r=e.length,o=e.length,s=0;s<r;s++){let n=e[s];ks(n,(()=>{if(i){if(i.pending.delete(n),i.done.add(n),0===i.pending.size){var e=t.outrogroups;Ma(Cn(i.done)),e.delete(i),0===e.size&&(t.outrogroups=null)}}else o-=1}),!1)}if(0===o){var a=null!==n;if(a){var l=n,c=l.parentNode;ts(c),c.append(l),t.items.clear()}Ma(e,!a)}else{var u;i={pending:new Set(e),done:new Set},(null!==(u=t.outrogroups)&&void 0!==u?u:t.outrogroups=new Set).add(i)}}(t,A,M)}}u&&ir((()=>{if(void 0!==s)for(l of s){var t;null===(t=l.nodes)||void 0===t||null===(t=t.a)||void 0===t||t.apply()}}))}(m,c,s,e,i),null!==u&&(0===c.length?u.f&li?(u.f^=li,Ca(u,null,s)):ws(u):ks(u,(()=>{u=null})))}var p=fs((()=>{var t=(c=Qs(d)).length;let l=!1;Ei&&(Oi(s)===_n!==(0===t)&&(Ai(s=Fi()),Si(!1),l=!0));for(var p=new Set,m=0;m<t;m+=1){Ei&&Ii.nodeType===bi&&Ii.data===Tn&&(s=Ii,l=!0,Si(!1));var v,g=c[m],y=i(g,m),b=h?null:a.get(y);if(b)b.v&&Co(b.v,g),b.i&&Co(b.i,m);else b=Oa(a,h?s:null!==(v=Ea)&&void 0!==v?v:Ea=Ko(),g,y,m,r,e,n),h||(b.e.f|=li),a.set(y,b);p.add(y)}0===t&&o&&!u&&(h?u=ms((()=>o(s))):(u=ms((()=>{var t;return o(null!==(t=Ea)&&void 0!==t?t:Ea=Ko())}))).f|=li),Ei&&t>0&&Ai(Fi()),h||f(),l&&Si(!0),Qs(d)})),m={effect:p,items:a,outrogroups:null,fallback:u};h=!1,Ei&&(s=Ii)}function Oa(t,e,n,i,r,o,s,a){var l=s&fn?s&gn?No(n):Fo(n,!1,!1):null,c=s&pn?No(r):null;return l&&(l.trace=()=>{var t;a()[null!==(t=null==c?void 0:c.v)&&void 0!==t?t:r]}),{v:l,i:c,e:ms((()=>(o(e,null!=l?l:n,null!=c?c:r,a),()=>{t.delete(i)})))}}function Ca(t,e,n){if(t.nodes)for(var i=t.nodes.start,r=t.nodes.end,o=!e||e.f&li?n:e.nodes.start;null!==i;){var s=Yo(i);if(o.before(i),i===r)return;i=s}}function Pa(t,e,n){null===e?t.effect.first=n:e.next=n,null===n?t.effect.last=e:n.prev=e}function Da(t,e){us((()=>{var n,i=t.getRootNode(),r=i.host?i:null!==(n=i.head)&&void 0!==n?n:i.ownerDocument.head;if(!r.querySelector("#"+e.hash)){const t=document.createElement("style");t.id=e.hash,t.textContent=e.code,r.appendChild(t),function(t,e){var n=Sa.get(t);n||(n=new Set,Sa.set(t,n)),n.add(e)}(e.hash,t)}}))}function Ra(t,e){var n,i=void 0;ps((()=>{i!==(i=e())&&(n&&(ys(n),n=null),i&&(n=ms((()=>{us((()=>i(t)))}))))}))}function La(t){var e,n,i="";if("string"==typeof t||"number"==typeof t)i+=t;else if("object"==typeof t)if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(n=La(t[e]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}function Ba(t){return"object"==typeof t?function(){for(var t,e,n=0,i="",r=arguments.length;n<r;n++)(t=arguments[n])&&(e=La(t))&&(i&&(i+=" "),i+=e);return i}(t):null!=t?t:""}const za=[..." \t\n\r\f \v\ufeff"];function Wa(t,e=!1){var n=e?" !important;":";",i="";for(var r in t){var o=t[r];null!=o&&""!==o&&(i+=" "+r+": "+o+n)}return i}function Ua(t){return"-"!==t[0]||"-"!==t[1]?t.toLowerCase():t}function $a(t,e,n,i,r,o){var s=t.__className;if(Ei||s!==n||void 0===s){var a=function(t,e,n){var i=null==t?"":""+t;if(e&&(i=i?i+" "+e:e),n)for(var r in n)if(n[r])i=i?i+" "+r:r;else if(i.length)for(var o=r.length,s=0;(s=i.indexOf(r,s))>=0;){var a=s+o;0!==s&&!za.includes(i[s-1])||a!==i.length&&!za.includes(i[a])?s=a:i=(0===s?"":i.substring(0,s))+i.substring(a+1)}return""===i?null:i}(n,i,o);Ei&&a===t.getAttribute("class")||(null==a?t.removeAttribute("class"):e?t.className=a:t.setAttribute("class",a)),t.__className=n}else if(o&&r!==o)for(var l in o){var c=!!o[l];null!=r&&c===!!r[l]||t.classList.toggle(l,c)}return o}function ja(t,e={},n,i){for(var r in n){var o=n[r];e[r]!==o&&(null==n[r]?t.style.removeProperty(r):t.style.setProperty(r,o,i))}}function qa(t,e,n,i){var r=t.__style;if(Ei||r!==e){var o=function(t,e){if(e){var n,i,r="";if(Array.isArray(e)?(n=e[0],i=e[1]):n=e,t){t=String(t).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var o=!1,s=0,a=!1,l=[];n&&l.push(...Object.keys(n).map(Ua)),i&&l.push(...Object.keys(i).map(Ua));var c=0,u=-1;const e=t.length;for(var d=0;d<e;d++){var h=t[d];if(a?"/"===h&&"*"===t[d-1]&&(a=!1):o?o===h&&(o=!1):"/"===h&&"*"===t[d+1]?a=!0:'"'===h||"'"===h?o=h:"("===h?s++:")"===h&&s--,!a&&!1===o&&0===s)if(":"===h&&-1===u)u=d;else if(";"===h||d===e-1){if(-1!==u){var f=Ua(t.substring(c,u).trim());l.includes(f)||(";"!==h&&d++,r+=" "+t.substring(c,d).trim()+";")}c=d+1,u=-1}}}return n&&(r+=Wa(n)),i&&(r+=Wa(i,!0)),""===(r=r.trim())?null:r}return null==t?null:String(t)}(e,i);Ei&&o===t.getAttribute("style")||(null==o?t.removeAttribute("style"):t.style.cssText=o),t.__style=e}else i&&(Array.isArray(i)?(ja(t,null==n?void 0:n[0],i[0]),ja(t,null==n?void 0:n[1],i[1],"important")):ja(t,n,i));return i}function Va(t,e,n=!1){if(t.multiple){if(null==e)return;if(!Fn(e))return void console.warn("%c[svelte] select_multiple_invalid_value\n%cThe `value` property of a `<select multiple>` element should be an array, but it received a non-array value. The selection will be kept as is.\nhttps://svelte.dev/e/select_multiple_invalid_value",xi,wi);for(var i of t.options)i.selected=e.includes(Ga(i))}else{for(i of t.options){var r=Ga(i);if(o=r,s=e,Object.is(Wo(o),Wo(s)))return void(i.selected=!0)}var o,s;n&&void 0===e||(t.selectedIndex=-1)}}function Ga(t){return"__value"in t?t.__value:t.value}const Ha=Symbol("class"),Ka=Symbol("style"),Xa=Symbol("is custom element"),Ya=Symbol("is html");function Qa(t){if(Ei){var e=!1,n=()=>{if(!e){if(e=!0,t.hasAttribute("value")){var n=t.value;Za(t,"value",null),t.value=n}if(t.hasAttribute("checked")){var i=t.checked;Za(t,"checked",null),t.checked=i}}};t.__on_r=n,ir(n),ns||(ns=!0,document.addEventListener("reset",(t=>{Promise.resolve().then((()=>{if(!t.defaultPrevented)for(const n of t.target.elements){var e;null===(e=n.__on_r)||void 0===e||e.call(n)}}))}),{capture:!0}))}}function Ja(t,e){e?t.hasAttribute("selected")||t.setAttribute("selected",""):t.removeAttribute("selected")}function Za(t,e,n,i){var r=el(t);Ei&&(r[e]=t.getAttribute(e),"src"===e||"srcset"===e||"href"===e&&"LINK"===t.nodeName)?i||function(t,e,n){var i;if("srcset"===e&&function(t,e){var n=ol(t.srcset),i=ol(e);return i.length===n.length&&i.every((([t,e],i)=>e===n[i][1]&&(rl(n[i][0],t)||rl(t,n[i][0]))))}(t,n))return;if(rl(null!==(i=t.getAttribute(e))&&void 0!==i?i:"",n))return;!function(t,e,n){console.warn(`%c[svelte] hydration_attribute_changed\n%cThe \`${t}\` attribute on \`${e}\` changed its value between server and client renders. The client value, \`${n}\`, will be ignored in favour of the server value\nhttps://svelte.dev/e/hydration_attribute_changed`,xi,wi)}(e,t.outerHTML.replace(t.innerHTML,t.innerHTML&&"..."),String(n))}(t,e,null!=n?n:""):r[e]!==(r[e]=n)&&("loading"===e&&(t[mi]=n),null==n?t.removeAttribute(e):"string"!=typeof n&&il(t).includes(e)?t[e]=n:t.setAttribute(e,n))}function tl(t,e,n=[],i=[],r=[],o,s=!1,a=!1){po(r,n,i,(n=>{var i=void 0,r={},l="SELECT"===t.nodeName,c=!1;if(ps((()=>{var u=e(...n.map(Qs)),d=function(t,e,n,i,r=!1,o=!1){if(Ei&&r&&"INPUT"===t.tagName){var s=t;("checkbox"===s.type?"defaultChecked":"defaultValue")in n||Qa(s)}var a=el(t),l=a[Xa],c=!a[Ya];let u=Ei&&l;u&&Si(!1);var d,h=e||{},f="OPTION"===t.tagName;for(var p in e)p in n||(n[p]=null);n.class?n.class=Ba(n.class):n.class=null,n[Ka]&&(null!==(d=n.style)&&void 0!==d||(n.style=null));var m=il(t);for(const r in n){let s=n[r];if(f&&"value"===r&&null==s)t.value=t.__value="",h[r]=s;else if("class"!==r)if("style"!==r){var v=h[r];if(s!==v||void 0===s&&t.hasAttribute(r)){h[r]=s;var g=r[0]+r[1];if("$$"!==g)if("on"===g){const e={},n="$$"+r;let i=r.slice(2);var y=pa(i);if(ha(i)&&(i=i.slice(0,-7),e.capture=!0),!y&&v){if(null!=s)continue;t.removeEventListener(i,h[n],e),h[n]=null}if(null!=s)if(y)t[`__${i}`]=s,oa([i]);else{let o=function(t){h[r].call(this,t)};h[n]=ia(i,t,o,e)}else y&&(t[`__${i}`]=void 0)}else if("style"===r)Za(t,r,s);else if("autofocus"===r)es(t,Boolean(s));else if(l||"__value"!==r&&("value"!==r||null==s))if("selected"===r&&f)Ja(t,s);else{var b=r;c||(b=va(b));var k="defaultValue"===b||"defaultChecked"===b;if(null!=s||l||k)k||m.includes(b)&&(l||"string"!=typeof s)?(t[b]=s,b in a&&(a[b]=En)):"function"!=typeof s&&Za(t,b,s,o);else if(a[r]=null,"value"===b||"checked"===b){let n=t;const i=void 0===e;if("value"===b){let t=n.defaultValue;n.removeAttribute(b),n.defaultValue=t,n.value=n.__value=i?t:null}else{let t=n.defaultChecked;n.removeAttribute(b),n.defaultChecked=t,n.checked=!!i&&t}}else t.removeAttribute(r)}else t.value=t.__value=s}}else qa(t,s,null==e?void 0:e[Ka],n[Ka]),h[r]=s,h[Ka]=n[Ka];else $a(t,"http://www.w3.org/1999/xhtml"===t.namespaceURI,s,i,null==e?void 0:e[Ha],n[Ha]),h[r]=s,h[Ha]=n[Ha]}return u&&Si(!0),h}(t,i,u,o,s,a);c&&l&&"value"in u&&Va(t,u.value);for(let t of Object.getOwnPropertySymbols(r))u[t]||ys(r[t]);for(let e of Object.getOwnPropertySymbols(u)){var h=u[e];e.description!==Nn||i&&h===i[e]||(r[e]&&ys(r[e]),r[e]=ms((()=>Ra(t,(()=>h))))),d[e]=h}i=d})),l){var u=t;us((()=>{Va(u,i.value,!0),function(t){var e=new MutationObserver((()=>{Va(t,t.__value)}));e.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["value"]}),as((()=>{e.disconnect()}))}(u)}))}c=!0}))}function el(t){var e;return null!==(e=t.__attributes)&&void 0!==e?e:t.__attributes={[Xa]:t.nodeName.includes("-"),[Ya]:t.namespaceURI===An}}var nl=new Map;function il(t){var e,n=t.getAttribute("is")||t.nodeName,i=nl.get(n);if(i)return i;nl.set(n,i=[]);for(var r=t,o=Element.prototype;o!==r;){for(var s in e=Rn(r))e[s].set&&i.push(s);r=zn(r)}return i}function rl(t,e){return t===e||new URL(t,document.baseURI).href===new URL(e,document.baseURI).href}function ol(t){return t.split(",").map((t=>t.trim().split(" ").filter(Boolean)))}function sl(t,e){return t===e||(null==t?void 0:t[fi])===e}function al(t={},e,n,i){return us((()=>{var i,r;return ds((()=>{i=r,r=[],ta((()=>{t!==n(...r)&&(e(t,...r),i&&sl(n(...i),t)&&e(null,...i))}))})),()=>{ir((()=>{r&&sl(n(...r),t)&&e(null,...r)}))}})),t}let ll=!1;function cl(t,e,n,i){var r,o,s=!!(n&kn),a=!!(n&xn),l=i,c=!0,u=()=>(c&&(c=!1,l=a?ta(i):i),l);if(s){var d,h,f=fi in t||pi in t;r=null!==(d=null===(h=Dn(t,e))||void 0===h?void 0:h.set)&&void 0!==d?d:f&&e in t?n=>t[e]=n:void 0}var p,m=!1;if(s?[o,m]=function(t){var e=ll;try{return ll=!1,[t(),ll]}finally{ll=e}}((()=>t[e])):o=t[e],void 0===o&&void 0!==i&&(o=u(),r&&(!function(t){{const e=new Error(`props_invalid_value\nCannot do \`bind:${t}={undefined}\` when \`${t}\` has a fallback value\nhttps://svelte.dev/e/props_invalid_value`);throw e.name="Svelte error",e}}(e),r(o))),p=()=>{var n=t[e];return void 0===n?u():(c=!0,n)},!(n&bn))return p;if(r){var v=t.$$legacy;return function(t,e){return arguments.length>0?((!e||v||m)&&r(e?p():t),t):p()}}var g=!1,y=(n&yn?go:ko)((()=>(g=!1,p())));y.label=e,s&&Qs(y);var b=Os;return function(t,e){if(arguments.length>0){const n=e?Qs(y):s?Bo(t):t;return Oo(y,n),g=!0,void 0!==l&&(l=n),t}return Ss&&g||b.f&ei?y.v:Qs(y)}}function ul(t,...e){return ta((()=>{try{let n=!1;const i=[];for(const t of e)t&&"object"==typeof t&&fi in t?(i.push(Wi(t,!0)),n=!0):i.push(t);n&&(!function(t){console.warn(`%c[svelte] console_log_state\n%cYour \`console.${t}\` contained \`$state\` proxies. Consider using \`$inspect(...)\` or \`$state.snapshot(...)\` instead\nhttps://svelte.dev/e/console_log_state`,xi,wi)}(t),console.log("%c[snapshot]","color: grey",...i))}catch{}})),e}var dl,hl,fl,pl;"undefined"!=typeof window&&(null!==(hl=(dl=null!==(pl=(fl=window).__svelte)&&void 0!==pl?pl:fl.__svelte={}).v)&&void 0!==hl?hl:dl.v=new Set).add("5");function ml(t,{include:e,exclude:n}={}){const i=t=>{const i=e=>"string"==typeof e?t===e:e.test(t);return e?e.some(i):!n||!n.some(i)};for(const[e,n]of(t=>{const e=new Set;do{for(const n of Reflect.ownKeys(t))e.add([t,n])}while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e})(t.constructor.prototype)){if("constructor"===n||!i(n))continue;const r=Reflect.getOwnPropertyDescriptor(e,n);r&&"function"==typeof r.value&&(t[n]=t[n].bind(t))}return t}function vl(t,e){t.getNodesAtTime(0)[0].once("nodestart",e)}class gl{constructor({position:t,galleryState:e,config:n}){this.config=n,this.position=t,this.galleryState=e,this.name=n.name;const{variantId:i,itemIndex:r,moduleIndex:o}=t;this.id=`${n.itemType}_${i}_${r}_${o}`,ml(this)}#a=$i(Mo(Bo({})),"BaseModule.#state");#l=$i(Mo(null),"BaseModule.#cover");#c=$i(Mo(!1),"BaseModule.#showCover");#u=$i(Mo(null),"BaseModule.#Component");id;player;position;config;timeline;moduleEndListener;hasDuration=!1;coverAssets=[];get state(){return Qs(this.#a)}set state(t){Oo(this.#a,t,!0)}get cover(){return Qs(this.#l)}set cover(t){Oo(this.#l,t)}get showCover(){return Qs(this.#c)}set showCover(t){Oo(this.#c,t,!0)}get Component(){return Qs(this.#u)}set Component(t){Oo(this.#u,t)}emitModuleEnd(){var t;null===(t=this.moduleEndListener)||void 0===t||t.call(this)}start(t){this.player=t}setPosition(){this.galleryState.playingModulePosition=this.position}play(){vl(this.timeline,(()=>{this.setPosition()})),this.player.switchTimeline(this.timeline)}get duration(){return this.hasDuration?this.timeline.placements.reduce(((t,e)=>t+this.player.getNode(e.nodeId).duration),0):0}}function yl(t,e,n){var i,r,o;const s=(null==e||null===(i=e.entity)||void 0===i?void 0:i.entityId)||(null==e?void 0:e.assetId),a=null!==(r=null==e||null===(o=e.entity)||void 0===o?void 0:o.entityRevision)&&void 0!==r?r:null==e?void 0:e.assetRevision;return n.addNode({id:t,manifestRef:{type:"assets-delivery-service",assetId:s,assetRevision:a,availableEncodeProfiles:e.availableEncodeProfiles}})}var bl=ca('<h3 class="text-box-title svelte-17x2i38"> </h3>'),kl=ca('<span class="text-box-title svelte-17x2i38"> </span>'),xl=ca('<span class="text-box-description minimized-description svelte-17x2i38"> </span>'),wl=ca('<span class="read-more-cta svelte-17x2i38" aria-hidden="true">Read more</span>'),_l=ca('<button class="expand-description-button svelte-17x2i38" aria-expanded="false" aria-controls="expanded-text-content" aria-label="Expand feature description"><!> <!></button>'),Tl=ca('<button aria-expanded="true" aria-label="Collapse feature description" class="svelte-17x2i38">Read less</button>'),Il=ca('<section aria-label="Feature description" aria-live="polite"><div class="text-wrapper svelte-17x2i38"><div class="expanded-text-content svelte-17x2i38"><!> <p class="text-box-description svelte-17x2i38"> </p></div> <!></div> <!></section>');const El={hash:"svelte-17x2i38",code:".step-description-container.svelte-17x2i38 {width:100%;position:absolute;bottom:0;display:flex;justify-content:space-between;gap:8px;box-sizing:border-box;font-size:12px;font-weight:400;font-style:normal;line-height:16px;letter-spacing:0px;overflow:hidden;pointer-events:none;background:linear-gradient(\n rgba(255, 255, 255, 0) 0%,\n rgba(255, 255, 255, 0.9) 27.79%,\n rgba(255, 255, 255, 0.95) 100%\n );&.expanded {flex-direction:column;justify-content:flex-start;}&:not(.expanded) {button:where(.svelte-17x2i38) {line-height:16px;}}}.expanded-text-content.svelte-17x2i38:not([hidden]) {display:flex;flex-direction:column;gap:8px;}button.svelte-17x2i38 {background:none;border:none;padding:0;cursor:pointer;line-height:18px;gap:8px;letter-spacing:0%;color:#014FD3;font-size:12px;font-weight:500;flex-shrink:0;text-align:left;font-family:inherit;pointer-events:auto;}h3.svelte-17x2i38, p.svelte-17x2i38, span.svelte-17x2i38 {color:#030303;}.text-wrapper.svelte-17x2i38 {width:100%;}.text-box-title.svelte-17x2i38 {margin:0;font-weight:500;font-size:12px;}.text-box-description.svelte-17x2i38 {margin:0;text-align:left;font-weight:400;}.minimized-description.svelte-17x2i38 {overflow:hidden;line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;font-weight:400;}.expand-description-button.svelte-17x2i38 {width:100%;display:flex;justify-content:space-between;gap:6px;flex-wrap:nowrap;.read-more-cta:where(.svelte-17x2i38) {color:#014FD3;flex-shrink:0;}}"};function Sl(t,e){const n=bo((()=>e.state.textBox));!function(t,e){Ji(e,!0),Da(t,El);let n=cl(e,"textBox",3,null),i=cl(e,"isMobile",3,!1),r=Mo(!1),o=Mo(null),s=Mo(!1),a=bo((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.title)||""})),l=bo((()=>{var t;return(null===(t=n())||void 0===t?void 0:t.description)||""})),c=bo((()=>i()?16:18)),u=bo((()=>i()?12:16));function d(){Qs(o)&&Oo(s,Qs(o).scrollWidth>Qs(o).clientWidth||Qs(o).scrollHeight>Qs(o).clientHeight,!0)}ls((()=>{Qs(o)&&d()}));var h=ua();ra("resize",jo,d);var f=Jo(h),p=t=>{var e=Il(),n=Qo(e),d=Qo(n),h=Qo(d),f=t=>{var e=bl(),n=Qo(e,!0);Mi(e),hs((()=>ya(n,Qs(a)))),da(t,e)};Aa(h,(t=>{i()&&t(f)}));var p=Zo(h,2),m=Qo(p,!0);Mi(p),Mi(d);var v=Zo(d,2),g=t=>{var e=_l();e.__click=()=>Oo(r,!0);var n=Qo(e),u=t=>{var e=kl(),n=Qo(e,!0);Mi(e),hs((()=>ya(n,Qs(a)))),da(t,e)},d=t=>{var e=xl(),n=Qo(e,!0);Mi(e),al(e,(t=>Oo(o,t)),(()=>Qs(o))),hs((()=>ya(n,Qs(l)))),da(t,e)};Aa(n,(t=>{i()&&Qs(a)?t(u):t(d,!1)}));var h=Zo(n,2),f=t=>{da(t,wl())};Aa(h,(t=>{(i()||!i()&&Qs(s))&&t(f)})),Mi(e),hs((()=>qa(e,`line-height: ${Qs(c)}px;`))),da(t,e)};Aa(v,(t=>{Qs(r)||t(g)})),Mi(n);var y=Zo(n,2),b=t=>{var e=Tl();e.__click=()=>Oo(r,!1),hs((()=>qa(e,`margin-bottom: ${!i()&&Qs(r)?"8px":"0px"};\n line-height: ${Qs(u)}px;`))),da(t,e)};Aa(y,(t=>{Qs(r)&&t(b)})),Mi(e),hs((()=>{$a(e,1,"step-description-container "+(Qs(r)?"expanded":""),"svelte-17x2i38"),qa(e,`padding: ${i()?"8px 16px":"16px 16px 56px 16px"};`),qa(d,`line-height: ${Qs(c)}px;`),Za(d,"hidden",!Qs(r)),ya(m,Qs(l))})),da(t,e)};Aa(f,(t=>{(Qs(a)||Qs(l))&&t(p)})),da(t,h),Zi()}(t,{get textBox(){return Qs(n)},get isMobile(){return e.isMobile}})}oa(["click"]);var Al=ca('<div class="toggle-option-container svelte-16pmvvn"><button> </button></div>'),Nl=ca('<div class="toggle-container svelte-16pmvvn"><div></div></div>');const Ml={hash:"svelte-16pmvvn",code:".eko-gallery-app {--toggleModule_gap: 8px;--toggleModule_padding: 10px 58px 0 0;--toggleModule_options_padding: 0;--toggleModule_options_height: auto;--toggleModule_options_width: 100%;--toggleModule_options_gap: 8px;--toggleModule_button_backgroundColor: #FFFFFF;--toggleModule_button_padding: 8px 12px;--toggleModule_button_boxShadow: 0px 2px 8px 2px rgba(0, 0, 0, 0.07);--toggleModule_button_text_fontFamily: var(--fontName);--toggleModule_button_text_fontSize: 12px;--toggleModule_button_text_fontWeight: 400;--toggleModule_button_text_fontStyle: normal;--toggleModule_button_text_lineHeight: 16px;--toggleModule_button_text_letterSpacing: -0.2px;--toggleModule_button_text_color: #000;--toggleModule_button_border_radius: 100px;--toggleModule_title_fontFamily: var(--fontName);--toggleModule_title_fontSize: 13px;--toggleModule_title_fontWeight: 400;--toggleModule_title_fontStyle: normal;--toggleModule_title_lineHeight: 120%;--toggleModule_title_letterSpacing: 0;--toggleModule_title_color: #666;--toggleModule_title_textAlignment: center;--toggleModule_note_fontFamily: var(--fontName);--toggleModule_note_fontSize: 12px;--toggleModule_note_fontWeight: 400;--toggleModule_note_fontStyle: normal;--toggleModule_note_lineHeight: 120%;--toggleModule_note_letterSpacing: 0;--toggleModule_note_color: #888;--toggleModule_note_topMargin: 4px;}.toggle-container.svelte-16pmvvn {position:absolute;top:0;padding:var(--toggleModule_padding);width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--toggleModule_gap);pointer-events:auto;box-sizing:border-box;}.toggle-options.svelte-16pmvvn {width:var(--toggleModule_options_width);height:var(--toggleModule_options_height);padding:var(--toggleModule_options_padding);gap:var(--toggleModule_options_gap);display:flex;justify-content:end;margin:0;}.toggle-option-container.svelte-16pmvvn {position:relative;min-width:0;}.toggle-option-button.svelte-16pmvvn {border-radius:var(--toggleModule_button_borderRadius);font-family:var(--toggleModule_button_text_fontFamily);font-size:var(--toggleModule_button_text_fontSize);font-weight:var(--toggleModule_button_text_fontWeight);font-style:var(--toggleModule_button_text_fontStyle);line-height:var(--toggleModule_button_text_lineHeight);letter-spacing:var(--toggleModule_button_text_letterSpacing);color:var(--toggleModule_button_text_color);padding:var(--toggleModule_button_padding);border:#E4E5E8 solid 1px;background:#FBFBFB;display:flex;width:100%;height:100%;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;cursor:pointer;position:relative;transition:all 0.3s ease-in-out;animation-duration:0.5s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:calc(var(--button-index) * 90ms);\n animation-name: svelte-16pmvvn-button-back-appear-anim;transform-origin:bottom center;border-radius:var(--toggleModule_button_border_radius);}.toggle-option-button.selected.svelte-16pmvvn {box-shadow:none;color:#FFFFFF;background:#014FD3;border-color:#014FD3;}.toggle-option-button.svelte-16pmvvn:hover:not(.selected) {background:#F3F4F6;}.toggle-option-button.svelte-16pmvvn:active:not(.selected) {background:#E4E5E8;}.toggle-option-button.svelte-16pmvvn:focus {outline-offset:4px;outline-width:2px;}\n\n@keyframes svelte-16pmvvn-button-back-appear-anim {\n from {\n transform: scale(0);\n }\n to {\n transform: scale(1);\n }\n}\n@keyframes svelte-16pmvvn-optionNoteIn {\n 0% {\n opacity: 0;\n translate: -50% -5px;\n }\n 100% {\n opacity: 1;\n translate: -50% var(--toggleModule_note_topMargin);\n }\n}"};function Fl(t,e){Da(t,Ml);const n=bo((()=>e.state.options)),i=bo((()=>e.state.currentOptionIndex)),r=bo((()=>e.state.onOptionClicked));var o=Nl(),s=Qo(o);Fa(s,21,(()=>Qs(n)),Na,((t,e,n)=>{var o=Al();qa(o,`--button-index: ${n};`);var s=Qo(o);let a;s.__click=()=>Qs(r)(n);var l=Qo(s,!0);Mi(s),Mi(o),hs((()=>{a=$a(s,1,"toggle-option-button svelte-16pmvvn",null,a,{selected:Qs(i)===n}),ya(l,Qs(e).label)})),da(t,o)})),Mi(s),Mi(o),hs((()=>{var t;return $a(s,1,`toggle-options selected-${null!==(t=Qs(i))&&void 0!==t?t:""}`,"svelte-16pmvvn")})),da(t,o)}oa(["click"]);var Ol=new WeakSet;function Cl(t){var e,n;t!==this.state.currentOptionIndex&&(this.state.currentOptionIndex=t,this.cover=this.coverAssets[t],this.synced?this.switchTo(t):(this.timeline=null===(e=this.timelines)||void 0===e?void 0:e[t],this.showCover=!0,vl(this.timeline,(()=>{this.showCover=!1})),null===(n=this.player)||void 0===n||n.switchTimeline(this.timeline)))}const Pl=(t,e,n)=>n>e?e:n<t?t:n;function Dl(t,e){return e?`${t}. For more information and steps for solving, visit https://motion.dev/troubleshooting/${e}`:t}let Rl=()=>{},Ll=()=>{};function Bl(t){let e;return()=>(void 0===e&&(e=t()),e)}"undefined"!=typeof process&&"production"!==(null===(fe=process.env)||void 0===fe?void 0:fe.NODE_ENV)&&(Rl=(t,e,n)=>{t||"undefined"==typeof console||console.warn(Dl(e,n))},Ll=(t,e,n)=>{if(!t)throw new Error(Dl(e,n))});const zl=t=>t,Wl=t=>1e3*t,Ul=t=>t/1e3;const $l=t=>Array.isArray(t)&&"number"==typeof t[0],jl=(t,e,n=10)=>{let i="";const r=Math.max(Math.round(e/n),2);for(let e=0;e<r;e++)i+=Math.round(1e4*t(e/(r-1)))/1e4+", ";return`linear(${i.substring(0,i.length-2)})`},ql=2e4;function Vl(t){let e=0;let n=t.next(e);for(;!n.done&&e<ql;)e+=50,n=t.next(e);return e>=ql?1/0:e}const Gl=5;const Hl={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Kl=.001;function Xl({duration:t=Hl.duration,bounce:e=Hl.bounce,velocity:n=Hl.velocity,mass:i=Hl.mass}){let r,o;Rl(t<=Wl(Hl.maxDuration),"Spring duration must be 10 seconds or less","spring-duration-limit");let s=1-e;s=Pl(Hl.minDamping,Hl.maxDamping,s),t=Pl(Hl.minDuration,Hl.maxDuration,Ul(t)),s<1?(r=e=>{const i=e*s,r=i*t,o=i-n,a=Ql(e,s),l=Math.exp(-r);return Kl-o/a*l},o=e=>{const i=e*s*t,o=i*n+n,a=Math.pow(s,2)*Math.pow(e,2)*t,l=Math.exp(-i),c=Ql(Math.pow(e,2),s);return(-r(e)+Kl>0?-1:1)*((o-a)*l)/c}):(r=e=>Math.exp(-e*t)*((e-n)*t+1)-Kl,o=e=>Math.exp(-e*t)*(t*t*(n-e)));const a=function(t,e,n){let i=n;for(let n=1;n<Yl;n++)i-=t(i)/e(i);return i}(r,o,5/t);if(t=Wl(t),isNaN(a))return{stiffness:Hl.stiffness,damping:Hl.damping,duration:t};{const e=Math.pow(a,2)*i;return{stiffness:e,damping:2*s*Math.sqrt(i*e),duration:t}}}const Yl=12;function Ql(t,e){return t*Math.sqrt(1-e*e)}const Jl=["duration","bounce"],Zl=["stiffness","damping","mass"];function tc(t,e){return e.some((e=>void 0!==t[e]))}function ec(t=Hl.visualDuration,e=Hl.bounce){const n="object"!=typeof t?{visualDuration:t,keyframes:[0,1],bounce:e}:t;let{restSpeed:i,restDelta:r}=n;const o=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:l,damping:c,mass:u,duration:d,velocity:h,isResolvedFromDuration:f}=function(t){let e={velocity:Hl.velocity,stiffness:Hl.stiffness,damping:Hl.damping,mass:Hl.mass,isResolvedFromDuration:!1,...t};if(!tc(t,Zl)&&tc(t,Jl))if(t.visualDuration){const n=t.visualDuration,i=2*Math.PI/(1.2*n),r=i*i,o=2*Pl(.05,1,1-(t.bounce||0))*Math.sqrt(r);e={...e,mass:Hl.mass,stiffness:r,damping:o}}else{const n=Xl(t);e={...e,...n,mass:Hl.mass},e.isResolvedFromDuration=!0}return e}({...n,velocity:-Ul(n.velocity||0)}),p=h||0,m=c/(2*Math.sqrt(l*u)),v=s-o,g=Ul(Math.sqrt(l/u)),y=Math.abs(v)<5;let b;if(i||(i=y?Hl.restSpeed.granular:Hl.restSpeed.default),r||(r=y?Hl.restDelta.granular:Hl.restDelta.default),m<1){const t=Ql(g,m);b=e=>{const n=Math.exp(-m*g*e);return s-n*((p+m*g*v)/t*Math.sin(t*e)+v*Math.cos(t*e))}}else if(1===m)b=t=>s-Math.exp(-g*t)*(v+(p+g*v)*t);else{const t=g*Math.sqrt(m*m-1);b=e=>{const n=Math.exp(-m*g*e),i=Math.min(t*e,300);return s-n*((p+m*g*v)*Math.sinh(i)+t*v*Math.cosh(i))/t}}const k={calculatedDuration:f&&d||null,next:t=>{const e=b(t);if(f)a.done=t>=d;else{let n=0===t?p:0;m<1&&(n=0===t?Wl(p):function(t,e,n){const i=Math.max(e-Gl,0);return r=n-t(i),(o=e-i)?r*(1e3/o):0;var r,o}(b,t,e));const o=Math.abs(n)<=i,l=Math.abs(s-e)<=r;a.done=o&&l}return a.value=a.done?s:e,a},toString:()=>{const t=Math.min(Vl(k),ql),e=jl((e=>k.next(t*e).value),t,30);return t+"ms "+e},toTransition:()=>{}};return k}ec.applyToOptions=t=>{const e=function(t,e=100,n){const i=n({...t,keyframes:[0,e]}),r=Math.min(Vl(i),ql);return{type:"keyframes",ease:t=>i.next(r*t).value/e,duration:Ul(r)}}(t,100,ec);return t.ease=e.ease,t.duration=Wl(e.duration),t.type="keyframes",t};const nc=t=>null!==t;class ic{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise((t=>{this.resolve=t}))}notifyFinished(){this.resolve()}then(t,e){return this.finished.then(t,e)}}function rc(t){for(let n=1;n<t.length;n++){var e;null!==(e=t[n])&&void 0!==e||(t[n]=t[n-1])}}const oc=t=>t.startsWith("--");const sc=Bl((()=>void 0!==window.ScrollTimeline)),ac={};function lc(t,e){const n=Bl(t);return()=>{var t;return null!==(t=ac[e])&&void 0!==t?t:n()}}const cc=lc((()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch(t){return!1}return!0}),"linearEasing"),uc=([t,e,n,i])=>`cubic-bezier(${t}, ${e}, ${n}, ${i})`,dc={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:uc([0,.65,.55,1]),circOut:uc([.55,0,1,.45]),backIn:uc([.31,.01,.66,-.59]),backOut:uc([.33,1.53,.69,.99])};function hc(t,e){return t?"function"==typeof t?cc()?jl(t,e):"ease-out":$l(t)?uc(t):Array.isArray(t)?t.map((t=>hc(t,e)||dc.easeOut)):dc[t]:void 0}function fc(t,e,n,{delay:i=0,duration:r=300,repeat:o=0,repeatType:s="loop",ease:a="easeOut",times:l}={},c=void 0){const u={[e]:n};l&&(u.offset=l);const d=hc(a,r);Array.isArray(d)&&(u.easing=d);const h={delay:i,duration:r,easing:Array.isArray(d)?"linear":d,fill:"both",iterations:o+1,direction:"reverse"===s?"alternate":"normal"};c&&(h.pseudoElement=c);return t.animate(u,h)}class pc extends ic{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:e,name:n,keyframes:i,pseudoElement:r,allowFlatten:o=!1,finalKeyframe:s,onComplete:a}=t;this.isPseudoElement=Boolean(r),this.allowFlatten=o,this.options=t,Ll("string"!=typeof t.type,'Mini animate() doesn\'t support "type" as a string.',"mini-spring");const l=function({type:t,...e}){return function(t){return"function"==typeof t&&"applyToOptions"in t}(t)&&cc()?t.applyToOptions(e):(null!==(n=e.duration)&&void 0!==n||(e.duration=300),null!==(i=e.ease)&&void 0!==i||(e.ease="easeOut"),e);var n,i}(t);this.animation=fc(e,n,i,l,r),!1===l.autoplay&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!r){const t=function(t,{repeat:e,repeatType:n="loop"},i,r=1){const o=t.filter(nc),s=r<0||e&&"loop"!==n&&e%2==1?0:o.length-1;return s&&void 0!==i?i:o[s]}(i,this.options,s,this.speed);this.updateMotionValue?this.updateMotionValue(t):function(t,e,n){oc(e)?t.style.setProperty(e,n):t.style[e]=n}(e,n,t),this.animation.cancel()}null==a||a(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),"finished"===this.state&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,e;null===(t=(e=this.animation).finish)||void 0===t||t.call(e)}cancel(){try{this.animation.cancel()}catch(t){}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;"idle"!==t&&"finished"!==t&&(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var t,e;this.isPseudoElement||(null===(t=(e=this.animation).commitStyles)||void 0===t||t.call(e))}get duration(){var t,e;const n=(null===(t=this.animation.effect)||void 0===t||null===(e=t.getComputedTiming)||void 0===e?void 0:e.call(t).duration)||0;return Ul(Number(n))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+Ul(t)}get time(){return Ul(Number(this.animation.currentTime)||0)}set time(t){this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Wl(t)}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return null!==this.finishedTime?"finished":this.animation.playState}get startTime(){var t;return null!==(t=this.manualStartTime)&&void 0!==t?t:Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,observe:e}){var n;this.allowFlatten&&(null===(n=this.animation.effect)||void 0===n||n.updateTiming({easing:"linear"}));return this.animation.onfinish=null,t&&sc()?(this.animation.timeline=t,zl):e(this)}}class mc{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}get finished(){return Promise.all(this.animations.map((t=>t.finished)))}getAll(t){return this.animations[0][t]}setAll(t,e){for(let n=0;n<this.animations.length;n++)this.animations[n][t]=e}attachTimeline(t){const e=this.animations.map((e=>e.attachTimeline(t)));return()=>{e.forEach(((t,e)=>{t&&t(),this.animations[e].stop()}))}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get state(){return this.getAll("state")}get startTime(){return this.getAll("startTime")}get duration(){return vc(this.animations,"duration")}get iterationDuration(){return vc(this.animations,"iterationDuration")}runAll(t){this.animations.forEach((e=>e[t]()))}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function vc(t,e){let n=0;for(let i=0;i<t.length;i++){const r=t[i][e];null!==r&&r>n&&(n=r)}return n}class gc extends mc{then(t,e){return this.finished.finally(t).then((()=>{}))}}const yc=new WeakMap,bc=(t,e="")=>`${t}:${e}`;function kc(t){const e=yc.get(t)||new Map;return yc.set(t,e),e}function xc(t,e){var n,i;return null!==(n=null!==(i=null==t?void 0:t[e])&&void 0!==i?i:null==t?void 0:t.default)&&void 0!==n?n:t}const wc=new Set(["borderWidth","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderRadius","borderTopLeftRadius","borderTopRightRadius","borderBottomRightRadius","borderBottomLeftRadius","width","maxWidth","height","maxHeight","top","right","bottom","left","inset","insetBlock","insetBlockStart","insetBlockEnd","insetInline","insetInlineStart","insetInlineEnd","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingBlock","paddingBlockStart","paddingBlockEnd","paddingInline","paddingInlineStart","paddingInlineEnd","margin","marginTop","marginRight","marginBottom","marginLeft","marginBlock","marginBlockStart","marginBlockEnd","marginInline","marginInlineStart","marginInlineEnd","fontSize","backgroundPositionX","backgroundPositionY"]);function _c(t,e){for(let n=0;n<t.length;n++)"number"==typeof t[n]&&wc.has(e)&&(t[n]=t[n]+"px")}function Tc(t,e){const n=window.getComputedStyle(t);return oc(e)?n.getPropertyValue(e):n[e]}function Ic(t,e,n,i){if(null==t)return[];const r=function(t){if(null==t)return[];if(t instanceof EventTarget)return[t];if("string"==typeof t){const e=document.querySelectorAll(t);return e?Array.from(e):[]}return Array.from(t).filter((t=>null!=t))}(t),o=r.length;Ll(Boolean(o),"No valid elements provided.","no-valid-elements");const s=[];for(let t=0;t<o;t++){const i=r[t],a={...n};"function"==typeof a.delay&&(a.delay=a.delay(t,o));for(const t in e){let n=e[t];Array.isArray(n)||(n=[n]);const r={...xc(a,t)};r.duration&&(r.duration=Wl(r.duration)),r.delay&&(r.delay=Wl(r.delay));const o=kc(i),l=bc(t,r.pseudoElement||""),c=o.get(l);c&&c.stop(),s.push({map:o,key:l,unresolvedKeyframes:n,options:{...r,element:i,name:t,allowFlatten:!a.type&&!a.ease}})}}for(let t=0;t<s.length;t++){const{unresolvedKeyframes:e,options:n}=s[t],{element:i,name:r,pseudoElement:o}=n;o||null!==e[0]||(e[0]=Tc(i,r)),rc(e),_c(e,r),!o&&e.length<2&&e.unshift(Tc(i,r)),n.keyframes=e}const a=[];for(let t=0;t<s.length;t++){const{map:e,key:n,options:i}=s[t],r=new pc(i);e.set(n,r),r.finished.finally((()=>e.delete(n))),a.push(r)}return a}const Ec=(()=>function(t,e,n){return new gc(Ic(t,e,n))})();var Sc=ca('<button class="svelte-16kucsb"><div class="svelte-16kucsb"> </div></button>'),Ac=ca('<div class="tryIt-container svelte-16kucsb"><!></div>');const Nc={hash:"svelte-16kucsb",code:".eko-gallery-app {--tryItModule_justifyContent: center;--tryItModule_alignItems: flex-end;--tryItModule_padding: 16px 20px 48px 20px;--tryItModule_button_padding: 16px 32px;--tryItModule_button_textAlign: center;--tryItModule_button_borderRadius: 100px;--tryItModule_button_border: 0;--tryItModule_button_boxShadow: 0 4px 24px 2px rgba(0, 0, 0, 0.12);--tryItModule_button_background: #FFFFFF;--tryItModule_button_text_fontFamily: var(--fontName);--tryItModule_button_text_fontSize: 18px;--tryItModule_button_text_color: #222;--tryItModule_button_text_weight: 500;--tryItModule_button_text_lineHeight: 120%;--tryItModule_button_text_letterSpacing: -0.1px;}.tryIt-container.svelte-16kucsb {position:relative;padding:var(--tryItModule_padding);width:100%;height:100%;box-sizing:border-box;display:flex;justify-content:var(--tryItModule_justifyContent);align-items:var(--tryItModule_alignItems);}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) {padding:var(--tryItModule_button_padding);text-align:var(--tryItModule_button_textAlign);border-radius:var(--tryItModule_button_borderRadius);border:var(--tryItModule_button_border);background:var(--tryItModule_button_background);box-shadow:var(--tryItModule_button_boxShadow);font-family:var(--tryItModule_button_text_fontFamily);font-size:var(--tryItModule_button_text_fontSize);color:var(--tryItModule_button_text_color);font-weight:var(--tryItModule_button_text_weight);line-height:var(--tryItModule_button_text_lineHeight);letter-spacing:var(--tryItModule_button_text_letterSpacing);cursor:pointer;opacity:0;overflow:hidden;}.tryIt-container.svelte-16kucsb button:where(.svelte-16kucsb) div:where(.svelte-16kucsb) {opacity:0;}"};function Mc(t,e){Ji(e,!0),Da(t,Nc);const n=bo((()=>e.state.ctaText)),i=bo((()=>e.state.animationConfig)),r=bo((()=>e.state.showCta)),o=bo((()=>e.state.onCtaClick));let s=null,a=null,l=Mo(!1),c=!1;function u(){c&&Ec(s,{transform:"scale(1.05)"},{type:ec,mass:1.5,stiffness:400,damping:30})}function d(){c&&Ec(s,{transform:"scale(1)"},{type:ec,mass:1.5,stiffness:400,damping:30})}function h(){c&&Ec(s,{transform:"scale(0.95)"},{type:ec,mass:1,stiffness:600,damping:30})}ls((()=>{const{mass:t,stiffness:e,damping:n,delay:o}=Qs(i);let u;return Qs(r)&&(u=setTimeout((async()=>{Oo(l,!0),u=null,Ec(s,{transform:["translateY(40px) scale(0, 0.2)","translateY(0) scale(1, 1)"],opacity:1},{type:ec,mass:t,stiffness:e,damping:n}),await Ec(a,{transform:["translateY(20px) scale(0.8)","translateY(0) scale(1)"],opacity:1},{type:ec,mass:t,stiffness:e,damping:n,delay:.15}),c=!0}),o)),()=>{u&&clearTimeout(u)}}));var f=Ac(),p=Qo(f),m=t=>{var e=Sc();e.__mousedown=h,e.__touchstart=h,e.__click=function(...t){var e;null===(e=Qs(o))||void 0===e||e.apply(this,t)};var i=Qo(e),r=Qo(i,!0);Mi(i),al(i,(t=>a=t),(()=>a)),Mi(e),al(e,(t=>s=t),(()=>s)),hs((()=>{qa(e,"pointer-events: "+(Qs(l)?"auto":"none")),ya(r,Qs(n))})),ra("mouseenter",e,u),ra("mouseleave",e,d),da(t,e)};Aa(p,(t=>{Qs(r)&&t(m)})),Mi(f),da(t,f),Zi()}oa(["mousedown","touchstart","click"]);var Fc=new WeakSet;function Oc(){this.mainTimeline?this.player.switchTimeline(this.mainTimeline):this.emitModuleEnd(),this.state.showCta=!1}const Cc={videoModule:class extends gl{constructor({config:t,...e}){var n;super({...e,config:t}),this.Component=Sl,this.hasDuration=!t.loop,ml(this),this.coverAssets.push(null!==(n=t.intro)&&void 0!==n?n:t.video),this.cover=this.coverAssets[0],this.state={textBox:t.textBox}}start(t){super.start(t),this.timeline=t.createTimeline();const e=this.config;e.intro&&this.timeline.placeOnTimeline(yl(`${this.id}_intro`,e.intro,t),"end");const n=yl(this.id,e.video,t);this.timeline.placeOnTimeline(n,"end",{loop:e.loop}),e.loop||n.on("nodeend",this.emitModuleEnd)}},toggleModule:class extends gl{constructor({config:t,...e}){super({...e,config:t}),$(this,Ol),this.Component=Fl,this.synced=t.sync,this.switchTo=()=>{},ml(this),this.coverAssets=t.options.map((t=>{var e;return null!==(e=t.intro)&&void 0!==e?e:t.video})),this.cover=this.coverAssets[0],this.state={options:t.options.map((t=>({label:t.label,note:t.note}))),currentOptionIndex:0,onOptionClicked:L(Ol,this,Cl).bind(this)}}start(t){super.start(t),this.synced?(this.timeline=t.createTimeline(),this.config.options.forEach(((e,n)=>{this.timeline.placeOnTimeline(yl(`${this.id}_option_${n}`,e.video,t),0,{loop:!0})})),this.timeline.placeRenderNodeOnTimeline("switch",0,1/0,{params:{switchCrossfadeSeconds:.25,initSwitching:({switchTo:t})=>{this.switchTo=t,t(this.state.currentOptionIndex,{crossfadeSeconds:0})}}})):(this.timelines=this.config.options.map(((e,n)=>{const i=t.createTimeline();return e.intro&&i.placeOnTimeline(yl(`${this.id}_option_${n}_intro`,e.intro,t),"end"),i.placeOnTimeline(yl(`${this.id}_option_${n}`,e.video,t),"end",{loop:!0}),i})),this.timeline=this.timelines[this.state.currentOptionIndex])}},tryItModule:class extends gl{constructor({config:t,...e}){var n;super({...e,config:t}),$(this,Fc),ml(this);const{introVideo:i}=t;this.coverAssets.push(null!==(n=i.intro)&&void 0!==n?n:i.loop),this.cover=this.coverAssets[0],this.state={ctaText:t.ctaText,animationConfig:t.animationConfig,showCta:!0,onCtaClick:L(Fc,this,Oc).bind(this)}}start(t){super.start(t),this.Component=Mc,this.timeline=t.createTimeline();const{introVideo:e,mainVideo:n}=this.config;if(e.intro&&this.timeline.placeOnTimeline(yl(`${this.id}_intro_intro`,e.intro,t)),this.timeline.placeOnTimeline(yl(`${this.id}_intro_loop`,e.loop,t),"end",{loop:!0}),n){this.mainTimeline=t.createTimeline(),n.intro&&this.mainTimeline.placeOnTimeline(yl(`${this.id}_main_intro`,n.intro,t));const e=yl(`${this.id}_main_loop`,n.loop,t);this.mainTimeline.placeOnTimeline(e,"end",{loop:!0})}}play(){this.state.showCta=!0,super.play()}}};class Pc{#d=$i(Mo({}),"GalleryState.#variants");#h=$i(Mo("ekonovar"),"GalleryState.#activeVariant");#f=$i(Mo(0),"GalleryState.#activeItemIndex");#p=$i(Mo(0),"GalleryState.#activeModuleIndex");#m=$i(Mo(Bo({itemIndex:0,moduleIndex:0})),"GalleryState.#playingModulePosition");#v=$i(bo((()=>{var t;return null===(t=Qs(this.#d))||void 0===t?void 0:t[Qs(this.#h)]})),"GalleryState.#currentItemsList");#g=$i(bo((()=>{var t;return null===(t=Qs(this.#v))||void 0===t?void 0:t[Qs(this.#f)]})),"GalleryState.#currentItem");#y=$i(bo((()=>{var t,e;return Qs(this.#b)?null===(e=Qs(this.#v))||void 0===e?void 0:e[Qs(this.#m).itemIndex].modules[Qs(this.#m).moduleIndex]:null===(t=Qs(this.#g))||void 0===t?void 0:t.modules[Qs(this.#p)]})),"GalleryState.#currentModule");#k=$i(bo((()=>{var t;return(null===(t=Qs(this.#v))||void 0===t?void 0:t.flatMap((t=>t.modules)))||[]})),"GalleryState.#currentModulesList");#x=$i(Mo(!1),"GalleryState.#playerLoaded");#w=$i(Mo(!1),"GalleryState.#paused");#b=$i(Mo(!1),"GalleryState.#startedPlaying");#_=$i(bo((()=>!($o(Qs(this.#m).itemIndex,this.activeItemIndex)&&$o(Qs(this.#m).moduleIndex,this.activeModuleIndex)))),"GalleryState.#seeking");set variants(t){Oo(this.#d,t)}set activeVariant(t){Oo(this.#h,t,!0)}set activeItemIndex(t){Oo(this.#f,t,!0)}set activeModuleIndex(t){Oo(this.#p,t,!0)}set playingModulePosition(t){Oo(this.#m,t,!0)}set playerLoaded(t){Oo(this.#x,t,!0)}set paused(t){Oo(this.#w,t,!0)}set startedPlaying(t){Oo(this.#b,t,!0)}get variants(){return Qs(this.#d)}get activeVariant(){return Qs(this.#h)}get activeItemIndex(){return Qs(this.#f)}get activeModuleIndex(){return Qs(this.#p)}get playingModulePosition(){return Qs(this.#m)}get currentItemsList(){return Qs(this.#v)}get currentItem(){return Qs(this.#g)}get currentModule(){return Qs(this.#y)}get playerLoaded(){return Qs(this.#x)}get paused(){return Qs(this.#w)}get startedPlaying(){return Qs(this.#b)}get seeking(){return Qs(this.#_)}get currentModulesList(){return Qs(this.#k)}}const Dc={assetsDeliveryBase:"https://{{env}}assets.eko.com"},Rc=2,Lc=5,Bc=["activeItemIndex","activeModuleIndex","paused","startedPlaying"],zc=["version","selectItem","selectItemAndStep","next","prev","subscribe"];var Wc=new WeakMap,Uc=new WeakMap,$c=new WeakMap,jc=new WeakMap,qc=new WeakSet;class Vc{constructor(t){var e,n,i;$(this,qc),W(this,Wc,void 0),W(this,Uc,void 0),W(this,$c,void 0),W(this,jc,void 0),j(this,"public",void 0),j(this,"version","0.0.7"),ml(this),U($c,this,t),U(Wc,this,new Pc(null==t||null===(e=t.options)||void 0===e?void 0:e.galleryEnv)),U(jc,this,((t="")=>($o(t,"production")&&(t=""),Object.fromEntries(Object.entries(Dc).map((([e,n])=>[e,n.replaceAll("{{env}}",t)])))))(null==t||null===(n=t.options)||void 0===n?void 0:n.galleryEnv)),U(Uc,this,[]);const r=null==t||null===(i=t.instance)||void 0===i||null===(i=i.data)||void 0===i||null===(i=i.blocks)||void 0===i||null===(i=i.blocksArr)||void 0===i||null===(i=i.find((t=>$o(t.blockType,"GalleryBlock"))))||void 0===i?void 0:i.config;var o;r?(L(qc,this,Gc).call(this,r.items),L(qc,this,Hc).call(this,r.items)):console.warn("[eko-gallery-app] Gallery initiated without an instance, results will be empty"),this.public=(o=this,zc.reduce(((t,e)=>{if(!(e in o))throw new Error(`[eko-gallery-app] Public API member "${e}" does not exist on GalleryLogic`);const n=o[e];return t[e]=$o(typeof n,"function")?n.bind(o):n,t}),{})),console.log(...ul("log","[EkoGallery] GallaryLogic constructor finished with config",t))}start(t){z(Wc,this).playerLoaded=!0,z(Uc,this).forEach((e=>{e.start(t)})),U(Uc,this,null),L(qc,this,Kc).call(this,t),z(Wc,this).currentModule.play()}selectItem(t){const e=z(Wc,this);$o(t,e.activeItemIndex)||(e.activeItemIndex=t,e.activeModuleIndex=0)}selectItemAndStep(t,e){const n=z(Wc,this);$o(t,n.activeItemIndex)&&$o(e,n.activeModuleIndex)||(n.activeItemIndex=t,n.activeModuleIndex=e)}next(){L(qc,this,Yc).call(this)}prev(){const t=z(Wc,this);if(t.activeModuleIndex=t.activeModuleIndex-1,!t.currentItem.modules[t.activeModuleIndex])if(t.currentItemsList[t.activeItemIndex-1]){t.activeItemIndex=t.activeItemIndex-1;const e=t.currentItemsList[t.activeItemIndex];t.activeModuleIndex=e.modules.length-1}else t.activeModuleIndex=t.activeModuleIndex+1}subscribe(t){const e=z(Wc,this);return function(t){Nr.ensure();const e=os(Kn|si,t,!0);return()=>{ys(e)}}((()=>{ls((()=>{const n=Bc.reduce(((t,n)=>(t[n]=e[n],t)),{});t(n)}))}))}getCoverUrl(t,e){var n,i,r,o;const s=(null==t||null===(n=t.entity)||void 0===n?void 0:n.entityId)||(null==t?void 0:t.assetId),a=null!==(i=null==t||null===(r=t.entity)||void 0===r?void 0:r.entityRevision)&&void 0!==i?i:null==t?void 0:t.assetRevision;if(!s)throw new Error(`[getCoverUrl] No assetId found in assetConfig: ${JSON.stringify(t||{},null,2)}`);if(!a&&$o(a,0,!1))throw new Error(`[getCoverUrl] No assetRevision found for asset ${s}.`);let l;return null!==(o=z($c,this))&&void 0!==o&&null!==(o=o.coverAssetsMap)&&void 0!==o&&o[s]?(l=new URL(z($c,this).coverAssetsMap[s]),/^[a-z0-9]*assets.eko.com$/.test(l.host)&&e&&(l.pathname=l.pathname.replace(".png",".webp"))):(l=new URL(`${z(jc,this).assetsDeliveryBase}/image/${s}/${a}?startOffset=0`),l.pathname+=e?".webp":".png"),e&&l.searchParams.set("width",e),l.href}get currentConfig(){return z($c,this)}get state(){return z(Wc,this)}get urls(){return z(jc,this)}}function Gc(t){const e={};for(let n of t)for(let t of Object.keys(n.variants||{}))e[t]=[];e.ekonovar=[],z(Wc,this).variants=e}function Hc(t){const e=(t=[],e)=>{const n=[];for(let[i,r]of t.entries()){if(!Cc[r.itemType])throw new Error(`Unknown module type ${r.itemType}`);const t=new Cc[r.itemType]({position:{...e,moduleIndex:i},config:r,galleryState:z(Wc,this)});t.moduleEndListener=L(qc,this,Xc).bind(this),n.push(t)}return n};for(const[i,r]of t.entries())if($o(r.itemType,"galleryItemV2")){const{modules:t,...o}=r;for(const[s,a]of Object.entries(z(Wc,this).variants)){var n;if(null===(n=r.variants)||void 0===n?void 0:n[s])console.log("NO IMPLEMENTED");else{const n={...o};n.modules=e(t,{variantId:s,itemIndex:i}),U(Uc,this,[...z(Uc,this),...n.modules]),a.push(n)}}}}function Kc(t){for(const[,e]of Object.entries(z(Wc,this).variants))for(const[n,i]of e.entries()){const r=i.modules,o=e.filter((t=>$o(t,i,!1))).map((t=>t.modules[0]));for(const[i,s]of r.entries()){let a=r[i+1];a||(a=e[(n+1)%e.length].modules[0]);const l=a.timeline.getNodesAtTime(0)[0],c=o.filter((t=>$o(t,a,!1))).map((t=>t.timeline.getNodesAtTime(0)[0])),u=[{nodeId:l.id,weight:Rc},...c.map((t=>({nodeId:t.id,weight:Lc})))];for(const e of s.timeline.placements){t.getNode(e.nodeId).setChildren(u)}}}}function Xc(){const t=z(Wc,this),e=t.currentItem.modules;e.length>1&&$o(t.activeModuleIndex,e.length-1)?t.activeModuleIndex=0:L(qc,this,Yc).call(this)}function Yc(){const t=z(Wc,this);t.activeModuleIndex=t.activeModuleIndex+1,t.currentItem.modules[t.activeModuleIndex]||(t.currentItemsList[t.activeItemIndex+1]?(t.activeItemIndex=t.activeItemIndex+1,t.activeModuleIndex=0):t.activeModuleIndex=t.activeModuleIndex-1)}var Qc=ca('<button><span class="svelte-er27y2"> </span></button>'),Jc=ca('<div class="nav-buttons-container svelte-er27y2"><div class="nav-buttons svelte-er27y2"></div></div>');const Zc={hash:"svelte-er27y2",code:".eko-gallery-app {--nav_gap: 10px;--nav_padding: 12px 16px;--nav_bgColor: #FFFFFF;--nav_justifyContent: center;--nav_button_width: fit-content;--nav_button_bgColor: #FFFFFF;--nav_button_borderRadius: 100px;--nav_button_paddingTop: 8px;--nav_button_paddingBottom: var(--nav_button_paddingTop);--nav_button_paddingLeft: 12px;--nav_button_paddingRight: var(--nav_button_paddingLeft);--nav_button_boxShadow: 0 0 0 1px #E7E7E7;--nav_button_gap: 2px;--nav_button_selected_boxShadow: 0 0 0 1px #000000;--nav_button_selected_bgColor: var(--nav_button_bgColor);--nav_button_text_color: #000000;--nav_button_text_fontSize: 14px;--nav_button_text_fontWeight: 500;--nav_button_text_fontFamily: var(--fontName);--nav_button_text_lineHeight: 120%;--nav_button_text_letterSpacing: 0px;--nav_button_text_align: center;--nav_button_selected_text_color: var(--nav_button_text_color);--nav_button_selected_text_fontWeight: var(--nav_button_text_fontWeight);--nav_button_image_borderRadius: calc(var(--nav_button_borderRadius) - var(--nav_button_paddingTop));--nav_arrow_color: var(--secondaryColor);--nav_arrow_bgColor: var(--primaryColor);--nav_arrow_padding: 9px;--nav_arrow_size: 28px;--nav_arrow_boxShadow: 0 0 8px 0 rgba(0, 0, 0, 0.3);}.nav-buttons-container.svelte-er27y2 {width:100%;background-color:var(--nav_bgColor);height:var(--buttonsContainerHeight);display:flex;box-sizing:border-box;text-align:center;justify-content:var(--nav_justifyContent);align-items:center;position:relative;flex-shrink:0;}.nav-buttons-container.svelte-er27y2 :where(.svelte-er27y2) {touch-action:auto;}.nav-buttons.svelte-er27y2 {display:flex;margin:0;gap:var(--nav_gap);height:100%;align-items:center;padding:var(--nav_padding);box-sizing:border-box;overflow-x:auto;scrollbar-width:none;max-width:100%;width:fit-content;overflow-y:hidden;overscroll-behavior-y:none;}.nav-button.svelte-er27y2 {display:flex;outline:none;flex-shrink:0;height:100%;width:var(--nav_button_width);border:none;cursor:pointer;align-items:center;gap:var(--nav_button_gap);background-color:var(--nav_button_bgColor);border-radius:var(--nav_button_borderRadius);\n /* eslint-disable-next-line max-len */padding:var(--nav_button_paddingTop) var(--nav_button_paddingRight) var(--nav_button_paddingBottom) var(--nav_button_paddingLeft);box-shadow:var(--nav_button_boxShadow);}.nav-button.svelte-er27y2 span:where(.svelte-er27y2) {flex:1 0 0;transition:color 0.2s ease-in-out;color:var(--nav_button_text_color);font-weight:var(--nav_button_text_fontWeight);font-size:var(--nav_button_text_fontSize);font-family:var(--nav_button_text_fontFamily);line-height:var(--nav_button_text_lineHeight);letter-spacing:var(--nav_button_text_letterSpacing);text-align:var(--nav_button_text_align);}.nav-button.selected.svelte-er27y2 {background-color:var(--nav_button_selected_bgColor);box-shadow:var(--nav_button_selected_boxShadow);}.nav-button.selected.svelte-er27y2 span:where(.svelte-er27y2) {color:var(--nav_button_selected_text_color);font-weight:var(--nav_button_selected_text_fontWeight);}"};oa(["click"]);const tu="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%20512'%3e%3cpath%20d='M310.6%20233.4c12.5%2012.5%2012.5%2032.8%200%2045.3l-192%20192c-12.5%2012.5-32.8%2012.5-45.3%200s-12.5-32.8%200-45.3L242.7%20256%2073.4%2086.6c-12.5-12.5-12.5-32.8%200-45.3s32.8-12.5%2045.3%200l192%20192z'/%3e%3c/svg%3e";var eu=ca('<button><img class="svelte-1al44kl"/></button>');const nu={hash:"svelte-1al44kl",code:'.nav-button.svelte-1al44kl {height:30px;width:30px;border-radius:100%;background-color:transparent;padding:9px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;pointer-events:auto;border:0;opacity:100%;cursor:pointer;transition-property:background-color, box-shadow, opacity;position:relative;}.nav-button.prev.svelte-1al44kl {transform:rotate(180deg);}.nav-button.hidden.svelte-1al44kl {opacity:0;pointer-events:none;}.nav-button.svelte-1al44kl::before {content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;}.nav-button.svelte-1al44kl img:where(.svelte-1al44kl) {height:100%;}'};function iu(t,e){Da(t,nu);const n=cl(e,"hidden",3,!1);var i=eu();let r;i.__click=function(...t){var n;null===(n=e.onClick)||void 0===n||n.apply(this,t)};var o=Qo(i);Mi(i),hs((()=>{var t;r=$a(i,1,`nav-button ${null!==(t=e.type)&&void 0!==t?t:""}`,"svelte-1al44kl",r,{hidden:n()}),Za(i,"aria-label",e.type),Za(o,"src",tu),Za(o,"alt",e.type)})),da(t,i)}oa(["click"]);var ru=ca('<button><span class="svelte-1mxltt0"> </span></button>'),ou=ca('<div class="steps-indicator-container svelte-1mxltt0"><button aria-label="Scroll to previous steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M12.8333 16.6668C12.68 16.6668 12.5266 16.5935 12.4266 16.4601L9.42663 12.2935C9.36482 12.2081 9.33154 12.1055 9.33154 12.0001C9.33154 11.8948 9.36482 11.7921 9.42663 11.7068L12.4266 7.54012C12.4651 7.48671 12.5138 7.44142 12.5698 7.40682C12.6259 7.37222 12.6882 7.349 12.7532 7.33848C12.8182 7.32795 12.8846 7.33033 12.9487 7.34549C13.0128 7.36064 13.0732 7.38826 13.1266 7.42678C13.18 7.46531 13.2253 7.51397 13.2599 7.56999C13.2945 7.62602 13.3177 7.68831 13.3283 7.75331C13.3388 7.81831 13.3364 7.88475 13.3213 7.94883C13.3061 8.01291 13.2785 8.07338 13.24 8.12678L10.4466 12.0001L13.2333 15.8735C13.2864 15.9479 13.3181 16.0355 13.3251 16.1267C13.332 16.2179 13.314 16.3092 13.2728 16.3909C13.2316 16.4725 13.1689 16.5414 13.0915 16.59C13.014 16.6386 12.9247 16.6652 12.8333 16.6668Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button> <div role="group" aria-roledescription="Sequence navigation buttons"></div> <button aria-label="Scroll to next steps"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" class="svelte-1mxltt0"><path d="M11.1668 16.6666C11.0668 16.6666 10.9601 16.6333 10.8734 16.5733C10.8199 16.5348 10.7746 16.4862 10.7399 16.4302C10.7053 16.3741 10.682 16.3118 10.6715 16.2468C10.6609 16.1818 10.6634 16.1153 10.6786 16.0512C10.6938 15.9871 10.7215 15.9266 10.7601 15.8733L13.5534 11.9999L10.7601 8.12661C10.6001 7.89994 10.6468 7.59328 10.8734 7.42661C11.1001 7.26661 11.4068 7.31994 11.5734 7.53994L14.5734 11.7066C14.7001 11.8799 14.7001 12.1133 14.5734 12.2933L11.5734 16.4599C11.4734 16.5933 11.3201 16.6666 11.1668 16.6666Z" fill="#030303" class="svelte-1mxltt0"></path></svg></button></div>');const su={hash:"svelte-1mxltt0",code:'.steps-indicator-container.svelte-1mxltt0 {width:calc(100% - 32px);position:absolute;bottom:12px;left:16px;animation-duration:0.75s;animation-timing-function:cubic-bezier(0.36, 0, 0, 1);animation-fill-mode:both;animation-delay:0.15s;\n animation-name: svelte-1mxltt0-gallery-steps-appear-anim;}.steps-indicator.svelte-1mxltt0 {--stepSize: 6px;--stepPadding: 7px;padding:4px 0px;display:flex;gap:8px;align-items:center;overflow-x:auto;pointer-events:all;scrollbar-width:none;}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0) {position:relative;overflow:hidden;}.steps-indicator.with-duration.svelte-1mxltt0 .step-button:where(.svelte-1mxltt0) span:where(.svelte-1mxltt0):after {transition:0.3s ease-in-out;transition-property:opacity, width;}.step-button.svelte-1mxltt0 {padding:8px 12px;border:#E4E5E8 solid 1px;background-color:#FBFBFB;cursor:pointer;pointer-events:all;flex-shrink:0;border-radius:100px;font-size:12px;font-weight:500;line-height:16px;color:#030303;transition:all 0.3s ease-in-out;outline-color:#3191fc;}.step-button.active.svelte-1mxltt0 {background-color:#014FD3;color:#FFFFFF;box-shadow:none;border-color:#014FD3;}.step-button.active.svelte-1mxltt0:after {opacity:100%;\n animation: svelte-1mxltt0-stepDurationAnimation var(--stepDuration) linear forwards;animation-play-state:running;}.step-button.svelte-1mxltt0:hover:not(.active) {background:#F3F4F6;}.step-button.svelte-1mxltt0:active:not(.active) {background:#E4E5E8;}.step-button.svelte-1mxltt0:focus {outline-offset:4px;outline-width:2px;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0) {display:block;box-sizing:border-box;pointer-events:none;white-space:nowrap;}.step-button.svelte-1mxltt0 span:where(.svelte-1mxltt0):after {content:"";background-color:rgba(0, 0, 0, 0.6);position:absolute;border-radius:var(--stepSize);width:0;height:100%;top:0;left:-100%;opacity:0;transform:translateX(0);animation-play-state:paused;}.step-arrow.svelte-1mxltt0 {max-height:34px;position:absolute;padding-top:4px;padding-bottom:4px;z-index:10;bottom:4px;border:none;background-color:#FFF;pointer-events:none;cursor:pointer;opacity:0;}.step-arrow.svelte-1mxltt0:hover {background:#F6F6F7;}.step-arrow.svelte-1mxltt0:active {background:#E4E5E8;}.step-arrow-prev.svelte-1mxltt0 {padding-right:8px;padding-left:0;left:0;transform:translateX(-100%);\n animation: svelte-1mxltt0-arrow-left-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-prev.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-left-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.svelte-1mxltt0 {padding-right:0;padding-left:8px;right:0;transform:translateX(100%);\n animation: svelte-1mxltt0-arrow-right-disappear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}.step-arrow-next.visible.svelte-1mxltt0 {pointer-events:auto;\n animation: svelte-1mxltt0-arrow-right-appear 0.3s cubic-bezier(0.36, 0, 0, 1) both;}\n\n@keyframes svelte-1mxltt0-gallery-steps-appear-anim {\n from {\n opacity: 0;\n transform: translate(0, 10px);\n }\n to {\n opacity: 1;\n transform: translate(0, 0);\n }\n}\n@keyframes svelte-1mxltt0-gallery-steps-disappear-anim {\n from {\n opacity: 1;\n transform: translate(0, 0);\n }\n to {\n opacity: 0;\n transform: translate(0, 10px);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-appear {\n from {\n opacity: 0;\n transform: translateX(-100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-left-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(-100%);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-appear {\n from {\n opacity: 0;\n transform: translateX(100%);\n }\n to {\n opacity: 1;\n transform: translateX(0);\n }\n}\n@keyframes svelte-1mxltt0-arrow-right-disappear {\n from {\n opacity: 1;\n transform: translateX(0);\n }\n to {\n opacity: 0;\n transform: translateX(100%);\n }\n}\n@keyframes svelte-1mxltt0-stepDurationAnimation {\n 0% {\n transform: translateX(0);\n }\n 100% {\n transform: translateX(100%);\n }\n}'};function au(t,e){Ji(e,!0),Da(t,su);const n=16,i=32,r=Qi("state");let o=Mo(null),s=Mo(null),a=Mo(!1),l=Mo(!1);const c=bo((()=>{let t=[];return t=r().currentItem.modules.map(((t,e)=>({index:e,type:e===r().activeModuleIndex?"active":"",name:t.name}))),t}));function u(){Qs(o)&&(Oo(a,Qs(o).scrollLeft>3),Oo(l,Qs(o).scrollLeft+Qs(o).clientWidth<Qs(o).scrollWidth-3))}function d(t){Qs(o).scrollBy({left:t,behavior:"smooth"})}function h(t,e){const r=t.getBoundingClientRect(),o=e.getBoundingClientRect(),s=n+i;o.left<r.left+i?d(o.left-r.left-s):o.right>r.right-i&&d(o.right-r.right+s)}function f(){const t=Array.from(Qs(o).querySelectorAll(".step-button")).find((t=>{const e=t.getBoundingClientRect(),n=Qs(o).getBoundingClientRect();return e.left>n.left+i}));if(t){const e=t.previousElementSibling;e&&h(Qs(o),e)}}function p(){const t=Array.from(Qs(o).querySelectorAll(".step-button")).reverse().find((t=>{const e=t.getBoundingClientRect(),n=Qs(o).getBoundingClientRect();return e.right<n.right-i}));if(t){const e=t.nextElementSibling;e&&h(Qs(o),e)}}ls((()=>{if(Qs(o)){u();const t=new MutationObserver((()=>{const t=Qs(o).querySelector(".step-button.active");t&&Oo(s,t,!0)}));return t.observe(Qs(o),{attributes:!0,attributeFilter:["class"],subtree:!0}),()=>{t.disconnect()}}})),ls((()=>{Qs(s)&&Qs(o)&&h(Qs(o),Qs(s))}));var m=ua();ra("resize",jo,u),function(t,e,n){Ei&&Ni();var i=new Ia(t);fs((()=>{var t=e();i.ensure(t,n)}))}(Jo(m),(()=>r().activeItemIndex),(t=>{var e=ou(),n=Qo(e);let i;n.__click=f;var s=Zo(n,2);let d;Fa(s,21,(()=>Qs(c)),Na,((t,e)=>{var n=ru();let i;n.__click=t=>{return n=t.currentTarget,i=Qs(e).index,r().activeModuleIndex=i,void h(Qs(o),n);var n,i};var s=Qo(n),a=Qo(s,!0);Mi(s),Mi(n),hs((()=>{i=$a(n,1,"step-button svelte-1mxltt0",null,i,{active:"active"===Qs(e).type}),Za(n,"aria-label",`Go to step $${Qs(e).index+1}`),ya(a,Qs(e).name)})),da(t,n)})),Mi(s),al(s,(t=>Oo(o,t)),(()=>Qs(o)));var m=Zo(s,2);let v;m.__click=p,Mi(e),hs(((t,e)=>{i=$a(n,1,"step-arrow step-arrow-prev svelte-1mxltt0",null,i,{visible:Qs(a)}),d=$a(s,1,"steps-indicator svelte-1mxltt0",null,d,t),qa(s,`--stepDuration: ${null!=e?e:""}s`),v=$a(m,1,"step-arrow step-arrow-next svelte-1mxltt0",null,v,{visible:Qs(l)})}),[()=>({"with-duration":r().currentModule.hasDuration,paused:r().paused}),()=>r().currentModule.duration]),ra("scroll",s,u),da(t,e)})),da(t,m),Zi()}oa(["click"]);const lu="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M3.01318%203.42005C3.01318%202.06672%204.50652%201.26672%205.66652%201.90672C6.82652%202.54672%2014.0732%206.48672%2014.0732%206.48672C15.2865%207.15339%2015.2865%208.86005%2014.0732%209.52005L5.66652%2014.1001C4.50652%2014.7334%203.01318%2013.9401%203.01318%2012.5801V3.42005ZM3.98652%2012.5801C3.98652%2013.1334%204.63318%2013.5467%205.19985%2013.2401L13.6065%208.66005C14.1399%208.36672%2014.1465%207.63339%2013.6065%207.34005C13.0665%207.04672%205.19985%202.76005%205.19985%202.76005C4.63985%202.44672%203.98652%202.86005%203.98652%203.42005V12.5801Z'%20fill='%23030303'/%3e%3c/svg%3e",cu="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M10.8332%2014C10.5598%2014%2010.3332%2013.7733%2010.3332%2013.5V2.5C10.3332%202.22667%2010.5598%202%2010.8332%202C11.1065%202%2011.3332%202.22667%2011.3332%202.5V13.5C11.3332%2013.7733%2011.1065%2014%2010.8332%2014ZM5.1665%2014C4.89317%2014%204.6665%2013.7733%204.6665%2013.5V2.5C4.6665%202.22667%204.89317%202%205.1665%202C5.43984%202%205.6665%202.22667%205.6665%202.5V13.5C5.6665%2013.7733%205.43984%2014%205.1665%2014Z'%20fill='%23030303'/%3e%3c/svg%3e";var uu=ca('<img alt="Play" class="svelte-a3r6re"/>'),du=ca('<img alt="Pause" class="svelte-a3r6re"/>'),hu=ca('<button class="pause-button svelte-a3r6re"><!></button>');const fu={hash:"svelte-a3r6re",code:".pause-button.svelte-a3r6re {position:absolute;top:10px;right:10px;background:#FFFFFF;border-radius:100%;border:1px #C4C8CF solid;padding:0;width:32px;height:32px;display:flex;justify-content:center;align-items:center;pointer-events:auto;transition:background 0.2s ease-in-out;cursor:pointer;outline-color:#3191fc;}.pause-button.svelte-a3r6re:hover {background:#F6F6F7;}.pause-button.svelte-a3r6re:active {background:#E4E5E8;}.pause-button.svelte-a3r6re:focus {outline-offset:8px;outline-width:2px;}.pause-button.svelte-a3r6re img:where(.svelte-a3r6re) {width:16px;height:16px;pointer-events:none;}"};oa(["click"]);const pu=300,mu=60,vu="none";function gu(t,e,n){return t.addEventListener(e,n),()=>t.removeEventListener(e,n)}function yu(t,e,n){const{x:i,y:r}=function(t,e){const n=t.getBoundingClientRect();return{x:Math.round(e.clientX-n.left),y:Math.round(e.clientY-n.top)}}(t,e);return{event:e,pointersCount:n.length,target:e.target,x:i,y:r,attachmentNode:t}}function bu(t,e,n,i,r){const o=yu(t,n,i);return t.dispatchEvent(new CustomEvent(`${e}${r}`,{detail:o})),o}function ku(){let t=[],e=()=>{},n=[];return{setPointerControls:(i,r,o,s,a,l=vu,c=[])=>{var u;if(r.style.touchAction=(u=l,Array.isArray(u)?u:[u]).join(" "),n=c,n.forEach((e=>{var n;null===(n=e.onInit)||void 0===n||n.call(e,t)})),!t.length){let l=function(e){t.push(e);const l=bu(r,i,e,t,"down");function c(e){const o=t.length;t=function(t,e){return e.filter((e=>$o(t.pointerId,e.pointerId,!1)))}(e,t);if(o>t.length){t.length||(u(),d(),h(),f());const o=bu(r,i,e,t,"up");null==a||a(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onUp)||void 0===n||n.call(e,o,t)}))}))}}null==s||s(t,e),setTimeout((()=>{n.forEach((e=>{var n;null===(n=e.onDown)||void 0===n||n.call(e,l,t)}))}));const u=gu(r,"pointermove",(e=>{t=t.map((t=>$o(e.pointerId,t.pointerId)?e:t));const s=bu(r,i,e,t,"move");null==o||o(t,e),n.forEach((e=>{var n;null===(n=e.onMove)||void 0===n||n.call(e,s,t)}))})),d=gu(r,"lostpointercapture",(t=>{c(t)})),h=gu(r,"pointerup",(t=>{c(t)})),f=gu(r,"pointerleave",(t=>{c(t)}))};e=gu(r,"pointerdown",l)}return{destroy:()=>{t.length||(e(),n.forEach((t=>{var e;null===(e=t.onDestroy)||void 0===e||e.call(t)})))}}}}}const xu="@attach";const wu="swipe";function _u(t,e,n,i=!1){const{setPointerControls:r}=ku(),o=i?wu:Symbol(xu);return{...n,[`on${wu}`]:t,[o]:t=>{const{onDown:n,onUp:i,parameters:o}=function(t,e){const n={timeframe:pu,minSwipeDistance:mu,touchAction:vu,composed:!1,...e};let i,r,o,s;function a(t,e){r=e.clientX,o=e.clientY,i=Date.now(),$o(t.length,1)&&(s=e.target)}function l(e,a){if($o(a.type,"pointerup")&&$o(e.length,0)&&Date.now()-i<n.timeframe){const e=a.clientX-r,i=a.clientY-o,l=Math.abs(e),c=Math.abs(i);let u=null;l>=2*c&&l>n.minSwipeDistance?u=e>0?"right":"left":c>=2*l&&c>n.minSwipeDistance&&(u=i>0?"bottom":"top"),u&&t.dispatchEvent(new CustomEvent(wu,{detail:{direction:u,target:s,pointerType:a.pointerType}}))}}return{onDown:a,onUp:l,parameters:n}}(t,null==e?void 0:e());return r(wu,t,null,n,i,o.touchAction,o.plugins).destroy}}}const Tu=t=>{const e="#00ff00",n=1e6,i=4;let r,o,s,a=null,l=!1,c=Date.now();const u={x:void 0,y:void 0};function d(){const e=t.fadeTime,n=Date.now(),i=n-c;i>e/20&&(a&&o&&s&&r&&(s.drawImage(r,0,0),a.clearRect(0,0,r.width,r.height),a.globalAlpha=1-3*i/e,a.drawImage(o,0,0),a.globalAlpha=1,s.clearRect(0,0,r.width,r.height)),c=n),l&&requestAnimationFrame(d)}function h(t){u.x=t.x,u.y=t.y}function f(){a&&o&&r&&(a.canvas.width=window.innerWidth,a.canvas.height=window.innerHeight,o.width=r.width,o.height=r.height)}function p(e){var i;m(),r=window.document.createElement("canvas"),r.id="svelte-gestures-highlight-plugin",a=r.getContext("2d"),r.style.cssText=`\ndisplay: block; \nwidth: 100dvw;\nheight: 100dvh;\ntop: 0;\nleft: 0;\nposition: fixed;\npointer-events: none;\nz-index: ${null!==(i=t.zIndex)&&void 0!==i?i:n};\n`,window.document.body.appendChild(r),window.addEventListener("resize",f),e&&h(e.event),o=document.createElement("canvas"),f(),s=o.getContext("2d"),l=!0,d()}function m(){var t;l=!1,null===(t=window.document.getElementById("svelte-gestures-highlight-plugin"))||void 0===t||t.remove(),window.removeEventListener("resize",f)}return{onMove:n=>{var r,o,s;r=n.event,a&&(a.beginPath(),a.lineWidth=null!==(o=t.lineWidth)&&void 0!==o?o:i,a.lineCap="round",a.strokeStyle=null!==(s=t.color)&&void 0!==s?s:e,$o(u.x,void 0,!1)&&$o(u.y,void 0,!1)?(a.moveTo(u.x,u.y),h(r),a.lineTo(u.x,u.y)):h(r),a.stroke())},onDown:t=>{p(t)},onUp:(t,e)=>{$o(e.length,0)&&m()},onDestroy:m,onInit:t=>{t.length&&(u.x=void 0,u.y=void 0,p())}}};var Iu=ca("<div></div>");const Eu={hash:"svelte-1fv6njc",code:".swiper.svelte-1fv6njc {position:absolute;top:0;left:0;pointer-events:auto;width:100%;height:100%;}"};var Su=ca("<img/>"),Au=ca('<div class="ui-container svelte-1rvgxfc"><!></div>'),Nu=ca('<div class="cover-container svelte-1rvgxfc"><!> <!> <!></div>'),Mu=ca('<div class="covers-container svelte-1rvgxfc" style="scroll-behavior: auto;"></div>');const Fu={hash:"svelte-1rvgxfc",code:".covers-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;display:flex;gap:0.5px;}.covers-container.svelte-1rvgxfc::-webkit-scrollbar {display:none;}.cover-container.svelte-1rvgxfc {position:relative;display:flex;width:100%;height:100%;flex-shrink:0;scroll-snap-align:center;user-select:none;justify-content:center;align-items:center;}.cover-image.svelte-1rvgxfc {width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);object-fit:cover;pointer-events:none;background:#ffffff;}.cover-image.hidden.svelte-1rvgxfc {opacity:0;}.cover-image.hidden.force-show.svelte-1rvgxfc {opacity:1;background:transparent;}.ui-container.svelte-1rvgxfc {position:absolute;top:0;left:0;bottom:0;right:0;pointer-events:none;}"};function Ou(t,e){Ji(e,!0),Da(t,Fu);const n=[375,768,1024,1400,1920];let i=cl(e,"scrollOffset",15),r=cl(e,"isMobile",3,!1);const o=Qi("state");let s,a=bo((()=>o().playingModulePosition)),l=null,c=null,u=bo((()=>o().startedPlaying)),d=bo((()=>o().currentModulesList)),h=bo((()=>Qs(d).findIndex((t=>f(o().playingModulePosition,t.position)))));function f(t,e){return t.itemIndex===e.itemIndex&&t.moduleIndex===e.moduleIndex}function p(t){const e=t.scrollLeft,n=t.scrollWidth-t.clientWidth;return 0===e?0:e>n?100:e/n*100}function m(t){var e;r()&&t.preventDefault();const{target:n}=t,u=p(n),m=(null===(e=Qs(d))||void 0===e?void 0:e.length)||1,v=100/(m-1||1),g=Math.round(u/v);let y=Math.min(g,m-1);const b=Qs(d)[y],k={itemIndex:o().activeItemIndex,moduleIndex:o().activeModuleIndex};if(!l){const t=s.children[Qs(h)],e=s.getBoundingClientRect(),n=t.getBoundingClientRect();i(n.x-e.x)}c&&clearTimeout(c),c=setTimeout((()=>{const t=p(n);Math.abs(t-g*v)<.25&&async function(){o().seeking&&(o().playerLoaded?o().currentItemsList[o().activeItemIndex].modules[o().activeModuleIndex].play():o().playingModulePosition=Qs(a),i(0))}()}),l?0:150),null!==l||f(b.position,k)?null!==l&&f(b.position,l)&&(l=null):(o().activeItemIndex=b.position.itemIndex,o().activeModuleIndex=b.position.moduleIndex),Oo(a,b.position)}function v(){}ls((()=>{const{activeItemIndex:t,activeModuleIndex:e}=o();t===Qs(a).itemIndex&&e===Qs(a).moduleIndex||ta((()=>{var n,i;const r=Qs(d).findIndex((n=>{const{itemIndex:i,moduleIndex:r}=n.position;return t===i&&e===r}));l=(null===(n=Qs(d)[r])||void 0===n?void 0:n.position)||null;const o=null===(i=s)||void 0===i||null===(i=i.children)||void 0===i?void 0:i[r];if(!s||!o)return;const a=s.getBoundingClientRect(),c=o.getBoundingClientRect();let u=s.scrollLeft+(c.left-a.left);const h=Math.max(0,s.scrollWidth-s.clientWidth);u=Math.max(0,Math.min(h,u)),s.scrollTo({left:u,behavior:"auto"})}))})),ls((()=>{Qs(u)&&ta((()=>{}))}));var g=ua(),y=Jo(g),b=t=>{var i=Mu();Fa(i,23,(()=>Qs(d)),(t=>t.id),((t,i,o)=>{var s=Nu(),a=Qo(s),l=t=>{var r=Su();let s;hs((t=>{s=$a(r,1,"cover-image svelte-1rvgxfc",null,s,{hidden:Qs(u)&&Qs(o)===Qs(h),"force-show":Qs(i).showCover}),Za(r,"src",t),Za(r,"alt",Qs(i).name),Za(r,"fetchpriority",0===Qs(o)?"high":"auto")}),[()=>e.gallery.getCoverUrl(Qs(i).cover,n[n.length-1])]),ra("load",r,(function(...t){var e;null===(e=0===Qs(o)?v:()=>{})||void 0===e||e.apply(this,t)})),function(t){if(!Ei)return;t.removeAttribute("onload"),t.removeAttribute("onerror");const e=t.__e;void 0!==e&&(t.__e=void 0,queueMicrotask((()=>{t.isConnected&&t.dispatchEvent(e)})))}(r),da(t,r)};Aa(a,(t=>{t(l)}));var c=Zo(a,2),d=t=>{!function(t,e){Ji(e,!0),Da(t,Eu);const n={color:"#e3e3e3",fadeTime:300,lineWidth:8};function i(t){const{direction:n}=t.detail;var i;if("left"===n)null===(i=e.gallery)||void 0===i||i.next(),e.onEvent("swipe",[-1,0]);else if("right"===n){var r;null===(r=e.gallery)||void 0===r||r.prev(),e.onEvent("swipe",[1,0])}}var r=Iu();tl(r,(t=>({...t,class:"swiper"})),[()=>_u(i,(()=>({touchAction:"pan-y",plugins:e.debug?[Tu(n)]:[]})))],void 0,void 0,"svelte-1fv6njc"),da(t,r),Zi()}(t,{get gallery(){return e.gallery},get debug(){return e.debug},get onEvent(){return e.onEvent}})};Aa(c,(t=>{r()&&t(d)}));var f=Zo(c,2),p=t=>{var e=Au();!function(t,e,n){Ei&&Ni();var i=new Ia(t);fs((()=>{var t,r=null!==(t=e())&&void 0!==t?t:null;i.ensure(r,r&&(t=>n(t,r)))}),ii)}(Qo(e),(()=>Qs(i).Component),((t,e)=>{e(t,{get state(){return Qs(i).state},get isMobile(){return r()}})})),Mi(e),da(t,e)};Aa(f,(t=>{var e;null!==(e=Qs(i))&&void 0!==e&&e.Component&&t(p)})),Mi(s),da(t,s)})),Mi(i),al(i,(t=>s=t),(()=>s)),ra("scroll",i,m),da(t,i)};Aa(y,(t=>{Qs(d)&&t(b)})),da(t,g),Zi()}const Cu="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};let Pu;function Du(){const t=Cu&&Cu.navigator&&(Cu.navigator.userAgent||Cu.navigator.platform||Cu.navigator.vendor)||"";if(Pu&&Pu.ua===t)return Pu;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile");return Pu={ua:t,isMobile:r},Pu}"undefined"!=typeof window&&window.addEventListener("pageshow",(function(t){t.persisted&&setTimeout((function(){window.location.reload()}),10)}),!1);var Ru=ca('<div class="paging-buttons svelte-1n46o8q"><!> <!></div>'),Lu=ca('<div style="position: absolute; top: 0; left: 0; width: 100%;"></div>'),Bu=ca("<!> <!>",1),zu=ca('<div class="player-container svelte-1n46o8q"><div class="player-div swipable svelte-1n46o8q"></div> <!> <!> <!> <!></div> <!>',1),Wu=ca('<div class="eko-gallery-app svelte-1n46o8q"><!></div>');const Uu={hash:"svelte-1n46o8q",code:'.eko-gallery-app.svelte-1n46o8q {position:relative;width:100%;height:100%;display:flex;flex-direction:column;box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;}.eko-gallery-app.svelte-1n46o8q:hover .paging-buttons:where(.svelte-1n46o8q) .nav-button {background-color:#FFFFFF;box-shadow:0 0 8px 0 rgba(0, 0, 0, 0.12);}.eko-gallery-app.svelte-1n46o8q * {box-sizing:border-box;touch-action:pan-y;font-family:"Human BBY Digital", sans-serif;}.player-container.svelte-1n46o8q {position:relative;flex:1;width:100%;pointer-events:none;overflow:hidden;display:flex;align-items:center;justify-content:center;}.player-div.svelte-1n46o8q {position:absolute;width:var(--videoWidth);height:var(--videoHeight);aspect-ratio:var(--videoAspect);}.swipable.svelte-1n46o8q {will-change:transform;transform:translate3d(var(--uiTranformX, 0), 0, 0);}.paging-buttons.svelte-1n46o8q {position:absolute;top:0;left:0;bottom:0;right:0;display:flex;justify-content:space-between;align-items:center;pointer-events:none;padding:0 12px;}.paging-buttons.svelte-1n46o8q .nav-button {transition:0.2s ease-in-out;box-shadow:none;}.paging-buttons.svelte-1n46o8q .nav-button img {opacity:0.6;}'};function $u(t,e){Ji(e,!0),Da(t,Uu);const n=cl(e,"config",19,(()=>({}))),i=cl(e,"forceMobile",3,!1),r=cl(e,"videoAspectRatio",3,"unset"),o=cl(e,"onGalleryReady",3,(()=>{})),s=cl(e,"onEvent",3,(()=>{}));let a,l=!1,c=Mo(new Vc(n())),u=Mo(null),d=bo((()=>i()||Du().isMobile)),h=Mo(0),f=Mo(void 0),p=Mo(!0),m=Mo(Bo({width:"100%",height:"100%"}));var v,g,y;function b(){const t={AssetsDeliveryService:{assetsDeliveryServiceUrl:Qs(c).urls.assetsDeliveryBase}};Oo(u,new e.EkoPlayer(a,Object.assign(t,e.playerOptions))),Qs(u).on("playing",(()=>{Qs(c).state.paused=!1})),Qs(u).on("pause",(()=>{Qs(c).state.paused=!0})),Qs(u).once("playing",(()=>{Qs(c).state.startedPlaying=!0,s()("galleryloaded")}))}function k(t){var e;null===(e=Qs(c))||void 0===e||e.selectItem(t)}function x(){var t;null===(t=Qs(c))||void 0===t||t.next()}function w(){var t;null===(t=Qs(c))||void 0===t||t.prev()}function _(){Qs(u).paused?Qs(u).play():Qs(u).pause()}function T(){return`--uiTranformX: ${Qs(h)}px;--videoAspect: ${r()};--videoWidth: ${Qs(m).width};--videoHeight: ${Qs(m).height};`}v="state",g=()=>Qs(c).state,tr("setContext").set(v,g),y=()=>(o()(Qs(c).public),n()&&e.EkoPlayer&&(b(),Qs(c).start(Qs(u)),console.log("[EkoGallery] gallery.start() called with config",n())),()=>{var t;null===(t=Qs(u))||void 0===t||t.dispose(),console.log("[EkoGallery] dispose()")}),null===Vi&&ki("onMount"),ls((()=>{const t=ta(y);if("function"==typeof t)return t})),ls((()=>{n()&&e.EkoPlayer&&(l?ta((()=>{var t;console.log("[EkoGallery] config changed, re-rendering with config:",n()),Oo(c,new Vc(n())),null===(t=Qs(u))||void 0===t||t.dispose(),Oo(p,!1),Ys().then((()=>(Oo(p,!0),Ys()))).then((()=>{o()(Qs(c).public),b(),Qs(c).start(Qs(u)),console.log("[EkoGallery] called gallery.start() after re-rendering")}))})):l=!0)})),ls((()=>{Qs(f)&&Qs(u)&&Qs(u).loadDebugOverlay({containerElement:Qs(f)})})),ls((()=>{if("unset"!==r()&&r().includes("/")){const[t,e]=r().split("/").map((t=>Number(t)));isNaN(t)||isNaN(e)||Oo(m,t>e?{width:"100%",height:"auto"}:{width:"auto",height:"100%"},!0)}else Oo(m,{width:"100%",height:"100%"},!0)}));var I=Wu(),E=Qo(I),S=t=>{var n=zu(),i=Jo(n),r=Qo(i);al(r,(t=>a=t),(()=>a));var o=Zo(r,2);Ou(o,{get isMobile(){return Qs(d)},get gallery(){return Qs(c)},get debug(){return e.debug},get onEvent(){return s()},get scrollOffset(){return Qs(h)},set scrollOffset(t){Oo(h,t,!0)}});var l=Zo(o,2),u=t=>{var e=Ru(),n=Qo(e);iu(n,{type:"prev",onClick:w}),iu(Zo(n,2),{type:"next",onClick:x}),Mi(e),da(t,e)};Aa(l,(t=>{Qs(d)||e.hideNav||t(u)}));var p=Zo(l,2),m=t=>{au(t,{})};Aa(p,(t=>{var e;!Qs(d)&&(null===(e=Qs(c).state.currentItem)||void 0===e?void 0:e.modules.length)>1&&t(m)}));var v=Zo(p,2),g=t=>{var n=Bu(),i=Jo(n);!function(t,e){Ji(e,!0),Da(t,fu);const n=Qi("state");var i=hu();i.__click=function(...t){var n;null===(n=e.onPauseClick)||void 0===n||n.apply(this,t)};var r=Qo(i),o=t=>{var e=uu();hs((()=>Za(e,"src",lu))),da(t,e)},s=t=>{var e=du();hs((()=>Za(e,"src",cu))),da(t,e)};Aa(r,(t=>{n().paused?t(o):t(s,!1)})),Mi(i),hs((t=>Za(i,"aria-label",t)),[()=>n().paused?"Play":"Pause"]),da(t,i),Zi()}(i,{onPauseClick:_});var r=Zo(i,2),o=t=>{var e=Lu();al(e,(t=>Oo(f,t)),(()=>Qs(f))),da(t,e)};Aa(r,(t=>{e.debug&&t(o)})),da(t,n)};Aa(v,(t=>{Qs(c).state.startedPlaying&&t(g)})),Mi(i);var y=Zo(i,2),b=t=>{!function(t,e){Ji(e,!0),Da(t,Zc);let n=cl(e,"onNavItemClick",3,(()=>{}));const i=Qi("state");var r=Jc(),o=Qo(r);Fa(o,23,(()=>i().currentItemsList),(t=>t.id),((t,e,r)=>{var o=Qc();let s;o.__click=()=>n()(Qs(r));var a=Qo(o),l=Qo(a,!0);Mi(a),Mi(o),hs((t=>{s=$a(o,1,"nav-button svelte-er27y2",null,s,t),ya(l,Qs(e).name)}),[()=>({selected:Qs(r)===i().activeItemIndex})]),da(t,o)})),Mi(o),Mi(r),da(t,r),Zi()}(t,{onNavItemClick:k})};Aa(y,(t=>{e.hideNav||t(b)})),hs((t=>qa(i,t)),[T]),da(t,n)};Aa(E,(t=>{n()&&Qs(p)&&t(S)})),Mi(I),da(t,I),Zi()}function ju(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var qu,Vu,Gu,Hu,Ku={exports:{}},Xu=ju((qu||(qu=1,Gu=Ku.exports,Hu=function(){var t=function(){},e="undefined",n=typeof window!==e&&typeof window.navigator!==e&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},o=null;function s(t,e){var n=t[e];if("function"==typeof n.bind)return n.bind(t);try{return Function.prototype.bind.call(n,t)}catch(e){return function(){return Function.prototype.apply.apply(n,[t,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function l(){for(var n=this.getLevel(),r=0;r<i.length;r++){var o=i[r];this[o]=r<n?t:this.methodFactory(o,n,this.name)}if(this.log=this.debug,typeof console===e&&n<this.levels.SILENT)return"No console available for logging"}function c(t){return function(){typeof console!==e&&(l.call(this),this[t].apply(this,arguments))}}function u(i,r,o){return"debug"===(l=i)&&(l="log"),typeof console!==e&&("trace"===l&&n?a:void 0!==console[l]?s(console,l):void 0!==console.log?s(console,"log"):t)||c.apply(this,arguments);var l}function d(t,n){var s,a,c,d=this,h="loglevel";function f(){var t;if(typeof window!==e&&h){try{t=window.localStorage[h]}catch(t){}if(typeof t===e)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(t=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch(t){}return void 0===d.levels[t]&&(t=void 0),t}}function p(t){var e=t;if("string"==typeof e&&void 0!==d.levels[e.toUpperCase()]&&(e=d.levels[e.toUpperCase()]),"number"==typeof e&&e>=0&&e<=d.levels.SILENT)return e;throw new TypeError("log.setLevel() called with invalid level: "+t)}"string"==typeof t?h+=":"+t:"symbol"==typeof t&&(h=void 0),d.name=t,d.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},d.methodFactory=n||u,d.getLevel=function(){return null!=c?c:null!=a?a:s},d.setLevel=function(t,n){return c=p(t),!1!==n&&function(t){var n=(i[t]||"silent").toUpperCase();if(typeof window!==e&&h){try{return void(window.localStorage[h]=n)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(t){}}}(c),l.call(d)},d.setDefaultLevel=function(t){a=p(t),f()||d.setLevel(t,!1)},d.resetLevel=function(){c=null,function(){if(typeof window!==e&&h){try{window.localStorage.removeItem(h)}catch(t){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(t){}}}(),l.call(d)},d.enableAll=function(t){d.setLevel(d.levels.TRACE,t)},d.disableAll=function(t){d.setLevel(d.levels.SILENT,t)},d.rebuild=function(){if(o!==d&&(s=p(o.getLevel())),l.call(d),o===d)for(var t in r)r[t].rebuild()},s=p(o?o.getLevel():"WARN");var m=f();null!=m&&(c=p(m)),l.call(d)}(o=new d).getLogger=function(t){if("symbol"!=typeof t&&"string"!=typeof t||""===t)throw new TypeError("You must supply a name when creating a logger.");var e=r[t];return e||(e=r[t]=new d(t,o.methodFactory)),e};var h=typeof window!==e?window.log:void 0;return o.noConflict=function(){return typeof window!==e&&window.log===o&&(window.log=h),o},o.getLoggers=function(){return r},o.default=o,o},(Vu=Ku).exports?Vu.exports=Hu():Gu.log=Hu()),Ku.exports));const Yu=()=>{},Qu=["trace","log","debug","info","warn","error","getLevel","setLevel"],Ju=["trace","debug","info","warn","error","silent"],Zu={TRACE:"color: white; background-color: magenta;",DEBUG:"color: black; background-color: turquoise;",INFO:"color: white; background-color: green;",WARN:"color: black; background-color: yellow;",ERROR:"color: white; background-color: red;"},td="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global;let ed={level:"trace",appName:""},nd=[];const id="object"==typeof td&&td.performance&&"function"==typeof td.performance.now?td.performance.now.bind(td.performance):Date.now.bind(Date),rd=t=>t&&"string"==typeof t?t.toLowerCase().trim():"",od=(()=>{try{const t=new URLSearchParams(document.location.search),e=[].concat(t.getAll("log")).concat(t.getAll("ekolog")).concat(t.getAll("ekologger")).join(",").split(",");if(0===e.length)return{};let n={};return e.forEach((t=>{const[e,i]=t.split(":");n[rd(e)]=rd(i)||"trace"})),n}catch(t){return{}}})(),sd=(t,e="")=>{const n=rd(t),i=Xu.getLogger(n);if(i.__ekologger)return i.__ekologger;e||od[n]||od["*"]||(i.__noExplicitLevel=!0);const r=i.methodFactory;i.methodFactory=(e,n,i)=>{const o=r(e,n,i),s=e.toUpperCase();return(...e)=>{o(`[${((t,e=3)=>(id()/1e3).toFixed(e))()}] %c[${s}] ${ed.appName?`[${ed.appName}] `:""}[${t}]`,Zu[s],...e)}},e=od[n]||od["*"]||e||ed.level,i.setLevel(e,!1);const o=(...t)=>i.log(...t);return Qu.forEach((t=>{o[t]=(...e)=>(nd.forEach((n=>{n[t](...e)})),i[t](...e))})),i.__ekologger=o,o};sd.setDefaults=({appName:t="",level:e})=>{t&&"string"==typeof t&&(ed.appName=t),(e=rd(e))&&Ju.includes(e)&&(ed.level=e,Object.values(Xu.getLoggers()).filter((t=>t.__noExplicitLevel)).forEach((t=>t.setLevel(ed.level,!1))))},sd.installDriver=t=>{const e={...Qu.reduce(((e,n)=>(e[n]="function"==typeof(null==t?void 0:t[n])?t[n]:Yu,e)),{})};nd.push(e)};let ad=class{#T=new Map;on(t,e){if("function"!=typeof e)return this;const n=this.#T.get(t)||new Set;return n.add(e),this.#T.set(t,n),this}once(t,e){if("function"!=typeof e)return this;const n=(...i)=>(this.off(t,n),e(...i));return this.on(t,n)}off(t,e){if(!t)return this.#T.clear(),this;const n=this.#T.get(t);return n?e?(n.delete(e),0===n.size&&this.#T.delete(t),this):(this.#T.delete(t),this):this}trigger(t,...e){const n=this.#T.get(t);return n?(n.forEach((t=>t(...e))),this):this}};function ld(t){return"[object Object]"===Object.prototype.toString.call(t)}function cd(t,...e){const n=ld(t)?{...t}:{};return e.forEach((t=>{ld(t)&&Object.keys(t).forEach((e=>{const i=t[e],r=n[e];ld(i)&&ld(r)?n[e]=cd(r,i):Array.isArray(i)?n[e]=i.slice():n[e]=i}))})),n}function ud(t){if("string"==typeof t)return`'${t}'`;if(Array.isArray(t))return`[${t.map((t=>ud(t))).join(", ")}]`;if(ld(t))try{return JSON.stringify(t)}catch(t){return"[object Object]"}return null===t?"null":void 0===t?"undefined":String(t)}function dd(t){return Array.from(t).map((t=>ud(t))).join(", ")}var hd=new WeakSet;class fd extends ad{constructor(...t){super(),$(this,hd);const e=t.length?t[t.length-1]:void 0,n=this.name;if(!n||"string"!=typeof n)throw new Error("Extending classes must implement get name() returning a string.");this.log=sd(n,this.loglevel);const i=ld(this.defaults)?this.defaults:{},r=ld(e)&&ld(e[n])?e[n]:{};this.settings=cd({},i,r),L(hd,this,pd).call(this),L(hd,this,md).call(this)}get name(){throw new Error("BaseModuleClass requires a name getter.")}get loglevel(){return"warn"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set(["constructor","on","off","once","trigger","#wrapMethodsForLogging"])}dispose(){this._disposed||(this._disposed=!0,"function"==typeof this._lifecycleCleanup&&(this._lifecycleCleanup(),this._lifecycleCleanup=null),"function"==typeof this.onDispose&&this.onDispose())}onDispose(){}}function pd(){const t=new Set,e=this.methodsExcludedFromAutoLog;let n=Object.getPrototypeOf(this);for(;n&&n!==Object.prototype;){const i=Object.getOwnPropertyNames(n);for(let r=0;r<i.length;r+=1){const o=i[r];if("constructor"===o||o.startsWith("#"))continue;if(t.has(o))continue;const s=Object.getOwnPropertyDescriptor(n,o);if(!s||"function"!=typeof s.value)continue;const a=s.value.bind(this),l=!e.has(o);this[o]=l?(...t)=>(this.log&&"function"==typeof this.log.debug&&this.log.debug(`${this.name}.${o}(${dd(t)})`),a(...t)):a,t.add(o)}n=Object.getPrototypeOf(n)}}function md(){if("undefined"==typeof window||"function"!=typeof window.addEventListener)return;const t=()=>{try{"function"==typeof this.dispose&&this.dispose()}catch(t){this.log&&"function"==typeof this.log.error&&this.log.error("dispose failed",t)}};window.addEventListener("pagehide",t),window.addEventListener("beforeunload",t),this._lifecycleCleanup=()=>{window.removeEventListener("pagehide",t),window.removeEventListener("beforeunload",t)}}const vd="undefined"!=typeof self&&self||"undefined"!=typeof window&&window||"undefined"!=typeof global&&global||{};function gd(t){return Boolean(t)&&"object"==typeof t&&1===t.nodeType&&"function"==typeof t.appendChild}class yd extends fd{#I;#E;#S;get defaults(){return{style:{width:"100%",height:"100%"},contextAttributes:{alpha:!1,depth:!1,stencil:!1,antialias:!1,preserveDrawingBuffer:!1,powerPreference:"low-power"}}}constructor(...t){var e,n;super(...t);const[i]=t,r=function(t,e=(null==vd?void 0:vd.document)){if(gd(t))return t;const n="string"==typeof t?t:null;if(!n||!e||"function"!=typeof e.querySelector)return null;const i=e.querySelector(n);return gd(i)?i:null}(i);if(!r)throw new Error("Canvas requires a valid mount target (HTMLElement or selector string).");this.#I=r;const o=null==vd?void 0:vd.document;if(!o||"function"!=typeof o.createElement)throw new Error("Canvas requires document.createElement.");var s,a;this.#E=o.createElement("canvas"),s=this.#E,a=null===(e=this.settings)||void 0===e?void 0:e.style,s&&a&&"object"==typeof a&&!Array.isArray(a)&&Object.keys(a).forEach((t=>{const e=a[t];null!=e&&(s.style[t]=String(e))})),this.#I.appendChild(this.#E);const l=null===(n=this.settings)||void 0===n?void 0:n.contextAttributes,c=l&&"object"==typeof l&&!Array.isArray(l)?l:void 0;if(this.#S=this.#E.getContext("webgl2",c),!this.#S)throw new Error("Canvas WebGL2 context is not available.")}get name(){return"Canvas"}get element(){return this.#E}get gl(){return this.#S}onDispose(){this.#E&&this.#E.parentNode&&this.#E.parentNode.removeChild(this.#E),this.#S=null,this.#E=null,this.#I=null}}var bd=new WeakMap,kd=new WeakMap,xd=new WeakMap,wd=new WeakMap,_d=new WeakMap,Td=new WeakMap,Id=new WeakSet;class Ed extends fd{get name(){return"ContainerSize"}get containerWidth(){return z(kd,this)}get containerHeight(){return z(xd,this)}get width(){return z(kd,this)}get height(){return z(xd,this)}constructor(...t){super(...t),$(this,Id),W(this,bd,void 0),W(this,kd,0),W(this,xd,0),W(this,wd,null),W(this,_d,null),W(this,Td,null);const[e]=t;var n;U(bd,this,(n=e)&&n.element&&gd(n.element)?n.element:gd(n)?n:null),z(bd,this)&&(L(Id,this,Ad).call(this,!0),L(Id,this,Sd).call(this))}onDispose(){z(wd,this)&&"function"==typeof z(wd,this).disconnect&&z(wd,this).disconnect(),U(wd,this,null),z(Td,this)&&"function"==typeof(null==vd?void 0:vd.removeEventListener)&&vd.removeEventListener("resize",z(Td,this)),U(Td,this,null),z(_d,this)&&((null==vd?void 0:vd.clearInterval)||clearInterval)(z(_d,this)),U(_d,this,null),U(bd,this,null)}}function Sd(){if(!z(bd,this))return;const t=null==vd?void 0:vd.ResizeObserver;if("function"==typeof t)return U(wd,this,new t((()=>L(Id,this,Ad).call(this)))),void z(wd,this).observe(z(bd,this));U(Td,this,(()=>L(Id,this,Ad).call(this))),"function"==typeof(null==vd?void 0:vd.addEventListener)&&vd.addEventListener("resize",z(Td,this));const e=(null==vd?void 0:vd.setInterval)||setInterval;U(_d,this,e((()=>L(Id,this,Ad).call(this)),250))}function Ad(t=!1){if(!z(bd,this))return;const{width:e,height:n}=function(t){const e=Number(null==t?void 0:t.clientWidth),n=Number(null==t?void 0:t.clientHeight);return{width:Number.isFinite(e)&&e>0?Math.round(e):0,height:Number.isFinite(n)&&n>0?Math.round(n):0}}(z(bd,this));(t||e!==z(kd,this)||n!==z(xd,this))&&(U(kd,this,e),U(xd,this,n),this.trigger("containerresize",{width:e,height:n}))}var Nd={VIDEO_SOURCE_PREFIX:"__SRC_VID:",TEXTURE_SOURCE_PREFIX:"__SRC_TEXTURE:",PREVIOUS_OUTPUT_PREFIX:"__PREVIOUS:",SAVED_FRAME_PREFIX:"__SAVED_FRAME:",SYSTEM_NODES:{FILTERS:{RENDER_TO_CANVAS:"__default"},TAGS:{ATOM:"atom",FILTER:"filter",COMPOSITE_FILTER:"composite",TRANSITION_FILTER:"transition"}},MESSAGES:{UPDATE_OPTIONS:"update_options"}};class Md{constructor(t,e){this.canvasSource=t,this.startRendering=e,this.gl=null,this.glOptions=null}init(t,e,n){this.glOptions=n||{};const i=this.initCanvas(this.canvasSource,t,e);return this.initWebgl(i,this.glOptions)}initCanvas(){throw new Error("implement on concrete class")}getContextConfig(t={}){if(!t||"object"!=typeof t)return{contextType:"webgl",contextAttributes:void 0};const{contextType:e,contextAttributes:n,__shaderGraph:i,...r}=t;return{contextType:e||"webgl",contextAttributes:Object.prototype.hasOwnProperty.call(t,"contextAttributes")?n:r}}initWebgl(t,e={}){const{contextType:n,contextAttributes:i}=this.getContextConfig(e),r=t.getContext(n,i);if(!r)throw new Error(`Browser doesn't support ${n}`);return r.enable(r.BLEND),r.disable(r.DEPTH_TEST),r.clearColor(0,0,0,0),r.clear(r.COLOR_BUFFER_BIT),r}isStartRendering(){return this.startRendering}}var Fd,Od={exports:{}},Cd=(Fd||(Fd=1,function(t){var e=Object.prototype.hasOwnProperty,n="~";function i(){}function r(t,e,n){this.fn=t,this.context=e,this.once=n||!1}function o(t,e,i,o,s){if("function"!=typeof i)throw new TypeError("The listener must be a function");var a=new r(i,o||t,s),l=n?n+e:e;return t._events[l]?t._events[l].fn?t._events[l]=[t._events[l],a]:t._events[l].push(a):(t._events[l]=a,t._eventsCount++),t}function s(t,e){0==--t._eventsCount?t._events=new i:delete t._events[e]}function a(){this._events=new i,this._eventsCount=0}Object.create&&(i.prototype=Object.create(null),(new i).__proto__||(n=!1)),a.prototype.eventNames=function(){var t,i,r=[];if(0===this._eventsCount)return r;for(i in t=this._events)e.call(t,i)&&r.push(n?i.slice(1):i);return Object.getOwnPropertySymbols?r.concat(Object.getOwnPropertySymbols(t)):r},a.prototype.listeners=function(t){var e=n?n+t:t,i=this._events[e];if(!i)return[];if(i.fn)return[i.fn];for(var r=0,o=i.length,s=new Array(o);r<o;r++)s[r]=i[r].fn;return s},a.prototype.listenerCount=function(t){var e=n?n+t:t,i=this._events[e];return i?i.fn?1:i.length:0},a.prototype.emit=function(t,e,i,r,o,s){var a=n?n+t:t;if(!this._events[a])return!1;var l,c,u=this._events[a],d=arguments.length;if(u.fn){switch(u.once&&this.removeListener(t,u.fn,void 0,!0),d){case 1:return u.fn.call(u.context),!0;case 2:return u.fn.call(u.context,e),!0;case 3:return u.fn.call(u.context,e,i),!0;case 4:return u.fn.call(u.context,e,i,r),!0;case 5:return u.fn.call(u.context,e,i,r,o),!0;case 6:return u.fn.call(u.context,e,i,r,o,s),!0}for(c=1,l=new Array(d-1);c<d;c++)l[c-1]=arguments[c];u.fn.apply(u.context,l)}else{var h,f=u.length;for(c=0;c<f;c++)switch(u[c].once&&this.removeListener(t,u[c].fn,void 0,!0),d){case 1:u[c].fn.call(u[c].context);break;case 2:u[c].fn.call(u[c].context,e);break;case 3:u[c].fn.call(u[c].context,e,i);break;case 4:u[c].fn.call(u[c].context,e,i,r);break;default:if(!l)for(h=1,l=new Array(d-1);h<d;h++)l[h-1]=arguments[h];u[c].fn.apply(u[c].context,l)}}return!0},a.prototype.on=function(t,e,n){return o(this,t,e,n,!1)},a.prototype.once=function(t,e,n){return o(this,t,e,n,!0)},a.prototype.removeListener=function(t,e,i,r){var o=n?n+t:t;if(!this._events[o])return this;if(!e)return s(this,o),this;var a=this._events[o];if(a.fn)a.fn!==e||r&&!a.once||i&&a.context!==i||s(this,o);else{for(var l=0,c=[],u=a.length;l<u;l++)(a[l].fn!==e||r&&!a[l].once||i&&a[l].context!==i)&&c.push(a[l]);c.length?this._events[o]=1===c.length?c[0]:c:s(this,o)}return this},a.prototype.removeAllListeners=function(t){var e;return t?(e=n?n+t:t,this._events[e]&&s(this,e)):(this._events=new i,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=n,a.EventEmitter=a,t.exports=a}(Od)),Od.exports),Pd=ju(Cd);class Dd extends Md{constructor(t){super(t,!0),this.setSrcVidTracksFn=null,this.shouldUpdateTexture=!0,this.onPlayerSeeking=this.onPlayerSeeking.bind(this),this.onPlayerSeeked=this.onPlayerSeeked.bind(this),this.onPlayerNodeStart=this.onPlayerNodeStart.bind(this),this.oncePlayerPlaying=this.oncePlayerPlaying.bind(this);const e=new Pd;this.on=e.on.bind(e),this.off=e.off.bind(e),this.once=e.once.bind(e),this.trigger=e.emit.bind(e)}onPlayerSeeking(){this.shouldUpdateTexture=!1}onPlayerSeeked(){this.shouldUpdateTexture=!0}onPlayerNodeStart(){this.shouldUpdateTexture=!0,"function"==typeof this.player.canvas.drawFrame&&this.player.canvas.drawFrame(),this.trigger("forcerender")}oncePlayerPlaying(){this.onPlayerNodeStart()}addPlayerListeners(){this.player&&(this.player.on("seeking",this.onPlayerSeeking),this.player.on("seeked",this.onPlayerSeeked),this.player.on("nodestart",this.onPlayerNodeStart),this.player.once("playing",this.oncePlayerPlaying))}removePlayerListeners(){this.player&&(this.player.off("seeking",this.onPlayerSeeking),this.player.off("seeked",this.onPlayerSeeked),this.player.off("nodestart",this.onPlayerNodeStart),this.player.off("playing",this.oncePlayerPlaying))}initCanvas(t,e,n){var i;this.player=t,this.setSrcVidTracksFn=e;const{contextType:r,contextAttributes:o}=this.getContextConfig(this.glOptions),s=!1!==(null===(i=this.glOptions)||void 0===i||null===(i=i.__shaderGraph)||void 0===i?void 0:i.forwardContextAttributes);const a={contextType:r};s&&void 0!==o&&(a.contextAttributes=o),t.initPlugin("canvas",a);const l={drawFrame:this.canvasDrawFrameFn.bind(this),resize:n,contextType:r,offscreenVideoCanvasEnabled:!1,viewportModeEnabled:!0,fps:0};return s&&void 0!==o&&(l.contextAttributes=o),t.canvas.init(l),t.paused&&0===t.currentTime&&(this.shouldUpdateTexture=!1),this.addPlayerListeners(),t.canvas.canvas}canvasDrawFrameFn(t,e,n){var i;this.setSrcVidTracksFn&&this.shouldUpdateTexture&&t&&e&&n&&(n.videoWidth||n.displayWidth)&&(n.videoHeight||n.displayHeight)&&(!(i=n)||"boolean"!=typeof i.isDataLoaded||i&&i.isDataLoaded&&(void 0===i.isFrameTextureReady||i.isFrameTextureReady))&&this.setSrcVidTracksFn(n)}async recover(){if(this.player&&this.player.paused)return new Promise((t=>{this.player.once("seeked",(()=>{this.shouldUpdateTexture=!0,t()})),this.player.currentTime=this.player.currentTime}))}dispose(){this.player&&(this.player.canvas&&"function"==typeof this.player.canvas.dispose&&this.player.canvas.dispose(),this.removePlayerListeners(),this.player=null)}}class Rd extends Md{constructor(t){super(t,!1)}initCanvas(t,e){const n=function(){const t=document.querySelector("video");t&&t.videoHeight&&e(t),requestAnimationFrame(n)};return requestAnimationFrame(n),document.getElementById(t)}}class Ld extends Md{constructor(t){super(t,!1)}initCanvas({src:t,dest:e},n,i){const r="string"==typeof e?document.querySelector(e):e,o="undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement,s=()=>{this.isDisposed||(t&&t.videoHeight&&n(t),requestAnimationFrame(s))};return o?requestAnimationFrame(s):"function"==typeof t?t(n,i):n(t),r}dispose(){this.isDisposed=!0}}var Bd=function(t){let e;return e="string"==typeof t?new Rd(t):t&&t.src&&t.dest?new Ld(t):new Dd(t),e};function zd(t){return Array.isArray(t)||(t=[t]),t}class Wd{constructor(t){this.store=t?{...t.get()}:{}}reset(){this.store={}}get(t){if(!t)return this.store;const e=(t=zd(t)).reduce(((t,e)=>{const n=this.store[e];return t.push(n),t}),[]);return 1===e.length?e[0]:e}set(t,e){if(t=zd(t),e=zd(e),t.length!==e.length)throw new Error(`cant set values ${e} to keys ${t}, length did not match`);t.forEach(((t,n)=>{this.store[t]=e[n]}))}}class Ud{constructor(t,e,n,i){this.gl=i.gl,this.unit=t,this.bindPoint=e,this.height=1080,this.width=1920,this.textureObject=n.object,this.textureObjectInfo=n,this.isStatic=!1,n.needRefresh&&this.setParameters()}getUnit(){return this.unit}getObject(){return this.textureObject}bind(){this.gl.bindTexture(this.bindPoint,this.textureObject)}fill(){throw new Error("impl in concrete class")}setParameters(){this.bind(),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_S,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_WRAP_T,this.gl.CLAMP_TO_EDGE),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MIN_FILTER,this.gl.LINEAR),this.gl.texParameteri(this.bindPoint,this.gl.TEXTURE_MAG_FILTER,this.gl.LINEAR)}active(){this.gl.activeTexture(this.gl.TEXTURE0+this.getUnit())}beforeUse(){this.active(),this.bind()}dispose(){this.gl.deleteTexture(this.textureObject)}setHeight(t){this.height=t}setWidth(t){this.width=t}getHeight(){if(!this.height)throw new Error(`texture ${this.unit} no height init `);return this.height}getWidth(){if(!this.width)throw new Error(`texture ${this.unit} no width init `);return this.width}}const $d=sd("frame","warn");let jd=!1;if("undefined"!=typeof window&&window.InterludePlayer){let t=window.InterludePlayer.environment,e=t.isAffectedBySafari17SeekBug,n=t.ua.includes("WMT1H")&&t.ua.includes("iOS/17");jd=e||n}function qd(t,e){const n=t.gl;var i;n.texImage2D(t.bindPoint,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.__hasAllocated=!0,i=t,Number.isFinite(i.width)&&Number.isFinite(i.height)&&(i.actualWidth=i.width,i.actualHeight=i.height,i.textureObjectInfo&&(i.textureObjectInfo.allocatedWidth=i.width,i.textureObjectInfo.allocatedHeight=i.height))}class Vd extends Ud{fill(t){if(jd&&(t.paused||"undefined"!=typeof document&&"hidden"===document.visibilityState))return;if(t.__closed)return;this.bind();const e=function(t,e){let n=!t.__hasAllocated;return e?(e.width===t.width&&e.height===t.height||(n=!0),t.width=e.width,t.height=e.height,n):n}(this,function(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t)),n=performance.now();!function(t,e,n){const i=t.gl,r=function(t){if("undefined"!=typeof HTMLVideoElement&&t instanceof HTMLVideoElement)return!0;const e="object"==typeof window?window:"object"==typeof self?self:null,n=e&&e.VideoFrame;return"function"==typeof n&&t instanceof n}(e);r&&(t.__useSubImage=!1),n||!1===t.__useSubImage||r?qd(t,e):(i.texSubImage2D(t.bindPoint,0,0,0,i.RGBA,i.UNSIGNED_BYTE,e),void 0===t.__useSubImage&&(i.getError()!==i.NO_ERROR?(t.__useSubImage=!1,qd(t,e)):t.__useSubImage=!0))}(this,t,e);const i=(performance.now()-n)/1e3;i>=.1&&$d.warn(`[fill] texImage2D() took ${i.toFixed(3)} seconds to execute.`),"function"==typeof t.close&&!0!==t.__keepOpen&&(t.close(),t.__closed=!0)}}class Gd extends Ud{constructor(t,e,n){super(...arguments),n.needRefresh&&(this.fill(null),n.needRefresh=!1)}fill(t){if(this.bind(),t&&t.tagName&&"IMG"===t.tagName){const e=Number(t.naturalWidth||t.width),n=Number(t.naturalHeight||t.height);this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}else{const e=this.gl.canvas.width,n=this.gl.canvas.height;this.gl.texImage2D(this.bindPoint,0,this.gl.RGBA,e,n,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,t),Number.isFinite(e)&&Number.isFinite(n)&&(this.actualWidth=e,this.actualHeight=n,this.textureObjectInfo&&(this.textureObjectInfo.allocatedWidth=e,this.textureObjectInfo.allocatedHeight=n))}}}var Hd=function(t,e,n,i,r){let o;switch(t){case"frame":o=new Vd(e,n,i,r);break;case"pixel":o=new Gd(e,n,i,r);break;default:throw new Error(`cant recognize type ${t}`)}return o};class Kd{constructor(t){return this.gl=t.gl,this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(20).keys()),this.activeTextures=t.activeTextures instanceof Set?t.activeTextures:new Set,{createTexture:this.createTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),refreshTextureObjects:this.refreshTextureObjects.bind(this),refreshActiveTextures:this.refreshActiveTextures.bind(this)}}getTextureObject(){return this.textureObjectPool.pop()||{object:this.gl.createTexture(),needRefresh:!0}}getTextureUnit(){const t=this.textureUnitsPool.values(),e=Math.min.apply(null,[...t]);return this.textureUnitsPool.delete(e),e}createTexture(t){const e=t&&t.type||{},n=this.gl.TEXTURE_2D,i=this.getTextureUnit(),r=this.getTextureObject(),o=Hd(e,i,n,r,{gl:this.gl});return this.activeTextures.add(o),o}releaseTexture(t){this.textureUnitsPool.has(t.getUnit())||(this.textureObjectPool.push({object:t.getObject(),needRefresh:!1}),this.textureUnitsPool.add(t.getUnit())),this.activeTextures.delete(t)}refreshTextureObjects(){this.textureObjectPool.forEach((t=>{t.needRefresh=!0}))}refreshActiveTextures(){const t=new Set;this.activeTextures.forEach((e=>{if(!e||"function"!=typeof e.getUnit)return;t.add(e.getUnit());const n={object:this.gl.createTexture(),needRefresh:!0};e.gl=this.gl,e.textureObjectInfo=n,e.textureObject=n.object,e.__hasAllocated=!1,e.__useSubImage=void 0,e.actualWidth=null,e.actualHeight=null,"function"==typeof e.setParameters&&e.setParameters()})),this.textureObjectPool=[],this.textureUnitsPool=new Set(Array(20).keys()),t.forEach((t=>{this.textureUnitsPool.delete(t)}))}}const Xd=Nd.VIDEO_SOURCE_PREFIX,Yd=Nd.TEXTURE_SOURCE_PREFIX,Qd=Nd.PREVIOUS_OUTPUT_PREFIX,Jd=Nd.SAVED_FRAME_PREFIX;function Zd(t,e,n){t.set(`${Xd}${n}`,e)}function th(t,e,n){t.set(`${Qd}${n}`,e)}function eh(t,e,n){t.set(`${Jd}${n}`,e)}class nh{constructor(t){return this.gl=t.gl,this.glSource=t.glSource,this.textureManager=t.textureManager,this.capturedFramesManager=t.capturedFramesManager,{setVideoSources:this.setVideoSources.bind(this),setTextureSource:this.setTextureSource.bind(this),getInput:this.getInput.bind(this),getPrevOutput:this.getPrevOutput.bind(this),setOutputs:this.setOutputs.bind(this),disposeTextures:this.disposeTextures.bind(this),disposeAllStore:this.disposeAllStore.bind(this)}}setVideoSources(t){for(const[e,n]of Object.entries(this.capturedFramesManager.getCurrentFrames()))Zd(t,n,e),th(t,n,e);for(const[e,n]of Object.entries(this.capturedFramesManager.getSavedFrames()))eh(t,n,e)}setTextureSource(t,e,n){t.set(`${Yd}${n}`,e)}getInput(t,e){return t.get(e)}getPrevOutput(t,e){return e=Number.isInteger(e)?e:0,t.get(`${Qd}${e}`)}setOutputs(t,e=[],n=[]){if(Array.isArray(n)||(n=[n]),e.length>n.length)throw new Error(`output ids ${e.length} is bigger then supplied outputs ${n.length}`);n.forEach(((e,n)=>{th(t,e,n)})),e.forEach(((e,i)=>{t.set(e,n[i])}))}disposeTextures(t,e){const n=e.getUnit();t.forEach((t=>{const e=t.getUnit();this.capturedFramesManager.isReservedUnit(e)||n===e||this.textureManager.releaseTexture(t)}))}disposeAllStore(t){const e=new Set;Object.values(t.get()).forEach((t=>{const n=t.getUnit();this.capturedFramesManager.isReservedUnit(n)||e.has(n)||t.isStatic||(this.textureManager.releaseTexture(t),e.add(n))}))}}class ih{constructor(t){this.context=t}bind(){throw new Error("impl in concrete")}}let rh=100,oh=100;function sh(t,e){rh=t,oh=e}let ah=class extends ih{bind(t){var e,n;this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,null);const i=null===(e=this.context.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,r=null===(n=this.context.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;return Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0&&(this.context.gl.viewport(0,0,i,r),sh(i,r)),t}},lh=class extends ih{bind(t){Array.isArray(t)||(t=[t]),this.context.gl.bindFramebuffer(this.context.gl.FRAMEBUFFER,this.context.frameBufferObject);const e=this.context.textureManager.createTexture({type:"pixel"}),n=this.context.gl.COLOR_ATTACHMENT0;if(this.context.gl.framebufferTexture2D(this.context.gl.FRAMEBUFFER,n,this.context.gl.TEXTURE_2D,e.textureObject,0),this.context.gl.clear(this.context.gl.COLOR_BUFFER_BIT),!1!==this.context.useCanvasSizedFilterTargets){var i,r;const t=null===(i=this.context.gl)||void 0===i||null===(i=i.canvas)||void 0===i?void 0:i.width,n=null===(r=this.context.gl)||void 0===r||null===(r=r.canvas)||void 0===r?void 0:r.height;Number.isFinite(t)&&t>0&&e.setWidth(t),Number.isFinite(n)&&n>0&&e.setHeight(n);const o=e.textureObjectInfo,s=null==o?void 0:o.allocatedWidth,a=null==o?void 0:o.allocatedHeight;Number.isFinite(t)&&Number.isFinite(n)&&(s!==t||a!==n)&&"function"==typeof e.fill&&e.fill(null)}else t[0]&&(e.setHeight(t[0].getHeight()),e.setWidth(t[0].getWidth()));return e}};class ch{constructor(t){this.gl=t.gl,this.textureManager=t.textureManager,this.useCanvasSizedFilterTargets=t.useCanvasSizedFilterTargets,this.bufferIndex=0,this.frameBufferObjectsPool=[this.gl.createFramebuffer(),this.gl.createFramebuffer(),this.gl.createFramebuffer()]}getFrameBufferObject(){const t=this.frameBufferObjectsPool[this.bufferIndex];return this.bufferIndex=this.bufferIndex++%this.frameBufferObjectsPool.length,t}create(t){let e;return e=t===Nd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS?new ah({gl:this.gl}):new lh({gl:this.gl,textureManager:this.textureManager,frameBufferObject:this.getFrameBufferObject(),useCanvasSizedFilterTargets:this.useCanvasSizedFilterTargets}),e}}function uh(t,e,n){const i=e===t.VERTEX_SHADER?"vertex":"fragment";var r;r=t,Boolean(r)&&("undefined"!=typeof WebGL2RenderingContext&&r instanceof WebGL2RenderingContext||"function"==typeof r.createVertexArray)&&(n=function(t="",e){if("string"!=typeof t||!t||function(t=""){return"string"==typeof t&&t.includes("#version 300 es")}(t))return t;let n=t;if("vertex"===e&&(n=n.replace(/\battribute\b/g,"in"),n=n.replace(/\bvarying\b/g,"out")),"fragment"===e&&(n=n.replace(/\bvarying\b/g,"in"),n=n.replace(/\bgl_FragColor\b/g,"fragColor")),n=n.replace(/\btexture2D\b/g,"texture"),n=`#version 300 es\n${n}`,"fragment"===e&&n.includes("fragColor")&&!/\bout\s+vec4\s+fragColor\s*;/.test(n)){const t=n.split("\n");let e=1;for(let n=1;n<t.length;n+=1)if(t[n].trim().startsWith("precision ")){e=n+1;break}t.splice(e,0,"out vec4 fragColor;"),n=t.join("\n")}return n}(n,i));const o=t.createShader(e);if(!o)throw new Error(`Failed to create ${i} shader`);if(t.shaderSource(o,n),t.compileShader(o),t.getShaderParameter(o,t.COMPILE_STATUS))return o;const s=t.getShaderInfoLog(o);throw t.deleteShader(o),new Error(s)}var dh=function(t,e){return uh(t,t.VERTEX_SHADER,e)},hh=function(t,e){return uh(t,t.FRAGMENT_SHADER,e)};const fh={position_3d:0,texture_coordinate_2d:1};var ph=function(t,e,n){const i=t.createProgram();if(t.attachShader(i,e),t.attachShader(i,n),Object.entries(fh).forEach((([e,n])=>{t.bindAttribLocation(i,n,e)})),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS))return i;const r=t.getProgramInfoLog(i);throw t.deleteProgram(i),new Error(r)},mh=[-1,-1,1,1,-1,1,-1,1,1,1,1,1],vh=[0,1,2,2,1,3],gh=[0,0,1,0,0,1,1,1];const yh=96,bh=[new Float32Array(new ArrayBuffer(yh)),new Float32Array(new ArrayBuffer(yh)),new Float32Array(new ArrayBuffer(yh)),new Float32Array(new ArrayBuffer(yh)),new Float32Array(new ArrayBuffer(yh)),new Float32Array(new ArrayBuffer(yh))],kh=[new Int16Array(6),new Int16Array(6),new Int16Array(6)];class xh{constructor(t,e,n){return this.gl=n.gl,this.program=n.program,this.bindPoint=e,this.location=this.gl.getAttribLocation(this.program,t),this.buffer=this.gl.createBuffer(),this.floatBufferCounter=0,this.unit16BufferCounter=0,{fillBuffer:this.fillBuffer.bind(this),bindBuffer:this.bindBuffer.bind(this),setPointer:this.setPointer.bind(this),dispose:this.dispose.bind(this)}}enable(){this.gl.enableVertexAttribArray(this.location)}bindBuffer(){this.gl.bindBuffer(this.bindPoint,this.buffer)}getBuffer(){let t;switch(this.bindPoint){case this.gl.ARRAY_BUFFER:t=bh[this.floatBufferCounter],this.floatBufferCounter=this.floatBufferCounter++%bh.length;break;case this.gl.ELEMENT_ARRAY_BUFFER:t=kh[this.unit16BufferCounter],this.unit16BufferCounter=this.unit16BufferCounter++%kh.length;break;default:throw new Error("cant get buffer for this bind point: ",this.bindPoint)}return t}fillBuffer(t){this.bindBuffer();const e=this.getBuffer();e.set(t,0),this.gl.bufferData(this.bindPoint,e,this.gl.STATIC_DRAW)}getPointerData(){throw new Error("you should impl this function")}setPointer(){this.bindBuffer(),this.enable();const t=this.getPointerData();this.gl.vertexAttribPointer(this.location,t.size,t.type,t.normalize,t.stride,t.offset)}dispose(){this.gl.deleteBuffer(this.buffer)}}const wh={position_3d:class extends xh{getPointerData(){return{size:3,type:this.gl.FLOAT,normalize:!1,stride:0,offset:0}}},position_indexes:class extends xh{setPointer(){}getPointerData(){}enable(){}},texture_coordinate_2d:class extends xh{getPointerData(){return{size:2,type:this.gl.FLOAT,normalize:!0,stride:0,offset:0}}}};var _h=function(t,e,n){const i=wh[t];if(!i)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(wh)}`);return new i(t,e,n)};class Th{constructor(t,e){this.gl=e.gl,this.program=e.program,this.location=this.gl.getUniformLocation(this.program,t)}compute(){return this}set(){return this}}class Ih extends Th{set(t){this.gl.uniform1fv(this.location,t)}}class Eh extends Th{set(t){t&&(t.beforeUse(),this.gl.uniform1i(this.location,t.getUnit()))}}const Sh="first_texture_dimensions",Ah="viewport_dimensions",Nh="time",Mh={RUNTIME_OPTIONS:"runtimeOptions[0]",STATIC_OPTIONS:"staticOptions[0]",FIRST_TEXTURE:"first_texture",SECOND_TEXTURE:"second_texture",FIRST_MATRIX:"first_mat4"},Fh={[Mh.FIRST_TEXTURE]:Eh,[Mh.SECOND_TEXTURE]:Eh,[Mh.FIRST_MATRIX]:class extends Th{set(t){this.gl.uniformMatrix4fv(this.location,!1,t)}},[Mh.STATIC_OPTIONS]:Ih,[Mh.RUNTIME_OPTIONS]:Ih};var Oh=function(t,e){const n=Fh[t];if(!n)throw new Error(`${t} is not a attribute name,choose from list: ${Object.keys(Fh)}`);return new n(t,e)},Ch=function(t,e){let n=(Date.now()-t||0)/(e||1);return n=Number.parseFloat(n).toFixed(7),n=Math.min(1,n),n};const Ph="position_3d",Dh="position_indexes",Rh="texture_coordinate_2d";class Lh{constructor(t,e,n,i){this.type=t,this.gl=i.gl,this.frameBuffer=i.frameBufferFactory.create(t),this.rebindAttributesOnProgramSwitch=!1!==i.rebindAttributesOnProgramSwitch,this.vertexShader=dh(this.gl,e.vertex),this.fragmentShader=hh(this.gl,e.fragment),this.program=ph(this.gl,this.vertexShader,this.fragmentShader);const r={gl:this.gl,program:this.program};this.attributes=function(t,e){const n={};return t=t||[],(t=[{id:Ph,bindPoint:e.gl.ARRAY_BUFFER},{id:Dh,bindPoint:e.gl.ELEMENT_ARRAY_BUFFER},{id:Rh,bindPoint:e.gl.ARRAY_BUFFER}].concat(t)).forEach((t=>{const i=t.id;n[i]=_h(i,t.bindPoint,e)})),n}(n.attributes,r),this.uniforms=function(t,e){const n={};return(t=t||[]).forEach((t=>{const i=t.id;n[i]=Oh(i,e)})),n}(n.uniforms,r),this.gl.useProgram(this.program),i.__handleAttributesInitedOnce||(this.handleAttributes(),i.__handleAttributesInitedOnce=!0),this.handleStaticUniforms(i.options)}static getFilterType(){throw new Error("impl in concrete class")}static getInputsCount(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getInitialOptions(){throw new Error(`impl in concrete class ${this.getFilterType()}`)}static getUniformInfo(t){let e=[{id:Mh.RUNTIME_OPTIONS},{id:Mh.STATIC_OPTIONS}];return(t.getUniformList||Lh.getUniformList)().forEach((t=>{Object.values(Mh).includes(t)&&e.push({id:t})})),e}handleRuntimeUniforms(t,e){const{inputTextures:n,viewportDimensions:i}=t;let r=Array.isArray(n)?n:[n],o=[];(this.constructor.getUniformList||Lh.getUniformList)().forEach((t=>{switch(t){case Mh.FIRST_TEXTURE:this.uniforms[Mh.FIRST_TEXTURE].set(r[0]);break;case Mh.SECOND_TEXTURE:this.uniforms[Mh.SECOND_TEXTURE].set(r[1]);break;case Sh:o=[...o,r[0].getWidth(),r[0].getHeight()];break;case Ah:o=[...o,i.width,i.height];break;case Nh:{const t=Ch(e.startTime,e.duration);o=[...o,t];break}}})),o.length>0&&this.uniforms[Mh.RUNTIME_OPTIONS].set(o)}static getUniformList(){return[Mh.FIRST_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(){}handleAttributes(){this.attributes[Ph].fillBuffer(mh),this.attributes[Ph].setPointer(),this.attributes[Dh].fillBuffer(vh),this.attributes[Rh].fillBuffer(gh),this.attributes[Rh].setPointer()}disposeAttributes(){Object.values(this.attributes).forEach((t=>{t.dispose()}))}render(t,e){const n=this.frameBuffer.bind(t);let i={width:rh,height:oh};return this.gl.useProgram(this.program),this.rebindAttributesOnProgramSwitch&&this.gl.__shaderGraphLastProgram!==this.program&&(this.handleAttributes(),this.gl.__shaderGraphLastProgram=this.program),this.handleRuntimeUniforms({inputTextures:t,viewportDimensions:i},e),this.draw(),n}draw(){const t=this.gl.TRIANGLES,e=this.gl.UNSIGNED_SHORT;this.gl.drawElements(t,6,e,0)}updateStaticUniforms(t){this.gl.useProgram(this.program),this.handleStaticUniforms(t)}dispose(){this.gl.detachShader(this.program,this.vertexShader),this.gl.deleteShader(this.vertexShader),this.gl.detachShader(this.program,this.fragmentShader),this.gl.deleteShader(this.fragmentShader),this.gl.deleteProgram(this.program)}}class Bh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Bh)};super(Bh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // we need to flip y poisiton bacause webgl display the canvas\n // with 0,0 being the bottom left corner \n // insted of the traditional top left\n float flip_y_position = position_3d.y * (-1.0);\n vec4 normalize_poistion = vec4(position_3d.x, flip_y_position, position_3d.z, 1);\n \n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"__default"}static getInputsCount(){return 1}static getInitialOptions(){return{}}}var zh,Wh="undefined"!=typeof Float32Array?Float32Array:Array;function Uh(){var t=new Wh(3);return Wh!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function $h(t,e,n){var i=new Wh(3);return i[0]=t,i[1]=e,i[2]=n,i}function jh(){var t=new Wh(4);return Wh!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}Uh(),function(){var t;t=new Wh(4),Wh!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0)}(),Uh(),$h(1,0,0),$h(0,1,0),jh(),jh(),zh=new Wh(9),Wh!=Float32Array&&(zh[1]=0,zh[2]=0,zh[3]=0,zh[5]=0,zh[6]=0,zh[7]=0),zh[0]=1,zh[4]=1,zh[8]=1;class qh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(qh)};super(qh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform mat4 first_mat4;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xy, 1, 1);\n\n gl_Position = first_mat4 * normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n // gl_FragColor = vec4(256,0,0,1);\n}"},e,t)}static getFilterType(){return"transform"}static getInputsCount(){return 1}static getInitialOptions(){return{translate:{x:0,y:0},scale:{x:1,y:1},rotate:0}}getOptionsDisplay(){return[{properties:["translate","x"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:qh.getInitialOptions().translate.x},{properties:["translate","y"],type:"slider",minValue:-2,maxValue:2,step:.001,initialValue:qh.getInitialOptions().translate.y},{properties:["scale","x"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:qh.getInitialOptions().scale.x},{properties:["scale","y"],type:"slider",minValue:-10,maxValue:10,step:.001,initialValue:qh.getInitialOptions().scale.y},{properties:["rotate"],type:"slider",minValue:-360,maxValue:360,step:1,initialValue:qh.getInitialOptions().rotate}]}static getUniformList(){return[Mh.FIRST_TEXTURE,Mh.FIRST_MATRIX]}handleStaticUniforms(t){if(!t||!t.translate||!t.scale)throw new Error(`bad options object for Transform filter, check ${t}`);const e=Number.parseFloat(t.translate.x).toFixed(7),n=-1*Number.parseFloat(t.translate.y).toFixed(7),i=Number.parseFloat(t.scale.x).toFixed(7),r=Number.parseFloat(t.scale.y).toFixed(7),o=t.rotate||0;var s;this.transformMatrix=function(t,e,n,i){var r=e[0],o=e[1],s=e[2],a=e[3],l=r+r,c=o+o,u=s+s,d=r*l,h=r*c,f=r*u,p=o*c,m=o*u,v=s*u,g=a*l,y=a*c,b=a*u,k=i[0],x=i[1],w=i[2];return t[0]=(1-(p+v))*k,t[1]=(h+b)*k,t[2]=(f-y)*k,t[3]=0,t[4]=(h-b)*x,t[5]=(1-(d+v))*x,t[6]=(m+g)*x,t[7]=0,t[8]=(f+y)*w,t[9]=(m-g)*w,t[10]=(1-(d+p))*w,t[11]=0,t[12]=n[0],t[13]=n[1],t[14]=n[2],t[15]=1,t}((s=new Wh(16),Wh!=Float32Array&&(s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[11]=0,s[12]=0,s[13]=0,s[14]=0),s[0]=1,s[5]=1,s[10]=1,s[15]=1,s),function(t,e,n,i){var r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"zyx",o=Math.PI/360;e*=o,i*=o,n*=o;var s=Math.sin(e),a=Math.cos(e),l=Math.sin(n),c=Math.cos(n),u=Math.sin(i),d=Math.cos(i);switch(r){case"xyz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"xzy":t[0]=s*c*d-a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d+s*l*u;break;case"yxz":t[0]=s*c*d+a*l*u,t[1]=a*l*d-s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;case"yzx":t[0]=s*c*d+a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d-s*l*u;break;case"zxy":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u+s*l*d,t[3]=a*c*d-s*l*u;break;case"zyx":t[0]=s*c*d-a*l*u,t[1]=a*l*d+s*c*u,t[2]=a*c*u-s*l*d,t[3]=a*c*d+s*l*u;break;default:throw new Error("Unknown angle order "+r)}return t}(jh(),0,0,o),$h(e,n,0),$h(i,r,1)),this.uniforms[Mh.FIRST_MATRIX].set(this.transformMatrix)}}class Vh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Vh)};super(Vh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[0];\n float pixel_width = 1.0 / texture_width;\n\n \n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2(pixel_width * current_i, 0.0); \n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"horizontalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Mh.FIRST_TEXTURE,Sh]}}class Gh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Gh)};super(Gh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[2];\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\n\nvoid main() {\n vec2 normalize_poistion = vec2(position_3d.xy);\n gl_Position = vec4(normalize_poistion, 1, 1);\n\n float texture_width = runtimeOptions[1];\n float pixel_height = 1.0 / texture_width;\n\n for(int i=-5; i<5; ++i){\n float current_i = float(i);\n blur_texture_coordinate_2d[i+5] = texture_coordinate_2d + vec2( 0.0, pixel_height * current_i);\n }\n}\n",fragment:"\nprecision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 blur_texture_coordinate_2d[11];\n\nvoid main() {\n vec4 out_colour = vec4(0.0);\n\tout_colour += texture2D(first_texture, blur_texture_coordinate_2d[0]) * 0.0093;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[1]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[2]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[3]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[4]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[5]) * 0.198596;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[6]) * 0.175713;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[7]) * 0.121703;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[8]) * 0.065984;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[9]) * 0.028002;\n out_colour += texture2D(first_texture, blur_texture_coordinate_2d[10]) * 0.0093;\n \n \n gl_FragColor = out_colour;\n}"},e,t)}static getFilterType(){return"verticalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Mh.FIRST_TEXTURE,Sh]}}class Hh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Hh)};super(Hh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[3];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nconst float Depth = 3.;\nconst float Samples = 8.;\nfloat OffsetDist = staticOptions[0];\n\nvec2 srcDims = vec2(runtimeOptions[0], runtimeOptions[1]);\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\nvec2 iResolution = vpDims;\n\n\n#define TAU 6.28318530718\n\nvec4 RadialBlur(vec2 fragCoord, float radius) {\n if (radius <= 0.) {\n return texture2D(first_texture, fragCoord/iResolution.xy);\n }\n\n vec2 offset;\n float angle = 0.;\n vec4 color = vec4(0.);\n\n for(float angle = 0.; angle < TAU; angle += (TAU/Samples)) {\n offset = vec2(cos(angle), sin(angle)) * radius;\n color += texture2D(first_texture, (fragCoord + offset)/iResolution.xy);\n }\n\n return color/Samples;\n\n}\n\nvec4 FastBlur(vec2 fragCoord) {\n\n vec4 color;\n vec2 offset;\n float fib = 2.;\n float fibTotal = 0.;\n\n for(float i = 1.; i <= Depth; ++i) {\n fib += i;\n color += RadialBlur(fragCoord, i * OffsetDist)/ fib;\n fibTotal += 1./fib;\n }\n\n return color/fibTotal;\n\n}\n\n// based on https://www.shadertoy.com/view/3ljBDd\nvoid main() {\n// vec2 fragCoords = (vec2(current_texture_coordinate_2d) + 1.0) / 2.0 * vpDims;\n vec2 fragCoords = vec2(current_texture_coordinate_2d) * vpDims;\n gl_FragColor = FastBlur(fragCoords);\n}"},e,t)}static getFilterType(){return"fastBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Mh.FIRST_TEXTURE,Sh,Ah]}handleStaticUniforms(t){var e;const n=(null!==(e=Number.parseFloat(t.offsetDist))&&void 0!==e?e:4).toFixed(3);this.uniforms[Mh.STATIC_OPTIONS].set([n])}}class Kh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Kh)};super(Kh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[2];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n\n// A simple directional blur that doesn't brighten the image, based on https://www.shadertoy.com/view/WdSXWD\n// and https://www.shadertoy.com/view/NltSD4\n\nvec4 dirBlur() {\n float angle = staticOptions[0];\n float strength = staticOptions[1];\n if (strength == 0.0){\n return texture2D(first_texture, current_texture_coordinate_2d);\n }\n\n vec2 uv = current_texture_coordinate_2d;\n\n float r = radians(angle);\n vec2 direction = vec2(sin(r), cos(r));\n\n vec2 strengthDirection = strength * direction;\n vec3 acc = vec3(0);\n for(float i = -1.0; i <= 1.0; i += (2.0 / 50.0)) {\n acc += texture2D(first_texture, uv - vec2(strengthDirection.x * i, strengthDirection.y * i)).rgb * (2.0 / 50.0) * .5;\n }\n\n return vec4(acc, 1.0);\n\n}\n\nvoid main() {\n gl_FragColor = dirBlur();\n}"},e,t)}static getFilterType(){return"directionalBlur"}static getInputsCount(){return 1}static getInitialOptions(){return{}}static getUniformList(){return[Mh.FIRST_TEXTURE,Sh,Ah]}handleStaticUniforms(t){var e,n;const i=(null!==(e=Number.parseFloat(t.angle))&&void 0!==e?e:90).toFixed(3),r=(null!==(n=Number.parseFloat(t.strength))&&void 0!==n?n:.1).toFixed(3);this.uniforms[Mh.STATIC_OPTIONS].set([i,r])}}class Xh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Xh)};super(Xh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[1];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n float opacity = texture.w - (1.0 - staticOptions[0]);\n gl_FragColor = vec4((texture.xyz) , opacity);\n}"},e,t)}static getFilterType(){return"opacity"}static getInputsCount(){return 1}static getInitialOptions(){return{power:1}}getOptionsDisplay(){return[{properties:["power"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){const e=Number.parseFloat(t.power).toFixed(7);this.uniforms[Mh.STATIC_OPTIONS].set([e])}}class Yh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Yh)};super(Yh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nuniform float staticOptions[7];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 point, vec2 center, vec2 area, float radius) {\n return length(max(abs(point - center) - area + radius, 0.0)) - radius;\n}\n\nfloat boxSDF(vec2 point, vec2 center, vec2 area){\n vec2 d = abs(point - center) - area;\n return length(max(d,vec2(0)));\n}\n\n\nvoid main() {\n float type = staticOptions[0];\n vec2 aspectRatio = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n\n\n vec2 center = vec2(staticOptions[1], staticOptions[2]) * aspectRatio;\n vec2 area = max(vec2(staticOptions[3], staticOptions[4]) * aspectRatio, 0.0); \n float radius = staticOptions[5];\n\n vec2 SDF_PositionCoordinate2d = vec2(\n current_position_coordinate_2d.x,\n current_position_coordinate_2d.y * -1.0\n ) * aspectRatio;\n\n vec4 color1 = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color2 = texture2D(second_texture, current_texture_coordinate_2d);\n\n float dist;\n vec4 color;\n if(type == 0.0){\n dist = boxSDF(SDF_PositionCoordinate2d, center, area);\n color = (dist > 0.0) ? color2: color1;\n } else {\n dist = roundedBoxSDF(SDF_PositionCoordinate2d, center, area, radius);\n color = (dist > 0.0) ? color2: color1;\n color = mix( color, color2, 1.0-smoothstep(0.0,0.0025,abs(dist)));\n }\n \n gl_FragColor = color;\n}"},e,t)}static getFilterType(){return"shapeCompositeMask"}static getInputsCount(){return 2}static getInitialOptions(){return{type:"box",center:{x:0,y:0},area:{width:0,height:0},radius:.01,edgeSoftness:0}}getOptionsDisplay(){return[{properties:["center","x"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["center","y"],type:"slider",minValue:-1,maxValue:1,step:.001},{properties:["area","width"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["area","height"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["radius"],type:"slider",minValue:-2,maxValue:2,step:.001},{properties:["edgeSoftness"],type:"slider",minValue:-2,maxValue:2,step:.001}]}static getUniformList(){return[Mh.FIRST_TEXTURE,Sh,Mh.SECOND_TEXTURE]}handleStaticUniforms(t){let e;switch(t.type){case"box":e=0;break;case"rounded":e=1;break;default:throw new Error("cant recognize shape composite mask type")}const n=Number.parseFloat(t.center.x).toFixed(7);let i=Number.parseFloat(t.center.y).toFixed(7);i+=0;const r=Number.parseFloat(t.area.width).toFixed(7),o=Number.parseFloat(t.area.height).toFixed(7),s=Number.parseFloat(t.radius).toFixed(7),a=Number.parseFloat(t.edgeSoftness).toFixed(7);this.uniforms[Mh.STATIC_OPTIONS].set([e,n,i,r,o,s,a])}}class Qh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Qh)};super(Qh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 fgColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 bgColor = texture2D(second_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(\n mix(bgColor.xyz, fgColor.xyz, fgColor.w),\n 1.0\n );\n // vec4 fgColor = texture2D(textures[1], current_texture_coordinate_2d);\n // if(fgColor.w > 0.0){\n // gl_FragColor = vec4(1.0,0,0,1);\n // }else{\n // gl_FragColor = vec4(1.0,1.0,0,1);\n // }\n \n \n}"},e,t)}static getFilterType(){return"shapeComposite"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Mh.FIRST_TEXTURE,Mh.SECOND_TEXTURE]}}class Jh extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Jh)};super(Jh.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform sampler2D second_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n // Look it up in the LUT\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n\n mediump float blueColor = textureColor.b * 63.0;\n\n mediump vec2 quad1;\n quad1.y = floor(floor(blueColor) / 8.0);\n quad1.x = floor(blueColor) - (quad1.y * 8.0);\n\n mediump vec2 quad2;\n quad2.y = floor(ceil(blueColor) / 8.0);\n quad2.x = ceil(blueColor) - (quad2.y * 8.0);\n\n highp vec2 texPos1;\n texPos1.x = (quad1.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos1.y = (quad1.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n\n highp vec2 texPos2;\n texPos2.x = (quad2.x * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.r);\n texPos2.y = (quad2.y * 0.125) + 0.5/512.0 + ((0.125 - 1.0/512.0) * textureColor.g);\n\n lowp vec4 newColor1 = texture2D(second_texture, texPos1);\n lowp vec4 newColor2 = texture2D(second_texture, texPos2);\n\n lowp vec4 color = mix(newColor1, newColor2, fract(blueColor));\n\n gl_FragColor = color;\n\n // debug\n// if (current_texture_coordinate_2d.x < 0.5) {\n// // Left half: show original\n// gl_FragColor = textureColor;\n// } else {\n// gl_FragColor = color;\n// }\n}\n"},e,t)}static getFilterType(){return"lut"}static getInputsCount(){return 2}static getInitialOptions(){return{}}static getUniformList(){return[Mh.FIRST_TEXTURE,Mh.SECOND_TEXTURE]}getOptionsDisplay(){return[]}handleStaticUniforms(t){const e=Number.parseFloat(t.lutSize).toFixed(1);this.uniforms[Mh.STATIC_OPTIONS].set([e])}}var Zh="attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",tf='precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 256 * 4 length array with values for the master, r, g and b curve respectively\n// Temporarily changed length to 256 to avoid the following error on some machines:\n// "Implementation limit of 4096 (e.g., number of built-in plus user defined active uniforms components) exceeded, fragment shader uses 4100 total uniforms."\nuniform float staticOptions[256];\n\n\n// implementation of round (doesn\'t exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 256; k++) {\n if (k == round(pixelValue * 255.0)){\n v = float(staticOptions[k]) / 255.0;\n }\n }\n return v;\n}\n\nvec3 masterCurve(vec4 color){\n float r = getCurveValue(color.r);\n float g = getCurveValue(color.g);\n float b = getCurveValue(color.b);\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.g) * 256){\n// g = float(staticOptions[k]) / 256.0;\n// }\n// }\n// for (int k = 0; k < 256; ++k) {\n// if (k == int(color.b) * 256){\n// b = float(staticOptions[k]) / 256.0;\n// }\n// }\n return vec3(r,g,b);\n}\n\n//vec3 redCurve(vec3 color){\n// int offset = 256;\n// return vec3(staticOptions[int(int(color.r) + offset)], color.g, color.b);\n//}\n//\n//vec3 greenCurve(vec3 color){\n// int offset = 256 * 2;\n// return vec3(color.r, staticOptions[int(int(color.g) + offset)], color.b);\n//}\n//\n//vec3 blueCurve(vec3 color){\n// int offset = 256 * 3;\n// return vec3(color.r, color.g, staticOptions[int(int(color.b) + offset)]);\n//}\n\nvoid main() {\n// vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n// vec3 afterMaster = masterCurve(textureColor);\n// vec3 afterRed = redCurve(afterMaster);\n// vec3 afterGreen = greenCurve(afterRed);\n// vec3 afterBlue = blueCurve(afterGreen);\n// vec4 finalColor = vec4(afterBlue, textureColor.a);\n\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 afterMaster = masterCurve(textureColor);\n vec4 finalColor = vec4(afterMaster, textureColor.a);\n\n gl_FragColor = finalColor;\n}\n';const{abs:ef,cos:nf,sin:rf,acos:of,atan2:sf,sqrt:af,pow:lf}=Math;function cf(t){return t<0?-lf(-t,1/3):lf(t,1/3)}const uf=Math.PI,df=2*uf,hf=uf/2,ff=Number.MAX_SAFE_INTEGER||9007199254740991,pf=Number.MIN_SAFE_INTEGER||-9007199254740991,mf={x:0,y:0,z:0},vf={Tvalues:[-.06405689286260563,.06405689286260563,-.1911188674736163,.1911188674736163,-.3150426796961634,.3150426796961634,-.4337935076260451,.4337935076260451,-.5454214713888396,.5454214713888396,-.6480936519369755,.6480936519369755,-.7401241915785544,.7401241915785544,-.820001985973903,.820001985973903,-.8864155270044011,.8864155270044011,-.9382745520027328,.9382745520027328,-.9747285559713095,.9747285559713095,-.9951872199970213,.9951872199970213],Cvalues:[.12793819534675216,.12793819534675216,.1258374563468283,.1258374563468283,.12167047292780339,.12167047292780339,.1155056680537256,.1155056680537256,.10744427011596563,.10744427011596563,.09761865210411388,.09761865210411388,.08619016153195327,.08619016153195327,.0733464814110803,.0733464814110803,.05929858491543678,.05929858491543678,.04427743881741981,.04427743881741981,.028531388628933663,.028531388628933663,.0123412297999872,.0123412297999872],arcfn:function(t,e){const n=e(t);let i=n.x*n.x+n.y*n.y;return void 0!==n.z&&(i+=n.z*n.z),af(i)},compute:function(t,e,n){if(0===t)return e[0].t=0,e[0];const i=e.length-1;if(1===t)return e[i].t=1,e[i];const r=1-t;let o=e;if(0===i)return e[0].t=t,e[0];if(1===i){const e={x:r*o[0].x+t*o[1].x,y:r*o[0].y+t*o[1].y,t:t};return n&&(e.z=r*o[0].z+t*o[1].z),e}if(i<4){let e,s,a,l=r*r,c=t*t,u=0;2===i?(o=[o[0],o[1],o[2],mf],e=l,s=r*t*2,a=c):3===i&&(e=l*r,s=l*t*3,a=r*c*3,u=t*c);const d={x:e*o[0].x+s*o[1].x+a*o[2].x+u*o[3].x,y:e*o[0].y+s*o[1].y+a*o[2].y+u*o[3].y,t:t};return n&&(d.z=e*o[0].z+s*o[1].z+a*o[2].z+u*o[3].z),d}const s=JSON.parse(JSON.stringify(e));for(;s.length>1;){for(let e=0;e<s.length-1;e++)s[e]={x:s[e].x+(s[e+1].x-s[e].x)*t,y:s[e].y+(s[e+1].y-s[e].y)*t},void 0!==s[e].z&&(s[e].z=s[e].z+(s[e+1].z-s[e].z)*t);s.splice(s.length-1,1)}return s[0].t=t,s[0]},computeWithRatios:function(t,e,n,i){const r=1-t,o=n,s=e;let a,l=o[0],c=o[1],u=o[2],d=o[3];return l*=r,c*=t,2===s.length?(a=l+c,{x:(l*s[0].x+c*s[1].x)/a,y:(l*s[0].y+c*s[1].y)/a,z:!!i&&(l*s[0].z+c*s[1].z)/a,t:t}):(l*=r,c*=2*r,u*=t*t,3===s.length?(a=l+c+u,{x:(l*s[0].x+c*s[1].x+u*s[2].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z)/a,t:t}):(l*=r,c*=1.5*r,u*=3*r,d*=t*t*t,4===s.length?(a=l+c+u+d,{x:(l*s[0].x+c*s[1].x+u*s[2].x+d*s[3].x)/a,y:(l*s[0].y+c*s[1].y+u*s[2].y+d*s[3].y)/a,z:!!i&&(l*s[0].z+c*s[1].z+u*s[2].z+d*s[3].z)/a,t:t}):void 0))},derive:function(t,e){const n=[];for(let i=t,r=i.length,o=r-1;r>1;r--,o--){const t=[];for(let n,r=0;r<o;r++)n={x:o*(i[r+1].x-i[r].x),y:o*(i[r+1].y-i[r].y)},e&&(n.z=o*(i[r+1].z-i[r].z)),t.push(n);n.push(t),i=t}return n},between:function(t,e,n){return e<=t&&t<=n||vf.approximately(t,e)||vf.approximately(t,n)},approximately:function(t,e,n){return ef(t-e)<=(n||1e-6)},length:function(t){const e=vf.Tvalues.length;let n=0;for(let i,r=0;r<e;r++)i=.5*vf.Tvalues[r]+.5,n+=vf.Cvalues[r]*vf.arcfn(i,t);return.5*n},map:function(t,e,n,i,r){return i+(t-e)/(n-e)*(r-i)},lerp:function(t,e,n){const i={x:e.x+t*(n.x-e.x),y:e.y+t*(n.y-e.y)};return void 0!==e.z&&void 0!==n.z&&(i.z=e.z+t*(n.z-e.z)),i},pointToString:function(t){let e=t.x+"/"+t.y;return void 0!==t.z&&(e+="/"+t.z),e},pointsToString:function(t){return"["+t.map(vf.pointToString).join(", ")+"]"},copy:function(t){return JSON.parse(JSON.stringify(t))},angle:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-t.x,s=n.y-t.y;return sf(i*s-r*o,i*o+r*s)},round:function(t,e){const n=""+t,i=n.indexOf(".");return parseFloat(n.substring(0,i+1+e))},dist:function(t,e){const n=t.x-e.x,i=t.y-e.y;return af(n*n+i*i)},closest:function(t,e){let n,i,r=lf(2,63);return t.forEach((function(t,o){i=vf.dist(e,t),i<r&&(r=i,n=o)})),{mdist:r,mpos:n}},abcratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=lf(t,e)+lf(1-t,e);return ef((n-1)/n)},projectionratio:function(t,e){if(2!==e&&3!==e)return!1;if(void 0===t)t=.5;else if(0===t||1===t)return t;const n=lf(1-t,e);return n/(lf(t,e)+n)},lli8:function(t,e,n,i,r,o,s,a){const l=(t-n)*(o-a)-(e-i)*(r-s);return 0!=l&&{x:((t*i-e*n)*(r-s)-(t-n)*(r*a-o*s))/l,y:((t*i-e*n)*(o-a)-(e-i)*(r*a-o*s))/l}},lli4:function(t,e,n,i){const r=t.x,o=t.y,s=e.x,a=e.y,l=n.x,c=n.y,u=i.x,d=i.y;return vf.lli8(r,o,s,a,l,c,u,d)},lli:function(t,e){return vf.lli4(t,t.c,e,e.c)},makeline:function(t,e){return new Ef(t.x,t.y,(t.x+e.x)/2,(t.y+e.y)/2,e.x,e.y)},findbbox:function(t){let e=ff,n=ff,i=pf,r=pf;return t.forEach((function(t){const o=t.bbox();e>o.x.min&&(e=o.x.min),n>o.y.min&&(n=o.y.min),i<o.x.max&&(i=o.x.max),r<o.y.max&&(r=o.y.max)})),{x:{min:e,mid:(e+i)/2,max:i,size:i-e},y:{min:n,mid:(n+r)/2,max:r,size:r-n}}},shapeintersections:function(t,e,n,i,r){if(!vf.bboxoverlap(e,i))return[];const o=[],s=[t.startcap,t.forward,t.back,t.endcap],a=[n.startcap,n.forward,n.back,n.endcap];return s.forEach((function(e){e.virtual||a.forEach((function(i){if(i.virtual)return;const s=e.intersects(i,r);s.length>0&&(s.c1=e,s.c2=i,s.s1=t,s.s2=n,o.push(s))}))})),o},makeshape:function(t,e,n){const i=e.points.length,r=t.points.length,o=vf.makeline(e.points[i-1],t.points[0]),s=vf.makeline(t.points[r-1],e.points[0]),a={startcap:o,forward:t,back:e,endcap:s,bbox:vf.findbbox([o,t,e,s]),intersections:function(t){return vf.shapeintersections(a,a.bbox,t,t.bbox,n)}};return a},getminmax:function(t,e,n){if(!n)return{min:0,max:0};let i,r,o=ff,s=pf;-1===n.indexOf(0)&&(n=[0].concat(n)),-1===n.indexOf(1)&&n.push(1);for(let a=0,l=n.length;a<l;a++)i=n[a],r=t.get(i),r[e]<o&&(o=r[e]),r[e]>s&&(s=r[e]);return{min:o,mid:(o+s)/2,max:s,size:s-o}},align:function(t,e){const n=e.p1.x,i=e.p1.y,r=-sf(e.p2.y-i,e.p2.x-n);return t.map((function(t){return{x:(t.x-n)*nf(r)-(t.y-i)*rf(r),y:(t.x-n)*rf(r)+(t.y-i)*nf(r)}}))},roots:function(t,e){e=e||{p1:{x:0,y:0},p2:{x:1,y:0}};const n=t.length-1,i=vf.align(t,e),r=function(t){return 0<=t&&t<=1};if(2===n){const t=i[0].y,e=i[1].y,n=i[2].y,o=t-2*e+n;if(0!==o){const i=-af(e*e-t*n),s=-t+e;return[-(i+s)/o,-(-i+s)/o].filter(r)}return e!==n&&0===o?[(2*e-n)/(2*e-2*n)].filter(r):[]}const o=i[0].y,s=i[1].y,a=i[2].y;let l=3*s-o-3*a+i[3].y,c=3*o-6*s+3*a,u=-3*o+3*s,d=o;if(vf.approximately(l,0)){if(vf.approximately(c,0))return vf.approximately(u,0)?[]:[-d/u].filter(r);const t=af(u*u-4*c*d),e=2*c;return[(t-u)/e,(-u-t)/e].filter(r)}c/=l,u/=l,d/=l;const h=(3*u-c*c)/3,f=h/3,p=(2*c*c*c-9*c*u+27*d)/27,m=p/2,v=m*m+f*f*f;let g,y,b,k,x;if(v<0){const t=-h/3,e=af(t*t*t),n=-p/(2*e),i=of(n<-1?-1:n>1?1:n),o=2*cf(e);return b=o*nf(i/3)-c/3,k=o*nf((i+df)/3)-c/3,x=o*nf((i+2*df)/3)-c/3,[b,k,x].filter(r)}if(0===v)return g=m<0?cf(-m):-cf(m),b=2*g-c/3,k=-g-c/3,[b,k].filter(r);{const t=af(v);return g=cf(-m+t),y=cf(m+t),[g-y-c/3].filter(r)}},droots:function(t){if(3===t.length){const e=t[0],n=t[1],i=t[2],r=e-2*n+i;if(0!==r){const t=-af(n*n-e*i),o=-e+n;return[-(t+o)/r,-(-t+o)/r]}return n!==i&&0===r?[(2*n-i)/(2*(n-i))]:[]}if(2===t.length){const e=t[0],n=t[1];return e!==n?[e/(e-n)]:[]}return[]},curvature:function(t,e,n,i,r){let o,s,a,l,c=0,u=0;const d=vf.compute(t,e),h=vf.compute(t,n),f=d.x*d.x+d.y*d.y;if(i?(o=af(lf(d.y*h.z-h.y*d.z,2)+lf(d.z*h.x-h.z*d.x,2)+lf(d.x*h.y-h.x*d.y,2)),s=lf(f+d.z*d.z,1.5)):(o=d.x*h.y-d.y*h.x,s=lf(f,1.5)),0===o||0===s)return{k:0,r:0};if(c=o/s,u=s/o,!r){const r=vf.curvature(t-.001,e,n,i,!0).k,o=vf.curvature(t+.001,e,n,i,!0).k;l=(o-c+(c-r))/2,a=(ef(o-c)+ef(c-r))/2}return{k:c,r:u,dk:l,adk:a}},inflections:function(t){if(t.length<4)return[];const e=vf.align(t,{p1:t[0],p2:t.slice(-1)[0]}),n=e[2].x*e[1].y,i=e[3].x*e[1].y,r=e[1].x*e[2].y,o=18*(-3*n+2*i+3*r-e[3].x*e[2].y),s=18*(3*n-i-3*r),a=18*(r-n);if(vf.approximately(o,0)){if(!vf.approximately(s,0)){let t=-a/s;if(0<=t&&t<=1)return[t]}return[]}const l=2*o;if(vf.approximately(l,0))return[];const c=s*s-4*o*a;if(c<0)return[];const u=Math.sqrt(c);return[(u-s)/l,-(s+u)/l].filter((function(t){return 0<=t&&t<=1}))},bboxoverlap:function(t,e){const n=["x","y"],i=n.length;for(let r,o,s,a,l=0;l<i;l++)if(r=n[l],o=t[r].mid,s=e[r].mid,a=(t[r].size+e[r].size)/2,ef(o-s)>=a)return!1;return!0},expandbox:function(t,e){e.x.min<t.x.min&&(t.x.min=e.x.min),e.y.min<t.y.min&&(t.y.min=e.y.min),e.z&&e.z.min<t.z.min&&(t.z.min=e.z.min),e.x.max>t.x.max&&(t.x.max=e.x.max),e.y.max>t.y.max&&(t.y.max=e.y.max),e.z&&e.z.max>t.z.max&&(t.z.max=e.z.max),t.x.mid=(t.x.min+t.x.max)/2,t.y.mid=(t.y.min+t.y.max)/2,t.z&&(t.z.mid=(t.z.min+t.z.max)/2),t.x.size=t.x.max-t.x.min,t.y.size=t.y.max-t.y.min,t.z&&(t.z.size=t.z.max-t.z.min)},pairiteration:function(t,e,n){const i=t.bbox(),r=e.bbox(),o=1e5,s=n||.5;if(i.x.size+i.y.size<s&&r.x.size+r.y.size<s)return[(o*(t._t1+t._t2)/2|0)/o+"/"+(o*(e._t1+e._t2)/2|0)/o];let a=t.split(.5),l=e.split(.5),c=[{left:a.left,right:l.left},{left:a.left,right:l.right},{left:a.right,right:l.right},{left:a.right,right:l.left}];c=c.filter((function(t){return vf.bboxoverlap(t.left.bbox(),t.right.bbox())}));let u=[];return 0===c.length||(c.forEach((function(t){u=u.concat(vf.pairiteration(t.left,t.right,s))})),u=u.filter((function(t,e){return u.indexOf(t)===e}))),u},getccenter:function(t,e,n){const i=e.x-t.x,r=e.y-t.y,o=n.x-e.x,s=n.y-e.y,a=i*nf(hf)-r*rf(hf),l=i*rf(hf)+r*nf(hf),c=o*nf(hf)-s*rf(hf),u=o*rf(hf)+s*nf(hf),d=(t.x+e.x)/2,h=(t.y+e.y)/2,f=(e.x+n.x)/2,p=(e.y+n.y)/2,m=d+a,v=h+l,g=f+c,y=p+u,b=vf.lli8(d,h,m,v,f,p,g,y),k=vf.dist(b,t);let x,w=sf(t.y-b.y,t.x-b.x),_=sf(e.y-b.y,e.x-b.x),T=sf(n.y-b.y,n.x-b.x);return w<T?((w>_||_>T)&&(w+=df),w>T&&(x=T,T=w,w=x)):T<_&&_<w?(x=T,T=w,w=x):T+=df,b.s=w,b.e=T,b.r=k,b},numberSort:function(t,e){return t-e}};class gf{constructor(t){this.curves=[],this._3d=!1,t&&(this.curves=t,this._3d=this.curves[0]._3d)}valueOf(){return this.toString()}toString(){return"["+this.curves.map((function(t){return vf.pointsToString(t.points)})).join(", ")+"]"}addCurve(t){this.curves.push(t),this._3d=this._3d||t._3d}length(){return this.curves.map((function(t){return t.length()})).reduce((function(t,e){return t+e}))}curve(t){return this.curves[t]}bbox(){const t=this.curves;for(var e=t[0].bbox(),n=1;n<t.length;n++)vf.expandbox(e,t[n].bbox());return e}offset(t){const e=[];return this.curves.forEach((function(n){e.push(...n.offset(t))})),new gf(e)}}const{abs:yf,min:bf,max:kf,cos:xf,sin:wf,acos:_f,sqrt:Tf}=Math,If=Math.PI;let Ef=class e{constructor(t){let e=t&&t.forEach?t:Array.from(arguments).slice(),n=!1;if("object"==typeof e[0]){n=e.length;const t=[];e.forEach((function(e){["x","y","z"].forEach((function(n){void 0!==e[n]&&t.push(e[n])}))})),e=t}let i=!1;const r=e.length;if(n){if(n>4){if(1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");i=!0}}else if(6!==r&&8!==r&&9!==r&&12!==r&&1!==arguments.length)throw new Error("Only new Bezier(point[]) is accepted for 4th and higher order curves");const o=this._3d=!i&&(9===r||12===r)||t&&t[0]&&void 0!==t[0].z,s=this.points=[];for(let t=0,n=o?3:2;t<r;t+=n){var a={x:e[t],y:e[t+1]};o&&(a.z=e[t+2]),s.push(a)}const l=this.order=s.length-1,c=this.dims=["x","y"];o&&c.push("z"),this.dimlen=c.length;const u=vf.align(s,{p1:s[0],p2:s[l]}),d=vf.dist(s[0],s[l]);this._linear=u.reduce(((t,e)=>t+yf(e.y)),0)<d/50,this._lut=[],this._t1=0,this._t2=1,this.update()}static quadraticFromPoints(t,n,i,r){if(void 0===r&&(r=.5),0===r)return new e(n,n,i);if(1===r)return new e(t,n,n);const o=e.getABC(2,t,n,i,r);return new e(t,o.A,i)}static cubicFromPoints(t,n,i,r,o){void 0===r&&(r=.5);const s=e.getABC(3,t,n,i,r);void 0===o&&(o=vf.dist(n,s.C));const a=o*(1-r)/r,l=vf.dist(t,i),c=(i.x-t.x)/l,u=(i.y-t.y)/l,d=o*c,h=o*u,f=a*c,p=a*u,m=n.x-d,v=n.y-h,g=n.x+f,y=n.y+p,b=s.A,k=b.x+(m-b.x)/(1-r),x=b.y+(v-b.y)/(1-r),w=b.x+(g-b.x)/r,_=b.y+(y-b.y)/r,T={x:t.x+(k-t.x)/r,y:t.y+(x-t.y)/r},I={x:i.x+(w-i.x)/(1-r),y:i.y+(_-i.y)/(1-r)};return new e(t,T,I,i)}static getUtils(){return vf}getUtils(){return e.getUtils()}static get PolyBezier(){return gf}valueOf(){return this.toString()}toString(){return vf.pointsToString(this.points)}toSVG(){if(this._3d)return!1;const t=this.points,e=["M",t[0].x,t[0].y,2===this.order?"Q":"C"];for(let n=1,i=t.length;n<i;n++)e.push(t[n].x),e.push(t[n].y);return e.join(" ")}setRatios(t){if(t.length!==this.points.length)throw new Error("incorrect number of ratio values");this.ratios=t,this._lut=[]}verify(){const t=this.coordDigest();t!==this._print&&(this._print=t,this.update())}coordDigest(){return this.points.map((function(t,e){return""+e+t.x+t.y+(t.z?t.z:0)})).join("")}update(){this._lut=[],this.dpoints=vf.derive(this.points,this._3d),this.computedirection()}computedirection(){const t=this.points,e=vf.angle(t[0],t[this.order],t[1]);this.clockwise=e>0}length(){return vf.length(this.derivative.bind(this))}static getABC(t=2,e,n,i,r=.5){const o=vf.projectionratio(r,t),s=1-o,a={x:o*e.x+s*i.x,y:o*e.y+s*i.y},l=vf.abcratio(r,t);return{A:{x:n.x+(n.x-a.x)/l,y:n.y+(n.y-a.y)/l},B:n,C:a,S:e,E:i}}getABC(t,n){n=n||this.get(t);let i=this.points[0],r=this.points[this.order];return e.getABC(this.order,i,n,r,t)}getLUT(t){if(this.verify(),t=t||100,this._lut.length===t+1)return this._lut;this._lut=[],t++,this._lut=[];for(let e,n,i=0;i<t;i++)n=i/(t-1),e=this.compute(n),e.t=n,this._lut.push(e);return this._lut}on(e,n){n=n||5;const i=this.getLUT(),r=[];for(let t,o=0,s=0;o<i.length;o++)t=i[o],vf.dist(t,e)<n&&(r.push(t),s+=o/i.length);return!!r.length&&(t/=r.length)}project(t){const e=this.getLUT(),n=e.length-1,i=vf.closest(e,t),r=i.mpos,o=(r-1)/n,s=(r+1)/n,a=.1/n;let l,c=i.mdist,u=o,d=u;c+=1;for(let e;u<s+a;u+=a)l=this.compute(u),e=vf.dist(t,l),e<c&&(c=e,d=u);return d=d<0?0:d>1?1:d,l=this.compute(d),l.t=d,l.d=c,l}get(t){return this.compute(t)}point(t){return this.points[t]}compute(t){return this.ratios?vf.computeWithRatios(t,this.points,this.ratios,this._3d):vf.compute(t,this.points,this._3d,this.ratios)}raise(){const t=this.points,n=[t[0]],i=t.length;for(let e,r,o=1;o<i;o++)e=t[o],r=t[o-1],n[o]={x:(i-o)/i*e.x+o/i*r.x,y:(i-o)/i*e.y+o/i*r.y};return n[i]=t[i-1],new e(n)}derivative(t){return vf.compute(t,this.dpoints[0],this._3d)}dderivative(t){return vf.compute(t,this.dpoints[1],this._3d)}align(){let t=this.points;return new e(vf.align(t,{p1:t[0],p2:t[t.length-1]}))}curvature(t){return vf.curvature(t,this.dpoints[0],this.dpoints[1],this._3d)}inflections(){return vf.inflections(this.points)}normal(t){return this._3d?this.__normal3(t):this.__normal2(t)}__normal2(t){const e=this.derivative(t),n=Tf(e.x*e.x+e.y*e.y);return{t:t,x:-e.y/n,y:e.x/n}}__normal3(t){const e=this.derivative(t),n=this.derivative(t+.01),i=Tf(e.x*e.x+e.y*e.y+e.z*e.z),r=Tf(n.x*n.x+n.y*n.y+n.z*n.z);e.x/=i,e.y/=i,e.z/=i,n.x/=r,n.y/=r,n.z/=r;const o={x:n.y*e.z-n.z*e.y,y:n.z*e.x-n.x*e.z,z:n.x*e.y-n.y*e.x},s=Tf(o.x*o.x+o.y*o.y+o.z*o.z);o.x/=s,o.y/=s,o.z/=s;const a=[o.x*o.x,o.x*o.y-o.z,o.x*o.z+o.y,o.x*o.y+o.z,o.y*o.y,o.y*o.z-o.x,o.x*o.z-o.y,o.y*o.z+o.x,o.z*o.z];return{t:t,x:a[0]*e.x+a[1]*e.y+a[2]*e.z,y:a[3]*e.x+a[4]*e.y+a[5]*e.z,z:a[6]*e.x+a[7]*e.y+a[8]*e.z}}hull(t){let e=this.points,n=[],i=[],r=0;for(i[r++]=e[0],i[r++]=e[1],i[r++]=e[2],3===this.order&&(i[r++]=e[3]);e.length>1;){n=[];for(let o,s=0,a=e.length-1;s<a;s++)o=vf.lerp(t,e[s],e[s+1]),i[r++]=o,n.push(o);e=n}return i}split(t,n){if(0===t&&n)return this.split(n).left;if(1===n)return this.split(t).right;const i=this.hull(t),r={left:2===this.order?new e([i[0],i[3],i[5]]):new e([i[0],i[4],i[7],i[9]]),right:2===this.order?new e([i[5],i[4],i[2]]):new e([i[9],i[8],i[6],i[3]]),span:i};return r.left._t1=vf.map(0,0,1,this._t1,this._t2),r.left._t2=vf.map(t,0,1,this._t1,this._t2),r.right._t1=vf.map(t,0,1,this._t1,this._t2),r.right._t2=vf.map(1,0,1,this._t1,this._t2),n?(n=vf.map(n,t,1,0,1),r.right.split(n).left):r}extrema(){const t={};let e=[];return this.dims.forEach(function(n){let i=function(t){return t[n]},r=this.dpoints[0].map(i);t[n]=vf.droots(r),3===this.order&&(r=this.dpoints[1].map(i),t[n]=t[n].concat(vf.droots(r))),t[n]=t[n].filter((function(t){return t>=0&&t<=1})),e=e.concat(t[n].sort(vf.numberSort))}.bind(this)),t.values=e.sort(vf.numberSort).filter((function(t,n){return e.indexOf(t)===n})),t}bbox(){const t=this.extrema(),e={};return this.dims.forEach(function(n){e[n]=vf.getminmax(this,n,t[n])}.bind(this)),e}overlaps(t){const e=this.bbox(),n=t.bbox();return vf.bboxoverlap(e,n)}offset(t,n){if(void 0!==n){const e=this.get(t),i=this.normal(t),r={c:e,n:i,x:e.x+i.x*n,y:e.y+i.y*n};return this._3d&&(r.z=e.z+i.z*n),r}if(this._linear){const n=this.normal(0),i=this.points.map((function(e){const i={x:e.x+t*n.x,y:e.y+t*n.y};return e.z&&n.z&&(i.z=e.z+t*n.z),i}));return[new e(i)]}return this.reduce().map((function(e){return e._linear?e.offset(t)[0]:e.scale(t)}))}simple(){if(3===this.order){const t=vf.angle(this.points[0],this.points[3],this.points[1]),e=vf.angle(this.points[0],this.points[3],this.points[2]);if(t>0&&e<0||t<0&&e>0)return!1}const t=this.normal(0),e=this.normal(1);let n=t.x*e.x+t.y*e.y;return this._3d&&(n+=t.z*e.z),yf(_f(n))<If/3}reduce(){let t,e,n=0,i=0,r=.01,o=[],s=[],a=this.extrema().values;for(-1===a.indexOf(0)&&(a=[0].concat(a)),-1===a.indexOf(1)&&a.push(1),n=a[0],t=1;t<a.length;t++)i=a[t],e=this.split(n,i),e._t1=n,e._t2=i,o.push(e),n=i;return o.forEach((function(t){for(n=0,i=0;i<=1;)for(i=n+r;i<=1.01;i+=r)if(e=t.split(n,i),!e.simple()){if(i-=r,yf(n-i)<r)return[];e=t.split(n,i),e._t1=vf.map(n,0,1,t._t1,t._t2),e._t2=vf.map(i,0,1,t._t1,t._t2),s.push(e),n=i;break}n<1&&(e=t.split(n,1),e._t1=vf.map(n,0,1,t._t1,t._t2),e._t2=t._t2,s.push(e))})),s}translate(t,n,i){i="number"==typeof i?i:n;const r=this.order;let o=this.points.map(((t,e)=>(1-e/r)*n+e/r*i));return new e(this.points.map(((e,n)=>({x:e.x+t.x*o[n],y:e.y+t.y*o[n]}))))}scale(t){const n=this.order;let i=!1;if("function"==typeof t&&(i=t),i&&2===n)return this.raise().scale(i);const r=this.clockwise,o=this.points;if(this._linear)return this.translate(this.normal(0),i?i(0):t,i?i(1):t);const s=i?i(0):t,a=i?i(1):t,l=[this.offset(0,10),this.offset(1,10)],c=[],u=vf.lli4(l[0],l[0].c,l[1],l[1].c);if(!u)throw new Error("cannot scale this curve. Try reducing it first.");return[0,1].forEach((function(t){const e=c[t*n]=vf.copy(o[t*n]);e.x+=(t?a:s)*l[t].n.x,e.y+=(t?a:s)*l[t].n.y})),i?([0,1].forEach((function(e){if(2!==n||!e){var s=o[e+1],a={x:s.x-u.x,y:s.y-u.y},l=i?i((e+1)/n):t;i&&!r&&(l=-l);var d=Tf(a.x*a.x+a.y*a.y);a.x/=d,a.y/=d,c[e+1]={x:s.x+l*a.x,y:s.y+l*a.y}}})),new e(c)):([0,1].forEach((t=>{if(2===n&&t)return;const e=c[t*n],i=this.derivative(t),r={x:e.x+i.x,y:e.y+i.y};c[t+1]=vf.lli4(e,r,u,o[t+1])})),new e(c))}outline(t,n,i,r){if(n=void 0===n?t:n,this._linear){const o=this.normal(0),s=this.points[0],a=this.points[this.points.length-1];let l,c,u;void 0===i&&(i=t,r=n),l={x:s.x+o.x*t,y:s.y+o.y*t},u={x:a.x+o.x*i,y:a.y+o.y*i},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const d=[l,c,u];l={x:s.x-o.x*n,y:s.y-o.y*n},u={x:a.x-o.x*r,y:a.y-o.y*r},c={x:(l.x+u.x)/2,y:(l.y+u.y)/2};const h=[u,c,l],f=vf.makeline(h[2],d[0]),p=vf.makeline(d[2],h[0]),m=[f,new e(d),p,new e(h)];return new gf(m)}const o=this.reduce(),s=o.length,a=[];let l,c=[],u=0,d=this.length();const h=void 0!==i&&void 0!==r;function f(t,e,n,i,r){return function(o){const s=i/n,a=(i+r)/n,l=e-t;return vf.map(o,0,1,t+s*l,t+a*l)}}o.forEach((function(e){const o=e.length();h?(a.push(e.scale(f(t,i,d,u,o))),c.push(e.scale(f(-n,-r,d,u,o)))):(a.push(e.scale(t)),c.push(e.scale(-n))),u+=o})),c=c.map((function(t){return l=t.points,l[3]?t.points=[l[3],l[2],l[1],l[0]]:t.points=[l[2],l[1],l[0]],t})).reverse();const p=a[0].points[0],m=a[s-1].points[a[s-1].points.length-1],v=c[s-1].points[c[s-1].points.length-1],g=c[0].points[0],y=vf.makeline(v,p),b=vf.makeline(m,g),k=[y].concat(a).concat([b]).concat(c);return new gf(k)}outlineshapes(t,e,n){e=e||t;const i=this.outline(t,e).curves,r=[];for(let t=1,e=i.length;t<e/2;t++){const o=vf.makeshape(i[t],i[e-t],n);o.startcap.virtual=t>1,o.endcap.virtual=t<e/2-1,r.push(o)}return r}intersects(t,n){return t?t.p1&&t.p2?this.lineIntersects(t):(t instanceof e&&(t=t.reduce()),this.curveintersects(this.reduce(),t,n)):this.selfintersects(n)}lineIntersects(t){const e=bf(t.p1.x,t.p2.x),n=bf(t.p1.y,t.p2.y),i=kf(t.p1.x,t.p2.x),r=kf(t.p1.y,t.p2.y);return vf.roots(this.points,t).filter((t=>{var o=this.get(t);return vf.between(o.x,e,i)&&vf.between(o.y,n,r)}))}selfintersects(t){const e=this.reduce(),n=e.length-2,i=[];for(let r,o,s,a=0;a<n;a++)o=e.slice(a,a+1),s=e.slice(a+2),r=this.curveintersects(o,s,t),i.push(...r);return i}curveintersects(t,e,n){const i=[];t.forEach((function(t){e.forEach((function(e){t.overlaps(e)&&i.push({left:t,right:e})}))}));let r=[];return i.forEach((function(t){const e=vf.pairiteration(t.left,t.right,n);e.length>0&&(r=r.concat(e))})),r}arcs(t){return t=t||.5,this._iterate(t,[])}_error(t,e,n,i){const r=(i-n)/4,o=this.get(n+r),s=this.get(i-r),a=vf.dist(t,e),l=vf.dist(t,o),c=vf.dist(t,s);return yf(l-a)+yf(c-a)}_iterate(t,e){let n,i=0,r=1;do{n=0,r=1;let o,s,a,l,c,u=this.get(i),d=!1,h=!1,f=r,p=1;do{if(h=d,l=a,f=(i+r)/2,o=this.get(f),s=this.get(r),a=vf.getccenter(u,o,s),a.interval={start:i,end:r},d=this._error(a,u,i,r)<=t,c=h&&!d,c||(p=r),d){if(r>=1){if(a.interval.end=p=1,l=a,r>1){let t={x:a.x+a.r*xf(a.e),y:a.y+a.r*wf(a.e)};a.e+=vf.angle({x:a.x,y:a.y},t,this.get(1))}break}r+=(r-i)/2}else r=f}while(!c&&n++<100);if(n>=100)break;l=l||a,e.push(l),i=p}while(r<1);return e}};var Sf={pointsToCurve:function(t,e){let n=1/e;if(0===t.length){let t=[];for(let i=0;i<e;i++){let e=i*n;t.push({x:e,y:.5})}return t}if(1===t.length){let i=t[0].y,r=[{x:0,y:i}];for(let t=0;t<e;t++){let e=t*n+n;r.push({x:e,y:i})}return r}let i=[],r=t[0],o=t[t.length-1],s=new Ef({x:o.x-1,y:o.y},{x:o.x-1+(r.x-(o.x-1))/2,y:o.y},{x:r.x-(r.x-(o.x-1))/2,y:r.y},r),a=new Ef(o,{x:o.x+(r.x+1-o.x)/2,y:o.y},{x:r.x+1-(r.x+1-o.x)/2,y:r.y},{x:r.x+1,y:r.y});for(let e=0;e<t.length-1;e++){let n=t[e],r=t[e+1],o={x:n.x+(r.x-n.x)/2,y:n.y},s={x:r.x-(r.x-n.x)/2,y:r.y},a=new Ef(n,o,s,r);i.push(a)}i.unshift(s),i.push(a);let l=[s.get(s.intersects({p1:{x:0,y:0},p2:{x:0,y:1}})[0])];for(let t=0;t<e;t++){let e,r=t*n+n;i.every((t=>{let n=t.intersects({p1:{x:r,y:0},p2:{x:r,y:1}});return!(n.length>0&&(e=t.get(n[0]),l.push(e),1))}))}return l}};class Af{constructor(t,e){this.xs=t,this.ys=e,this.ks=this.getNaturalKs(new Float64Array(this.xs.length))}getNaturalKs(t){const e=this.xs.length-1,n=function(t,e){const n=[];for(let i=0;i<t;i++)n.push(new Float64Array(e));return n}(e+1,e+2);for(let t=1;t<e;t++)n[t][t-1]=1/(this.xs[t]-this.xs[t-1]),n[t][t]=2*(1/(this.xs[t]-this.xs[t-1])+1/(this.xs[t+1]-this.xs[t])),n[t][t+1]=1/(this.xs[t+1]-this.xs[t]),n[t][e+1]=3*((this.ys[t]-this.ys[t-1])/((this.xs[t]-this.xs[t-1])*(this.xs[t]-this.xs[t-1]))+(this.ys[t+1]-this.ys[t])/((this.xs[t+1]-this.xs[t])*(this.xs[t+1]-this.xs[t])));return n[0][0]=2/(this.xs[1]-this.xs[0]),n[0][1]=1/(this.xs[1]-this.xs[0]),n[0][e+1]=3*(this.ys[1]-this.ys[0])/((this.xs[1]-this.xs[0])*(this.xs[1]-this.xs[0])),n[e][e-1]=1/(this.xs[e]-this.xs[e-1]),n[e][e]=2/(this.xs[e]-this.xs[e-1]),n[e][e+1]=3*(this.ys[e]-this.ys[e-1])/((this.xs[e]-this.xs[e-1])*(this.xs[e]-this.xs[e-1])),function(t,e){const n=t.length;let i=0,r=0;for(;i<n&&r<=n;){let e=0,o=-1/0;for(let s=i;s<n;s++){const n=Math.abs(t[s][r]);n>o&&(e=s,o=n)}if(0===t[e][r])r++;else{Nf(t,i,e);for(let e=i+1;e<n;e++){const o=t[e][r]/t[i][r];t[e][r]=0;for(let s=r+1;s<=n;s++)t[e][s]-=t[i][s]*o}i++,r++}}for(let i=n-1;i>=0;i--){var o=0;t[i][i]&&(o=t[i][n]/t[i][i]),e[i]=o;for(let e=i-1;e>=0;e--)t[e][n]-=t[e][i]*o,t[e][i]=0}return e}(n,t)}getIndexBefore(t){let e=0,n=this.xs.length,i=0;for(;e<n;)i=Math.floor((e+n)/2),this.xs[i]<t&&i!==e?e=i:n=this.xs[i]>=t&&i!==n?i:e;return e===this.xs.length-1?this.xs.length-1:e+1}at(t){let e=this.getIndexBefore(t);const n=(t-this.xs[e-1])/(this.xs[e]-this.xs[e-1]),i=this.ks[e-1]*(this.xs[e]-this.xs[e-1])-(this.ys[e]-this.ys[e-1]),r=-this.ks[e]*(this.xs[e]-this.xs[e-1])+(this.ys[e]-this.ys[e-1]);return(1-n)*this.ys[e-1]+n*this.ys[e]+n*(1-n)*(i*(1-n)+r*n)}}function Nf(t,e,n){let i=t[e];t[e]=t[n],t[n]=i}function Mf(t,e,n){const i=n[0],r=n[n.length-1];if(t<i.x)return i.y;if(t>r.x)return r.y;const o=e.at(t);return Math.max(0,Math.min(o,1))}var Ff={pointsToCurve:function(t,e){if(!Array.isArray(t)||!t.every((t=>"object"==typeof t&&"number"==typeof t.x&&"number"==typeof t.y&&t.x>=0&&t.x<=1&&t.y>=0&&t.y<=1)))throw new Error("[pointsToCurve] Invalid points. Expected array of objects with x and y in [0, 1] range.");if(!("number"==typeof e&&e>=1))throw new Error(`[pointsToCurve] Invalid resolution: ${e}. Expected integer >= 1.`);const n=t.map((t=>t.x)),i=t.map((t=>t.y)),r=new Af(n,i);let o=[];for(let n=0;n<e;n++)o.push(Mf(n/(e-1),r,t));return o}};function Of(t,e=256,n={}){return"bezier"===n.type?Sf.pointsToCurve(t,e,n):Ff.pointsToCurve(t,e)}const Cf=[];for(let t=0;t<256;t++)Cf[t]=t;class Pf extends Lh{constructor(t){const e={vertex:Zh,fragment:tf},n={uniforms:Lh.getUniformInfo(Pf)};super(Pf.getFilterType(),e,n,t)}static getFilterType(){return"curves"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[];var n;e=[...t.master||t.points||t.masterPoints?t.master||(n=t.points||t.masterPoints,Of(n,256).map((t=>255*t))):Cf],this.uniforms[Mh.STATIC_OPTIONS].set(e)}}function Df(t,e,n){if("number"!=typeof t||t<0||t>255)throw new Error(`[levels] Invalid black point: ${t}. Expected integer between 0 and 255`);if("number"!=typeof e||e<0||e>255)throw new Error(`[levels] Invalid white point: ${e}. Expected integer between 0 and 255`);if("number"!=typeof n||n<.01||n>9.99)throw new Error(`[levels] Invalid gamma: ${n}. Expected float between 0.01 and 9.99`);if(t>e)throw new Error(`[levels] Invalid black and white points: ${t}, ${e}. Expected black <= white`);let i=[];for(let r=0;r<256;r++){let o;o=r<=t?0:r>=e?255:255*Math.pow((r-t)/(e-t),1/n),i[r]=o}return i}class Rf extends Lh{constructor(t){const e={vertex:Zh,fragment:tf},n={uniforms:Lh.getUniformInfo(Rf)};super(Rf.getFilterType(),e,n,t)}static getFilterType(){return"levels"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=[...Df(t.black,t.white,t.gamma)];this.uniforms[Mh.STATIC_OPTIONS].set(e)}}const Lf=360,Bf=[];for(let t=0;t<Lf;t++)Bf[t]=t;class zf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(zf)};super(zf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n// a 360 length array with values for the hue curve\n// this represents a lookup table from a hue value to another hue value\nuniform float staticOptions[360];\n\n// implementation of round (doesn't exist in webgl)\nint round(float val){\n return int(floor(val + 0.5));\n}\n\n// glsl mod doesn't work with negative numbers so\n// this is a safer version that lets us play with negatives > -1.0\nfloat safeMod(float val){\n return mod(val + 1.0, 1.0);\n}\n\n// no dynamic array indexes in webgl\n// see https://stackoverflow.com/questions/30585265/what-can-i-use-as-an-array-index-in-glsl-in-webgl\nfloat getCurveValue(float pixelValue){\n float v;\n for (int k = 0; k < 360; k++) {\n if (k == round(pixelValue * 359.0)){\n v = float(staticOptions[k]) / 359.0;\n }\n }\n return v;\n}\n\n// function source https://www.shadertoy.com/view/4dKcWK\nconst float EPSILON = 1e-10;\n\nvec3 HUEtoRGB(in float hue) {\n // Hue [0..1] to RGB [0..1]\n // See http://www.chilliant.com/rgb2hsv.html\n vec3 rgb = abs(hue * 6. - vec3(3, 2, 4)) * vec3(1, -1, -1) + vec3(-1, 2, 2);\n return clamp(rgb, 0., 1.);\n}\n\nvec3 RGBtoHCV(in vec3 rgb) {\n // RGB [0..1] to Hue-Chroma-Value [0..1]\n // Based on work by Sam Hocevar and Emil Persson\n vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1., 2. / 3.) : vec4(rgb.gb, 0., -1. / 3.);\n vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);\n float c = q.x - min(q.w, q.y);\n float h = abs((q.w - q.y) / (6. * c + EPSILON) + q.z);\n return vec3(h, c, q.x);\n}\n\nvec3 HSVtoRGB(in vec3 hsv) {\n // Hue-Saturation-Value [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsv.x);\n return ((rgb - 1.) * hsv.y + 1.) * hsv.z;\n}\n\nvec3 HSLtoRGB(in vec3 hsl) {\n // Hue-Saturation-Lightness [0..1] to RGB [0..1]\n vec3 rgb = HUEtoRGB(hsl.x);\n float c = (1. - abs(2. * hsl.z - 1.)) * hsl.y;\n return (rgb - 0.5) * c + hsl.z;\n}\n\nvec3 RGBtoHSV(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Value [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float s = hcv.y / (hcv.z + EPSILON);\n return vec3(hcv.x, s, hcv.z);\n}\n\nvec3 RGBtoHSL(in vec3 rgb) {\n // RGB [0..1] to Hue-Saturation-Lightness [0..1]\n vec3 hcv = RGBtoHCV(rgb);\n float z = hcv.z - hcv.y * 0.5;\n float s = hcv.y / (1. - abs(z * 2. - 1.) + EPSILON);\n return vec3(hcv.x, s, z);\n}\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n vec3 inHSL = RGBtoHSL(textureColor.rgb);\n // in the UI hue 0 is cyan and 180 is red\n float shiftedHue = getCurveValue(mod(inHSL.x + 0.5, 1.0));\n vec3 inRGB = HSLtoRGB(vec3(shiftedHue, inHSL.y, inHSL.z));\n\n vec4 finalColor = vec4(inRGB, textureColor.a);\n\n // During the rgb-to-hsl-to-rgb conversion total whites gets clipped on OSX for some reason\n // make sure to retain absolute white (since it has no chroma component)\n if (textureColor.r == 1.0 && textureColor.g == 1.0 && textureColor.b == 1.0){\n finalColor.rgb = vec3(1.0, 1.0, 1.0);\n }\n\n gl_FragColor = finalColor;\n}\n"},e,t)}static getFilterType(){return"hue"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.points&&function(t){return Of(t,Lf,{type:"bezier"}).map((t=>{return e=t,((Math.round(e.x*Lf)+180)%Lf+(1-e.y-.5)*Lf+Lf)%Lf;var e}))}(t.points)||Bf;this.uniforms[Mh.STATIC_OPTIONS].set(e)}}class Wf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Wf)};super(Wf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[2];\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\nvec3 lab2xyz(vec3 c){\n float fy=(c.x+16.)/116.,\n fx=c.y/500.+fy,\n fz=fy-c.z/200.;\n return vec3(\n 95.047*((fx>.206897)?fx*fx*fx:(fx-16./116.)/7.787),\n 100. *((fy>.206897)?fy*fy*fy:(fy-16./116.)/7.787),\n 108.883*((fz>.206897)?fz*fz*fz:(fz-16./116.)/7.787)\n );\n}\nvec3 xyz2rgb(vec3 c){\n mat3 mat=mat3(\n 3.2406,-1.5372,-.4986,\n -.9689, 1.8758, .0415,\n .0557, -.2040,1.0570\n );\n vec3 v=(c/100.0)*mat,\n r=vec3(\n (v.r>.0031308)?((1.055*pow(v.r,(1./2.4)))-.055):12.92*v.r,\n (v.g>.0031308)?((1.055*pow(v.g,(1./2.4)))-.055):12.92*v.g,\n (v.b>.0031308)?((1.055*pow(v.b,(1./2.4)))-.055):12.92*v.b\n );\n return r;\n}\nvec3 lab2rgb(vec3 c){return xyz2rgb(lab2xyz(vec3(100.*c.x,2.*127.*(c.y-.5),2.*127.*(c.z-.5))));}\n\n\nfloat handleMix(float x){\n return pow(x * 2.0 - 1.0, 2.0);\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n// inColor = vec3(148.0 / 255.0, 99.0 / 255.0, 95.0 / 255.0); // debug\n\n vec3 inLab = rgb2lab(inColor);\n vec3 inRGB ;\n\n// vec2 tempTint = vec2(staticOptions[1], -staticOptions[0]);\n\n// inLab.yz += (tempTint.xy); // * 0.3; // damping of effect\n\n // lab range is 0 to 1, input is -128 to 127\n // lab chromacity zero is 0.5, 0.5 so convert between the ranges\n // y is a, z is b\n inLab.y -= (-staticOptions[1] + 128.0) / 255.0 - 0.5;\n inLab.z -= (staticOptions[0] + 128.0) / 255.0 - 0.5;\n\n inRGB = lab2rgb(inLab);\n\n\n // vec3 mixed = mix(inRGB, inColor, handleMix(inLab.x)); // mid tones\n // vec3 mixed = mix(inRGB, inColor, inLab.x); // only high tones\n vec3 mixed = mix(inRGB, inColor, 0.0); // no mix\n\n gl_FragColor = vec4(mixed,1.0);\n}\n"},e,t)}static getFilterType(){return"whiteBalance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Mh.STATIC_OPTIONS].set([e,n])}}class Uf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Uf)};super(Uf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[4];\n\n// algorithm from here\n// https://github.com/CeeJayDK/SweetFX/blob/master/Shaders/Vibrance.fx\n\nvoid main() {\n float percentAmount = staticOptions[0];\n float redBalance = staticOptions[1];\n float greenBalance = staticOptions[2];\n float blueBalance = staticOptions[3];\n\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 coefLuma = vec3(0.212656, 0.715158, 0.072186);\n\n float luma = dot(coefLuma, color);\n\n float max_color = max(color.r, max(color.g, color.b)); // Find the strongest color\n float min_color = min(color.r, min(color.g, color.b)); // Find the weakest color\n\n float color_saturation = max_color - min_color; // The difference between the two is the saturation\n\n // Extrapolate between luma and original by 1 + (1-saturation) - current\n vec3 coeffVibrance = vec3(redBalance, greenBalance, blueBalance) * percentAmount;\n\n color.r = mix(luma, color.r, 1.0 + (coeffVibrance.r * (1.0 - (sign(coeffVibrance.r) * color_saturation))));\n color.g = mix(luma, color.g, 1.0 + (coeffVibrance.g * (1.0 - (sign(coeffVibrance.g) * color_saturation))));\n color.b = mix(luma, color.b, 1.0 + (coeffVibrance.b * (1.0 - (sign(coeffVibrance.b) * color_saturation))));\n\n\n gl_FragColor = vec4(color, 1.0);\n\n}\n"},e,t)}static getFilterType(){return"vibrance"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.amount?t.amount/100*2:0,n=null===t.redBalance?1:t.redBalance,i=null===t.greenBalance?1:t.greenBalance,r=null===t.blueBalance?1:t.blueBalance;this.uniforms[Mh.STATIC_OPTIONS].set([e,n,i,r])}}class $f extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo($f)};super($f.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\n// algorithm from here\n// https://github.com/minus34/cesium1/blob/master/Cesium/Shaders/Builtin/Functions/saturation.glsl\n\n/**\n * Adjusts the saturation of a color.\n *\n * @name czm_saturation\n * @glslFunction\n *\n * @param {vec3} rgb The color.\n * @param {float} adjustment The amount to adjust the saturation of the color.\n *\n * @returns {float} The color with the saturation adjusted.\n *\n * @example\n * vec3 greyScale = czm_saturation(color, 0.0);\n * vec3 doubleSaturation = czm_saturation(color, 2.0);\n */\nvec3 czm_saturation(vec3 rgb, float adjustment)\n{\n // Algorithm from Chapter 16 of OpenGL Shading Language\n const vec3 W = vec3(0.2125, 0.7154, 0.0721);\n vec3 intensity = vec3(dot(rgb, W));\n return mix(intensity, rgb, adjustment);\n}\n\n\nvoid main() {\n float amount = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n gl_FragColor = vec4(czm_saturation(color, amount), 1.0);\n}\n"},e,t)}static getFilterType(){return"saturation"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.amount?1:t.amount;this.uniforms[Mh.STATIC_OPTIONS].set([e])}}class jf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(jf)};super(jf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[12];\nuniform float runtimeOptions[4];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nfloat roundedBoxSDF(vec2 CenterPosition, vec2 Size, float Radius) {\n return length(max(abs(CenterPosition)-Size+Radius,0.0))-Radius;\n}\n\nvoid main() {\n vec2 srcAR = vec2(runtimeOptions[0]/runtimeOptions[1], 1.0);\n // custom aspect ratio (other than the default 1920/1080)\n // useful for example when doing crop on crop\n if (staticOptions[10] > 0.0) { //\n srcAR.x = staticOptions[10];\n }\n vec2 srcCenter = vec2(staticOptions[0], staticOptions[1]);\n vec2 srcDims = vec2(staticOptions[2], staticOptions[3]);\n vec2 srcTL = vec2(srcCenter.x - srcDims[0] / 2.0, srcCenter.y - srcDims[1] / 2.0); // top left point\n\n vec2 srcDims_AR = srcDims * srcAR;\n vec2 srcTL_AR = srcTL * srcAR;\n\n vec2 vpDims = vec2(runtimeOptions[2], runtimeOptions[3]);\n vec2 vpAR = vec2(vpDims[0]/vpDims[1], 1.0);\n\n vec2 tgtCenter = vec2(staticOptions[4], staticOptions[5]);\n vec2 tgtDims = vec2(staticOptions[6], staticOptions[7]);\n vec2 tgtTL = vec2(tgtCenter.x - tgtDims[0] / 2.0, tgtCenter.y - tgtDims[1] / 2.0);\n\n vec2 tgtDims_AR = tgtDims * vpAR;\n vec2 tgtTL_AR = tgtTL * vpAR;\n\n vec2 pos_AR = current_texture_coordinate_2d * vpAR;\n\n float ratioW = tgtDims_AR[0] / srcDims_AR[0];\n float ratioH = tgtDims_AR[1] / srcDims_AR[1];\n\n float ratio;\n\n // the type of crop fit. 0 - contain, 1 - fill, 3 - stretch\n float fitType = staticOptions[8];\n\n if (fitType == 0.0){\n ratio = ratioW > ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR - (tgtDims_AR - tgtDims_OLD_AR) / 2.0;\n } else if (fitType == 1.0){\n ratio = ratioW < ratioH ? ratioW : ratioH;\n vec2 tgtDims_OLD_AR = tgtDims_AR;\n tgtDims_AR = srcDims_AR * ratio;\n tgtTL_AR = tgtTL_AR + (tgtDims_OLD_AR - tgtDims_AR) / 2.0;\n }\n\n vec2 final_pos_AR = (pos_AR - tgtTL_AR) / tgtDims_AR * srcDims_AR + srcTL_AR;\n\n // transform coords back from AR into 0 to 1 range\n vec2 pos = final_pos_AR / srcAR;\n\n // How soft the edges should be . Higher values could be used to simulate a drop shadow.\n float edgeSoftness = staticOptions[11];\n\n // The radius of the corners in pixels\n float radius = staticOptions[9];\n\n float tightDistance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) , tgtDims_AR / vpAR / 2.0, 0.0);\n// float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpAR, tgtDims * vpAR / 2.0, 0.01);\n float distance = roundedBoxSDF((current_texture_coordinate_2d - tgtCenter) * vpDims, (tgtDims * vpDims) / 2.0, radius);\n\n // Smooth the result (free antialiasing).\n float smoothedAlpha = 1.0 - smoothstep(0.0, edgeSoftness * 2.0, distance);\n\n // Return the resultant shape.\n vec4 textureColor = texture2D(first_texture, pos);\n vec4 quadColor = vec4(textureColor.xyz, smoothedAlpha);\n\n // Apply a drop shadow effect.\n// float shadowSoftness = 0.0;\n// vec2 shadowOffset = vec2(0.0, 0.0);\n// float shadowDistance = roundedBoxSDF(pos + shadowOffset, tgtDims_AR / 2.0, radius);\n// float shadowAlpha = 1.0 - smoothstep(-shadowSoftness, shadowSoftness, shadowDistance);\n// vec4 shadowColor = vec4(0.4, 0.4, 0.4, 1.0);\n // gl_FragColor = mix(quadColor, shadowColor, shadowAlpha - smoothedAlpha);\n\n\n // pillarboxing\n if (tightDistance > 0.0 && distance <= 0.0){\n gl_FragColor = vec4(0, 0, 0, 1.0);\n } else {\n gl_FragColor = quadColor;\n }\n\n // debug\n // gl_FragColor = texture2D(first_texture, pos);\n\n}"},e,t)}static getFilterType(){return"crop"}static getInputsCount(){return 1}static getInitialOptions(){return{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:10,edgeSoftness:0}}getOptionsDisplay(){return[]}static getUniformList(){return[Mh.FIRST_TEXTURE,Sh,Ah]}handleStaticUniforms(t){let e={...jf.getInitialOptions(),...t};const n=Number.parseFloat(e.source.center.x).toFixed(5),i=Number.parseFloat(e.source.center.y).toFixed(5),r=Number.parseFloat(e.source.width).toFixed(5),o=Number.parseFloat(e.source.height).toFixed(5),s=Number.parseFloat(e.target.center.x).toFixed(5),a=Number.parseFloat(e.target.center.y).toFixed(5),l=Number.parseFloat(e.target.width).toFixed(5),c=Number.parseFloat(e.target.height).toFixed(5),u=Number.parseFloat(e.edgeSoftness).toFixed(5),d=e.source.aspectRatio?Number.parseFloat(e.source.aspectRatio).toFixed(5):0;let h;h="fill"===e.fitType?0:"contain"===e.fitType?1:2;const f=Number.parseFloat(e.cornerRadius).toFixed(5);this.uniforms[Mh.STATIC_OPTIONS].set([n,i,r,o,s,a,l,c,h,f,d,u])}}class qf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(qf)};super(qf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float staticOptions[4];\nuniform float runtimeOptions[2];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n // this is the the texture from the prev shader\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 color = vec4(staticOptions[0], staticOptions[1], staticOptions[2], 1.0);\n vec4 blended = mix(texture, color, staticOptions[3]);\n gl_FragColor = blended;\n}"},e,t)}static getFilterType(){return"solid"}static getInputsCount(){return 1}static getInitialOptions(){return{color:{r:.33,g:.66,b:.99,a:1}}}getOptionsDisplay(){return[{properties:["color","r"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","g"],type:"slider",minValue:0,maxValue:1,step:.001},{properties:["color","b"],type:"slider",minValue:0,maxValue:1,step:.001}]}handleStaticUniforms(t){var e;const n=Number.parseFloat(t.color.r).toFixed(5),i=Number.parseFloat(t.color.g).toFixed(5),r=Number.parseFloat(t.color.b).toFixed(5),o=(null!==(e=Number.parseFloat(t.color.a))&&void 0!==e?e:1).toFixed(5);this.uniforms[Mh.STATIC_OPTIONS].set([n,i,r,o])}}class Vf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Vf)};super(Vf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_position_coordinate_2d = normalize_poistion.xy;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nuniform float runtimeOptions[1];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying vec2 current_position_coordinate_2d;\n\n\nvoid main() {\n vec4 textureColor = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(textureColor.rgb, 1.0);\n}\n"},e,t)}static getFilterType(){return"solidImage"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}}class Gf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Gf)};super(Gf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_position = vec4(position_3d.xyz, 1);\n gl_Position = normalize_position;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}\n",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\n\n//CIE L*a*b* (CIELAB, L* for lightness, a* from green to red, b* from blue to yellow)\n//Source: https://gist.github.com/mattatz/44f081cac87e2f7c8980 (HLSL)\nvec3 rgb2xyz(vec3 c){\n vec3 tmp=vec3(\n (c.r>.04045)?pow((c.r+.055)/1.055,2.4):c.r/12.92,\n (c.g>.04045)?pow((c.g+.055)/1.055,2.4):c.g/12.92,\n (c.b>.04045)?pow((c.b+.055)/1.055,2.4):c.b/12.92\n );\n mat3 mat=mat3(\n .4124,.3576,.1805,\n .2126,.7152,.0722,\n .0193,.1192,.9505\n );\n return 100.*(tmp*mat);\n}\nvec3 xyz2lab(vec3 c){\n vec3 n=c/vec3(95.047,100.,108.883),\n v=vec3(\n (n.x>.008856)?pow(n.x,1./3.):(7.787*n.x)+(16./116.),\n (n.y>.008856)?pow(n.y,1./3.):(7.787*n.y)+(16./116.),\n (n.z>.008856)?pow(n.z,1./3.):(7.787*n.z)+(16./116.)\n );\n return vec3((116.*v.y)-16.,500.*(v.x-v.y),200.*(v.y-v.z));\n}\nvec3 rgb2lab(vec3 c){\n vec3 lab=xyz2lab(rgb2xyz(c));\n return vec3(lab.x/100.,.5+.5*(lab.y/127.),.5+.5*(lab.z/127.));\n}\n\nvoid main() {\n vec3 inColor = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n vec3 inLab = rgb2lab(inColor);\n gl_FragColor = vec4(inLab, 1.0);\n}\n"},e,t)}static getFilterType(){return"lab"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=t.temperature?t.temperature:0,n=t.tint?t.tint:0;this.uniforms[Mh.STATIC_OPTIONS].set([e,n])}}class Hf extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(Hf)};super(Hf.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n} ",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nvarying vec2 current_texture_coordinate_2d;\nuniform float staticOptions[1];\n\nvoid main() {\n float exposureStops = staticOptions[0];\n vec3 color = texture2D(first_texture, current_texture_coordinate_2d).rgb;\n \n // Convert exposure stops to multiplier: pow(2.0, stops)\n float multiplier = pow(2.0, exposureStops);\n \n // Apply exposure adjustment\n vec3 exposedColor = color * multiplier;\n \n gl_FragColor = vec4(exposedColor, 1.0);\n} "},e,t)}static getFilterType(){return"exposure"}static getInputsCount(){return 1}static getInitialOptions(){return{}}getOptionsDisplay(){return[]}handleStaticUniforms(t){let e=null===t.exposure?0:t.exposure;this.uniforms[Mh.STATIC_OPTIONS].set([e])}}var Kf,Xf,Yf,Qf,Jf,Zf,tp,ep;function np(){if(Qf)return Yf;Qf=1;const t=Xf?Kf:(Xf=1,Kf={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}),e={};for(const n of Object.keys(t))e[t[n]]=n;const n={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};Yf=n;for(const t of Object.keys(n)){if(!("channels"in n[t]))throw new Error("missing channels property: "+t);if(!("labels"in n[t]))throw new Error("missing channel labels property: "+t);if(n[t].labels.length!==n[t].channels)throw new Error("channel and label counts mismatch: "+t);const{channels:e,labels:i}=n[t];delete n[t].channels,delete n[t].labels,Object.defineProperty(n[t],"channels",{value:e}),Object.defineProperty(n[t],"labels",{value:i})}function i(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}return n.rgb.hsl=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(e,n,i),o=Math.max(e,n,i),s=o-r;let a,l;o===r?a=0:e===o?a=(n-i)/s:n===o?a=2+(i-e)/s:i===o&&(a=4+(e-n)/s),a=Math.min(60*a,360),a<0&&(a+=360);const c=(r+o)/2;return l=o===r?0:c<=.5?s/(o+r):s/(2-o-r),[a,100*l,100*c]},n.rgb.hsv=function(t){let e,n,i,r,o;const s=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(s,a,l),u=c-Math.min(s,a,l),d=function(t){return(c-t)/6/u+.5};return 0===u?(r=0,o=0):(o=u/c,e=d(s),n=d(a),i=d(l),s===c?r=i-n:a===c?r=1/3+e-i:l===c&&(r=2/3+n-e),r<0?r+=1:r>1&&(r-=1)),[360*r,100*o,100*c]},n.rgb.hwb=function(t){const e=t[0],i=t[1];let r=t[2];const o=n.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(i,r));return r=1-1/255*Math.max(e,Math.max(i,r)),[o,100*s,100*r]},n.rgb.cmyk=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.min(1-e,1-n,1-i);return[100*((1-e-r)/(1-r)||0),100*((1-n-r)/(1-r)||0),100*((1-i-r)/(1-r)||0),100*r]},n.rgb.keyword=function(n){const r=e[n];if(r)return r;let o,s=1/0;for(const e of Object.keys(t)){const r=i(n,t[e]);r<s&&(s=r,o=e)}return o},n.keyword.rgb=function(e){return t[e]},n.rgb.xyz=function(t){let e=t[0]/255,n=t[1]/255,i=t[2]/255;return e=e>.04045?((e+.055)/1.055)**2.4:e/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92,[100*(.4124*e+.3576*n+.1805*i),100*(.2126*e+.7152*n+.0722*i),100*(.0193*e+.1192*n+.9505*i)]},n.rgb.lab=function(t){const e=n.rgb.xyz(t);let i=e[0],r=e[1],o=e[2];return i/=95.047,r/=100,o/=108.883,i=i>.008856?i**(1/3):7.787*i+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,[116*r-16,500*(i-r),200*(r-o)]},n.hsl.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;let r,o,s;if(0===n)return s=255*i,[s,s,s];r=i<.5?i*(1+n):i+n-i*n;const a=2*i-r,l=[0,0,0];for(let t=0;t<3;t++)o=e+1/3*-(t-1),o<0&&o++,o>1&&o--,s=6*o<1?a+6*(r-a)*o:2*o<1?r:3*o<2?a+(r-a)*(2/3-o)*6:a,l[t]=255*s;return l},n.hsl.hsv=function(t){const e=t[0];let n=t[1]/100,i=t[2]/100,r=n;const o=Math.max(i,.01);return i*=2,n*=i<=1?i:2-i,r*=o<=1?o:2-o,[e,100*(0===i?2*r/(o+r):2*n/(i+n)),(i+n)/2*100]},n.hsv.rgb=function(t){const e=t[0]/60,n=t[1]/100;let i=t[2]/100;const r=Math.floor(e)%6,o=e-Math.floor(e),s=255*i*(1-n),a=255*i*(1-n*o),l=255*i*(1-n*(1-o));switch(i*=255,r){case 0:return[i,l,s];case 1:return[a,i,s];case 2:return[s,i,l];case 3:return[s,a,i];case 4:return[l,s,i];case 5:return[i,s,a]}},n.hsv.hsl=function(t){const e=t[0],n=t[1]/100,i=t[2]/100,r=Math.max(i,.01);let o,s;s=(2-n)*i;const a=(2-n)*r;return o=n*r,o/=a<=1?a:2-a,o=o||0,s/=2,[e,100*o,100*s]},n.hwb.rgb=function(t){const e=t[0]/360;let n=t[1]/100,i=t[2]/100;const r=n+i;let o;r>1&&(n/=r,i/=r);const s=Math.floor(6*e),a=1-i;o=6*e-s,1&s&&(o=1-o);const l=n+o*(a-n);let c,u,d;switch(s){default:case 6:case 0:c=a,u=l,d=n;break;case 1:c=l,u=a,d=n;break;case 2:c=n,u=a,d=l;break;case 3:c=n,u=l,d=a;break;case 4:c=l,u=n,d=a;break;case 5:c=a,u=n,d=l}return[255*c,255*u,255*d]},n.cmyk.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100,r=t[3]/100;return[255*(1-Math.min(1,e*(1-r)+r)),255*(1-Math.min(1,n*(1-r)+r)),255*(1-Math.min(1,i*(1-r)+r))]},n.xyz.rgb=function(t){const e=t[0]/100,n=t[1]/100,i=t[2]/100;let r,o,s;return r=3.2406*e+-1.5372*n+-.4986*i,o=-.9689*e+1.8758*n+.0415*i,s=.0557*e+-.204*n+1.057*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,s=s>.0031308?1.055*s**(1/2.4)-.055:12.92*s,r=Math.min(Math.max(0,r),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[255*r,255*o,255*s]},n.xyz.lab=function(t){let e=t[0],n=t[1],i=t[2];return e/=95.047,n/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,[116*n-16,500*(e-n),200*(n-i)]},n.lab.xyz=function(t){let e,n,i;n=(t[0]+16)/116,e=t[1]/500+n,i=n-t[2]/200;const r=n**3,o=e**3,s=i**3;return n=r>.008856?r:(n-16/116)/7.787,e=o>.008856?o:(e-16/116)/7.787,i=s>.008856?s:(i-16/116)/7.787,e*=95.047,n*=100,i*=108.883,[e,n,i]},n.lab.lch=function(t){const e=t[0],n=t[1],i=t[2];let r;return r=360*Math.atan2(i,n)/2/Math.PI,r<0&&(r+=360),[e,Math.sqrt(n*n+i*i),r]},n.lch.lab=function(t){const e=t[0],n=t[1],i=t[2]/360*2*Math.PI;return[e,n*Math.cos(i),n*Math.sin(i)]},n.rgb.ansi16=function(t,e=null){const[i,r,o]=t;let s=null===e?n.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),0===s)return 30;let a=30+(Math.round(o/255)<<2|Math.round(r/255)<<1|Math.round(i/255));return 2===s&&(a+=60),a},n.hsv.ansi16=function(t){return n.rgb.ansi16(n.hsv.rgb(t),t[2])},n.rgb.ansi256=function(t){const e=t[0],n=t[1],i=t[2];return e===n&&n===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(n/255*5)+Math.round(i/255*5)},n.ansi16.rgb=function(t){let e=t%10;if(0===e||7===e)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];const n=.5*(1+~~(t>50));return[(1&e)*n*255,(e>>1&1)*n*255,(e>>2&1)*n*255]},n.ansi256.rgb=function(t){if(t>=232){const e=10*(t-232)+8;return[e,e,e]}let e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},n.rgb.hex=function(t){const e=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(e.length)+e},n.hex.rgb=function(t){const e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let n=e[0];3===e[0].length&&(n=n.split("").map((t=>t+t)).join(""));const i=parseInt(n,16);return[i>>16&255,i>>8&255,255&i]},n.rgb.hcg=function(t){const e=t[0]/255,n=t[1]/255,i=t[2]/255,r=Math.max(Math.max(e,n),i),o=Math.min(Math.min(e,n),i),s=r-o;let a,l;return a=s<1?o/(1-s):0,l=s<=0?0:r===e?(n-i)/s%6:r===n?2+(i-e)/s:4+(e-n)/s,l/=6,l%=1,[360*l,100*s,100*a]},n.hsl.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=n<.5?2*e*n:2*e*(1-n);let r=0;return i<1&&(r=(n-.5*i)/(1-i)),[t[0],100*i,100*r]},n.hsv.hcg=function(t){const e=t[1]/100,n=t[2]/100,i=e*n;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.hcg.rgb=function(t){const e=t[0]/360,n=t[1]/100,i=t[2]/100;if(0===n)return[255*i,255*i,255*i];const r=[0,0,0],o=e%1*6,s=o%1,a=1-s;let l=0;switch(Math.floor(o)){case 0:r[0]=1,r[1]=s,r[2]=0;break;case 1:r[0]=a,r[1]=1,r[2]=0;break;case 2:r[0]=0,r[1]=1,r[2]=s;break;case 3:r[0]=0,r[1]=a,r[2]=1;break;case 4:r[0]=s,r[1]=0,r[2]=1;break;default:r[0]=1,r[1]=0,r[2]=a}return l=(1-n)*i,[255*(n*r[0]+l),255*(n*r[1]+l),255*(n*r[2]+l)]},n.hcg.hsv=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);let i=0;return n>0&&(i=e/n),[t[0],100*i,100*n]},n.hcg.hsl=function(t){const e=t[1]/100,n=t[2]/100*(1-e)+.5*e;let i=0;return n>0&&n<.5?i=e/(2*n):n>=.5&&n<1&&(i=e/(2*(1-n))),[t[0],100*i,100*n]},n.hcg.hwb=function(t){const e=t[1]/100,n=e+t[2]/100*(1-e);return[t[0],100*(n-e),100*(1-n)]},n.hwb.hcg=function(t){const e=t[1]/100,n=1-t[2]/100,i=n-e;let r=0;return i<1&&(r=(n-i)/(1-i)),[t[0],100*i,100*r]},n.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},n.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},n.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},n.gray.hsl=function(t){return[0,0,t[0]]},n.gray.hsv=n.gray.hsl,n.gray.hwb=function(t){return[0,100,t[0]]},n.gray.cmyk=function(t){return[0,0,0,t[0]]},n.gray.lab=function(t){return[t[0],0,0]},n.gray.hex=function(t){const e=255&Math.round(t[0]/100*255),n=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(n.length)+n},n.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]},Yf}function ip(){if(Zf)return Jf;Zf=1;const t=np();function e(t,e){return function(n){return e(t(n))}}function n(n,i){const r=[i[n].parent,n];let o=t[i[n].parent][n],s=i[n].parent;for(;i[s].parent;)r.unshift(i[s].parent),o=e(t[i[s].parent][s],o),s=i[s].parent;return o.conversion=r,o}return Jf=function(e){const i=function(e){const n=function(){const e={},n=Object.keys(t);for(let t=n.length,i=0;i<t;i++)e[n[i]]={distance:-1,parent:null};return e}(),i=[e];for(n[e].distance=0;i.length;){const e=i.pop(),r=Object.keys(t[e]);for(let t=r.length,o=0;o<t;o++){const t=r[o],s=n[t];-1===s.distance&&(s.distance=n[e].distance+1,s.parent=e,i.unshift(t))}}return n}(e),r={},o=Object.keys(i);for(let t=o.length,e=0;e<t;e++){const t=o[e];null!==i[t].parent&&(r[t]=n(t,i))}return r}}var rp=function(){if(ep)return tp;ep=1;const t=np(),e=ip(),n={};return Object.keys(t).forEach((i=>{n[i]={},Object.defineProperty(n[i],"channels",{value:t[i].channels}),Object.defineProperty(n[i],"labels",{value:t[i].labels});const r=e(i);Object.keys(r).forEach((t=>{const e=r[t];n[i][t]=function(t){const e=function(...e){const n=e[0];if(null==n)return n;n.length>1&&(e=n);const i=t(e);if("object"==typeof i)for(let t=i.length,e=0;e<t;e++)i[e]=Math.round(i[e]);return i};return"conversion"in t&&(e.conversion=t.conversion),e}(e),n[i][t].raw=function(t){const e=function(...e){const n=e[0];return null==n?n:(n.length>1&&(e=n),t(e))};return"conversion"in t&&(e.conversion=t.conversion),e}(e)}))})),tp=n}(),op=ju(rp);class sp extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(sp)};super(sp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n current_texture_coordinate_2d = texture_coordinate_2d;\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[3];\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n vec4 blend = texture2D(first_texture, current_texture_coordinate_2d);\n \n vec3 blendRGB = blend.rgb;\n vec3 baseRGB = vec3(staticOptions[0], staticOptions[1], staticOptions[2]);\n \n vec3 limit = step(0.5, blendRGB);\n vec3 mixedRGB = mix(2.0 * baseRGB * blendRGB, 1.0 - 2.0 * (1.0 - baseRGB) * (1.0 - blendRGB), limit);\n \n gl_FragColor = vec4((mixedRGB * blend.a) + ((1.0 - blend.a) * baseRGB), 1);\n}"},e,t)}static getFilterType(){return"hardLight"}static getInputsCount(){return 1}static getInitialOptions(){return{color:"4b0082"}}getOptionsDisplay(){return[{properties:["color"],type:"colorPicker"}]}handleStaticUniforms(t){const e=op.hex.rgb(t.color).map((t=>t/255));this.uniforms[Mh.STATIC_OPTIONS].set([e[0],e[1],e[2]])}}class ap extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(ap)};super(ap.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n exposure_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float exposure_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4((texture.xyz) * (1.0 + exposure_value) , texture.w);\n}\n\n"},e,t)}static getFilterType(){return"exposureTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]}}}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Mh.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Mh.FIRST_TEXTURE,Nh]}}class lp extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(lp)};super(lp.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[6];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n \n // transfrom logic // \n // normalized time range from 0 to 1\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2], staticOptions[3]),\n vec2(staticOptions[4], staticOptions[5]),\n current_time\n );\n \n current_texture_coordinate_2d = texture_coordinate_2d;\n dipToBlack_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float dipToBlack_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n gl_FragColor = vec4(texture.xyz - dipToBlack_value, texture.w);\n}"},e,t)}static getFilterType(){return"dipToBlackTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power;this.uniforms[Mh.STATIC_OPTIONS].set([e.from,e.to,...e.ease])}static getUniformList(){return[Mh.FIRST_TEXTURE,Nh]}}class cp extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(cp)};super(cp.getFilterType(),{vertex:"attribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[16];\n\nvarying vec2 current_texture_coordinate_2d;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n // time range from 0 to 1\n float current_time = runtimeOptions[0];\n\n // scale X\n float current_scale_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_x_value = mix(staticOptions[0], staticOptions[1], current_scale_x_progress);\n\n // scale Y\n float current_scale_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[4],staticOptions[5]),\n vec2(staticOptions[6],staticOptions[7]),\n current_time\n );\n float currnet_scale_y_value = mix(staticOptions[2], staticOptions[3], current_scale_y_progress);\n\n // translate x\n float current_translate_x_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n \n float currnet_translate_x_value = mix(staticOptions[8], staticOptions[9], current_translate_x_progress); \n\n // translate y\n float current_translate_y_progress = getCurrentBeizerProgress(\n vec2(staticOptions[12],staticOptions[13]),\n vec2(staticOptions[14],staticOptions[15]),\n current_time\n );\n float currnet_translate_y_value = mix(staticOptions[10], staticOptions[11], current_translate_y_progress); \n\n // See Default vertex shader, we normalize y axis to be -y\n // because of webgl texture coordinates\n currnet_translate_y_value = currnet_translate_y_value * -1.0;\n\n // create matries\n mat4 scaleMatrix;\n scaleMatrix[0] = vec4(currnet_scale_x_value, 0, 0, 0); \n scaleMatrix[1] = vec4(0, currnet_scale_y_value, 0, 0); \n scaleMatrix[2] = vec4(0, 0, 1, 0); \n scaleMatrix[3] = vec4(0, 0, 0, 1); \n\n mat4 translateMatrix;\n translateMatrix[0] = vec4(1, 0, 0, 0); \n translateMatrix[1] = vec4(0, 1, 0, 0); \n translateMatrix[2] = vec4(0, 0, 1, 0); \n translateMatrix[3] = vec4(currnet_translate_x_value, currnet_translate_y_value, 0, 1); \n\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n // gl_Position = translateMatrix * scaleMatrix * normalize_poistion;\n \n \n current_texture_coordinate_2d = texture_coordinate_2d;\n \n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\n\nvarying vec2 current_texture_coordinate_2d;\n\nvoid main() {\n gl_FragColor = texture2D(first_texture, current_texture_coordinate_2d);\n}"},e,t)}static getFilterType(){return"transformTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.scale||{},n=t.properties.translate||{};e.ease=e.ease||[0,0,1,1],n.ease=n.ease||[0,0,1,1],this.uniforms[Mh.STATIC_OPTIONS].set([e.from&&e.from.x||1,e.to&&e.to.x||1,e.from&&e.from.y||1,e.to&&e.to.y||1,...e.ease,n.from&&n.from.x||0,n.to&&n.to.x||0,n.from&&n.from.y||0,n.to&&n.to.y||0,...n.ease])}static getUniformList(){return[Mh.FIRST_TEXTURE,Nh]}}class up extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(up)};super(up.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[8];\nuniform float runtimeOptions[3];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nconst int samples = 12; //multiple of 2\n\nvoid main() {\n vec2 pixel = vec2(1.0/runtimeOptions[1], 1.0/runtimeOptions[2]);\n vec2 direction = vec2(staticOptions[6], staticOptions[7]);\n \n vec4 color = vec4(0.0); \n\n for (int i=1; i<=samples/2; i++) {\n vec2 motion = float(i) * current_power_value / float(samples / 2) * direction * pixel;\n \n color += texture2D(\n first_texture,\n current_texture_coordinate_2d + motion);\n\n color += texture2D(\n first_texture,\n current_texture_coordinate_2d - motion);\n }\n\t\n color = color/float(samples);\n\n \n gl_FragColor = color;\n // gl_FragColor = vec4(0,1,0,1);\n \n}"},e,t)}static getFilterType(){return"motionBlurTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0},n=t.properties.direction||{x:0,y:0};e.ease=e.ease||[0,0,1,1],this.uniforms[Mh.STATIC_OPTIONS].set([e.from,e.to,...e.ease,n.x,n.y])}static getUniformList(){return[Mh.FIRST_TEXTURE,Nh,Sh]}}class dp extends Lh{constructor(t){const e={uniforms:Lh.getUniformInfo(dp)};super(dp.getFilterType(),{vertex:"precision lowp float;\n\nattribute vec3 position_3d;\nattribute vec2 texture_coordinate_2d;\n\nuniform float runtimeOptions[1];\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nfloat getCurrentBeizerProgress(vec2 p1, vec2 p2, float t){\n vec2 p0 = vec2(0,0);\n vec2 p3 = vec2(1,1);\n \n vec2 E = mix(p0, p1, t);\n vec2 F = mix(p1, p2, t);\n vec2 G = mix(p2, p3, t);\n\n vec2 H = mix(E, F, t);\n vec2 I = mix(F, G, t);\n\n vec2 P = mix(H, I, t);\n\n return P.y;\n}\n\n\nvoid main() {\n vec4 normalize_poistion = vec4(position_3d.xyz, 1);\n gl_Position = normalize_poistion;\n\n float current_time = runtimeOptions[0];\n float current_power_progress = getCurrentBeizerProgress(\n vec2(staticOptions[2],staticOptions[3]),\n vec2(staticOptions[4],staticOptions[5]),\n current_time\n );\n \n // varing\n current_texture_coordinate_2d = texture_coordinate_2d;\n current_power_value = mix(staticOptions[0], staticOptions[1], current_power_progress);\n}",fragment:"precision lowp float;\n\nuniform sampler2D first_texture;\nuniform float staticOptions[9];\n\nvarying vec2 current_texture_coordinate_2d;\nvarying float current_power_value;\n\nvoid main() {\n vec4 texture = texture2D(first_texture, current_texture_coordinate_2d);\n vec4 fadeColor = vec4(staticOptions[6], staticOptions[7], staticOptions[8], 1.0) ;\n gl_FragColor = mix(texture,fadeColor, current_power_value);\n}"},e,t)}static getFilterType(){return"fadeToColorTransition"}static getInputsCount(){return 1}static getInitialOptions(){return{properties:{power:{form:0,to:0,ease:[0,0,1,1]},color:"#FFFFFF"}}}handleStaticUniforms(t){const e=t.properties.power||{from:0,to:0};e.ease=e.ease||[0,0,1,1];const n=t.properties.color,i=op.hex.rgb(n).map((t=>t/255));this.uniforms[Mh.STATIC_OPTIONS].set([e.from,e.to,...e.ease,i[0],i[1],i[2]])}static getUniformList(){return[Mh.FIRST_TEXTURE,Nh]}}var hp=Object.freeze({__proto__:null,Crop:jf,Curves:Pf,Default:Bh,DipToBlackTransition:lp,DirectionalBlur:Kh,Exposure:Hf,ExposureTransition:ap,FadeToColorTransition:dp,FastBlur:Hh,HardLight:sp,HorizontalBlur:Vh,Hue:zf,Lab:Gf,Levels:Rf,Lut:Jh,MotionBlurTransition:up,Opacity:Xh,Saturation:$f,ShapeComposite:Qh,ShapeCompositeMask:Yh,Solid:qf,SolidImage:Vf,Transform:qh,TransformTransition:cp,VerticalBlur:Gh,Vibrance:Uf,WhiteBalance:Wf});const fp=Object.values(hp).reduce(((t,e)=>(t[e.getFilterType()]=e,t)),{});class pp{constructor(t){this.context=t}static getFilterClass(t){return fp[t]}getFilterIds(){return Object.keys(this.filterTypeToInstanceMap)}create(t,e){this.context={...this.context,options:e.options};const n=new fp[t](this.context);if(!n)throw new Error(`${t} is not a atom filter, atomFilter list: `,this.getFilterIds());return n}}const mp=Nd.PREVIOUS_OUTPUT_PREFIX,vp=Object.values(hp).reduce(((t,e)=>(t[e.getFilterType()]={type:e.getFilterType(),options:e.getInitialOptions(),inputs:[...Array(e.getInputsCount())].map(((t,e)=>`${mp}${e}`)),outputs:[]},t)),{});var gp,yp,bp=function(){if(yp)return gp;yp=1;var t=function(t){return function(t){return!!t&&"object"==typeof t}(t)&&(n=t,!("[object RegExp]"===(i=Object.prototype.toString.call(n))||"[object Date]"===i||n.$$typeof===e));var n,i},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function n(t,e){return!1!==e.clone&&e.isMergeableObject(t)?s((n=t,Array.isArray(n)?[]:{}),t,e):t;var n}function i(t,e,i){return t.concat(e).map((function(t){return n(t,i)}))}function r(t){return Object.keys(t).concat((e=t,Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter((function(t){return Object.propertyIsEnumerable.call(e,t)})):[]));var e}function o(t,e){try{return e in t}catch(t){return!1}}function s(e,a,l){(l=l||{}).arrayMerge=l.arrayMerge||i,l.isMergeableObject=l.isMergeableObject||t,l.cloneUnlessOtherwiseSpecified=n;var c=Array.isArray(a);return c===Array.isArray(e)?c?l.arrayMerge(e,a,l):function(t,e,i){var a={};return i.isMergeableObject(t)&&r(t).forEach((function(e){a[e]=n(t[e],i)})),r(e).forEach((function(r){var l,c;o(l=t,c=r)&&(!Object.hasOwnProperty.call(l,c)||!Object.propertyIsEnumerable.call(l,c))||(o(t,r)&&i.isMergeableObject(e[r])?a[r]=function(t,e){if(!e.customMerge)return s;var n=e.customMerge(t);return"function"==typeof n?n:s}(r,i)(t[r],e[r],i):a[r]=n(e[r],i))})),a}(e,a,l):n(a,l)}return s.all=function(t,e){if(!Array.isArray(t))throw new Error("first argument should be an array");return t.reduce((function(t,n){return s(t,n,e)}),{})},gp=s}(),kp=ju(bp),xp=function(t,e){return kp(t,e,{arrayMerge:(t,e)=>e})};const wp=Nd.MESSAGES.UPDATE_OPTIONS;let _p=class{constructor(t,e){this.eventEmitter=new Pd,this.type=t,this.inputs=e.inputs,this.outputs=e.outputs,this.options=e.options}render(){throw new Error("concrete class should implement")}_updateOptions(){throw new Error("concrete class should implement")}updateOptions(t){this._updateOptions(t),this.eventEmitter.emit(wp,this.options)}updateInputs(t){t&&(this.inputs.length===t.length&&this.inputs.every(((e,n)=>e===t[n]))||(this.inputs=[...t]))}getEventEmitter(){return this.eventEmitter}getType(){return this.type}getInputs(){return this.inputs}getOutputs(){return this.outputs}getOptions(){return this.options}getInfo(){return{inputs:this.inputs,outputs:this.outputs,options:this.options}}getOptionsDisplay(){return this.filter.getOptionsDisplay()}dispose(){throw new Error("concrete class should implement")}};class Tp extends _p{constructor(t,e,n){super(...arguments),this.filter=n.filterFactory.create(this.type,{options:this.options})}render(t){const e=t.ioStore,n=t.graphIOManager,i=this.getInputs(),r=this.getOutputs(),o=e.get(i),s=this.filter.render(o,this.options);return n.setOutputs(e,r,s),s}_updateOptions(t){this.options=xp(this.options,t),this.filter.updateStaticUniforms(this.options)}dispose(){this.filter.dispose()}}const Ip=Nd.MESSAGES.UPDATE_OPTIONS;class Ep extends Tp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}baseNodeUpdateOptions(t){this.options=xp(this.options,t),this.filter.updateStaticUniforms(this.options)}registerListeners(){this.baseNode.getEventEmitter().on(Ip,this.baseNodeUpdateOptions,this)}dispose(){this.filter.dispose(),this.baseNode.getEventEmitter().off(Ip,this.baseNodeUpdateOptions,this)}}function Sp(t){return null!==t&&"object"==typeof t}function Ap(t){if(!Sp(t)||(e=t,Array.isArray(e)))return t;var e;const n=Object.keys(t).sort(),i={};return n.forEach((e=>{i[e]=Ap(t[e])})),i}function Np(t,e){return null!=t&&t.id&&null!=e&&e.id?t.type===e.type&&t.id===e.id:t.type===e.type}function Mp(t,e){const n=[];t.forEach(((t,i)=>{const r=(o=t,e.findIndex((t=>function(t,e){const n=JSON.parse(JSON.stringify(t));return r=JSON.parse(JSON.stringify(e)),Sp(i=n)&&Sp(r)?JSON.stringify(Ap(i))===JSON.stringify(Ap(r)):!(!Number.isNaN(i)||!Number.isNaN(r))||i===r;var i,r}(o,t))));var o;if(-1!==r)return void n.push({type:"take",index:r});const s=(a=t,l=i,(c=e)&&c[l]&&Np(a,c[l])?l:c.findIndex((t=>Np(a,t))));var a,l,c;-1===s?n.push({type:"create",newGraphIndex:i}):n.push({type:"update",currentGraphIndex:s,newGraphIndex:i})}));const i=n.reduce(((t,e)=>("take"===e.type?t.push(e.index):"update"===e.type&&t.push(e.currentGraphIndex),t)),[]);return e.reduce(((t,e,n)=>(i.includes(n)||t.push(n),t)),[]).forEach((t=>{n.push({type:"dispose",currentGraphIndex:t})})),n}function Fp(t,e,n,i){const r=[];return t.forEach((t=>{switch(t.type){case"take":r.push(n[t.index]);break;case"update":const o=e[t.newGraphIndex].options,s=n[t.currentGraphIndex];s.updateInputs(e[t.newGraphIndex].inputs),s.updateOptions(o),r.push(s);break;case"create":const a=jp.create(e[t.newGraphIndex],i);r.push(a);break;case"dispose":n[t.currentGraphIndex].dispose();break;default:throw new Error("cant apply action type: ",t.type)}})),r}var Op=function(t,e,n,i){const r=t.graph,o=e.graph;if(!(o&&r&&Array.isArray(o)&&Array.isArray(r)))throw new Error("cant apply new composite options",t);return Fp(Mp(r,o),r,n,i)};class Cp extends _p{constructor(t,e,n){super(...arguments),this.context=n,this.nodes=this.createNodes(this.options)}createNodes(t){if(!t||!t.graph)throw new Error("cant create composite node, please supply info.options.graph");return t.graph.map((t=>jp.create(t,this.context)))}render(t){const e=t.ioStore,n=t.graphIOManager;let i=n.getPrevOutput(e);const r=this.outputs;if(this.nodes.length){const t=new Wd(e),r=[];this.nodes.forEach(((e,o)=>{const s={ioStore:t,graphIOManager:n};i=e.render(s),o!==this.nodes.length-1&&r.push(i)})),n.disposeTextures(r,i)}return n.setOutputs(e,r,i),i}getOptionsDisplay(){return[]}_updateOptions(t){this.nodes=Op(t,this.options,this.nodes,this.context),this.options=t}dispose(){this.nodes.forEach((t=>{t.dispose()}))}}const Pp=Nd.MESSAGES.UPDATE_OPTIONS;class Dp extends Cp{constructor(t,e,n){super(...arguments),this.baseNode=n.baseNode,this.registerListeners()}registerListeners(){this.baseNode.getEventEmitter().on(Pp,this.updateOptions,this)}dispose(){this.nodes.forEach((t=>{t.dispose()})),this.baseNode.getEventEmitter().off(Pp,this.updateOptions,this)}}const Rp=Nd.SYSTEM_NODES.TAGS.ATOM,Lp=Nd.SYSTEM_NODES.TAGS.FILTER,Bp=Nd.SYSTEM_NODES.TAGS.COMPOSITE_FILTER,zp=Nd.SYSTEM_NODES.TAGS.TRANSITION_FILTER,Wp=Nd.PREVIOUS_OUTPUT_PREFIX,Up=Object.keys(vp);function $p(t,e){const n=(i=t.type,vp[i]);var i;return t=xp(n,t),new Tp(t.type,t,e)}var jp={create:function(t,e){let n;switch(function(t){let e;return n=t,e=Up.includes(n)?Rp:t===Bp?Bp:t===zp?zp:Lp,e;var n}((t=JSON.parse(JSON.stringify(t))).type)){case Rp:n=$p(t,e);break;case Lp:n=function(t,e){const n=function(t,e){const n=e.get(t);if(!n)throw new Error(`no base node, cant resolve type: ${t}`);return n}(t.type,e.nodeStore),i=n.getType(),r=n.getInfo();let o;return t=xp(r,t),e={...e,baseNode:n},o=i===Bp?new Dp(i,t,e):new Ep(i,t,e),o}(t,e);break;case Bp:n=function(t,e){const n=t.type;return t=xp({inputs:[`${Wp}0`]},t),new Cp(n,t,e)}(t,e);break;case zp:n=function(t,e){const n=t.options.filter;if(!n)throw new Error(`transition filter should supply base filter ${n}`);return t.type=`${n}Transition`,$p(t,e)}(t,e);break;default:throw new Error("cant create node",t.type)}return n}};const qp=Nd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS;var Vp=function(t){const e={[qp]:vp[qp]};for(const[n,i]of Object.entries(e)){const e=jp.create(i,t);t.nodeStore.set(n,e)}},Gp=function(t,e){for(const[n,i]of Object.entries(t)){const t=jp.create(i,e);e.nodeStore.set(n,t)}};const Hp=Nd.CAPTURED_FRAME_PREFIX;class Kp{constructor(t){return this.textureManager=t.textureManager,this.currentFrameTextures={0:this.textureManager.createTexture({type:"frame"})},this.saveInNextFrameTextures=[],this.savedFramesTextures={},this.reservedUnits=new Set([this.currentFrameTextures[0].getUnit()]),{capture:this.capture.bind(this),createCaptureId:this.createCaptureId.bind(this),releaseCaptureId:this.releaseCaptureId.bind(this),getCurrentFrames:this.getCurrentFrames.bind(this),getSavedFrames:this.getSavedFrames.bind(this),isReservedUnit:this.isReservedUnit.bind(this)}}updateCurrentFrame(t,e){e=e||0,this.currentFrameTextures[e].fill(t)}saveFrame(t){0!==this.saveInNextFrameTextures.length&&(this.saveInNextFrameTextures.forEach((e=>{e.fill(t)})),this.saveInNextFrameTextures=[])}capture(t,e){(t.videoHeight>150||t.displayHeight>150)&&(this.updateCurrentFrame(t,e),this.saveFrame(t))}createCaptureId(){const t=this.textureManager.createTexture({type:"frame"});this.saveInNextFrameTextures.push(t);const e=t.getUnit(),n=`${Hp}${e}`;return this.savedFramesTextures[n]=t,this.reservedUnits.add(e),n}releaseCaptureId(t){if("string"!=typeof t)throw new Error("capture id should be string");delete this.saveInNextFrameTextures[t];const e=t.split(":")[1];this.reservedUnits.delete(parseInt(e,10))}getCurrentFrames(){return this.currentFrameTextures}getSavedFrames(){return this.savedFramesTextures}isReservedUnit(t){return this.reservedUnits.has(t)}}const Xp=sd("ShaderGraphApplication","warn"),Yp=Nd.SYSTEM_NODES.FILTERS.RENDER_TO_CANVAS,Qp=Object.freeze({useCanvasSizedFilterTargets:!1,rebindAttributesOnProgramSwitch:!0,forwardContextAttributes:!0});function Jp(t={}){const e=null==t?void 0:t.performanceToggles;return e&&"object"==typeof e?{...Qp,...e}:{...Qp}}class Zp{constructor(t,e={}){return this.glSource=t,this.config=e,this.performanceToggles=Jp(e),this.isContextLost=!1,this.isRecovering=!1,this.isDisposed=!1,this.pendingNodeOptionUpdates=new Map,this.doInit(t,e)}doInit(t,e){this.source=Bd(t),this.performanceToggles=Jp(e),this.isDisposed=!1,this.render=this.render.bind(this),this.resizeCanvasSize=this.resizeCanvasSize.bind(this),this.setSrcVidTracks=this.setSrcVidTracks.bind(this),this.onWebGLContextLost=this.onWebGLContextLost.bind(this),this.onForceRender=this.onForceRender.bind(this),this.resizeCanvasSize._shouldPreventDefault=!0;const n=function(t={},e=Qp){const n=null!=t&&t.glOptions&&"object"==typeof t.glOptions?{...t.glOptions}:{},i=n.__shaderGraph&&"object"==typeof n.__shaderGraph?n.__shaderGraph:{};return{...n,__shaderGraph:{...i,forwardContextAttributes:!1!==e.forwardContextAttributes}}}(e,this.performanceToggles);return this.gl=this.source.init(this.setSrcVidTracks,this.resizeCanvasSize,n),this.addCanvasListeners(),this.addSourceListeners(),"undefined"!=typeof window&&(window.ekoShaderGraph=this),this.selectedRenderNode=null,this.activeTextures=this.activeTextures||new Set,this.textureManager=new Kd({gl:this.gl,activeTextures:this.activeTextures}),this.capturedFramesManager=new Kp({textureManager:this.textureManager}),this.graphIOManager=new nh({glSource:t,gl:this.gl,textureManager:this.textureManager,capturedFramesManager:this.capturedFramesManager}),this.frameBufferFactory=new ch({gl:this.gl,textureManager:this.textureManager,useCanvasSizedFilterTargets:this.performanceToggles.useCanvasSizedFilterTargets}),this.filterFactory=new pp({gl:this.gl,frameBufferFactory:this.frameBufferFactory,rebindAttributesOnProgramSwitch:this.performanceToggles.rebindAttributesOnProgramSwitch}),this.nodeStore=new Wd,this.ioStore=new Wd,Vp({nodeStore:this.nodeStore,filterFactory:this.filterFactory}),this.addClientNodes(e.nodes,this.isRecovering),e.userWillCallRender||(this.rafId=requestAnimationFrame(this.render)),this.dirtyCanvasSize=!0,{getNodes:this.getNodes.bind(this),addNodes:this.addClientNodes.bind(this),selectNode:this.selectNode.bind(this),addTexture:this.addTexture.bind(this),releaseTexture:this.releaseTexture.bind(this),captureTexture:this.captureTexture.bind(this),disposeTexture:this.disposeTexture.bind(this),updateOptions:this.updateOptions.bind(this),render:this.render,dispose:this.dispose.bind(this)}}getNodes(){return Xp.debug("[getNodes]"),this.nodeStore.get()}addClientNodes(t,e=!1){if(Xp.debug("[addClientNodes]",t),t&&!e&&(this.addClientNodeInvocations=this.addClientNodeInvocations||[],this.addClientNodeInvocations.push(t)),!e&&this.isContextUnavailable())return;t=t||{};const n=JSON.parse(JSON.stringify(t));Gp(n,{nodeStore:this.nodeStore,filterFactory:this.filterFactory})}addTexture(t,e,n){if(Xp.debug("[addTexture]",t,e,n),this.isContextUnavailable())return null;let i=this.textureManager.createTexture({type:e});return i.isStatic=!0,t&&i.fill(t),this.graphIOManager.setTextureSource(this.ioStore,i,n),i}releaseTexture(t){Xp.debug("[releaseTexture]",t),this.isContextUnavailable()||this.textureManager.releaseTexture(t)}selectNode(t){if(Xp.debug("[selectNode]",t),!this.isContextUnavailable())return this.nodeStore.get(t)||Xp.warn("Missing render node",t),void(this.selectedRenderNodeId=t);this.selectedRenderNodeId=t}captureTexture(){return Xp.debug("[captureTexture]"),this.isContextUnavailable()?null:this.capturedFramesManager.createCaptureId()}disposeTexture(t){return Xp.debug("[disposeTexture]",t),this.isContextUnavailable()||"string"!=typeof t?null:this.capturedFramesManager.releaseCaptureId(t)}setSrcVidTracks(t){this.isContextUnavailable()||this.capturedFramesManager&&this.capturedFramesManager.capture(t)}resizeCanvasSize(t,e,n,i){this.dirtyCanvasSize={width:n,height:i}}isContextUnavailable(){return!!this.isDisposed||!(!this.isRecovering&&!this.isContextLost)||!(!this.gl||"function"!=typeof this.gl.isContextLost)&&this.gl.isContextLost()}queueNodeOptionUpdate(t,e){t&&e&&"object"==typeof e&&(this.pendingNodeOptionUpdates||(this.pendingNodeOptionUpdates=new Map),this.pendingNodeOptionUpdates.set(t,e))}applyPendingNodeOptionUpdates(t=!1){if(!this.pendingNodeOptionUpdates||!this.pendingNodeOptionUpdates.size)return;const e=Array.from(this.pendingNodeOptionUpdates.entries());this.pendingNodeOptionUpdates.clear(),e.forEach((([e,n])=>{try{if(t){const t=this.nodeStore.get(e);if(!t||"function"!=typeof t.updateOptions)return void this.queueNodeOptionUpdate(e,n);try{t.updateOptions(n)}catch(t){Xp.error("Failed to apply pending node options",e,t),this.queueNodeOptionUpdate(e,n)}return}this.updateOptions(e,n)}catch(t){Xp.error("Failed to apply pending node options",e,t)}}))}render(t={}){var e,n;const{noRaf:i=!1}=t;if(this.isContextUnavailable())return;if(this.dirtyCanvasSize){let{width:t=this.gl.canvas.width,height:e=this.gl.canvas.height}=this.dirtyCanvasSize;sh(t,e),this.gl.canvas.width=t,this.gl.canvas.height=e,this.textureManager.refreshTextureObjects(),this.gl.viewport(0,0,t,e),this.dirtyCanvasSize=!1}const r=null===(e=this.gl)||void 0===e||null===(e=e.canvas)||void 0===e?void 0:e.width,o=null===(n=this.gl)||void 0===n||null===(n=n.canvas)||void 0===n?void 0:n.height;Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0&&(sh(r,o),this.gl.viewport(0,0,r,o)),this.graphIOManager.setVideoSources(this.ioStore);let s={ioStore:this.ioStore,graphIOManager:this.graphIOManager};this.renderSelectedNode(s),this.config.onPreRenderToScreen&&this.config.onPreRenderToScreen(),this.renderToCanvas(s),this.config.onPostRenderToScreen&&this.config.onPostRenderToScreen(),this.graphIOManager.disposeAllStore(this.ioStore),s=null,!i&&!this.config.userWillCallRender&&(this.rafId=requestAnimationFrame(this.render))}renderSelectedNode(t){if(!this.selectedRenderNodeId)return;const e=this.nodeStore.get(this.selectedRenderNodeId);e&&"function"==typeof e.render?e.render(t):(Xp.warn("Missing selected render node",this.selectedRenderNodeId),this.selectedRenderNodeId=null)}renderToCanvas(t){const e=this.nodeStore.get(Yp);e&&"function"==typeof e.render?e.render(t):Xp.warn("Missing render-to-canvas node")}updateOptions(t,e){if(Xp.debug("[updateOptions]",t,e),this.isContextUnavailable())return void this.queueNodeOptionUpdate(t,e);const n=this.nodeStore.get(t);if(n&&"function"==typeof n.updateOptions)try{n.updateOptions(e)}catch(n){Xp.error("Failed to update node options",t,n),this.queueNodeOptionUpdate(t,e)}else this.queueNodeOptionUpdate(t,e)}addSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.on)&&this.source.on("forcerender",this.onForceRender)}removeSourceListeners(){var t;"function"==typeof(null===(t=this.source)||void 0===t?void 0:t.off)&&this.source.off("forcerender",this.onForceRender)}addCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&(this.config.noWebGLContextLostRecovery||this.gl.canvas.addEventListener("webglcontextlost",this.onWebGLContextLost))}removeCanvasListeners(){var t;(null==this||null===(t=this.gl)||void 0===t?void 0:t.canvas)&&this.gl.canvas.removeEventListener("webglcontextlost",this.onWebGLContextLost)}getNodesOptions(){const t=this.getNodes();let e={};return Object.keys(t).filter((t=>"__default"!==t)).forEach((n=>{e[n]=t[n].options})),e}getDocumentVisibilityPromise(){return new Promise((t=>{"visible"===document.visibilityState&&t();const e=()=>{"visible"===document.visibilityState&&(document.removeEventListener("visibilitychange",e),t())};document.addEventListener("visibilitychange",e)}))}onForceRender(){Xp.info("[onForceRender]"),this.render({noRaf:!0})}async onWebGLContextLost(t){if(t&&"function"==typeof t.preventDefault&&t.preventDefault(),this.isDisposed||this.isRecovering)return;this.isContextLost=!0,this.isRecovering=!0;const e=this.getNodesOptions(),n=this.addClientNodeInvocations,i=this.selectedRenderNodeId;cancelAnimationFrame(this.rafId),Xp.warn("WebGL context lost - attempting to recover");const r=async()=>{if(this.isDisposed)this.isRecovering=!1;else try{var t;if(await this.getDocumentVisibilityPromise(),this.isDisposed)return void(this.isRecovering=!1);if(this.gl&&"function"==typeof this.gl.isContextLost&&this.gl.isContextLost())return void setTimeout(r,200);this.dispose(!1),this.doInit(this.glSource,this.config),this.textureManager&&"function"==typeof this.textureManager.refreshActiveTextures&&this.textureManager.refreshActiveTextures(),n&&n.length&&n.forEach((t=>{Xp.debug("Re-adding client nodes",t),this.addClientNodes(t,!0)})),Object.entries(e).forEach((([t,e])=>{Xp.debug("Re-applying node options",t,e);const n=this.nodeStore.get(t);n&&"function"==typeof n.updateOptions&&n.updateOptions(e)})),i&&(this.selectedRenderNodeId=i),this.applyPendingNodeOptionUpdates(!0);const o="function"==typeof(null===(t=this.source)||void 0===t?void 0:t.recover);o&&(Xp.debug("Recovering glSource (i.e. seeking/resetting player)"),await this.source.recover()),this.isContextLost=!1,this.isRecovering=!1,o&&this.render()}catch(t){Xp.error("Failed to recover WebGL context, retrying",t),setTimeout(r,200)}};await r()}dispose(t=!0){if(this.selectedRenderNode=null,t&&(this.isDisposed=!0,this.isRecovering=!1,this.isContextLost=!1),this.source&&(this.removeSourceListeners(),"function"==typeof this.source.dispose&&this.source.dispose()),this.gl){this.removeCanvasListeners();const e=this.gl.getParameter(this.gl.MAX_TEXTURE_IMAGE_UNITS);for(let t=0;t<e;++t)this.gl.activeTexture(this.gl.TEXTURE0+t),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindTexture(this.gl.TEXTURE_CUBE_MAP,null);if(this.gl.bindBuffer(this.gl.ARRAY_BUFFER,null),this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,null),this.gl.bindFramebuffer(this.gl.FRAMEBUFFER,null),this.gl.bindTexture(this.gl.TEXTURE_2D,null),this.gl.bindRenderbuffer(this.gl.RENDERBUFFER,null),t)try{this.gl.getExtension("WEBGL_lose_context").loseContext()}catch(t){console.error(t)}}this.selectedRenderNodeId=null,t&&delete this.addClientNodeInvocations}}class tm{constructor(t={}){this.options=t}get type(){return"stage"}getSignature(){return this.type}build({inputs:t=[]}={}){return{graph:[],outputs:t,signature:this.getSignature()}}}function em(t={}){const e={source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:.5,y:.5},width:1,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0},n={...e.source,...t.source||{}},i={...e.target,...t.target||{}};return{...e,...t,source:n,target:i}}class nm extends tm{get type(){return"retarget"}getSignature(){var t;const e=Array.isArray(null===(t=this.options)||void 0===t?void 0:t.frames)?this.options.frames:[];return`${this.type}:${e.length}`}build({inputs:t=[],stageIndex:e=0}={}){var n;const i=Array.isArray(null===(n=this.options)||void 0===n?void 0:n.frames)?this.options.frames:[];if(!i.length)return{graph:[],outputs:t,signature:this.getSignature()};const r=[],o=[];for(let n=0;n<t.length;n+=1){const s=t[n],a=i[n];if(!a){o.push(s);continue}const l=`retarget-${e}-${n}`;r.push({id:l,type:"crop",inputs:[s],outputs:[l],options:em(a)}),o.push(l)}return{graph:r,outputs:o,signature:this.getSignature()}}}class im{#A=new Map;constructor(){this.register("retarget",nm)}register(t,e){t&&"function"==typeof e&&this.#A.set(t,e)}create(t={}){const e="string"==typeof(null==t?void 0:t.type)?t.type:null;if(!e)return null;const n=this.#A.get(e);return n?new n((null==t?void 0:t.options)||{}):null}}class rm{constructor(t={}){this.params=t}static get panAndScanTarget(){return"pre"}static buildDefaultLayoutGraph(t=[]){const e=t[0]||"__SRC_TEXTURE:0";return{type:"default",signature:`default:${t.length}`,isDynamic:!1,graph:[{type:"opacity",inputs:[e],options:{power:1}}]}}static prepareRenderFrames({frames:t}={}){return Array.isArray(t)?t:[]}static getRenderTiming({timing:t}={}){return t&&"object"==typeof t?t:{}}static resetRenderState(t){}render(t){}}class om extends rm{#N=null;#M=null;static get type(){return"default"}static get aliases(){return["DefaultRenderNode","default"]}static get requiresFrameCadence(){return!1}static buildLayoutGraph({inputs:t=[]}={}){return super.buildDefaultLayoutGraph(t)}static prepareRenderFrames({frames:t}={}){const e=Array.isArray(t)?t:[];if(e.length<=1)return e;const n=e[e.length-1];return n?[n]:e}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;const o=null==r?void 0:r.default;if(o)try{const t=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),e=om.buildLayoutGraph({inputs:t}),r=e.signature;this.#N!==r&&(i.updateOptions(o,{graph:e.graph}),this.#N=r),this.#M!==o&&(i.selectNode(o),this.#M=o),i.render({noRaf:!0})}catch(t){}}}var sm=new WeakMap,am=new WeakMap,lm=new WeakSet;class cm extends rm{constructor(...t){super(...t),$(this,lm),W(this,sm,null),W(this,am,null)}static get type(){return"side-by-side"}static get aliases(){return["SideBySideRenderNode","side-by-side","sidebyside"]}static get requiresFrameCadence(){return!1}static get panAndScanTarget(){return"skip"}static buildLayoutGraph({inputs:t=[]}={}){const e=t.length;if(e<=1)return super.buildDefaultLayoutGraph(t);const n=1/e,i=[],r=t.map(((t,e)=>{const r=(e+.5)*n,o=`slice-${e}`;return i.push({id:`side-by-side-crop-${e}`,type:"crop",inputs:[t],outputs:[o],options:{source:{center:{x:.5,y:.5},width:1,height:1},target:{center:{x:r,y:.5},width:n,height:1},fitType:"fill",cornerRadius:0,edgeSoftness:0}}),o}));let o=r[0];for(let t=1;t<e;t+=1){const e=(t+.5)*n*2-1;i.push({id:`side-by-side-mask-${t}`,type:"shapeCompositeMask",inputs:[r[t],o],outputs:["accum"],options:{type:"box",center:{x:e,y:0},area:{width:n,height:1},radius:0,edgeSoftness:0}}),o="accum"}return{type:cm.type,signature:`${cm.type}:${t.length}`,isDynamic:!1,graph:i}}static prepareRenderFrames({frames:t,state:e}={}){const n=Array.isArray(t)?t:[],i=e&&"object"==typeof e?e:{},r=Array.isArray(i.frames)?i.frames:[];if(!n.length&&!r.length)return i.frames=[],i!==e&&e&&"object"==typeof e&&Object.assign(e,i),[];const o=Math.max(n.length,r.length,2),s=Array.from({length:o}),a=n[0]||r[0];for(let t=0;t<o;t+=1)s[t]=n[t]||r[t]||a;return i.frames=s,i!==e&&e&&"object"==typeof e&&Object.assign(e,i),s}static resetRenderState(t){t&&"object"==typeof t&&(t.frames=null)}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;const o=null==r?void 0:r.sideBySide;if(o){if(1===n.length){const t=null==r?void 0:r.default;try{L(lm,this,um).call(this,i,t)}catch(t){}return}try{L(lm,this,dm).call(this,i,o,n)}catch(t){}}}}function um(t,e){if(!e)return;const n=pe.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]}),i=n.signature;z(sm,this)!==i&&(t.updateOptions(e,{graph:n.graph}),U(sm,this,i)),z(am,this)!==e&&(t.selectNode(e),U(am,this,e)),t.render({noRaf:!0})}function dm(t,e,n){const i=Array.isArray(n)?n.length:0;if(!e||!i||i<2)return;const r=n.map(((t,e)=>t?`__SRC_TEXTURE:${e}`:null)).filter(Boolean),o=pe.buildLayoutGraph({inputs:r}),s=o.signature;z(sm,this)!==s&&(t.updateOptions(e,{graph:o.graph}),U(sm,this,s)),z(am,this)!==e&&(t.selectNode(e),U(am,this,e)),t.render({noRaf:!0})}function hm(t){const e=Number(t);return Number.isFinite(e)?e<=0?0:e>=1?1:e:0}pe=cm;class fm extends rm{#N=null;#M=null;#F=null;static get type(){return"cross-fade"}static get aliases(){return["CrossFadeRenderNode","cross-fade","crossfade"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=hm(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:fm.type,signature:`${fm.type}:${t.length}`,isDynamic:!0,graph:i}}static prepareRenderFrames({frames:t,timelineTime:e,active:n}={}){let i=(Array.isArray(t)?t:[]).slice(0,2);if(i.length<2)return i;const r=Number.isFinite(null==n?void 0:n.duration)&&n.duration>0?n.duration:void 0,o=Number.isFinite(null==n?void 0:n.offset)?n.offset:void 0;if(!Number.isFinite(e)||!Number.isFinite(r)||!Number.isFinite(o))return i;const s=hm((e-o)/r);return s<=0?[i[0]]:s>=1?[i[1]]:i}render(t){var e;const n=(null==t||null===(e=t.visualFramesAvailable)||void 0===e?void 0:e.frames)||[];if(!n.length)return;const i=null==t?void 0:t.shaderGraph,r=null==t?void 0:t.shaderGraphNodeIds;if(!i||"function"!=typeof i.updateOptions||"function"!=typeof i.selectNode)return;if(n.length<2){const t=null==r?void 0:r.default;if(!t)return;try{const e="default";if(this.#N!==e){const n=fm.buildLayoutGraph({inputs:["__SRC_TEXTURE:0"]});i.updateOptions(t,{graph:n.graph}),this.#N=e}this.#M!==t&&(i.selectNode(t),this.#M=t),i.render({noRaf:!0})}catch(t){}return}const o=null==r?void 0:r.crossFade;if(o)try{const e=["__SRC_TEXTURE:0","__SRC_TEXTURE:1"],n=fm.buildLayoutGraph({inputs:e,normalizedTime:null==t?void 0:t.renderNodeNormalizedTime}),r=n.signature,s=Number(null==t?void 0:t.renderNodeNormalizedTime),a=Number.isFinite(s)?s:0;this.#N===r&&this.#F===a||(i.updateOptions(o,{graph:n.graph}),this.#N=r,this.#F=a),this.#M!==o&&(i.selectNode(o),this.#M=o),i.render({noRaf:!0})}catch(t){}}}function pm(t,e,n={}){if("number"==typeof(null==t?void 0:t.nodeDurationOverride)&&Number.isFinite(t.nodeDurationOverride))return t.nodeDurationOverride;const i="function"==typeof(null==n?void 0:n.getNode)?n.getNode:e&&"function"==typeof e.get?t=>e.get(t):null;if(!i)return;const r=i(null==t?void 0:t.nodeId);if(!r)return;const o=r.duration;if("number"!=typeof o||Number.isNaN(o)||!Number.isFinite(o))return;const s="string"!=typeof r.state||"ready"===r.state;if(!0!==(null==n?void 0:n.allowUnready)&&!s)return;if(!(!0!==(null==n?void 0:n.allowUnready)||s||o>0))return;let a=0;"number"==typeof t.nodeOffsetOverride&&Number.isFinite(t.nodeOffsetOverride)&&(a=t.nodeOffsetOverride);const l=o-a;return l>0?l:0}function mm(t){return!(!t||!0===t.offsetPending)&&Number.isFinite(t.offset)}function vm(t){return mm(t)?t.offset:void 0}function gm(t,e,n,i={}){if(!t)return!1;const r=vm(t);if(!Number.isFinite(r))return!1;const o=pm(t,n,i);return Number.isFinite(o)?e>=r&&e<r+o:e>=r}function ym(t=[]){if(!Array.isArray(t))return t;const e=[],n=[];return t.forEach((t=>{mm(t)?e.push(t):n.push(t)})),e.sort(((t,e)=>t.offset-e.offset)),t.splice(0,t.length,...e,...n),t}function bm(t=[],e={}){if(!Array.isArray(t)||!t.length)return{updated:!1,resolvedPlacements:[]};const n="function"==typeof e.getPlacementDuration?e.getPlacementDuration:()=>{},i="function"==typeof e.snapPlacementOffset?e.snapPlacementOffset:t=>t,r="function"==typeof e.onResolvedPlacement?e.onResolvedPlacement:null,o=new Map,s=[];if(t.forEach((t=>{null!=t&&t.placementId&&o.set(t.placementId,t),!0===(null==t?void 0:t.offsetPending)&&s.push(t)})),!s.length)return{updated:!1,resolvedPlacements:[]};let a=!1;const l=[];let c=s,u=!0;for(;c.length&&u;){u=!1;const t=[];for(let e=0;e<c.length;e+=1){const s=c[e],d=null==s?void 0:s.offsetAnchorPlacementId;if(!d){t.push(s);continue}const h=o.get(d);if(!h||!0===h.offsetPending){t.push(s);continue}const f=vm(h);if(!Number.isFinite(f)){t.push(s);continue}let p;if("start"===s.offsetAnchorEdge)p=i(f,s);else{const e=n(h);if(!(e>0)){t.push(s);continue}const r=f+e-(Number.isFinite(s.offsetEndSeconds)?s.offsetEndSeconds:0);if(!Number.isFinite(r)){t.push(s);continue}const o=i(r,s);p=!0===s.offsetAnchorIsReference?Math.max(o,r):o}Number.isFinite(p)?(s.offset=p,s.offsetPending=!1,s.offsetAnchorPlacementId=void 0,s.offsetAnchorEdge=void 0,s.offsetAnchorIsReference=void 0,r&&r(s,h,p),l.push(s),a=!0,u=!0):t.push(s)}c=t}return a&&!1!==e.sortPlacements&&ym(t),{updated:a,resolvedPlacements:l}}function km(t){const e=Number(t);return Number.isFinite(e)?e:0}function xm(t,e={}){const n=function(t){const e=Number(t);return Number.isFinite(e)&&e<0?Math.abs(e):0}(t),i=Number.isFinite(null==e?void 0:e.offsetEndSeconds)?e.offsetEndSeconds:n;var r;return{wantsEndOffset:"end"===(r=t)||null==r||n>0||!0===(null==e?void 0:e.offsetPending),endOffsetSeconds:i,endOffsetFromAtSeconds:n}}function wm(t){if("string"!=typeof t)return null;const e=t.trim();if(!e||"end"===e)return null;const n=Number(e);if(Number.isFinite(n))return null;const i=e.split("@"),r=i[0]?i[0].trim():"";if(!r)return null;if(1===i.length)return{placementId:r,anchor:"start"};if(2!==i.length)return null;const o=i[1]?i[1].trim().toLowerCase():"";return"start"!==o&&"end"!==o?null:{placementId:r,anchor:o}}function _m(t=[],e,n,i){if(Array.isArray(t))for(let r=0;r<t.length;r+=1){const o=t[r],s="number"==typeof(null==o?void 0:o.offset)?o.offset:0;if(e<s+("number"==typeof(null==o?void 0:o.duration)&&Number.isFinite(o.duration)?o.duration:Number.POSITIVE_INFINITY)&&s<n)throw new Error(i)}}function Tm(t){const e=Number(t);return Number.isFinite(e)&&e>0?e:0}function Im(t){return(null==t?void 0:t.id)||(null==t?void 0:t.nodeId)||null}function Em(t,e){return Array.isArray(t)&&e?t.findIndex((t=>Im(t)===e)):-1}function Sm(t,e,n){const i=function(t,e,n){if(!Array.isArray(e)||0===e.length)return null;const i=e.length;if(null==t||"next"===t){const t=Em(e,n);return t>=0?(t+1)%i:0}if("prev"===t){const t=Em(e,n);return t>=0?(t-1+i)%i:i-1}const r=Number(t);return Number.isInteger(r)&&r>=0&&r<i?r:null}(t,e,n);return Number.isInteger(i)?Im(e[i]):null}function Am(t,e,n,i){const r=function(t,e){if(!Array.isArray(t)||t.length<=1)return t||[];const n=function(t){const e=[],n=new Set;return Array.isArray(t)?(t.forEach((t=>{const i=null==t?void 0:t.placementId;i&&!n.has(i)&&(n.add(i),e.push(i))})),e):e}(e);if(!n.length)return t;const i=new Map;t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!i.has(e)&&i.set(e,t)}));const r=[],o=new Set;return n.forEach((t=>{const e=i.get(t);e&&!o.has(t)&&(o.add(t),r.push(e))})),t.forEach((t=>{const e=null==t?void 0:t.placementId;e&&!o.has(e)&&(o.add(e),r.push(t))})),r}(function(t,e){const n=function(t){const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration),i=n===Number.POSITIVE_INFINITY,r=Number.isFinite(n)&&n>0||i;return Number.isFinite(e)&&r?{start:e,end:i?Number.POSITIVE_INFINITY:e+n}:null}(e);if(!n||!t||!Array.isArray(t.placements))return[];const i=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return!Number.isFinite(n)||n<=0?0:.5/n}(t),r=t.placements.filter((e=>{const r=function(t,e){const n=vm(t);if(!Number.isFinite(n))return null;const i="function"==typeof(null==e?void 0:e.getPlacementDuration)?e.getPlacementDuration(t):void 0;return{start:n,end:Number.isFinite(i)&&i>=0?n+i:Number.POSITIVE_INFINITY}}(e,t);return!!r&&r.start<n.end&&r.end>n.start+i}));return r.sort(((t,e)=>vm(t)-vm(e))),r}(e,n),i),o=function(t,e){const n=[],i=new Set;return Array.isArray(t)?(t.forEach((t=>{const r=null==t?void 0:t.nodeId;if(!r||i.has(r))return;const o="function"==typeof(null==e?void 0:e.getNode)?e.getNode(r):null;if(o){const t="object"==typeof o&&null!==o?o.id||o.nodeId?o:{...o,id:r}:{id:r};n.push(t),i.add(r)}})),n):n}(r,e),s=function(t){const e=new Map;return t.forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;n&&i&&(e.has(i)||e.set(i,[]),e.get(i).push(n))})),e}(r),a=Array.isArray(t.nodes)?t.nodes:[];return a.splice(0,a.length,...o),t.nodes=a,t.placements=r,t.nodePlacementMap=s,{nodes:a,placements:r,nodePlacementMap:s}}function Nm(t,e,n){if(!Array.isArray(t))return null;if(e){const n=t.find((t=>(null==t?void 0:t.placementId)===e));if(n)return n}return n&&t.find((t=>(null==t?void 0:t.nodeId)===n))||null}function Mm(t,e){if(!e||!Array.isArray(t))return null;const n=t.find((t=>(null==t?void 0:t.placementId)===e));return(null==n?void 0:n.nodeId)||null}function Fm(t,e,n){if(!t||!e)return null;const i=e.get(t);if(!Array.isArray(i)||!i.length)return null;for(let e=0;e<i.length;e+=1){const r=i[e];if(Nm(n,r,t))return r}return null}function Om(t){t.initialized=!1,t.activeRenderPlacementId=null,t.nodes=[],t.placements=[],t.nodePlacementMap=null,t.selectedPlacementId=null,t.previousPlacementId=null,t.pendingSwitch=null,t.switchStartTime=null,t.switchDuration=0,t.switchNormalizedTime=void 0,t.switchTo=null,t.countOfConcurrentChannels=null}class Cm extends rm{static get type(){return"switching"}static get aliases(){return["SwitchingRenderNode","switching","switch"]}static get requiresFrameCadence(){return!0}static get panAndScanTarget(){return"pre"}static buildLayoutGraph({inputs:t=[],normalizedTime:e}={}){if(t.length<2)return super.buildDefaultLayoutGraph(t);const n=hm(e),i=[{type:"opacity",inputs:[t[1]],options:{power:n}},{type:"shapeComposite",inputs:["__PREVIOUS:0",t[0]],options:{}}];return{type:Cm.type,signature:`${Cm.type}:${t.length}`,isDynamic:!0,graph:i}}static getRenderTiming({timing:t,state:e}={}){const n=t&&"object"==typeof t?t:{},i=Number(null==e?void 0:e.switchNormalizedTime);return Number.isFinite(i)?{...n,normalizedTime:hm(i)}:n}static prepareRenderFrames({frames:t,timelineTime:e,timeline:n,active:i,renderNodeParams:r,state:o}={}){const s=Array.isArray(t)?t:[],a=o&&"object"==typeof o?o:{},l=null==i?void 0:i.renderPlacementId;l&&a.activeRenderPlacementId!==l&&(Om(a),a.activeRenderPlacementId=l);const c=null==r?void 0:r.initSwitching,u=Am(a,n,i,s),d=(f=s,Array.isArray(f)?f.length:0),h=a.countOfConcurrentChannels;var f;if(a.countOfConcurrentChannels=d,"function"==typeof c&&(a.switchTo||(a.switchTo=(t,e)=>{const n=Mm(a.placements,a.selectedPlacementId),i=Sm(t,a.nodes,n);if(!i)return;const r={nodeId:i};e&&Object.prototype.hasOwnProperty.call(e,"crossfadeSeconds")&&void 0!==e.crossfadeSeconds&&(r.crossfadeSeconds=e.crossfadeSeconds),a.pendingSwitch=r}),!a.initialized||h!==d)){a.initialized=!0,a.countOfConcurrentChannels=d;try{c({nodes:u.nodes,countOfConcurrentChannels:d,switchTo:a.switchTo})}catch(f){}}if(!a.selectedPlacementId){const t=Number(null==r?void 0:r.initialChannelIndex),e=Sm(Number.isInteger(t)&&t>=0?t:0,a.nodes,null);let n=null;if(e&&(n=Fm(e,a.nodePlacementMap,s),!n&&a.nodePlacementMap)){const t=a.nodePlacementMap.get(e);Array.isArray(t)&&t.length&&(n=t[0])}a.selectedPlacementId=n||function(t,e){if(Array.isArray(e))for(let i=0;i<e.length;i+=1){var n;const r=null===(n=e[i])||void 0===n?void 0:n.placementId;if(r&&Nm(t,r))return r}const i=Array.isArray(t)?t.find((t=>null==t?void 0:t.placementId)):null;return i?i.placementId:null}(s,a.placements)}if(a.pendingSwitch&&Number.isFinite(e)){const t=Fm(a.pendingSwitch.nodeId,a.nodePlacementMap,s);if(t){const n=a.selectedPlacementId;a.previousPlacementId=n&&n!==t?n:null,a.selectedPlacementId=t;const i=Object.prototype.hasOwnProperty.call(a.pendingSwitch,"crossfadeSeconds"),o=Tm(a.pendingSwitch.crossfadeSeconds),s=Tm(null==r?void 0:r.switchCrossfadeSeconds),l=i?o:s;a.switchDuration=l,l>0?a.switchStartTime=e:(a.switchStartTime=null,a.previousPlacementId=null)}a.pendingSwitch=null}let p;if(Number.isFinite(a.switchStartTime)&&a.switchDuration>0&&Number.isFinite(e)){const t=e-a.switchStartTime;t>=a.switchDuration?(a.switchStartTime=null,a.switchDuration=0,a.previousPlacementId=null):t>=0&&(p=hm(t/a.switchDuration))}a.switchNormalizedTime=Number.isFinite(p)?p:void 0;const m=Mm(a.placements,a.selectedPlacementId),v=Nm(s,a.selectedPlacementId,m)||s[0];let g=null;if(Number.isFinite(a.switchNormalizedTime)&&a.previousPlacementId){const t=Mm(a.placements,a.previousPlacementId),e=Mm(a.placements,a.selectedPlacementId),n=Nm(s,a.previousPlacementId,t),i=Nm(s,a.selectedPlacementId,e);n&&i&&(g=[n,i])}return g||(g=v?[v]:s),g}static resetRenderState(t){t&&"object"==typeof t&&Om(t)}}const Pm=[om,cm,fm,Cm],Dm=new Map;function Rm(t){if("string"!=typeof t)return null;const e=t.trim();return e?e.toLowerCase():null}function Lm(t){const e=Rm(t);return e&&Dm.get(e)||null}function Bm(t){return Lm(t)||om}Pm.forEach((t=>function(t){(function(t){const e=Array.isArray(t.aliases)?t.aliases:[],n=t.type;return(n?[n,...e]:e.slice()).filter((t=>"string"==typeof t&&t.trim().length))})(t).forEach((e=>{const n=Rm(e);n&&Dm.set(n,t)}))}(t)));class zm{static get defaultType(){return om.type||"default"}static getRenderNodeClass(t){return Lm(t)}static normalizeType(t){const e=Lm(t);return e?e.type:null}static doesRenderNodeTypeRequireFrameCadence(t){const e=Lm(t);return!!e&&!0===e.requiresFrameCadence}static buildLayoutGraph({type:t,inputs:e=[],normalizedTime:n}={}){const i=Bm(t);return i&&"function"==typeof i.buildLayoutGraph?i.buildLayoutGraph({inputs:e,normalizedTime:n}):om.buildLayoutGraph({inputs:e,normalizedTime:n})}static getPanAndScanTarget(t){const e=Bm(t);return"post"===(n=null==e?void 0:e.panAndScanTarget)||"skip"===n?n:"pre";var n}static prepareRenderFrames({type:t,frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s}={}){const a=Bm(t);if(a&&"function"==typeof a.prepareRenderFrames){const t=a.prepareRenderFrames({frames:e,timelineTime:n,timeline:i,active:r,renderNodeParams:o,state:s});if(Array.isArray(t))return t}return Array.isArray(e)?e:[]}static getRenderTiming({type:t,timing:e,timelineTime:n,active:i,renderNodeParams:r,state:o}={}){const s=Bm(t),a=e&&"object"==typeof e?e:{};if(s&&"function"==typeof s.getRenderTiming){const t=s.getRenderTiming({timing:a,timelineTime:n,active:i,renderNodeParams:r,state:o});if(t&&"object"==typeof t)return{...a,...t}}return a}static resetRenderState(t,e){const n=Bm(t);n&&"function"==typeof n.resetRenderState&&n.resetRenderState(e)}static resetAllRenderStates(t){t&&"function"==typeof t.forEach&&t.forEach(((t,e)=>{zm.resetRenderState(e,t)}))}create(t,e){return t&&"function"==typeof t.render?t:new(Bm(t))(e)}}function Wm(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function Um(t,e){return t&&"function"==typeof t.getSignature?t.getSignature():(null==e?void 0:e.type)||"stage"}class $m{#O;constructor(t){this.#O=t||new im}build(t={}){const e=(Array.isArray(null==t?void 0:t.frames)?t.frames:[]).length,n=Array.from({length:e},((t,e)=>`__SRC_TEXTURE:${e}`)),i=zm.normalizeType(null==t?void 0:t.layoutType)||zm.defaultType,r=null==t?void 0:t.normalizedTime,o=Wm(null==t?void 0:t.preStages),s=Wm(null==t?void 0:t.postStages),a=[],l=[`layout:${i}`,`inputs:${e}`];let c=n;o.forEach(((e,n)=>{const i=this.#O.create(e);if(!i)return;const r=i.build({inputs:c,stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length&&(c=r.outputs),l.push(Um(i,e))}));const u=zm.buildLayoutGraph({type:i,inputs:c,normalizedTime:r}),d=!(null==u||!u.isDynamic);Array.isArray(null==u?void 0:u.graph)&&u.graph.length&&a.push(...u.graph),l.push((null==u?void 0:u.signature)||`${i}:${c.length}`);let h="__PREVIOUS:0";return s.forEach(((e,n)=>{const i=this.#O.create(e);if(!i)return;const r=i.build({inputs:[h],stageIndex:n,context:t});Array.isArray(null==r?void 0:r.graph)&&r.graph.length&&a.push(...r.graph),h=Array.isArray(null==r?void 0:r.outputs)&&r.outputs.length?r.outputs[0]:"__PREVIOUS:0",l.push(Um(i,e))})),{graph:a,signature:l.join("|"),isDynamic:d}}}const jm=[0,0,1,1],qm="zoomInExposure",Vm=["transform","exposure","fadeToColor","dipToBlack"],Gm={zoomInExposure:{filters:{fadeToColor:{duration:150,ease:[1,0,1,0],power:{from:0,to:1},color:"#ffffff"},exposure:!1,transform:{duration:150,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.1,y:1.1}},translate:{from:{x:0,y:0},to:{x:0,y:0}}}},reverseFilters:{fadeToColor:{duration:700,ease:[0,1,0,1]},exposure:!1,transform:{duration:700,ease:[0,1,0,1]}}},dipToBlack:{filters:{transform:{duration:250,ease:[0,.5,.5,1],scale:{from:{x:1,y:1},to:{x:1.05,y:1.05}},translate:{from:{x:0,y:0},to:{x:0,y:0}}},dipToBlack:{duration:250,ease:[0,.5,.5,1],power:{from:0,to:1}}},reverseFilters:{dipToBlack:{duration:800,ease:[0,1,0,1]}}}};function Hm(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function Km(t,e=jm){return Array.isArray(t)&&t.length>=4?t:e}function Xm(t){return"string"==typeof t&&t.trim()?t.trim():"#ffffff"}function Ym(t,e){const n=null==t?void 0:t[e];return!1===n||null==n?null:ld(n)?n:{}}function Qm(t={}){let e=0;return Vm.forEach((n=>{const i=Ym(t,n);if(!i)return;const r=Hm(null==i?void 0:i.duration);r>e&&(e=r)})),e}function Jm(t,e,n,i,r){const o=[];return Vm.forEach((s=>{const a=Ym(t,s);if(!a)return;const l=function(t,e,n){const i=Hm(null==t?void 0:t.duration);return Number.isFinite(n)&&n>0?i>0&&e>0?i*e:n:i}(a,n,i),c=function(t,e,n,i,r){const o={type:"transition",inputs:["__PREVIOUS:0"],options:{filter:t,startTime:n,duration:i,properties:{}}};if("transform"===t){var s,a,l,c;const t=Km(null==e?void 0:e.ease),n=(null==e||null===(s=e.scale)||void 0===s?void 0:s.from)||{x:1,y:1},i=(null==e||null===(a=e.scale)||void 0===a?void 0:a.to)||{x:1,y:1},r=(null==e||null===(l=e.translate)||void 0===l?void 0:l.from)||{x:0,y:0},u=(null==e||null===(c=e.translate)||void 0===c?void 0:c.to)||{x:0,y:0};return o.options.properties.scale={from:n,to:i,ease:t},o.options.properties.translate={from:r,to:u,ease:t},o}if("fadeToColor"===t){const t=Km(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:Hm(null==n?void 0:n.from,0),to:Hm(null==n?void 0:n.to,1),ease:t},o.options.properties.color=Xm((null==e?void 0:e.color)||r),o}if("exposure"===t||"dipToBlack"===t){const t=Km(null==e?void 0:e.ease),n=(null==e?void 0:e.power)||{from:0,to:1};return o.options.properties.power={from:Hm(null==n?void 0:n.from,0),to:Hm(null==n?void 0:n.to,1),ease:t},o}return null}(s,a,e,l,r);c&&o.push(c)})),o}function Zm(t=[]){const e=t.map((t=>{const e=JSON.parse(JSON.stringify(t));return null!=e&&e.options&&(e.options.startTime=0),e}));return JSON.stringify(e)}class tv{#C=null;start(t={}){const e=null==t?void 0:t.shaderGraph;if(!e||"function"!=typeof e.captureTexture)return null;const{baseFilters:n,reverseFilters:i}=function(t={}){const e=function(t={}){if(ld(null==t?void 0:t.transition))return t.transition;if("string"==typeof(null==t?void 0:t.transition))return Gm[t.transition]||Gm[qm];if(ld(null==t?void 0:t.filters)||ld(null==t?void 0:t.reverseFilters))return{filters:t.filters||{},reverseFilters:t.reverseFilters||{}};if("string"==typeof(null==t?void 0:t.filter)){const e=Hm(t.duration)>0?1e3*t.duration:500;return{filters:{[t.filter]:{duration:e,power:{from:0,to:1}}},reverseFilters:{}}}return Gm[qm]}(t),n=cd({},(null==e?void 0:e.filters)||{},ld(null==t?void 0:t.filters)?t.filters:{}),i=function(t={}){const e={};return Object.keys(t).forEach((n=>{const i=t[n];if(!1===i)return void(e[n]=!1);const r=JSON.parse(JSON.stringify(ld(i)?i:{}));Object.values(r).forEach((t=>function(t){if(t&&"object"==typeof t&&"from"in t&&"to"in t){const e=t.from;t.from=t.to,t.to=e}}(t))),e[n]=r})),e}(n),r=cd({},(null==e?void 0:e.reverseFilters)||{},ld(null==t?void 0:t.reverseFilters)?t.reverseFilters:{});return{baseFilters:n,reverseFilters:cd({},i,r)}}(t),r=Hm(null==t?void 0:t.duration),o=r>0?1e3*r:null,s=Qm(n),a=Qm(i),l=o&&s>0?o/s:1,c=o&&a>0?o/a:1,u=o||s||500,d=o||a||u,h=Xm(null==t?void 0:t.color),f=e.captureTexture(),p=Date.now(),m=Jm(n,p,l,o,h);return this.#C={phase:"out",startTime:p,outDurationMs:u,inDurationMs:d,color:h,captureId:f,baseFilters:n,reverseFilters:i,outScale:l,inScale:c,durationOverrideMs:o,outGraph:m,outSignature:Zm(m),inGraph:null,inSignature:null},{captureId:f,outDurationMs:u,inDurationMs:d}}beginIncoming(){if(!this.#C)return;const t=Date.now(),e=Jm(this.#C.reverseFilters,t,this.#C.inScale,this.#C.durationOverrideMs,this.#C.color);this.#C={...this.#C,phase:"in",startTime:t,inGraph:e,inSignature:Zm(e)}}reset(t){var e;t&&"function"==typeof t.disposeTexture&&null!==(e=this.#C)&&void 0!==e&&e.captureId&&t.disposeTexture(this.#C.captureId),this.#C=null}getState(){return this.#C}buildOutgoingGraph(){const t=this.#C;return t&&"out"===t.phase&&Array.isArray(t.outGraph)&&t.outGraph.length?{signature:`transition:out:${t.outSignature||""}`,forceUpdate:!1,graph:t.outGraph}:null}buildIncomingGraph(){const t=this.#C;return t&&"in"===t.phase&&Array.isArray(t.inGraph)&&t.inGraph.length?{signature:`transition:in:${t.inSignature||""}`,forceUpdate:!1,graph:t.inGraph}:null}}let ev;const nv=[/firefox\/(\d+)/,/edg\/(\d+)/,/opr\/(\d+)/,/chrome\/(\d+)/];function iv(){const t=vd&&vd.navigator&&(vd.navigator.userAgent||vd.navigator.platform||vd.navigator.vendor)||"";if(ev&&ev.ua===t)return ev;const e=t.toLowerCase(),n=e.includes("android"),i=e.includes("iphone")||e.includes("ipad")||e.includes("ipod")||e.includes("ios"),r=n||i||e.includes("mobile"),o=!!t&&!r,s=e.includes("firefox/"),a=function(t=""){for(let e=0;e<nv.length;e+=1){const n=nv[e],i=t.match(n);if(!i)continue;const r=Number(i[1]);return Number.isFinite(r)?r:null}if(t.includes("safari/")&&t.includes("version/")){const e=t.match(/version\/(\d+)/);if(!e)return null;const n=Number(e[1]);return Number.isFinite(n)?n:null}return null}(e);return ev={ua:t,lowerUA:e,isAndroid:n,isiOS:i,isMobile:r,isDesktop:o,isFirefox:s,browserMajorVersion:a},ev}function rv(){return iv().ua}function ov(){return iv().isAndroid}function sv(){return iv().isiOS}function av(){return iv().isMobile}function lv(){return iv().isDesktop}function cv(){return iv().isFirefox}function uv(){return iv().browserMajorVersion}var dv={getUserAgent:rv,isAndroid:ov,isiOS:sv,isMobile:av,isDesktop:lv,isFirefox:cv,getBrowserMajorVersion:uv},hv=Object.freeze({__proto__:null,default:dv,getBrowserMajorVersion:uv,getUserAgent:rv,isAndroid:ov,isDesktop:lv,isFirefox:cv,isMobile:av,isiOS:sv});const fv=Object.freeze({NODE_ADD:"node:add",NODE_CHILDREN_CHANGED:"node:childrenchanged",NODE_LOADED:"node:loaded",NODE_LOAD_ERROR:"node:loaderror",PLACEMENT_ADDED:"placement:added",RENDER_PLACEMENT_ADDED:"renderplacement:added",TIMELINE_TIME_UPDATE:"timeline:timeupdate",TIMELINE_STATE_CHANGE:"statechange",TIMELINE_SEEKING:"seeking",TIMELINE_SEEKED:"seeked",TIMELINE_RESET:"timeline:reset",TIMELINE_PLAYER_STATE:"player:state",TIMELINE_CUEPOINT:"cuepoint",VISUAL_FRAMES_AVAILABLE:"visualframesavailable",TRACK_BUFFER_UPDATE:"track:bufferupdate",TRACK_READY:"track:ready",TRACK_UNDERFLOW:"track:underflow",CLOCK_TICK:"tick",DECODE_READY:"decode:ready",DECODE_ERROR:"decode:error",DECODER_AUDIO:"decoder:audio",DECODER_FRAME:"decoder:frame",DECODER_INIT:"decoder:init",DECODER_ERROR:"decoder:error",QOE_SCORE:"qoescore",QOE_STATUS:"qoestatus",CONTAINER_RESIZE:"containerresize"});function pv(t,e){const n={};return Number.isFinite(t)&&(n.time=t),"string"==typeof e&&(n.source=e),n}function mv({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,pts:o,duration:s,frame:a,audioBuffer:l}={}){const c={};return t&&(c.placementId=t),e&&(c.nodeId=e),n&&(c.trackId=n),i&&(c.segmentId=i),r&&(c.trackType=r),Number.isFinite(o)&&(c.pts=o),Number.isFinite(s)&&(c.duration=s),a&&(c.frame=a),l&&(c.audioBuffer=l),c}function vv({placementId:t,nodeId:e,trackId:n,segmentId:i,trackType:r,error:o}={}){const s={};return t&&(s.placementId=t),e&&(s.nodeId=e),n&&(s.trackId=n),i&&(s.segmentId=i),r&&(s.trackType=r),o&&(s.error=o),s}const gv="Idle",yv="Playing",bv="FirstFramePending",kv="Waiting",xv="Paused",wv="Seeking",_v="Resetting";function Tv(t){return Array.isArray(t)?t.filter((t=>t&&"string"==typeof t.type)):[]}function Iv(t,e){return!!Array.isArray(t)&&t.some((t=>(null==t?void 0:t.type)===e))}function Ev(t){const e=Number(t);return!Number.isFinite(e)||e<=0?null:{type:"retarget",options:{frames:Array.from({length:e},(()=>({fitType:"fill"})))},meta:{source:"panAndScan"}}}function Sv(t){return Array.isArray(t)?t.filter((t=>{return!("panAndScan"===(null==(e=t)||null===(n=e.meta)||void 0===n?void 0:n.source));var e,n})):[]}const Av=2073600;function Nv(t,e){const n=Number(t);return Number.isFinite(n)&&n>0?n:e}function Mv(t,e){if(null==t)return e;const n=Number(t);return Number.isFinite(n)?n:e}var Fv=new WeakMap,Ov=new WeakMap,Cv=new WeakMap,Pv=new WeakMap,Dv=new WeakMap,Rv=new WeakMap,Lv=new WeakMap,Bv=new WeakMap,zv=new WeakMap,Wv=new WeakMap,Uv=new WeakMap,$v=new WeakMap,jv=new WeakMap,qv=new WeakMap,Vv=new WeakMap,Gv=new WeakMap,Hv=new WeakMap,Kv=new WeakMap,Xv=new WeakMap,Yv=new WeakMap,Qv=new WeakMap,Jv=new WeakMap,Zv=new WeakMap,tg=new WeakMap,eg=new WeakMap,ng=new WeakMap,ig=new WeakMap,rg=new WeakMap,og=new WeakMap,sg=new WeakMap,ag=new WeakSet;class lg extends fd{static get pipelineNodeId(){return"ekoplayer-render-pipeline"}get defaults(){return{defaultRenderParams:void 0,resourceLimits:{enabled:!0,maxCanvasPixels:Av,maxDevicePixelRatio:0,renderScale:1,transitionMinFrameIntervalMs:33}}}constructor(...t){super(...t),$(this,ag),W(this,Fv,void 0),W(this,Ov,void 0),W(this,Cv,void 0),W(this,Pv,void 0),W(this,Dv,void 0),W(this,Rv,void 0),W(this,Lv,void 0),W(this,Bv,void 0),W(this,zv,void 0),W(this,Wv,void 0),W(this,Uv,null),W(this,$v,null),W(this,jv,void 0),W(this,qv,void 0),W(this,Vv,void 0),W(this,Gv,[]),W(this,Hv,[]),W(this,Kv,null),W(this,Xv,null),W(this,Yv,null),W(this,Qv,null),W(this,Jv,null),W(this,Zv,null),W(this,tg,new Map),W(this,eg,null),W(this,ng,null),W(this,ig,!1),W(this,rg,!1),W(this,og,[]),W(this,sg,null);const[e,n,i]=t;U(Fv,this,e),U(Ov,this,n),U(Cv,this,i),z(Fv,this)&&"function"==typeof z(Fv,this).enableFirstFrameRenderedGate&&z(Fv,this).enableFirstFrameRenderedGate(),U(Wv,this,new $m),U(jv,this,new tv),U(qv,this,null),U(Vv,this,null),U(Yv,this,null),U(Pv,this,(t=>L(ag,this,Ug).call(this,t))),z(Fv,this)&&"function"==typeof z(Fv,this).on&&(z(Fv,this).on(fv.VISUAL_FRAMES_AVAILABLE,z(Pv,this)),U(Dv,this,(()=>{var t,e,n,i;L(ag,this,hg).call(this),L(ag,this,Rg).call(this,0),U(Hv,this,[]),U(Kv,this,null),U(Uv,this,null),U($v,this,null),L(ag,this,Eg).call(this),U(eg,this,null);(null===(t=z(jv,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t))||null===(n=z(jv,this))||void 0===n||null===(i=n.reset)||void 0===i||i.call(n,z(qv,this))})),z(Fv,this).on(fv.TIMELINE_SEEKING,z(Dv,this)),U(Rv,this,(()=>L(ag,this,fg).call(this))),z(Fv,this).on(fv.TIMELINE_RESET,z(Rv,this)),U(zv,this,(()=>L(ag,this,Mg).call(this))),z(Fv,this).on(fv.TIMELINE_TIME_UPDATE,z(zv,this)),U(Lv,this,(()=>{L(ag,this,$g).call(this)&&z(Xv,this)&&L(ag,this,Ug).call(this,z(Xv,this))})),z(Fv,this).on(fv.TIMELINE_STATE_CHANGE,z(Lv,this))),U(Bv,this,(()=>{U(Kv,this,null),z(Xv,this)&&L(ag,this,$g).call(this)&&L(ag,this,Ug).call(this,z(Xv,this))})),z(Cv,this)&&"function"==typeof z(Cv,this).on&&z(Cv,this).on(fv.CONTAINER_RESIZE,z(Bv,this))}get name(){return"Renderer"}onDispose(){z(Fv,this)&&z(Pv,this)&&"function"==typeof z(Fv,this).off&&z(Fv,this).off(fv.VISUAL_FRAMES_AVAILABLE,z(Pv,this)),z(Fv,this)&&z(Dv,this)&&"function"==typeof z(Fv,this).off&&z(Fv,this).off(fv.TIMELINE_SEEKING,z(Dv,this)),z(Fv,this)&&z(Rv,this)&&"function"==typeof z(Fv,this).off&&z(Fv,this).off(fv.TIMELINE_RESET,z(Rv,this)),z(Fv,this)&&z(zv,this)&&"function"==typeof z(Fv,this).off&&z(Fv,this).off(fv.TIMELINE_TIME_UPDATE,z(zv,this)),z(Fv,this)&&z(Lv,this)&&"function"==typeof z(Fv,this).off&&z(Fv,this).off(fv.TIMELINE_STATE_CHANGE,z(Lv,this)),z(Cv,this)&&z(Bv,this)&&"function"==typeof z(Cv,this).off&&z(Cv,this).off(fv.CONTAINER_RESIZE,z(Bv,this)),L(ag,this,cg).call(this),U(Pv,this,null),U(Dv,this,null),U(Rv,this,null),U(zv,this,null),U(Lv,this,null),U(Bv,this,null),U(Wv,this,null),U(jv,this,null),U(tg,this,null),U(eg,this,null),U(Ov,this,null),U(Cv,this,null),U(Fv,this,null)}startTransition(t={}){var e;const n=null===(e=z(Ov,this))||void 0===e?void 0:e.element;if(!n)return null;if(L(ag,this,mg).call(this,n),!z(qv,this))return null;const i=z(jv,this).start({shaderGraph:z(qv,this),duration:null==t?void 0:t.duration,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition});return U(Yv,this,z(Xv,this)||null),L(ag,this,Bg).call(this),i}beginTransitionIn(t={}){var e,n;null!==(e=z(jv,this))&&void 0!==e&&null!==(n=e.beginIncoming)&&void 0!==n&&n.call(e,t),U(Yv,this,null),L(ag,this,Bg).call(this)}resetTransition(){var t,e;null!==(t=z(jv,this))&&void 0!==t&&null!==(e=t.reset)&&void 0!==e&&e.call(t,z(qv,this)),U(Yv,this,null),L(ag,this,zg).call(this)}}function cg(){if(L(ag,this,hg).call(this),z(jv,this)&&"function"==typeof z(jv,this).reset&&z(jv,this).reset(z(qv,this)),L(ag,this,Rg).call(this,0),z(qv,this)&&"function"==typeof z(qv,this).dispose)try{z(qv,this).dispose()}catch(t){}U(qv,this,null),U(Vv,this,null),U(Gv,this,[]),U(Hv,this,[]),U(Kv,this,null),U(Uv,this,null),U($v,this,null),U(Xv,this,null),U(Yv,this,null),L(ag,this,zg).call(this),L(ag,this,Eg).call(this),U(eg,this,null)}function ug(){return{schedule:"function"==typeof vd.requestAnimationFrame?vd.requestAnimationFrame.bind(vd):t=>setTimeout(t,16),cancel:"function"==typeof vd.cancelAnimationFrame?vd.cancelAnimationFrame.bind(vd):clearTimeout}}function dg(t){U(og,this,z(og,this).filter((e=>e!==t))),z(og,this).length||U(sg,this,null)}function hg(){z(sg,this)&&z(og,this).forEach((t=>z(sg,this).call(this,t))),U(og,this,[]),U(sg,this,null),U(rg,this,!1)}function fg(){L(ag,this,hg).call(this),U(ig,this,!1)}function pg(){if(z(ig,this)||z(rg,this))return;const{schedule:t,cancel:e}=L(ag,this,ug).call(this);let n;U(sg,this,e),U(rg,this,!0),n=t((()=>{let e;L(ag,this,dg).call(this,n),e=t((()=>{L(ag,this,dg).call(this,e),U(rg,this,!1),z(ig,this)||(U(ig,this,!0),z(Fv,this)&&"function"==typeof z(Fv,this).notifyFirstFrameRendered&&z(Fv,this).notifyFirstFrameRendered())})),z(og,this).push(e)})),z(og,this).push(n)}function mg(t){if(z(qv,this)||!t)return;const e=this,n={dest:t,src:(t,n)=>{U(Vv,e,n)}};U(qv,e,new Zp(n,{userWillCallRender:!0,glOptions:{contextType:"webgl2"},performanceToggles:{useCanvasSizedFilterTargets:!0}})),z(qv,e)&&"function"==typeof z(qv,e).addNodes&&z(qv,e).addNodes({[me.pipelineNodeId]:{type:"composite",options:{graph:[]}}})}function vg(){var t;const e=null===(t=this.settings)||void 0===t?void 0:t.resourceLimits;return!e||"object"!=typeof e||Array.isArray(e)?{}:e}function gg(){const t=L(ag,this,vg).call(this).enabled;return!0===t||!1!==t&&sv()}function yg(){if(!L(ag,this,gg).call(this))return 0;const t=Mv(L(ag,this,vg).call(this).transitionMinFrameIntervalMs,33);return Number.isFinite(t)&&t>0?t:0}function bg(t,e,n={}){const i=!0===(null==n?void 0:n.useDevicePixelRatio),r=L(ag,this,gg).call(this),o=i?Nv(null==vd?void 0:vd.devicePixelRatio,1):1;let s=o,a=0;if(r){const t=L(ag,this,vg).call(this);a=Mv(t.maxCanvasPixels,Av);const e=Mv(t.maxDevicePixelRatio,0);s=Nv(t.renderScale,1)*(e>0?Math.min(o,e):o)}let l=Math.max(1,Math.round(t*s)),c=Math.max(1,Math.round(e*s));if(r&&a>0){const t=l*c;if(t>a){const e=Math.sqrt(a/t);l=Math.max(1,Math.floor(l*e)),c=Math.max(1,Math.floor(c*e))}}return{width:l,height:c}}function kg(t=[],e={}){var n;const i=null===(n=z(Ov,this))||void 0===n?void 0:n.element,r=z(Vv,this);if(!i||"function"!=typeof r)return!1;let o=0,s=0;const a=!0===(null==e?void 0:e.useViewportSize);if(a){var l,c,u,d,h,f;const t=Number(null!==(l=null===(c=z(Cv,this))||void 0===c?void 0:c.containerWidth)&&void 0!==l?l:null===(u=z(Cv,this))||void 0===u?void 0:u.width),e=Number(null!==(d=null===(h=z(Cv,this))||void 0===h?void 0:h.containerHeight)&&void 0!==d?d:null===(f=z(Cv,this))||void 0===f?void 0:f.height);if(Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0)o=Math.round(t),s=Math.round(e);else{const t=Number(i.clientWidth),e=Number(i.clientHeight);Number.isFinite(t)&&Number.isFinite(e)&&t>0&&e>0&&(o=Math.round(t),s=Math.round(e))}}if(!(o>0&&s>0)){if(!Array.isArray(t)||!t.length)return;for(let e=0;e<t.length;e+=1){var p;const n=null===(p=t[e])||void 0===p?void 0:p.frame,i=Number((null==n?void 0:n.displayWidth)||(null==n?void 0:n.codedWidth)||(null==n?void 0:n.videoWidth)||(null==n?void 0:n.naturalWidth)||(null==n?void 0:n.width)),r=Number((null==n?void 0:n.displayHeight)||(null==n?void 0:n.codedHeight)||(null==n?void 0:n.videoHeight)||(null==n?void 0:n.naturalHeight)||(null==n?void 0:n.height));!Number.isFinite(i)||!Number.isFinite(r)||i<=0||r<=0||(i>o&&(o=i),r>s&&(s=r))}}if(!(o>0&&s>0))return!1;const m=L(ag,this,bg).call(this,o,s,{useDevicePixelRatio:a}),v=m.width,g=m.height,y=z(Kv,this);return!(y&&y.width===v&&y.height===g||(U(Kv,this,{width:v,height:g}),r(null,null,v,g),0))}function xg(t){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.trackId,i=null==t?void 0:t.segmentId,r=null==t?void 0:t.presentationTime;return e&&n&&i&&Number.isFinite(r)?`${e}:${n}:${i}@${r}`:null}function wg(t,e,n){const i=Number.isFinite(null==t?void 0:t.duration)&&t.duration>0?t.duration:void 0;let r;if(i&&Number.isFinite(null==t?void 0:t.offset)){const n=(e-t.offset)/i;r=n<0?0:n>1?1:n}const o=L(ag,this,_g).call(this,t),s=L(ag,this,Tg).call(this,o);return zm.getRenderTiming({type:o,timing:{duration:i,normalizedTime:r},timelineTime:e,active:t,renderNodeParams:n,state:s})}function _g(t){return zm.normalizeType(null==t?void 0:t.type)||zm.defaultType}function Tg(t){if(!t||!z(tg,this))return null;let e=z(tg,this).get(t);return e||(e={},z(tg,this).set(t,e)),e}function Ig(t){if(!t||!z(tg,this))return;const e=z(tg,this).get(t);e&&zm.resetRenderState(t,e),z(tg,this).delete(t)}function Eg(){z(tg,this)&&(zm.resetAllRenderStates(z(tg,this)),z(tg,this).clear())}function Sg(t,e,n,i){const r=L(ag,this,_g).call(this,t);z(eg,this)&&z(eg,this)!==r&&L(ag,this,Ig).call(this,z(eg,this)),U(eg,this,r);const o=L(ag,this,Tg).call(this,r);return zm.prepareRenderFrames({type:r,frames:e,timelineTime:n,timeline:z(Fv,this),active:t,renderNodeParams:i,state:o})}function Ag(t){var e;return null!=t&&t.params&&"object"==typeof t.params?t.params:!t&&null!==(e=this.settings)&&void 0!==e&&e.defaultRenderParams&&"object"==typeof this.settings.defaultRenderParams?this.settings.defaultRenderParams:{}}function Ng(t){return t?String(t.renderPlacementId||t.type||"unknown"):"default"}function Mg(){if(!z(Fv,this)||!z(Xv,this))return;const t=z(Fv,this).currentTime,e=z(Fv,this).getActiveRenderPlacement(t),n=L(ag,this,Ng).call(this,e);n!==z(ng,this)&&(U(ng,this,n),L(ag,this,Ug).call(this,{...z(Xv,this),time:t}))}function Fg(t){return!t||"object"!=typeof t||!Object.prototype.hasOwnProperty.call(t,"panAndScan")||!1!==t.panAndScan}function Og(t,e){const n=L(ag,this,Ag).call(this,t),i=null==n?void 0:n.stages;let r=Tv(null==i?void 0:i.pre),o=Tv(null==i?void 0:i.post);const s=L(ag,this,Fg).call(this,n),a=L(ag,this,_g).call(this,t),l=Iv(r,"retarget")||Iv(o,"retarget");if(s&&!l){const t=zm.getPanAndScanTarget(a);if("pre"===t){const t=Ev(Array.isArray(e)?e.length:0);t&&(r=[t,...r])}else if("post"===t){const t=Ev(1);t&&(o=[...o,t])}}else s||(r=Sv(r),o=Sv(o));return{preStages:r,postStages:o,renderNodeParams:n}}function Cg(t,e,n,i,r){const o=r||L(ag,this,wg).call(this,t,n,i),s=L(ag,this,Og).call(this,t,e);return z(Wv,this).build({layoutType:null==t?void 0:t.type,frames:e,preStages:s.preStages,postStages:s.postStages,normalizedTime:o.normalizedTime,renderNodeDuration:o.duration,renderNodeParams:s.renderNodeParams,timelineTime:n})}function Pg(){var t,e;const n=null===(t=z(jv,this))||void 0===t||null===(e=t.getState)||void 0===e?void 0:e.call(t);return"out"===(null==n?void 0:n.phase)?z(jv,this).buildOutgoingGraph():"in"===(null==n?void 0:n.phase)?z(jv,this).buildIncomingGraph():null}function Dg(t,e,n,i){const r=n||e!==z(Uv,this),o=r||i;return r&&z(qv,this)&&"function"==typeof z(qv,this).updateOptions&&(z(qv,this).updateOptions(me.pipelineNodeId,{graph:t}),U(Uv,this,e)),z(qv,this)&&"function"==typeof z(qv,this).selectNode&&z($v,this)!==me.pipelineNodeId&&(z(qv,this).selectNode(me.pipelineNodeId),U($v,this,me.pipelineNodeId)),!(!o||!z(qv,this)||"function"!=typeof z(qv,this).render||(z(qv,this).render({noRaf:!0}),0))}function Rg(t){if(!Array.isArray(z(Gv,this))||!z(Gv,this).length)return;const e=Number.isFinite(t)?Math.max(0,t):0;if(!(z(Gv,this).length<=e)){for(let t=e;t<z(Gv,this).length;t+=1){const e=z(Gv,this)[t];if(e&&z(qv,this)&&"function"==typeof z(qv,this).releaseTexture)try{z(qv,this).releaseTexture(e)}catch(t){}}z(Gv,this).length=e,z(Hv,this).length=e}}function Lg(t=[]){if(!z(qv,this)||"function"!=typeof z(qv,this).addTexture)return!1;if("function"==typeof z(qv,this).isContextUnavailable&&z(qv,this).isContextUnavailable())return!1;if(!Array.isArray(t)||!t.length)return L(ag,this,Rg).call(this,0),!1;L(ag,this,Rg).call(this,t.length);let e=!1;for(let i=0;i<t.length;i+=1){var n;z(Gv,this)[i]||"function"!=typeof z(qv,this).addTexture||(z(Gv,this)[i]=z(qv,this).addTexture(null,"frame",i));const r=L(ag,this,xg).call(this,t[i]),o=null===(n=t[i])||void 0===n?void 0:n.frame;if(z(Gv,this)[i]&&o&&(!r||r!==z(Hv,this)[i]))try{z(Gv,this)[i].fill(o),z(Hv,this)[i]=r,e=!0}catch(t){}}return e}function Bg(){if(z(Qv,this))return;const t="function"==typeof vd.requestAnimationFrame?t=>vd.requestAnimationFrame(t):t=>setTimeout(t,16),e="function"==typeof vd.cancelAnimationFrame?t=>vd.cancelAnimationFrame(t):clearTimeout;U(Jv,this,e);const n=()=>{var e,i;if(null!==(e=z(jv,this))&&void 0!==e&&null!==(i=e.getState)&&void 0!==i&&i.call(e)){if(z(Xv,this)){const t=L(ag,this,yg).call(this),e=Date.now();(!t||!z(Zv,this)||e-z(Zv,this)>=t)&&(U(Zv,this,e),L(ag,this,Ug).call(this,z(Xv,this)))}U(Qv,this,t(n))}else U(Qv,this,null)};U(Qv,this,t(n))}function zg(){z(Qv,this)&&z(Jv,this)&&z(Jv,this).call(this,z(Qv,this)),U(Qv,this,null),U(Jv,this,null),U(Zv,this,null)}function Wg(t){var e,n;const i=null===(e=z(jv,this))||void 0===e||null===(n=e.getState)||void 0===n?void 0:n.call(e);return"out"===(null==i?void 0:i.phase)&&z(Yv,this)?z(Yv,this):t}function Ug(t={}){var e,n;const i=null===(e=z(Ov,this))||void 0===e?void 0:e.element,r=null===(n=z(Ov,this))||void 0===n?void 0:n.gl;if(!i||!r)return;if(t&&U(Xv,this,t),!L(ag,this,$g).call(this))return;const o=L(ag,this,Wg).call(this,t),s=Number.isFinite(null==o?void 0:o.time)?o.time:void 0;if(!Number.isFinite(s))return;if(L(ag,this,mg).call(this,i),!z(qv,this))return;const a=z(Fv,this)&&"function"==typeof z(Fv,this).getActiveRenderPlacement?z(Fv,this).getActiveRenderPlacement(s):void 0,l=L(ag,this,Ng).call(this,a);l!==z(ng,this)&&U(ng,this,l);const c=Array.isArray(null==o?void 0:o.frames)?o.frames:[],u=L(ag,this,Ag).call(this,a),d=L(ag,this,Fg).call(this,u),h=L(ag,this,Sg).call(this,a,c,s,u),f=L(ag,this,wg).call(this,a,s,u),p=L(ag,this,kg).call(this,h,{useViewportSize:d}),m=L(ag,this,Lg).call(this,h),v=L(ag,this,Cg).call(this,a,h,s,u,f),g=L(ag,this,Pg).call(this);let y=v.graph,b=v.signature,k=!!v.isDynamic;g&&Array.isArray(g.graph)&&g.graph.length&&(y=y.concat(g.graph),b=`${b}|${g.signature||"transition"}`,k=k||!!g.forceUpdate);const x=p||m||k||g&&Array.isArray(g.graph)&&g.graph.length;L(ag,this,Dg).call(this,y,b,k,x)&&h.length&&L(ag,this,pg).call(this)}function $g(){var t;const e=null===(t=z(Fv,this))||void 0===t?void 0:t.state;return e===gv||e===bv||e===yv||e===xv}function jg(t){return"number"==typeof t&&Number.isFinite(t)&&t>0}function qg(t){return t&&"resource"===t.entryType&&t.transferSize>0&&t.duration>0&&t.responseEnd>=t.requestStart}function Vg(t){return Array.isArray(t)&&0!==t.length?t.reduce(((t,e)=>t+e),0)/t.length:NaN}me=lg;var Gg=new WeakMap,Hg=new WeakMap,Kg=new WeakMap,Xg=new WeakMap,Yg=new WeakSet;class Qg extends fd{get name(){return"DownloadSpeedGuesstimator"}get defaults(){return{persistentStorage:{key:"ekoDownloadSpeedKbps",ttl:-1},priorities:[["resourceTiming","downlink","persistentValue"],["resourceTiming","downlink"],["resourceTiming","persistentValue","ua"],["resourceTiming","ua","defaultKbps"],["downlink","persistentValue"],["downlink"],["persistentValue"],["connectionType"],["ua"],["defaultKbps"]],defaultKbps:2500,connectionType:{"slow-2g":50,"2g":70,"3g":700,"4g":3500,bluetooth:750,cellular:750,ethernet:3500,wifi:2500,wimax:2500,none:0},ua:{desktop:2500,ios:2500,android:2500}}}constructor(...t){super(...t),$(this,Yg),W(this,Gg,void 0),W(this,Hg,void 0),W(this,Kg,void 0),W(this,Xg,void 0),U(Gg,this,!!(vd&&vd.navigator&&vd.navigator.connection)),U(Hg,this,!(!vd||!vd.performance||"function"!=typeof vd.performance.getEntriesByType)),U(Kg,this,L(Yg,this,Zg).call(this)),U(Xg,this,L(Yg,this,ry).call(this))}guesstimate(){const t=L(Yg,this,sy).call(this);this.log.debug("[guesstimate] Data:",t);const e=L(Yg,this,oy).call(this,t),n=jg(e)?e:t.defaultKbps;return L(Yg,this,ty).call(this,n),this.log.info(`[guesstimate] Result: ${n} kbps`),n}update(t){jg(t)&&L(Yg,this,ty).call(this,t)}onDispose(){U(Kg,this,void 0),U(Xg,this,void 0)}}function Jg(){return Math.round(Date.now()/1e3)}function Zg(){try{if(!vd||!vd.localStorage||"function"!=typeof vd.localStorage.getItem)return}catch(t){return}const t=this.settings.persistentStorage.key,e=vd.localStorage.getItem(t);if(e)try{const t=JSON.parse(e),n=this.settings.persistentStorage.ttl,i=L(Yg,this,Jg).call(this)-t.timestamp;if("number"==typeof n&&n>=0&&i>n)return null;if(!jg(t.value))return;return t.value}catch(t){return}}function ty(t){if(!jg(t))return;try{if(!vd||!vd.localStorage||"function"!=typeof vd.localStorage.setItem)return}catch(t){return}const e=this.settings.persistentStorage.key,n=JSON.stringify({value:t,timestamp:L(Yg,this,Jg).call(this)});try{vd.localStorage.setItem(e,n),U(Kg,this,t)}catch(t){}}function ey(){return vd&&vd.performance&&"function"==typeof vd.performance.getEntriesByType?Vg(vd.performance.getEntriesByType("resource").filter(qg).map((t=>8*t.transferSize/t.duration))):NaN}function ny(){if(!vd||!vd.navigator||!vd.navigator.connection)return NaN;const t=vd.navigator.connection.downlink;return jg(t)?1e3*t:NaN}function iy(){if(!z(Gg,this))return NaN;const t=vd.navigator.connection,e=t.effectiveType||t.type,n=this.settings.connectionType||{};return e&&Object.prototype.hasOwnProperty.call(n,e)?n[e]:NaN}function ry(){const t=this.settings.ua||{};return ov()?t.android:sv()?t.ios:t.desktop}function oy(t){const e=Array.isArray(this.settings.priorities)?this.settings.priorities:[];for(let n=0;n<e.length;n+=1){const i=e[n];if(!Array.isArray(i)||0===i.length)continue;const r=i.map((e=>t[e])).filter((t=>jg(t)));if(r.length===i.length)return this.log.debug("[#selectFromPriorities] Selected from priorities:",i,"with values:",r),Vg(r)}return NaN}function sy(){const t=this.settings.testOverrides||{},e=jg(t.resourceTiming)?t.resourceTiming:L(Yg,this,ey).call(this),n=jg(t.downlink)?t.downlink:L(Yg,this,ny).call(this),i=jg(t.persistentValue)?t.persistentValue:z(Kg,this),r=jg(t.connectionType)?t.connectionType:L(Yg,this,iy).call(this),o=jg(t.ua)?t.ua:z(Xg,this);return{defaultKbps:this.settings.defaultKbps,resourceTiming:e,downlink:n,connectionType:r,persistentValue:i,ua:o}}const ay=new ad;function ly(t){return"string"!=typeof t||0===t.length?[]:t.split(".").filter((t=>t.length>0))}function cy(t){if("string"!=typeof t)return!1;if(0===t.length)return!1;const e=Number(t);return Number.isInteger(e)&&String(e)===t}function uy(t){return null!==t&&"object"==typeof t}function dy(t,e,n){const i=ly(e);if(0===i.length)return void 0===t?n:t;let r=t;for(let t=0;t<i.length;t+=1){if(null==r)return n;if(r=r[i[t]],void 0===r)return n}return void 0===r?n:r}function hy(t,e,n){if(!uy(t))return t;const i=ly(e);if(0===i.length)return t;let r=t;for(let t=0;t<i.length;t+=1){const e=i[t];if(t===i.length-1){r[e]=n;break}uy(r[e])||(r[e]=cy(i[t+1])?[]:{}),r=r[e]}return t}const fy={get:(t,e)=>vd&&vd.eko?dy(vd.eko,t,e):e,set(t,e){if(vd)return vd.eko&&"object"==typeof vd.eko||(vd.eko={}),hy(vd.eko,t,e),vd.eko}},py=vd&&vd.performance,my=py&&"function"==typeof py.now?()=>py.now():()=>Date.now();function vy(){return"undefined"==typeof AbortController?null:new AbortController}function gy(){const t=new Error("The operation was aborted");return t.name="AbortError",t.code="ABORT_ERR",t}function yy(t,e){return!(!e||!e.aborted)||!!t&&("AbortError"===t.name||"ABORT_ERR"===t.code||20===t.code)}const by=2,ky=100,xy=2,wy="runtime.downloadSpeedSamples",_y=sd("download","warn");function Ty(t){return new Promise((e=>{setTimeout(e,t)}))}function Iy(t){return t>=500}function Ey(t){if(!t||!t.headers||"function"!=typeof t.headers.get)return 0;const e=t.headers.get("content-length");if(!e)return 0;const n=Number(e);return Number.isNaN(n)||n<0?0:n}function Sy(t,e,n,i,r,o){const s={bytes:t,durationMs:e,kbps:e>0?8*t/e:0,startTime:n,endTime:i,url:o};try{let t=fy.get(r);t||(t=[],fy.set(r,t)),t.push(s)}catch(t){}return s}async function Ay(t,e={}){const{method:n="GET",headers:i,body:r,retries:o=by,retryDelay:s=ky,backoffFactor:a=xy,samplesTargetPath:l=wy,fetch:c,loglevel:u="warn",cache:d,signal:h,onProgress:f,returnType:p="default"}=e;_y.setLevel(u);const m=function(t){if(t)return t;if(vd&&"function"==typeof vd.fetch)return vd.fetch.bind(vd);throw new Error("fetch is not available in this environment")}(c);let v=0,g=s;for(;;){if(h&&h.aborted)throw gy();const e=my();try{const s=await m(t,{method:n,headers:i,body:r,cache:d,mode:"cors",signal:h});if(h&&h.aborted)throw gy();if(!s.ok){if(v<o&&Iy(s.status)){v+=1,_y.warn(`[${t}] Download attempt #${v} failed with status ${s.status}, retrying in ${g}ms...`),await Ty(g),g*=a;continue}_y.error(`[${t}] Download attempt #${v} failed with status ${s.status}, no more retries.`);const e=new Error(`Download failed with status ${s.status}`);throw e.status=s.status,e}let c=my();const u=Ey(s),y="arrayBuffer"===p||"bytes"===p,b=y&&"function"==typeof f;let k,x,w,_,T,I=0;if(y&&s.body&&"function"==typeof s.body.getReader&&b){const t=s.body.getReader(),e=[];for(;;){if(h&&h.aborted)throw gy();const{done:n,value:i}=await t.read();if(n)break;if(i&&i.length){const t=my();Number.isFinite(_)||(_=t),T=t,e.push(i),I+=i.length,f({loaded:I,total:u||void 0,chunk:i})}}k=new Uint8Array(I);let n=0;e.forEach((t=>{k.set(t,n),n+=t.length})),c=my()}else if(y){const t=await s.arrayBuffer();k=new Uint8Array(t),I=k.length,c=my()}else"text"===p?(x=await s.text(),c=my()):"json"===p&&(w=await s.json(),c=my());if(h&&h.aborted)throw gy();const E=y?k?k.length:I:("text"===p&&"string"==typeof x?x.length:0)||("json"===p&&w?JSON.stringify(w).length:0),S=u||E||0;let A=e,N=c;Number.isFinite(_)&&(A=_,Number.isFinite(T)&&(N=Math.max(T,c))),(!Number.isFinite(A)||!Number.isFinite(N)||N<A)&&(A=e,N=c);const M=Math.max(0,N-A),F=Sy(S,M,A,N,l,t);try{ay.trigger("download:sample",F)}catch(t){}const O={response:s,bytes:S,durationMs:M,kbps:F.kbps,startTime:F.startTime,endTime:F.endTime};if("default"===p)return O;if("arrayBuffer"===p||"bytes"===p){const t=k||new Uint8Array(await s.arrayBuffer());return"arrayBuffer"===p?t.buffer:t}return"text"===p?x:"json"===p?w:O}catch(e){if(yy(e,h))throw"AbortError"===e.name?e:gy();if(!(v<o)||e.status&&!Iy(e.status))throw _y.error(`[${t}] Download attempt #${v} failed with error ${e}, no more retries.`),e;v+=1,_y.warn(`[${t}] Download attempt #${v} failed with error ${e}, retrying in ${g}ms...`),await Ty(g),g*=a}}}const Ny={disabledTracks:{default:["audio"],targetPaths:["NodeRepository.disabledTracks"]},muted:{default:!1,targetPaths:["AudioPlaybackManager.muted"]},volume:{default:1,targetPaths:["AudioPlaybackManager.volume"]},encodeProfile:{default:null,targetPaths:["AssetsDeliveryService.profile"]},forceVideoCodec:{default:void 0,targetPaths:["NodeRepository.forceVideoCodec"]},forceImageFallback:{default:!1,targetPaths:["NodeRepository.forceImageFallback"]},mediaHostRewriteMap:{default:{"storageeko.s3.amazonaws.com":"https://storage.eko.com","studioz-post.s3.amazonaws.com":"https://studioz-post.eko.com"},targetPaths:["NodeRepository.mediaHostRewriteMap"]},playbackRate:{default:1,targetPaths:["PlaybackClock.playbackRate"]},initialKbps:{default:"auto",targetPaths:["DownloadSpeed.initialKbps"]},defaultRenderParams:{default:void 0,targetPaths:["Renderer.defaultRenderParams"]},maxBufferedVideoFrames:{default:24,targetPaths:["Timeline.maxBufferedVideoFrames"]},waitingBufferAheadSeconds:{default:3,targetPaths:["Timeline.waitingBufferAheadSeconds"]},abrStrategy:{default:"auto",targetPaths:["ABRSelector.abrStrategy"]},segmentEvictionEnabled:{default:!0,targetPaths:["SegmentEvictionCoordinator.enabled"]},segmentEvictionBufferBehindSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferBehindSeconds"]},segmentEvictionBufferAheadSeconds:{default:30,targetPaths:["SegmentEvictionCoordinator.bufferAheadSeconds"]},segmentEvictionMaxRetainedBytes:{default:52428800,targetPaths:["SegmentEvictionCoordinator.maxRetainedBytes"]},autoplay:{default:!0,targetPaths:["Idle.autoplay"]},autoPauseOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoPauseOnVisibilityChange"]},autoResumeOnVisibilityChange:{default:!0,targetPaths:["DocumentVisibility.autoResumeOnVisibilityChange"]},trackingEnabled:{default:!0,targetPaths:["Tracker.trackingEnabled"]}},My=Object.freeze(Object.entries(Ny).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,"default")&&(t[e]=n.default),t)),{})),Fy=sd("config","warn");function Oy(t){return My[t]}var Cy=new WeakMap,Py=new WeakMap,Dy=new WeakMap,Ry=new WeakMap,Ly=new WeakMap,By=new WeakSet;class zy extends fd{get name(){return"DownloadSpeed"}get defaults(){return{alpha:.3,maxSamples:30,minBytesPerSample:1024,minDurationMs:5,maxSampleKbpsCap:void 0,ignoreCacheHits:!0,samplesPath:"runtime.downloadSpeedSamples",initialKbps:Oy("initialKbps"),probeUrl:void 0,defaultKbps:2500}}constructor(...t){super(...t),$(this,By),W(this,Cy,void 0),W(this,Py,void 0),W(this,Dy,void 0),W(this,Ry,void 0),W(this,Ly,void 0),U(Dy,this,[]),U(Py,this,0),U(Cy,this,L(By,this,$y).call(this)),U(Ly,this,vy()),U(Ry,this,(t=>{L(By,this,Ky).call(this,t,"event")})),L(By,this,jy).call(this),ay.on("download:sample",z(Ry,this)),L(By,this,qy).call(this),this.log.debug(`[#constructor] Initial estimate: ${z(Cy,this)} kbps`)}getKbps(){return z(Cy,this)}addSample(t){L(By,this,Ky).call(this,t,"manual")}reset(){U(Dy,this,[]),U(Py,this,0),U(Cy,this,L(By,this,$y).call(this))}onDispose(){z(Ly,this)&&z(Ly,this).abort(),U(Ly,this,null),ay.off("download:sample",z(Ry,this)),U(Dy,this,[]),U(Py,this,0),U(Cy,this,void 0),U(Ry,this,null)}}function Wy(t,e){return!!(this.settings.ignoreCacheHits&&(0===e||t&&"boolean"==typeof t.cached&&t.cached||t&&"number"==typeof t.transferSize&&"number"==typeof t.encodedBodySize&&t.transferSize<=t.encodedBodySize))}function Uy(t){if(!t||"object"!=typeof t)return null;const e=Number(t.bytes),n=Number(t.durationMs);let i=jg(t.kbps)?Number(t.kbps):NaN;return!jg(i)&&n>0&&jg(e)&&(i=8*e/n),jg(i)?e<=this.settings.minBytesPerSample||n<=this.settings.minDurationMs||L(By,this,Wy).call(this,t,e)?null:(jg(this.settings.maxSampleKbpsCap)&&i>this.settings.maxSampleKbpsCap&&(i=this.settings.maxSampleKbpsCap),{...t,bytes:e,durationMs:n,kbps:i}):null}function $y(){const t=this.settings.initialKbps;if(jg(t))return t;if("auto"===t)try{const t=(new Qg).guesstimate();if(jg(t))return t}catch(t){}return this.settings.defaultKbps}function jy(){const t=fy.get(this.settings.samplesPath,[]);if(!Array.isArray(t)||0===t.length)return;const e=t.slice(-this.settings.maxSamples);for(let t=0;t<e.length;t+=1)L(By,this,Ky).call(this,e[t],"replay",{emit:!1})}async function qy(){if(!this.settings.probeUrl||z(Py,this)>0)return;const t=z(Ly,this)?z(Ly,this).signal:void 0;if(!t||!t.aborted)try{await Ay(this.settings.probeUrl,{cache:"no-store",samplesTargetPath:this.settings.samplesPath,signal:t})}catch(t){}}function Vy(t){return"number"==typeof t.startTime&&"number"==typeof t.endTime&&Number.isFinite(t.startTime)&&Number.isFinite(t.endTime)&&t.startTime>=0&&t.endTime>t.startTime}function Gy(t,e){if(!L(By,this,Vy).call(this,t)||!L(By,this,Vy).call(this,e))return 0;const n=Math.max(t.startTime,e.startTime);return Math.min(t.endTime,e.endTime)-n}function Hy(t){if(!L(By,this,Vy).call(this,t))return t;const e=[];for(let n=0;n<z(Dy,this).length;n+=1){const i=z(Dy,this)[n];L(By,this,Vy).call(this,i)&&(L(By,this,Gy).call(this,t,i)>0&&e.push(i))}if(0===e.length)return t;U(Dy,this,z(Dy,this).filter((t=>!e.includes(t))));const n=[t,...e],i=n.reduce(((t,e)=>t+(e.bytes||0)),0),r=Math.min(...n.map((t=>t.startTime))),o=Math.max(...n.map((t=>t.endTime))),s=o-r;if(!jg(i)||s<=0)return t;const a={bytes:i,durationMs:s,kbps:8*i/s,startTime:r,endTime:o,url:t.url||e[e.length-1].url};return L(By,this,Uy).call(this,a)}function Ky(t,e,{emit:n=!0}={}){const i=L(By,this,Uy).call(this,t);if(!i)return;const r=L(By,this,Hy).call(this,i);if(!r)return;U(Py,this,z(Py,this)+1),z(Dy,this).push(r),z(Dy,this).length>this.settings.maxSamples&&z(Dy,this).shift();const o=this.defaults.alpha,s="number"==typeof this.settings.alpha?this.settings.alpha:o,a=jg(z(Cy,this)),l=a?z(Cy,this):r.kbps,c=a||1!==z(Py,this)?s*r.kbps+(1-s)*l:r.kbps;U(Cy,this,c),this.log.debug(`[#ingestSample] Next estimate: ${c} kbps`),n&&this.trigger("download:speed",{kbps:z(Cy,this),sample:r,source:e,samplesCount:z(Py,this)})}class Xy{constructor(t={}){const{id:e,url:n,uri:i,mime:r,codecs:o,bandwidth:s,timescale:a,sizeBytes:l,...c}=t;if(!e)throw new Error("Representation requires id");const u=n||i;if(!u)throw new Error("Representation requires url or uri");this.id=e,this.url=u,this.mime=r,this.codecs=o,this.baseCodec=function(t=""){if(!t||"string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(o),jg(s)&&(this.bandwidth=s),jg(a)&&(this.timescale=a),jg(l)&&(this.sizeBytes=l),Object.assign(this,c)}}class Yy{#P=new Map;#D;#R;#L=0;#B;constructor(t={}){const{id:e,offset:n=0,duration:i=0,isInit:r=!1,representations:o=[]}=t;if(!e)throw new Error("Segment requires id");o.forEach((t=>{if(!t||!t.url&&!t.uri)throw new Error("Segment representation must include uri or url")})),this.id=e,this.offset=n,this.duration=i,this.isInit=!!r,this.originalRepresentations=o.map((t=>t instanceof Xy?t:new Xy(t))),this.representations=this.originalRepresentations.map((t=>t)),this.appliedFilters=[],this.loadAttempts=0,this.loadError=void 0}setRepresentationBuffer(t,e){t&&e&&this.#P.set(t,e)}setDownloadProgress(t,e){const n=Number(t);Number.isFinite(n)&&n>=0&&(this.#L=Math.max(this.#L,n));const i=Number(e);Number.isFinite(i)&&i>0&&(this.#B=i)}setChosenRepresentation(t){this.#D=t;const e=null==t?void 0:t.id;if(!(this.isInit||!e||this.#P.size<=1))for(const t of this.#P.keys())t!==e&&this.#P.delete(t)}setABRDecisionSnapshot(t){if(!t||"object"!=typeof t)return void(this.#R=void 0);const e={...t};Array.isArray(t.availableRepresentations)&&(e.availableRepresentations=t.availableRepresentations.map((t=>({...t})))),this.#R=e}markLoadAttempt(){const t=Number(this.loadAttempts);this.loadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.loadError=void 0}setLoadError(t){this.loadError=t||new Error("Segment load failed")}getRepresentationBuffer(t){return this.#P.get(t)}get chosenRepresentation(){return this.#D}get abrDecision(){return this.#R}get arrayBuffer(){return this.#D?this.#P.get(this.#D.id):void 0}get retainedByteLength(){let t=0;for(const e of this.#P.values())e&&"number"==typeof e.byteLength&&(t+=e.byteLength);return t}get bufferedRatio(){var t;const e=jg(this.#B)?this.#B:null===(t=this.#D)||void 0===t?void 0:t.sizeBytes;return jg(e)?Math.min(1,Math.max(0,this.#L/e)):this.retainedByteLength>0?1:0}get isLoaded(){return this.retainedByteLength>0}evict(){this.#D=void 0,this.#R=void 0,this.#P.clear(),this.#L=0,this.#B=void 0}}class Qy{constructor(t={}){const{timestamp:e,name:n,data:i,isSticky:r=!1}=t;this.timestamp="number"==typeof e?e:0,this.name="string"==typeof n?n:"",this.data=i,this.isSticky="boolean"==typeof r&&r}}function Jy(t,e){const n=Number(null==t?void 0:t.offset),i=Number(null==t?void 0:t.duration);if(!e)return{offset:n,duration:i};const r=(null==t?void 0:t.chosenRepresentation)||(Array.isArray(null==t?void 0:t.representations)?t.representations[0]:void 0),o=Number(null==r?void 0:r.segStart),s=Number(null==r?void 0:r.segDuration);return Number.isFinite(o)&&Number.isFinite(s)&&s>0?{offset:o,duration:s}:{offset:n,duration:i}}function Zy(t,e,n={}){if(!Array.isArray(t)||!t.length)return;const i=Number(e);if(!Number.isFinite(i))return;const r=!!n.preferRepresentationTime;let o,s,a=-1/0;for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||n.isInit)continue;o||(o=n);const l=Jy(n,r);if(!Number.isFinite(l.offset))continue;const c=Number(l.duration);if(Number.isFinite(c)&&c>0&&i>=l.offset&&i<l.offset+c)return n;l.offset<=i&&l.offset>a&&(a=l.offset,s=n)}return s||o}const tb=new Set(["video","audio","image","cue","data","bbox"]);class eb{constructor(t={}){const{id:e,type:n,offset:i=0,duration:r,source:o,segments:s=[],cues:a=[]}=t;if(!e)throw new Error("Track requires id");if(!tb.has(n))throw new Error(`Track type must be one of ${Array.from(tb).join("|")}`);this.id=e,this.type=n,this.offset=i,this.duration=jg(r)?r:void 0,this.source=o,"cue"===n?(this._cues=a.map((t=>t instanceof Qy?t:new Qy(t))),this._segments=[]):(this._segments=s.map((t=>t instanceof Yy?t:new Yy(t))),this._cues=void 0)}get segments(){return this._segments.slice()}get cues(){if("cue"===this.type)return this._cues.slice()}get endTime(){if(jg(this.duration))return this.offset+this.duration;if(!this._segments.length)return;const t=this._segments.reduce(((t,e)=>{const n=jg(e.duration)?e.duration:0;return Math.max(t,e.offset+n)}),this.offset);return t}get buffered(){const t=this._segments.map((t=>({duration:jg(null==t?void 0:t.duration)?t.duration:0,offset:jg(null==t?void 0:t.offset)?t.offset:0,ratio:t&&!t.isInit&&"number"==typeof t.bufferedRatio?t.bufferedRatio:0}))).filter((t=>t.duration>0&&t.ratio>0));if(!t.length)return;const e=t.reduce(((t,e)=>Math.min(t,e.offset)),1/0),n=t.reduce(((t,e)=>{const n=e.offset+e.duration*Math.min(1,e.ratio);return Math.max(t,n)}),0);return!Number.isFinite(e)||!Number.isFinite(n)||n<=e?void 0:{start:e,end:n}}getMediaSegmentAtTime(t,e={}){return Zy(this._segments,t,e)}setSegments(t=[]){if("cue"===this.type)return;const e=Array.isArray(t)?t:[];this._segments=e.map((t=>t instanceof Yy?t:new Yy(t)))}}function nb(t){return"string"==typeof t?t:t&&"object"==typeof t?t.nodeId||t.nodeIdOrRef||t.id:void 0}function ib(t){const e=nb(t);let n=1;if(t&&"object"==typeof t&&jg(t.weight)&&(n=t.weight),!e)throw new Error("Child entry requires a nodeId");return{nodeId:e,weight:n}}function rb(t){return(Array.isArray(t)?t:[]).map((t=>ib(t)))}function ob(t,e=void 0){if("string"==typeof t){const e=t.match(/\d+\.?\d*/);if(e){const t=Number(e[0]);if(Number.isFinite(t))return t}}else if("number"==typeof t&&Number.isFinite(t))return t;return e}function sb(t,e){if(t){if(t.includes("$Number%")){const n=t.match(/\$Number%0(\d+)d\$/);if(n){const i=Number(n[1]),r=String(e).padStart(i,"0");return t.replace(/\$Number%0\d+d\$/,r)}}return t.replace(/\$Number\$/g,String(e))}}function ab(t,e){if(e)try{var n;return new URL(e,t||(null==vd||null===(n=vd.location)||void 0===n?void 0:n.href)||void 0).toString()}catch(t){return e}}const lb=new Map;class cb{static register(t,e){if(!t||"function"!=typeof e)throw new Error("ManifestFactory.register requires type and parser function");lb.set(t,e)}static inferType(t={}){const{typeHint:e,url:n,mimeType:i,body:r}=t;return e||function(t=""){const e=function(t=""){return t&&"string"==typeof t?t.split("#")[0].split("?")[0].toLowerCase():""}(t);return e.endsWith(".mpd")?"dash":e.endsWith(".ivd")?"ivd":e.endsWith(".jpg")||e.endsWith(".jpeg")||e.endsWith(".png")||e.endsWith(".webp")||e.endsWith(".gif")||e.endsWith(".avif")?"image":void 0}(n||"")||function(t=""){const e=t.toLowerCase();return e.includes("dash")||e.includes("mpd")||e.includes("xml")?"dash":e.includes("ivd")||e.includes("json")?"ivd":e.includes("image/")?"image":void 0}(i||"")||function(t=""){const e="string"==typeof t?t.trim():"";if(e.startsWith("<")&&e.includes("<MPD"))return"dash";if(e.startsWith("{"))try{const t=JSON.parse(e);if(t&&"object"==typeof t)return"ivd"}catch(t){return}}(r||"")}static parse(t={}){const e=cb.inferType(t);if(!e||!lb.has(e))throw new Error("Unsupported manifest type");return lb.get(e)(t)}}cb.register("dash",(function(t={}){const{body:e,url:n}=t,i=function(){if(vd&&"function"==typeof vd.DOMParser)return new vd.DOMParser;throw new Error("DOMParser is not available in this environment")}().parseFromString(e||"","application/xml"),r=i.getElementsByTagName("MPD")[0];if(!r)throw new Error("Invalid MPD");const o=i.getElementsByTagName("Period")[0],s=o?Array.from(o.getElementsByTagName("AdaptationSet")):[],a=[];let l=ob(r.getAttribute("mediaPresentationDuration"));l=Number.isFinite(l)?l:void 0,s.forEach(((t,e)=>{const i=t.getAttribute("mimeType")||"",r=function(t=""){const e=t.toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":e.includes("image")?"image":"data"}(i),o=t.getAttribute("id")||`${r}-${e+1}`,s=t.getElementsByTagName("SegmentTemplate")[0],c=Array.from(t.getElementsByTagName("Representation")).map((t=>function(t,e,n){const i=t.getAttribute("id")||t.getAttribute("representationId")||"",r=ob(t.getAttribute("bandwidth")),o=t.getAttribute("codecs"),s=t.getAttribute("mimeType")||e&&e.getAttribute("mimeType")||n,a=t.getElementsByTagName("SegmentTemplate")[0]||e;return{repId:i,bandwidth:r,codecs:o,mime:s,media:a?a.getAttribute("media"):void 0,initialization:a?a.getAttribute("initialization"):void 0,timescale:ob(a&&a.getAttribute("timescale"))||ob(e&&e.getAttribute("timescale"),1)||1,startNumber:ob(a&&a.getAttribute("startNumber"))||ob(e&&e.getAttribute("startNumber"),1)||1,timeline:function(t){const e=[],n=t.getElementsByTagName("SegmentTimeline")[0];if(!n)return e;const i=Array.from(n.getElementsByTagName("S"));let r=0;for(let t=0;t<i.length;t+=1){const n=i[t],o=ob(n.getAttribute("t")),s=ob(n.getAttribute("d")),a=ob(n.getAttribute("r"),0);if(!jg(s))continue;jg(o)&&(r=o);const l=a>=0?a:0;for(let t=0;t<=l;t+=1)e.push({start:r,duration:s}),r+=s}return e}(a)}}(t,s,i))),u=c.map((t=>({id:t.repId,url:ab(n,sb(t.initialization,t.startNumber)),bandwidth:t.bandwidth,mime:t.mime,codecs:t.codecs,timescale:t.timescale}))).filter((t=>t.url)),d=c.reduce(((t,e)=>{const n=Array.isArray(null==t?void 0:t.timeline)?t.timeline.length:0;return(Array.isArray(null==e?void 0:e.timeline)?e.timeline.length:0)>n?e:t}),c[0]),h=Array.isArray(null==d?void 0:d.timeline)?d.timeline:[],f=h.length,p=[],m=(null==d?void 0:d.timescale)||1;u.length>0&&p.push({id:`init-${o}`,offset:0,duration:0,isInit:!0,representations:u});for(let t=0;t<f;t+=1){const e=h[t];if(!e)continue;const i=c.map((e=>{const i=e.startNumber+t,r=e.timescale||m,o=Array.isArray(e.timeline)?e.timeline[t]:void 0;if(!o)return null;const s=o.start,a=o.duration;return{id:e.repId,url:ab(n,sb(e.media,i)),bandwidth:e.bandwidth,mime:e.mime,codecs:e.codecs,timescale:e.timescale,segIndex:t,segStart:s/r,segDuration:a/r}})).filter(Boolean);i.length&&p.push({id:`${o}-seg-${t+1}`,offset:e.start/m,duration:e.duration/m,isInit:!1,representations:i})}a.push({id:o,type:r,offset:0,duration:l,segments:p})}));const c=a[0]?a[0].id:void 0;return{id:n||r.getAttribute("id")||"mpd",mainTrackId:c,tracks:a,duration:l}})),cb.register("ivd",(function(t={}){var e;const{body:n,url:i}=t;let r;try{r="string"==typeof n?JSON.parse(n):n}catch(t){throw new Error("Invalid IVD manifest")}if(!r||"object"!=typeof r)throw new Error("Invalid IVD manifest");const o=Array.isArray(r.representations)?r.representations:[],s=new Map;o.forEach(((t,e)=>{const n=function(t){const e=(t.mimeType||"").toLowerCase();return e.includes("video")?"video":e.includes("audio")?"audio":"data"}(t),i=Number.isInteger(t.altIndex)?t.altIndex:0,r=`${n}-${i}`,o=(l=e,{id:`${(a=t).format||"unknownformat"}-${a.altIndex||0}-${a.label||l+1}`,url:a.url,mime:a.mimeType,codecs:a.codecs,bandwidth:a.bandwidth||a.audioBandwidth||a.videoBandwidth,sizeBytes:a.contentLength,duration:jg(a.duration)?a.duration:void 0,segIndex:Number.isInteger(a.segIndex)&&a.segIndex>=0?a.segIndex:0});var a,l;s.has(r)||s.set(r,{type:n,altIndex:i,reps:[]}),s.get(r).reps.push(o)}));const a=Array.from(s.values()).map(((t,e)=>{const n=new Map;t.reps.forEach((t=>{const e=Number.isInteger(t.segIndex)?t.segIndex:0;n.has(e)||n.set(e,[]),n.get(e).push(t)}));const i=Array.from(n.keys()).sort(((t,e)=>t-e));let o=0;const s=i.map((i=>{var r;const s=n.get(i)||[],a=(null===(r=s.find((t=>jg(t.duration))))||void 0===r?void 0:r.duration)||0,l={id:`${t.type}-${t.altIndex}-${e+1}-seg-${i+1}`,offset:o,duration:a,isInit:!1,representations:s.map((t=>{const{duration:e,segIndex:n,...i}=t;return i}))};return o+=a,l})),a=s.reduce(((t,e)=>t+(jg(e.duration)?e.duration:0)),0),l=jg(r.duration)?r.duration:a||void 0;return{id:`${t.type}-${t.altIndex}-${e+1}`,type:t.type,offset:0,duration:l,segments:s}})),l=r.mainTrackId||(null===(e=a.find((t=>"video"===t.type)))||void 0===e?void 0:e.id)||a[0]&&a[0].id,c=a.find((t=>t.id===l)),u=(null==c?void 0:c.duration)||void 0;return{id:r.id||i||"ivd",metadata:r.metadata||{},mainTrackId:l,tracks:a,duration:u}})),cb.register("image",(function(t={}){const e=null==t?void 0:t.url;if(!e||"string"!=typeof e)throw new Error("ImageParser requires url");const n=jg(null==t?void 0:t.duration)?t.duration:30,i=jg(null==t?void 0:t.width)?t.width:void 0,r=jg(null==t?void 0:t.height)?t.height:void 0,o={id:"image-1",url:e,mime:"string"==typeof(null==t?void 0:t.mimeType)?t.mimeType:void 0};jg(i)&&jg(r)&&(o.width=i,o.height=r);const s="image-1";return{id:e,metadata:{},mainTrackId:s,tracks:[{id:s,type:"image",offset:0,duration:n,segments:[{id:"image-1-seg-1",offset:0,duration:n,isInit:!1,representations:[o]}]}],duration:n}}));const ub=["video/mp4"];function db(t){return ub.includes(t.mime)}var hb={name:"containers",fn:function(t=[]){return t.filter(db)},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}};const fb=new(ve=new WeakMap,ge=new WeakSet,class extends fd{get name(){return"MediaCapabilities"}get defaults(){return{enabled:!0,smoothWeight:10,powerWeight:10,ignoreSmooth:!1,ignorePower:!0,codecBonus:{av01:.2,hvc1:.15,hev1:.15,vp09:.1,avc1:0}}}constructor(...t){super(...t),$(this,ge),W(this,ve,void 0),U(ve,this,new Map)}onDispose(){z(ve,this)&&z(ve,this).clear()}async sortRepsCodecs(t=[]){if(!Array.isArray(t)||0===t.length)return[];const e=[],n=new Set;let i=0;t.forEach((t=>{const r=null==t?void 0:t.baseCodec;r&&!n.has(r)&&(n.add(r),e.push({codec:r,rep:t,index:i}),i+=1)}));const r=(await Promise.all(e.map((async t=>{const{score:e}=await L(ge,this,yb).call(this,t.rep);return{...t,score:e}})))).sort(((t,e)=>{const n=e.score-t.score;return 0!==n?n:t.index-e.index}));return this.log.info("[sortRepsCodecs] Sorted entries:",r),r.map((t=>t.codec))}});function pb(){return!!(vd&&vd.navigator&&vd.navigator.mediaCapabilities&&"function"==typeof vd.navigator.mediaCapabilities.decodingInfo)}function mb(t){if(!t||"object"!=typeof t)return void this.log.debug("[#buildConfig] Invalid representation:",t);const e=t.mime||t.mimeType||"",n=function(t="",e=""){const n=t||"",i=e||"";return i?`${n}; codecs="${i}"`:n}(e,t.codecs||"");return function(t=""){return t.toLowerCase().includes("video")}(e)?(this.log.debug("[#buildConfig] Building video config for:",t),{type:"file",video:{contentType:n,width:t.width||1920,height:t.height||1080,bitrate:t.videoBandwidth||t.bandwidth||0,framerate:t.framerate||t.frameRate||24}}):function(t=""){return t.toLowerCase().includes("audio")}(e)?(this.log.debug("[#buildConfig] Building audio config for:",t),{type:"file",audio:{contentType:n,channels:t.channels||2,bitrate:t.audioBandwidth||t.bandwidth||0,samplerate:t.audioSamplingRate||48e3}}):void this.log.debug("[#buildConfig] Unknown mime type:",e)}function vb(t){return t?JSON.stringify(t):"invalid"}async function gb(t){if(!this.settings.enabled||!L(ge,this,pb).call(this)||!t)return this.log.debug("[#queryCapabilities] Not supported, returning false",t),{supported:!1,smooth:!1,powerEfficient:!1};const e=L(ge,this,vb).call(this,t),n=z(ve,this).get(e);if(n)return n;let i;try{i=await vd.navigator.mediaCapabilities.decodingInfo(t)}catch(t){i={supported:!1,smooth:!1,powerEfficient:!1}}return this.log.debug("[#queryCapabilities] Config:",t,"\nDecoding info result:",i),z(ve,this).set(e,i),i}async function yb(t){if(L(ge,this,kb).call(this,t))return this.log.debug("[#scoreRepresentation] Blocking HEVC on Firefox versions below support threshold",null==t?void 0:t.codecs),{score:-1e3,capability:{supported:!1,smooth:!1,powerEfficient:!1}};const e=L(ge,this,mb).call(this,t),n=await L(ge,this,gb).call(this,e),i=function(t="",e={}){const n=(t||"").toLowerCase();return Object.keys(e).reduce(((t,i)=>n.includes(i.toLowerCase())?e[i]:t),0)}(t.codecs||"",this.settings.codecBonus);let r=0;return n.supported&&(r+=1),!this.settings.ignoreSmooth&&n.smooth&&(r+=this.settings.smoothWeight),!this.settings.ignorePower&&n.powerEfficient&&(r+=this.settings.powerWeight),r+=i,{score:r,capability:n}}function bb(){if(!cv())return!1;const t=uv();return!Number.isFinite(t)||t<150}function kb(t){if(!L(ge,this,bb).call(this))return!1;const e=function(t=""){const e=String(t||"").toLowerCase(),[n]=e.split(".");return n||""}((null==t?void 0:t.baseCodec)||(null==t?void 0:t.codecs)||"");return"hvc1"===e||"hev1"===e}const xb=[],wb=()=>!0;[hb,{name:"force-video-codec",fn:function(t=[],{node:e}={}){const n=function(t){if("string"!=typeof t)return;const e=t.split(",")[0].trim();if(!e)return;const n=e.match(/^[a-z0-9]+/i);return n?n[0].toLowerCase():void 0}(null==e?void 0:e.forceVideoCodec);if(!n)return t;const i=t.filter((t=>(null==t?void 0:t.baseCodec)===n));return i.length?i:t},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}},{name:"media-capabilities",fn:async function(t=[],{track:e}){if(null==e||!e.preferredCodec){const n=await fb.sortRepsCodecs(t);if(!Array.isArray(n)||0===n.length)return t;e.preferredCodec=n[0]}return t.filter((t=>(null==t?void 0:t.baseCodec)===e.preferredCodec))},isRelevantForTrack:function(t){return"video"===(null==t?void 0:t.type)}}].forEach((({name:t,fn:e,isRelevantForTrack:n})=>{!function(t,e,{isRelevantForTrack:n}={}){if(!t||"function"!=typeof e)throw new Error("registerRepresentationFilter requires a name and function");const i="function"==typeof n?n:wb;xb.push({name:t,fn:e,isRelevantForTrack:i})}(t,e,{isRelevantForTrack:n})}));const _b=sd("Node","warn"),Tb={start:0,end:0},Ib=.001;function Eb(t){if(!Array.isArray(t)||!t.length)return;const e=t.map((t=>{const e=Number(null==t?void 0:t.segStart),n=Number(null==t?void 0:t.segDuration);return!Number.isFinite(e)||!Number.isFinite(n)||n<=0?null:{start:e,duration:n}}));if(e.some((t=>!t)))return;const n=e[0];return e.every((t=>Math.abs(t.start-n.start)<=Ib&&Math.abs(t.duration-n.duration)<=Ib))?{offset:n.start,duration:n.duration}:void 0}var Sb=new WeakMap,Ab=new WeakMap,Nb=new WeakMap,Mb=new WeakMap,Fb=new WeakMap,Ob=new WeakMap,Cb=new WeakMap,Pb=new WeakMap,Db=new WeakMap,Rb=new WeakMap,Lb=new WeakSet;class Bb extends ad{constructor(t={},e={}){super(),$(this,Lb),W(this,Sb,void 0),W(this,Ab,void 0),W(this,Nb,void 0),W(this,Mb,void 0),W(this,Fb,void 0),W(this,Ob,void 0),W(this,Cb,void 0),W(this,Pb,void 0),W(this,Db,void 0),W(this,Rb,[]);const{id:n,manifestRef:i,duration:r,width:o,height:s,metadata:a={},children:l=[]}=t;if(!n)throw new Error("Node requires id");if(!i)throw new Error("Node requires manifestRef");this.id=n,this.manifestRef=i,this.metadata=a,this.state="pending",this.error=void 0,this.tracks=[],this.mainTrackId=void 0,this.imageFallbackActive=!1,this.disabledTracks=[],this.disabledTrackTypes=Array.isArray(e.disabledTracks)?e.disabledTracks.filter((t=>"string"==typeof t)):[],this.enabledRepFilters=Array.isArray(e.enabledRepFilters)?e.enabledRepFilters:void 0,this.forceVideoCodec="string"==typeof e.forceVideoCodec&&e.forceVideoCodec.trim()?e.forceVideoCodec.trim():void 0,U(Cb,this,!0===e.forceImageFallback),U(Sb,this,e.abrSelector),U(Ab,this,e.assetsDeliveryService),U(Mb,this,jg(r)?r:void 0),U(Fb,this,jg(o)?o:void 0),U(Ob,this,jg(s)?s:void 0),U(Pb,this,e&&"object"==typeof e.mediaHostRewriteMap?e.mediaHostRewriteMap:void 0),U(Db,this,jg(e.maxManifestLoadAttempts)?e.maxManifestLoadAttempts:1/0),this.manifestLoadAttempts=0,this.manifestLoadError=void 0,U(Rb,this,rb(l))}setChildren(t){const e=rb(t);return L(Lb,this,nk).call(this,e,{emit:!0})}addChild(t){const e=ib(t),n=z(Rb,this).slice(),i=n.findIndex((t=>(null==t?void 0:t.nodeId)===e.nodeId));if(i>=0){var r;if((null===(r=n[i])||void 0===r?void 0:r.weight)===e.weight)return this.children;n[i]=e}else n.push(e);return L(Lb,this,nk).call(this,n,{emit:!0})}removeChild(t){const e=nb(t);if(!e)return this.children;const n=z(Rb,this).filter((t=>(null==t?void 0:t.nodeId)!==e));return n.length===z(Rb,this).length?this.children:L(Lb,this,nk).call(this,n,{emit:!0})}async load(t={}){const{loadingMode:e="full",signal:n}=t;_b.info(`[load] [${this.id}] Loading node in '${e}' mode`);try{if(n&&n.aborted)throw gy();"ready"!==this.state&&await this.resolve({signal:n});const t="partial"===e,i=[];this.tracks.forEach((e=>{const n=e.segments||[];if(t){const t=n.find((t=>t.isInit)),r=n.find((t=>!t.isInit));t&&Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t}),r&&Array.isArray(r.representations)&&!r.isLoaded&&i.push({track:e,segment:r})}else n.forEach((t=>{Array.isArray(t.representations)&&!t.isLoaded&&i.push({track:e,segment:t})}))}));const r=i.filter((({segment:t})=>t.isInit)),o=i.filter((({segment:t})=>!t.isInit)),s=o.length?o[0]:void 0,a=r.map((({track:t,segment:e})=>L(Lb,this,Jb).call(this,t,e,n))),l=s?L(Lb,this,Zb).call(this,s.segment,s.track,n):Promise.resolve();await Promise.all([...a,l]);const c=s?o.slice(1):o;for(const t of c)await L(Lb,this,Zb).call(this,t.segment,t.track,n);if(n&&n.aborted)throw gy();return this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:e}),this}catch(t){if(yy(t,n))throw t;throw this.trigger("node:loaderror",{nodeId:this.id,node:this,error:t,loadingMode:e}),t}}async loadMediaSegmentsAtOffset(t,e={}){const n=Number(t);if(_b.info(`[loadMediaSegmentsAtOffset] [${this.id}] Loading media segments at offset ${n}`),!Number.isFinite(n))return;const{signal:i}=e;if(i&&i.aborted)throw gy();if("ready"!==this.state&&await this.resolve({signal:i}),"ready"!==this.state)return;const r=[],o=[];if(this.tracks.forEach((t=>{const e=(null==t?void 0:t.segments)||[];if(!Array.isArray(e)||!e.length)return;const s=e.find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));s&&!s.isLoaded&&r.push(L(Lb,this,Jb).call(this,t,s,i)),e.forEach((e=>{if(!e||e.isInit||!Array.isArray(e.representations))return;const i=Number(e.offset);Number.isFinite(i)&&Math.abs(i-n)<=Ib&&!e.isLoaded&&o.push({segment:e,track:t})}))})),r.length||o.length){if(await Promise.all(r),o.length&&await Promise.all(o.map((({segment:t,track:e})=>L(Lb,this,Zb).call(this,t,e,i)))),i&&i.aborted)throw gy();this.trigger("node:loaded",{nodeId:this.id,node:this,loadingMode:"segment-offset",offsetSeconds:n})}}async resolve(t={}){const{signal:e,manifestOverride:n}=t;let i=!0;for(;i;){if(i=!1,"ready"===this.state)return this;if("resolving"===this.state)try{return await z(Nb,this)}catch(t){if(!yy(t)||e&&e.aborted)throw t;i=!0;continue}if(e&&e.aborted)throw gy();if(this.hasExceededManifestLoadAttempts()){const t=this.manifestLoadError||new Error("Manifest load retry limit reached");throw this.state="failed",this.error=t,t}const t=L(Lb,this,Vb).call(this);return this.state="resolving",this.error=void 0,U(Nb,this,(async()=>{try{const t=await L(Lb,this,tk).call(this,{signal:e,manifestOverride:n});if(e&&e.aborted)throw gy();let i=cb.parse(t);return i=L(Lb,this,qb).call(this,i),this.tracks=(i.tracks||[]).map((t=>t instanceof eb?t:new eb(t))),this.mainTrackId=i.mainTrackId||this.mainTrackId,this.metadata=i.metadata||this.metadata,L(Lb,this,rk).call(this),L(Lb,this,ik).call(this),await L(Lb,this,ek).call(this),this.state="ready",this}catch(n){if(yy(n,e))throw L(Lb,this,Gb).call(this,t),n;throw this.state="failed",this.error=n,n}})()),z(Nb,this)}return z(Nb,this)}evict(){this.tracks.forEach((t=>{(t.segments||[]).forEach((t=>{t.evict()}))}))}get children(){return z(Rb,this).slice()}set children(t){this.setChildren(t)}get duration(){if(!this.mainTrackId)return 0;const t=this.tracks.find((t=>t.id===this.mainTrackId));return t?jg(t.duration)?t.duration:t.endTime:0}get retainedByteLength(){let t=0;return this.tracks.forEach((e=>{(Array.isArray(e.segments)?e.segments:[]).forEach((e=>{t+=jg(e.retainedByteLength)?e.retainedByteLength:0}))})),t}get buffered(){if("ready"!==this.state)return Tb;const t=Array.isArray(this.tracks)?this.tracks.find((t=>(null==t?void 0:t.id)===this.mainTrackId)):void 0,e=this.duration;if(!t||!jg(e))return Tb;const n=Array.isArray(this.tracks)?this.tracks.map((t=>{if(!t||void 0===t.buffered)return;const e=t.buffered;return e&&Number.isFinite(e.start)&&Number.isFinite(e.end)?{track:t,range:e}:void 0})).filter(Boolean):[];if(!n.length)return Tb;if(n.length===this.tracks.length&&n.every((({track:t,range:e})=>{const n=t.endTime,i=jg(t.offset)?t.offset:0;return Number.isFinite(n)&&e.start<=i&&e.end>=n})))return{start:0,end:e};const i=n.reduce(((t,{range:e})=>Math.min(t,e.end)),1/0);if(!Number.isFinite(i))return Tb;const r=Math.min(i,e);return r>0?{start:0,end:r}:Tb}get isLoaded(){return"ready"===this.state&&(Array.isArray(this.tracks)?this.tracks:[]).flatMap((t=>Array.isArray(null==t?void 0:t.segments)?t.segments:[])).every((t=>t.isLoaded))}hasExceededManifestLoadAttempts(){if(!Number.isFinite(z(Db,this))||z(Db,this)<=0)return!1;if(!this.manifestLoadError)return!1;const t=Number(this.manifestLoadAttempts);return Number.isFinite(t)&&t>=z(Db,this)}}function zb(t){return function(t,e){if(!t||"string"!=typeof t)return t;if(!e||"object"!=typeof e)return t;const n=vd&&"function"==typeof vd.URL?vd.URL:"function"==typeof URL?URL:null;if(!n)return t;let i;try{i=new n(t)}catch(e){return t}const r=function(t,e){const n=null==t?void 0:t.hostname,i=null==t?void 0:t.pathname;if("string"!=typeof n||"string"!=typeof i)return t;if(!/^s3(?:[.-][a-z0-9-]+)?\.amazonaws\.com$/i.test(n))return t;const r=i.split("/").filter(Boolean);if(r.length<2)return t;const o=r[0],s=new e(t.toString());return s.hostname=`${o}.${n}`,s.pathname=`/${r.slice(1).join("/")}`,s}(i,n),o=e[r.hostname]?r:i,s=e[o.hostname];if(!s||"string"!=typeof s)return t;let a;try{a=new n(s)}catch(e){return t}return a.protocol&&a.host?(o.protocol=a.protocol,o.host=a.host,o.toString()):t}(t,z(Pb,this))}function Wb(){return z(Cb,this)||void 0===vd.VideoDecoder}function Ub(){return this.manifestRef&&"object"==typeof this.manifestRef&&"assets-delivery-service"===this.manifestRef.type}function $b(t){if(!L(Lb,this,Ub).call(this))return!1;if(!L(Lb,this,Wb).call(this))return!1;const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0];return"image"!==(null==n?void 0:n.type)}function jb(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],n=function(t){const e=Number(null==t?void 0:t.duration);if(Number.isFinite(e)&&e>0)return e;const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[];let i=0;return n.forEach((t=>{if(null!=t&&t.isInit)return;const e=Number(null==t?void 0:t.offset),n=Number(null==t?void 0:t.duration);!Number.isFinite(e)||!Number.isFinite(n)||n<=0||(i=Math.max(i,e+n))})),i>0?i:void 0}(e.find((e=>(null==e?void 0:e.id)===(null==t?void 0:t.mainTrackId)))||e[0]);return jg(n)?n:jg(z(Mb,this))?z(Mb,this):void 0}function qb(t){if(this.imageFallbackActive=!1,!L(Lb,this,$b).call(this,t))return t;if(!z(Ab,this)||"function"!=typeof z(Ab,this).resolveImageOne)return t;const e=z(Ab,this).resolveImageOne(this.manifestRef),n=L(Lb,this,zb).call(this,null==e?void 0:e.url);if(!n)return t;const i={typeHint:"image",url:n,duration:L(Lb,this,jb).call(this,t),width:z(Fb,this),height:z(Ob,this)},r=cb.parse(i);return t&&"object"==typeof t.metadata&&!Array.isArray(t.metadata)&&(r.metadata=t.metadata),this.imageFallbackActive=!0,r}function Vb(){return{state:this.state,error:this.error,tracks:this.tracks,mainTrackId:this.mainTrackId,metadata:this.metadata,imageFallbackActive:this.imageFallbackActive,disabledTracks:this.disabledTracks,manifestRef:this.manifestRef,manifestLoadAttempts:this.manifestLoadAttempts,manifestLoadError:this.manifestLoadError}}function Gb(t){t&&(this.state=t.state,this.error=t.error,this.tracks=t.tracks,this.mainTrackId=t.mainTrackId,this.metadata=t.metadata,this.imageFallbackActive=t.imageFallbackActive,this.disabledTracks=t.disabledTracks,this.manifestRef=t.manifestRef,this.manifestLoadAttempts=t.manifestLoadAttempts,this.manifestLoadError=t.manifestLoadError)}function Hb(){const t=Number(this.manifestLoadAttempts);this.manifestLoadAttempts=Number.isFinite(t)&&t>0?t+1:1,this.manifestLoadError=void 0}function Kb(t){this.manifestLoadError=t||new Error("Manifest load failed")}function Xb(t){if(!t)return null;const e={loadAttempts:Number(t.loadAttempts),loadError:t.loadError};if("function"==typeof t.markLoadAttempt)return t.markLoadAttempt(),e;const n=Number(t.loadAttempts);return t.loadAttempts=Number.isFinite(n)&&n>0?n+1:1,t.loadError=void 0,e}function Yb(t,e){if(!t||!e)return;const n=Number(e.loadAttempts);t.loadAttempts=Number.isFinite(n)&&n>=0?n:0,t.loadError=e.loadError}function Qb(t,e){t&&("function"!=typeof t.setLoadError?t.loadError=e||new Error("Segment load failed"):t.setLoadError(e))}async function Jb(t,e,n){const i=L(Lb,this,Xb).call(this,e);try{const i=e.representations.map((async i=>{const r=L(Lb,this,zb).call(this,i.url),o=await Ay(r,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{e&&"function"==typeof e.setDownloadProgress&&e.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==t?void 0:t.id,trackType:null==t?void 0:t.type,segmentId:e.id,isInit:!0,loaded:n,total:i,chunk:r})}}),s=o instanceof ArrayBuffer?o:null==o?void 0:o.arrayBuffer;s&&e.setRepresentationBuffer(i.id,s)}));await Promise.all(i)}catch(t){if(yy(t,n))throw L(Lb,this,Yb).call(this,e,i),t;throw L(Lb,this,Qb).call(this,e,t),t}}async function Zb(t,e,n){const i=z(Sb,this),r={representations:t.representations,nodeId:this.id,trackId:null==e?void 0:e.id,segmentId:t.id},o=i&&"function"==typeof i.select?i.select(r):void 0,s=t.representations.find((t=>t.id===o))||t.representations[0];if(!s)return;t&&"function"==typeof t.setABRDecisionSnapshot&&t.setABRDecisionSnapshot(r.abrDecision),t.setChosenRepresentation(s);const a=L(Lb,this,Xb).call(this,t);try{const i=L(Lb,this,zb).call(this,s.url),r=await Ay(i,{returnType:"arrayBuffer",signal:n,onProgress:({loaded:n,total:i,chunk:r})=>{t&&"function"==typeof t.setDownloadProgress&&t.setDownloadProgress(n,i),this.trigger("segment:chunk",{nodeId:this.id,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:t.id,isInit:!1,loaded:n,total:i,chunk:r})}}),o=r instanceof ArrayBuffer?r:null==r?void 0:r.arrayBuffer;o&&(t.setRepresentationBuffer(s.id,o),t.setChosenRepresentation(s))}catch(e){if(yy(e,n))throw L(Lb,this,Yb).call(this,t,a),e;throw L(Lb,this,Qb).call(this,t,e),e}}async function tk(t={}){const{signal:e,manifestOverride:n}=t;if(e&&e.aborted)throw gy();L(Lb,this,Hb).call(this);try{let t=this.manifestRef;if(n&&"object"==typeof n){if(L(Lb,this,Ub).call(this)&&"string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...this.manifestRef,encodeProfile:n.encodeProfile},t=this.manifestRef),n.ivd)return{typeHint:"ivd",body:n.ivd};if(n.body){const t=L(Lb,this,zb).call(this,n.url);return{typeHint:n.typeHint,url:t,mimeType:n.mimeType,body:n.body,duration:z(Mb,this),width:z(Fb,this),height:z(Ob,this)}}"string"==typeof n.url&&n.url&&(t=n)}if(t&&"object"==typeof t&&"assets-delivery-service"===t.type){if(!z(Ab,this)||"function"!=typeof z(Ab,this).resolveOne)throw new Error("AssetsDeliveryService is required for assets-delivery-service manifestRef");const n=await z(Ab,this).resolveOne(t,{signal:e});if(!n)throw new Error("AssetsDeliveryService returned empty result");if("string"==typeof n.encodeProfile&&n.encodeProfile&&(this.manifestRef={...t,encodeProfile:n.encodeProfile}),n.ivd)return{typeHint:"ivd",body:n.ivd};const i=n.typeHint,r=L(Lb,this,zb).call(this,n.url),o=n.mimeType,s=n.body;if(r||s||o)return{typeHint:i,url:r,mimeType:o,body:s,duration:z(Mb,this),width:z(Fb,this),height:z(Ob,this)};throw new Error("AssetsDeliveryService returned unsupported manifest shape")}if(t&&"object"==typeof t){const e=L(Lb,this,zb).call(this,t.url),n=t.mimeType;if(t.body)return{url:e,mimeType:n,body:"string"==typeof t.body?t.body:JSON.stringify(t.body)}}if("string"==typeof t||t&&"string"==typeof t.url){const n="string"==typeof t?t:t.url,i=L(Lb,this,zb).call(this,n),r="object"==typeof t?t.typeHint:void 0,o="object"==typeof t?t.mimeType:void 0;if("image"===cb.inferType({typeHint:r,url:i,mimeType:o})){const e="object"==typeof t&&jg(t.duration)?t.duration:z(Mb,this);return{typeHint:"image",url:i,mimeType:o,duration:e,width:"object"==typeof t&&jg(t.width)?t.width:z(Fb,this),height:"object"==typeof t&&jg(t.height)?t.height:z(Ob,this)}}const s=await Ay(i,{returnType:"default",signal:e});return{url:i,body:s&&s.response&&"function"==typeof s.response.text?await s.response.text():void 0,mimeType:(s&&s.response&&s.response.headers&&"function"==typeof s.response.headers.get&&s.response.headers.get("content-type")?s.response.headers.get("content-type"):void 0)||o}}throw new Error("Node manifestRef is invalid or missing")}catch(t){if(yy(t,e))throw t;throw L(Lb,this,Kb).call(this,t),t}}async function ek(){const t=xb.slice().filter((t=>!this.enabledRepFilters||this.enabledRepFilters.includes(t.name)));if(t.length)for(let e=0;e<this.tracks.length;e+=1){const n=this.tracks[e],i=Array.isArray(n.segments)?n.segments:[],r=[];for(let e=0;e<i.length;e+=1){const o=i[e];if(!Array.isArray(o.representations)){r.push(o);continue}o.appliedFilters=o.appliedFilters||[];let s=o.representations;for(let e=0;e<t.length;e+=1){const{name:i,fn:r,isRelevantForTrack:a}=t[e];if(!a(n))continue;const l=await r(s,{segment:o,track:n,node:this});Array.isArray(l)&&(s=l),o.appliedFilters.push(i)}if(o.representations=s,o.representations.length){if(!o.isInit){const t=Eb(o.representations);t&&(o.offset=t.offset,o.duration=t.duration)}r.push(o)}}r.length!==i.length&&n&&"function"==typeof n.setSegments&&n.setSegments(r)}}function nk(t,{emit:e=!1}={}){return function(t=[],e=[]){if(!Array.isArray(t)||!Array.isArray(e)||t.length!==e.length)return!1;for(let n=0;n<t.length;n+=1){const i=t[n],r=e[n];if((null==i?void 0:i.nodeId)!==(null==r?void 0:r.nodeId)||(null==i?void 0:i.weight)!==(null==r?void 0:r.weight))return!1}return!0}(z(Rb,this),t)||(U(Rb,this,t),e&&(n=this)&&"function"==typeof n.trigger&&n.trigger("node:childrenchanged",{nodeId:n.id,node:n,children:Array.isArray(n.children)?n.children:[]})),this.children;var n}function ik(){var t;const e=Array.isArray(this.disabledTrackTypes)?this.disabledTrackTypes:[];if(!e.length||!Array.isArray(this.tracks)||!this.tracks.length)return void(this.disabledTracks=[]);const n=new Set(e),i=[],r=[];this.tracks.forEach((t=>{t&&n.has(t.type)?r.push(t):t&&i.push(t)})),this.tracks=i,this.disabledTracks=r,this.mainTrackId&&!i.some((t=>t.id===this.mainTrackId))&&(this.mainTrackId=null===(t=i[0])||void 0===t?void 0:t.id)}function rk(){if(!Array.isArray(this.tracks)||!this.tracks.length)return;const t=this.duration;if(!jg(t))return;const e=[new Qy({name:"nodestart",timestamp:0,data:{id:this.id},isSticky:!0}),new Qy({name:"nodeend",timestamp:t,data:{id:this.id}})],n=new eb({id:`${this.id}-auto-cue`,type:"cue",cues:e,offset:0,duration:t});this.tracks.push(n)}var ok=new WeakMap,sk=new WeakMap,ak=new WeakMap,lk=new WeakMap,ck=new WeakSet;class uk extends fd{constructor(...t){super(...t),$(this,ck),W(this,ok,new Map),W(this,sk,new Map),W(this,ak,void 0),W(this,lk,void 0);const[e,n]=t;U(ak,this,e),U(lk,this,n)}get name(){return"NodeRepository"}get defaults(){return{enabledRepFilters:["containers","force-video-codec","media-capabilities"],disabledTracks:Oy("disabledTracks"),forceVideoCodec:Oy("forceVideoCodec"),forceImageFallback:Oy("forceImageFallback"),mediaHostRewriteMap:Oy("mediaHostRewriteMap"),maxManifestLoadAttempts:3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"get","list"])}onDispose(){z(ok,this).forEach(((t,e)=>{const n=z(sk,this).get(e);n&&t&&"function"==typeof t.off&&t.off(fv.NODE_CHILDREN_CHANGED,n)})),z(sk,this).clear(),z(ok,this).clear()}add(t){const e=t instanceof Bb?t:new Bb(t,{enabledRepFilters:this.settings.enabledRepFilters,disabledTracks:this.settings.disabledTracks,forceVideoCodec:this.settings.forceVideoCodec,forceImageFallback:this.settings.forceImageFallback,mediaHostRewriteMap:this.settings.mediaHostRewriteMap,maxManifestLoadAttempts:this.settings.maxManifestLoadAttempts,abrSelector:z(ak,this),assetsDeliveryService:z(lk,this)});if(!e.id)throw new Error("NodeRepository.add requires node with id");if(z(ok,this).has(e.id))throw new Error(`NodeRepository.add: node with id ${e.id} already exists`);return z(ok,this).set(e.id,e),L(ck,this,dk).call(this,e),this.trigger(fv.NODE_ADD,{node:e}),e}get(t){const e=(null==t?void 0:t.id)||t;if(!e)throw new Error("NodeRepository.get requires node or id");return z(ok,this).get(e)}list(){return Array.from(z(ok,this).values())}}function dk(t){if(!t||"function"!=typeof t.on||!t.id)return;const e=t=>{this.trigger(fv.NODE_CHILDREN_CHANGED,t)};t.on(fv.NODE_CHILDREN_CHANGED,e),z(sk,this).set(t.id,e)}var hk=new WeakMap,fk=new WeakMap,pk=new WeakSet;class mk extends fd{constructor(...t){super(...t),$(this,pk),W(this,hk,void 0),W(this,fk,new Map);const[e]=t;U(hk,this,e)}get name(){return"ABRSelector"}get defaults(){return{safetyMargin:.35,minBufferForUpgrade:5,minBufferCritical:1,hysteresisRatio:1.1,abrStrategy:Oy("abrStrategy")}}select(t={}){var e;const{representations:n=[],bufferSeconds:i}=t;if(!Array.isArray(n)||0===n.length)return;const r=z(hk,this)&&"function"==typeof z(hk,this).getKbps?z(hk,this).getKbps():void 0,o=L(pk,this,vk).call(this,n[0]),s=z(fk,this).get(o),a=this.settings.abrStrategy||"auto";this.log.debug(`[select] strategy=${a}, bw=${r}, buffer=${i}, prev=${s}`);const l=n.slice().sort(((t,e)=>L(pk,this,gk).call(this,t.bandwidth)-L(pk,this,gk).call(this,e.bandwidth)));if("bottom"===a){const e=l[0];return L(pk,this,kk).call(this,e,t,{decisionReason:"strategy:bottom",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("top"===a){const e=l[l.length-1];return L(pk,this,kk).call(this,e,t,{decisionReason:"strategy:top",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}if("random"===a){const e=l[Math.floor(Math.random()*l.length)];return L(pk,this,kk).call(this,e,t,{decisionReason:"strategy:random",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:void 0,bufferSeconds:i}),null==e?void 0:e.id}const c=Number.isFinite(i)?i:void 0,u=jg(r)?r*this.settings.safetyMargin:void 0;let d="auto:highest-available";if(s&&void 0!==c&&c<this.settings.minBufferCritical){const e=l[0];return this.log.debug("[select] critical buffer -> lowest",t),L(pk,this,kk).call(this,e,t,{decisionReason:"auto:critical-buffer",trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null==e?void 0:e.id}let h=l[l.length-1];if(void 0!==u){const e=l.filter((t=>L(pk,this,gk).call(this,t.bandwidth)<=u));e.length>0?(h=e[e.length-1],d="auto:highest-under-safe-bandwidth",this.log.debug("[select] under safe bandwidth ->",h.id,t)):(this.log.debug("[select] no rep under safe bandwidth, fallback lowest",t),h=l[0],d="auto:no-rep-under-safe-bandwidth")}if(s&&void 0!==c&&c<this.settings.minBufferForUpgrade){const e=n.find((t=>t.id===s));e&&jg(e.bandwidth)&&jg(h.bandwidth)&&h.bandwidth/e.bandwidth>this.settings.hysteresisRatio&&(h=n.filter((t=>t.bandwidth&&t.bandwidth<=e.bandwidth*this.settings.hysteresisRatio)).sort(((t,e)=>t.bandwidth-e.bandwidth)).pop()||e,d="auto:hysteresis-hold",this.log.debug("[select] hysteresis prevents upgrade; hold",h.id,t))}return L(pk,this,kk).call(this,h,t,{decisionReason:d,trackType:o,previousRepresentationId:s,measuredDownloadSpeedKbps:r,safeBandwidthKbps:u,bufferSeconds:c}),null===(e=h)||void 0===e?void 0:e.id}onDispose(){z(fk,this).clear(),U(hk,this,null)}}function vk(t){var e,n;return(null===(e=t.mime)||void 0===e||null===(n=e.split)||void 0===n||null===(n=n.call(e,"/"))||void 0===n?void 0:n[0])||"unknown"}function gk(t){return jg(t)?t/1e3:0}function yk(t){return jg(t)?t/1e3:void 0}function bk(t,e,n={}){const i=Array.isArray(null==e?void 0:e.representations)?e.representations.map((t=>({id:null==t?void 0:t.id,bandwidthKbps:L(pk,this,yk).call(this,null==t?void 0:t.bandwidth)}))):[];return{timeMs:Date.now(),strategy:this.settings.abrStrategy||"auto",decisionReason:n.decisionReason,nodeId:null==e?void 0:e.nodeId,trackId:null==e?void 0:e.trackId,segmentId:null==e?void 0:e.segmentId,trackType:n.trackType,measuredDownloadSpeedKbps:Number.isFinite(n.measuredDownloadSpeedKbps)?n.measuredDownloadSpeedKbps:void 0,safeBandwidthKbps:Number.isFinite(n.safeBandwidthKbps)?n.safeBandwidthKbps:void 0,bufferSeconds:Number.isFinite(n.bufferSeconds)?n.bufferSeconds:void 0,previousRepresentationId:n.previousRepresentationId,selectedRepresentationId:null==t?void 0:t.id,selectedRepresentationBandwidthKbps:L(pk,this,yk).call(this,null==t?void 0:t.bandwidth),safetyMargin:Number(this.settings.safetyMargin),minBufferForUpgrade:Number(this.settings.minBufferForUpgrade),minBufferCritical:Number(this.settings.minBufferCritical),hysteresisRatio:Number(this.settings.hysteresisRatio),availableRepresentations:i}}function kk(t,e,n={}){if(!t)return;const i=L(pk,this,bk).call(this,t,e,n);e&&"object"==typeof e&&(e.abrDecision=i),this.log.info("[select] Chosen representation:",t,"context:",e,"decision:",i),this.trigger("abr:selection",{representation:t,context:e,strategy:this.settings.abrStrategy,decision:i});const r=L(pk,this,vk).call(this,t);z(fk,this).set(r,t.id)}var xk=new WeakMap,wk=new WeakSet;class _k extends fd{constructor(...t){super(...t),$(this,wk),W(this,xk,void 0);const[e]=t;if(U(xk,this,e),!z(xk,this)||"function"!=typeof z(xk,this).list)throw new Error("NodePrioritizer requires a NodeRepository instance")}get name(){return"NodePrioritizer"}get defaults(){return{levelMultiplier:1,priorityMultiplier:.3}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"sortNodes"])}onDispose(){U(xk,this,null)}getPrioritizationSnapshot(t){const e=z(xk,this).list();if(!e.length)return{orderedIds:[],reachableIds:[]};const{levels:n,weights:i}=L(wk,this,Tk).call(this,e,t);return{orderedIds:L(wk,this,Ik).call(this,e,n,i),reachableIds:Array.from(n.keys())}}sortNodes(t){const{orderedIds:e}=this.getPrioritizationSnapshot(t);return e.length?(this.log.info(`[sortNodes(${t})] Sorted nodes: [${e.join(", ")}]`),e):[]}getReachableNodeIds(t){const{reachableIds:e}=this.getPrioritizationSnapshot(t);return e}}function Tk(t,e){const n=new Map;t.forEach((t=>{t&&t.id&&n.set(t.id,t)}));const i=new Map,r=new Map;if(!e||!n.has(e))return{levels:i,weights:r};const o=[{id:e,level:0,priority:1}];for(i.set(e,0),r.set(e,1);o.length;){const{id:t,level:e,priority:s}=o.shift(),a=n.get(t),l=Array.isArray(null==a?void 0:a.children)?a.children:[];for(let t=0;t<l.length;t+=1){const a=l[t],c=(null==a?void 0:a.nodeId)||(null==a?void 0:a.id);if(!c||!n.has(c)||i.has(c))continue;const u=jg(null==a?void 0:a.weight)?a.weight:1,d=Math.max(u,s);i.set(c,e+1),r.set(c,d),o.push({id:c,level:e+1,priority:d})}}return{levels:i,weights:r}}function Ik(t,e,n){const i=e.size>0,{levelMultiplier:r,priorityMultiplier:o}=this.settings,s=t.map((t=>{var s;const a=e.has(t.id)?e.get(t.id):i?Number.MAX_SAFE_INTEGER:0,l=Number.isFinite(a)?a:Number.MAX_SAFE_INTEGER,c=null!==(s=n.get(t.id))&&void 0!==s?s:1,u=(Number.isFinite(l)?r*l:Number.MAX_SAFE_INTEGER)+o*c;return{id:t.id,score:u,level:l,priorityWeight:c}}));return s.sort(((t,e)=>t.score!==e.score?t.score-e.score:t.level!==e.level?t.level-e.level:t.priorityWeight!==e.priorityWeight?t.priorityWeight-e.priorityWeight:t.id.localeCompare(e.id))),s.map((t=>t.id))}function Ek(t,e){return function(t,e){const n=Array.isArray(t)?t:[];return n.length?e&&n.includes(e)?e:n[0]:e||void 0}(null==t?void 0:t.availableEncodeProfiles,e)}function Sk(t,e){const n=t&&"object"==typeof t?{...t}:t;return n&&"object"==typeof n?("string"==typeof e&&e?n.encodeProfile=e:delete n.encodeProfile,n):n}function Ak(t){return"string"==typeof t&&t.startsWith("cmaf:")}function Nk(t){return"image"===(null==t?void 0:t.assetType)?"image":"ivd"}function Mk(t){if(!t||"object"!=typeof t)return t;if(Object.prototype.hasOwnProperty.call(t,"mpd")){const e="string"==typeof t.mpdUrl&&t.mpdUrl||"string"==typeof t.url&&t.url||void 0;return{typeHint:"dash",body:t.mpd,url:e}}return t.ivd||t.url||t.body||t.mimeType||t.typeHint?t:(e=t)&&"object"==typeof e&&Array.isArray(e.representations)?{ivd:t}:t;var e}var Fk=new WeakMap,Ok=new WeakMap,Ck=new WeakSet;class Pk extends fd{constructor(...t){super(...t),$(this,Ck),W(this,Fk,void 0),W(this,Ok,void 0);const[,e={}]=t;U(Fk,this,"function"==typeof e.fetchFn?e.fetchFn:void 0),U(Ok,this,vy())}get name(){return"AssetsDeliveryService"}get defaults(){return{assetsDeliveryServiceUrl:"https://assets.eko.com",profile:Oy("encodeProfile"),maxBatchSize:5,imageQueryParams:{startOffset:0,width:1024}}}async resolveOne(t,e={}){var n;const i=await this.resolve([t],e);if(!i.length)return;const r=i[0],o=null==r?void 0:r.manifest,s=null==r||null===(n=r.manifestRef)||void 0===n?void 0:n.encodeProfile;return o&&"object"==typeof o&&"string"==typeof s&&s?{...o,encodeProfile:s}:o}resolveImageOne(t){if(!L(Ck,this,Rk).call(this,t))return;const e=Ek(t,this.settings.profile),n=function(t,e,n){const i=(t||"").replace(/\/$/,""),r=null==e?void 0:e.assetId,o=null==e?void 0:e.assetRevision;if(!i||"string"!=typeof r||"number"!=typeof o)return;const s=`${i}/image/${encodeURIComponent(r)}/${o}`,a=function(t){if(!t||"object"!=typeof t||Array.isArray(t))return"";const e=new URLSearchParams;return Object.keys(t).forEach((n=>{if("string"!=typeof n||!n)return;const i=t[n];null!=i&&("number"!=typeof i||Number.isFinite(i))&&("string"!=typeof i&&"number"!=typeof i&&"boolean"!=typeof i||e.set(n,String(i)))})),e.toString()}(n);return a?`${s}?${a}`:s}(this.settings.assetsDeliveryServiceUrl||"",t,this.settings.imageQueryParams);if(!n)return;const i={typeHint:"image",url:n};return"string"==typeof e&&e&&(i.encodeProfile=e),i}async resolve(t=[],e={}){const n=(Array.isArray(t)?t:[t]).filter((t=>L(Ck,this,Rk).call(this,t)));if(!n.length)return[];const i=L(Ck,this,Dk).call(this,e);if(i&&i.aborted)return[];const r=[],o=this.settings.profile;n.forEach((t=>{if("image"!==Nk(t))return;const e=this.resolveImageOne(t);e&&e.url&&r.push({manifestRef:Sk(t,e.encodeProfile),manifest:{typeHint:"image",url:e.url}})}));const s=n.filter((t=>"image"!==Nk(t))).map((t=>function(t,e){const n=Ek(t,e);return{ref:t,profile:n,route:Ak(n)?"dash":"ivd"}}(t,o))),a=L(Ck,this,Bk).call(this,s);for(const{refs:t,route:e}of a){if(i&&i.aborted)return r;const{url:n}=L(Ck,this,zk).call(this,t,e),o=await L(Ck,this,Wk).call(this,n,{method:"GET",signal:i});o&&"object"==typeof o&&t.forEach((({ref:t,profile:e})=>{const n=`${t.assetId}:${t.assetRevision}`,i=o[n]||o[t.assetId]||o[t.assetId||n];i&&r.push({manifestRef:Sk(t,e),manifest:Mk(i)})}))}return r}onDispose(){z(Ok,this)&&z(Ok,this).abort(),U(Ok,this,null),U(Fk,this,null)}}function Dk(t){return t&&t.signal?t.signal:z(Ok,this)?z(Ok,this).signal:void 0}function Rk(t){const e="number"==typeof(null==t?void 0:t.assetRevision)&&Number.isFinite(t.assetRevision)&&t.assetRevision>=0;return t&&"assets-delivery-service"===t.type&&"string"==typeof t.assetId&&e}function Lk(t,e){const n=Number.isFinite(e)&&e>0?e:t.length,i=[];for(let e=0;e<t.length;e+=n)i.push(t.slice(e,e+n));return i}function Bk(t){if(!Array.isArray(t)||!t.length)return[];const e=[];t.forEach((t=>{const n=e[e.length-1];n&&n.route===t.route?n.refs.push(t):e.push({route:t.route,refs:[t]})}));const n=[];return e.forEach((t=>{L(Ck,this,Lk).call(this,t.refs,this.settings.maxBatchSize).forEach((e=>{n.push({route:t.route,refs:e})}))})),n}function zk(t,e="ivd"){const n=t.map((({ref:t,profile:e})=>function(t,e){const n=`${t.assetId}:${t.assetRevision}`;return e?`${n}:${e}`:n}(t,e))),i=new URLSearchParams({assets:n.join(","),type:"data"});return{url:`${(this.settings.assetsDeliveryServiceUrl||"").replace(/\/$/,"")}/${"dash"===e?"dash":"ivd"}?${i.toString()}`}}async function Wk(t,e){return z(Fk,this)?z(Fk,this).call(this,t,e):await Ay(t,{returnType:"json",method:(null==e?void 0:e.method)||"GET",signal:null==e?void 0:e.signal})}function Uk({prioritizer:t,repository:e,startNodeId:n,prioritizedIds:i,pendingIds:r,allowedIds:o,filter:s,fallbackToRepository:a=!0}={}){const l=Array.isArray(i)?i:t&&"function"==typeof t.sortNodes?t.sortNodes(n):[],c=a?(f=e)&&"function"==typeof f.list?f.list().map((t=>null==t?void 0:t.id)).filter(Boolean):[]:[],u=l.length?l:c,d=r?new Set(r):null,h=o?new Set(o):null;var f;return u.filter((t=>{if(!t)return!1;if(d&&d.has(t))return!1;if(h&&!h.has(t))return!1;const n=function(t,e){if(t&&"function"==typeof t.get)return t.get(e)}(e,t);return!(!n||"function"==typeof s&&!s(n,t))}))}const $k=(vd.requestAnimationFrame||vd.mozRequestAnimationFrame||vd.webkitRequestAnimationFrame||vd.msRequestAnimationFrame||(t=>vd.setTimeout(t,1e3/60))).bind(vd),jk=(vd.cancelAnimationFrame||vd.mozCancelAnimationFrame||vd.webkitCancelAnimationFrame||vd.msCancelAnimationFrame||(t=>vd.clearTimeout(t))).bind(vd),qk=sd("ticker","warn");let Vk,Gk=[],Hk=null,Kk=my();function Xk(){Kk=my();const t=[];let e,n;for(n=Gk.length-1;n>=0;--n)e=Gk[n],Kk>=e.lastTick+e.interval&&t.push(e);for(n=t.length-1;n>=0;--n)if(e=t[n],!e.stopped){e.lastTick=Kk;try{e.callback()}catch(t){console&&"function"==typeof console.error?console.error(t):qk.error(t)}}Vk=$k(Xk)}function Yk(){my()-Kk>=200&&(jk(Vk),Xk())}function Qk(t){let e=-1;for(let n=0;n<Gk.length;n+=1)if(Gk[n].callback===t){e=n;break}return e}function Jk(t,e=0){if(!t||"function"!=typeof t||"number"!=typeof e||e<0)return void qk.error("[start] Invalid arguments given to start method.",arguments);const n=Qk(t);return-1!==n?(qk.debug("[start] Callback already exists, overriding interval.",arguments),Gk[n].interval=e,t):(Gk.push({callback:t,interval:e,lastTick:my()}),1===Gk.length&&(Vk=$k(Xk),Hk||(Hk=vd.setInterval(Yk,1e3))),t)}function Zk(t){const e=Qk(t);-1!==e?(Gk[e].stopped=!0,Gk.splice(e,1),Gk.length||(jk(Vk),vd.clearInterval(Hk),Hk=null)):qk.debug("[stop] Callback not found, doing nothing.",arguments)}function tx(t){return-1!==Qk(t)}function ex(t,e,n){const i="number"==typeof n?n:(null==n?void 0:n.maxQueueSize)||Number.POSITIVE_INFINITY,r=null!=n&&n.immediatelyFlushFirst?"boolean"==typeof n.immediatelyFlushFirst?n.immediatelyFlushFirst?1:0:Number(n.immediatelyFlushFirst):0;let o=0;if("function"!=typeof t)return void qk.error("[createThrottler] Bad argument given to createThrottler, first argument must be a function.",arguments);qk.debug("[createThrottler] Creating a new throttler instance.",arguments);const s=[];function a(){qk.debug("[onThrottlerTick] Calling callback with "+s.length+" queued items.");const e=s.slice(0);s.length=0,Zk(a),t(e)}const l={push:function(t){qk.debug("[push] Queuing argument:",t),0===s.length&&Jk(a,e),s.push(t),o+=1,(o<=r||s.length>=i)&&a()},flush:function(){qk.debug("[flush] Flushing queue."),0!==s.length&&a()},dispose:function(){qk.debug("[dispose] Disposing of throttler.");const t=s.slice(0);return s.length=0,Zk(a),t}};return Object.defineProperty(l,"interval",{enumerable:!0,get:function(){return e},set:function(t){"number"==typeof t&&(e=t)}}),l}function nx(t,e){if(t&&"function"==typeof t)return t.__tickerThrottler||(t.__tickerThrottler=ex((function(){t()}),e)),"number"==typeof e&&(t.__tickerThrottler.interval=e),t.__tickerThrottler.push(),t.__tickerThrottler;qk.error("[scheduleExecution] Bad argument given to scheduleExecution, first argument must be a function.",arguments)}var ix=new WeakMap,rx=new WeakMap,ox=new WeakMap,sx=new WeakMap,ax=new WeakMap,lx=new WeakMap,cx=new WeakMap,ux=new WeakMap,dx=new WeakMap,hx=new WeakMap,fx=new WeakMap,px=new WeakMap,mx=new WeakMap,vx=new WeakMap,gx=new WeakMap,yx=new WeakMap,bx=new WeakSet;class kx extends fd{constructor(...t){super(...t),$(this,bx),W(this,ix,void 0),W(this,rx,void 0),W(this,ox,void 0),W(this,sx,void 0),W(this,ax,[]),W(this,lx,[]),W(this,cx,new Set),W(this,ux,new Set),W(this,dx,!1),W(this,hx,void 0),W(this,fx,void 0),W(this,px,void 0),W(this,mx,void 0),W(this,vx,void 0),W(this,gx,void 0),W(this,yx,void 0);const[e,n,i,r]=t;U(ix,this,e),U(rx,this,n),U(ox,this,i),U(sx,this,r),U(hx,this,vy());const o=t.length?t[t.length-1]:void 0,s=o&&"object"==typeof o&&Number.isFinite(o.maxConcurrent)?o.maxConcurrent:void 0;Number.isFinite(s)&&(this.settings.maxConcurrent=s),U(yx,this,(()=>L(bx,this,Fx).call(this))),L(bx,this,Tx).call(this),L(bx,this,_x).call(this)}get name(){return"NodeResolver"}get defaults(){return{maxConcurrent:5}}onDispose(){var t;z(hx,this)&&z(hx,this).abort(),U(hx,this,null),z(sx,this)&&"function"==typeof z(sx,this).off&&z(px,this)&&z(sx,this).off(fv.PLACEMENT_ADDED,z(px,this)),z(sx,this)&&"function"==typeof z(sx,this).off&&z(gx,this)&&z(sx,this).off(fv.TIMELINE_RESET,z(gx,this)),z(ix,this)&&"function"==typeof z(ix,this).off&&z(mx,this)&&z(ix,this).off(fv.NODE_ADD,z(mx,this)),z(ix,this)&&"function"==typeof z(ix,this).off&&z(vx,this)&&z(ix,this).off(fv.NODE_CHILDREN_CHANGED,z(vx,this)),U(px,this,null),U(mx,this,null),U(vx,this,null),U(gx,this,null),U(ax,this,[]),U(lx,this,[]),z(cx,this).clear(),z(ux,this).clear(),U(dx,this,!1),U(fx,this,void 0),null!==(t=z(yx,this))&&void 0!==t&&t.__tickerThrottler&&z(yx,this).__tickerThrottler.dispose(),U(yx,this,null)}}function xx(){return z(hx,this)?z(hx,this).signal:void 0}function wx(){return this._disposed||z(hx,this)&&z(hx,this).signal.aborted}function _x(){z(sx,this)&&"function"==typeof z(sx,this).on&&(U(px,this,(t=>{L(bx,this,Ex).call(this,null==t?void 0:t.nodeId)})),z(sx,this).on(fv.PLACEMENT_ADDED,z(px,this)),U(gx,this,(()=>L(bx,this,Ix).call(this))),z(sx,this).on(fv.TIMELINE_RESET,z(gx,this))),z(ix,this)&&"function"==typeof z(ix,this).on&&(U(mx,this,(({node:t})=>{(null==t?void 0:t.id)&&L(bx,this,Ex).call(this,t.id,{fromRepoAdd:!0})})),z(ix,this).on(fv.NODE_ADD,z(mx,this)),U(vx,this,(()=>{nx(z(yx,this),100)})),z(ix,this).on(fv.NODE_CHILDREN_CHANGED,z(vx,this)))}function Tx(){const t=z(sx,this)&&Array.isArray(z(sx,this).placements)?z(sx,this).placements:[];t.forEach((t=>L(bx,this,Ex).call(this,t.nodeId)));const e=t.length?t[t.length-1]:void 0;e&&e.nodeId&&U(fx,this,e.nodeId)}function Ix(){z(hx,this)&&z(hx,this).abort(),U(hx,this,vy()),U(ax,this,[]),U(lx,this,[]),z(cx,this).clear(),U(dx,this,!1),U(fx,this,void 0)}function Ex(t,{fromRepoAdd:e=!1}={}){L(bx,this,wx).call(this)||t&&(z(ux,this).has(t)||z(cx,this).has(t)||(z(ax,this).push(t),z(fx,this)||e||U(fx,this,t),!z(dx,this)&&e||L(bx,this,Sx).call(this)))}function Sx(){if(z(dx,this))return void L(bx,this,Ax).call(this);if(0===z(ax,this).length)return;U(dx,this,!0);const t=z(ax,this).shift();L(bx,this,Ox).call(this,t).finally((()=>{L(bx,this,Ax).call(this)}))}async function Ax(){if(!L(bx,this,wx).call(this))for(z(ax,this).length||z(lx,this).length||U(lx,this,L(bx,this,Nx).call(this));z(cx,this).size<this.settings.maxConcurrent;){const t=this.settings.maxConcurrent-z(cx,this).size;if(t<=0)break;const e=[];for(;e.length<t&&(z(ax,this).length||z(lx,this).length);){let t=z(ax,this).shift();t||(t=z(lx,this).shift()),t&&e.push(t)}if(!e.length)break;const n=L(bx,this,Cx).call(this,e);n.length&&z(ox,this)&&"function"==typeof z(ox,this).resolve&&L(bx,this,Px).call(this,n).finally((()=>L(bx,this,Ax).call(this))),e.filter((t=>!n.find((e=>e.nodeId===t)))).forEach((t=>{L(bx,this,Ox).call(this,t).finally((()=>L(bx,this,Ax).call(this)))}))}}function Nx(){const t=new Set([...z(ux,this),...z(cx,this),...z(ax,this)]);return L(bx,this,Mx).call(this,t)}function Mx(t){const e=z(sx,this)&&Array.isArray(z(sx,this).placements)?z(sx,this).placements:[],n=(e.length?e[e.length-1].nodeId:void 0)||z(fx,this);return Uk({prioritizer:z(rx,this),repository:z(ix,this),startNodeId:n,pendingIds:t,fallbackToRepository:!1})}function Fx(){L(bx,this,wx).call(this)||(z(dx,this)||0!==z(ax,this).length)&&(U(lx,this,L(bx,this,Nx).call(this)),z(dx,this)&&L(bx,this,Ax).call(this))}async function Ox(t,e){if(!t||z(ux,this).has(t)||z(cx,this).has(t))return;const n=L(bx,this,xx).call(this);if(n&&n.aborted)return;const i=z(ix,this)&&"function"==typeof z(ix,this).get?z(ix,this).get(t):void 0;if(i&&"function"==typeof i.resolve)if("function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts())z(ux,this).add(t);else{z(cx,this).add(t);try{const r={signal:n};e&&(r.manifestOverride=e),await i.resolve(r),z(ux,this).add(t)}catch(e){if(yy(e,n))return;this.log.warn(`NodeResolver failed to resolve node ${t}: ${(null==e?void 0:e.message)||e}`),"function"==typeof i.hasExceededManifestLoadAttempts&&i.hasExceededManifestLoadAttempts()&&z(ux,this).add(t)}finally{z(cx,this).delete(t)}}}function Cx(t){const e=[];return t.forEach((t=>{const n=z(ix,this)&&"function"==typeof z(ix,this).get?z(ix,this).get(t):void 0;n&&n.manifestRef&&"assets-delivery-service"===n.manifestRef.type&&e.push({nodeId:t,ref:n.manifestRef})})),e}async function Px(t){const e=L(bx,this,xx).call(this);if(!e||!e.aborted){t.forEach((({nodeId:t})=>z(cx,this).add(t)));try{const n=t.map((t=>t.ref)),i=await z(ox,this).resolve(n,{signal:e});t.forEach((({nodeId:t,ref:e})=>{var n;const r=z(ix,this)&&"function"==typeof z(ix,this).get?z(ix,this).get(t):void 0;if(z(cx,this).delete(t),!r||"function"!=typeof r.resolve)return;const o=Array.isArray(i)?i.find((t=>{const n=null==t?void 0:t.manifestRef;return n&&n.assetId===e.assetId&&n.assetRevision===e.assetRevision})):void 0,s="string"==typeof(null==o||null===(n=o.manifestRef)||void 0===n?void 0:n.encodeProfile)&&o.manifestRef.encodeProfile?o.manifestRef.encodeProfile:void 0,a=o?L(bx,this,Dx).call(this,o.manifest,s):void 0;L(bx,this,Ox).call(this,t,a)}))}catch(n){yy(n,e)||this.log.warn(`NodeResolver ADS batch failed: ${(null==n?void 0:n.message)||n}`),t.forEach((({nodeId:t})=>z(cx,this).delete(t)))}}}function Dx(t,e){if(!t)return;const n="string"==typeof e&&e?e:void 0,i=t=>n&&t&&"object"==typeof t?{...t,encodeProfile:n}:t;return t.ivd?i({typeHint:"ivd",body:t.ivd}):t.url||t.body||t.mimeType?i({typeHint:t.typeHint,url:t.url,mimeType:t.mimeType,body:t.body}):i(t)}const Rx=.001,Lx="priority";function Bx(t){const e=Number(t);return Number.isFinite(e)?e:0}var zx=new WeakMap,Wx=new WeakMap,Ux=new WeakMap,$x=new WeakMap,jx=new WeakMap,qx=new WeakMap,Vx=new WeakMap,Gx=new WeakMap,Hx=new WeakMap,Kx=new WeakMap,Xx=new WeakMap,Yx=new WeakMap,Qx=new WeakMap,Jx=new WeakMap,Zx=new WeakMap,tw=new WeakMap,ew=new WeakMap,nw=new WeakMap,iw=new WeakMap,rw=new WeakSet;class ow extends fd{constructor(...t){super(...t),$(this,rw),W(this,zx,void 0),W(this,Wx,void 0),W(this,Ux,void 0),W(this,$x,new Map),W(this,jx,new Map),W(this,qx,[]),W(this,Vx,new Set),W(this,Gx,new Map),W(this,Hx,!1),W(this,Kx,void 0),W(this,Xx,void 0),W(this,Yx,void 0),W(this,Qx,void 0),W(this,Jx,void 0),W(this,Zx,void 0),W(this,tw,void 0),W(this,ew,!1),W(this,nw,[]),W(this,iw,void 0);const[e,n,i]=t;U(zx,this,e),U(Wx,this,n),U(Ux,this,i),U(Xx,this,vy()),U(iw,this,(()=>L(rw,this,Dw).call(this))),L(rw,this,vw).call(this)}get name(){return"SegmentLoadCoordinator"}get defaults(){return{maxConcurrentLoads:3,maxSegmentLoadAttempts:3}}onDispose(){var t;z(Xx,this)&&z(Xx,this).abort(),U(Xx,this,null),z(Gx,this).size&&z(Gx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(Gx,this).clear(),z(Ux,this)&&"function"==typeof z(Ux,this).off&&(z(Yx,this)&&z(Ux,this).off(fv.PLACEMENT_ADDED,z(Yx,this)),z(Jx,this)&&z(Ux,this).off(fv.TIMELINE_SEEKING,z(Jx,this)),z(Zx,this)&&z(Ux,this).off(fv.TIMELINE_SEEKED,z(Zx,this)),z(tw,this)&&z(Ux,this).off(fv.TIMELINE_RESET,z(tw,this))),z(zx,this)&&"function"==typeof z(zx,this).off&&z(Qx,this)&&z(zx,this).off(fv.NODE_CHILDREN_CHANGED,z(Qx,this)),U(Yx,this,null),U(Qx,this,null),U(Jx,this,null),U(Zx,this,null),U(tw,this,null),z($x,this).clear(),z(jx,this).clear(),U(qx,this,[]),z(Vx,this).clear(),z(Gx,this).clear(),U(Hx,this,!1),U(Kx,this,void 0),U(ew,this,!1),U(nw,this,[]),null!==(t=z(iw,this))&&void 0!==t&&t.__tickerThrottler&&z(iw,this).__tickerThrottler.dispose(),U(iw,this,null)}}function sw(){return z(Xx,this)?z(Xx,this).signal:void 0}function aw(){return this._disposed||z(Xx,this)&&z(Xx,this).signal.aborted}function lw(){const t=Number(this.settings.maxSegmentLoadAttempts);return Number.isFinite(t)&&t>0?t:1/0}function cw(t){const e=L(rw,this,lw).call(this);if(!Number.isFinite(e)||e===1/0)return!1;if(null==t||!t.loadError)return!1;const n=Number(t.loadAttempts);return Number.isFinite(n)&&n>=e}function uw(t){if(!t)return!1;if(L(rw,this,cw).call(this,t))return!0;if("boolean"==typeof t.isLoaded)return t.isLoaded;const e=Number(t.retainedByteLength);return Number.isFinite(e)&&e>0}function dw(t,{allowSeekKeep:e=!1,segmentOffset:n}={}){const i=vy(),r=i?i.signal:L(rw,this,sw).call(this);return t&&z(Gx,this).set(t,{controller:i,allowSeekKeep:!!e,segmentOffset:n}),{signal:r,controller:i}}function hw(t,e,n={}){const i=z(Gx,this).get(t);i&&i.controller===e&&(Object.prototype.hasOwnProperty.call(n,"allowSeekKeep")&&(i.allowSeekKeep=!!n.allowSeekKeep),Object.prototype.hasOwnProperty.call(n,"segmentOffset")&&(i.segmentOffset=n.segmentOffset))}function fw(t,e){const n=z(Gx,this).get(t);n&&(e&&n.controller!==e||z(Gx,this).delete(t))}function pw(t,e){const n=new Set;return(Array.isArray(t)?t:[]).forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i)return;const r=z(zx,this)&&"function"==typeof z(zx,this).get?z(zx,this).get(i):void 0;if(!r)return;const o=L(rw,this,Iw).call(this,r,t,e);Number.isFinite(o)&&n.add(`${i}:${o}`)})),n}function mw(t){z(Gx,this).size&&z(Gx,this).forEach(((e,n)=>{const i=null==e?void 0:e.segmentOffset,r=Number.isFinite(i)?`${n}:${i}`:"";!(null!=e&&e.allowSeekKeep&&r&&t&&t.has(r))&&(null==e?void 0:e.controller)&&e.controller.abort()}))}function vw(){z(Ux,this)&&"function"==typeof z(Ux,this).on&&(U(Yx,this,(t=>{L(rw,this,kw).call(this,t)})),z(Ux,this).on(fv.PLACEMENT_ADDED,z(Yx,this)),U(Jx,this,(t=>L(rw,this,gw).call(this,t))),z(Ux,this).on(fv.TIMELINE_SEEKING,z(Jx,this)),U(Zx,this,(t=>L(rw,this,yw).call(this,t))),z(Ux,this).on(fv.TIMELINE_SEEKED,z(Zx,this)),U(tw,this,(()=>L(rw,this,bw).call(this))),z(Ux,this).on(fv.TIMELINE_RESET,z(tw,this))),z(zx,this)&&"function"==typeof z(zx,this).on&&(U(Qx,this,(()=>{nx(z(iw,this),100)})),z(zx,this).on(fv.NODE_CHILDREN_CHANGED,z(Qx,this)))}function gw(t={}){if(L(rw,this,aw).call(this))return;const e=Number(null==t?void 0:t.targetTime);if(!Number.isFinite(e))return;const n=Array.isArray(null==t?void 0:t.placements)?t.placements:[],i=L(rw,this,pw).call(this,n,e);L(rw,this,mw).call(this,i),U(ew,this,!0),U(nw,this,n.map((t=>{const n=null==t?void 0:t.nodeId;if(n)return{nodeId:n,placement:t,targetTime:e}})).filter(Boolean)),setTimeout((()=>L(rw,this,ww).call(this)),0)}function yw(t={}){var e,n;if(L(rw,this,aw).call(this))return;U(ew,this,!1),U(nw,this,[]);const i=Number.isFinite(null==t?void 0:t.targetTime)?Number(t.targetTime):Number(null===(e=z(Ux,this))||void 0===e?void 0:e.currentTime);(Array.isArray(null===(n=z(Ux,this))||void 0===n?void 0:n.placements)?z(Ux,this).placements:[]).forEach((t=>{if(!t)return;const e=vm(t);if(Number.isFinite(e)){if(Number.isFinite(i)){if(e>=i)return void L(rw,this,kw).call(this,t);const n=pm(t,z(zx,this));return Number.isFinite(n)?void(e+n>i&&L(rw,this,kw).call(this,t)):void(e<=i&&L(rw,this,kw).call(this,t))}L(rw,this,kw).call(this,t)}})),setTimeout((()=>L(rw,this,ww).call(this)),0)}function bw(){z(Xx,this)&&z(Xx,this).abort(),U(Xx,this,vy()),z(Gx,this).size&&z(Gx,this).forEach((t=>{(null==t?void 0:t.controller)&&t.controller.abort()})),z(Gx,this).clear(),z($x,this).clear(),z(jx,this).clear(),U(qx,this,[]),z(Vx,this).clear(),U(Hx,this,!1),U(Kx,this,void 0),U(ew,this,!1),U(nw,this,[])}function kw(t){if(L(rw,this,aw).call(this))return;const e=null==t?void 0:t.nodeId;if(!e)return;const n=z($x,this).get(e);if(n){const i=vm(n),r=vm(t);Number.isFinite(i)?Number.isFinite(r)&&r<i&&z($x,this).set(e,t):Number.isFinite(r)&&z($x,this).set(e,t)}else z($x,this).set(e,t);const i=z(Kx,this);U(Kx,this,e),i&&i!==e&&U(qx,this,[]),z(Hx,this)?setTimeout((()=>L(rw,this,ww).call(this)),0):L(rw,this,xw).call(this)}function xw(){z(Hx,this)||z($x,this).size&&(U(Hx,this,!0),L(rw,this,ww).call(this))}async function ww(){if(L(rw,this,aw).call(this))return;if(z(Vx,this).size>=this.settings.maxConcurrentLoads)return;if(z(ew,this))return void(z(nw,this).length&&L(rw,this,_w).call(this));const t=L(rw,this,Aw).call(this);if(t.hasPending)L(rw,this,Nw).call(this,t);else for(z(qx,this).length||U(qx,this,L(rw,this,Cw).call(this));z(Vx,this).size<this.settings.maxConcurrentLoads&&z(qx,this).length;){const t=z(qx,this).shift();L(rw,this,Rw).call(this,t,"partial").finally((()=>{setTimeout((()=>L(rw,this,ww).call(this)),0)}))}}function _w(){if(L(rw,this,aw).call(this))return;const t=Math.max(0,this.settings.maxConcurrentLoads-z(Vx,this).size);if(!t||!z(nw,this).length)return;const e=[],n=[];for(let i=0;i<z(nw,this).length;i+=1){const r=z(nw,this)[i];(null==r?void 0:r.nodeId)&&(e.length<t&&!z(Vx,this).has(r.nodeId)?e.push(r):n.push(r))}U(nw,this,n),e.forEach((t=>{L(rw,this,Tw).call(this,t).finally((()=>{setTimeout((()=>L(rw,this,ww).call(this)),0)}))}))}async function Tw(t={}){const e=null==t?void 0:t.nodeId,n=null==t?void 0:t.placement,i=Number(null==t?void 0:t.targetTime);if(!e||!n||!Number.isFinite(i))return;if(z(Vx,this).has(e))return;const{signal:r,controller:o}=L(rw,this,dw).call(this,e);if(r&&r.aborted)L(rw,this,fw).call(this,e,o);else{z(Vx,this).add(e);try{const t=z(zx,this)&&"function"==typeof z(zx,this).get?z(zx,this).get(e):void 0;if(!t)return;if("ready"!==t.state&&"function"==typeof t.resolve)try{await t.resolve({signal:r})}catch(t){return}if("ready"!==t.state)return;const s=L(rw,this,Iw).call(this,t,n,i);if(!Number.isFinite(s)){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks.map((t=>null==t?void 0:t.type)).filter(Boolean):[];return void this.log.debug(`[#loadSeekWork] No seek segment offset for node [${e}] targetTime=${i} mainTrackId=${(null==t?void 0:t.mainTrackId)||"n/a"} trackTypes=[${n.join(",")}]`)}"function"==typeof t.loadMediaSegmentsAtOffset?(this.log.debug(`[#loadSeekWork] Loading seek segment for node [${e}] at offset=${s}`),L(rw,this,hw).call(this,e,o,{allowSeekKeep:!0,segmentOffset:s}),await t.loadMediaSegmentsAtOffset(s,{signal:r})):"function"==typeof t.load&&await t.load({loadingMode:"partial",signal:r})}catch(t){yy(t,r)||this.log.warn(`[#loadSeekWork] SegmentLoadCoordinator failed to seek-load node ${e}: ${(null==t?void 0:t.message)||t}`)}finally{z(Vx,this).delete(e),L(rw,this,fw).call(this,e,o)}}}function Iw(t,e,n){var i;const r=vm(e);if(!Number.isFinite(r))return;const o=Bx(null==e?void 0:e.nodeOffsetOverride),s=Math.max(0,n-r+o),a=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let l;if(null!=t&&t.mainTrackId){const e=a.find((e=>(null==e?void 0:e.id)===t.mainTrackId));"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(l=e)}if(l||(l=a.find((t=>"video"===(null==t?void 0:t.type)))||a.find((t=>"image"===(null==t?void 0:t.type)))),!l||!Array.isArray(l.segments))return;const c=l.segments.filter((t=>t&&!t.isInit&&Array.isArray(t.representations)));if(!c.length)return;const u=Bx(null===(i=l)||void 0===i?void 0:i.offset),d=Zy(c,Math.max(0,s-u),{preferRepresentationTime:!0}),h=Number(null==d?void 0:d.offset);return Number.isFinite(h)?h:void 0}function Ew(t,e,n=(t=>null===(t=z(Ux,this))||void 0===t?void 0:t.currentTime)()){var i;const r=(Array.isArray(null===(i=z(Ux,this))||void 0===i?void 0:i.placements)?z(Ux,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(vm(e)))).sort(((t,e)=>vm(t)-vm(e)));if(!r.length)return e;const o=Number(n);if(!Number.isFinite(o))return e||r[0];let s,a;for(let t=0;t<r.length;t+=1){const e=r[t],n=vm(e);if(!Number.isFinite(n))continue;const i=pm(e,z(zx,this)),l=Number.isFinite(i)&&i>=0;(!a&&n>=o-Rx&&(a=e),l)?o+Rx>=n&&o<n+i-Rx&&(s=e):o+Rx>=n&&(s=e)}return s||a||r[r.length-1]}function Sw(t,e){var n;const i=Number(vm(e));if(!Number.isFinite(i))return;const r=pm(e,z(zx,this)),o=Number.isFinite(r)&&r>=0?i+r:void 0,s=(Array.isArray(null===(n=z(Ux,this))||void 0===n?void 0:n.placements)?z(Ux,this).placements:[]).filter((e=>(null==e?void 0:e.nodeId)===t&&Number.isFinite(vm(e)))).sort(((t,e)=>vm(t)-vm(e)));for(let t=0;t<s.length;t+=1){const e=s[t],n=Number(vm(e));if(Number.isFinite(n)&&!(n<=i+Rx)){if(Number.isFinite(o)&&n>o+Rx)return;return e}}}function Aw(){const t=[];let e=!1,n=1/0;if(z($x,this).forEach(((i,r)=>{if(!r||!i)return;const o=z(jx,this).get(r);if(o)return e=!0,void(n=Math.min(n,Bx(o.timelineStart)));const s=L(rw,this,Mw).call(this,r,i);s&&(e=!0,n=Math.min(n,Bx(s.timelineStart)),t.push(s))})),!e||!Number.isFinite(n))return{hasPending:!1,waveTime:void 0,startable:[]};const i=t.filter((t=>Bx(t.timelineStart)===n&&!z(Vx,this).has(t.nodeId))).sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.timelineStart)?t.timelineStart:Number.POSITIVE_INFINITY,i=Number.isFinite(null==e?void 0:e.timelineStart)?e.timelineStart:Number.POSITIVE_INFINITY;return n!==i?n-i:String(t.nodeId).localeCompare(String(e.nodeId))}));return{hasPending:!0,waveTime:n,startable:i}}function Nw({waveTime:t,startable:e}){const n=Math.max(0,this.settings.maxConcurrentLoads-z(Vx,this).size);n&&e.length&&e.slice(0,n).forEach((e=>{L(rw,this,Ow).call(this,e,t).finally((()=>{setTimeout((()=>L(rw,this,ww).call(this)),0)}))}))}function Mw(t,e){var n,i;const r=z(zx,this)&&"function"==typeof z(zx,this).get?z(zx,this).get(t):void 0;if(!r)return;if("function"==typeof r.hasExceededManifestLoadAttempts&&r.hasExceededManifestLoadAttempts())return void z($x,this).delete(t);const o=L(rw,this,Ew).call(this,t,e,null===(n=z(Ux,this))||void 0===n?void 0:n.currentTime),s=Number(vm(o)),a=Bx(null===(i=z(Ux,this))||void 0===i?void 0:i.currentTime),l="function"==typeof r.loadMediaSegmentsAtOffset,c="function"==typeof r.load;if(!l&&!c)return void z($x,this).delete(t);if(r.isLoaded)return void z($x,this).delete(t);if("ready"!==r.state){if(!Number.isFinite(s))return;return{nodeId:t,segmentOffset:0,timelineStart:s}}if(!L(rw,this,Lw).call(this,r))return void z($x,this).delete(t);const u=Array.isArray(r.tracks)?r.tracks:[],d=u.some((t=>{const e=(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).find((t=>(null==t?void 0:t.isInit)&&Array.isArray(null==t?void 0:t.representations)));return!!e&&!L(rw,this,uw).call(this,e)})),h=new Set;u.forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return;const e=Number(t.offset);if(Number.isFinite(e)){const t=Math.round(e/Rx)*Rx;h.add(t)}}))}));const f=Array.from(h).sort(((t,e)=>t-e)),p=e=>{const n=Number(vm(e));if(!Number.isFinite(n))return{status:"none"};const i=Bx(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,a-n+i);let s=0;for(let t=0;t<f.length&&f[t]<=o+Rx;t+=1)s=t;const l=f.slice(s);if(!l.some((t=>L(rw,this,Fw).call(this,r,t))))return{status:f.slice(0,s).some((t=>L(rw,this,Fw).call(this,r,t)))?"beforeOnly":"none"};const c=l.find((t=>L(rw,this,Fw).call(this,r,t))),u=Math.max(0,Bx(c)-i);return{status:"work",work:{nodeId:t,segmentOffset:c,timelineStart:n+u}}},m=p(o);if("work"===m.status)return m.work;if("beforeOnly"!==m.status){if(d&&Number.isFinite(s))return{nodeId:t,segmentOffset:0,timelineStart:s};z($x,this).delete(t)}else{const e=L(rw,this,Sw).call(this,t,o);if(e){const t=p(e);if("work"===t.status)return t.work}}}function Fw(t,e){const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[],i=Bx(e);return n.some((t=>(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).some((t=>{if(!t||t.isInit||!Array.isArray(t.representations))return!1;const e=Number(t.offset);return Number.isFinite(e)&&Math.abs(e-i)<=Rx&&!L(rw,this,uw).call(this,t)}))))}async function Ow(t,e){const n=null==t?void 0:t.nodeId,i=null==t?void 0:t.segmentOffset;if(this.log.debug(`[#loadP0Work] Loading ${Lx} node [${n}] at segmentOffset=${i} wave=${e}`),!n)return;const r=z(zx,this)&&"function"==typeof z(zx,this).get?z(zx,this).get(n):void 0;if(!r)return void z($x,this).delete(n);const o="function"==typeof r.loadMediaSegmentsAtOffset&&Number.isFinite(i),{signal:s,controller:a}=L(rw,this,dw).call(this,n,{allowSeekKeep:o,segmentOffset:i});if(s&&s.aborted)L(rw,this,fw).call(this,n,a);else{z(Vx,this).add(n),z(jx,this).set(n,{timelineStart:e,segmentOffset:i});try{"function"==typeof r.loadMediaSegmentsAtOffset?await r.loadMediaSegmentsAtOffset(i,{signal:s}):"function"==typeof r.load&&await r.load({loadingMode:"full",signal:s})}catch(t){if(yy(t,s))return;const e=`[#loadP0Work] SegmentLoadCoordinator failed to load ${Lx} work for node ${n}: ${(null==t?void 0:t.message)||t}`;this.log.warn(e)}finally{this.log.debug(`[#loadP0Work] Finished ${Lx} work for node [${n}]`),z(jx,this).delete(n),z(Vx,this).delete(n),L(rw,this,fw).call(this,n,a)}}}function Cw(){const t=new Set([...z($x,this).keys(),...z(Vx,this)]),e=L(rw,this,Pw).call(this),n=Array.isArray(null==e?void 0:e.orderedIds)?e.orderedIds:null,i=Array.isArray(null==e?void 0:e.reachableIds)&&e.reachableIds.length?new Set(e.reachableIds):null,r=t=>!("function"==typeof t.hasExceededManifestLoadAttempts&&t.hasExceededManifestLoadAttempts()||t.isLoaded||"ready"===t.state&&L(rw,this,Bw).call(this,t));if(i){const e=Uk({prioritizer:z(Wx,this),repository:z(zx,this),startNodeId:z(Kx,this),prioritizedIds:n,pendingIds:t,allowedIds:i,filter:r});if(e.length)return e}return Uk({prioritizer:z(Wx,this),repository:z(zx,this),startNodeId:z(Kx,this),prioritizedIds:n,pendingIds:t,filter:r})}function Pw(){return z(Wx,this)&&z(Kx,this)?"function"==typeof z(Wx,this).getPrioritizationSnapshot?z(Wx,this).getPrioritizationSnapshot(z(Kx,this)):{orderedIds:"function"==typeof z(Wx,this).sortNodes?z(Wx,this).sortNodes(z(Kx,this)):[],reachableIds:"function"==typeof z(Wx,this).getReachableNodeIds?z(Wx,this).getReachableNodeIds(z(Kx,this)):[]}:null}function Dw(){L(rw,this,aw).call(this)||(z(Hx,this)||z($x,this).size)&&(U(qx,this,L(rw,this,Cw).call(this)),z(Hx,this)&&!z(ew,this)&&L(rw,this,ww).call(this))}async function Rw(t,e){if(this.log.debug(`[#loadNode] Loading node [${t}] in '${e}' mode`),!t)return;const n=z(zx,this)&&"function"==typeof z(zx,this).get?z(zx,this).get(t):void 0;if(!n||"function"!=typeof n.load)return;if("function"==typeof n.hasExceededManifestLoadAttempts&&n.hasExceededManifestLoadAttempts())return;if(n.isLoaded)return void this.log.debug(`[#loadNode] Skipping load for ${t}: already loaded`);const{signal:i,controller:r}=L(rw,this,dw).call(this,t,{allowSeekKeep:!1});if(i&&i.aborted)L(rw,this,fw).call(this,t,r);else try{if("ready"!==n.state&&await n.resolve({signal:i}),"ready"!==n.state)return void this.log.debug(`[#loadNode] Skipping load for ${t}: not ready`);if("partial"===e&&L(rw,this,Bw).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: partial already loaded`);if(!L(rw,this,Lw).call(this,n))return void this.log.debug(`[#loadNode] Skipping load for ${t}: no loadable tracks`);z(Vx,this).add(t),await n.load({loadingMode:e,signal:i})}catch(e){if(yy(e,i))return;this.log.warn(`[#loadNode] SegmentLoadCoordinator failed to load node ${t}: ${(null==e?void 0:e.message)||e}`)}finally{this.log.debug(`[#loadNode] Finished loading node [${t}]`),z(Vx,this).delete(t),L(rw,this,fw).call(this,t,r)}}function Lw(t){return(Array.isArray(t.tracks)?t.tracks:[]).some((t=>{var e;return null==t||null===(e=t.segments)||void 0===e?void 0:e.length}))}function Bw(t){const e=(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>Array.isArray(null==t?void 0:t.segments)&&t.segments.length));return!e.length||e.every((t=>{const e=Array.isArray(null==t?void 0:t.segments)?t.segments:[];if(!e.length)return!0;const n=e.find((t=>null==t?void 0:t.isInit)),i=e.find((t=>t&&!t.isInit));return!(n&&!L(rw,this,uw).call(this,n)||i&&!L(rw,this,uw).call(this,i))}))}class zw extends fd{constructor(...t){super(...t),this.track=void 0,this.lastSegment=void 0}get name(){return"BaseDecoder"}configure(t){this.track=t}decode(t){this.lastSegment=t}decodeChunk(t,e){}onDispose(){this.track=void 0,this.lastSegment=void 0}}function Ww(t){if(!t)throw new Error("Assertion failed.")}const Uw=t=>t&&t[t.length-1],$w=t=>{let e=0;for(;0===t.readBits(1)&&e<32;)e++;if(e>=32)throw new Error("Invalid exponential-Golomb code.");return(1<<e)-1+t.readBits(e)},jw=t=>t.constructor===Uint8Array?t:ArrayBuffer.isView(t)?new Uint8Array(t.buffer,t.byteOffset,t.byteLength):new Uint8Array(t),qw=t=>t.constructor===DataView?t:ArrayBuffer.isView(t)?new DataView(t.buffer,t.byteOffset,t.byteLength):new DataView(t),Vw=new TextDecoder,Gw=t=>Object.fromEntries(Object.entries(t).map((([t,e])=>[e,t]))),Hw={bt709:1,bt470bg:5,smpte170m:6,bt2020:9,smpte432:12},Kw=Gw(Hw),Xw={bt709:1,smpte170m:6,linear:8,"iec61966-2-1":13,pq:16,hlg:18},Yw=Gw(Xw),Qw={rgb:0,bt709:1,bt470bg:5,smpte170m:6,"bt2020-ncl":9},Jw=Gw(Qw),Zw=t=>[...t].map((t=>t.toString(16).padStart(2,"0"))).join(""),t_=t=>(t=(t=(t=(t=(t=t>>1&1431655765|(1431655765&t)<<1)>>2&858993459|(858993459&t)<<2)>>4&252645135|(252645135&t)<<4)>>8&16711935|(16711935&t)<<8)>>16&65535|(65535&t)<<16)>>>0,e_=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+r>>1,a=n(t[s]);a===e?(o=s,r=s-1):a<e?i=s+1:r=s-1}return o},n_=(t,e,n)=>{let i=0,r=t.length-1,o=-1;for(;i<=r;){const s=i+(r-i+1)/2|0;n(t[s])<=e?(o=s,i=s+1):r=s-1}return o},i_=()=>{let t,e;return{promise:new Promise(((n,i)=>{t=n,e=i})),resolve:t,reject:e}},r_=(t,e,n)=>t.getUint8(e)<<16|t.getUint8(e+1)<<8|t.getUint8(e+2),o_=(t,e,n)=>Math.max(e,Math.min(n,t)),s_=/^[a-z]{3}$/,a_=1e6*(1+Number.EPSILON);let l_=null;let c_=null;const u_=()=>{if(null!==c_)return c_;if("undefined"==typeof navigator)return null;const t=/\bChrome\/(\d+)/.exec(navigator.userAgent);return t?c_=Number(t[1]):null},d_=t=>"number"==typeof t&&!Number.isNaN(t);class h_{constructor(t,e){if(this.data=t,this.mimeType=e,!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("string"!=typeof e)throw new TypeError("mimeType must be a string.")}}const f_={default:!0,forced:!1,original:!1,commentary:!1,hearingImpaired:!1,visuallyImpaired:!1};class p_{constructor(t){this.bytes=t,this.pos=0}seekToByte(t){this.pos=8*t}readBit(){var t;const e=Math.floor(this.pos/8),n=null!==(t=this.bytes[e])&&void 0!==t?t:0,i=7-(7&this.pos),r=(n&1<<i)>>i;return this.pos++,r}readBits(t){if(1===t)return this.readBit();let e=0;for(let n=0;n<t;n++)e<<=1,e|=this.readBit();return e}writeBits(t,e){const n=this.pos+t;for(let t=this.pos;t<n;t++){const i=Math.floor(t/8);let r=this.bytes[i];const o=7-(7&t);r&=~(1<<o),r|=(e&1<<n-t-1)>>n-t-1<<o,this.bytes[i]=r}this.pos=n}readAlignedByte(){var t;if(this.pos%8!=0)throw new Error("Bitstream is not byte-aligned.");const e=this.pos/8,n=null!==(t=this.bytes[e])&&void 0!==t?t:0;return this.pos+=8,n}skipBits(t){this.pos+=t}getBitsLeft(){return 8*this.bytes.length-this.pos}clone(){const t=new p_(this.bytes);return t.pos=this.pos,t}}const m_=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],v_=[-1,1,2,3,4,5,6,8],g_=t=>{if(!t||t.byteLength<2)throw new TypeError("AAC description must be at least 2 bytes long.");const e=new p_(t);let n=e.readBits(5);31===n&&(n=32+e.readBits(6));const i=e.readBits(4);let r=null;15===i?r=e.readBits(24):i<m_.length&&(r=m_[i]);const o=e.readBits(4);let s=null;return o>=1&&o<=7&&(s=v_[o]),{objectType:n,frequencyIndex:i,sampleRate:r,channelConfiguration:o,numberOfChannels:s}},y_=["pcm-s16","pcm-s16be","pcm-s24","pcm-s24be","pcm-s32","pcm-s32be","pcm-f32","pcm-f32be","pcm-f64","pcm-f64be","pcm-u8","pcm-s8","ulaw","alaw"],b_=[{maxPictureSize:36864,maxBitrate:2e5,level:10},{maxPictureSize:73728,maxBitrate:8e5,level:11},{maxPictureSize:122880,maxBitrate:18e5,level:20},{maxPictureSize:245760,maxBitrate:36e5,level:21},{maxPictureSize:552960,maxBitrate:72e5,level:30},{maxPictureSize:983040,maxBitrate:12e6,level:31},{maxPictureSize:2228224,maxBitrate:18e6,level:40},{maxPictureSize:2228224,maxBitrate:3e7,level:41},{maxPictureSize:8912896,maxBitrate:6e7,level:50},{maxPictureSize:8912896,maxBitrate:12e7,level:51},{maxPictureSize:8912896,maxBitrate:18e7,level:52},{maxPictureSize:35651584,maxBitrate:18e7,level:60},{maxPictureSize:35651584,maxBitrate:24e7,level:61},{maxPictureSize:35651584,maxBitrate:48e7,level:62}],k_=t=>{const{codec:e,codecDescription:n,colorSpace:i,avcCodecInfo:r,hevcCodecInfo:o,vp9CodecInfo:s,av1CodecInfo:a}=t;if("avc"===e){if(Ww(null!==t.avcType),r){const e=new Uint8Array([r.avcProfileIndication,r.profileCompatibility,r.avcLevelIndication]);return`avc${t.avcType}.${Zw(e)}`}if(!n||n.byteLength<4)throw new TypeError("AVC decoder description is not provided or is not at least 4 bytes long.");return`avc${t.avcType}.${Zw(n.subarray(1,4))}`}if("hevc"===e){let t,e,i,r,s,a;if(o)t=o.generalProfileSpace,e=o.generalProfileIdc,i=t_(o.generalProfileCompatibilityFlags),r=o.generalTierFlag,s=o.generalLevelIdc,a=[...o.generalConstraintIndicatorFlags];else{if(!n||n.byteLength<23)throw new TypeError("HEVC decoder description is not provided or is not at least 23 bytes long.");const o=qw(n),l=o.getUint8(1);t=l>>6&3,e=31&l,i=t_(o.getUint32(2)),r=l>>5&1,s=o.getUint8(12),a=[];for(let t=0;t<6;t++)a.push(o.getUint8(6+t))}let l="hev1.";for(l+=["","A","B","C"][t]+e,l+=".",l+=i.toString(16).toUpperCase(),l+=".",l+=0===r?"L":"H",l+=s;a.length>0&&0===a[a.length-1];)a.pop();return a.length>0&&(l+=".",l+=a.map((t=>t.toString(16).toUpperCase())).join(".")),l}if("vp8"===e)return"vp8";if("vp9"===e){if(!s){const e=t.width*t.height;let n=Uw(b_).level;for(const t of b_)if(e<=t.maxPictureSize){n=t.level;break}return`vp09.00.${n.toString().padStart(2,"0")}.08`}let e=`vp09.${s.profile.toString().padStart(2,"0")}.${s.level.toString().padStart(2,"0")}.${s.bitDepth.toString().padStart(2,"0")}.${s.chromaSubsampling.toString().padStart(2,"0")}`;return e+=`.${s.colourPrimaries.toString().padStart(2,"0")}.${s.transferCharacteristics.toString().padStart(2,"0")}.${s.matrixCoefficients.toString().padStart(2,"0")}.${s.videoFullRangeFlag.toString().padStart(2,"0")}`,e.endsWith(".01.01.01.01.00")&&(e=e.slice(0,-15)),e}if("av1"===e){if(!a){const e=t.width*t.height;let n=Uw(b_).level;for(const t of b_)if(e<=t.maxPictureSize){n=t.level;break}return`av01.0.${n.toString().padStart(2,"0")}M.08`}const e=a.profile,n=a.level.toString().padStart(2,"0"),r=a.tier?"H":"M",o=a.bitDepth.toString().padStart(2,"0"),s=a.monochrome?"1":"0",l=100*a.chromaSubsamplingX+10*a.chromaSubsamplingY+1*(a.chromaSubsamplingX&&a.chromaSubsamplingY?a.chromaSamplePosition:0),c=null!=i&&i.primaries?Hw[i.primaries]:1,u=null!=i&&i.transfer?Xw[i.transfer]:1,d=null!=i&&i.matrix?Qw[i.matrix]:1,h=null!=i&&i.fullRange?1:0;let f=`av01.${e}.${n}${r}.${o}`;return f+=`.${s}.${l.toString().padStart(3,"0")}`,f+=`.${c.toString().padStart(2,"0")}`,f+=`.${u.toString().padStart(2,"0")}`,f+=`.${d.toString().padStart(2,"0")}`,f+=`.${h}`,f.endsWith(".0.110.01.01.01.0")&&(f=f.slice(0,-17)),f}throw new TypeError(`Unhandled codec '${e}'.`)},x_=t=>{const{codec:e,codecDescription:n,aacCodecInfo:i}=t;if("aac"===e){if(!i)throw new TypeError("AAC codec info must be provided.");if(i.isMpeg2)return"mp4a.67";{let t;return t=null!==i.objectType?i.objectType:g_(n).objectType,`mp4a.40.${t}`}}if("mp3"===e)return"mp3";if("opus"===e)return"opus";if("vorbis"===e)return"vorbis";if("flac"===e)return"flac";if("ac3"===e)return"ac-3";if("eac3"===e)return"ec-3";if(e&&y_.includes(e))return e;throw new TypeError(`Unhandled codec '${e}'.`)},w_=/^pcm-([usf])(\d+)+(be)?$/,__=[48e3,44100,32e3],T_=[24e3,22050,16e3];var I_,E_;!function(t){t[t.NON_IDR_SLICE=1]="NON_IDR_SLICE",t[t.SLICE_DPA=2]="SLICE_DPA",t[t.SLICE_DPB=3]="SLICE_DPB",t[t.SLICE_DPC=4]="SLICE_DPC",t[t.IDR=5]="IDR",t[t.SEI=6]="SEI",t[t.SPS=7]="SPS",t[t.PPS=8]="PPS",t[t.AUD=9]="AUD",t[t.SPS_EXT=13]="SPS_EXT"}(I_||(I_={})),function(t){t[t.RASL_N=8]="RASL_N",t[t.RASL_R=9]="RASL_R",t[t.BLA_W_LP=16]="BLA_W_LP",t[t.RSV_IRAP_VCL23=23]="RSV_IRAP_VCL23",t[t.VPS_NUT=32]="VPS_NUT",t[t.SPS_NUT=33]="SPS_NUT",t[t.PPS_NUT=34]="PPS_NUT",t[t.AUD_NUT=35]="AUD_NUT",t[t.PREFIX_SEI_NUT=39]="PREFIX_SEI_NUT",t[t.SUFFIX_SEI_NUT=40]="SUFFIX_SEI_NUT"}(E_||(E_={}));const S_=function*(t){let e=0,n=-1;for(;e<t.length-2;){const i=t.indexOf(0,e);if(-1===i||i>=t.length-2)break;e=i;let r=0;e+3<t.length&&0===t[e+1]&&0===t[e+2]&&1===t[e+3]?r=4:0===t[e+1]&&1===t[e+2]&&(r=3),0!==r?(-1!==n&&e>n&&(yield{offset:n,length:e-n}),n=e+r,e=n):e++}-1!==n&&n<t.length&&(yield{offset:n,length:t.length-n})},A_=function*(t,e){let n=0;const i=new DataView(t.buffer,t.byteOffset,t.byteLength);for(;n+e<=t.length;){let t;1===e?t=i.getUint8(n):2===e?t=i.getUint16(n,!1):3===e?t=r_(i,n):(Ww(4===e),t=i.getUint32(n,!1)),n+=e,yield{offset:n,length:t},n+=t}},N_=t=>31&t,M_=t=>{const e=[],n=t.length;for(let i=0;i<n;i++)i+2<n&&0===t[i]&&0===t[i+1]&&3===t[i+2]?(e.push(0,0),i+=2):e.push(t[i]);return new Uint8Array(e)},F_=t=>t>>1&63,O_=function*(t){const e=new p_(t),n=()=>{let t=0;for(let n=0;n<8;n++){const i=e.readAlignedByte();if(t|=(127&i)<<7*n,!(128&i))break;if(7===n&&128&i)return null}return t>=2**32-1?null:t};for(;e.getBitsLeft()>=8;){e.skipBits(1);const i=e.readBits(4),r=e.readBits(1),o=e.readBits(1);let s;if(e.skipBits(1),r&&e.skipBits(8),o){const t=n();if(null===t)return;s=t}else s=Math.floor(e.getBitsLeft()/8);Ww(e.pos%8==0),yield{type:i,data:t.subarray(e.pos/8,e.pos/8+s)},e.skipBits(8*s)}};var C_;!function(t){t[t.STREAMINFO=0]="STREAMINFO",t[t.VORBIS_COMMENT=4]="VORBIS_COMMENT",t[t.PICTURE=6]="PICTURE"}(C_||(C_={}));const P_=[2,1,2,3,3,4,4,5];class D_{constructor(t){this.input=t}}const R_=[],L_=[],B_=new Uint8Array(0);class z_{constructor(t,e,n,i,r=-1,o,s){if(this.data=t,this.type=e,this.timestamp=n,this.duration=i,this.sequenceNumber=r,t===B_&&void 0===o)throw new Error("Internal error: byteLength must be explicitly provided when constructing metadata-only packets.");if(void 0===o&&(o=t.byteLength),!(t instanceof Uint8Array))throw new TypeError("data must be a Uint8Array.");if("key"!==e&&"delta"!==e)throw new TypeError('type must be either "key" or "delta".');if(!Number.isFinite(n))throw new TypeError("timestamp must be a number.");if(!Number.isFinite(i)||i<0)throw new TypeError("duration must be a non-negative number.");if(!Number.isFinite(r))throw new TypeError("sequenceNumber must be a number.");if(!Number.isInteger(o)||o<0)throw new TypeError("byteLength must be a non-negative integer.");if(void 0!==s&&("object"!=typeof s||!s))throw new TypeError("sideData, when provided, must be an object.");if(void 0!==(null==s?void 0:s.alpha)&&!(s.alpha instanceof Uint8Array))throw new TypeError("sideData.alpha, when provided, must be a Uint8Array.");if(void 0!==(null==s?void 0:s.alphaByteLength)&&(!Number.isInteger(s.alphaByteLength)||s.alphaByteLength<0))throw new TypeError("sideData.alphaByteLength, when provided, must be a non-negative integer.");this.byteLength=o,this.sideData=null!=s?s:{},this.sideData.alpha&&void 0===this.sideData.alphaByteLength&&(this.sideData.alphaByteLength=this.sideData.alpha.byteLength)}get isMetadataOnly(){return this.data===B_}get microsecondTimestamp(){return Math.trunc(a_*this.timestamp)}get microsecondDuration(){return Math.trunc(a_*this.duration)}toEncodedVideoChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}alphaToEncodedVideoChunk(t=this.type){if(!this.sideData.alpha)throw new TypeError("This packet does not contain alpha side data.");if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to a video chunk.");if("undefined"==typeof EncodedVideoChunk)throw new Error("Your browser does not support EncodedVideoChunk.");return new EncodedVideoChunk({data:this.sideData.alpha,type:t,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}toEncodedAudioChunk(){if(this.isMetadataOnly)throw new TypeError("Metadata-only packets cannot be converted to an audio chunk.");if("undefined"==typeof EncodedAudioChunk)throw new Error("Your browser does not support EncodedAudioChunk.");return new EncodedAudioChunk({data:this.data,type:this.type,timestamp:this.microsecondTimestamp,duration:this.microsecondDuration})}static fromEncodedChunk(t,e){var n;if(!(t instanceof EncodedVideoChunk||t instanceof EncodedAudioChunk))throw new TypeError("chunk must be an EncodedVideoChunk or EncodedAudioChunk.");const i=new Uint8Array(t.byteLength);return t.copyTo(i),new z_(i,t.type,t.timestamp/1e6,(null!==(n=t.duration)&&void 0!==n?n:0)/1e6,void 0,void 0,e)}clone(t){var e,n,i,r,o,s;if(void 0!==t&&("object"!=typeof t||null===t))throw new TypeError("options, when provided, must be an object.");if(void 0!==(null==t?void 0:t.data)&&!(t.data instanceof Uint8Array))throw new TypeError("options.data, when provided, must be a Uint8Array.");if(void 0!==(null==t?void 0:t.type)&&"key"!==t.type&&"delta"!==t.type)throw new TypeError('options.type, when provided, must be either "key" or "delta".');if(void 0!==(null==t?void 0:t.timestamp)&&!Number.isFinite(t.timestamp))throw new TypeError("options.timestamp, when provided, must be a number.");if(void 0!==(null==t?void 0:t.duration)&&!Number.isFinite(t.duration))throw new TypeError("options.duration, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sequenceNumber)&&!Number.isFinite(t.sequenceNumber))throw new TypeError("options.sequenceNumber, when provided, must be a number.");if(void 0!==(null==t?void 0:t.sideData)&&("object"!=typeof t.sideData||null===t.sideData))throw new TypeError("options.sideData, when provided, must be an object.");return new z_(null!==(e=null==t?void 0:t.data)&&void 0!==e?e:this.data,null!==(n=null==t?void 0:t.type)&&void 0!==n?n:this.type,null!==(i=null==t?void 0:t.timestamp)&&void 0!==i?i:this.timestamp,null!==(r=null==t?void 0:t.duration)&&void 0!==r?r:this.duration,null!==(o=null==t?void 0:t.sequenceNumber)&&void 0!==o?o:this.sequenceNumber,this.byteLength,null!==(s=null==t?void 0:t.sideData)&&void 0!==s?s:this.sideData)}}const W_=t=>{if(!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(void 0!==t.metadataOnly&&"boolean"!=typeof t.metadataOnly)throw new TypeError("options.metadataOnly, when defined, must be a boolean.");if(void 0!==t.verifyKeyPackets&&"boolean"!=typeof t.verifyKeyPackets)throw new TypeError("options.verifyKeyPackets, when defined, must be a boolean.");if(t.verifyKeyPackets&&t.metadataOnly)throw new TypeError("options.verifyKeyPackets and options.metadataOnly cannot be enabled together.")},U_=t=>{if(!d_(t))throw new TypeError("timestamp must be a number.")},$_=(t,e,n)=>n.verifyKeyPackets?e.then((async e=>{if(!e||"delta"===e.type)return e;const n=await t.determinePacketType(e);return n&&(e.type=n),e})):e;class j_{constructor(t){if(!(t instanceof q_))throw new TypeError("track must be an InputTrack.");this._track=t}getFirstPacket(t={}){if(W_(t),this._track.input._disposed)throw new vT;return $_(this._track,this._track._backing.getFirstPacket(t),t)}async getFirstKeyPacket(t={}){W_(t);const e=await this.getFirstPacket(t);return e?"key"===e.type?e:this.getNextKeyPacket(e,t):null}getPacket(t,e={}){if(U_(t),W_(e),this._track.input._disposed)throw new vT;return $_(this._track,this._track._backing.getPacket(t,e),e)}getNextPacket(t,e={}){if(!(t instanceof z_))throw new TypeError("packet must be an EncodedPacket.");if(W_(e),this._track.input._disposed)throw new vT;return $_(this._track,this._track._backing.getNextPacket(t,e),e)}async getKeyPacket(t,e={}){if(U_(t),W_(e),this._track.input._disposed)throw new vT;if(!e.verifyKeyPackets)return this._track._backing.getKeyPacket(t,e);const n=await this._track._backing.getKeyPacket(t,e);return n?(Ww("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getKeyPacket(n.timestamp-1/this._track.timeResolution,e):n):n}async getNextKeyPacket(t,e={}){if(!(t instanceof z_))throw new TypeError("packet must be an EncodedPacket.");if(W_(e),this._track.input._disposed)throw new vT;if(!e.verifyKeyPackets)return this._track._backing.getNextKeyPacket(t,e);const n=await this._track._backing.getNextKeyPacket(t,e);return n?(Ww("key"===n.type),"delta"===await this._track.determinePacketType(n)?this.getNextKeyPacket(n,e):n):n}packets(t,e,n={}){if(void 0!==t&&!(t instanceof z_))throw new TypeError("startPacket must be an EncodedPacket.");if(void 0!==t&&t.isMetadataOnly&&(null==n||!n.metadataOnly))throw new TypeError("startPacket can only be metadata-only if options.metadataOnly is enabled.");if(void 0!==e&&!(e instanceof z_))throw new TypeError("endPacket must be an EncodedPacket.");if(W_(n),this._track.input._disposed)throw new vT;const i=[];let{promise:r,resolve:o}=i_(),{promise:s,resolve:a}=i_(),l=!1,c=!1,u=null;const d=[];(async()=>{let u=null!=t?t:await this.getFirstPacket(n);for(;u&&!c&&!this._track.input._disposed&&!(e&&u.sequenceNumber>=(null==e?void 0:e.sequenceNumber));)i.length>Math.max(2,d.length)?(({promise:s,resolve:a}=i_()),await s):(i.push(u),o(),({promise:r,resolve:o}=i_()),u=await this.getNextPacket(u,n));l=!0,o()})().catch((t=>{u||(u=t,o())}));const h=this._track;return{async next(){for(;;){if(h.input._disposed)throw new vT;if(c)return{value:void 0,done:!0};if(u)throw u;if(i.length>0){const t=i.shift(),e=performance.now();for(d.push(e);d.length>0&&e-d[0]>=1e3;)d.shift();return a(),{value:t,done:!1}}if(l)return{value:void 0,done:!0};await r}},return:async()=>(c=!0,a(),o(),{value:void 0,done:!0}),async throw(t){throw t},[Symbol.asyncIterator](){return this}}}}class q_{constructor(t,e){this.input=t,this._backing=e}isVideoTrack(){return this instanceof V_}isAudioTrack(){return this instanceof G_}get id(){return this._backing.getId()}get number(){return this._backing.getNumber()}get internalCodecId(){return this._backing.getInternalCodecId()}get languageCode(){return this._backing.getLanguageCode()}get name(){return this._backing.getName()}get timeResolution(){return this._backing.getTimeResolution()}get disposition(){return this._backing.getDisposition()}getFirstTimestamp(){return this._backing.getFirstTimestamp()}computeDuration(){return this._backing.computeDuration()}async computePacketStats(t=1/0){const e=new j_(this);let n=1/0,i=-1/0,r=0,o=0;for await(const s of e.packets(void 0,void 0,{metadataOnly:!0})){if(r>=t&&s.timestamp>=i)break;n=Math.min(n,s.timestamp),i=Math.max(i,s.timestamp+s.duration),r++,o+=s.byteLength}return{packetCount:r,averagePacketRate:r?Number((r/(i-n)).toPrecision(16)):0,averageBitrate:r?Number((8*o/(i-n)).toPrecision(16)):0}}}class V_ extends q_{constructor(t,e){super(t,e),this._backing=e,this.pixelAspectRatio=(t=>{Ww(0!==t.den);let e=Math.abs(t.num),n=Math.abs(t.den);for(;0!==n;){const t=e%n;e=n,n=t}const i=e||1;return{num:t.num/i,den:t.den/i}})({num:this._backing.getSquarePixelWidth()*this._backing.getCodedHeight(),den:this._backing.getSquarePixelHeight()*this._backing.getCodedWidth()})}get type(){return"video"}get codec(){return this._backing.getCodec()}get codedWidth(){return this._backing.getCodedWidth()}get codedHeight(){return this._backing.getCodedHeight()}get rotation(){return this._backing.getRotation()}get squarePixelWidth(){return this._backing.getSquarePixelWidth()}get squarePixelHeight(){return this._backing.getSquarePixelHeight()}get displayWidth(){return this._backing.getRotation()%180==0?this.squarePixelWidth:this.squarePixelHeight}get displayHeight(){return this._backing.getRotation()%180==0?this.squarePixelHeight:this.squarePixelWidth}getColorSpace(){return this._backing.getColorSpace()}async hasHighDynamicRange(){const t=await this._backing.getColorSpace();return"bt2020"===t.primaries||"smpte432"===t.primaries||"pg"===t.transfer||"hlg"===t.transfer||"bt2020-ncl"===t.matrix}canBeTransparent(){return this._backing.canBeTransparent()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return Ww(null!==e),R_.some((n=>n.supports(e,t)))?!0:"undefined"!=typeof VideoDecoder&&!0===(await VideoDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof z_))throw new TypeError("packet must be an EncodedPacket.");if(t.isMetadataOnly)throw new TypeError("packet must not be metadata-only to determine its type.");if(null===this.codec)return null;const e=await this.getDecoderConfig();return Ww(e),((t,e,n)=>{switch(t){case"avc":for(const t of((t,e)=>{if(e.description){const n=3&jw(e.description)[4];return A_(t,n+1)}return S_(t)})(n,e)){const e=n[t.offset],r=N_(e);if(r>=I_.NON_IDR_SLICE&&r<=I_.SLICE_DPC)return"delta";if(r===I_.IDR)return"key";if(r===I_.SEI&&(i=void 0,!(null!==l_?l_:l_=!("undefined"==typeof navigator||(null===(i=navigator.vendor)||void 0===i||!i.includes("Google Inc"))&&!/Chrome/.test(navigator.userAgent)))||u_()>=144)){const e=n.subarray(t.offset,t.offset+t.length),i=M_(e);let r=1;do{let t=0;for(;;){const e=i[r++];if(void 0===e)break;if(t+=e,e<255)break}let e=0;for(;;){const t=i[r++];if(void 0===t)break;if(e+=t,t<255)break}if(6===t){const t=new p_(i);t.pos=8*r;const e=$w(t),n=t.readBits(1);if(0===e&&1===n)return"key"}r+=e}while(r<i.length-1)}}return"delta";case"hevc":for(const t of((t,e)=>{if(e.description){const n=3&jw(e.description)[21];return A_(t,n+1)}return S_(t)})(n,e)){const e=F_(n[t.offset]);if(e<E_.BLA_W_LP)return"delta";if(e<=E_.RSV_IRAP_VCL23)return"key"}return"delta";case"vp8":return 1&n[0]?"delta":"key";case"vp9":{const t=new p_(n);if(2!==t.readBits(2))return null;const e=t.readBits(1);return 3===(t.readBits(1)<<1)+e&&t.skipBits(1),t.readBits(1)?null:0===t.readBits(1)?"key":"delta"}case"av1":{let t=!1;for(const{type:e,data:i}of O_(n))if(1===e){const e=new p_(i);e.skipBits(4),t=!!e.readBits(1)}else if(3===e||6===e||7===e){if(t)return"key";const e=new p_(i);return e.readBits(1)?null:0===e.readBits(2)?"key":"delta"}return null}default:(t=>{throw new Error(`Unexpected value: ${t}`)})(t),Ww(!1)}var i})(this.codec,e,t.data)}}class G_ extends q_{constructor(t,e){super(t,e),this._backing=e}get type(){return"audio"}get codec(){return this._backing.getCodec()}get numberOfChannels(){return this._backing.getNumberOfChannels()}get sampleRate(){return this._backing.getSampleRate()}getDecoderConfig(){return this._backing.getDecoderConfig()}async getCodecParameterString(){var t;const e=await this._backing.getDecoderConfig();return null!==(t=null==e?void 0:e.codec)&&void 0!==t?t:null}async canDecode(){try{const t=await this._backing.getDecoderConfig();if(!t)return!1;const e=this._backing.getCodec();return Ww(null!==e),L_.some((n=>n.supports(e,t)))?!0:!!t.codec.startsWith("pcm-")||"undefined"!=typeof AudioDecoder&&!0===(await AudioDecoder.isConfigSupported(t)).supported}catch(t){return console.error("Error during decodability check:",t),!1}}async determinePacketType(t){if(!(t instanceof z_))throw new TypeError("packet must be an EncodedPacket.");return null===this.codec?null:"key"}}const H_=t=>{let e=IT(t);const n=MT(t,4);let i=8;1===e&&(e=ST(t),i=16);const r=e-i;return r<0?null:{name:n,totalSize:e,headerSize:i,contentSize:r}},K_=t=>ET(t)/65536,X_=t=>ET(t)/1073741824,Y_=t=>{let e=0;for(let n=0;n<4;n++){e<<=7;const n=xT(t);if(e|=127&n,!(128&n))break}return e},Q_=t=>{let e=wT(t);return t.skip(2),e=Math.min(e,t.remainingLength),Vw.decode(kT(t,e))},J_=t=>{const e=H_(t);if(!e||"data"!==e.name)return null;if(t.remainingLength<8)return null;const n=IT(t);t.skip(4);const i=kT(t,e.contentSize-8);switch(n){case 1:return Vw.decode(i);case 2:return new TextDecoder("utf-16be").decode(i);case 13:return new h_(i,"image/jpeg");case 14:return new h_(i,"image/png");case 27:return new h_(i,"image/bmp");default:return i}};class Z_ extends D_{constructor(t){super(t),this.moovSlice=null,this.currentTrack=null,this.tracks=[],this.metadataPromise=null,this.movieTimescale=-1,this.movieDurationInTimescale=-1,this.isQuickTime=!1,this.metadataTags={},this.currentMetadataKeys=null,this.isFragmented=!1,this.fragmentTrackDefaults=[],this.currentFragment=null,this.lastReadFragment=null,this.reader=t._reader}async computeDuration(){const t=await this.getTracks(),e=await Promise.all(t.map((t=>t.computeDuration())));return Math.max(0,...e)}async getTracks(){return await this.readMetadata(),this.tracks.map((t=>t.inputTrack))}async getMimeType(){await this.readMetadata();const t=await Promise.all(this.tracks.map((t=>t.inputTrack.getCodecParameterString())));return(t=>{let e=(t.hasVideo?"video/":t.hasAudio?"audio/":"application/")+(t.isQuickTime?"quicktime":"mp4");return t.codecStrings.length>0&&(e+=`; codecs="${[...new Set(t.codecStrings)].join(", ")}"`),e})({isQuickTime:this.isQuickTime,hasVideo:this.tracks.some((t=>{var e;return"video"===(null===(e=t.info)||void 0===e?void 0:e.type)})),hasAudio:this.tracks.some((t=>{var e;return"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)})),codecStrings:t.filter(Boolean)})}async getMetadataTags(){return await this.readMetadata(),this.metadataTags}readMetadata(){var t;return null!==(t=this.metadataPromise)&&void 0!==t?t:this.metadataPromise=(async()=>{let t=0;for(;;){let e=this.reader.requestSliceRange(t,8,16);if(e instanceof Promise&&(e=await e),!e)break;const n=t,i=H_(e);if(!i)break;if("ftyp"===i.name){const t=MT(e,4);this.isQuickTime="qt "===t}else if("moov"===i.name){let t=this.reader.requestSlice(e.filePos,i.contentSize);if(t instanceof Promise&&(t=await t),!t)break;this.moovSlice=t,this.readContiguousBoxes(this.moovSlice),this.tracks.sort(((t,e)=>Number(e.disposition.default)-Number(t.disposition.default)));for(const t of this.tracks){const e=t.editListPreviousSegmentDurations/this.movieTimescale;t.editListOffset-=Math.round(e*t.timescale)}break}t=n+i.totalSize}if(this.isFragmented&&null!==this.reader.fileSize){let t=this.reader.requestSlice(this.reader.fileSize-4,4);t instanceof Promise&&(t=await t),Ww(t);const e=IT(t),n=this.reader.fileSize-e;if(n>=0&&n<=this.reader.fileSize-16){let t=this.reader.requestSliceRange(n,8,16);if(t instanceof Promise&&(t=await t),t){const e=H_(t);if(e&&"mfra"===e.name){let n=this.reader.requestSlice(t.filePos,e.contentSize);n instanceof Promise&&(n=await n),n&&this.readContiguousBoxes(n)}}}}})()}getSampleTableForTrack(t){var e;if(t.sampleTable)return t.sampleTable;const n={sampleTimingEntries:[],sampleCompositionTimeOffsets:[],sampleSizes:[],keySampleIndices:null,chunkOffsets:[],sampleToChunk:[],presentationTimestamps:null,presentationTimestampIndexMap:null};t.sampleTable=n,Ww(this.moovSlice);const i=this.moovSlice.slice(t.sampleTableByteOffset);if(this.currentTrack=t,this.traverseBox(i),this.currentTrack=null,"audio"===(null===(e=t.info)||void 0===e?void 0:e.type)&&t.info.codec&&y_.includes(t.info.codec)&&0===n.sampleCompositionTimeOffsets.length){var r;Ww("audio"===(null===(r=t.info)||void 0===r?void 0:r.type));const e=(t=>{if(Ww(y_.includes(t)),"ulaw"===t)return{dataType:"ulaw",sampleSize:1,littleEndian:!0,silentValue:255};if("alaw"===t)return{dataType:"alaw",sampleSize:1,littleEndian:!0,silentValue:213};const e=w_.exec(t);let n;return Ww(e),n="u"===e[1]?"unsigned":"s"===e[1]?"signed":"float",{dataType:n,sampleSize:Number(e[2])/8,littleEndian:"be"!==e[3],silentValue:"pcm-u8"===t?128:0}})(t.info.codec),i=[],o=[];for(let r=0;r<n.sampleToChunk.length;r++){const s=n.sampleToChunk[r],a=n.sampleToChunk[r+1],l=(a?a.startChunkIndex:n.chunkOffsets.length)-s.startChunkIndex;for(let r=0;r<l;r++){const a=s.startSampleIndex+r*s.samplesPerChunk,l=a+s.samplesPerChunk,c=n_(n.sampleTimingEntries,a,(t=>t.startIndex)),u=n.sampleTimingEntries[c],d=n_(n.sampleTimingEntries,l,(t=>t.startIndex)),h=n.sampleTimingEntries[d],f=u.startDecodeTimestamp+(a-u.startIndex)*u.delta,p=h.startDecodeTimestamp+(l-h.startIndex)*h.delta-f,m=Uw(i);m&&m.delta===p?m.count++:i.push({startIndex:s.startChunkIndex+r,startDecodeTimestamp:f,count:1,delta:p});const v=s.samplesPerChunk*e.sampleSize*t.info.numberOfChannels;o.push(v)}s.startSampleIndex=s.startChunkIndex,s.samplesPerChunk=1}n.sampleTimingEntries=i,n.sampleSizes=o}if(n.sampleCompositionTimeOffsets.length>0){n.presentationTimestamps=[];for(const t of n.sampleTimingEntries)for(let e=0;e<t.count;e++)n.presentationTimestamps.push({presentationTimestamp:t.startDecodeTimestamp+e*t.delta,sampleIndex:t.startIndex+e});for(const t of n.sampleCompositionTimeOffsets)for(let e=0;e<t.count;e++){const i=t.startIndex+e,r=n.presentationTimestamps[i];r&&(r.presentationTimestamp+=t.offset)}n.presentationTimestamps.sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp)),n.presentationTimestampIndexMap=Array(n.presentationTimestamps.length).fill(-1);for(let t=0;t<n.presentationTimestamps.length;t++)n.presentationTimestampIndexMap[n.presentationTimestamps[t].sampleIndex]=t}return n}async readFragment(t){var e;if((null===(e=this.lastReadFragment)||void 0===e?void 0:e.moofOffset)===t)return this.lastReadFragment;let n=this.reader.requestSliceRange(t,8,16);n instanceof Promise&&(n=await n),Ww(n);const i=H_(n);Ww("moof"===(null==i?void 0:i.name));let r=this.reader.requestSlice(t,i.totalSize);r instanceof Promise&&(r=await r),Ww(r),this.traverseBox(r);const o=this.lastReadFragment;Ww(o&&o.moofOffset===t);for(const[,t]of o.trackData){const e=t.track,{fragmentPositionCache:n}=e;if(!t.startTimestampIsFinal){const i=e.fragmentLookupTable.find((t=>t.moofOffset===o.moofOffset));if(i)aT(t,i.timestamp);else{const e=n_(n,o.moofOffset-1,(t=>t.moofOffset));if(-1!==e){const i=n[e];aT(t,i.endTimestamp)}}t.startTimestampIsFinal=!0}const i=n_(n,t.startTimestamp,(t=>t.startTimestamp));-1!==i&&n[i].moofOffset===o.moofOffset||n.splice(i+1,0,{moofOffset:o.moofOffset,startTimestamp:t.startTimestamp,endTimestamp:t.endTimestamp})}return o}readContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8&&this.traverseBox(t););}*iterateContiguousBoxes(t){const e=t.filePos;for(;t.filePos-e<=t.length-8;){const e=t.filePos,n=H_(t);if(!n)break;yield{boxInfo:n,slice:t},t.filePos=e+n.totalSize}}traverseBox(t){var e,n,i,r,o,s,a,l,c,u,d,h,f,p,m,v,g,y,b,k,x,w,_,T,I,E,S,A,N,M,F,O,C,P,D,R;const L=t.filePos,B=H_(t);if(!B)return!1;const z=t.filePos,W=L+B.totalSize;switch(B.name){case"mdia":case"minf":case"dinf":case"mfra":case"edts":case"wave":this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mvhd":{const e=xT(t);t.skip(3),1===e?(t.skip(16),this.movieTimescale=IT(t),this.movieDurationInTimescale=ST(t)):(t.skip(8),this.movieTimescale=IT(t),this.movieDurationInTimescale=IT(t))}break;case"trak":{const e={id:-1,demuxer:this,inputTrack:null,disposition:{...f_},info:null,timescale:-1,durationInMovieTimescale:-1,durationInMediaTimescale:-1,rotation:0,internalCodecId:null,name:null,languageCode:"und",sampleTableByteOffset:-1,sampleTable:null,fragmentLookupTable:[],currentFragmentState:null,fragmentPositionCache:[],editListPreviousSegmentDurations:0,editListOffset:0};if(this.currentTrack=e,this.readContiguousBoxes(t.slice(z,B.contentSize)),-1!==e.id&&-1!==e.timescale&&null!==e.info)if("video"===e.info.type&&-1!==e.info.width){const t=e;e.inputTrack=new V_(this.input,new eT(t)),this.tracks.push(e)}else if("audio"===e.info.type&&-1!==e.info.numberOfChannels){const t=e;e.inputTrack=new G_(this.input,new nT(t)),this.tracks.push(e)}this.currentTrack=null}break;case"tkhd":{const e=this.currentTrack;if(!e)break;const n=xT(t),i=!!(1&_T(t));if(e.disposition.default=i,0===n)t.skip(8),e.id=IT(t),t.skip(4),e.durationInMovieTimescale=IT(t);else{if(1!==n)throw new Error(`Incorrect track header version ${n}.`);t.skip(16),e.id=IT(t),t.skip(4),e.durationInMovieTimescale=ST(t)}t.skip(16);const r=[K_(t),K_(t),X_(t),K_(t),K_(t),X_(t),K_(t),K_(t),X_(t)],o=(t=>{const e=(t%360+360)%360;if(0===e||90===e||180===e||270===e)return e;throw new Error(`Invalid rotation ${t}.`)})((Ot=lT(r),90*Math.round(Ot/90)));Ww(0===o||90===o||180===o||270===o),e.rotation=o}break;case"elst":{const e=this.currentTrack;if(!e)break;const n=xT(t);t.skip(3);let i=!1,r=0;const o=IT(t);for(let s=0;s<o;s++){const o=1===n?ST(t):IT(t),s=1===n?AT(t):ET(t),a=K_(t);if(0!==o){if(i){console.warn("Unsupported edit list: multiple edits are not currently supported. Only using first edit.");break}if(-1!==s){if(1!==a){console.warn("Unsupported edit list entry: media rate must be 1.");break}e.editListPreviousSegmentDurations=r,e.editListOffset=s,i=!0}else r+=o}}}break;case"mdhd":{const e=this.currentTrack;if(!e)break;const n=xT(t);t.skip(3),0===n?(t.skip(8),e.timescale=IT(t),e.durationInMediaTimescale=IT(t)):1===n&&(t.skip(16),e.timescale=IT(t),e.durationInMediaTimescale=ST(t));let i=wT(t);if(i>0){e.languageCode="";for(let t=0;t<3;t++)e.languageCode=String.fromCharCode(96+(31&i))+e.languageCode,i>>=5;Ft=e.languageCode,s_.test(Ft)||(e.languageCode="und")}}break;case"hdlr":{const e=this.currentTrack;if(!e)break;t.skip(8);const n=MT(t,4);"vide"===n?e.info={type:"video",width:-1,height:-1,squarePixelWidth:-1,squarePixelHeight:-1,codec:null,codecDescription:null,colorSpace:null,avcType:null,avcCodecInfo:null,hevcCodecInfo:null,vp9CodecInfo:null,av1CodecInfo:null}:"soun"===n&&(e.info={type:"audio",numberOfChannels:-1,sampleRate:-1,codec:null,codecDescription:null,aacCodecInfo:null})}break;case"stbl":{const e=this.currentTrack;if(!e)break;e.sampleTableByteOffset=L,this.readContiguousBoxes(t.slice(z,B.contentSize))}break;case"stsd":{const e=this.currentTrack;if(!e)break;if(null===e.info||e.sampleTable)break;const n=xT(t);t.skip(3);const i=IT(t);for(let r=0;r<i;r++){const i=t.filePos,r=H_(t);if(!r)break;e.internalCodecId=r.name;const o=r.name.toLowerCase();if("video"===e.info.type)"avc1"===o||"avc3"===o?(e.info.codec="avc",e.info.avcType="avc1"===o?1:3):"hvc1"===o||"hev1"===o?e.info.codec="hevc":"vp08"===o?e.info.codec="vp8":"vp09"===o?e.info.codec="vp9":"av01"===o?e.info.codec="av1":console.warn(`Unsupported video codec (sample entry type '${r.name}').`),t.skip(24),e.info.width=wT(t),e.info.height=wT(t),e.info.squarePixelWidth=e.info.width,e.info.squarePixelHeight=e.info.height,t.skip(50),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos));else{"mp4a"===o||("opus"===o?e.info.codec="opus":"flac"===o?e.info.codec="flac":"twos"===o||"sowt"===o||"raw "===o||"in24"===o||"in32"===o||"fl32"===o||"fl64"===o||"lpcm"===o||"ipcm"===o||"fpcm"===o||("ulaw"===o?e.info.codec="ulaw":"alaw"===o?e.info.codec="alaw":"ac-3"===o?e.info.codec="ac3":"ec-3"===o?e.info.codec="eac3":console.warn(`Unsupported audio codec (sample entry type '${r.name}').`))),t.skip(8);const s=wT(t);t.skip(6);let a=wT(t),l=wT(t);t.skip(4);let c=IT(t)/65536;if(0===n&&s>0)if(1===s)t.skip(4),l=8*IT(t),t.skip(8);else if(2===s){t.skip(4),c=NT(t),a=IT(t),t.skip(4),l=IT(t);const n=IT(t);if(t.skip(8),"lpcm"===o){const t=l+7>>3,i=Boolean(1&n),r=Boolean(2&n),o=4&n?-1:0;l>0&&l<=64&&(i?32===l&&(e.info.codec=r?"pcm-f32be":"pcm-f32"):o&1<<t-1?1===t?e.info.codec="pcm-s8":2===t?e.info.codec=r?"pcm-s16be":"pcm-s16":3===t?e.info.codec=r?"pcm-s24be":"pcm-s24":4===t&&(e.info.codec=r?"pcm-s32be":"pcm-s32"):1===t&&(e.info.codec="pcm-u8")),null===e.info.codec&&console.warn("Unsupported PCM format.")}}"opus"===e.info.codec&&(c=48e3),e.info.numberOfChannels=a,e.info.sampleRate=c,"twos"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16be":(console.warn(`Unsupported sample size ${l} for codec 'twos'.`),e.info.codec=null):"sowt"===o?8===l?e.info.codec="pcm-s8":16===l?e.info.codec="pcm-s16":(console.warn(`Unsupported sample size ${l} for codec 'sowt'.`),e.info.codec=null):"raw "===o?e.info.codec="pcm-u8":"in24"===o?e.info.codec="pcm-s24be":"in32"===o?e.info.codec="pcm-s32be":"fl32"===o?e.info.codec="pcm-f32be":"fl64"===o?e.info.codec="pcm-f64be":"ipcm"===o?e.info.codec="pcm-s16be":"fpcm"===o&&(e.info.codec="pcm-f32be"),this.readContiguousBoxes(t.slice(t.filePos,i+r.totalSize-t.filePos))}}}break;case"avcC":{const e=this.currentTrack;if(!e)break;Ww(e.info),e.info.codecDescription=kT(t,B.contentSize)}break;case"hvcC":{const e=this.currentTrack;if(!e)break;Ww(e.info),e.info.codecDescription=kT(t,B.contentSize)}break;case"vpcC":{var U;const e=this.currentTrack;if(!e)break;Ww("video"===(null===(U=e.info)||void 0===U?void 0:U.type)),t.skip(4);const n=xT(t),i=xT(t),r=xT(t),o=r>>4,s=r>>1&7,a=1&r,l=xT(t),c=xT(t),u=xT(t);e.info.vp9CodecInfo={profile:n,level:i,bitDepth:o,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:l,transferCharacteristics:c,matrixCoefficients:u}}break;case"av1C":{var $;const e=this.currentTrack;if(!e)break;Ww("video"===(null===($=e.info)||void 0===$?void 0:$.type)),t.skip(1);const n=xT(t),i=n>>5,r=31&n,o=xT(t),s=o>>7,a=o>>6&1,l=o>>4&1,c=o>>3&1,u=o>>2&1,d=3&o,h=2===i&&a?o>>5&1?12:10:a?10:8;e.info.av1CodecInfo={profile:i,level:r,tier:s,bitDepth:h,monochrome:l,chromaSubsamplingX:c,chromaSubsamplingY:u,chromaSamplePosition:d}}break;case"colr":{var j;const e=this.currentTrack;if(!e)break;if(Ww("video"===(null===(j=e.info)||void 0===j?void 0:j.type)),"nclx"!==MT(t,4))break;const n=wT(t),i=wT(t),r=wT(t),o=Boolean(128&xT(t));e.info.colorSpace={primaries:Kw[n],transfer:Yw[i],matrix:Jw[r],fullRange:o}}break;case"pasp":{var q;const e=this.currentTrack;if(!e)break;Ww("video"===(null===(q=e.info)||void 0===q?void 0:q.type));const n=IT(t),i=IT(t);n>i?e.info.squarePixelWidth=Math.round(e.info.width*n/i):e.info.squarePixelHeight=Math.round(e.info.height*i/n)}break;case"esds":{var V;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(V=e.info)||void 0===V?void 0:V.type)),t.skip(4),Ww(3===xT(t)),Y_(t),t.skip(2);const n=xT(t),i=!!(64&n),r=!!(32&n);if(!!(128&n)&&t.skip(2),i){const e=xT(t);t.skip(e)}r&&t.skip(2),Ww(4===xT(t));const o=Y_(t),s=t.filePos,a=xT(t);if(64===a||103===a?(e.info.codec="aac",e.info.aacCodecInfo={isMpeg2:103===a,objectType:null}):105===a||107===a?e.info.codec="mp3":221===a?e.info.codec="vorbis":console.warn(`Unsupported audio codec (objectTypeIndication ${a}) - discarding track.`),t.skip(12),o>t.filePos-s){Ww(5===xT(t));const n=Y_(t);if(e.info.codecDescription=kT(t,n),"aac"===e.info.codec){const t=g_(e.info.codecDescription);null!==t.numberOfChannels&&(e.info.numberOfChannels=t.numberOfChannels),null!==t.sampleRate&&(e.info.sampleRate=t.sampleRate)}}}break;case"enda":{var G;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(G=e.info)||void 0===G?void 0:G.type)),255&wT(t)&&("pcm-s16be"===e.info.codec?e.info.codec="pcm-s16":"pcm-s24be"===e.info.codec?e.info.codec="pcm-s24":"pcm-s32be"===e.info.codec?e.info.codec="pcm-s32":"pcm-f32be"===e.info.codec?e.info.codec="pcm-f32":"pcm-f64be"===e.info.codec&&(e.info.codec="pcm-f64"))}break;case"pcmC":{var H;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(H=e.info)||void 0===H?void 0:H.type)),t.skip(4);const n=xT(t),i=Boolean(1&n),r=xT(t);"pcm-s16be"===e.info.codec?i?16===r?e.info.codec="pcm-s16":24===r?e.info.codec="pcm-s24":32===r?e.info.codec="pcm-s32":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):16===r?e.info.codec="pcm-s16be":24===r?e.info.codec="pcm-s24be":32===r?e.info.codec="pcm-s32be":(console.warn(`Invalid ipcm sample size ${r}.`),e.info.codec=null):"pcm-f32be"===e.info.codec&&(i?32===r?e.info.codec="pcm-f32":64===r?e.info.codec="pcm-f64":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null):32===r?e.info.codec="pcm-f32be":64===r?e.info.codec="pcm-f64be":(console.warn(`Invalid fpcm sample size ${r}.`),e.info.codec=null));break}case"dOps":{var K;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(K=e.info)||void 0===K?void 0:K.type)),t.skip(1);const n=xT(t),i=wT(t),r=IT(t),o=TT(t),s=xT(t);let a;a=0!==s?kT(t,2+n):new Uint8Array(0);const l=new Uint8Array(19+a.byteLength),c=new DataView(l.buffer);c.setUint32(0,1332770163,!1),c.setUint32(4,1214603620,!1),c.setUint8(8,1),c.setUint8(9,n),c.setUint16(10,i,!0),c.setUint32(12,r,!0),c.setInt16(16,o,!0),c.setUint8(18,s),l.set(a,19),e.info.codecDescription=l,e.info.numberOfChannels=n}break;case"dfLa":{var X;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(X=e.info)||void 0===X?void 0:X.type)),t.skip(4);const n=127,i=128,r=t.filePos;for(;t.filePos<W;){const r=xT(t),o=_T(t);if((r&n)===C_.STREAMINFO){t.skip(10);const n=IT(t),i=n>>>12,r=1+(n>>9&7);e.info.sampleRate=i,e.info.numberOfChannels=r,t.skip(20)}else t.skip(o);if(r&i)break}const o=t.filePos;t.filePos=r;const s=kT(t,o-r),a=new Uint8Array(4+s.byteLength);new DataView(a.buffer).setUint32(0,1716281667,!1),a.set(s,4),e.info.codecDescription=a}break;case"dac3":{var Y;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(Y=e.info)||void 0===Y?void 0:Y.type));const n=kT(t,3),i=new p_(n),r=i.readBits(2);i.skipBits(8);const o=i.readBits(3),s=i.readBits(1);r<3&&(e.info.sampleRate=__[r]),e.info.numberOfChannels=P_[o]+s}break;case"dec3":{var Q;const e=this.currentTrack;if(!e)break;Ww("audio"===(null===(Q=e.info)||void 0===Q?void 0:Q.type));const n=(t=>{if(t.length<2)return null;const e=new p_(t),n=e.readBits(13),i=e.readBits(3),r=[];for(let n=0;n<=i&&!(Math.ceil(e.pos/8)+3>t.length);n++){const t=e.readBits(2),n=e.readBits(5);e.skipBits(1),e.skipBits(1);const i=e.readBits(3),o=e.readBits(3),s=e.readBits(1);e.skipBits(3);const a=e.readBits(4);let l=0;a>0?l=e.readBits(9):e.skipBits(1),r.push({fscod:t,fscod2:null,bsid:n,bsmod:i,acmod:o,lfeon:s,numDepSub:a,chanLoc:l})}return 0===r.length?null:{dataRate:n,substreams:r}})(kT(t,B.contentSize));if(!n){console.warn("Invalid dec3 box contents, ignoring.");break}const i=(t=>{const e=t.substreams[0];return Ww(e),e.fscod<3?__[e.fscod]:null!==e.fscod2&&e.fscod2<3?T_[e.fscod2]:null})(n);null!==i&&(e.info.sampleRate=i),e.info.numberOfChannels=(t=>{const e=t.substreams[0];Ww(e);let n=P_[e.acmod]+e.lfeon;if(e.numDepSub>0){const t=[2,2,1,1,2,2,2,1,1];for(let i=0;i<9;i++)e.chanLoc&1<<8-i&&(n+=t[i])}return n})(n)}break;case"stts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=IT(t);let i=0,r=0;for(let o=0;o<n;o++){const n=IT(t),o=IT(t);e.sampleTable.sampleTimingEntries.push({startIndex:i,startDecodeTimestamp:r,count:n,delta:o}),i+=n,r+=n*o}}break;case"ctts":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=IT(t);let i=0;for(let r=0;r<n;r++){const n=IT(t),r=ET(t);e.sampleTable.sampleCompositionTimeOffsets.push({startIndex:i,count:n,offset:r}),i+=n}}break;case"stsz":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=IT(t),i=IT(t);if(0===n)for(let n=0;n<i;n++){const n=IT(t);e.sampleTable.sampleSizes.push(n)}else e.sampleTable.sampleSizes.push(n)}break;case"stz2":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),t.skip(3);const n=xT(t),i=IT(t),r=kT(t,Math.ceil(i*n/8)),o=new p_(r);for(let t=0;t<i;t++){const t=o.readBits(n);e.sampleTable.sampleSizes.push(t)}}break;case"stss":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4),e.sampleTable.keySampleIndices=[];const n=IT(t);for(let i=0;i<n;i++){const n=IT(t)-1;e.sampleTable.keySampleIndices.push(n)}0!==e.sampleTable.keySampleIndices[0]&&e.sampleTable.keySampleIndices.unshift(0)}break;case"stsc":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=IT(t);for(let i=0;i<n;i++){const n=IT(t)-1,i=IT(t),r=IT(t);e.sampleTable.sampleToChunk.push({startSampleIndex:-1,startChunkIndex:n,samplesPerChunk:i,sampleDescriptionIndex:r})}let i=0;for(let t=0;t<e.sampleTable.sampleToChunk.length;t++)e.sampleTable.sampleToChunk[t].startSampleIndex=i,t<e.sampleTable.sampleToChunk.length-1&&(i+=(e.sampleTable.sampleToChunk[t+1].startChunkIndex-e.sampleTable.sampleToChunk[t].startChunkIndex)*e.sampleTable.sampleToChunk[t].samplesPerChunk)}break;case"stco":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=IT(t);for(let i=0;i<n;i++){const n=IT(t);e.sampleTable.chunkOffsets.push(n)}}break;case"co64":{const e=this.currentTrack;if(!e)break;if(!e.sampleTable)break;t.skip(4);const n=IT(t);for(let i=0;i<n;i++){const n=ST(t);e.sampleTable.chunkOffsets.push(n)}}break;case"mvex":this.isFragmented=!0,this.readContiguousBoxes(t.slice(z,B.contentSize));break;case"mehd":{const e=xT(t);t.skip(3);const n=1===e?ST(t):IT(t);this.movieDurationInTimescale=n}break;case"trex":{t.skip(4);const e=IT(t),n=IT(t),i=IT(t),r=IT(t),o=IT(t);this.fragmentTrackDefaults.push({trackId:e,defaultSampleDescriptionIndex:n,defaultSampleDuration:i,defaultSampleSize:r,defaultSampleFlags:o})}break;case"tfra":{const e=xT(t);t.skip(3);const n=IT(t),i=this.tracks.find((t=>t.id===n));if(!i)break;const r=IT(t),o=(12&r)>>2,s=3&r,a=[xT,wT,_T,IT],l=a[(48&r)>>4],c=a[o],u=a[s],d=IT(t);for(let n=0;n<d;n++){const n=1===e?ST(t):IT(t),r=1===e?ST(t):IT(t);l(t),c(t),u(t),i.fragmentLookupTable.push({timestamp:n,moofOffset:r})}i.fragmentLookupTable.sort(((t,e)=>t.timestamp-e.timestamp));for(let t=0;t<i.fragmentLookupTable.length-1;t++){const e=i.fragmentLookupTable[t],n=i.fragmentLookupTable[t+1];e.timestamp===n.timestamp&&(i.fragmentLookupTable.splice(t+1,1),t--)}}break;case"moof":this.currentFragment={moofOffset:L,moofSize:B.totalSize,implicitBaseDataOffset:L,trackData:new Map},this.readContiguousBoxes(t.slice(z,B.contentSize)),this.lastReadFragment=this.currentFragment,this.currentFragment=null;break;case"traf":if(Ww(this.currentFragment),this.readContiguousBoxes(t.slice(z,B.contentSize)),this.currentTrack){const t=this.currentFragment.trackData.get(this.currentTrack.id);if(t){const{currentFragmentState:e}=this.currentTrack;Ww(e),null!==e.startTimestamp&&(aT(t,e.startTimestamp),t.startTimestampIsFinal=!0)}this.currentTrack.currentFragmentState=null,this.currentTrack=null}break;case"tfhd":{var J,Z,tt,et;Ww(this.currentFragment),t.skip(1);const e=_T(t),n=Boolean(1&e),i=Boolean(2&e),r=Boolean(8&e),o=Boolean(16&e),s=Boolean(32&e),a=Boolean(65536&e),l=Boolean(131072&e),c=IT(t),u=this.tracks.find((t=>t.id===c));if(!u)break;const d=this.fragmentTrackDefaults.find((t=>t.trackId===c));this.currentTrack=u,u.currentFragmentState={baseDataOffset:this.currentFragment.implicitBaseDataOffset,sampleDescriptionIndex:null!==(J=null==d?void 0:d.defaultSampleDescriptionIndex)&&void 0!==J?J:null,defaultSampleDuration:null!==(Z=null==d?void 0:d.defaultSampleDuration)&&void 0!==Z?Z:null,defaultSampleSize:null!==(tt=null==d?void 0:d.defaultSampleSize)&&void 0!==tt?tt:null,defaultSampleFlags:null!==(et=null==d?void 0:d.defaultSampleFlags)&&void 0!==et?et:null,startTimestamp:null},n?u.currentFragmentState.baseDataOffset=ST(t):l&&(u.currentFragmentState.baseDataOffset=this.currentFragment.moofOffset),i&&(u.currentFragmentState.sampleDescriptionIndex=IT(t)),r&&(u.currentFragmentState.defaultSampleDuration=IT(t)),o&&(u.currentFragmentState.defaultSampleSize=IT(t)),s&&(u.currentFragmentState.defaultSampleFlags=IT(t)),a&&(u.currentFragmentState.defaultSampleDuration=0)}break;case"tfdt":{const e=this.currentTrack;if(!e)break;Ww(e.currentFragmentState);const n=xT(t);t.skip(3);const i=0===n?IT(t):ST(t);e.currentFragmentState.startTimestamp=i}break;case"trun":{const e=this.currentTrack;if(!e)break;if(Ww(this.currentFragment),Ww(e.currentFragmentState),this.currentFragment.trackData.has(e.id)){console.warn("Can't have two trun boxes for the same track in one fragment. Ignoring...");break}const n=xT(t),i=_T(t),r=Boolean(1&i),o=Boolean(4&i),s=Boolean(256&i),a=Boolean(512&i),l=Boolean(1024&i),c=Boolean(2048&i),u=IT(t);let d=e.currentFragmentState.baseDataOffset;r&&(d+=ET(t));let h=null;o&&(h=IT(t));let f=d;if(0===u){this.currentFragment.implicitBaseDataOffset=f;break}let p=0;const m={track:e,startTimestamp:0,endTimestamp:0,firstKeyFrameTimestamp:null,samples:[],presentationTimestamps:[],startTimestampIsFinal:!1};this.currentFragment.trackData.set(e.id,m);for(let i=0;i<u;i++){let r,o,u;s?r=IT(t):(Ww(null!==e.currentFragmentState.defaultSampleDuration),r=e.currentFragmentState.defaultSampleDuration),a?o=IT(t):(Ww(null!==e.currentFragmentState.defaultSampleSize),o=e.currentFragmentState.defaultSampleSize),l?u=IT(t):(Ww(null!==e.currentFragmentState.defaultSampleFlags),u=e.currentFragmentState.defaultSampleFlags),0===i&&null!==h&&(u=h);let d=0;c&&(d=0===n?IT(t):ET(t));const v=!(65536&u);m.samples.push({presentationTimestamp:p+d,duration:r,byteOffset:f,byteSize:o,isKeyFrame:v}),f+=o,p+=r}m.presentationTimestamps=m.samples.map(((t,e)=>({presentationTimestamp:t.presentationTimestamp,sampleIndex:e}))).sort(((t,e)=>t.presentationTimestamp-e.presentationTimestamp));for(let t=0;t<m.presentationTimestamps.length;t++){const e=m.presentationTimestamps[t],n=m.samples[e.sampleIndex];if(null===m.firstKeyFrameTimestamp&&n.isKeyFrame&&(m.firstKeyFrameTimestamp=n.presentationTimestamp),t<m.presentationTimestamps.length-1){const i=m.presentationTimestamps[t+1];n.duration=i.presentationTimestamp-e.presentationTimestamp}}const v=m.samples[m.presentationTimestamps[0].sampleIndex],g=m.samples[Uw(m.presentationTimestamps).sampleIndex];m.startTimestamp=v.presentationTimestamp,m.endTimestamp=g.presentationTimestamp+g.duration,this.currentFragment.implicitBaseDataOffset=f}break;case"udta":{const g=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:y}of g){if("meta"!==t.name&&!this.currentTrack){var nt,it,rt,ot,st,at,lt,ct;const e=y.filePos;null!==(it=(nt=this.metadataTags).raw)&&void 0!==it||(nt.raw={}),"©"===t.name[0]?null!==(st=(rt=this.metadataTags.raw)[ot=t.name])&&void 0!==st||(rt[ot]=Q_(y)):null!==(ct=(at=this.metadataTags.raw)[lt=t.name])&&void 0!==ct||(at[lt]=kT(y,t.contentSize)),y.filePos=e}switch(t.name){case"meta":y.skip(-t.headerSize),this.traverseBox(y);break;case"©nam":case"name":this.currentTrack?this.currentTrack.name=Vw.decode(kT(y,t.contentSize)):null!==(n=(e=this.metadataTags).title)&&void 0!==n||(e.title=Q_(y));break;case"©des":this.currentTrack||null!==(r=(i=this.metadataTags).description)&&void 0!==r||(i.description=Q_(y));break;case"©ART":this.currentTrack||null!==(s=(o=this.metadataTags).artist)&&void 0!==s||(o.artist=Q_(y));break;case"©alb":this.currentTrack||null!==(l=(a=this.metadataTags).album)&&void 0!==l||(a.album=Q_(y));break;case"albr":this.currentTrack||null!==(u=(c=this.metadataTags).albumArtist)&&void 0!==u||(c.albumArtist=Q_(y));break;case"©gen":this.currentTrack||null!==(h=(d=this.metadataTags).genre)&&void 0!==h||(d.genre=Q_(y));break;case"©day":if(!this.currentTrack){var ut,dt;const t=new Date(Q_(y));Number.isNaN(t.getTime())||null!==(dt=(ut=this.metadataTags).date)&&void 0!==dt||(ut.date=t)}break;case"©cmt":this.currentTrack||null!==(p=(f=this.metadataTags).comment)&&void 0!==p||(f.comment=Q_(y));break;case"©lyr":this.currentTrack||null!==(v=(m=this.metadataTags).lyrics)&&void 0!==v||(m.lyrics=Q_(y))}}}break;case"meta":{if(this.currentTrack)break;const e=0!==IT(t);this.currentMetadataKeys=new Map,e?this.readContiguousBoxes(t.slice(z,B.contentSize)):this.readContiguousBoxes(t.slice(z+4,B.contentSize-4)),this.currentMetadataKeys=null}break;case"keys":{if(!this.currentMetadataKeys)break;t.skip(4);const e=IT(t);for(let n=0;n<e;n++){const e=IT(t);t.skip(4);const i=Vw.decode(kT(t,e-8));this.currentMetadataKeys.set(n+1,i)}}break;case"ilst":{if(!this.currentMetadataKeys)break;const e=this.iterateContiguousBoxes(t.slice(z,B.contentSize));for(const{boxInfo:t,slice:n}of e){var ht,ft,pt,mt,vt;let e=t.name;const i=(e.charCodeAt(0)<<24)+(e.charCodeAt(1)<<16)+(e.charCodeAt(2)<<8)+e.charCodeAt(3);this.currentMetadataKeys.has(i)&&(e=this.currentMetadataKeys.get(i));const r=J_(n);switch(null!==(ft=(ht=this.metadataTags).raw)&&void 0!==ft||(ht.raw={}),null!==(vt=(pt=this.metadataTags.raw)[mt=e])&&void 0!==vt||(pt[mt]=r),e){case"©nam":case"titl":case"com.apple.quicktime.title":case"title":"string"==typeof r&&(null!==(y=(g=this.metadataTags).title)&&void 0!==y||(g.title=r));break;case"©des":case"desc":case"dscp":case"com.apple.quicktime.description":case"description":"string"==typeof r&&(null!==(k=(b=this.metadataTags).description)&&void 0!==k||(b.description=r));break;case"©ART":case"com.apple.quicktime.artist":case"artist":"string"==typeof r&&(null!==(w=(x=this.metadataTags).artist)&&void 0!==w||(x.artist=r));break;case"©alb":case"albm":case"com.apple.quicktime.album":case"album":"string"==typeof r&&(null!==(T=(_=this.metadataTags).album)&&void 0!==T||(_.album=r));break;case"aART":case"album_artist":"string"==typeof r&&(null!==(E=(I=this.metadataTags).albumArtist)&&void 0!==E||(I.albumArtist=r));break;case"©cmt":case"com.apple.quicktime.comment":case"comment":"string"==typeof r&&(null!==(A=(S=this.metadataTags).comment)&&void 0!==A||(S.comment=r));break;case"©gen":case"gnre":case"com.apple.quicktime.genre":case"genre":"string"==typeof r&&(null!==(M=(N=this.metadataTags).genre)&&void 0!==M||(N.genre=r));break;case"©lyr":case"lyrics":"string"==typeof r&&(null!==(O=(F=this.metadataTags).lyrics)&&void 0!==O||(F.lyrics=r));break;case"©day":case"rldt":case"com.apple.quicktime.creationdate":case"date":if("string"==typeof r){var gt,yt;const t=new Date(r);Number.isNaN(t.getTime())||null!==(yt=(gt=this.metadataTags).date)&&void 0!==yt||(gt.date=t)}break;case"covr":case"com.apple.quicktime.artwork":r instanceof h_?(null!==(P=(C=this.metadataTags).images)&&void 0!==P||(C.images=[]),this.metadataTags.images.push({data:r.data,kind:"coverFront",mimeType:r.mimeType})):r instanceof Uint8Array&&(null!==(R=(D=this.metadataTags).images)&&void 0!==R||(D.images=[]),this.metadataTags.images.push({data:r,kind:"coverFront",mimeType:"image/*"}));break;case"track":if("string"==typeof r){var bt,kt,xt,wt;const t=r.split("/"),e=Number.parseInt(t[0],10),n=t[1]&&Number.parseInt(t[1],10);Number.isInteger(e)&&e>0&&(null!==(kt=(bt=this.metadataTags).trackNumber)&&void 0!==kt||(bt.trackNumber=e)),n&&Number.isInteger(n)&&n>0&&(null!==(wt=(xt=this.metadataTags).tracksTotal)&&void 0!==wt||(xt.tracksTotal=n))}break;case"trkn":if(r instanceof Uint8Array&&r.length>=6){var _t,Tt,It,Et;const t=qw(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(Tt=(_t=this.metadataTags).trackNumber)&&void 0!==Tt||(_t.trackNumber=e)),n>0&&(null!==(Et=(It=this.metadataTags).tracksTotal)&&void 0!==Et||(It.tracksTotal=n))}break;case"disc":case"disk":if(r instanceof Uint8Array&&r.length>=6){var St,At,Nt,Mt;const t=qw(r),e=t.getUint16(2,!1),n=t.getUint16(4,!1);e>0&&(null!==(At=(St=this.metadataTags).discNumber)&&void 0!==At||(St.discNumber=e)),n>0&&(null!==(Mt=(Nt=this.metadataTags).discsTotal)&&void 0!==Mt||(Nt.discsTotal=n))}}}}}var Ft,Ot;return t.filePos=W,!0}}class tT{constructor(t){this.internalTrack=t,this.packetToSampleIndex=new WeakMap,this.packetToFragmentLocation=new WeakMap}getId(){return this.internalTrack.id}getNumber(){const t=this.internalTrack.demuxer,e=this.internalTrack.inputTrack.type;let n=0;for(const i of t.tracks)if(i.inputTrack.type===e&&n++,i===this.internalTrack)break;return n}getCodec(){throw new Error("Not implemented on base class.")}getInternalCodecId(){return this.internalTrack.internalCodecId}getName(){return this.internalTrack.name}getLanguageCode(){return this.internalTrack.languageCode}getTimeResolution(){return this.internalTrack.timescale}getDisposition(){return this.internalTrack.disposition}async computeDuration(){var t,e;const n=await this.getPacket(1/0,{metadataOnly:!0});return(null!==(t=null==n?void 0:n.timestamp)&&void 0!==t?t:0)+(null!==(e=null==n?void 0:n.duration)&&void 0!==e?e:0)}async getFirstTimestamp(){var t;const e=await this.getFirstPacket({metadataOnly:!0});return null!==(t=null==e?void 0:e.timestamp)&&void 0!==t?t:0}async getFirstPacket(t){const e=await this.fetchPacketForSampleIndex(0,t);return e||!this.internalTrack.demuxer.isFragmented?e:this.performFragmentedLookup(null,(t=>t.trackData.get(this.internalTrack.id)?{sampleIndex:0,correctSampleFound:!0}:{sampleIndex:-1,correctSampleFound:!1}),-1/0,1/0,t)}mapTimestampIntoTimescale(t){return(t=>{const e=Math.round(t);return Math.abs(t/e-1)<10*Number.EPSILON?e:t})(t*this.internalTrack.timescale)+this.internalTrack.editListOffset}async getPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=iT(i,n),o=await this.fetchPacketForSampleIndex(r,e);return cT(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=n_(e.presentationTimestamps,n,(t=>t.presentationTimestamp));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n)return this.fetchPacketForSampleIndex(n+1,e);const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id);if(i.sampleIndex+1<e.samples.length)return{sampleIndex:i.sampleIndex+1,correctSampleFound:!0}}else if(t.trackData.get(this.internalTrack.id))return{sampleIndex:0,correctSampleFound:!0};return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async getKeyPacket(t,e){const n=this.mapTimestampIntoTimescale(t),i=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),r=rT(i,n),o=await this.fetchPacketForSampleIndex(r,e);return cT(i)&&this.internalTrack.demuxer.isFragmented?this.performFragmentedLookup(null,(t=>{const e=t.trackData.get(this.internalTrack.id);if(!e)return{sampleIndex:-1,correctSampleFound:!1};const i=((t,e)=>{for(let n=t.length-1;n>=0;n--)if(e(t[n]))return n;return-1})(e.presentationTimestamps,(t=>e.samples[t.sampleIndex].isKeyFrame&&t.presentationTimestamp<=n));return{sampleIndex:-1!==i?e.presentationTimestamps[i].sampleIndex:-1,correctSampleFound:-1!==i&&n<e.endTimestamp}}),n,n,e):o}async getNextKeyPacket(t,e){const n=this.packetToSampleIndex.get(t);if(void 0!==n){const t=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=sT(t,n);return this.fetchPacketForSampleIndex(i,e)}const i=this.packetToFragmentLocation.get(t);if(void 0===i)throw new Error("Packet was not created from this track.");return this.performFragmentedLookup(i.fragment,(t=>{if(t===i.fragment){const e=t.trackData.get(this.internalTrack.id).samples.findIndex(((t,e)=>t.isKeyFrame&&e>i.sampleIndex));if(-1!==e)return{sampleIndex:e,correctSampleFound:!0}}else{const e=t.trackData.get(this.internalTrack.id);if(e&&null!==e.firstKeyFrameTimestamp){const t=e.samples.findIndex((t=>t.isKeyFrame));return Ww(-1!==t),{sampleIndex:t,correctSampleFound:!0}}}return{sampleIndex:-1,correctSampleFound:!1}}),-1/0,1/0,e)}async fetchPacketForSampleIndex(t,e){if(-1===t)return null;const n=this.internalTrack.demuxer.getSampleTableForTrack(this.internalTrack),i=oT(n,t);if(!i)return null;let r;if(e.metadataOnly)r=B_;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.sampleOffset,i.sampleSize);t instanceof Promise&&(t=await t),Ww(t),r=kT(t,i.sampleSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new z_(r,i.isKeyFrame?"key":"delta",o,s,t,i.sampleSize);return this.packetToSampleIndex.set(a,t),a}async fetchPacketInFragment(t,e,n){if(-1===e)return null;const i=t.trackData.get(this.internalTrack.id).samples[e];let r;if(Ww(i),n.metadataOnly)r=B_;else{let t=this.internalTrack.demuxer.reader.requestSlice(i.byteOffset,i.byteSize);t instanceof Promise&&(t=await t),Ww(t),r=kT(t,i.byteSize)}const o=(i.presentationTimestamp-this.internalTrack.editListOffset)/this.internalTrack.timescale,s=i.duration/this.internalTrack.timescale,a=new z_(r,i.isKeyFrame?"key":"delta",o,s,t.moofOffset+e,i.byteSize);return this.packetToFragmentLocation.set(a,{fragment:t,sampleIndex:e}),a}async performFragmentedLookup(t,e,n,i,r){var o,s;const a=this.internalTrack.demuxer;let l=null,c=null,u=-1;if(t){const{sampleIndex:n,correctSampleFound:i}=e(t);if(i)return this.fetchPacketInFragment(t,n,r);-1!==n&&(c=t,u=n)}const d=n_(this.internalTrack.fragmentLookupTable,n,(t=>t.timestamp)),h=-1!==d?this.internalTrack.fragmentLookupTable[d]:null,f=n_(this.internalTrack.fragmentPositionCache,n,(t=>t.startTimestamp)),p=-1!==f?this.internalTrack.fragmentPositionCache[f]:null,m=Math.max(null!==(o=null==h?void 0:h.moofOffset)&&void 0!==o?o:0,null!==(s=null==p?void 0:p.moofOffset)&&void 0!==s?s:0)||null;let v;for(t?null===m||t.moofOffset>=m?(v=t.moofOffset+t.moofSize,l=t):v=m:v=null!=m?m:0;;){if(l){const t=l.trackData.get(this.internalTrack.id);if(t&&t.startTimestamp>i)break}let t=a.reader.requestSliceRange(v,8,16);if(t instanceof Promise&&(t=await t),!t)break;const n=v,o=H_(t);if(!o)break;if("moof"===o.name){l=await a.readFragment(n);const{sampleIndex:t,correctSampleFound:i}=e(l);if(i)return this.fetchPacketInFragment(l,t,r);-1!==t&&(c=l,u=t)}v=n+o.totalSize}if(h&&(!c||c.moofOffset<h.moofOffset)){var g;const t=this.internalTrack.fragmentLookupTable[d-1];Ww(!t||t.timestamp<h.timestamp);const n=null!==(g=null==t?void 0:t.timestamp)&&void 0!==g?g:-1/0;return this.performFragmentedLookup(null,e,n,i,r)}return c?this.fetchPacketInFragment(c,u,r):null}}class eT extends tT{constructor(t){super(t),this.decoderConfigPromise=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getCodedWidth(){return this.internalTrack.info.width}getCodedHeight(){return this.internalTrack.info.height}getSquarePixelWidth(){return this.internalTrack.info.squarePixelWidth}getSquarePixelHeight(){return this.internalTrack.info.squarePixelHeight}getRotation(){return this.internalTrack.rotation}async getColorSpace(){var t,e,n,i;return{primaries:null===(t=this.internalTrack.info.colorSpace)||void 0===t?void 0:t.primaries,transfer:null===(e=this.internalTrack.info.colorSpace)||void 0===e?void 0:e.transfer,matrix:null===(n=this.internalTrack.info.colorSpace)||void 0===n?void 0:n.matrix,fullRange:null===(i=this.internalTrack.info.colorSpace)||void 0===i?void 0:i.fullRange}}async canBeTransparent(){return!1}async getDecoderConfig(){var t;return this.internalTrack.info.codec?null!==(t=this.decoderConfigPromise)&&void 0!==t?t:this.decoderConfigPromise=(async(t,e)=>{if("vp9"!==this.internalTrack.info.codec||this.internalTrack.info.vp9CodecInfo){if("av1"===this.internalTrack.info.codec&&!this.internalTrack.info.av1CodecInfo){const t=await this.getFirstPacket({});this.internalTrack.info.av1CodecInfo=t&&(t=>{for(const{type:e,data:n}of O_(t)){if(1!==e)continue;const t=new p_(n),i=t.readBits(3);t.readBits(1);const r=t.readBits(1);let o=0,s=0,a=0;if(r)o=t.readBits(5);else{if(t.readBits(1)&&(t.skipBits(32),t.skipBits(32),t.readBits(1)))return null;const e=t.readBits(1);e&&(a=t.readBits(5),t.skipBits(32),t.skipBits(5),t.skipBits(5));const n=t.readBits(5);for(let i=0;i<=n;i++){t.skipBits(12);const n=t.readBits(5);if(0===i&&(o=n),n>7){const e=t.readBits(1);0===i&&(s=e)}if(e&&t.readBits(1)){const e=a+1;t.skipBits(e),t.skipBits(e),t.skipBits(1)}t.readBits(1)&&t.skipBits(4)}}const l=t.readBits(4),c=t.readBits(4),u=l+1;t.skipBits(u);const d=c+1;t.skipBits(d);let h=0;if(h=r?0:t.readBits(1),h&&(t.skipBits(4),t.skipBits(3)),t.skipBits(1),t.skipBits(1),t.skipBits(1),!r){t.skipBits(1),t.skipBits(1),t.skipBits(1),t.skipBits(1);const e=t.readBits(1);e&&(t.skipBits(1),t.skipBits(1));let n=0;n=t.readBits(1)?2:t.readBits(1),n>0&&(t.readBits(1)||t.skipBits(1)),e&&t.skipBits(3)}t.skipBits(1),t.skipBits(1),t.skipBits(1);const f=t.readBits(1);let p=8;2===i&&f?p=t.readBits(1)?12:10:i<=2&&(p=f?10:8);let m=0;1!==i&&(m=t.readBits(1));let v=1,g=1,y=0;return m||(0===i?(v=1,g=1):1===i?(v=0,g=0):12===p&&(v=t.readBits(1),v&&(g=t.readBits(1))),v&&g&&(y=t.readBits(2))),{profile:i,level:o,tier:s,bitDepth:p,monochrome:m,chromaSubsamplingX:v,chromaSubsamplingY:g,chromaSamplePosition:y}}return null})(t.data)}}else{const t=await this.getFirstPacket({});this.internalTrack.info.vp9CodecInfo=t&&(t=>{const e=new p_(t);if(2!==e.readBits(2))return null;const n=e.readBits(1),i=(e.readBits(1)<<1)+n;if(3===i&&e.skipBits(1),1===e.readBits(1))return null;if(0!==e.readBits(1))return null;if(e.skipBits(2),4817730!==e.readBits(24))return null;let r=8;i>=2&&(r=e.readBits(1)?12:10);const o=e.readBits(3);let s=0,a=0;if(7!==o)if(a=e.readBits(1),1===i||3===i){const t=e.readBits(1),n=e.readBits(1);s=t||n?t&&!n?2:1:3,e.skipBits(1)}else s=1;else s=3,a=1;const l=(e.readBits(16)+1)*(e.readBits(16)+1);let c=Uw(b_).level;for(const t of b_)if(l<=t.maxPictureSize){c=t.level;break}return{profile:i,level:c,bitDepth:r,chromaSubsampling:s,videoFullRangeFlag:a,colourPrimaries:2===o?1:1===o?6:2,transferCharacteristics:2===o?1:1===o?6:2,matrixCoefficients:7===o?0:2===o?1:1===o?6:2}})(t.data)}return{codec:k_(this.internalTrack.info),codedWidth:this.internalTrack.info.width,codedHeight:this.internalTrack.info.height,displayAspectWidth:this.internalTrack.info.squarePixelWidth,displayAspectHeight:this.internalTrack.info.squarePixelHeight,description:null!==(t=this.internalTrack.info.codecDescription)&&void 0!==t?t:void 0,colorSpace:null!==(e=this.internalTrack.info.colorSpace)&&void 0!==e?e:void 0}})():null}}class nT extends tT{constructor(t){super(t),this.decoderConfig=null,this.internalTrack=t}getCodec(){return this.internalTrack.info.codec}getNumberOfChannels(){return this.internalTrack.info.numberOfChannels}getSampleRate(){return this.internalTrack.info.sampleRate}async getDecoderConfig(){var t,e;return this.internalTrack.info.codec?null!==(t=this.decoderConfig)&&void 0!==t?t:this.decoderConfig={codec:x_(this.internalTrack.info),numberOfChannels:this.internalTrack.info.numberOfChannels,sampleRate:this.internalTrack.info.sampleRate,description:null!==(e=this.internalTrack.info.codecDescription)&&void 0!==e?e:void 0}:null}}const iT=(t,e)=>{if(t.presentationTimestamps){const n=n_(t.presentationTimestamps,e,(t=>t.presentationTimestamp));return-1===n?-1:t.presentationTimestamps[n].sampleIndex}{const n=n_(t.sampleTimingEntries,e,(t=>t.startDecodeTimestamp));if(-1===n)return-1;const i=t.sampleTimingEntries[n];return i.startIndex+Math.min(Math.floor((e-i.startDecodeTimestamp)/i.delta),i.count-1)}},rT=(t,e)=>{if(!t.keySampleIndices)return iT(t,e);if(t.presentationTimestamps){const n=n_(t.presentationTimestamps,e,(t=>t.presentationTimestamp));if(-1===n)return-1;for(let e=n;e>=0;e--){const n=t.presentationTimestamps[e].sampleIndex;if(-1!==e_(t.keySampleIndices,n,(t=>t)))return n}return-1}{var n;const i=iT(t,e),r=n_(t.keySampleIndices,i,(t=>t));return null!==(n=t.keySampleIndices[r])&&void 0!==n?n:-1}},oT=(t,e)=>{const n=n_(t.sampleTimingEntries,e,(t=>t.startIndex)),i=t.sampleTimingEntries[n];if(!i||i.startIndex+i.count<=e)return null;let r=i.startDecodeTimestamp+(e-i.startIndex)*i.delta;const o=n_(t.sampleCompositionTimeOffsets,e,(t=>t.startIndex)),s=t.sampleCompositionTimeOffsets[o];s&&e-s.startIndex<s.count&&(r+=s.offset);const a=t.sampleSizes[Math.min(e,t.sampleSizes.length-1)],l=n_(t.sampleToChunk,e,(t=>t.startSampleIndex)),c=t.sampleToChunk[l];Ww(c);const u=c.startChunkIndex+Math.floor((e-c.startSampleIndex)/c.samplesPerChunk),d=t.chunkOffsets[u],h=c.startSampleIndex+(u-c.startChunkIndex)*c.samplesPerChunk;let f=0,p=d;if(1===t.sampleSizes.length)p+=a*(e-h),f+=a*c.samplesPerChunk;else for(let n=h;n<h+c.samplesPerChunk;n++){const i=t.sampleSizes[n];n<e&&(p+=i),f+=i}let m=i.delta;if(t.presentationTimestamps){const n=t.presentationTimestampIndexMap[e];Ww(void 0!==n),n<t.presentationTimestamps.length-1&&(m=t.presentationTimestamps[n+1].presentationTimestamp-r)}return{presentationTimestamp:r,duration:m,sampleOffset:p,sampleSize:a,chunkOffset:d,chunkSize:f,isKeyFrame:!t.keySampleIndices||-1!==e_(t.keySampleIndices,e,(t=>t))}},sT=(t,e)=>{var n;if(!t.keySampleIndices)return e+1;const i=n_(t.keySampleIndices,e,(t=>t));return null!==(n=t.keySampleIndices[i+1])&&void 0!==n?n:-1},aT=(t,e)=>{t.startTimestamp+=e,t.endTimestamp+=e;for(const n of t.samples)n.presentationTimestamp+=e;for(const n of t.presentationTimestamps)n.presentationTimestamp+=e},lT=t=>{const[e,,,n]=t,i=Math.hypot(e,n),r=e/i,o=n/i,s=-Math.atan2(o,r)*(180/Math.PI);return Number.isFinite(s)?s:0},cT=t=>0===t.sampleSizes.length;class uT{}class dT extends uT{async _getMajorBrand(t){let e=t._reader.requestSlice(0,12);return e instanceof Promise&&(e=await e),e?(e.skip(4),"ftyp"!==MT(e,4)?null:MT(e,4)):null}_createDemuxer(t){return new Z_(t)}}const hT=new class extends dT{async _canReadInput(t){const e=await this._getMajorBrand(t);return!!e&&"qt "!==e}get name(){return"MP4"}get mimeType(){return"video/mp4"}};class fT{constructor(){this._disposed=!1,this._sizePromise=null,this.onread=null}async getSizeOrNull(){var t;if(this._disposed)throw new vT;return null!==(t=this._sizePromise)&&void 0!==t?t:this._sizePromise=Promise.resolve(this._retrieveSize())}async getSize(){if(this._disposed)throw new vT;const t=await this.getSizeOrNull();if(null===t)throw new Error("Cannot determine the size of an unsized source.");return t}}class pT extends fT{constructor(t,e={}){var n;if(!(t instanceof ReadableStream))throw new TypeError("stream must be a ReadableStream.");if(!e||"object"!=typeof e)throw new TypeError("options must be an object.");if(void 0!==e.maxCacheSize&&(!d_(e.maxCacheSize)||e.maxCacheSize<0))throw new TypeError("options.maxCacheSize, when provided, must be a non-negative number.");super(),this._reader=null,this._cache=[],this._pendingSlices=[],this._currentIndex=0,this._targetIndex=0,this._maxRequestedIndex=0,this._endIndex=null,this._pulling=!1,this._stream=t,this._maxCacheSize=null!==(n=e.maxCacheSize)&&void 0!==n?n:16777216}_retrieveSize(){return this._endIndex}_read(t,e){if(null!==this._endIndex&&e>this._endIndex)return null;this._maxRequestedIndex=Math.max(this._maxRequestedIndex,e);const n=n_(this._cache,t,(t=>t.start)),i=-1!==n?this._cache[n]:null;if(i&&i.start<=t&&e<=i.end)return{bytes:i.bytes,view:i.view,offset:i.start};let r=t;const o=new Uint8Array(e-t);if(-1!==n)for(let i=n;i<this._cache.length;i++){const n=this._cache[i];if(n.start>=e)break;const s=Math.max(t,n.start);s>r&&this._throwDueToCacheMiss();const a=Math.min(e,n.end);s<a&&(o.set(n.bytes.subarray(s-n.start,a-n.start),s-t),r=a)}if(r===e)return{bytes:o,view:qw(o),offset:t};this._currentIndex>r&&this._throwDueToCacheMiss();const{promise:s,resolve:a,reject:l}=i_();return this._pendingSlices.push({start:t,end:e,bytes:o,resolve:a,reject:l}),this._targetIndex=Math.max(this._targetIndex,e),this._pulling||(this._pulling=!0,this._pull().catch((t=>{if(this._pulling=!1,!(this._pendingSlices.length>0))throw t;this._pendingSlices.forEach((e=>e.reject(t))),this._pendingSlices.length=0}))),s}_throwDueToCacheMiss(){throw new Error("Read is before the cached region. With ReadableStreamSource, you must access the data more sequentially or increase the size of its cache.")}async _pull(){for(null!==(t=this._reader)&&void 0!==t||(this._reader=this._stream.getReader());this._currentIndex<this._targetIndex&&!this._disposed;){var t;const{done:e,value:n}=await this._reader.read();if(e){for(const t of this._pendingSlices)t.resolve(null);this._pendingSlices.length=0,this._endIndex=this._currentIndex;break}const i=this._currentIndex,r=this._currentIndex+n.byteLength;for(let t=0;t<this._pendingSlices.length;t++){const e=this._pendingSlices[t],o=Math.max(i,e.start),s=Math.min(r,e.end);o<s&&(e.bytes.set(n.subarray(o-i,s-i),o-e.start),s===e.end&&(e.resolve({bytes:e.bytes,view:qw(e.bytes),offset:e.start}),this._pendingSlices.splice(t,1),t--))}for(this._cache.push({start:i,end:r,bytes:n,view:qw(n),age:0});this._cache.length>0;){const t=this._cache[0];if(this._maxRequestedIndex-t.end<=this._maxCacheSize)break;this._cache.shift()}this._currentIndex+=n.byteLength}this._pulling=!1}_dispose(){this._pendingSlices.length=0,this._cache.length=0}}null!==(ye=Symbol.dispose)&&void 0!==ye||(Symbol.dispose=Symbol("Symbol.dispose"));class mT{get disposed(){return this._disposed}constructor(t){if(this._demuxerPromise=null,this._format=null,this._disposed=!1,!t||"object"!=typeof t)throw new TypeError("options must be an object.");if(!Array.isArray(t.formats)||t.formats.some((t=>!(t instanceof uT))))throw new TypeError("options.formats must be an array of InputFormat.");if(!(t.source instanceof fT))throw new TypeError("options.source must be a Source.");if(t.source._disposed)throw new Error("options.source must not be disposed.");this._formats=t.formats,this._source=t.source,this._reader=new gT(t.source)}_getDemuxer(){var t;return null!==(t=this._demuxerPromise)&&void 0!==t?t:this._demuxerPromise=(async()=>{this._reader.fileSize=await this._source.getSizeOrNull();for(const t of this._formats)if(await t._canReadInput(this))return this._format=t,t._createDemuxer(this);throw new Error("Input has an unsupported or unrecognizable format.")})()}get source(){return this._source}async getFormat(){return await this._getDemuxer(),Ww(this._format),this._format}async computeDuration(){return(await this._getDemuxer()).computeDuration()}async getFirstTimestamp(){const t=await this.getTracks();if(0===t.length)return 0;const e=await Promise.all(t.map((t=>t.getFirstTimestamp())));return Math.min(...e)}async getTracks(){return(await this._getDemuxer()).getTracks()}async getVideoTracks(){return(await this.getTracks()).filter((t=>t.isVideoTrack()))}async getAudioTracks(){return(await this.getTracks()).filter((t=>t.isAudioTrack()))}async getPrimaryVideoTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isVideoTrack())))&&void 0!==t?t:null}async getPrimaryAudioTrack(){var t;return null!==(t=(await this.getTracks()).find((t=>t.isAudioTrack())))&&void 0!==t?t:null}async getMimeType(){return(await this._getDemuxer()).getMimeType()}async getMetadataTags(){return(await this._getDemuxer()).getMetadataTags()}dispose(){this._disposed||(this._disposed=!0,this._source._disposed=!0,this._source._dispose())}[Symbol.dispose](){this.dispose()}}class vT extends Error{constructor(t="Input has been disposed."){super(t),this.name="InputDisposedError"}}class gT{constructor(t){this.source=t}requestSlice(t,e){if(this.source._disposed)throw new vT;if(t<0)return null;if(null!==this.fileSize&&t+e>this.fileSize)return null;const n=t+e,i=this.source._read(t,n);return i instanceof Promise?i.then((e=>e?new yT(e.bytes,e.view,e.offset,t,n):null)):i?new yT(i.bytes,i.view,i.offset,t,n):null}requestSliceRange(t,e,n){if(this.source._disposed)throw new vT;if(t<0)return null;if(null!==this.fileSize)return this.requestSlice(t,o_(this.fileSize-t,e,n));{const i=this.requestSlice(t,n),r=i=>{if(i)return i;const r=i=>(Ww(null!==i),this.requestSlice(t,o_(i-t,e,n))),o=this.source._retrieveSize();return o instanceof Promise?o.then(r):r(o)};return i instanceof Promise?i.then(r):r(i)}}}class yT{constructor(t,e,n,i,r){this.bytes=t,this.view=e,this.offset=n,this.start=i,this.end=r,this.bufferPos=i-n}static tempFromBytes(t){return new yT(t,qw(t),0,0,t.length)}get length(){return this.end-this.start}get filePos(){return this.offset+this.bufferPos}set filePos(t){this.bufferPos=t-this.offset}get remainingLength(){return Math.max(this.end-this.filePos,0)}skip(t){this.bufferPos+=t}slice(t,e=this.end-t){if(t<this.start||t+e>this.end)throw new RangeError("Slicing outside of original slice.");return new yT(this.bytes,this.view,this.offset,t,t+e)}}const bT=(t,e)=>{if(t.filePos<t.start||t.filePos+e>t.end)throw new RangeError(`Tried reading [${t.filePos}, ${t.filePos+e}), but slice is [${t.start}, ${t.end}). This is likely an internal error, please report it alongside the file that caused it.`)},kT=(t,e)=>{bT(t,e);const n=t.bytes.subarray(t.bufferPos,t.bufferPos+e);return t.bufferPos+=e,n},xT=t=>(bT(t,1),t.view.getUint8(t.bufferPos++)),wT=t=>{bT(t,2);const e=t.view.getUint16(t.bufferPos,!1);return t.bufferPos+=2,e},_T=t=>{bT(t,3);const e=r_(t.view,t.bufferPos);return t.bufferPos+=3,e},TT=t=>{bT(t,2);const e=t.view.getInt16(t.bufferPos,!1);return t.bufferPos+=2,e},IT=t=>{bT(t,4);const e=t.view.getUint32(t.bufferPos,!1);return t.bufferPos+=4,e},ET=t=>{bT(t,4);const e=t.view.getInt32(t.bufferPos,!1);return t.bufferPos+=4,e},ST=t=>4294967296*IT(t)+IT(t),AT=t=>4294967296*ET(t)+IT(t),NT=t=>{bT(t,8);const e=t.view.getFloat64(t.bufferPos,!1);return t.bufferPos+=8,e},MT=(t,e)=>{bT(t,e);let n="";for(let i=0;i<e;i++)n+=String.fromCharCode(t.bytes[t.bufferPos++]);return n};var FT=new WeakMap,OT=new WeakMap,CT=new WeakMap,PT=new WeakMap,DT=new WeakMap,RT=new WeakMap,LT=new WeakMap,BT=new WeakMap,zT=new WeakMap,WT=new WeakMap,UT=new WeakMap,$T=new WeakMap,jT=new WeakMap,qT=new WeakMap,VT=new WeakMap,GT=new WeakSet;class HT extends fd{constructor(...t){super(...t),$(this,GT),W(this,FT,null),W(this,OT,null),W(this,CT,null),W(this,PT,null),W(this,DT,!1),W(this,RT,!1),W(this,LT,!1),W(this,BT,!1),W(this,zT,void 0),W(this,WT,null),W(this,UT,null),W(this,$T,!1),W(this,jT,!1),W(this,qT,null),W(this,VT,!1)}get name(){return"FMP4Demuxer"}get defaults(){return{}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"pushChunk","endOfStream"])}pushChunk(t,e={}){if(z(LT,this)||z(BT,this))return;const n=t instanceof Uint8Array?t:new Uint8Array(t),i=!!e.isInit;U(WT,this,L(GT,this,ZT).call(this,n,e,i)),i&&(U(zT,this,n),U(UT,this,null),this.trigger("demux:init",{data:n})),L(GT,this,JT).call(this);try{var r;const t=null===(r=z(FT,this))||void 0===r?void 0:r.write(n);t&&"function"==typeof t.catch&&t.catch((t=>{L(GT,this,tI).call(this,t)}))}catch(t){if(z(LT,this)||L(GT,this,KT).call(this,t))return;return this.log.warn("[FMP4Demuxer] mediabunny demux failed",t),void L(GT,this,tI).call(this,t)}const o=L(GT,this,iI).call(this);o&&"function"==typeof o.catch&&o.catch((t=>{L(GT,this,tI).call(this,t)}))}endOfStream(){if(z(BT,this))return;if(z($T,this))return;let t;U($T,this,!0),U(jT,this,!1),U(VT,this,!1);try{var e;t=null===(e=z(FT,this))||void 0===e?void 0:e.close()}catch(e){t=Promise.resolve()}let n=!1;L(GT,this,YT).call(this),U(qT,this,setTimeout((()=>{U(qT,this,null),n||z(jT,this)||z(BT,this)||L(GT,this,QT).call(this)}),20)),Promise.resolve(t).catch((()=>{})).finally((()=>{n=!0,L(GT,this,YT).call(this),L(GT,this,QT).call(this)}))}onDispose(){super.onDispose(),U(BT,this,!0);try{var t,e;null===(t=z(CT,this))||void 0===t||null===(e=t.close)||void 0===e||e.call(t)}catch(t){}this.endOfStream();try{var n,i;null===(n=z(OT,this))||void 0===n||null===(i=n.dispose)||void 0===i||i.call(n)}catch(t){}U(CT,this,null),U(OT,this,null),U(LT,this,!1),U(WT,this,null),U(PT,this,null),U(DT,this,!1),U(RT,this,!1),U($T,this,!1),U(jT,this,!1),U(VT,this,!1),L(GT,this,YT).call(this)}}function KT(t){return!!z(BT,this)&&(!t||("InputDisposedError"===(null==t?void 0:t.name)||("string"==typeof(null==t?void 0:t.message)?t.message:"").includes("Input has been disposed")))}function XT(){try{var t,e;const n=null===(t=z(FT,this))||void 0===t||null===(e=t.close)||void 0===e?void 0:e.call(t);n&&"function"==typeof n.catch&&n.catch((()=>{}))}catch(t){}U(FT,this,null)}function YT(){null!==z(qT,this)&&(clearTimeout(z(qT,this)),U(qT,this,null))}function QT(){if(z(jT,this)||z(BT,this)||z(LT,this))return;if(U(jT,this,!0),z(RT,this))return void U(VT,this,!0);U(VT,this,!1);const t=L(GT,this,iI).call(this);t&&"function"==typeof t.catch&&t.catch((t=>{L(GT,this,tI).call(this,t)}))}function JT(){if(z(OT,this)&&z(FT,this))return;const t=vd.TransformStream;if(void 0===t)throw new Error("TransformStream is not available in this environment");const{readable:e,writable:n}=new t;U(FT,this,n.getWriter()),U(OT,this,new mT({source:new pT(e),formats:[hT]})),U(DT,this,!1)}function ZT(t,e,n){const i={isInit:n,byteLength:(null==t?void 0:t.byteLength)||0};return"number"==typeof e.loaded&&(i.loaded=e.loaded),"number"==typeof e.total&&(i.total=e.total),"number"==typeof e.pts&&(i.pts=e.pts),"number"==typeof e.dts&&(i.dts=e.dts),"number"==typeof e.duration&&(i.duration=e.duration),"boolean"==typeof e.isKey&&(i.isKey=e.isKey),i}function tI(t){if(z(LT,this)||L(GT,this,KT).call(this,t))return;if(L(GT,this,nI).call(this,t))return void U(DT,this,!1);U(LT,this,!0),L(GT,this,XT).call(this);try{var e,n;null===(e=z(CT,this))||void 0===e||null===(n=e.close)||void 0===n||n.call(e)}catch(t){}U(CT,this,null);try{var i,r;null===(i=z(OT,this))||void 0===i||null===(r=i.dispose)||void 0===r||r.call(i)}catch(t){}U(OT,this,null);const o={error:t,recoverable:!1,severity:"fatal",streamClosed:z($T,this),streamFinalized:z(jT,this)};z(WT,this)&&(o.context={...z(WT,this)}),this.trigger("demux:error",o)}function eI(t){if(!t)return!1;const e="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!e&&(e.includes("unsupported or unrecognizable format")||e.includes("No supported tracks found"))}function nI(t){return!!L(GT,this,eI).call(this,t)&&(!z(jT,this)||z(VT,this))}async function iI(){if(!(z(BT,this)||z(LT,this)||z(DT,this)||z(RT,this))){U(RT,this,!0);try{L(GT,this,JT).call(this);const t=await z(OT,this).getPrimaryVideoTrack(),e=t?null:await z(OT,this).getPrimaryAudioTrack(),n=t||e;if(!n)throw new Error("No supported tracks found in MP4");const i=await n.getDecoderConfig(),r=await n.getCodecParameterString(),o=await z(OT,this).getMimeType();this.trigger("demux:init",{...z(zT,this)?{data:z(zT,this)}:{},decoderConfig:i,codec:r,mimeType:o}),U(CT,this,new j_(n)),U(DT,this,!0),U(PT,this,(async()=>{try{for await(const t of z(CT,this).packets()){if(z(BT,this))break;const e="number"==typeof t.timestamp?t.timestamp:0;null===z(UT,this)&&U(UT,this,e);let n=e-z(UT,this);n<0&&(n=0),this.trigger("demux:sample",{data:t.data,pts:n,dts:n,duration:t.duration,isKey:"key"===t.type})}this.trigger("demux:complete")}catch(t){L(GT,this,tI).call(this,t)}})())}catch(t){if(L(GT,this,nI).call(this,t))return;throw t}finally{U(RT,this,!1),!z(VT,this)||z(LT,this)||z(BT,this)||L(GT,this,QT).call(this)}}}const rI=1e6,oI=24e3/1001,sI=new Uint8Array;function aI(t){return t?t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):sI:sI}let lI=null;const cI={video:(be=new WeakMap,ke=new WeakMap,xe=new WeakMap,we=new WeakMap,_e=new WeakMap,Te=new WeakMap,Ie=new WeakMap,Ee=new WeakMap,Se=new WeakMap,Ae=new WeakMap,Ne=new WeakMap,Me=new WeakMap,Fe=new WeakMap,Oe=new WeakMap,Ce=new WeakMap,Pe=new WeakMap,De=new WeakMap,Re=new WeakMap,Le=new WeakMap,Be=new WeakMap,ze=new WeakMap,We=new WeakMap,Ue=new WeakMap,$e=new WeakMap,je=new WeakMap,qe=new WeakMap,Ve=new WeakMap,Ge=new WeakMap,He=new WeakMap,Ke=new WeakMap,Xe=new WeakMap,Ye=new WeakMap,Qe=new WeakMap,Je=new WeakMap,Ze=new WeakSet,class extends zw{get name(){return"WebCodecsSegmentDecoder"}get defaults(){return{decodedHorizonSeconds:1,maxDecodedFrames:24,maxDecodeQueueSize:4,convertFramesToBitmapsOnAndroid:!0,androidFixEndOfSegmentDelta:.2}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"decodeChunk"])}constructor(...t){super(...t),$(this,Ze),W(this,be,void 0),W(this,ke,[]),W(this,xe,void 0),W(this,we,void 0),W(this,_e,void 0),W(this,Te,void 0),W(this,Ie,[]),W(this,Ee,void 0),W(this,Se,new Map),W(this,Ae,!0),W(this,Ne,!1),W(this,Me,!1),W(this,Fe,!1),W(this,Oe,void 0),W(this,Ce,!1),W(this,Pe,!1),W(this,De,0),W(this,Re,void 0),W(this,Le,void 0),W(this,Be,{}),W(this,ze,void 0),W(this,We,0),W(this,Ue,null),W(this,$e,!1),W(this,je,null),W(this,qe,void 0),W(this,Ve,0),W(this,Ge,0),W(this,He,0),W(this,Ke,0),W(this,Xe,!1),W(this,Ye,!1),W(this,Qe,.2),W(this,Je,Promise.resolve()),U(xe,this,this.settings.decodedHorizonSeconds||1),U(we,this,L(Ze,this,ZI).call(this,this.settings.maxDecodedFrames)),U(_e,this,L(Ze,this,eE).call(this,this.settings.maxDecodeQueueSize)),U(Xe,this,ov()),U(Ye,this,L(Ze,this,VI).call(this,this.settings.convertFramesToBitmapsOnAndroid)),U(Qe,this,L(Ze,this,GI).call(this,this.settings.androidFixEndOfSegmentDelta)),U(Te,this,(()=>0)),U(Ee,this,(()=>L(Ze,this,RI).call(this)));const e=this.settings.demuxerOptions?{FMP4Demuxer:this.settings.demuxerOptions}:{};U(be,this,new HT(e)),z(be,this).on("demux:init",(t=>L(Ze,this,EI).call(this,t))),z(be,this).on("demux:sample",(t=>L(Ze,this,SI).call(this,t))),z(be,this).on("demux:complete",(()=>L(Ze,this,AI).call(this))),z(be,this).on("demux:error",(t=>L(Ze,this,mI).call(this,t)))}setCurrentTimeProvider(t){"function"==typeof t&&U(Te,this,t)}setTimeOffsetSeconds(t){const e=Number(t);U(We,this,Number.isFinite(e)?e:0)}setSeekTargetTimeSeconds(t){const e=Number(t);U(Ue,this,Number.isFinite(e)?e:null),U($e,this,!1),U(je,this,null)}endOfStream(){z(be,this)&&"function"==typeof z(be,this).endOfStream&&z(be,this).endOfStream()}configure(t){super.configure(t),U(Be,this,{codec:L(Ze,this,iE).call(this,t),width:(null==t?void 0:t.codedWidth)||(null==t?void 0:t.width),height:(null==t?void 0:t.codedHeight)||(null==t?void 0:t.height)}),U(Re,this,z(Be,this).codec)}setSegment(t){this.lastSegment=t,L(Ze,this,wI).call(this)}setNodeId(t){U(qe,this,t)}decode(t){this.setSegment(t);const e=null==t?void 0:t.arrayBuffer;e&&z(be,this).pushChunk(e,{isInit:!(null==t||!t.isInit)})}async decodeChunk(t,e={}){await z(be,this).pushChunk(t,{isInit:!!e.isInit,pts:"number"==typeof e.pts?e.pts:void 0,dts:"number"==typeof e.dts?e.dts:void 0,duration:"number"==typeof e.duration?e.duration:void 0,isKey:!!e.isKey,loaded:"number"==typeof e.loaded?e.loaded:void 0,total:"number"==typeof e.total?e.total:void 0})}get decodedFrames(){return z(ke,this).slice()}onDispose(){if(super.onDispose(),L(Ze,this,zI).call(this),z(be,this)&&"function"==typeof z(be,this).dispose&&z(be,this).dispose(),U(ke,this,[]),U(Ie,this,[]),z(Se,this).clear(),U(je,this,null),z(Oe,this)&&"function"==typeof z(Oe,this).close)try{z(Oe,this).close()}catch(t){}U(Oe,this,null),U(Ce,this,!1),U(Le,this,null),U(Re,this,null),U(qe,this,null),U(Je,this,Promise.resolve()),L(Ze,this,wI).call(this)}}),audio:(tn=new WeakMap,en=new WeakMap,nn=new WeakMap,rn=new WeakMap,on=new WeakMap,sn=new WeakMap,an=new WeakMap,ln=new WeakSet,class extends zw{constructor(...t){super(...t),$(this,ln),W(this,tn,void 0),W(this,en,[]),W(this,nn,0),W(this,rn,!1),W(this,on,!1),W(this,sn,void 0),W(this,an,0)}get name(){return"WebAudioDecoder"}setSegment(t){U(sn,this,t)}setTimeOffsetSeconds(t){const e=Number(t);U(an,this,Number.isFinite(e)?e:0)}decode(t){if(this.lastSegment=t,!t)return;if(t.isInit)return void U(tn,this,aI(t.arrayBuffer));const e=t.arrayBuffer;e&&L(ln,this,hI).call(this,aI(e),!0)}decodeChunk(t,e={}){if(!t)return;if(e.isInit)return void U(tn,this,aI(t));const n=aI(t);if(!n.length)return;z(en,this).push(n),U(nn,this,z(nn,this)+n.length);const i=Number(e.loaded),r=Number(e.total);Number.isFinite(i)&&Number.isFinite(r)&&r>0&&i>=r&&L(ln,this,uI).call(this)}endOfStream(){L(ln,this,uI).call(this)}onDispose(){super.onDispose(),U(tn,this,void 0),U(en,this,[]),U(nn,this,0),U(rn,this,!1),U(on,this,!1),U(sn,this,void 0)}}),image:class extends zw{#z;#W=0;#U=[];#$=0;#j;get name(){return"ImageDecoder"}setSegment(t){this.#z=t}setTimeOffsetSeconds(t){const e=Number(t);this.#W=Number.isFinite(e)?e:0}decode(t){super.decode(t),t&&(this.#z=t);const e=null==t?void 0:t.arrayBuffer;e instanceof ArrayBuffer&&(this.#U=[new Uint8Array(e)],this.#$=e.byteLength,this.endOfStream())}decodeChunk(t,e={}){if(null!=e&&e.isInit)return;const n=function(t){if(t)return t instanceof Uint8Array?t:t instanceof ArrayBuffer?new Uint8Array(t):ArrayBuffer.isView(t)&&t.buffer?new Uint8Array(t.buffer):void 0}(t);n&&n.length&&(this.#U.push(n),this.#$+=n.length)}async endOfStream(){var t,e,n;if(this.#j)return;if(!(this.#U.length&&this.#$>0))return;const i=new Uint8Array(this.#$);let r=0;for(let t=0;t<this.#U.length;t+=1){const e=this.#U[t];i.set(e,r),r+=e.length}const o=null===(t=this.#z)||void 0===t?void 0:t.chosenRepresentation,s=(null==o?void 0:o.mime)||(null===(e=this.track)||void 0===e?void 0:e.mimeType)||(null===(n=this.track)||void 0===n?void 0:n.mime)||function(t){if(t instanceof Uint8Array&&!(t.byteLength<4))return t.byteLength>=8&&137===t[0]&&80===t[1]&&78===t[2]&&71===t[3]&&13===t[4]&&10===t[5]&&26===t[6]&&10===t[7]?"image/png":255===t[0]&&216===t[1]&&255===t[2]?"image/jpeg":t.byteLength>=6&&71===t[0]&&73===t[1]&&70===t[2]&&56===t[3]?"image/gif":t.byteLength>=12&&82===t[0]&&73===t[1]&&70===t[2]&&70===t[3]&&87===t[8]&&69===t[9]&&66===t[10]&&80===t[11]?"image/webp":void 0}(i);try{var a,l;const t=await async function(t,e){const n=function(t,e){if(!(t&&t.byteLength>0))return;if("function"!=typeof vd.Blob)return;const n="string"==typeof e?e:"";return new vd.Blob([t],n?{type:n}:void 0)}(t,e);if(!n)throw new Error("Image decode requires Blob support");let i;if("function"==typeof vd.Image&&vd.URL&&"function"==typeof vd.URL.createObjectURL&&"function"==typeof vd.URL.revokeObjectURL){const t=vd.URL.createObjectURL(n);try{const e=new vd.Image;return await new Promise(((n,i)=>{e.onload=()=>n(),e.onerror=t=>i(t||new Error("Image decode failed")),e.src=t})),e}catch(t){i=t}finally{vd.URL.revokeObjectURL(t)}}if("function"==typeof vd.createImageBitmap)try{return vd.createImageBitmap(n)}catch(t){i=t}if(i)throw i;throw new Error("No supported image decode mechanism")}(i,s);this.#j=t;const e=function(t){if(!t)return;const e=[[t.naturalWidth,t.naturalHeight],[t.width,t.height],[t.displayWidth,t.displayHeight],[t.videoWidth,t.videoHeight],[t.codedWidth,t.codedHeight]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}(t);e&&o&&(jg(o.width)||(o.width=e.width),jg(o.height)||(o.height=e.height)),this.trigger("decoder:frame",{pts:this.#W,duration:jg(null===(a=this.#z)||void 0===a?void 0:a.duration)?this.#z.duration:null===(l=this.track)||void 0===l?void 0:l.duration,frame:t})}catch(t){this.trigger("decoder:error",{error:t})}}onDispose(){if(super.onDispose(),this.#j&&"function"==typeof this.#j.close)try{this.#j.close()}catch(t){}this.#j=null,this.#U=[],this.#$=0,this.#z=null}}};function uI(){if(z(rn,this)||z(on,this))return;if(!z(nn,this))return;const t=L(ln,this,dI).call(this);t.length&&L(ln,this,hI).call(this,t,!1)}function dI(){const t=z(tn,this),e=t?t.length:0,n=e+z(nn,this);if(!n)return sI;const i=new Uint8Array(n);let r=0;e&&(i.set(t,r),r+=e);for(let t=0;t<z(en,this).length;t+=1){const e=z(en,this)[t];e&&e.length&&(i.set(e,r),r+=e.length)}return i}function hI(t,e){if(z(rn,this)||z(on,this))return;const n=e?L(ln,this,fI).call(this,t):t;if(!n||!n.length)return;const i=function(){if(lI)return lI;const t=vd.AudioContext||vd.webkitAudioContext;return t?(lI=new t,lI):null}();if(!i||"function"!=typeof i.decodeAudioData)return void this.trigger("decoder:error",{error:new Error("AudioContext is not available")});const r=n.buffer.slice(0);U(on,this,!0),new Promise(((t,e)=>{const n=i.decodeAudioData(r,t,e);n&&"function"==typeof n.then&&n.then(t).catch(e)})).then((t=>{var e;U(rn,this,!0);const n=Number.isFinite(null==t?void 0:t.duration)?t.duration:Number(null===(e=z(sn,this))||void 0===e?void 0:e.duration)||void 0;this.trigger("decoder:audio",{audioBuffer:t,pts:z(an,this),duration:n})})).catch((t=>{this.trigger("decoder:error",{error:t})})).finally((()=>{U(en,this,[]),U(nn,this,0),U(on,this,!1)}))}function fI(t){const e=z(tn,this);if(!e||!e.length)return t;const n=e.length+t.length,i=new Uint8Array(n);return i.set(e,0),i.set(t,e.length),i}function pI(t,e){var n,i,r,o,s;const a=null!=t&&t.context&&"object"==typeof t.context?t.context:void 0;return{error:e,errorName:null==e?void 0:e.name,errorMessage:"string"==typeof(null==e?void 0:e.message)?e.message:void 0,nodeId:z(qe,this),trackId:null===(n=this.track)||void 0===n?void 0:n.id,trackType:null===(i=this.track)||void 0===i?void 0:i.type,codec:(null===(r=z(Be,this))||void 0===r?void 0:r.codec)||z(Re,this),segmentId:null===(o=this.lastSegment)||void 0===o?void 0:o.id,segmentIsInit:!(null===(s=this.lastSegment)||void 0===s||!s.isInit),chunkContext:a}}function mI(t){const e=(null==t?void 0:t.error)||t,n=L(Ze,this,pI).call(this,t,e);if(L(Ze,this,vI).call(this,t,e))return this.log.warn("[onDemuxError] recoverable demux error",n),void L(Ze,this,AI).call(this);const i=L(Ze,this,II).call(this,t),r=L(Ze,this,gI).call(this,i);if(i&&0===i.missingFrames)return this.log.warn(`[onDemuxError] ignoring demux error (no missing frames)${r}`,{...n,missingFrameStats:i}),void L(Ze,this,AI).call(this);let o=n;i&&(o={...n,missingFrameStats:i}),this.log.warn(`[onDemuxError] demux error${r}`,o),this.trigger("decoder:error",t)}function vI(t,e){if("boolean"==typeof(null==t?void 0:t.recoverable))return t.recoverable;const n="string"==typeof(null==t?void 0:t.severity)?t.severity:"";if(n)return"recoverable"===n||"transient"===n;const i="string"==typeof(null==e?void 0:e.message)?e.message:"";return!!i&&(i.includes("unsupported or unrecognizable format")||i.includes("No supported tracks found"))}function gI(t){return t?` expectedFrames=${L(Ze,this,yI).call(this,t.expectedFrames)} demuxedFrames=${L(Ze,this,yI).call(this,t.demuxedFrames)} missingFrames=${L(Ze,this,yI).call(this,t.missingFrames)}`:""}function yI(t){if(null==t)return"unknown";const e=Number(t);return Number.isFinite(e)?String(e):"unknown"}function bI(t,e={}){return{expectedFrames:null,demuxedFrames:z(Ve,this),missingFrames:null,reason:t,...e}}function kI(t){const e=Number(t);return Number.isFinite(e)?e:null}function xI(t){var e,n;const i=(null==t?void 0:t.context)||{},r=Number(i.loaded),o=Number(i.total);if(!Number.isFinite(o)||o<=0||!Number.isFinite(r)||r<o)return null;if(null!==(e=this.lastSegment)&&void 0!==e&&e.isInit)return null;const s=Number(null===(n=this.lastSegment)||void 0===n?void 0:n.duration);if(!Number.isFinite(s)||s<=0)return L(Ze,this,bI).call(this,"segment_duration_unavailable",{segmentDurationSeconds:L(Ze,this,kI).call(this,s),demuxedCoverageSeconds:z(Ke,this),frameDurationSeconds:null});const a=L(Ze,this,TI).call(this);if(!Number.isFinite(a)||a<=0){const t=Math.max(1,Math.round(s*oI));return{expectedFrames:t,demuxedFrames:z(Ve,this),missingFrames:Math.max(0,t-z(Ve,this)),reason:"fallback_fps",fallbackFps:oI,segmentDurationSeconds:s,demuxedCoverageSeconds:z(Ke,this),frameDurationSeconds:L(Ze,this,kI).call(this,a)}}const l=Math.min(.5*a,.02),c=Math.max(0,s-z(Ke,this)),u=c<=l?0:c,d=Math.max(1,Math.floor((s+l)/a)),h=Math.max(0,d-z(Ve,this)),f=u>0?Math.ceil(u/a):0;return{expectedFrames:d,demuxedFrames:z(Ve,this),missingFrames:Math.max(h,f),segmentDurationSeconds:s,demuxedCoverageSeconds:z(Ke,this),frameDurationSeconds:a}}function wI(){U(Ve,this,0),U(Ge,this,0),U(He,this,0),U(Ke,this,0)}function _I(t){U(Ve,this,z(Ve,this)+1);const e=Number(null==t?void 0:t.pts),n=Number(null==t?void 0:t.duration);if(Number.isFinite(n)&&n>0&&(U(Ge,this,z(Ge,this)+n),U(He,this,z(He,this)+1)),!Number.isFinite(e))return;const i=Number.isFinite(n)&&n>0?e+n:e;Number.isFinite(i)&&i>z(Ke,this)&&U(Ke,this,i)}function TI(){return z(He,this)>0?z(Ge,this)/z(He,this):z(Ve,this)>0&&z(Ke,this)>0?z(Ke,this)/z(Ve,this):null}function II(t){return L(Ze,this,xI).call(this,t)}function EI(t){(null==t?void 0:t.data)instanceof Uint8Array&&(U(Le,this,t.data.buffer),L(Ze,this,UI).call(this)),null!=t&&t.decoderConfig&&(U(ze,this,t.decoderConfig),U(Re,this,t.decoderConfig.codec||z(Re,this)),L(Ze,this,UI).call(this)),this.trigger("decoder:init",t)}function SI(t){L(Ze,this,_I).call(this,t),z(Ie,this).push(t),L(Ze,this,RI).call(this)}function AI(){U(Ne,this,!0),L(Ze,this,$I).call(this)}function NI(t){const e="number"==typeof(null==t?void 0:t.pts)?t.pts:void 0;if(Number.isFinite(e))return z(We,this)+e}function MI(t){return z(Ie,this).some((e=>{const n=L(Ze,this,NI).call(this,e);return Number.isFinite(n)&&n>=t}))}function FI(t){let e=-1,n=null;for(let i=0;i<z(Ie,this).length;i+=1){const r=z(Ie,this)[i],o=L(Ze,this,NI).call(this,r);Number.isFinite(o)&&(null==r?void 0:r.isKey)&&o<=t&&(e=i,n=o)}return{chosenIndex:e,chosenPtsSeconds:n}}function OI(t){let e=-1,n=null;for(let i=0;i<z(Ie,this).length;i+=1){const r=z(Ie,this)[i],o=L(Ze,this,NI).call(this,r);if(Number.isFinite(o)&&null!=r&&r.isKey&&(e=i,n=o,o>=t))break}return{chosenIndex:e,chosenPtsSeconds:n}}function CI(t){const e=t+z(xe,this),n=z(Ue,this);if(!Number.isFinite(n))return e;const i=Number.isFinite(z(je,this))?z(je,this):null;if(Number.isFinite(i))return Math.max(e,i);const{chosenPtsSeconds:r}=L(Ze,this,OI).call(this,n);return Number.isFinite(r)?Math.max(e,r):e}function PI(t){const e=z(Ue,this);Number.isFinite(e)&&Number.isFinite(t)&&t>=e&&(U(Ue,this,null),U(je,this,null))}function DI(){const t=z(Ue,this);if(!Number.isFinite(t)||z($e,this))return!0;if(!L(Ze,this,MI).call(this,t)&&!z(Ne,this))return!1;const e=L(Ze,this,FI).call(this,t);let n=e;if(-1===e.chosenIndex&&(n=L(Ze,this,OI).call(this,t)),n.chosenIndex>0){const t=`[#maybeAlignToSeekKeyframe] Dropping ${n.chosenIndex} samples before keyframe @ ${n.chosenPtsSeconds}`;this.log.debug(t),z(Ie,this).splice(0,n.chosenIndex)}return U(Ae,this,!0),Number.isFinite(n.chosenPtsSeconds)&&U(je,this,n.chosenPtsSeconds),U($e,this,!0),!0}function RI(){const t=z(Te,this)?z(Te,this).call(this):0,e=L(Ze,this,CI).call(this,t);if(L(Ze,this,QI).call(this,t),L(Ze,this,JI).call(this),!L(Ze,this,DI).call(this))return void L(Ze,this,BI).call(this);const n=void 0!==vd.VideoDecoder&&void 0!==vd.EncodedVideoChunk;for(n&&!z(Ce,this)&&z(ze,this)&&L(Ze,this,UI).call(this);z(Ie,this).length&&!L(Ze,this,tE).call(this)&&!(n&&z(Oe,this)&&L(Ze,this,nE).call(this));){const t=z(Ie,this)[0],i="number"==typeof(null==t?void 0:t.pts)?t.pts:0,r=z(We,this)+i;if(r>e)break;if(null!=t&&t.raw)z(Ie,this).shift(),L(Ze,this,LI).call(this,t);else{if(n){if(!z(Ce,this)||!z(Oe,this))break;if(z(Ae,this)&&!t.isKey){z(Ie,this).shift();continue}z(Ie,this).shift();const e=Math.max(0,Math.round(r*rI));z(Se,this).set(e,!!t.isKey);try{const n=new vd.EncodedVideoChunk({type:t.isKey?"key":"delta",timestamp:e,duration:t.duration?Math.round(t.duration*rI):void 0,data:t.data instanceof Uint8Array?t.data:new Uint8Array(t.data)});z(Oe,this).decode(n),t.isKey&&U(Ae,this,!1);continue}catch(t){z(Se,this).delete(e);const n="string"==typeof(null==t?void 0:t.message)?t.message:"";if("DataError"===(null==t?void 0:t.name)&&n.includes("key frame")){U(Ae,this,!0);continue}this.log.warn("[#drainDecodeQueue] decode failed, falling back to placeholder",t)}}z(Ie,this).shift(),L(Ze,this,LI).call(this,t)}}L(Ze,this,$I).call(this),L(Ze,this,BI).call(this)}function LI(t){const e=z(Te,this)?z(Te,this).call(this):0,n=L(Ze,this,CI).call(this,e),i=z(We,this)+("number"==typeof t.pts?t.pts:0);if(i<e||i>n)return;L(Ze,this,QI).call(this,e);const r={pts:i,duration:t.duration,data:t.data,isKey:t.isKey};z(ke,this).push(r),L(Ze,this,JI).call(this),this.trigger("decoder:frame",r),L(Ze,this,PI).call(this,i)}function BI(){if(z(Ie,this).length>0&&void 0!==vd.VideoDecoder){if(tx(z(Ee,this)))return;Jk(z(Ee,this),50)}else L(Ze,this,zI).call(this)}function zI(){z(Ee,this)&&tx(z(Ee,this))&&Zk(z(Ee,this))}function WI(){return null!=vd&&vd.performance&&"function"==typeof vd.performance.now?vd.performance.now():Date.now()}function UI(){if(z(Ce,this))return;if(void 0===vd.VideoDecoder)return;if(!z(ze,this))return;if(z(Pe,this)&&L(Ze,this,WI).call(this)<z(De,this))return;const t={...z(ze,this)};!t.codec&&z(Re,this)&&(t.codec=z(Re,this)),z(Le,this)&&!t.description&&(t.description=z(Le,this)),z(Be,this).width&&!t.codedWidth&&(t.codedWidth=z(Be,this).width),z(Be,this).height&&!t.codedHeight&&(t.codedHeight=z(Be,this).height);try{U(Oe,this,new vd.VideoDecoder({output:t=>L(Ze,this,qI).call(this,t),error:t=>L(Ze,this,jI).call(this,t)})),z(Oe,this).configure(t),U(Ce,this,!0),U(Ae,this,!0),U(Pe,this,!1),U(De,this,0),L(Ze,this,RI).call(this)}catch(t){this.log.warn("[#maybeConfigureDecoder] configure failed, falling back to placeholder decode",t),U(Oe,this,null),U(Ce,this,!1),U(ze,this,null)}}function $I(){void 0!==vd.VideoDecoder&&void 0!==vd.EncodedVideoChunk&&(z(Pe,this)||!z(Ne,this)||z(Fe,this)||z(Me,this)||z(Ce,this)&&z(Oe,this)&&"function"==typeof z(Oe,this).flush&&(z(Ie,this).length||(U(Me,this,!0),Promise.resolve().then((()=>z(Oe,this).flush())).then((()=>{U(Fe,this,!0),U(Ae,this,!0)})).catch((t=>{"AbortError"!==(null==t?void 0:t.name)&&this.log.warn("[#maybeFlushDecoder] flush failed",t)})).finally((()=>{U(Me,this,!1)})))))}function jI(t){if(this.log.warn("[#handleDecoderError] decoder error",t),this.trigger("decoder:error",{error:t}),z(Oe,this)&&"function"==typeof z(Oe,this).close)try{z(Oe,this).close()}catch(t){}U(Oe,this,null),U(Ce,this,!1),U(Me,this,!1),U(Fe,this,!1),U(Ae,this,!0),z(Se,this).clear(),U(Pe,this,!0),U(De,this,L(Ze,this,WI).call(this)+1e3)}function qI(t){U(Je,this,z(Je,this).then((()=>{var e;if(!this._disposed)return L(Ze,this,YI).call(this,t);null===(e=t.close)||void 0===e||e.call(t)})).catch((e=>{this.log.warn("[#enqueueDecodedFrame] failed processing decoded frame",e);try{var n;null===(n=t.close)||void 0===n||n.call(t)}catch(t){}})))}function VI(t){return"boolean"!=typeof t||t}function GI(t){const e=Number(t);return!Number.isFinite(e)||e<0?.2:e}function HI(){return!!z(Ye,this)&&"function"==typeof vd.createImageBitmap&&z(Xe,this)}function KI(t){var e;const n=Number(null===(e=this.lastSegment)||void 0===e?void 0:e.duration);if(!Number.isFinite(n)||n<=0)return!1;if(!Number.isFinite(t))return!1;const i=Number(z(We,this));return!!Number.isFinite(i)&&t>=i+n-z(Qe,this)}async function XI(t,e){try{var n;const i=L(Ze,this,KI).call(this,e),r=await vd.createImageBitmap(t,{premultiplyAlpha:i?"none":"default"});return null!==(n=t.close)&&void 0!==n&&n.call(t),r}catch(e){return this.log.debug("[#maybeConvertFrameToBitmap] createImageBitmap failed",e),t}}async function YI(t){var e,n;let i=t;if(this._disposed)return void(null===(e=(n=i).close)||void 0===e||e.call(n));const r="number"==typeof t.timestamp?t.timestamp:void 0,o="number"==typeof t.timestamp?t.timestamp/rI:z(Te,this)?z(Te,this).call(this):0,s="number"==typeof t.duration?t.duration/rI:void 0;let a;void 0!==r&&(a=z(Se,this).get(r),z(Se,this).delete(r));try{var l,c,u,d;let e=z(Te,this)?z(Te,this).call(this):0,n=L(Ze,this,CI).call(this,e);if(o<e||o>n)return void(null===(l=(c=i).close)||void 0===l||l.call(c));if(L(Ze,this,HI).call(this)){var h,f,p,m;if(i=await L(Ze,this,XI).call(this,t,o),this._disposed)return void(null===(h=(f=i).close)||void 0===h||h.call(f));if(e=z(Te,this)?z(Te,this).call(this):0,n=L(Ze,this,CI).call(this,e),o<e||o>n)return void(null===(p=(m=i).close)||void 0===p||p.call(m))}if(L(Ze,this,QI).call(this,e),this._disposed)return void(null===(u=(d=i).close)||void 0===u||u.call(d));const r={frame:i,pts:o,duration:s,isKey:void 0!==a&&a};z(ke,this).push(r),L(Ze,this,JI).call(this),this.trigger("decoder:frame",r),L(Ze,this,PI).call(this,o),this.log.debug(`[#handleDecodedFrame] [${z(Be,this).codec}] Decoded frame:`,r)}catch(t){this.log.warn(`[#handleDecodedFrame] [${z(Be,this).codec}] Failed to handle decoded frame`,t);try{var v,g;null===(v=(g=i).close)||void 0===v||v.call(g)}catch(t){}}}function QI(t){const e=L(Ze,this,CI).call(this,t),n=[];z(ke,this).forEach((i=>{var r;const o=null!==(r=null==i?void 0:i.pts)&&void 0!==r?r:0;o<t||o>e||n.push(i)})),U(ke,this,n)}function JI(){const t=z(we,this);if(!Number.isFinite(t)||t<=0)return;if(z(ke,this).length<=t)return;const e=z(ke,this).length-t;z(ke,this).splice(0,e)}function ZI(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function tE(){const t=z(we,this);return!(!Number.isFinite(t)||t<=0)&&z(ke,this).length>=t}function eE(t){const e=Number(t);return!Number.isFinite(e)||e<=0?0:Math.floor(e)}function nE(){var t;const e=z(_e,this);if(!Number.isFinite(e)||e<=0)return!1;const n=Number(null===(t=z(Oe,this))||void 0===t?void 0:t.decodeQueueSize);return!!Number.isFinite(n)&&n>=e}function iE(t){if(t&&Array.isArray(t.segments))for(let e=0;e<t.segments.length;e+=1){const n=t.segments[e];if(!Array.isArray(null==n?void 0:n.representations))continue;const i=n.chosenRepresentation||n.representations[0];if(null!=i&&i.codecs)return i.codecs;if(null!=i&&i.mime)return i.mime}}class rE extends fd{get name(){return"DecoderFactory"}create(t,e){if(!t||!t.type)return new zw(e);const n=cI[t.type];return n?(this.log.debug(`[#create] [${t.type}] Creating decoder:`,n),new n(e)):new zw(e)}}class oE{#q;#V;#G;#H;constructor(t={}){this.#q=t.getActiveRenderPlacement,this.#V=t.getPlacementsActiveAtTime,this.#G=t.ensureDecodedForPlacementAtTime;const e=Number(t.lookaheadSeconds);this.#H=Number.isFinite(e)&&e>=0?e:1}handleTimeUpdate(t={}){const e=Number(null==t?void 0:t.time);if(!Number.isFinite(e))return;if("function"!=typeof this.#G)return;const n="function"==typeof this.#V?this.#V:()=>[],i=n(e),r=new Set;i.forEach((t=>{null!=t&&t.placementId&&r.add(t.placementId),this.#G(t,e)}));const o=this.#H;if(!(o>0))return;const s=e+o;n(s).forEach((t=>{const e=null==t?void 0:t.placementId;e&&!r.has(e)&&this.#G(t,s)}))}dispose(){}}class sE{#K;#X;#Y;#Q;#J;#Z;constructor(t={}){this.#K=t.getNode,this.#X=t.getPlacementState,this.#Y=t.getDecodeTracks,this.#Q=t.getSegmentIdForTrackAtTime,this.#J=t.decodeLoadedMediaSegment,this.#Z=t.decodeLoadedMediaSegmentsAfter}ensureDecodedForPlacementAtTime(t,e){if(!t||!Number.isFinite(e))return;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r="function"==typeof this.#K?this.#K(i):void 0;if(!r)return;const o="function"==typeof this.#X?this.#X(n):void 0,s=null==o?void 0:o.trackStates;s&&"function"==typeof s.get&&("function"==typeof this.#Y?this.#Y(r).filter((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)||"audio"===(null==t?void 0:t.type))):[]).forEach((n=>{var i;const r=s.get(n.id);if(!r)return;const o="function"==typeof this.#Q?this.#Q(n,t,e):null;if(!o)return;const a=null==n||null===(i=n.segments)||void 0===i?void 0:i.find((t=>(null==t?void 0:t.id)===o));a&&!a.isInit&&a.retainedByteLength>0&&a.arrayBuffer&&(r.segmentDecoders&&"function"==typeof r.segmentDecoders.has&&r.segmentDecoders.has(o)||"function"!=typeof this.#J||this.#J(t,n,a),"video"===(null==n?void 0:n.type)&&"function"==typeof this.#Z&&this.#Z(t,n,a))}))}dispose(){}}const aE=new Set(["video","audio","image"]);function lE(t){const e=Number(t);return Number.isFinite(e)?e:0}var cE=new WeakMap,uE=new WeakMap,dE=new WeakMap,hE=new WeakMap,fE=new WeakMap,pE=new WeakMap,mE=new WeakMap,vE=new WeakMap,gE=new WeakMap,yE=new WeakMap,bE=new WeakMap,kE=new WeakMap,xE=new WeakMap,wE=new WeakMap,_E=new WeakMap,TE=new WeakMap,IE=new WeakMap,EE=new WeakMap,SE=new WeakMap,AE=new WeakSet;class NE extends fd{constructor(...t){super(...t),$(this,AE),W(this,cE,void 0),W(this,uE,void 0),W(this,dE,void 0),W(this,hE,void 0),W(this,fE,void 0),W(this,pE,void 0),W(this,mE,void 0),W(this,vE,void 0),W(this,gE,void 0),W(this,yE,void 0),W(this,bE,void 0),W(this,kE,new Map),W(this,xE,new Map),W(this,wE,new Map),W(this,_E,new Map),W(this,TE,new Set),W(this,IE,0),W(this,EE,!1),W(this,SE,null);const[e,n,i]=t;U(cE,this,e),U(uE,this,n),U(dE,this,i||new rE),U(hE,this,new sE({getNode:t=>L(AE,this,tS).call(this,t),getPlacementState:t=>z(kE,this).get(t),getDecodeTracks:t=>L(AE,this,XE).call(this,t),getSegmentIdForTrackAtTime:(t,e,n)=>L(AE,this,LE).call(this,t,e,n),decodeLoadedMediaSegment:(t,e,n)=>{L(AE,this,kS).call(this,t,e,n)},decodeLoadedMediaSegmentsAfter:(t,e,n)=>{L(AE,this,hS).call(this,t,e,n)}})),U(fE,this,new oE({getActiveRenderPlacement:t=>{var e,n;return null===(e=z(uE,this))||void 0===e||null===(n=e.getActiveRenderPlacement)||void 0===n?void 0:n.call(e,t)},getPlacementsActiveAtTime:t=>{var e,n;return(null===(e=z(uE,this))||void 0===e||null===(n=e.getPlacementsActiveAtTime)||void 0===n?void 0:n.call(e,t))||[]},ensureDecodedForPlacementAtTime:(t,e)=>{var n,i;null===(n=z(hE,this))||void 0===n||null===(i=n.ensureDecodedForPlacementAtTime)||void 0===i||i.call(n,t,e)}})),L(AE,this,ME).call(this),L(AE,this,GE).call(this)}get name(){return"DecodeCoordinator"}onDispose(){var t,e;z(uE,this)&&"function"==typeof z(uE,this).off&&z(pE,this)&&z(uE,this).off(fv.PLACEMENT_ADDED,z(pE,this)),z(uE,this)&&"function"==typeof z(uE,this).off&&z(mE,this)&&z(uE,this).off(fv.TIMELINE_SEEKING,z(mE,this)),z(uE,this)&&"function"==typeof z(uE,this).off&&z(vE,this)&&z(uE,this).off(fv.TIMELINE_SEEKED,z(vE,this)),z(uE,this)&&"function"==typeof z(uE,this).off&&z(gE,this)&&z(uE,this).off(fv.TIMELINE_TIME_UPDATE,z(gE,this)),z(uE,this)&&"function"==typeof z(uE,this).off&&z(yE,this)&&z(uE,this).off(fv.TIMELINE_RESET,z(yE,this)),L(AE,this,FE).call(this),U(pE,this,null),U(mE,this,null),U(vE,this,null),U(gE,this,null),U(yE,this,null),null!==(t=z(hE,this))&&void 0!==t&&null!==(e=t.dispose)&&void 0!==e&&e.call(t),U(hE,this,null),z(fE,this)&&"function"==typeof z(fE,this).dispose&&z(fE,this).dispose(),U(fE,this,null),z(xE,this).forEach(((t,e)=>{const n=L(AE,this,tS).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(xE,this).clear(),z(wE,this).forEach(((t,e)=>{const n=L(AE,this,tS).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(wE,this).clear(),z(_E,this).clear(),z(TE,this).clear(),L(AE,this,$E).call(this),z(kE,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{L(AE,this,rS).call(this,t)}))})),z(kE,this).clear()}}function ME(){z(uE,this)&&"function"==typeof z(uE,this).on&&(U(pE,this,(t=>{L(AE,this,HE).call(this,t)})),z(uE,this).on(fv.PLACEMENT_ADDED,z(pE,this)),U(mE,this,(t=>L(AE,this,OE).call(this,t))),z(uE,this).on(fv.TIMELINE_SEEKING,z(mE,this)),U(vE,this,(()=>L(AE,this,CE).call(this))),z(uE,this).on(fv.TIMELINE_SEEKED,z(vE,this)),U(gE,this,(t=>L(AE,this,PE).call(this,t))),z(uE,this).on(fv.TIMELINE_TIME_UPDATE,z(gE,this)),U(yE,this,(()=>L(AE,this,DE).call(this))),z(uE,this).on(fv.TIMELINE_RESET,z(yE,this))),(null==vd?void 0:vd.document)&&"function"==typeof vd.document.addEventListener&&(U(bE,this,(()=>{L(AE,this,jE).call(this)})),vd.document.addEventListener("visibilitychange",z(bE,this)))}function FE(){z(bE,this)&&null!=vd&&vd.document&&"function"==typeof vd.document.removeEventListener&&vd.document.removeEventListener("visibilitychange",z(bE,this)),U(bE,this,null)}function OE(t={}){const e=Number(null==t?void 0:t.targetTime);Number.isFinite(e)&&(z(kE,this).forEach((t=>{const n=null==t?void 0:t.trackStates;n&&n.forEach((n=>{var i;const r=null==n||null===(i=n.track)||void 0===i?void 0:i.type;"video"!==r&&"image"!==r&&"audio"!==r||(L(AE,this,RE).call(this,n,null==t?void 0:t.placement,e),n.seekSegmentId=null)}))})),(Array.isArray(null==t?void 0:t.placements)?t.placements:[]).forEach((t=>{const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId;if(!n||!i)return;const r=z(kE,this).get(n);if(!r||!r.trackStates)return;const o=L(AE,this,tS).call(this,i);o&&(r.trackStates.forEach((n=>{const i=null==n?void 0:n.track;!i||"video"!==i.type&&"image"!==i.type&&"audio"!==i.type||L(AE,this,RE).call(this,n,r.placement||t,e)})),L(AE,this,dS).call(this,r.placement||t,o))})))}function CE(){z(kE,this).forEach((t=>{const e=null==t?void 0:t.trackStates;e&&e.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||(t.seekSegmentId=null)}))}))}function PE(t={}){var e,n;L(AE,this,uS).call(this,null==t?void 0:t.time),null!==(e=z(fE,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,t),L(AE,this,jE).call(this),L(AE,this,oS).call(this,null==t?void 0:t.time)}function DE(){z(xE,this).forEach(((t,e)=>{const n=L(AE,this,tS).call(this,e);n&&"function"==typeof n.off&&n.off("node:loaded",t)})),z(xE,this).clear(),z(wE,this).forEach(((t,e)=>{const n=L(AE,this,tS).call(this,e);n&&"function"==typeof n.off&&n.off("segment:chunk",t)})),z(wE,this).clear(),z(_E,this).clear(),z(TE,this).clear(),z(kE,this).forEach((({trackStates:t})=>{t&&t.forEach((t=>{const e=null==t?void 0:t.segmentDecoders;e&&e.forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()}))}))})),z(kE,this).clear()}function RE(t,e,n){t&&(L(AE,this,rS).call(this,t),t.seekSegmentId=L(AE,this,LE).call(this,t.track,e,n))}function LE(t,e,n){if(!t||!e||!Array.isArray(t.segments))return null;const i=vm(e);if(!Number.isFinite(i))return null;const r=lE(null==e?void 0:e.nodeOffsetOverride),o=Math.max(0,n-i+r),s=lE(null==t?void 0:t.offset),a=Math.max(0,o-s),l="function"==typeof t.getMediaSegmentAtTime?t.getMediaSegmentAtTime(a,{preferRepresentationTime:!0}):Zy(t.segments,a,{preferRepresentationTime:!0});return(null==l?void 0:l.id)||null}function BE(t){if(!t)return!1;const e=null==t?void 0:t.name;if("QuotaExceededError"===e)return!0;if("EncodingError"===e)return!0;const n="string"==typeof(null==t?void 0:t.message)?t.message:"";return!!n.includes("Decoder failure")||!!n.includes("Codec reclaimed due to inactivity")||!("OperationError"!==e||!n.includes("initialize after flush"))}function zE(){const t=null==vd?void 0:vd.document;return!t||"string"!=typeof t.visibilityState||"visible"===t.visibilityState}function WE(){var t;const e=z(uE,this);if(!e||"number"!=typeof e.currentTime)return!1;if(e.state===wv)return!1;const n=Date.now();if(n<z(IE,this))return!1;const i=e.currentTime;if(!Number.isFinite(i))return!1;const r="function"==typeof e.getPlacementsActiveAtTime?e.getPlacementsActiveAtTime(i):[],o=Number(null==e||null===(t=e.settings)||void 0===t?void 0:t.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a;if(Array.isArray(r)&&r.length)a=i+s;else if(a=L(AE,this,UE).call(this,i),!Number.isFinite(a))return!1;return U(IE,this,n+1500),this.log.warn("[DecodeCoordinator] attempting decoder recovery seek"),e.currentTime=a,!0}function UE(t){var e;const n=z(uE,this);if(!n)return null;const i=Array.isArray(n.placements)?n.placements:[];if(!i.length)return null;const r=Number(t);if(!Number.isFinite(r))return null;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;let a=Number.NEGATIVE_INFINITY,l=null,c=Number.NEGATIVE_INFINITY,u=null,d=null;return i.forEach((t=>{const e=vm(t);if(!Number.isFinite(e))return;(!Number.isFinite(d)||e<d)&&(d=e);const n=pm(t,z(cE,this)),i=Number.isFinite(n),o=i?e+n:e;(o>e||!i)&&((o>a||!Number.isFinite(a)&&Number.isFinite(o))&&(a=o,l=e),o<=r&&o>c&&(c=o,u=i?Math.max(e,o-s):e))})),Number.isFinite(l)&&Number.isFinite(a)&&r>=a-s?l:Number.isFinite(u)?u:Number.isFinite(d)?d:null}function $E(){U(EE,this,!1),U(SE,this,null)}function jE(){z(EE,this)&&L(AE,this,zE).call(this)&&L(AE,this,WE).call(this)}function qE(t){if(!L(AE,this,BE).call(this,t))return;const e=z(uE,this);e&&"number"==typeof e.currentTime&&(U(EE,this,!0),U(SE,this,t),L(AE,this,zE).call(this)&&L(AE,this,WE).call(this))}function VE(t){var e;return!!t&&(Array.isArray(null===(e=z(uE,this))||void 0===e?void 0:e.placements)?z(uE,this).placements:[]).includes(t)}function GE(t){var e;(Array.isArray(null===(e=z(uE,this))||void 0===e?void 0:e.placements)?[...z(uE,this).placements]:[]).filter((e=>"function"!=typeof t||t(e))).sort(((t,e)=>{const n=vm(t),i=vm(e);return(Number.isFinite(n)?n:Number.POSITIVE_INFINITY)-(Number.isFinite(i)?i:Number.POSITIVE_INFINITY)})).forEach((t=>{L(AE,this,HE).call(this,t)}))}async function HE(t){if(!t||!t.placementId||z(kE,this).has(t.placementId))return;if(!L(AE,this,VE).call(this,t))return;const e=t.nodeId;if(!e||!z(cE,this)||"function"!=typeof z(cE,this).get)return;const n=L(AE,this,tS).call(this,e);if(n){if(n.state&&"ready"!==n.state){if("function"==typeof n.resolve)try{await n.resolve()}catch(n){if(!L(AE,this,VE).call(this,t))return;return void this.log.warn(`[#processPlacement] Failed to resolve node ${e}`,n)}if(!L(AE,this,VE).call(this,t))return;if("ready"!==n.state)return}if(L(AE,this,cS).call(this,t))return L(AE,this,lS).call(this,t,n),void z(TE,this).add(t.placementId);L(AE,this,aS).call(this,t,n)}}function KE(t){return L(AE,this,XE).call(this,t).every((t=>L(AE,this,sS).call(this,t)))}function XE(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>aE.has(null==t?void 0:t.type)))}function YE(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(xE,this).has(t.id))return;const e=()=>{L(AE,this,fS).call(this,t.id)};t.on("node:loaded",e),z(xE,this).set(t.id,e)}function QE(t){if(!t||!t.id||"function"!=typeof t.on)return;if(z(wE,this).has(t.id))return;const e=t=>L(AE,this,pS).call(this,t);t.on("segment:chunk",e),z(wE,this).set(t.id,e)}function JE(t,e){if(!t||!e)return;const n=z(_E,this).get(t)||new Set;n.add(e),z(_E,this).set(t,n)}function ZE(t){return z(_E,this).get(t)||new Set}function tS(t){if(t&&z(cE,this)&&"function"==typeof z(cE,this).get)return z(cE,this).get(t)}function eS(t){if(!t)return;const e=t.fullBufferRetryTimer;null!=e&&("function"==typeof(null==vd?void 0:vd.clearTimeout)?vd.clearTimeout.bind(vd):clearTimeout)(e),t.fullBufferRetryTimer=null,t.fullBufferDecodeScheduled=!1,t.fullBufferRetryAttempts=0}function nS(t){const e=null==t?void 0:t.segmentStates;e&&"function"==typeof e.forEach&&e.forEach((t=>{L(AE,this,eS).call(this,t)}))}function iS(t,e,n,i){var r,o;if(!(t&&e&&n&&i))return!1;const s=z(kE,this).get(t),a=null==s||null===(r=s.trackStates)||void 0===r?void 0:r.get(e);return(null==a||null===(o=a.segmentStates)||void 0===o?void 0:o.get(n))===i}function rS(t){if(!t)return;L(AE,this,nS).call(this,t);const e=t.segmentDecoders;e&&"function"==typeof e.forEach&&(e.forEach((t=>{if(t&&"function"==typeof t.dispose)try{t.dispose()}catch(t){}})),"function"==typeof e.clear&&e.clear()),t.segmentStates&&"function"==typeof t.segmentStates.clear&&t.segmentStates.clear(),t.ready=!1,t.seekSegmentId=null}function oS(t){const e=lE(t);if(!Number.isFinite(e))return;const n=e-2;Number.isFinite(n)&&z(kE,this).forEach((t=>{const e=null==t?void 0:t.placement;if(!e)return;const i=vm(e),r=pm(e,z(cE,this),{allowUnready:!0});if(!Number.isFinite(i)||!Number.isFinite(r))return;const o=i+r;if(!Number.isFinite(o)||o>n)return;const s=null==t?void 0:t.trackStates;s&&"function"==typeof s.forEach&&s.forEach((t=>{var e;const n=null==t||null===(e=t.track)||void 0===e?void 0:e.type;"video"!==n&&"image"!==n&&"audio"!==n||L(AE,this,rS).call(this,t)}))}))}function sS(t){if(!t||!Array.isArray(t.segments))return!1;const e=t.segments.find((t=>null==t?void 0:t.isInit));if(e&&!(e.retainedByteLength>0))return!1;const n=t.segments.find((t=>t&&!t.isInit));return!n||n.retainedByteLength>0}function aS(t,e){if(this.log.debug(`[#startDecode] [${t.placementId}] [${e.id}] Starting decode`),L(AE,this,lS).call(this,t,e)){if(L(AE,this,JE).call(this,e.id,t.placementId),!L(AE,this,KE).call(this,e))return L(AE,this,YE).call(this,e),void L(AE,this,QE).call(this,e);L(AE,this,dS).call(this,t,e),L(AE,this,QE).call(this,e)}}function lS(t,e){if(!t||!t.placementId||!e)return;const n=z(kE,this).get(t.placementId);if(n)return n.placement=t,n;const i=L(AE,this,XE).call(this,e),r=new Map;i.forEach((n=>{try{const t=n.segments.some((t=>null==t?void 0:t.isInit));r.set(n.id,{hasInit:t,track:n,ready:!1,segmentDecoders:new Map,segmentStates:new Map})}catch(i){this.trigger(fv.DECODE_ERROR,vv({placementId:t.placementId,nodeId:e.id,trackId:null==n?void 0:n.id,trackType:null==n?void 0:n.type,error:i}))}}));const o={trackStates:r,nodeId:e.id,placement:t};return z(kE,this).set(t.placementId,o),o}function cS(t){var e;const n=vm(t),i=lE(null===(e=z(uE,this))||void 0===e?void 0:e.currentTime);return!Number.isFinite(n)||!!Number.isFinite(i)&&n-i>2}function uS(t){if(!z(TE,this).size)return;const e=lE(t);if(!Number.isFinite(e))return;const n=[];z(TE,this).forEach((t=>{const i=z(kE,this).get(t),r=null==i?void 0:i.placement;if(!r)return void n.push(t);const o=vm(r);Number.isFinite(o)&&o-e<=2&&n.push(t)})),n.forEach((t=>{z(TE,this).delete(t);const e=z(kE,this).get(t),n=null==e?void 0:e.placement;if(!n)return;const i=L(AE,this,tS).call(this,n.nodeId);i&&L(AE,this,aS).call(this,n,i)}))}function dS(t,e){const n=z(kE,this).get(t.placementId);n&&L(AE,this,XE).call(this,e).forEach((i=>{const r=n.trackStates.get(i.id);if(r&&!r.ready)try{let n;if(r.seekSegmentId&&(n=i.segments.find((t=>t&&!t.isInit&&t.id===r.seekSegmentId&&t.retainedByteLength>0)),!n))return;if(n||(n=i.segments.find((t=>t&&!t.isInit&&t.retainedByteLength>0))),!n)return;L(AE,this,kS).call(this,t,i,n),r.seekSegmentId&&"video"===(null==i?void 0:i.type)&&L(AE,this,hS).call(this,t,i,n),r.ready=!0,this.trigger(fv.DECODE_READY,mv({placementId:t.placementId,nodeId:e.id,trackId:i.id,trackType:i.type}))}catch(n){this.trigger(fv.DECODE_ERROR,vv({placementId:t.placementId,nodeId:e.id,trackId:null==i?void 0:i.id,trackType:null==i?void 0:i.type,error:n}))}}))}function hS(t,e,n){var i;if(!(t&&e&&n&&Array.isArray(e.segments)))return;const r=null==t?void 0:t.placementId,o=r?z(kE,this).get(r):void 0,s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id),a=null==s?void 0:s.segmentDecoders;if(!a||"function"!=typeof a.has)return;const l=e.segments,c=l.findIndex((t=>(null==t?void 0:t.id)===n.id));if(c<0)return;let u=0;for(let n=c+1;n<l.length;n+=1){const i=l[n];if(!i||i.isInit)continue;if(a.has(i.id))continue;if(!(i.retainedByteLength>0))break;const r=i.arrayBuffer;if(!r||"number"!=typeof r.byteLength||r.byteLength<=0)break;if(L(AE,this,kS).call(this,t,e,i),u+=1,u>=2)break}}function fS(t){const e=L(AE,this,tS).call(this,t);e&&L(AE,this,KE).call(this,e)&&L(AE,this,ZE).call(this,t).forEach((t=>{const n=z(kE,this).get(t);L(AE,this,dS).call(this,(null==n?void 0:n.placement)||{placementId:t},e)}))}function pS(t){t&&t.nodeId&&t.trackId&&t.chunk&&L(AE,this,ZE).call(this,t.nodeId).forEach((e=>L(AE,this,mS).call(this,e,t)))}function mS(t,e){const n=z(kE,this).get(t);if(!n)return;const i=n.trackStates.get(e.trackId);if(i)try{var r,o;if(e.isInit)return;const s=i.track,a=null==s||null===(r=s.segments)||void 0===r?void 0:r.find((t=>(null==t?void 0:t.id)===e.segmentId));if(!a||a.isInit)return;if("image"===(null==s?void 0:s.type))return void(!i.ready&&a.retainedByteLength>0&&L(AE,this,kS).call(this,n.placement,s,a)&&(i.ready=!0,this.trigger(fv.DECODE_READY,mv({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType}))));if((null===(o=z(uE,this))||void 0===o?void 0:o.state)===wv&&i.seekSegmentId&&("video"===(null==s?void 0:s.type)||"audio"===(null==s?void 0:s.type))&&a.id!==i.seekSegmentId)return;const l=a.id,c=i.segmentStates.get(l)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};i.segmentStates.set(l,c);const u=L(AE,this,yS).call(this,n.placement,s,a);if(!u||"function"!=typeof u.decodeChunk)return;if(i.hasInit&&!c.initSent){const t=L(AE,this,bS).call(this,s,a);if(!t)return void c.pendingChunks.push({chunk:e.chunk,loaded:e.loaded,total:e.total});u.decodeChunk(t,{isInit:!0}),c.initSent=!0,c.pendingChunks.length&&(c.pendingChunks.forEach((t=>{u.decodeChunk(t.chunk,{isInit:!1,loaded:t.loaded,total:t.total})})),c.pendingChunks=[])}const d="number"==typeof e.loaded&&"number"==typeof e.total&&e.total>0&&e.loaded>=e.total;L(AE,this,vS).call(this,c,e)?d&&!c.ended&&L(AE,this,gS).call(this,n.placement,s,a,c):(u.decodeChunk(e.chunk,{isInit:!1,loaded:e.loaded,total:e.total}),d&&!c.ended&&"function"==typeof u.endOfStream&&(c.ended=!0,u.endOfStream())),i.ready||(i.ready=!0,this.trigger(fv.DECODE_READY,mv({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType})))}catch(n){this.trigger(fv.DECODE_ERROR,vv({placementId:t,nodeId:e.nodeId,trackId:e.trackId,trackType:e.trackType,error:n}))}}function vS(t,e){var n;if(!t||t.missedSegmentPrefix)return!(null==t||!t.missedSegmentPrefix);if(t.firstChunkObserved)return!1;t.firstChunkObserved=!0;const i=Number(null==e?void 0:e.loaded),r=Number(null==e||null===(n=e.chunk)||void 0===n?void 0:n.byteLength);return!(!Number.isFinite(i)||!Number.isFinite(r)||r<=0)&&(t.missedSegmentPrefix=i>r,t.missedSegmentPrefix)}function gS(t,e,n,i){if(!t||!e||!n||!i||i.fullBufferDecodeScheduled)return;const r=null==t?void 0:t.placementId,o=null==e?void 0:e.id,s=null==n?void 0:n.id;if(!r||!o||!s)return;const a="function"==typeof(null==vd?void 0:vd.setTimeout)?vd.setTimeout.bind(vd):setTimeout;i.fullBufferDecodeScheduled=!0,i.fullBufferRetryAttempts=0;const l=()=>{if(!L(AE,this,iS).call(this,r,o,s,i)||i.ended)return void L(AE,this,eS).call(this,i);if(L(AE,this,kS).call(this,t,e,n))return void L(AE,this,eS).call(this,i);i.fullBufferRetryAttempts+=1;const c=i.fullBufferRetryAttempts<=8?0:50;i.fullBufferRetryTimer=a((()=>{l()}),c)};i.fullBufferRetryTimer=a((()=>{l()}),0)}function yS(t,e,n){var i,r;const o=null==t?void 0:t.placementId;if(!o||!e||!n)return;const s=z(kE,this).get(o),a=null==s||null===(i=s.trackStates)||void 0===i?void 0:i.get(e.id);if(!a)return;const l=a.segmentDecoders.get(n.id);if(l)return l;const c=z(dE,this).create(e);if(c&&"function"==typeof c.configure&&c.configure(e),c&&"function"==typeof c.setNodeId&&c.setNodeId(null==t?void 0:t.nodeId),c&&"function"==typeof c.setSegment&&c.setSegment(n),c&&"function"==typeof c.setCurrentTimeProvider&&c.setCurrentTimeProvider((()=>{var t;return"number"==typeof(null===(t=z(uE,this))||void 0===t?void 0:t.currentTime)?z(uE,this).currentTime:0})),c&&"function"==typeof c.setTimeOffsetSeconds){var u,d;const i=vm(t),r=lE(null==e?void 0:e.offset),o=lE(null!==(u=null==n||null===(d=n.chosenRepresentation)||void 0===d?void 0:d.segStart)&&void 0!==u?u:null==n?void 0:n.offset);Number.isFinite(i)&&c.setTimeOffsetSeconds(i+r+o)}return c&&"function"==typeof c.setSeekTargetTimeSeconds&&(null===(r=z(uE,this))||void 0===r?void 0:r.state)===wv&&"video"===(null==e?void 0:e.type)&&c.setSeekTargetTimeSeconds(z(uE,this).currentTime),c&&"function"==typeof c.on&&(c.on(fv.DECODER_FRAME,(i=>{i&&(!z(EE,this)||"video"!==(null==e?void 0:e.type)&&"image"!==(null==e?void 0:e.type)||(U(EE,this,!1),U(SE,this,null)),z(uE,this)&&"function"==typeof z(uE,this).notifyDecodedFrame&&(i.frame||i.data)&&z(uE,this).notifyDecodedFrame({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,frame:i.frame,data:i.data}))})),c.on(fv.DECODER_AUDIO,(i=>{i&&i.audioBuffer&&this.trigger(fv.DECODER_AUDIO,mv({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,pts:i.pts,duration:i.duration,audioBuffer:i.audioBuffer}))})),c.on(fv.DECODER_ERROR,(i=>{const r=(null==i?void 0:i.error)||i;this.trigger(fv.DECODER_ERROR,vv({placementId:o,nodeId:null==t?void 0:t.nodeId,trackId:null==e?void 0:e.id,trackType:null==e?void 0:e.type,segmentId:null==n?void 0:n.id,error:r})),L(AE,this,qE).call(this,r)}))),a.segmentDecoders.set(n.id,c),c}function bS(t,e){var n,i;if(!t||!e||!Array.isArray(t.segments))return;const r=t.segments.find((t=>null==t?void 0:t.isInit));if(!r||"function"!=typeof r.getRepresentationBuffer)return;const o=(null==e||null===(n=e.chosenRepresentation)||void 0===n?void 0:n.id)||(null==e||null===(i=e.representations)||void 0===i||null===(i=i[0])||void 0===i?void 0:i.id);if(!o)return;const s=r.getRepresentationBuffer(o);return s?s instanceof Uint8Array?s:new Uint8Array(s):void 0}function kS(t,e,n){var i;if(!t||!e||!n)return!1;const r=t.placementId,o=z(kE,this).get(r),s=null==o||null===(i=o.trackStates)||void 0===i?void 0:i.get(e.id);if(!s)return!1;const a=L(AE,this,yS).call(this,t,e,n);if(!a||"function"!=typeof a.decodeChunk)return!1;const l=s.segmentStates.get(n.id)||{initSent:!1,pendingChunks:[],ended:!1,firstChunkObserved:!1,missedSegmentPrefix:!1,fullBufferDecodeScheduled:!1,fullBufferRetryTimer:null,fullBufferRetryAttempts:0};if(s.segmentStates.set(n.id,l),l.ended)return L(AE,this,eS).call(this,l),!0;if(s.hasInit&&!l.initSent){const t=L(AE,this,bS).call(this,e,n);if(!t)return!1;a.decodeChunk(t,{isInit:!0}),l.initSent=!0}const c=n.arrayBuffer;return!(!c||"number"!=typeof c.byteLength||c.byteLength<=0||(a.decodeChunk(new Uint8Array(c),{isInit:!1,loaded:c.byteLength,total:c.byteLength}),l.ended||"function"!=typeof a.endOfStream||(l.ended=!0,a.endOfStream()),L(AE,this,eS).call(this,l),0))}const xS=1e-6;var wS=new WeakMap,_S=new WeakMap,TS=new WeakMap,IS=new WeakMap,ES=new WeakMap,SS=new WeakMap,AS=new WeakMap,NS=new WeakMap,MS=new WeakSet;class FS extends fd{get name(){return"TransitionManager"}get defaults(){return{durationSeconds:.5}}constructor(t,e,n){super(n),$(this,MS),W(this,wS,void 0),W(this,_S,void 0),W(this,TS,null),W(this,IS,null),W(this,ES,null),W(this,SS,0),W(this,AS,[]),W(this,NS,null),U(wS,this,t),U(_S,this,e),z(wS,this)&&"function"==typeof z(wS,this).on&&(U(NS,this,(()=>L(MS,this,WS).call(this))),z(wS,this).on(fv.TIMELINE_RESET,z(NS,this)))}transitionTo(t,e={}){const n=Number(t);if(!Number.isFinite(n))throw new Error("TransitionManager.transitionTo requires a numeric time");L(MS,this,WS).call(this);const i=L(MS,this,OS).call(this),r=L(MS,this,RS).call(this,n,e);return r?L(MS,this,LS).call(this,n,e,i,r):Promise.resolve()}onDispose(){z(wS,this)&&"function"==typeof z(wS,this).off&&z(NS,this)&&z(wS,this).off(fv.TIMELINE_RESET,z(NS,this)),U(NS,this,null),L(MS,this,WS).call(this),U(_S,this,null),U(wS,this,null)}}function OS(){return U(SS,this,z(SS,this)+1),z(SS,this)}function CS(t={}){var e;const n=Number(null==t?void 0:t.duration),i=Number(null===(e=this.settings)||void 0===e?void 0:e.durationSeconds);return Number.isFinite(n)?n:i}function PS(t={},e){return{duration:e,filter:null==t?void 0:t.filter,color:null==t?void 0:t.color,filters:null==t?void 0:t.filters,reverseFilters:null==t?void 0:t.reverseFilters,transition:null==t?void 0:t.transition}}function DS(t,e){const n=1e3*t,i=Number.isFinite(Number(null==e?void 0:e.outDurationMs))&&e.outDurationMs>0?e.outDurationMs:n;return{outDurationMs:i,inDurationMs:Number.isFinite(Number(null==e?void 0:e.inDurationMs))&&e.inDurationMs>0?e.inDurationMs:i}}function RS(t,e={}){var n;const i=z(_S,this),r=L(MS,this,CS).call(this,e);if(!i||"function"!=typeof i.startTransition)return z(wS,this).currentTime=t,null;if(!(r>0))return z(wS,this).currentTime=t,null!==(n=i.resetTransition)&&void 0!==n&&n.call(i),null;const o=L(MS,this,PS).call(this,e,r);"function"==typeof(null==e?void 0:e.onTransitionInStart)&&e.onTransitionInStart();const s=i.startTransition(o),{outDurationMs:a,inDurationMs:l}=L(MS,this,DS).call(this,r,s);return{renderer:i,transitionOptions:o,outDurationMs:a,inDurationMs:l,shouldWaitForFrames:!1!==(null==e?void 0:e.waitForVisualFrames)}}function LS(t,e={},n,i){const{renderer:r,transitionOptions:o,outDurationMs:s,inDurationMs:a,shouldWaitForFrames:l}=i,c=L(MS,this,VS).call(this,t,e,n),u=l?L(MS,this,GS).call(this,t,n):Promise.resolve();let d=!1,h=!1,f=!1,p=!l;const m=()=>{var t;L(MS,this,US).call(this,n)&&!f&&d&&h&&p&&(f=!0,"function"==typeof(null==e?void 0:e.onTransitionInEnd)&&e.onTransitionInEnd(),"function"==typeof(null==e?void 0:e.onTransitionOutStart)&&e.onTransitionOutStart(),null!==(t=r.beginTransitionIn)&&void 0!==t&&t.call(r,o),U(IS,this,setTimeout((()=>{var t;L(MS,this,US).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),"function"==typeof(null==e?void 0:e.onTransitionOutEnd)&&e.onTransitionOutEnd(),L(MS,this,BS).call(this))}),a)))};return U(TS,this,setTimeout((()=>{d=!0,m()}),s)),c.then((()=>{h=!0,m()})).catch((()=>{var t;L(MS,this,US).call(this,n)&&(null!==(t=r.resetTransition)&&void 0!==t&&t.call(r),L(MS,this,BS).call(this))})),u.then((()=>{p=!0,m()})).catch((()=>{p=!0,m()})),z(wS,this).currentTime=t,new Promise((t=>{U(ES,this,t)}))}function BS(){const t=z(ES,this);U(ES,this,null),L(MS,this,zS).call(this),L(MS,this,qS).call(this),t&&t()}function zS(){z(TS,this)&&clearTimeout(z(TS,this)),z(IS,this)&&clearTimeout(z(IS,this)),U(TS,this,null),U(IS,this,null)}function WS(){var t,e;z(_S,this)&&null!==(t=(e=z(_S,this)).resetTransition)&&void 0!==t&&t.call(e),L(MS,this,zS).call(this),L(MS,this,qS).call(this),z(ES,this)&&(z(ES,this).call(this),U(ES,this,null))}function US(t){return z(SS,this)===t}function $S(t,e){z(wS,this)&&"function"==typeof z(wS,this).on&&(z(wS,this).on(t,e),z(AS,this).push({eventName:t,handler:e}))}function jS(t,e){z(wS,this)&&"function"==typeof z(wS,this).off&&(z(wS,this).off(t,e),U(AS,this,z(AS,this).filter((n=>n.eventName!==t||n.handler!==e))))}function qS(){z(wS,this)&&"function"==typeof z(wS,this).off?(z(AS,this).forEach((t=>{z(wS,this).off(t.eventName,t.handler)})),U(AS,this,[])):U(AS,this,[])}function VS(t,e,n){const i=null==e?void 0:e.transitionOutPromise;if(i&&"function"==typeof i.then)return i;if("function"==typeof i)try{const t=i();if(t&&"function"==typeof t.then)return t}catch(t){return Promise.resolve()}if(!z(wS,this)||"function"!=typeof z(wS,this).on)return Promise.resolve();const r=L(MS,this,HS).call(this);return new Promise((e=>{let i=!1;const o=r?fv.TIMELINE_SEEKED:"nodestart";let s,a;const l=()=>{L(MS,this,jS).call(this,fv.TIMELINE_SEEKING,s),L(MS,this,jS).call(this,o,a),e()};s=(e={})=>{L(MS,this,US).call(this,n)?L(MS,this,KS).call(this,e,t)&&(i=!0):l()},a=(e={})=>{L(MS,this,US).call(this,n)?(o!==fv.TIMELINE_SEEKED||L(MS,this,KS).call(this,e,t))&&(o===fv.TIMELINE_SEEKED||i)&&l():l()},L(MS,this,$S).call(this,fv.TIMELINE_SEEKING,s),L(MS,this,$S).call(this,o,a)}))}function GS(t,e){if(!z(wS,this)||"function"!=typeof z(wS,this).on)return Promise.resolve();const n=Number(t);return new Promise((t=>{const i=(r={})=>{if(!L(MS,this,US).call(this,e))return L(MS,this,jS).call(this,fv.VISUAL_FRAMES_AVAILABLE,i),void t();const o=Number(null==r?void 0:r.time);Number.isFinite(n)&&Number.isFinite(o)&&o+xS<n||(Array.isArray(null==r?void 0:r.frames)?r.frames:[]).length&&(L(MS,this,jS).call(this,fv.VISUAL_FRAMES_AVAILABLE,i),t())};L(MS,this,$S).call(this,fv.VISUAL_FRAMES_AVAILABLE,i)}))}function HS(){var t,e;const n=null===(t=z(wS,this))||void 0===t?void 0:t.state;if(n===xv||n===gv)return!0;const i=null===(e=z(wS,this))||void 0===e?void 0:e.placements;return!Array.isArray(i)||0===i.length}function KS(t,e){const n=Number(null==t?void 0:t.targetTime);return!Number.isFinite(n)||Math.abs(n-e)<xS}function XS(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}var YS=new WeakMap,QS=new WeakMap,JS=new WeakMap,ZS=new WeakMap,tA=new WeakMap,eA=new WeakMap,nA=new WeakMap,iA=new WeakMap,rA=new WeakMap,oA=new WeakMap,sA=new WeakMap,aA=new WeakMap,lA=new WeakMap,cA=new WeakMap,uA=new WeakSet;class dA extends fd{get name(){return"AudioPlaybackManager"}get defaults(){return{muted:!1,volume:1,lookaheadSeconds:1}}constructor(t,e,n){super(n),$(this,uA),W(this,YS,void 0),W(this,QS,void 0),W(this,JS,null),W(this,ZS,null),W(this,tA,[]),W(this,eA,new Set),W(this,nA,new Map),W(this,iA,!1),W(this,rA,1),W(this,oA,!0),W(this,sA,null),W(this,aA,null),W(this,lA,null),W(this,cA,null),U(YS,this,t),U(QS,this,e),U(iA,this,!!this.settings.muted),U(rA,this,hm(this.settings.volume));const i=Array.isArray(null==n?void 0:n.disabledTracks)?n.disabledTracks:[];U(oA,this,!i.includes("audio")),L(uA,this,hA).call(this)}get muted(){return z(iA,this)}set muted(t){U(iA,this,!!t),L(uA,this,_A).call(this)}get volume(){return z(rA,this)}set volume(t){U(rA,this,hm(t)),L(uA,this,_A).call(this)}handleDecodedAudio(t={}){if(!z(oA,this))return;const e=null==t?void 0:t.audioBuffer,n=null==t?void 0:t.placementId,i=null==t?void 0:t.segmentId,r=XS(null==t?void 0:t.pts,null);if(!(e&&n&&i&&Number.isFinite(r)))return;const o=Number.isFinite(null==t?void 0:t.duration)?t.duration:e.duration,s=`${n}:${i}`;z(eA,this).has(s)||(z(tA,this).push({key:s,placementId:n,pts:r,duration:o,audioBuffer:e}),z(tA,this).sort(((t,e)=>t.pts-e.pts)),L(uA,this,gA).call(this))}onDispose(){L(uA,this,fA).call(this),L(uA,this,xA).call(this,!0),z(JS,this)&&"function"==typeof z(JS,this).close&&z(JS,this).close(),U(JS,this,null),U(ZS,this,null),U(YS,this,null),U(QS,this,null)}}function hA(){z(YS,this)&&"function"==typeof z(YS,this).on&&(U(sA,this,(t=>L(uA,this,pA).call(this,t))),z(YS,this).on(fv.TIMELINE_TIME_UPDATE,z(sA,this)),U(aA,this,(t=>L(uA,this,mA).call(this,t))),z(YS,this).on(fv.TIMELINE_STATE_CHANGE,z(aA,this)),U(cA,this,(()=>L(uA,this,vA).call(this))),z(YS,this).on(fv.TIMELINE_RESET,z(cA,this))),z(QS,this)&&"function"==typeof z(QS,this).on&&(U(lA,this,(t=>this.handleDecodedAudio(t))),z(QS,this).on(fv.DECODER_AUDIO,z(lA,this)))}function fA(){z(YS,this)&&"function"==typeof z(YS,this).off&&(z(sA,this)&&z(YS,this).off(fv.TIMELINE_TIME_UPDATE,z(sA,this)),z(aA,this)&&z(YS,this).off(fv.TIMELINE_STATE_CHANGE,z(aA,this)),z(cA,this)&&z(YS,this).off(fv.TIMELINE_RESET,z(cA,this))),z(QS,this)&&"function"==typeof z(QS,this).off&&z(lA,this)&&z(QS,this).off(fv.DECODER_AUDIO,z(lA,this)),U(sA,this,null),U(aA,this,null),U(lA,this,null),U(cA,this,null)}function pA(){L(uA,this,gA).call(this)}function mA(t={}){const e=null==t?void 0:t.to;if(e)return e===yv?(L(uA,this,TA).call(this),void L(uA,this,gA).call(this)):void(e!==xv&&e!==kv?e!==wv&&e!==_v||L(uA,this,vA).call(this):L(uA,this,IA).call(this))}function vA(){L(uA,this,IA).call(this),L(uA,this,xA).call(this,!0),U(tA,this,[])}function gA(){if(!z(oA,this)||!z(YS,this))return;if(z(YS,this).state!==yv)return;const t=L(uA,this,wA).call(this);if(!t)return;const e=XS(z(YS,this).currentTime,0),n=e+Math.max(0,XS(this.settings.lookaheadSeconds,1)),i=[];for(let r=0;r<z(tA,this).length;r+=1){const o=z(tA,this)[r];o&&(o.pts>n?i.push(o):L(uA,this,yA).call(this,o)&&L(uA,this,kA).call(this,o,t,e))}U(tA,this,i)}function yA(t){if(!t||!z(YS,this))return!1;const e=L(uA,this,bA).call(this,t.pts);return!(!e||e!==t.placementId)}function bA(t){if(!z(YS,this)||"function"!=typeof z(YS,this).getPlacementsActiveAtTime)return null;const e=z(YS,this).getPlacementsActiveAtTime(t);if(!Array.isArray(e)||!e.length)return null;const n=e.find((t=>null==t?void 0:t.placementId));return n?n.placementId:null}function kA(t,e,n){const i=t.key;if(z(eA,this).has(i))return;const r=t.audioBuffer;if(!r)return;const o=Number.isFinite(t.duration)?t.duration:r.duration,s=t.pts;if(!Number.isFinite(s))return;const a=n-s;if(Number.isFinite(o)&&o>0&&a>=o)return;const l=e.createBufferSource();l.buffer=r,l.connect(z(ZS,this));let c=e.currentTime,u=0;a>0?u=a:a<0&&(c=e.currentTime+Math.abs(a));try{l.start(c,u)}catch(t){return void this.log.warn("[AudioPlaybackManager] Failed to start audio buffer",t)}z(eA,this).add(i),z(nA,this).set(i,l),l.onended=()=>{z(nA,this).delete(i)}}function xA(t){z(nA,this).forEach(((t,e)=>{if(t&&"function"==typeof t.stop)try{t.stop()}catch(t){}z(nA,this).delete(e)})),t&&z(eA,this).clear()}function wA(){if(z(JS,this))return z(JS,this);const t=vd.AudioContext||vd.webkitAudioContext;if(!t)return this.log.warn("[AudioPlaybackManager] AudioContext is not available."),null;try{return U(JS,this,new t),U(ZS,this,z(JS,this).createGain()),z(ZS,this).connect(z(JS,this).destination),L(uA,this,_A).call(this),z(JS,this)}catch(t){return this.log.warn("[AudioPlaybackManager] Failed to initialize AudioContext",t),U(JS,this,null),U(ZS,this,null),null}}function _A(){if(!z(ZS,this))return;const t=z(iA,this)?0:z(rA,this);z(ZS,this).gain.value=t}function TA(){z(JS,this)&&"function"==typeof z(JS,this).resume&&"suspended"===z(JS,this).state&&z(JS,this).resume().catch((()=>{}))}function IA(){z(JS,this)&&"function"==typeof z(JS,this).suspend&&"running"===z(JS,this).state&&z(JS,this).suspend().catch((()=>{}))}var EA=new WeakMap,SA=new WeakMap,AA=new WeakMap,NA=new WeakMap,MA=new WeakMap,FA=new WeakSet;class OA extends fd{constructor(...t){super(...t),$(this,FA),W(this,EA,void 0),W(this,SA,void 0),W(this,AA,void 0),W(this,NA,void 0),W(this,MA,void 0),U(EA,this,L(FA,this,PA).call(this,this.settings.currentTime)),U(SA,this,L(FA,this,DA).call(this,this.settings.playbackRate)),U(AA,this,null),U(NA,this,!1),U(MA,this,L(FA,this,CA).bind(this))}get name(){return"PlaybackClock"}get defaults(){return{currentTime:0,playbackRate:Oy("playbackRate")}}get currentTime(){return z(EA,this)}get playbackRate(){return z(SA,this)}set playbackRate(t){U(SA,this,L(FA,this,DA).call(this,t))}play(){z(NA,this)||(U(NA,this,!0),U(AA,this,my()),Jk(z(MA,this),0))}pause(){z(NA,this)&&(U(NA,this,!1),Zk(z(MA,this)))}seek(t){U(EA,this,L(FA,this,PA).call(this,t)),U(AA,this,my())}reset(){this.pause(),U(EA,this,0),U(AA,this,null)}onDispose(){this.pause(),U(MA,this,null)}}function CA(){const t=my();if(null===z(AA,this))return U(AA,this,t),void this.trigger(fv.CLOCK_TICK,{currentTime:z(EA,this)});const e=t-z(AA,this);U(AA,this,t);const n=e/1e3;U(EA,this,z(EA,this)+n*z(SA,this)),this.trigger(fv.CLOCK_TICK,{currentTime:z(EA,this)})}function PA(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<0?0:t}function DA(t){return"number"!=typeof t||Number.isNaN(t)||!Number.isFinite(t)||t<=0?z(SA,this)||1:t}var RA=new WeakMap,LA=new WeakSet;class BA extends fd{constructor(...t){super(...t),$(this,LA),W(this,RA,new Map)}get name(){return"TrackBuffers"}get defaults(){return{}}refreshNode(t){if(!t||!Array.isArray(t.tracks))return;const e=t.id,n=z(RA,this).get(e)||new Map;z(RA,this).set(e,n),t.tracks.forEach((t=>{const i=null==t?void 0:t.type;if(!i)return;const r=t.buffered,o=n.get(i),s=!!o&&o.ready,a=(l=r)&&Number.isFinite(l.start)&&Number.isFinite(l.end)&&l.end>l.start;var l,c,u;u=r,!(c=null==o?void 0:o.range)&&!u||c&&u&&c.start===u.start&&c.end===u.end?o&&o.ready!==a&&n.set(i,{range:r,ready:a}):(n.set(i,{range:r,ready:a}),this.trigger(fv.TRACK_BUFFER_UPDATE,{nodeId:e,trackType:i,range:r})),!s&&a?this.trigger(fv.TRACK_READY,{nodeId:e,trackType:i,range:r}):s&&!a&&this.trigger(fv.TRACK_UNDERFLOW,{nodeId:e,trackType:i,range:r})}))}getTrackRange(t,e){const n=z(RA,this).get(t),i=null==n?void 0:n.get(e);return null==i?void 0:i.range}computeBuffered(t=[],e=0,n){if(!n||"function"!=typeof n.get)return;const i=Number.isFinite(e)?e:0;let r,o,s=!1;for(let e=0;e<t.length;e+=1){const a=L(LA,this,WA).call(this,n,t[e],i);if(!a||a.end<=i)continue;if(void 0===r){r=a.start,o=a.end,s=a.full;continue}const l=a.start<=o,c=s&&a.full;if(!l&&!c)break;o=Math.max(o,a.end),s=a.full}return void 0===r||void 0===o?{start:0,end:0}:{start:r,end:o}}get buffered(){return z(RA,this)}reset(){z(RA,this).clear()}onDispose(){z(RA,this).clear(),"function"==typeof this.off&&this.off()}}function zA(t,e=0){const n=Array.isArray(null==t?void 0:t.segments)?t.segments:[],i=[];for(let t=0;t<n.length;t+=1){const e=n[t];if(!e||e.isInit)continue;const r=Number(e.duration),o=Number(e.offset),s=Number(e.bufferedRatio);if(!Number.isFinite(r)||r<=0||!Number.isFinite(o)||s<=0)continue;const a=o+r*Math.min(1,s);!Number.isFinite(a)||a<=o||i.push({start:o,end:a})}if(!i.length)return;i.sort(((t,e)=>t.start-e.start));const r=[i[0]];for(let t=1;t<i.length;t+=1){const e=i[t],n=r[r.length-1];e.start<=n.end+.001?n.end=Math.max(n.end,e.end):r.push({...e})}const o=Number.isFinite(e)?e:0;for(let t=0;t<r.length;t+=1){const e=r[t];if(e.end>o+.001)return e}}function WA(t,e,n=0){var i,r;const o=vm(e);if(!Number.isFinite(o))return;const s=t.get(e.nodeId);if(!s)return;const a=Array.isArray(s.tracks)?s.tracks:[];if(!a.length){const t=s.buffered;if(!t||!Number.isFinite(t.start)||!Number.isFinite(t.end))return;return L(LA,this,UA).call(this,s,t,o,e)}const l=s.mainTrackId,c=Number.isFinite(e.nodeOffsetOverride)?e.nodeOffsetOverride:0,u=Math.max(0,n-o+c);let d;l&&(d=a.find((t=>(null==t?void 0:t.id)===l))),(null===(i=d)||void 0===i?void 0:i.type)||(d=a.find((t=>null==t?void 0:t.type)));const h=L(LA,this,zA).call(this,d,u)||(null===(r=d)||void 0===r?void 0:r.buffered);return h&&Number.isFinite(h.start)&&Number.isFinite(h.end)?L(LA,this,UA).call(this,s,h,o,e):void 0}function UA(t,e,n,i){const r=Number.isFinite(i.nodeOffsetOverride)?i.nodeOffsetOverride:0;let o=e.start-r+n,s=e.end-r+n;const a=t.duration,l=Number.isFinite(i.nodeDurationOverride)?i.nodeDurationOverride:a;if(Number.isFinite(l)){const t=n+l;s=Math.min(s,t);const e=o<=n&&s>=t;if(o=Math.max(o,n),!(s>o))return;return{start:o,end:s,full:e}}if(o=Math.max(o,n),s>o)return{start:o,end:s,full:!1}}class $A{constructor(t={}){const{placementId:e,nodeId:n,offset:i,offsetPending:r=!1,offsetAnchorPlacementId:o,offsetEndSeconds:s,offsetAnchorEdge:a,offsetAnchorIsReference:l,nodeOffsetOverride:c,nodeDurationOverride:u,loop:d=!1,loopRootPlacementId:h,loopRootOffset:f}=t;if(!e)throw new Error("Placement requires placementId");if(!n)throw new Error("Placement requires nodeId");this.placementId=e,this.nodeId=n;const p=Number.isFinite(i)?i:0;this.offsetPending=!0===r,this.offsetAnchorPlacementId=o,this.offsetAnchorEdge=a,this.offsetAnchorIsReference=l,this.offsetEndSeconds=Number.isFinite(s)?s:void 0,this.offset=this.offsetPending?void 0:p,this.nodeOffsetOverride=c,this.nodeDurationOverride=u,this.loop=!0===d,this.loopRootPlacementId=h,this.loopRootOffset=f}}class jA extends fd{constructor(t,e){super(e),this.timeline=t}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"handleDecodedFrame","handleClockTick","handleMainTrackBufferUpdate"])}enter(){}exit(){}play(){this.timeline.transitionTo(yv)}pause(){this.timeline.transitionTo(xv)}wait(){this.timeline.transitionTo(kv)}reset(){this.timeline.transitionTo(_v)}seek(t){this.timeline.transitionTo(wv,{targetTime:t,returnState:this.timeline.state})}getCurrentTime(){return this.timeline.currentTime}emitPlayerStateEvent(t,e={}){if(!t||!this.timeline||"function"!=typeof this.timeline.trigger)return;const n=Number.isFinite(null==e?void 0:e.time)?e.time:this.getCurrentTime(),i={...e,event:t};Number.isFinite(n)&&(i.time=n),this.timeline.trigger("player:state",i)}get buffered(){return this.timeline.computeBuffered(this.timeline.currentTime)}handleMainTrackUnderflow(t){this.wait()}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||xv;this.timeline.transitionTo(e)}handleMainTrackBufferUpdate(t){}handleDecodedFrame(t){}handleClockTick(t){}onDispose(){this.timeline=null}}const qA=24e3/1001;function VA(t,e=(null==t?void 0:t.currentTime)){return Number.isFinite(e)?e:Number.isFinite(null==t?void 0:t.currentTime)?t.currentTime:0}function GA(t){var e;const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return Number.isFinite(n)&&n>0?.5/n:.001}function HA(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function KA(t){const e=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];if(e.length){if(null!=t&&t.mainTrackId){const n=e.find((e=>(null==e?void 0:e.id)===t.mainTrackId));if("video"===(null==n?void 0:n.type)||"image"===(null==n?void 0:n.type))return n}return e.find((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}}function XA(t,e,n,i,r){var o,s;const a="function"==typeof(null==t?void 0:t.getDecodedVisualBuffer)?t.getDecodedVisualBuffer(e,n):void 0;if(!a)return"function"==typeof(null==t?void 0:t.hasDecodedFirstFrame)&&t.hasDecodedFirstFrame(e,i);const l=Array.isArray(a.frames)?a.frames:[];let c,u=Number.isFinite(null===(o=a.current)||void 0===o?void 0:o.presentationTime)?a.current:void 0;for(let t=0;t<l.length;t+=1){const e=l[t],n=Number(null==e?void 0:e.presentationTime);if(Number.isFinite(n)){if(!(n<=r)){c=n;break}u=e}}const d=Number(null===(s=u)||void 0===s?void 0:s.presentationTime);if(!Number.isFinite(d)||d>r)return!1;const h=function(t,e,n,i){const r=Number(null==n?void 0:n.duration);if(Number.isFinite(r)&&r>0)return e+r;const o=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.snapToFps);return 2/(Number.isFinite(n)&&n>0?n:qA)}(t),s=Number.isFinite(i)&&i>e?i-e:o;return e+Math.min(s,o)}(t,d,u,c);return!!Number.isFinite(h)&&r<=h+GA(t)}function YA(t,e=(null==t?void 0:t.currentTime)){const n=VA(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const n=i[e],r=null==n?void 0:n.placementId;if(!r)return!0;const o="function"==typeof(null==t?void 0:t.getNode)?t.getNode(n.nodeId):void 0;if(!o)return!0;const s=HA(o);if(!s)return!0;if(!t.hasDecodedFirstFrame(r,s))return!0}return!1}function QA(t,e=(null==t?void 0:t.currentTime)){return YA(t,e)||function(t,e=(null==t?void 0:t.currentTime)){const n=VA(t,e),i="function"==typeof(null==t?void 0:t.getPlacementsActiveAtTime)?t.getPlacementsActiveAtTime(n):[];if(!i.length)return!1;for(let e=0;e<i.length;e+=1){const r=i[e],o=null==r?void 0:r.placementId;if(!o)return!0;const s="function"==typeof(null==t?void 0:t.getNode)?t.getNode(r.nodeId):void 0;if(!s)return!0;const a=KA(s);if(null!=a&&a.id&&!XA(t,o,a.id,a.type,n))return!0}return!1}(t,e)}function JA(t,e=(null==t?void 0:t.currentTime)){if("function"!=typeof(null==t?void 0:t.computeBuffered))return!1;const n=VA(t,e),i=t.computeBuffered(n),r=Number(null==i?void 0:i.start),o=Number(null==i?void 0:i.end);if(!Number.isFinite(r)||!Number.isFinite(o)||o<=r)return!1;const s=GA(t);if(!(r<=n+s))return!1;return o-n>=function(t,e){const n=Number(null==t||null===(e=t.settings)||void 0===e?void 0:e.waitingBufferAheadSeconds);return!Number.isFinite(n)||n<0?3:n}(t)-s||function(t,e,n,i){const r=function(t){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=vm(r);if(!Number.isFinite(o))continue;const s="function"==typeof(null==t?void 0:t.getPlacementDuration)?t.getPlacementDuration(r):void 0;if(!Number.isFinite(s))continue;const a=o+s;Number.isFinite(a)&&(!Number.isFinite(n)||a>n)&&(n=a)}return n}(t);return!!Number.isFinite(r)&&(e>=r-i||n>=r-i)}(t,n,o,s)}const ZA={[gv]:class extends jA{get name(){return gv}get defaults(){return{autoplay:Oy("autoplay")}}enter(){this.timeline.recordStableState(xv),this.timeline.stopPlaybackClock()}play(){const t=QA(this.timeline),e=t?kv:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(yv),void this.timeline.transitionTo(kv);this.timeline.transitionTo(e)}pause(){}handleDecodedFrame(t){if(!0!==this.settings.autoplay)return;if(!Array.isArray(this.timeline.placements)||!this.timeline.placements.length)return;if(QA(this.timeline))return;const e=this.timeline.getPlaybackStartState();this.log.info("[handleDecodedFrame] Autoplay enabled, starting playback!"),this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),this.timeline.transitionTo(e)}},[bv]:class extends jA{get name(){return bv}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(yv),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("canplay",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(xv)}},[yv]:class extends jA{get name(){return yv}enter(t={}){const{from:e,to:n,fromFirstFramePending:i}=t;this.timeline.recordStableState(yv),this.timeline.startPlaybackClock(),!0!==i&&this.emitPlayerStateEvent("canplay",{from:e,to:n}),this.emitPlayerStateEvent("playing",{from:e,to:n})}play(){}pause(){this.timeline.transitionTo(xv)}handleClockTick(t){const e=this.timeline.currentTime;QA(this.timeline,e)&&(this.timeline.recordStableState(yv),this.timeline.transitionTo(kv))}},[kv]:(cn=new WeakMap,un=new WeakMap,dn=new WeakSet,class extends jA{constructor(...t){super(...t),$(this,dn),W(this,cn,void 0),W(this,un,null)}get name(){return kv}enter(t={}){const{from:e,to:n}=t;this.timeline.stopPlaybackClock(),L(dn,this,tN).call(this),L(dn,this,nN).call(this),this.emitPlayerStateEvent("waiting",{from:e,to:n}),L(dn,this,oN).call(this)}exit(){L(dn,this,eN).call(this),L(dn,this,iN).call(this)}play(){this.timeline.recordStableState(yv);const t=L(dn,this,rN).call(this),e=t?kv:this.timeline.getPlaybackStartState();this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t||this.timeline.transitionTo(e)}pause(){this.timeline.transitionTo(xv)}handleMainTrackReady(t){const e=this.timeline.getLastStableState()||xv;e!==yv?this.timeline.transitionTo(e):L(dn,this,oN).call(this)}handleDecodedFrame(t){L(dn,this,oN).call(this)}handleMainTrackBufferUpdate(t){L(dn,this,oN).call(this)}}),[xv]:class extends jA{get name(){return xv}enter(t={}){const{from:e,to:n}=t;this.timeline.recordStableState(xv),this.timeline.stopPlaybackClock(),this.emitPlayerStateEvent("pause",{from:e,to:n})}play(){const t=QA(this.timeline),e=t?kv:this.timeline.getPlaybackStartState();if(this.emitPlayerStateEvent("play",{from:this.timeline.state,to:e}),t)return this.timeline.recordStableState(yv),void this.timeline.transitionTo(kv);this.timeline.transitionTo(e)}pause(){}},[wv]:class extends jA{get name(){return wv}enter(t={}){const{targetTime:e,returnState:n}=t;if(this.timeline&&"function"==typeof this.timeline.stopPlaybackClock&&this.timeline.stopPlaybackClock(),this.timeline&&"function"==typeof this.timeline.startSeeking)return void this.timeline.startSeeking(e,n);this.timeline.updateTime(e);const i=n===yv||n===bv,r=i&&"function"==typeof this.timeline.getPlaybackStartState?this.timeline.getPlaybackStartState(e):i?yv:xv;this.timeline.transitionTo(r,{fromSeeking:!0})}play(){var t;if(this.timeline&&"function"==typeof this.timeline.setSeekReturnState)return void this.timeline.setSeekReturnState(yv);const e="function"==typeof(null===(t=this.timeline)||void 0===t?void 0:t.getPlaybackStartState)?this.timeline.getPlaybackStartState():yv;this.timeline.transitionTo(e)}pause(){this.timeline&&"function"==typeof this.timeline.setSeekReturnState?this.timeline.setSeekReturnState(xv):this.timeline.transitionTo(xv)}handleDecodedFrame(t){this.timeline&&"function"==typeof this.timeline.maybeCompleteSeek&&this.timeline.maybeCompleteSeek(t)}},[_v]:class extends jA{get name(){return _v}enter(){this.timeline.resetClock(),this.timeline.transitionTo(gv,{fromReset:!0})}play(){}pause(){}get buffered(){return{start:0,end:0}}}};function tN(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;e&&"function"==typeof e.on&&(U(cn,this,(t=>this.handleMainTrackBufferUpdate(t))),e.on(fv.TRACK_BUFFER_UPDATE,z(cn,this)))}function eN(){var t;const e=null===(t=this.timeline)||void 0===t?void 0:t.trackBuffers;z(cn,this)&&e&&"function"==typeof e.off?(e.off(fv.TRACK_BUFFER_UPDATE,z(cn,this)),U(cn,this,null)):U(cn,this,null)}function nN(){if(null!==z(un,this))return;const t="function"==typeof(null==vd?void 0:vd.setInterval)?vd.setInterval.bind(vd):setInterval;U(un,this,t((()=>{var t;(null===(t=this.timeline)||void 0===t?void 0:t.state)===kv&&L(dn,this,oN).call(this)}),200))}function iN(){null!==z(un,this)&&(("function"==typeof(null==vd?void 0:vd.clearInterval)?vd.clearInterval.bind(vd):clearInterval)(z(un,this)),U(un,this,null))}function rN(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return function(t,e=(null==t?void 0:t.currentTime),n={}){return!!YA(t,e)||!0===n.skipBufferResume||!JA(t,e)}(this.timeline,t)}function oN(t=(t=>null===(t=this.timeline)||void 0===t?void 0:t.currentTime)()){return(this.timeline.getLastStableState()||xv)===yv&&!L(dn,this,rN).call(this,t)&&(this.timeline.transitionTo(this.timeline.getPlaybackStartState(t)),!0)}function sN(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function aN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)))}function lN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).some((t=>"video"===(null==t?void 0:t.type)||"image"===(null==t?void 0:t.type)))}function cN(t){return t===yv||t===bv}var uN=new WeakMap,dN=new WeakMap,hN=new WeakMap,fN=new WeakMap,pN=new WeakMap,mN=new WeakMap,vN=new WeakMap,gN=new WeakMap,yN=new WeakMap,bN=new WeakMap,kN=new WeakMap,xN=new WeakMap,wN=new WeakMap,_N=new WeakMap,TN=new WeakSet;class IN{constructor(t={}){$(this,TN),W(this,uN,void 0),W(this,dN,void 0),W(this,hN,void 0),W(this,fN,void 0),W(this,pN,void 0),W(this,mN,void 0),W(this,vN,void 0),W(this,gN,void 0),W(this,yN,void 0),W(this,bN,null),W(this,kN,xv),W(this,xN,[]),W(this,wN,new Set),W(this,_N,new Map),U(uN,this,t.getState),U(dN,this,t.getNode),U(hN,this,t.getPlacementsActiveAtTime),U(fN,this,t.getLastStableState),U(pN,this,t.getPlaybackStartState),U(mN,this,t.clearVisualFrameBuffers),U(vN,this,t.updateTime),U(gN,this,t.transitionTo),U(yN,this,t.trigger)}start(t,e){const n=Number(t);if(!Number.isFinite(n))return;let i=e;i===wv?i=z(kN,this):i===kv&&"function"==typeof z(fN,this)&&(i=z(fN,this).call(this)),U(kN,this,cN(i)?yv:xv),U(bN,this,n),z(wN,this).clear(),z(_N,this).clear(),U(xN,this,"function"==typeof z(hN,this)?z(hN,this).call(this,n):[]),"function"==typeof z(mN,this)&&z(mN,this).call(this),"function"==typeof z(vN,this)&&z(vN,this).call(this,n,{source:"seek"}),"function"==typeof z(yN,this)&&z(yN,this).call(this,fv.TIMELINE_SEEKING,{targetTime:n,placements:z(xN,this).slice()}),this.maybeComplete()}setReturnState(t){U(kN,this,cN(t)?yv:xv)}maybeComplete(t){if(("function"==typeof z(uN,this)?z(uN,this).call(this):void 0)!==wv)return;const e=z(bN,this);if(!Number.isFinite(e))return;const n=null==t?void 0:t.trackType,i=null==t?void 0:t.placementId;if(i&&"video"===n){const n=Number(null==t?void 0:t.pts);if(Number.isFinite(n)&&n>=e){z(wN,this).add(i);const t=z(_N,this).get(i);(!Number.isFinite(t)||n<t)&&z(_N,this).set(i,n)}}else i&&"image"===n&&function(t,e){const n=Number(null==t?void 0:t.pts),i=Number(null==t?void 0:t.duration);return!Number.isFinite(n)||(Number.isFinite(i)&&i>0?e>=n&&e<n+i:e>=n)}(t,e)&&z(wN,this).add(i);const r=Array.isArray(z(xN,this))?z(xN,this):[];if(r.length){if("function"==typeof z(dN,this)){for(let t=0;t<r.length;t+=1){const e=r[t],n=null==e?void 0:e.placementId;if(!n)return;const i=z(dN,this).call(this,e.nodeId);if(!sN(i))return;if(lN(i)&&!z(wN,this).has(n))return}L(TN,this,EN).call(this,e,r)}}else L(TN,this,EN).call(this,e,[])}dispose(){U(xN,this,[]),z(wN,this).clear(),z(_N,this).clear(),U(bN,this,null)}}function EN(t,e){const n=L(TN,this,SN).call(this,t,e);if("function"==typeof z(vN,this)&&z(vN,this).call(this,n,{source:"seek"}),U(bN,this,null),U(xN,this,[]),z(wN,this).clear(),z(_N,this).clear(),"function"==typeof z(yN,this)&&z(yN,this).call(this,fv.TIMELINE_SEEKED,{targetTime:t,placements:Array.isArray(e)?e.slice():[]}),"function"==typeof z(gN,this)){const t=z(kN,this)===yv&&"function"==typeof z(pN,this)?z(pN,this).call(this,n):z(kN,this);z(gN,this).call(this,t,{fromSeeking:!0})}}function SN(t,e){const n=Number(t);if(!Number.isFinite(n))return t;if(!Array.isArray(e)||!e.length||"function"!=typeof z(dN,this))return n;let i=n;for(let t=0;t<e.length;t+=1){const n=e[t],r=null==n?void 0:n.placementId;if(!r)continue;if(!aN(z(dN,this).call(this,n.nodeId)))continue;const o=z(_N,this).get(r);Number.isFinite(o)&&o>i&&(i=o)}return i}function AN(t){if(t&&"function"==typeof t.close)try{t.close()}catch(t){}}function NN(t){if(!t)return;const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>AN(null==t?void 0:t.frame)))}function MN(t){return vm(t)}function FN(t){return Number.isFinite(null==t?void 0:t.loopRootOffset)?t.loopRootOffset:MN(t)}function ON(t,e){return"string"==typeof(null==t?void 0:t.loopRootPlacementId)&&t.loopRootPlacementId?t.loopRootPlacementId:e}function CN(t){if("string"!=typeof t)return Number.NaN;const e=t.match(/(\d+)/);return e?Number(e[1]):Number.NaN}function PN(t){if(!t)return;const e=[[t.displayWidth,t.displayHeight],[t.codedWidth,t.codedHeight],[t.videoWidth,t.videoHeight],[t.naturalWidth,t.naturalHeight],[t.width,t.height]];for(let t=0;t<e.length;t+=1){const[n,i]=e[t],r=Number(n),o=Number(i);if(Number.isFinite(r)&&Number.isFinite(o)&&r>0&&o>0)return{width:r,height:o}}}const DN=1e-6;function RN(t){return t&&("string"!=typeof t.state||"ready"===t.state)}function LN(t){const e=Number(t);return Number.isFinite(e)?e:0}function BN(t){return(Array.isArray(null==t?void 0:t.tracks)?t.tracks:[]).filter((t=>"cue"===(null==t?void 0:t.type)&&Array.isArray(null==t?void 0:t.cues)))}function zN(t){return t&&"cue"===t.type&&Array.isArray(t.cues)?t.cues:[]}var WN=new WeakMap,UN=new WeakMap,$N=new WeakMap,jN=new WeakMap,qN=new WeakMap,VN=new WeakMap,GN=new WeakMap,HN=new WeakMap,KN=new WeakSet;class XN{constructor(t={}){$(this,KN),W(this,WN,void 0),W(this,UN,void 0),W(this,$N,void 0),W(this,jN,void 0),W(this,qN,void 0),W(this,VN,void 0),W(this,GN,-1e-6),W(this,HN,null),U(WN,this,t.getPlacements),U(UN,this,t.getPlacementsActiveAtTime),U($N,this,t.getPlacementDuration),U(jN,this,t.getNode),U(qN,this,t.triggerTimeline),U(VN,this,t.triggerNode)}handleSeeking(t,e){const n=LN(t);U(HN,this,n)}handleSeeked(t){const e=LN(t),n=z(HN,this);U(HN,this,null),Number.isFinite(n)?(L(KN,this,QN).call(this,n,e),U(GN,this,e)):U(GN,this,e)}handleTimeUpdate(t,e={}){const n=LN(t),i=z(GN,this);!0===(null==e?void 0:e.isSeeking)?U(GN,this,n):Number.isFinite(i)?n<=i?n<i&&U(GN,this,n-DN):(L(KN,this,YN).call(this,i,n),U(GN,this,n)):U(GN,this,n)}dispose(){U(HN,this,null),U(GN,this,-1e-6)}}function YN(t,e){const n="function"==typeof z(WN,this)?z(WN,this).call(this):[];L(KN,this,JN).call(this,n,t,e,{onlySticky:!1})}function QN(t,e){if("function"!=typeof z(UN,this))return;const n=z(UN,this).call(this,e);L(KN,this,JN).call(this,n,t,e,{onlySticky:!0})}function JN(t,e,n,i={}){if("function"!=typeof z(jN,this)||"function"!=typeof z(qN,this))return;if(!Array.isArray(t)||!t.length)return;const r=!0===i.onlySticky,o=[];for(let i=0;i<t.length;i+=1){const s=t[i],a=null==s?void 0:s.placementId,l=null==s?void 0:s.nodeId;if(!a||!l)continue;const c=z(jN,this).call(this,l);if(!RN(c))continue;const u=BN(c);if(!u.length)continue;const d=vm(s);if(!Number.isFinite(d))continue;const h=Number.isFinite(null==s?void 0:s.nodeOffsetOverride)?s.nodeOffsetOverride:0,f="function"==typeof z($N,this)?z($N,this).call(this,s):void 0,p="number"==typeof f&&Number.isFinite(f)?d+f:Number.POSITIVE_INFINITY,m=r?d-DN:e;for(let t=0;t<u.length;t+=1){const e=zN(u[t]);for(let i=0;i<e.length;i+=1){const s=e[i],c=LN(null==s?void 0:s.timestamp),u=d+Math.max(0,c-h);u<=p&&(r&&!0!==(null==s?void 0:s.isSticky)||u>m&&u<=n&&"string"==typeof(null==s?void 0:s.name)&&s.name&&o.push({time:u,placementOffset:d,placementId:a,nodeId:l,cuepoint:s,trackIndex:t,cueIndex:i}))}}}o.length&&(o.sort(((t,e)=>t.time!==e.time?t.time-e.time:t.placementOffset!==e.placementOffset?t.placementOffset-e.placementOffset:t.placementId!==e.placementId?t.placementId<e.placementId?-1:1:t.trackIndex!==e.trackIndex?t.trackIndex-e.trackIndex:t.cueIndex-e.cueIndex)),o.forEach((t=>{const e=t.cuepoint,n={time:t.time,nodeId:t.nodeId,placementId:t.placementId,cuepoint:e};z(qN,this).call(this,"cuepoint",n),z(qN,this).call(this,e.name,n),"function"==typeof z(VN,this)&&(z(VN,this).call(this,t.nodeId,"cuepoint",n),z(VN,this).call(this,t.nodeId,e.name,n))})))}class ZN{#tt;#et=0;#nt=new Set;constructor(t){this.#tt="string"==typeof t?t:""}claim(t){if(t)return this.#nt.add(t),t;let e;do{e=`${this.#tt}${++this.#et}`}while(this.#nt.has(e));return this.#nt.add(e),e}reset(){this.#et=0,this.#nt.clear()}}const tM=24e3/1001;function eM(t){var e;const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return 0;if("function"==typeof n.allocationSize)try{const t=Number(n.allocationSize());if(Number.isFinite(t)&&t>0)return t}catch(t){}const i=Number(null==n?void 0:n.byteLength);if(Number.isFinite(i)&&i>0)return i;const r=Number(null==n||null===(e=n.data)||void 0===e?void 0:e.byteLength);if(Number.isFinite(r)&&r>0)return r;const o=function(t,e){const n=Number(null==t?void 0:t.width),i=Number(null==t?void 0:t.height);return Number.isFinite(n)&&Number.isFinite(i)&&n>0&&i>0?{width:n,height:i}:PN(e)}(t,n),s=Number(null==o?void 0:o.width),a=Number(null==o?void 0:o.height);return Number.isFinite(s)&&Number.isFinite(a)&&s>0&&a>0?s*a*4:0}var nM=new WeakMap,iM=new WeakMap,rM=new WeakMap,oM=new WeakMap,sM=new WeakMap,aM=new WeakMap,lM=new WeakMap,cM=new WeakMap,uM=new WeakMap,dM=new WeakMap,hM=new WeakMap,fM=new WeakMap,pM=new WeakMap,mM=new WeakMap,vM=new WeakMap,gM=new WeakMap,yM=new WeakMap,bM=new WeakMap,kM=new WeakMap,xM=new WeakMap,wM=new WeakMap,_M=new WeakMap,TM=new WeakMap,IM=new WeakMap,EM=new WeakMap,SM=new WeakMap,AM=new WeakMap,NM=new WeakMap,MM=new WeakMap,FM=new WeakMap,OM=new WeakMap,CM=new WeakMap,PM=new WeakMap,DM=new WeakSet;class RM extends fd{constructor(...t){super(...t),$(this,DM),W(this,nM,void 0),W(this,iM,void 0),W(this,rM,void 0),W(this,oM,void 0),W(this,sM,void 0),W(this,aM,!1),W(this,lM,[]),W(this,cM,new ZN("placement-")),W(this,uM,[]),W(this,dM,new ZN("renderplacement-")),W(this,hM,void 0),W(this,fM,void 0),W(this,pM,void 0),W(this,mM,!1),W(this,vM,new Set),W(this,gM,new Set),W(this,yM,new Map),W(this,bM,[]),W(this,kM,0),W(this,xM,new Set),W(this,wM,new Set),W(this,_M,Number.NEGATIVE_INFINITY),W(this,TM,[]),W(this,IM,Number.NEGATIVE_INFINITY),W(this,EM,0),W(this,SM,void 0),W(this,AM,void 0),W(this,NM,new Map),W(this,MM,null),W(this,FM,void 0),W(this,OM,void 0),W(this,CM,void 0),W(this,PM,void 0);const[e,n={}]=t;U(nM,this,e),U(SM,this,n),U(sM,this,new OA(n)),U(hM,this,new BA(n)),U(oM,this,xv),L(DM,this,HM).call(this),L(DM,this,KM).call(this),U(FM,this,new IN({getState:()=>this.state,getNode:t=>z(nM,this)&&"function"==typeof z(nM,this).get?z(nM,this).get(t):void 0,getPlacementsActiveAtTime:t=>L(DM,this,SF).call(this,t,{endEpsilonSeconds:L(DM,this,RF).call(this)}),getLastStableState:()=>this.getLastStableState(),getPlaybackStartState:t=>this.getPlaybackStartState(t),clearVisualFrameBuffers:()=>L(DM,this,IF).call(this),updateTime:(t,e)=>this.updateTime(t,e),transitionTo:(t,e)=>this.transitionTo(t,e),trigger:(t,e)=>this.trigger(t,e)})),U(OM,this,new XN({getPlacements:()=>z(lM,this).slice(),getPlacementsActiveAtTime:t=>L(DM,this,SF).call(this,t),getPlacementDuration:t=>L(DM,this,lF).call(this,t),getNode:t=>z(nM,this)&&"function"==typeof z(nM,this).get?z(nM,this).get(t):void 0,triggerTimeline:(t,e)=>this.trigger(t,e),triggerNode:(t,e,n)=>{const i=z(nM,this)&&"function"==typeof z(nM,this).get?z(nM,this).get(t):void 0;i&&"function"==typeof i.trigger&&i.trigger(e,n)}})),U(CM,this,(()=>{var t,e;null===(t=z(OM,this))||void 0===t||null===(e=t.handleSeeked)||void 0===e||e.call(t,this.currentTime)})),this.on(fv.TIMELINE_SEEKED,z(CM,this)),U(PM,this,(t=>L(DM,this,eF).call(this,t))),this.on("nodestart",z(PM,this)),this.transitionTo(gv)}get name(){return"Timeline"}get defaults(){return{snapToFps:tM,maxBufferedVideoFrames:24}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"computeBuffered","notifyDecodedFrame","getDecodedFrameStats","getActiveRenderPlacement","maybeCompleteSeek","getPlacementsActiveAtTime","hasDecodedFirstFrame","getDecodedVisualBuffer","getPlacementDuration","getNode"])}transitionTo(t,e={}){const n=z(rM,this),i=function(t,e,n={}){const i=ZA[t];return i?new i(e,n):null}(t,this,z(SM,this)),r=e&&"object"==typeof e&&!Array.isArray(e)?{...e,from:n,to:t}:{from:n,to:t};i?(z(iM,this)&&"function"==typeof z(iM,this).exit&&z(iM,this).exit(),U(iM,this,i),U(rM,this,t),"function"==typeof i.enter&&i.enter(r),this.trigger(fv.TIMELINE_STATE_CHANGE,{from:n,to:t,options:e})):this.log.warn(`Unknown state "${t}"`)}recordStableState(t){U(oM,this,t)}getLastStableState(){return z(oM,this)}enableFirstFrameRenderedGate(){U(aM,this,!0)}getPlaybackStartState(t=this.currentTime){return this.shouldWaitForFirstRenderedFrame(t)?bv:yv}shouldWaitForFirstRenderedFrame(t=this.currentTime){if(!z(aM,this)||z(mM,this))return!1;const e=Number.isFinite(t)?t:this.currentTime,n=L(DM,this,SF).call(this,e);return Array.isArray(n)&&n.length>0}notifyFirstFrameRendered(){z(mM,this)||(U(mM,this,!0),this.state===bv&&this.transitionTo(yv,{fromFirstFramePending:!0}))}get state(){return z(rM,this)}get paused(){return z(rM,this)===gv||z(rM,this)===xv}get currentTime(){return z(sM,this).currentTime}set currentTime(t){z(iM,this).seek(t)}get playbackRate(){return z(sM,this).playbackRate}set playbackRate(t){z(sM,this).playbackRate=t}play(){z(iM,this).play()}pause(){z(iM,this).pause()}reset(){z(iM,this).reset()}seekToPlacement(t){if(!t)throw new Error("Timeline.seekToPlacement requires placement id");L(DM,this,rF).call(this);const e=L(DM,this,OF).call(this,t);if(!e)throw new Error("Timeline.seekToPlacement requires placement id");const n=vm(e);if(!Number.isFinite(n))throw new Error("Timeline.seekToPlacement requires resolved placement offset");return this.currentTime=n,n}updateTime(t,e={}){var n,i;L(DM,this,rF).call(this),L(DM,this,oF).call(this),z(sM,this).seek(t),L(DM,this,EF).call(this,this.currentTime),L(DM,this,AF).call(this);const r="string"==typeof(null==e?void 0:e.source)?e.source:"set";null!==(n=z(OM,this))&&void 0!==n&&null!==(i=n.handleTimeUpdate)&&void 0!==i&&i.call(n,this.currentTime,{isSeeking:this.state===wv}),L(DM,this,nF).call(this,this.currentTime),L(DM,this,kF).call(this,this.currentTime),this.trigger(fv.TIMELINE_TIME_UPDATE,pv(this.currentTime,r))}startSeeking(t,e){var n,i;null!==(n=z(OM,this))&&void 0!==n&&null!==(i=n.handleSeeking)&&void 0!==i&&i.call(n,this.currentTime,t),z(FM,this)&&"function"==typeof z(FM,this).start&&z(FM,this).start(t,e)}setSeekReturnState(t){z(FM,this)&&"function"==typeof z(FM,this).setReturnState&&z(FM,this).setReturnState(t)}maybeCompleteSeek(t){z(FM,this)&&"function"==typeof z(FM,this).maybeComplete&&z(FM,this).maybeComplete(t)}startPlaybackClock(){z(sM,this).play()}stopPlaybackClock(){z(sM,this).pause()}resetClock(){var t,e;z(sM,this).reset(),null===(t=z(OM,this))||void 0===t||null===(e=t.dispose)||void 0===e||e.call(t)}applyTimelineDefinition(t={}){const e=Array.isArray(null==t?void 0:t.placements)?t.placements:[],n=Array.isArray(null==t?void 0:t.renderPlacements)?t.renderPlacements:[];L(DM,this,LM).call(this),L(DM,this,BM).call(this,e),L(DM,this,zM).call(this,n),this.currentTime=0}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t.id:t;if(!i)throw new Error("Timeline.placeOnTimeline requires node id");const r=z(cM,this).claim(n.placementId),o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=wm(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("Timeline.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:xm(e,n);let u,d,h,f=!1;const p=null!==a;if(L(DM,this,rF).call(this),a){const t=z(lM,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("Timeline.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=vm(t);if("start"===a.anchor)Number.isFinite(e)?u=L(DM,this,cF).call(this,e,{nodeOffsetOverride:o}):f=!0;else{const n=L(DM,this,lF).call(this,t);if(Number.isFinite(e)&&n>0){const t=e+n,i=L(DM,this,cF).call(this,t,{nodeOffsetOverride:o});u=Math.max(i,t)}else f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(lM,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(lM,this).length?z(lM,this)[z(lM,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=vm(t),n=L(DM,this,lF).call(this,t);Number.isFinite(e)&&n>0?u=L(DM,this,cF).call(this,e+n-c,{nodeOffsetOverride:o}):(f=!0,h="end")}else u=L(DM,this,cF).call(this,-c,{nodeOffsetOverride:o})}else u=km(e),u=L(DM,this,cF).call(this,u,{...n,nodeOffsetOverride:o});const m=!0===n.loop?n.loopRootPlacementId||r:void 0,v=!0===n.loop&&Number.isFinite(n.loopRootOffset)?n.loopRootOffset:!0===n.loop?u:void 0,g=l?c:a&&"end"===a.anchor?0:void 0,y=new $A({placementId:r,nodeId:i,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:g,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop,loopRootPlacementId:m,loopRootOffset:v});if(z(lM,this).push(y),ym(z(lM,this)),L(DM,this,yF).call(this,y),L(DM,this,vF).call(this),f&&d){const t=z(lM,this).find((t=>(null==t?void 0:t.placementId)===d));L(DM,this,dF).call(this,null==t?void 0:t.nodeId)}return this.trigger(fv.PLACEMENT_ADDED,y),r}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("Timeline.placeRenderNodeOnTimeline requires render node type");const o=L(DM,this,uF).call(this,e,i),s=o.offset,a=!0===o.offsetPending,l=o.offsetAnchorPlacementId,c=o.offsetAnchorEdge,u=o.offsetAnchorIsReference,d=z(dM,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("Timeline.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m=i.params&&"object"==typeof i.params?i.params:void 0,v={renderPlacementId:d,type:r,offset:s,offsetPending:a,offsetAnchorPlacementId:l,offsetAnchorEdge:c,offsetAnchorIsReference:u,duration:p,params:m};if(!a){const t=s,e=s+p;_m(z(uM,this),t,e,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements")}if(z(uM,this).push(v),ym(z(uM,this)),a&&l){const t=z(lM,this).find((t=>(null==t?void 0:t.placementId)===l));L(DM,this,dF).call(this,null==t?void 0:t.nodeId)}return this.trigger(fv.RENDER_PLACEMENT_ADDED,v),d}get placements(){return z(lM,this).slice()}getPlacementsActiveAtTime(t){return L(DM,this,SF).call(this,t)}getNodesAtTime(t){const e=L(DM,this,CF).call(this,t);if(!Number.isFinite(e))return[];const n=L(DM,this,SF).call(this,e),i=[];return n.forEach((t=>{const e=this.getNode(null==t?void 0:t.nodeId);e&&i.push(e)})),i}getPlacementDuration(t){return L(DM,this,lF).call(this,t)}getNode(t){if(z(nM,this)&&"function"==typeof z(nM,this).get)return z(nM,this).get(t)}get renderPlacements(){return z(uM,this).slice()}get placementsAhead(){const t=this.currentTime;return z(lM,this).filter((e=>{const n=vm(e);if(!Number.isFinite(n))return!1;const i=L(DM,this,lF).call(this,e);return"number"==typeof i?n+i>t:n>=t}))}get buffered(){return z(iM,this)?z(iM,this).buffered:{start:0,end:0}}get trackBuffers(){return z(hM,this)}onDispose(){L(DM,this,VM).call(this),z(gM,this)&&z(gM,this).clear(),z(OM,this)&&"function"==typeof z(OM,this).dispose&&z(OM,this).dispose(),U(OM,this,null),L(DM,this,qM).call(this),L(DM,this,GM).call(this),z(FM,this)&&"function"==typeof z(FM,this).dispose&&z(FM,this).dispose(),U(FM,this,null),z(sM,this)&&"function"==typeof z(sM,this).dispose&&(z(AM,this)&&"function"==typeof z(sM,this).off&&(z(sM,this).off("tick",z(AM,this)),U(AM,this,null)),z(sM,this).dispose(),U(sM,this,null)),L(DM,this,pF).call(this),U(iM,this,null),U(rM,this,null),U(lM,this,[]),U(uM,this,[]),L(DM,this,mF).call(this),L(DM,this,vF).call(this),z(NM,this).clear(),U(MM,this,null)}notifyDecodedFrame(t={}){const e=null==t?void 0:t.placementId,n=null==t?void 0:t.trackType;if(!e||!n)return;const i=`${e}:${n}`;z(vM,this).add(i),L(DM,this,TF).call(this,t),L(DM,this,AF).call(this),z(iM,this)&&"function"==typeof z(iM,this).handleDecodedFrame&&z(iM,this).handleDecodedFrame(t)}getDecodedFrameStats(){return function(t){const e={totalBytes:0,frames:0,available:!1};if(!t||"function"!=typeof t.values)return e;for(const n of t.values()){const t=[];null!=n&&n.current&&t.push(n.current),Array.isArray(null==n?void 0:n.frames)&&t.push(...n.frames),t.forEach((t=>{const n=null==t?void 0:t.frame;if(!n||!0===n.__closed||!0===n.closed)return;e.frames+=1;const i=eM(t);Number.isFinite(i)&&i>0&&(e.totalBytes+=i)}))}return e.available=!0,e}(z(NM,this))}hasDecodedFirstFrame(t,e){return!(!t||!e)&&z(vM,this).has(`${t}:${e}`)}getDecodedVisualBuffer(t,e){if(t&&e)return z(NM,this).get(`${t}:${e}`)}computeBuffered(t){const e=z(nM,this);if(e&&"function"==typeof e.get)return z(hM,this).computeBuffered(z(lM,this),t,e)}getActiveRenderPlacement(t=this.currentTime){const e=Number.isFinite(t)?t:this.currentTime,n=Array.isArray(z(uM,this))?z(uM,this):[];if(!n.length)return;let i;for(let t=0;t<n.length;t+=1){const r=n[t];if(!0===(null==r?void 0:r.offsetPending))continue;const o="number"==typeof r.offset?r.offset:void 0;if(!Number.isFinite(o))continue;const s=r.duration;("number"==typeof s&&Number.isFinite(s)&&s>0?e>=o&&e<o+s:e>=o)&&(i=r)}return i}}function LM(){U(mM,this,!1),this.trigger(fv.TIMELINE_RESET,{reason:"switch"}),L(DM,this,IF).call(this),z(hM,this)&&"function"==typeof z(hM,this).reset&&z(hM,this).reset(),z(gM,this)&&z(gM,this).clear(),U(lM,this,[]),U(uM,this,[]),L(DM,this,mF).call(this),L(DM,this,vF).call(this),z(cM,this).reset(),z(dM,this).reset()}function BM(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.nodeId)continue;const i=L(DM,this,WM).call(this,n),r=L(DM,this,$M).call(this,n);this.placeOnTimeline(n.nodeId,r,i)}}function zM(t=[]){for(let e=0;e<t.length;e+=1){const n=t[e];if(!n||!n.type)continue;const i=L(DM,this,UM).call(this,n),r=L(DM,this,jM).call(this,n);this.placeRenderNodeOnTimeline(n.type,r,n.duration,i)}}function WM(t){const e={};return t.placementId&&(e.placementId=t.placementId),Number.isFinite(t.nodeOffsetOverride)&&(e.nodeOffsetOverride=t.nodeOffsetOverride),Number.isFinite(t.nodeDurationOverride)&&(e.nodeDurationOverride=t.nodeDurationOverride),!0===t.offsetPending&&(e.offsetPending=!0,t.offsetAnchorPlacementId&&(e.offsetAnchorPlacementId=t.offsetAnchorPlacementId),t.offsetAnchorEdge&&(e.offsetAnchorEdge=t.offsetAnchorEdge)),Number.isFinite(t.offsetEndSeconds)&&(e.offsetEndSeconds=t.offsetEndSeconds),!0===t.loop&&(e.loop=!0),t.loopRootPlacementId&&(e.loopRootPlacementId=t.loopRootPlacementId),Number.isFinite(t.loopRootOffset)&&(e.loopRootOffset=t.loopRootOffset),e}function UM(t){const e={};return t.renderPlacementId&&(e.renderPlacementId=t.renderPlacementId),t.params&&"object"==typeof t.params&&(e.params=t.params),e}function $M(t){if(!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge){if(!0===t.offsetAnchorIsReference)return`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`;if("end"===t.offsetAnchorEdge)return Number.isFinite(t.offsetEndSeconds)&&t.offsetEndSeconds>0?-t.offsetEndSeconds:"end"}return"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function jM(t){return!0===t.offsetPending&&t.offsetAnchorPlacementId&&t.offsetAnchorEdge&&!0===t.offsetAnchorIsReference?`${t.offsetAnchorPlacementId}@${t.offsetAnchorEdge}`:"string"==typeof t.offset||Number.isFinite(t.offset)?t.offset:0}function qM(){z(iM,this)&&"function"==typeof z(iM,this).exit&&z(iM,this).exit()}function VM(){z(CM,this)&&"function"==typeof this.off&&(this.off(fv.TIMELINE_SEEKED,z(CM,this)),U(CM,this,null)),z(PM,this)&&"function"==typeof this.off&&(this.off("nodestart",z(PM,this)),U(PM,this,null))}function GM(){z(hM,this)&&(z(fM,this)&&(z(hM,this).off("track:underflow",z(fM,this)),U(fM,this,null)),z(pM,this)&&(z(hM,this).off("track:ready",z(pM,this)),U(pM,this,null)),"function"==typeof z(hM,this).dispose&&z(hM,this).dispose(),U(hM,this,null))}function HM(){z(hM,this)&&"function"==typeof z(hM,this).on&&(U(fM,this,(t=>L(DM,this,YM).call(this,t))),U(pM,this,(t=>L(DM,this,QM).call(this,t))),z(hM,this).on(fv.TRACK_UNDERFLOW,z(fM,this)),z(hM,this).on(fv.TRACK_READY,z(pM,this)))}function KM(){z(sM,this)&&"function"==typeof z(sM,this).on&&(U(AM,this,(t=>L(DM,this,XM).call(this,t))),z(sM,this).on(fv.CLOCK_TICK,z(AM,this)))}function XM(t){var e,n;L(DM,this,rF).call(this),L(DM,this,AF).call(this),null!==(e=z(OM,this))&&void 0!==e&&null!==(n=e.handleTimeUpdate)&&void 0!==n&&n.call(e,this.currentTime,{isSeeking:!1}),L(DM,this,nF).call(this,this.currentTime),this.trigger(fv.TIMELINE_TIME_UPDATE,pv(this.currentTime,"clock")),z(iM,this)&&"function"==typeof z(iM,this).handleClockTick&&z(iM,this).handleClockTick(t)}function YM(t){L(DM,this,rF).call(this);const e=L(DM,this,JM).call(this);e&&(null==t?void 0:t.trackType)===e.trackType&&(z(iM,this)&&"function"==typeof z(iM,this).handleMainTrackUnderflow?z(iM,this).handleMainTrackUnderflow(t):this.transitionTo(kv))}function QM(t){if(L(DM,this,rF).call(this),this.state!==kv)return;const e=L(DM,this,JM).call(this);if(!e)return;if((null==t?void 0:t.trackType)!==e.trackType)return;if(z(iM,this)&&"function"==typeof z(iM,this).handleMainTrackReady)return void z(iM,this).handleMainTrackReady(t);const n=this.getLastStableState()||xv;this.transitionTo(n)}function JM(t=this.currentTime){const e=L(DM,this,tF).call(this,t);if(!e)return;const n=z(nM,this)&&"function"==typeof z(nM,this).get?z(nM,this).get(e.nodeId):void 0;if(!n)return;const i=L(DM,this,ZM).call(this,n);return i?{placement:e,trackType:i}:void 0}function ZM(t){var e;const n=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];let i;if(null!=t&&t.mainTrackId){const e=n.find((e=>(null==e?void 0:e.id)===t.mainTrackId));i=null==e?void 0:e.type}if(i||(i=null===(e=n.find((t=>null==t?void 0:t.type)))||void 0===e?void 0:e.type),"video"===i||"audio"===i||"image"===i)return i}function tF(t=this.currentTime){const e=z(lM,this)||[];let n;for(let i=0;i<e.length;i+=1){const r=e[i],o=vm(r);if(!Number.isFinite(o))continue;const s=L(DM,this,lF).call(this,r);if(Number.isFinite(s)){if(t>=o&&t<o+s)return r}else if(t<=o)return r;!n&&t<o&&(n=r)}return n}function eF(t={}){if(this.state!==yv)return;const e=null==t?void 0:t.placementId;if(!e)return;const n=L(DM,this,OF).call(this,e);n&&L(DM,this,iF).call(this,n)}function nF(t=this.currentTime){if(this.state!==yv)return;const e=L(DM,this,SF).call(this,t);Array.isArray(e)&&e.length&&e.forEach((t=>L(DM,this,iF).call(this,t)))}function iF(t){const e=null==t?void 0:t.placementId;if(!e)return;if(z(gM,this).has(e))return;if(!t||!0!==t.loop)return;if(!t.nodeId)return;const n=L(DM,this,lF).call(this,t);if(!Number.isFinite(n)||n<=0)return;const i=vm(t);if(!Number.isFinite(i))return;const r=i+n;if(!Number.isFinite(r))return;const o=t.loopRootPlacementId||t.placementId,s=Number.isFinite(t.loopRootOffset)?t.loopRootOffset:i;z(gM,this).add(e),this.placeOnTimeline(t.nodeId,r,{nodeOffsetOverride:t.nodeOffsetOverride,nodeDurationOverride:t.nodeDurationOverride,loop:!0,loopRootPlacementId:o,loopRootOffset:s})}function rF(){const t=bm(z(lM,this),{getPlacementDuration:t=>L(DM,this,lF).call(this,t),snapPlacementOffset:(t,e)=>L(DM,this,cF).call(this,t,{nodeOffsetOverride:null==e?void 0:e.nodeOffsetOverride}),onResolvedPlacement:(t,e)=>{!0!==t.loop||Number.isFinite(t.loopRootOffset)||(t.loopRootOffset=t.offset),L(DM,this,hF).call(this,null==e?void 0:e.nodeId)}});return t.updated&&(L(DM,this,vF).call(this),t.resolvedPlacements.forEach((t=>{L(DM,this,yF).call(this,t),this.trigger(fv.PLACEMENT_ADDED,t)}))),t.updated}function oF(){if(!z(uM,this).length||!z(lM,this).length)return!1;const t=new Map;z(lM,this).forEach((e=>{(null==e?void 0:e.placementId)&&t.set(e.placementId,e)}));const e=z(uM,this).filter((t=>!0===(null==t?void 0:t.offsetPending)));if(!e.length)return!1;let n=!1;const i=[];for(let r=0;r<e.length;r+=1){const o=e[r];L(DM,this,sF).call(this,o,t)&&(n=!0,i.push(o))}return n&&(ym(z(uM,this)),i.forEach((t=>{this.trigger(fv.RENDER_PLACEMENT_ADDED,t)}))),n}function sF(t,e){const n=null==t?void 0:t.offsetAnchorPlacementId,i=null==t?void 0:t.offsetAnchorEdge;if(!n||!i)return!1;const r=e.get(n);if(!r||!0===r.offsetPending)return!1;const o=L(DM,this,aF).call(this,r,t);if(!Number.isFinite(o))return!1;t.offset=o,t.offsetPending=!1,t.offsetAnchorPlacementId=void 0,t.offsetAnchorEdge=void 0,t.offsetAnchorIsReference=void 0;const s=t.offset,a=t.offset+t.duration;return _m(z(uM,this).filter((e=>e!==t&&!0!==(null==e?void 0:e.offsetPending))),s,a,"Timeline.placeRenderNodeOnTimeline does not allow overlapping render node placements"),L(DM,this,hF).call(this,null==r?void 0:r.nodeId),!0}function aF(t,e){const n=vm(t);if(!Number.isFinite(n))return;if("start"===e.offsetAnchorEdge)return L(DM,this,cF).call(this,n);const i=L(DM,this,lF).call(this,t);if(!(i>0))return;const r=n+i;if(!Number.isFinite(r))return;const o=L(DM,this,cF).call(this,r);return!0===e.offsetAnchorIsReference?Math.max(o,r):o}function lF(t){return pm(t,z(nM,this))}function cF(t,e={}){var n;return function(t,e={},n){const i=Number(n);if(!(i>0))return t;const r=Number(t);if(!Number.isFinite(r))return t;const o=Number.isFinite(null==e?void 0:e.nodeOffsetOverride)?e.nodeOffsetOverride:0,s=r-o;return Math.round(s*i)/i+o}(t,e,null===(n=this.settings)||void 0===n?void 0:n.snapToFps)}function uF(t,e={}){const n=wm(t);if("string"==typeof t&&t.includes("@")&&!n)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");if(!n){const n=km(t);return{offset:L(DM,this,cF).call(this,n,e)}}const i=z(lM,this).find((t=>(null==t?void 0:t.placementId)===n.placementId));if(!i)throw new Error("Timeline.placeRenderNodeOnTimeline requires valid placement reference");const r=vm(i);if("start"===n.anchor)return Number.isFinite(r)?{offset:L(DM,this,cF).call(this,r,e)}:{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"start",offsetAnchorIsReference:!0};const o=L(DM,this,lF).call(this,i);if(!(Number.isFinite(r)&&o>0))return{offset:void 0,offsetPending:!0,offsetAnchorPlacementId:i.placementId,offsetAnchorEdge:"end",offsetAnchorIsReference:!0};const s=r+o,a=L(DM,this,cF).call(this,s,e);return{offset:Math.max(a,s)}}function dF(t){if(!t||!z(nM,this)||"function"!=typeof z(nM,this).get)return;if(z(yM,this).has(t))return;let e;try{e=z(nM,this).get(t)}catch(t){return}if(!e||"function"!=typeof e.on)return;if("ready"===e.state&&e.duration>0)return void this.updateTime(this.currentTime);const n=()=>{this.updateTime(this.currentTime),L(DM,this,hF).call(this,t)};e.on(fv.NODE_LOADED,n),z(yM,this).set(t,n)}function hF(t){if(!t)return;if(L(DM,this,fF).call(this,t))return;const e=z(yM,this).get(t);if(!e)return;let n;try{n=z(nM,this).get(t)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(fv.NODE_LOADED,e),z(yM,this).delete(t)}function fF(t){if(!t)return!1;const e=new Map;z(lM,this).forEach((t=>{(null==t?void 0:t.placementId)&&e.set(t.placementId,t)}));const n=n=>{if(null==n||!n.offsetPending||null==n||!n.offsetAnchorPlacementId)return!1;const i=e.get(n.offsetAnchorPlacementId);return(null==i?void 0:i.nodeId)===t};return!!z(lM,this).some((t=>n(t)))||!!z(uM,this).some((t=>n(t)))}function pF(){z(yM,this).size&&z(nM,this)?(z(yM,this).forEach(((t,e)=>{let n;try{n=z(nM,this).get(e)}catch(t){n=null}n&&"function"==typeof n.off&&n.off(fv.NODE_LOADED,t)})),z(yM,this).clear()):z(yM,this).clear()}function mF(){U(bM,this,[]),U(kM,this,0),z(xM,this).clear(),z(wM,this).clear(),U(_M,this,Number.NEGATIVE_INFINITY)}function vF(){U(TM,this,[]),U(EM,this,0),U(IM,this,Number.NEGATIVE_INFINITY)}function gF(t,e){const n=z(bM,this),i={placementId:t,endTime:e};if(!n.length||e>=n[n.length-1].endTime)return void n.push(i);const r=n.findIndex((t=>e<t.endTime)),o=-1===r?n.length:r;n.splice(o,0,i),o<z(kM,this)&&U(kM,this,z(kM,this)+1)}function yF(t){const e=null==t?void 0:t.placementId;if(!e||z(xM,this).has(e))return;const n=vm(t),i=L(DM,this,lF).call(this,t);if(!Number.isFinite(n)||!Number.isFinite(i)||i<0)return void z(wM,this).add(e);const r=n+i;Number.isFinite(r)&&(z(xM,this).add(e),z(wM,this).delete(e),L(DM,this,gF).call(this,e,r))}function bF(){z(wM,this).size&&Array.from(z(wM,this)).forEach((t=>{const e=L(DM,this,OF).call(this,t);e?L(DM,this,yF).call(this,e):z(wM,this).delete(t)}))}function kF(t){const e=Number(t);if(!Number.isFinite(e))return;if(e<z(_M,this))return void U(_M,this,e);if(U(_M,this,e),L(DM,this,bF).call(this),!z(bM,this).length)return;const n=new Set;let i=z(kM,this);for(;i<z(bM,this).length;){const t=z(bM,this)[i];if(!t||!Number.isFinite(t.endTime)||t.endTime>e)break;t.placementId&&n.add(t.placementId),i+=1}i!==z(kM,this)&&(U(kM,this,i),n.size&&(L(DM,this,_F).call(this,n),L(DM,this,xF).call(this,n)))}function xF(t){if(t&&t.size)for(const e of z(vM,this)){const n=e.split(":")[0];t.has(n)&&z(vM,this).delete(e)}}function wF(t){const e=Array.isArray(null==t?void 0:t.frames)?t.frames:[],n=null==t?void 0:t.current;(n?[n,...e]:e).forEach((t=>{const e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}))}function _F(t){if(t&&t.size)for(const[e,n]of z(NM,this).entries())t.has(null==n?void 0:n.placementId)&&(L(DM,this,wF).call(this,n),z(NM,this).delete(e))}function TF(t={}){var e;const n=null==t?void 0:t.placementId,i=null==t?void 0:t.nodeId,r=null==t?void 0:t.trackId,o=null==t?void 0:t.segmentId,s=null==t?void 0:t.trackType;if(!(n&&i&&r&&o))return;if("video"!==s&&"image"!==s)return;const a=(null==t?void 0:t.frame)||(null==t?void 0:t.data);if(!a)return;"video"===s&&"object"==typeof a&&"function"==typeof a.close&&(a.__keepOpen=!0);const l=PN(a),c=Number.isFinite(null==l?void 0:l.width)?l.width:void 0,u=Number.isFinite(null==l?void 0:l.height)?l.height:void 0,d=Number.isFinite(null==t?void 0:t.pts)?t.pts:void 0;if(!Number.isFinite(d))return;const h=Number.isFinite(null==t?void 0:t.duration)?t.duration:void 0,f=`${n}:${r}`,p=z(NM,this).get(f),m=p||{placementId:n,nodeId:i,trackId:r,trackType:s,frames:[],current:void 0},v={placementId:n,nodeId:i,trackId:r,segmentId:o,frame:a,width:c,height:u,presentationTime:d,duration:h},g=m.frames,y=g.length?g[g.length-1]:void 0;if(!y||y.presentationTime<=v.presentationTime)g.push(v);else{let t=g.findIndex((t=>t.presentationTime>v.presentationTime));-1===t&&(t=g.length),g.splice(t,0,v)}const b=Number(null===(e=this.settings)||void 0===e?void 0:e.maxBufferedVideoFrames);if("video"===s&&Number.isFinite(b)&&b>0&&g.length>b){const t=g.length-b;for(let e=0;e<t;e+=1){const t=g.pop(),e=null==t?void 0:t.frame;if(e&&"function"==typeof e.close)try{e.close()}catch(t){}}}p||z(NM,this).set(f,m)}function IF(){for(const t of z(NM,this).values())L(DM,this,wF).call(this,t);z(NM,this).clear(),U(MM,this,null),z(vM,this).clear()}function EF(t){const e=Number.isFinite(t)?t:this.currentTime;if(!Number.isFinite(e))return;e<z(IM,this)&&(U(TM,this,[]),U(EM,this,0));const n=Array.isArray(z(lM,this))?z(lM,this):[],i=[],r=new Set;z(TM,this).forEach((t=>{L(DM,this,LF).call(this,t,e)&&(i.push(t),(null==t?void 0:t.placementId)&&r.add(t.placementId))}));let o=z(EM,this);for(;o<n.length;){const t=n[o],s=vm(t);if(!Number.isFinite(s))break;if(s>e)break;if(L(DM,this,LF).call(this,t,e)){const e=null==t?void 0:t.placementId;e&&r.has(e)||(i.push(t),e&&r.add(e))}o+=1}U(TM,this,i),U(EM,this,o),U(IM,this,e)}function SF(t,e={}){const n=Number.isFinite(t)?t:this.currentTime,i=Number.isFinite(null==e?void 0:e.endEpsilonSeconds)?e.endEpsilonSeconds:0;return 0===i&&n===this.currentTime&&n===z(IM,this)?z(TM,this).slice():(Array.isArray(z(lM,this))?z(lM,this):[]).filter((t=>L(DM,this,LF).call(this,t,n,i)))}function AF(){const t=this.currentTime,e=L(DM,this,MF).call(this,t);if(!e.length)return void U(MM,this,null);const n=this.getActiveRenderPlacement(t),i=L(DM,this,FF).call(this,e,n);(i!==z(MM,this)||L(DM,this,NF).call(this,t,n))&&(U(MM,this,i),this.trigger(fv.VISUAL_FRAMES_AVAILABLE,{time:t,frames:e}))}function NF(t,e){const n=e||this.getActiveRenderPlacement(t);if(!n)return!1;if(!zm.doesRenderNodeTypeRequireFrameCadence(null==n?void 0:n.type))return!1;const i=n.duration;return"number"==typeof i&&i>0}function MF(t){return function(t={}){const e=t.buffers,n=t.time,i=t.getPlacementById,r=t.isPlacementActiveAtTime,o=t.getPlacementDuration,s=[];if(!e||"function"!=typeof e.entries)return[];const a=[];for(const[t,c]of e.entries()){const e=null==c?void 0:c.placementId,u="function"==typeof i?i(e):void 0;if(!u){NN(c),a.push(t);continue}if("function"==typeof r&&!r(u,n)){const e=MN(u),i="function"==typeof o?o(u):void 0;Number.isFinite(i)&&Number.isFinite(e)&&n>=e+i&&(NN(c),a.push(t));continue}const d=Array.isArray(null==c?void 0:c.frames)?c.frames:[];for(;d.length&&Number.isFinite(null===(l=d[0])||void 0===l?void 0:l.presentationTime)&&d[0].presentationTime<=n;){var l;const t=c.current,e=d.shift();c.current=e,t&&t!==e&&AN(null==t?void 0:t.frame)}if(!c.current)continue;const h={placementId:e,nodeId:c.current.nodeId,trackId:c.current.trackId,segmentId:c.current.segmentId,frame:c.current.frame,width:c.current.width,height:c.current.height,presentationTime:c.current.presentationTime,duration:c.current.duration};s.push({frame:h,placementId:e,placementOffset:MN(u),placementSortOffset:FN(u),placementSortId:ON(u,e)})}return a.forEach((t=>{e.delete(t)})),s.sort(((t,e)=>{const n=Number.isFinite(null==t?void 0:t.placementSortOffset)?t.placementSortOffset:Number.isFinite(null==t?void 0:t.placementOffset)?t.placementOffset:0,i=Number.isFinite(null==e?void 0:e.placementSortOffset)?e.placementSortOffset:Number.isFinite(null==e?void 0:e.placementOffset)?e.placementOffset:0;if(n!==i)return n-i;const r=(null==t?void 0:t.placementSortId)||(null==t?void 0:t.placementId),o=(null==e?void 0:e.placementSortId)||(null==e?void 0:e.placementId),s=CN(r),a=CN(o);return Number.isFinite(s)&&Number.isFinite(a)&&s!==a?s-a:r&&o&&r!==o?r<o?-1:1:function(t,e){const n=(null==t?void 0:t.frame)||{},i=(null==e?void 0:e.frame)||{};return n.trackId!==i.trackId?n.trackId<i.trackId?-1:1:n.nodeId!==i.nodeId?n.nodeId<i.nodeId?-1:1:n.segmentId!==i.segmentId?n.segmentId<i.segmentId?-1:1:("number"==typeof n.presentationTime?n.presentationTime:0)-("number"==typeof i.presentationTime?i.presentationTime:0)}(t,e)})),s.map((t=>t.frame))}({buffers:z(NM,this),time:t,getPlacementById:t=>L(DM,this,OF).call(this,t),isPlacementActiveAtTime:(t,e)=>L(DM,this,LF).call(this,t,e),getPlacementDuration:t=>L(DM,this,lF).call(this,t)})}function FF(t,e){return`${e?`render:${e.renderPlacementId||e.type||"unknown"}`:"render:default"}|${t.map((t=>`${t.nodeId}:${t.trackId}:${t.segmentId}@${t.presentationTime}`)).join("|")}`}function OF(t){if(t)return(z(lM,this)||[]).find((e=>(null==e?void 0:e.placementId)===t))}function CF(t){if("end"===t){const t=L(DM,this,PF).call(this);if(!Number.isFinite(t))return;const e=L(DM,this,DF).call(this);return Math.max(0,t-Math.min(t,e))}const e=Number(t);return Number.isFinite(e)?e:0}function PF(){let t;return(Array.isArray(z(lM,this))?z(lM,this):[]).forEach((e=>{const n=vm(e);if(!Number.isFinite(n))return;const i=L(DM,this,lF).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}function DF(){const t=L(DM,this,RF).call(this);return t>0?t:.001}function RF(){var t;const e=Number(null===(t=this.settings)||void 0===t?void 0:t.snapToFps);return!Number.isFinite(e)||e<=0?0:.5/e}function LF(t,e,n=0){if(!gm(t,e,z(nM,this)))return!1;const i=Number(n);if(!Number.isFinite(i)||i<=0)return!0;const r=L(DM,this,lF).call(this,t);if(!Number.isFinite(r))return!0;const o=vm(t);return!Number.isFinite(o)||e<o+r-i}var BF=new WeakMap,zF=new WeakMap,WF=new WeakMap,UF=new WeakMap,$F=new WeakMap,jF=new WeakMap,qF=new WeakMap,VF=new WeakMap,GF=new WeakMap,HF=new WeakMap,KF=new WeakMap,XF=new WeakMap,YF=new WeakMap,QF=new WeakMap,JF=new WeakMap,ZF=new WeakMap,tO=new WeakMap,eO=new WeakSet;class nO extends fd{get name(){return"QoE"}get defaults(){return{calcScoreInterval:1,streamQualityWeight:.8,fpsWeight:.2,fpsMathFuncType:"quad",bestFpsMobile:27,bestFpsDesktop:57,waitingMultiplier:1,statusFloors:{excellent:.98,good:.85,fair:.7,poor:0,alert:0},alertStatusCeil:.3,fpsGracePeriod:2,windowSeconds:30}}constructor(...t){super(...t),$(this,eO),W(this,BF,void 0),W(this,zF,void 0),W(this,WF,1),W(this,UF,1),W(this,$F,1),W(this,jF,""),W(this,qF,0),W(this,VF,[]),W(this,GF,null),W(this,HF,void 0),W(this,KF,[]),W(this,XF,null),W(this,YF,null),W(this,QF,0),W(this,JF,0),W(this,ZF,0),W(this,tO,void 0);const[e]=t;U(BF,this,e),U(QF,this,my()),U(tO,this,L(eO,this,iO).call(this)),L(eO,this,rO).call(this),L(eO,this,oO).call(this),L(eO,this,uO).call(this),L(eO,this,lO).call(this)}get publicAPI(){return z(tO,this)}calcScore(){L(eO,this,bO).call(this)}onDispose(){z(BF,this)&&z(zF,this)&&"function"==typeof z(BF,this).off&&z(BF,this).off(fv.TIMELINE_PLAYER_STATE,z(zF,this)),U(zF,this,null),L(eO,this,cO).call(this),L(eO,this,dO).call(this),U(BF,this,null),U(KF,this,[]),U(VF,this,[]),U(tO,this,null)}}function iO(){const t=this;return{get score(){return z(WF,t)},get status(){return z(jF,t)},get streamQualityScore(){return z(UF,t)},get fpsScore(){return z($F,t)},get browserFps(){return z(qF,t)},get waitingSeconds(){return z(JF,t)/1e3},get playingSeconds(){return z(ZF,t)/1e3}}}function rO(){Number(this.settings.streamQualityWeight)+Number(this.settings.fpsWeight)!==1&&(this.log.warn("QoE weights must sum to 1; resetting to legacy defaults."),this.settings.streamQualityWeight=.8,this.settings.fpsWeight=.2)}function oO(){z(BF,this)&&"function"==typeof z(BF,this).on&&(U(zF,this,(t=>L(eO,this,sO).call(this,t))),z(BF,this).on(fv.TIMELINE_PLAYER_STATE,z(zF,this)))}function sO(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";"playing"!==e?"waiting"!==e?"pause"!==e&&"seeking"!==e&&"seeked"!==e&&"reset"!==e||L(eO,this,aO).call(this,null):L(eO,this,aO).call(this,"waiting"):L(eO,this,aO).call(this,"playing")}function aO(t){if(t===z(XF,this))return;const e=my();z(XF,this)&&Number.isFinite(z(YF,this))&&z(KF,this).push({state:z(XF,this),startMs:z(YF,this),endMs:e}),U(XF,this,t),U(YF,this,t?e:null),L(eO,this,pO).call(this,e)}function lO(){const t=Number(this.settings.calcScoreInterval);!Number.isFinite(t)||t<=0||(U(HF,this,(()=>L(eO,this,bO).call(this))),Jk(z(HF,this),1e3*t))}function cO(){z(HF,this)&&Zk(z(HF,this)),U(HF,this,null)}function uO(){if("function"!=typeof $k)return;const t=()=>{if(this._disposed)return;const e=my();U(qF,this,L(eO,this,hO).call(this,z(VF,this),e)),U(GF,this,$k(t))};U(GF,this,$k(t))}function dO(){z(GF,this)&&"function"==typeof jk&&jk(z(GF,this)),U(GF,this,null)}function hO(t,e){const n=L(eO,this,fO).call(this);for(t.push(e);t.length&&e-t[0]>n;)t.shift();if(t.length<2)return 0;const i=t[t.length-1]-t[0];return i<=0?0:1e3*(t.length-1)/i}function fO(){const t=Number(this.settings.windowSeconds);return!Number.isFinite(t)||t<=0?3e4:1e3*t}function pO(t){const e=t-L(eO,this,fO).call(this);for(;z(KF,this).length&&z(KF,this)[0].endMs<=e;)z(KF,this).shift()}function mO(t){const e=t-L(eO,this,fO).call(this);let n=0,i=0;const r=(r,o,s)=>{const a=Math.max(o,e),l=Math.min(s,t);l<=a||("waiting"===r?n+=l-a:"playing"===r&&(i+=l-a))};return z(KF,this).forEach((t=>{r(t.state,t.startMs,t.endMs)})),z(XF,this)&&Number.isFinite(z(YF,this))&&r(z(XF,this),z(YF,this),t),U(JF,this,n),U(ZF,this,i),{waitingMs:n,playingMs:i}}function vO(t,e){if(t<=0)return 1;if(t>e)return 0;const n=e||1;return hm(1-t*this.settings.waitingMultiplier/n)}function gO(){if(my()-z(QF,this)<=1e3*this.settings.fpsGracePeriod)return 1;const t=Number(z(qF,this)),e=dv.isDesktop()?this.settings.bestFpsDesktop:this.settings.bestFpsMobile,n=hm(e>0?t/e:0);return"quad"===this.settings.fpsMathFuncType?n*n:n}function yO(t,e){const n=this.settings.statusFloors||{};let i="";return t>=n.excellent?i="excellent":t>=n.good?i="good":t>=n.fair?i="fair":(i="poor",t<=this.settings.alertStatusCeil&&e>0&&(i="alert")),i}function bO(){const t=my(),{waitingMs:e,playingMs:n}=L(eO,this,mO).call(this,t),i=L(eO,this,vO).call(this,e,n),r=L(eO,this,gO).call(this),o=hm(i*this.settings.streamQualityWeight+r*this.settings.fpsWeight);o!==z(WF,this)&&(U(WF,this,o),this.trigger(fv.QOE_SCORE,o)),U(UF,this,i),U($F,this,r);const s=L(eO,this,yO).call(this,o,e);s!==z(jF,this)&&(U(jF,this,s),this.trigger(fv.QOE_STATUS,s))}function kO(t,e=0){const n=Number(t);return Number.isFinite(n)?n:e}function xO(t){const e=Number(t);return!Number.isFinite(e)||e<0?0:e}var wO=new WeakMap,_O=new WeakMap,TO=new WeakMap,IO=new WeakMap,EO=new WeakSet;class SO extends fd{get name(){return"SegmentEvictionCoordinator"}get defaults(){return{enabled:Oy("segmentEvictionEnabled"),bufferBehindSeconds:Oy("segmentEvictionBufferBehindSeconds"),bufferAheadSeconds:Oy("segmentEvictionBufferAheadSeconds"),maxRetainedBytes:Oy("segmentEvictionMaxRetainedBytes")}}get methodsExcludedFromAutoLog(){return new Set([...super.methodsExcludedFromAutoLog,"evictAtTime"])}constructor(t,e,n={}){super(n),$(this,EO),W(this,wO,void 0),W(this,_O,void 0),W(this,TO,void 0),W(this,IO,void 0),U(wO,this,t),U(_O,this,e),U(TO,this,(t=>L(EO,this,AO).call(this,t))),U(IO,this,(t=>L(EO,this,NO).call(this,t))),z(wO,this)&&"function"==typeof z(wO,this).on&&(z(wO,this).on(fv.TIMELINE_TIME_UPDATE,z(TO,this)),z(wO,this).on(fv.TIMELINE_SEEKED,z(IO,this)))}onDispose(){z(wO,this)&&"function"==typeof z(wO,this).off&&(z(wO,this).off(fv.TIMELINE_TIME_UPDATE,z(TO,this)),z(wO,this).off(fv.TIMELINE_SEEKED,z(IO,this))),U(wO,this,null),U(_O,this,null),U(TO,this,null),U(IO,this,null)}evictAtTime(t){if(!0!==this.settings.enabled)return;const e=Number(t);if(!Number.isFinite(e))return;const n=xO(this.settings.bufferBehindSeconds),i=xO(this.settings.bufferAheadSeconds),r=e-n,o=e+i,s=L(EO,this,MO).call(this);if(!s.length)return;const a=Number(this.settings.maxRetainedBytes);if(Number.isFinite(a)&&a>0&&L(EO,this,FO).call(this,s)<=a)return;const l=new Map;s.forEach((t=>{const e=null==t?void 0:t.nodeId;if(!e)return;const n=vm(t);if(!Number.isFinite(n))return;const i=l.get(e)||[];i.push(t),l.set(e,i)})),l.size&&l.forEach(((t,e)=>{const n=L(EO,this,OO).call(this,e);if(!n)return;const i=t.filter((t=>L(EO,this,CO).call(this,t,r,o)));i.length?L(EO,this,PO).call(this,n,i,r,o):"function"==typeof n.evict&&n.evict()}))}}function AO(t){var e,n;if(!0!==this.settings.enabled)return;if((null===(e=z(wO,this))||void 0===e?void 0:e.state)===wv)return;const i=Number(null==t?void 0:t.time),r=Number.isFinite(i)?i:Number(null===(n=z(wO,this))||void 0===n?void 0:n.currentTime);this.evictAtTime(r)}function NO(t){var e;if(!0!==this.settings.enabled)return;const n=Number(null==t?void 0:t.targetTime),i=Number.isFinite(n)?n:Number(null===(e=z(wO,this))||void 0===e?void 0:e.currentTime);this.evictAtTime(i)}function MO(){var t;const e=null===(t=z(wO,this))||void 0===t?void 0:t.placements;return Array.isArray(e)?e:[]}function FO(t){if(!Array.isArray(t)||!t.length)return 0;const e=new Set;let n=0;return t.forEach((t=>{const i=null==t?void 0:t.nodeId;if(!i||e.has(i))return;e.add(i);const r=L(EO,this,OO).call(this,i),o=Number(null==r?void 0:r.retainedByteLength);jg(o)?n+=o:(Array.isArray(null==r?void 0:r.tracks)?r.tracks:[]).forEach((t=>{(Array.isArray(null==t?void 0:t.segments)?t.segments:[]).forEach((t=>{jg(null==t?void 0:t.retainedByteLength)&&(n+=t.retainedByteLength)}))}))})),n}function OO(t){if(z(_O,this)&&"function"==typeof z(_O,this).get)return z(_O,this).get(t)}function CO(t,e,n){const i=vm(t);if(!Number.isFinite(i))return!1;const r=pm(t,z(_O,this));return(Number.isFinite(r)?i+r:Number.POSITIVE_INFINITY)>e&&i<n}function PO(t,e,n,i){const r=Array.isArray(null==t?void 0:t.tracks)?t.tracks:[];r.length&&r.forEach((t=>{const r=Array.isArray(null==t?void 0:t.segments)?t.segments:[],o=kO(null==t?void 0:t.offset,0);r.forEach((t=>{if(!t||!jg(null==(r=t)?void 0:r.retainedByteLength))return;var r;if(t.isInit)return;let s=!1;for(let r=0;r<e.length;r+=1){const a=e[r],l=vm(a);if(!Number.isFinite(l))continue;const c=kO(null==a?void 0:a.nodeOffsetOverride,0),u=kO(null==t?void 0:t.offset,NaN);if(!Number.isFinite(u))continue;const d=kO(null==t?void 0:t.duration,0),h=l+o+u-c,f=h+(d>0?d:0),p=pm(a,z(_O,this)),m=Number.isFinite(p)?l+p:Number.POSITIVE_INFINITY;if(!(f<=l||h>=m||f<=n||h>=i)){s=!0;break}}s||t.evict()}))}))}var DO=new WeakMap,RO=new WeakMap,LO=new WeakMap,BO=new WeakSet;class zO extends fd{get name(){return"DocumentVisibility"}get defaults(){return{autoPauseOnVisibilityChange:!0,autoResumeOnVisibilityChange:!0}}constructor(t,e={}){super(e),$(this,BO),W(this,DO,void 0),W(this,RO,null),W(this,LO,!1),U(DO,this,t),L(BO,this,WO).call(this)}onDispose(){L(BO,this,UO).call(this),U(DO,this,null),U(LO,this,!1)}}function WO(){const t=null==vd?void 0:vd.document;t&&"function"==typeof t.addEventListener&&(U(RO,this,(()=>L(BO,this,$O).call(this))),t.addEventListener("visibilitychange",z(RO,this)))}function UO(){const t=null==vd?void 0:vd.document;z(RO,this)&&t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",z(RO,this)),U(RO,this,null)}function $O(){const t=null==vd?void 0:vd.document,e=null==t?void 0:t.visibilityState;"string"==typeof e&&("hidden"!==e?"visible"===e&&L(BO,this,qO).call(this):L(BO,this,jO).call(this))}function jO(){var t;(null===(t=this.settings)||void 0===t?void 0:t.autoPauseOnVisibilityChange)&&z(DO,this)&&"function"==typeof z(DO,this).pause&&(z(DO,this).state===yv?(this.log.info("[#handleHidden] Pausing timeline due to document visibility change"),z(DO,this).pause(),U(LO,this,!0)):U(LO,this,!1))}function qO(){var t;z(LO,this)&&(null===(t=this.settings)||void 0===t?void 0:t.autoResumeOnVisibilityChange)&&z(DO,this)&&"function"==typeof z(DO,this).play&&(z(DO,this).state!==yv?(this.log.info("[#handleVisible] Resuming timeline due to document visibility change"),z(DO,this).play(),U(LO,this,!1)):U(LO,this,!1))}const VO=[{event:"canplay",once:!0,trackAs:"canplay"},{event:"playing",once:!0,trackAs:"startedplaying"},"play","playing","waiting","pause","seeking","seeked","nodestart","nodeend"];function GO(t,e=0){return Number.isFinite(t)?t:e}function HO(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}const KO=[function(t){return{schema:"iglu:com.helloeko/player/jsonschema/1-0-6",match:/^.*$/,getData:()=>{var e,n,i;const r=function(t){const e=null==t?void 0:t.exposedPlayerAPI;return e&&"object"==typeof e?e:t}(t);return{playerversion:"string"==typeof(null==r?void 0:r.version)?r.version:"0.0.0",isautoplay:!(null==r||null===(e=r.options)||void 0===e||!e.autoplay),playerqoe:GO(null==r||null===(n=r.qoe)||void 0===n?void 0:n.score),playerqoestatus:"string"==typeof(null==r||null===(i=r.qoe)||void 0===i?void 0:i.status)?r.qoe.status:"",ismuted:!(null==r||!r.muted),playervolume:GO(null==r?void 0:r.volume),playercontainerwidth:GO(null==r?void 0:r.containerWidth),playercontainerheight:GO(null==r?void 0:r.containerHeight)}}}},function(t){return{schema:"iglu:com.helloeko/currentnode/jsonschema/1-0-1",match:/^.*$/,getData:()=>{var e;const n=HO(t),i=function(t){const e=HO(t);if(!e||"function"!=typeof e.getNodesAtTime)return null;const n=Number.isFinite(e.currentTime)?e.currentTime:0,i=e.getNodesAtTime(n);return Array.isArray(i)&&0!==i.length&&i[0]||null}(t);return{currentnodeid:"string"==typeof(null==i?void 0:i.id)?i.id:"",currentnodetime:Number.isFinite(null==n?void 0:n.currentTime)?n.currentTime:0,currentnodeduration:Number.isFinite(null==i?void 0:i.duration)?i.duration:0,currentnodeprofile:"string"==typeof(null==i||null===(e=i.metadata)||void 0===e?void 0:e.profile)?i.metadata.profile:""}}}},function(t){let e=0,n=0;const i=()=>{e||(e=Date.now(),n=0)},r=()=>{e&&!n&&(n=Date.now())};return t&&"function"==typeof t.on&&(t.on("seeking",i),t.on("seeked",r)),{schema:"iglu:com.helloeko/seeked/jsonschema/1-0-0",match:"seeked",getData:()=>{r();const t=e&&n&&n>=e?(n-e)/1e3:0;return e=0,n=0,{seekduration:t}},dispose:()=>{t&&"function"==typeof t.off&&(t.off("seeking",i),t.off("seeked",r))}}},function(){return{schema:"iglu:com.helloeko/environment/jsonschema/1-0-0",match:/^.*$/,getData:()=>{var t;const e=null==vd||null===(t=vd.eko)||void 0===t||null===(t=t.environment)||void 0===t?void 0:t.embeddingApp;return e?{embeddingapp:e}:{}}}}],XO=Object.freeze({once:!1,trackAs:""});var YO=new WeakMap,QO=new WeakMap,JO=new WeakMap,ZO=new WeakMap,tC=new WeakSet;class eC extends fd{get name(){return"Tracker"}get defaults(){return{trackingEnabled:Oy("trackingEnabled"),defaultForwarders:VO,defaultContextPackers:KO}}constructor(t,e={}){super(e),$(this,tC),W(this,YO,void 0),W(this,QO,new Map),W(this,JO,[]),W(this,ZO,!1),U(YO,this,t),L(tC,this,aC).call(this),L(tC,this,nC).call(this)}track(t,...e){if(!this.settings.trackingEnabled)return;if("string"!=typeof t||!t)return void this.log.warn("[track] Expected event to be a non-empty string.");const n=L(tC,this,cC).call(this);n&&n("track",t,...e)}registerContextPacker(t){if(!t||"object"!=typeof t)return void this.log.warn("[registerContextPacker] Expected a packer object.");const e={schema:t.schema,match:t.match,getData:t.getData};if("string"!=typeof e.schema||!e.schema)return void this.log.warn('[registerContextPacker] Expected "schema" to be a non-empty string.');if("function"!=typeof e.getData)return void this.log.warn('[registerContextPacker] Expected "getData" to be a function.');if(!this.settings.trackingEnabled)return;const n=L(tC,this,cC).call(this);n&&n("registerContextPacker",e)}onDispose(){L(tC,this,sC).call(this),L(tC,this,lC).call(this),U(YO,this,null),U(ZO,this,!1)}}function nC(){(Array.isArray(this.settings.defaultForwarders)?this.settings.defaultForwarders:[]).forEach((t=>L(tC,this,iC).call(this,t)))}function iC(t){const e=L(tC,this,rC).call(this,t);if(!e)return void this.log.warn("[#addEventForwarder] Invalid forwarder input.",t);const n=z(YO,this);if(!n||"function"!=typeof n.on)return;const i=L(tC,this,oC).call(this,e);if(z(QO,this).has(i))return;const r=(...t)=>{e.once&&n&&"function"==typeof n.off&&n.off(e.event,r);const i=e.trackAs||e.event;this.track(i,...t)};n.on(e.event,r),z(QO,this).set(i,{event:e.event,listener:r})}function rC(t){return"string"==typeof t&&t?{event:t,...XO}:t&&"object"==typeof t&&"string"==typeof t.event&&t.event?{event:t.event,once:!!t.once,trackAs:"string"==typeof t.trackAs?t.trackAs:""}:null}function oC({event:t,once:e,trackAs:n}){return`${t}:${e}:${n}`}function sC(){const t=z(YO,this);t&&"function"==typeof t.off&&z(QO,this).forEach((({event:e,listener:n})=>{t.off(e,n)})),z(QO,this).clear()}function aC(){(Array.isArray(this.settings.defaultContextPackers)?this.settings.defaultContextPackers:[]).forEach((t=>{if("function"!=typeof t)return;const e=t(z(YO,this),this);e&&"object"==typeof e&&("function"==typeof e.dispose&&z(JO,this).push(e.dispose),e.disabled||this.registerContextPacker({schema:e.schema,match:e.match,getData:e.getData}))}))}function lC(){z(JO,this).forEach((t=>{try{t()}catch(t){this.log.warn("[#teardownContextPackers] Failed disposing context packer.",t)}})),U(JO,this,[])}function cC(){const t=null==vd?void 0:vd.EkoAnalytics;return"function"==typeof t?t:(L(tC,this,uC).call(this),null)}function uC(){this.settings.trackingEnabled&&!z(ZO,this)&&(this.log.warn("EkoAnalytics not found on window."),U(ZO,this,!0))}class dC{#E;#it;#rt;#ot;#st;#at;#lt;#ct;#ut;#dt;#ht;#ft;#pt;#mt;#vt;#gt;#yt;#bt;#kt;constructor(t,e={},n=null){this.#E=new yd(t,e),this.#it=new Ed(this.#E,e),this.#rt=new Pk(e),this.#ot=new zy(e),this.#st=new mk(this.#ot,e),this.#at=new uk(this.#st,this.#rt,e),this.#lt=new _k(this.#at,e),this.#ct=new RM(this.#at,e),this.#ut=new zO(this.#ct,e),this.#bt=new SO(this.#ct,this.#at,e),this.#dt=new kx(this.#at,this.#lt,this.#rt,this.#ct,e),this.#ht=new ow(this.#at,this.#lt,this.#ct,e),this.#ft=new rE(e),this.#pt=new NE(this.#at,this.#ct,this.#ft,e),this.#vt=new nO(this.#ct,e),this.#kt=new eC(n,e);const i=e&&"object"==typeof e?e.adapters:null,r=i&&"object"==typeof i&&"function"==typeof i.renderAdapterFactory?i.renderAdapterFactory:null,o=i&&"object"==typeof i&&"function"==typeof i.audioAdapterFactory?i.audioAdapterFactory:null;this.#gt=r?r({timeline:this.#ct,canvas:this.#E,containerSize:this.#it,options:e}):new lg(this.#ct,this.#E,this.#it,e),this.#mt=o?o({timeline:this.#ct,decodeCoordinator:this.#pt,options:e}):new dA(this.#ct,this.#pt,e),this.#yt=new FS(this.#ct,this.#gt,e)}get canvas(){return this.#E}get containerSize(){return this.#it}get assetsDeliveryService(){return this.#rt}get downloadSpeed(){return this.#ot}get abrSelector(){return this.#st}get nodeRepository(){return this.#at}get nodePrioritizer(){return this.#lt}get timeline(){return this.#ct}get documentVisibility(){return this.#ut}get nodeResolver(){return this.#dt}get segmentLoadCoordinator(){return this.#ht}get decoderFactory(){return this.#ft}get parsingManager(){return this.#pt}get audioAdapter(){return this.#mt}get audioPlaybackManager(){return this.#mt}get qoe(){return this.#vt}get renderAdapter(){return this.#gt}get renderer(){return this.#gt}get transitionManager(){return this.#yt}get tracker(){return this.#kt}dispose(){[this.#kt,this.#ct,this.#ut,this.#ht,this.#dt,this.#lt,this.#at,this.#rt,this.#st,this.#ot,this.#pt,this.#ft,this.#mt,this.#vt,this.#gt,this.#yt,this.#bt,this.#it,this.#E].forEach((t=>{t&&"function"==typeof t.dispose&&t.dispose()})),this.#ct=null,this.#ut=null,this.#ht=null,this.#dt=null,this.#lt=null,this.#at=null,this.#rt=null,this.#st=null,this.#ot=null,this.#pt=null,this.#ft=null,this.#mt=null,this.#vt=null,this.#gt=null,this.#yt=null,this.#bt=null,this.#E=null,this.#kt=null}}const hC="bby/debug-logs.1155695";var fC={isPlainObject:ld,deepMerge:cd,get:dy,set:hy,ekoGlobalStore:fy,download:Ay,isPositiveNumber:jg,clamp01:hm,root:vd,now:my,getFrameDimensions:PN,useragent:hv,requestAnimationFrame:$k,cancelAnimationFrame:jk,start:Jk,stop:Zk,isTicking:tx,predicator:function(t,e){const n=e||{};if("function"!=typeof t)return void qk.error("[predicator] Bad argument given to predicator, first argument must be a function.",arguments);if(t.apply())return qk.debug("[predicator] Invoking onFulfilled immediately."),void("function"==typeof n.onFulfilled&&n.onFulfilled.call(null,0));const i=n.timeout||1e4,r=n.interval,o=my();let s,a,l,c,u;c=function(){t.apply()&&l()},l=function(){Zk(c),vd.clearTimeout(s),u=my()-o,qk.debug("[predicator] Invoking onFulfilled after "+u+" ms."),"function"==typeof n.onFulfilled&&n.onFulfilled.call(null,u)},a=function(){Zk(c),u=my()-o,qk.debug("[predicator] Invoking onTimeout after "+u+" ms."),"function"==typeof n.onTimeout&&n.onTimeout.call(null,u)},s=vd.setTimeout(a,i),Jk(c,r)},createThrottler:ex,scheduleExecution:nx},pC=new WeakMap,mC=new WeakMap,vC=new WeakMap,gC=new WeakMap,yC=new WeakMap,bC=new WeakMap,kC=new WeakMap,xC=new WeakSet;class wC{constructor(t){$(this,xC),W(this,pC,[]),W(this,mC,[]),W(this,vC,new ZN("placement-")),W(this,gC,new ZN("renderplacement-")),W(this,yC,void 0),W(this,bC,new Map),W(this,kC,void 0),U(yC,this,t),U(kC,this,{allowUnready:!0,getNode:t=>L(xC,this,_C).call(this,t)})}get placements(){return z(pC,this).slice()}get renderPlacements(){return z(mC,this).slice()}getNodesAtTime(t){L(xC,this,TC).call(this);const e=L(xC,this,EC).call(this,t);if(!Number.isFinite(e))return[];const n=z(pC,this).filter((t=>gm(t,e,null,z(kC,this)))),i=[];return n.forEach((t=>{const e=L(xC,this,_C).call(this,null==t?void 0:t.nodeId);e&&i.push(e)})),i}placeOnTimeline(t,e,n={}){const i=t&&"object"==typeof t?t:null,r=i?i.id:t;if(!r)throw new Error("TimelineDefinition.placeOnTimeline requires node id");i&&z(bC,this).set(r,i);const o=n.nodeOffsetOverride||n.offset,s=n.nodeDurationOverride||n.duration,a=wm(e);if("string"==typeof e&&e.includes("@")&&!a)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");const{wantsEndOffset:l,endOffsetSeconds:c}=a?{wantsEndOffset:!1}:xm(e,n);let u,d,h,f=!1;const p=null!==a;if(a){const t=z(pC,this).find((t=>(null==t?void 0:t.placementId)===a.placementId));if(!t)throw new Error("TimelineDefinition.placeOnTimeline requires valid placement reference");d=t.placementId,h=a.anchor;const e=vm(t);if("start"===a.anchor)Number.isFinite(e)?u=e:f=!0;else{const n=L(xC,this,IC).call(this,t);Number.isFinite(e)&&n>0?u=e+n:f=!0}}else if(l){const t=n.offsetAnchorPlacementId?z(pC,this).find((t=>(null==t?void 0:t.placementId)===n.offsetAnchorPlacementId)):z(pC,this).length?z(pC,this)[z(pC,this).length-1]:void 0;if(d=n.offsetAnchorPlacementId||(null==t?void 0:t.placementId),d){const e=vm(t),n=L(xC,this,IC).call(this,t);Number.isFinite(e)&&n>0?u=e+n-c:(f=!0,h="end")}else u=-c}else u=km(e);const m=z(vC,this).claim(n.placementId),v={placementId:m,nodeId:r,offset:u,offsetPending:f,offsetAnchorPlacementId:f?d:void 0,offsetAnchorEdge:f?h:void 0,offsetAnchorIsReference:f?p:void 0,offsetEndSeconds:l?c:a&&"end"===a.anchor?0:void 0,nodeOffsetOverride:o,nodeDurationOverride:s,loop:!0===n.loop};return z(pC,this).push(v),ym(z(pC,this)),m}placeRenderNodeOnTimeline(t,e,n,i={}){const r="string"==typeof t?t:null==t?void 0:t.type;if(!r||"string"!=typeof r)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires render node type");let o,s,a,l=!1;const c=wm(e);if("string"==typeof e&&e.includes("@")&&!c)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");const u=null!==c;if(c){const t=z(pC,this).find((t=>(null==t?void 0:t.placementId)===c.placementId));if(!t)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires valid placement reference");s=t.placementId,a=c.anchor;const e=vm(t);if("start"===c.anchor)Number.isFinite(e)?o=e:l=!0;else{const n=L(xC,this,IC).call(this,t);Number.isFinite(e)&&Number.isFinite(n)?o=e+n:l=!0}}else o=km(e);const d=z(gC,this).claim(i.renderPlacementId),h=Number(n),f=h===Number.POSITIVE_INFINITY,p=Number.isFinite(h)&&h>0||f?h:void 0;if(!p)throw new Error("TimelineDefinition.placeRenderNodeOnTimeline requires a positive duration (seconds) or Infinity as 3rd argument");const m={renderPlacementId:d,type:r,offset:o,offsetPending:l,offsetAnchorPlacementId:l?s:void 0,offsetAnchorEdge:l?a:void 0,offsetAnchorIsReference:l?u:void 0,duration:p,params:i.params&&"object"==typeof i.params?i.params:void 0};if(!l){const t=o,e=o+p;_m(z(mC,this),t,e,"TimelineDefinition.placeRenderNodeOnTimeline does not allow overlapping render nodes")}return z(mC,this).push(m),ym(z(mC,this)),d}}function _C(t){if(t)return z(yC,this)&&"function"==typeof z(yC,this).get?z(yC,this).get(t):z(bC,this).get(t)}function TC(){return bm(z(pC,this),{getPlacementDuration:t=>L(xC,this,IC).call(this,t)}).updated}function IC(t){return pm(t,null,z(kC,this))}function EC(t){if("end"===t){const t=L(xC,this,SC).call(this);if(!Number.isFinite(t))return;return Math.max(0,t-Math.min(t,.001))}const e=Number(t);return Number.isFinite(e)?e:0}function SC(){let t;return z(pC,this).forEach((e=>{const n=vm(e);if(!Number.isFinite(n))return;const i=L(xC,this,IC).call(this,e);if(!Number.isFinite(i))return;const r=n+i;Number.isFinite(r)&&(!Number.isFinite(t)||r>t)&&(t=r)})),t}const AC=new Set(["canplay","play","playing","waiting","pause","seeking","seeked"]);var NC=new WeakMap,MC=new WeakMap,FC=new WeakMap,OC=new WeakMap,CC=new WeakMap,PC=new WeakMap,DC=new WeakMap,RC=new WeakMap,LC=new WeakMap,BC=new WeakMap,zC=new WeakMap,WC=new WeakMap,UC=new WeakMap,$C=new WeakMap,jC=new WeakMap,qC=new WeakMap,VC=new WeakMap,GC=new WeakMap,HC=new WeakMap,KC=new WeakMap,XC=new WeakMap,YC=new WeakMap,QC=new WeakMap,JC=new WeakMap,ZC=new WeakMap,tP=new WeakSet;class eP extends fd{get name(){return"EkoPlayer"}get exposedPlayerAPI(){return z(OC,this)}constructor(t,e={}){const{options:n,publicOptions:i}=function(t={}){const e=cd({},My,t);Object.entries(Ny).forEach((([t,{targetPaths:n}])=>{void 0!==e[t]&&n.forEach((n=>{void 0===dy(e,n)&&hy(e,n,e[t])}))}));const n=function(t){const e={};return Object.keys(Ny).forEach((n=>{Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})),Object.freeze(e)}(e);return Fy.info("Processed options:",e),Fy.info("Public options:",n),{options:e,publicOptions:n}}(e);return super(n),$(this,tP),W(this,NC,void 0),W(this,MC,void 0),W(this,FC,void 0),W(this,OC,void 0),W(this,CC,void 0),W(this,PC,void 0),W(this,DC,void 0),W(this,RC,void 0),W(this,LC,void 0),W(this,BC,void 0),W(this,zC,void 0),W(this,WC,void 0),W(this,UC,void 0),W(this,$C,void 0),W(this,jC,void 0),W(this,qC,void 0),W(this,VC,void 0),W(this,GC,void 0),W(this,HC,void 0),W(this,KC,void 0),W(this,XC,void 0),W(this,YC,void 0),W(this,QC,void 0),W(this,JC,void 0),W(this,ZC,0),U(FC,this,i),this.log.info("Initializing EkoPlayer with options:",i),U(WC,this,new dC(t,n,this)),L(tP,this,dP).call(this,z(WC,this)),U(jC,this,(t=>L(tP,this,nP).call(this,t))),z(MC,this)&&"function"==typeof z(MC,this).on&&z(MC,this).on(fv.TIMELINE_CUEPOINT,z(jC,this)),U(qC,this,null),U(GC,this,(t=>L(tP,this,iP).call(this,t))),U(HC,this,(t=>{const e=t&&"object"==typeof t?t:{};L(tP,this,iP).call(this,{...e,event:"seeking"})})),U(KC,this,(t=>{const e=t&&"object"==typeof t?t:{};L(tP,this,iP).call(this,{...e,event:"seeked"})})),z(MC,this)&&"function"==typeof z(MC,this).on&&(z(MC,this).on(fv.TIMELINE_PLAYER_STATE,z(GC,this)),z(MC,this).on(fv.TIMELINE_SEEKING,z(HC,this)),z(MC,this).on(fv.TIMELINE_SEEKED,z(KC,this))),U(QC,this,(t=>{const e=t&&"object"==typeof t?t:{};this.trigger(fv.CONTAINER_RESIZE,e)})),z(UC,this)&&"function"==typeof z(UC,this).on&&z(UC,this).on(fv.CONTAINER_RESIZE,z(QC,this)),L(tP,this,aP).call(this),L(tP,this,sP).call(this),U(OC,this,L(tP,this,uP).call(this)),z(OC,this)}onDispose(){z(MC,this)&&"function"==typeof z(MC,this).off&&z(jC,this)&&z(MC,this).off(fv.TIMELINE_CUEPOINT,z(jC,this)),U(jC,this,null),z(MC,this)&&"function"==typeof z(MC,this).off&&(z(GC,this)&&z(MC,this).off(fv.TIMELINE_PLAYER_STATE,z(GC,this)),z(HC,this)&&z(MC,this).off(fv.TIMELINE_SEEKING,z(HC,this)),z(KC,this)&&z(MC,this).off(fv.TIMELINE_SEEKED,z(KC,this))),U(GC,this,null),U(HC,this,null),U(KC,this,null),U(qC,this,null),z(UC,this)&&"function"==typeof z(UC,this).off&&z(QC,this)&&z(UC,this).off(fv.CONTAINER_RESIZE,z(QC,this)),U(QC,this,null),z(zC,this)&&"function"==typeof z(zC,this).off&&(z(XC,this)&&z(zC,this).off("qoescore",z(XC,this)),z(YC,this)&&z(zC,this).off("qoestatus",z(YC,this))),U(XC,this,null),U(YC,this,null),z(BC,this)&&"function"==typeof z(BC,this).off&&z(JC,this)&&z(BC,this).off(fv.DECODER_ERROR,z(JC,this)),U(JC,this,null),U(ZC,this,0),z($C,this)&&"function"==typeof z($C,this).dispose&&z($C,this).dispose(),U($C,this,null),z(WC,this)&&"function"==typeof z(WC,this).dispose&&z(WC,this).dispose(),U(MC,this,null),U(NC,this,null),U(PC,this,null),U(DC,this,null),U(RC,this,null),U(LC,this,null),U(BC,this,null),U(zC,this,null),U(UC,this,null),U(CC,this,null),U(OC,this,null),U(WC,this,null)}}function nP(t={}){var e;this.trigger(fv.TIMELINE_CUEPOINT,t);const n="string"==typeof(null==t||null===(e=t.cuepoint)||void 0===e?void 0:e.name)?t.cuepoint.name:"";n&&this.trigger(n,t)}function iP(t={}){const e="string"==typeof(null==t?void 0:t.event)?t.event:"";if(!AC.has(e))return;if("playing"!==e||Number.isFinite(z(VC,this))||(U(VC,this,my()),this.log.info(`[#handlePlayerStateEvent] Playback started @ ${(z(VC,this)/1e3).toFixed(3)}s (${Date.now()})`)),z(qC,this)===e)return;U(qC,this,e);const n=Number.isFinite(null==t?void 0:t.time)?t.time:z(MC,this)&&Number.isFinite(z(MC,this).currentTime)?z(MC,this).currentTime:0,i={};Number.isFinite(n)&&(i.time=n),"string"==typeof(null==t?void 0:t.from)&&(i.from=t.from),"string"==typeof(null==t?void 0:t.to)&&(i.to=t.to),Number.isFinite(null==t?void 0:t.targetTime)&&(i.targetTime=t.targetTime),Array.isArray(null==t?void 0:t.placements)&&(i.placements=t.placements.slice()),this.trigger(e,i)}function rP(){return new wC(z(NC,this))}function oP(t){if(!t||"object"!=typeof t)throw new Error("EkoPlayer.switchTimeline requires a timeline definition");if(!z(MC,this)||"function"!=typeof z(MC,this).applyTimelineDefinition)throw new Error("EkoPlayer.switchTimeline requires an active timeline");z(MC,this).applyTimelineDefinition(t),"function"==typeof z(MC,this).play&&z(MC,this).play()}function sP(){z(zC,this)&&"function"==typeof z(zC,this).on&&(U(XC,this,(t=>{this.trigger(fv.QOE_SCORE,t)})),U(YC,this,(t=>{this.trigger(fv.QOE_STATUS,t)})),z(zC,this).on(fv.QOE_SCORE,z(XC,this)),z(zC,this).on(fv.QOE_STATUS,z(YC,this)))}function aP(){z(BC,this)&&"function"==typeof z(BC,this).on&&(U(JC,this,(t=>{const e=t&&"object"==typeof t?t:{error:t};this.trigger(fv.DECODER_ERROR,e),L(tP,this,lP).call(this,e)})),z(BC,this).on(fv.DECODER_ERROR,z(JC,this)))}function lP(t={}){var e;const n=z(MC,this);if(!n||"number"!=typeof n.currentTime)return;const i=Date.now();if(i<z(ZC,this))return;const r=Number(n.currentTime);if(!Number.isFinite(r))return;const o=Number(null==n||null===(e=n.settings)||void 0===e?void 0:e.snapToFps),s=Number.isFinite(o)&&o>0?1/o:1/60;U(ZC,this,i+1500),this.log.warn("[#attemptDecoderRecoverySeek] decoder:error received, attempting seek recovery",null==t?void 0:t.error),n.currentTime=r+s}async function cP(t={}){if(z($C,this))return z($C,this);const e=t&&"object"==typeof t&&!Array.isArray(t)?{...t}:{},n=z(CC,this)&&z(CC,this).element?z(CC,this).element:null;if(!n)throw new Error("Debug overlay requires an initialized player canvas and mount element.");const i=function({canvasElement:t,containerElement:e}={}){const n=t&&t.parentNode?t.parentNode:null;if(null==e)return n;const i=function(t,e=(null==vd?void 0:vd.document)){if(gd(t))return t;if("string"!=typeof t)return null;let n=t.trim();if("#"===n.charAt(0)&&(n=n.slice(1)),!n||!e||"function"!=typeof e.getElementById)return null;const i=e.getElementById(n);return gd(i)?i:null}(e,t&&t.ownerDocument?t.ownerDocument:null);if(i)return i;if("string"==typeof e){const t=e.trim(),n="#"===t.charAt(0)?t.slice(1):t;if(!n)throw new Error("Debug overlay containerElement id cannot be empty.");throw new Error(`Debug overlay containerElement id "${n}" was not found.`)}throw new Error("Debug overlay containerElement must be an element id string or DOM element.")}({canvasElement:n,containerElement:e.containerElement});if(!i)throw new Error("Debug overlay requires an initialized player canvas and mount element.");Object.prototype.hasOwnProperty.call(e,"containerElement")&&delete e.containerElement;const r=await import("./debug-overlay-BIxN1VnC.esm.js"),o=(null==r?void 0:r.createDebugOverlay)||(null==r?void 0:r.default);if("function"!=typeof o)throw new Error("Debug overlay bundle does not export createDebugOverlay().");return e.publicOptions=z(FC,this),e.playerVersion=hC,U($C,this,o({mountElement:i,canvasElement:n,timeline:z(MC,this),getNode:t=>z(NC,this)&&"function"==typeof z(NC,this).get?z(NC,this).get(t):void 0,listNodes:()=>z(NC,this)&&"function"==typeof z(NC,this).list?z(NC,this).list():[],downloadSpeed:z(WC,this)?z(WC,this).downloadSpeed:void 0,downloadEvents:ay,qoe:z(zC,this)?z(zC,this).publicAPI:void 0,qoeEvents:this,options:e,playbackStartedAtMs:z(VC,this)})),z($C,this)}function uP(){const t=this;return{createTimeline:()=>L(tP,t,rP).call(t),switchTimeline:e=>L(tP,t,oP).call(t,e),play:z(MC,this).play,pause:z(MC,this).pause,reset:z(MC,this).reset,placeOnTimeline:z(MC,this).placeOnTimeline,placeRenderNodeOnTimeline:z(MC,this).placeRenderNodeOnTimeline,addNode:z(NC,this).add,getNode:z(NC,this).get,listNodes:z(NC,this).list,getNodesAtTime:e=>z(MC,t).getNodesAtTime(e),dispose:this.dispose,on:t.on,off:t.off,once:t.once,trigger:t.trigger,transitionTo:(e,n)=>z(DC,t).transitionTo(e,n),track:(e,...n)=>{if(z(LC,t)&&"function"==typeof z(LC,t).track)return z(LC,t).track(e,...n)},seekToPlacement:e=>z(MC,t).seekToPlacement(e),get currentTime(){return z(MC,t).currentTime},set currentTime(e){z(MC,t).currentTime=e},get buffered(){return z(MC,t).buffered},get options(){return z(FC,t)},get containerWidth(){return z(UC,t)?z(UC,t).containerWidth:0},get containerHeight(){return z(UC,t)?z(UC,t).containerHeight:0},get playbackRate(){return z(MC,t).playbackRate},set playbackRate(e){z(MC,t).playbackRate=e},get paused(){return!!z(MC,t)&&!0===z(MC,t).paused},get muted(){return!!z(RC,t)&&z(RC,t).muted},set muted(e){z(RC,t)&&(z(RC,t).muted=e)},get volume(){return z(RC,t)?z(RC,t).volume:1},set volume(e){z(RC,t)&&(z(RC,t).volume=e)},get qoe(){return z(zC,t)?z(zC,t).publicAPI:void 0},get utils(){return fC},get version(){return hC},loadDebugOverlay:(...e)=>L(tP,t,cP).call(t,...e)}}function dP(t){t&&(U(CC,this,t.canvas),U(NC,this,t.nodeRepository),U(MC,this,t.timeline),U(RC,this,t.audioAdapter||t.audioPlaybackManager),U(LC,this,t.tracker),U(BC,this,t.parsingManager),U(zC,this,t.qoe),U(PC,this,t.renderAdapter||t.renderer),U(DC,this,t.transitionManager),U(UC,this,t.containerSize))}class hP{constructor({target:t,props:e}){if(!t)throw new Error("`options.target` is required");Oo(this.#xt,e,!0),this.#xt.v.EkoPlayer=eP;const n=t.hasChildNodes()?ka:ba;this.#wt=n($u,{target:t,props:this.#xt.v})}#wt;#xt=$i(Mo(Bo({})),"EkoGallery.#props");destroy(t){if(this.#wt)return Ta(this.#wt,t)}get props(){return Qs(this.#xt)}}const fP=b("gallery-react");const pP=a(((t,i)=>{const{config:r,debug:a,ssrHtml:c,activeItem:u={index:0,step:0},forceMobile:d,videoAspectRatio:h,onEvent:f=()=>{}}=t,p=n(null),m=n({}),v=function(t){return void 0!==t}(r),g=n(u),y=n(c);m.current.initEventSent||(f("galleryinit"),m.current.initEventSent=!0);const b=o((t=>{m.current.state=t,t.activeItemIndex===g.current.index&&t.activeModuleIndex===g.current.step||f("activeitemchanged",{index:t.activeItemIndex,step:t.activeModuleIndex})}),[]),k=o((t=>{m.current.API=t,0===u.index&&0===u.step||t.selectItemAndStep(u.index,u.step),m.current.unsubscribe&&m.current.unsubscribe(),m.current.unsubscribe=t.subscribe(b)}),[]),x=o(((t,e)=>{f(t,e)}),[f]);return s((()=>(fP.setDataStorage("gallery-react",{config:r}),window.eko=window.eko||{},window.eko.config=r,window.eko.gallery={version:"bby-debug-logs/4.0.4"},()=>{window.eko.config=void 0})),[r]),l(i,(()=>({prev:()=>{var t;null===(t=m.current.API)||void 0===t||t.prev()},next:()=>{var t;null===(t=m.current.API)||void 0===t||t.next()}}))),s((()=>{if(null==p||!p.current)return;const t=p.current;return m.current.app=new hP({target:t,props:{config:r,forceMobile:d,videoAspectRatio:h,hideNav:!0,onGalleryReady:k,onEvent:x}}),()=>{var t;null===(t=m.current.app)||void 0===t||t.destroy()}}),[]),s((()=>{m.current.app&&(m.current.app.props.config=r)}),[r]),s((()=>{m.current.app&&(m.current.app.props.debug=a,m.current.app.props.forceMobile=d,m.current.app.props.videoAspectRatio=h,m.current.app.props.onEvent=x)}),[a,d,h,x]),s((()=>{g.current=u,m.current.state&&(m.current.state.activeItemIndex===u.index&&m.current.state.activeModuleIndex===u.step||m.current.API.selectItemAndStep(u.index,u.step))}),[u]),v?e.createElement("div",q({style:{position:"relative",width:"100%",height:"100%"},ref:p},y.current?{dangerouslySetInnerHTML:{__html:y.current}}:{})):t.children}));pP.propTypes={className:Ct.string,config:Ct.object,variantId:Ct.string,onEvent:Ct.func,ssrHtml:Ct.string,videoAspectRatio:Ct.string,debug:Ct.bool,activeItem:Ct.shape({index:Ct.number,step:Ct.number}),forceMobile:Ct.bool,instanceId:Ct.string,children:Ct.node},pP.displayName="EkoGallerySvelte";const mP=d("v2"),vP=d("v1");export{hn as E,$ as _,W as a,U as b,z as c,L as d,u as e,vP as f,mP as g,pP as h,R as w};
|