diff --git a/assets/background-c101863b.js b/assets/background-c101863b.js index ac94ef9..d18504a 100644 --- a/assets/background-c101863b.js +++ b/assets/background-c101863b.js @@ -1,154 +1,154 @@ -(function () { - 'use strict'; +(function() { + 'use strict'; - function captureEvents(events) { - const captured = events.map(captureEvent); + function captureEvents(events) { + const captured = events.map(captureEvent); - return () => captured.forEach((t) => t()) + return () => captured.forEach((t) => t()) - function captureEvent(event) { - let isCapturePhase = true; + function captureEvent(event) { + let isCapturePhase = true; - // eslint-disable-next-line @typescript-eslint/ban-types - const callbacks = new Map(); - const eventArgs = new Set(); + // eslint-disable-next-line @typescript-eslint/ban-types + const callbacks = new Map(); + const eventArgs = new Set(); - // This is the only listener for the native event - event.addListener(handleEvent); + // This is the only listener for the native event + event.addListener(handleEvent); - function handleEvent(...args) { - if (isCapturePhase) { - // This is before dynamic import completes - eventArgs.add(args); + function handleEvent(...args) { + if (isCapturePhase) { + // This is before dynamic import completes + eventArgs.add(args); - if (typeof args[2] === 'function') { - // During capture phase all messages are async - return true - } else { - // Sync messages or some other event - return false - } - } else { - // The callbacks determine the listener return value - return callListeners(...args) - } - } - - // Called when dynamic import is complete - // and when subsequent events fire - function callListeners(...args) { - let isAsyncCallback = false; - callbacks.forEach((options, cb) => { - // A callback error should not affect the other callbacks - try { - isAsyncCallback = cb(...args) || isAsyncCallback; - } catch (error) { - console.error(error); - } - }); - - if (!isAsyncCallback && typeof args[2] === 'function') { - // We made this an async message callback during capture phase - // when the function handleEvent returned true - // so we are responsible to call sendResponse - // If the callbacks are sync message callbacks - // the sendMessage callback on the other side - // resolves with no arguments (this is the same behavior) - args[2](); - } - - // Support events after import is complete - return isAsyncCallback - } - - // This function will trigger this Event with our stored args - function triggerEvents() { - // Fire each event for this Event - eventArgs.forEach((args) => { - callListeners(...args); - }); - - // Dynamic import is complete - isCapturePhase = false; - // Don't need these anymore - eventArgs.clear(); - } - - // All future listeners are handled by our code - event.addListener = function addListener(cb, ...options) { - callbacks.set(cb, options); - }; - - event.hasListeners = function hasListeners() { - return callbacks.size > 0 - }; - - event.hasListener = function hasListener(cb) { - return callbacks.has(cb) - }; - - event.removeListener = function removeListener(cb) { - callbacks.delete(cb); - }; - - event.__isCapturedEvent = true; - - return triggerEvents - } - } - - function delay(ms) { - return new Promise((resolve) => { - setTimeout(resolve, ms); - }) - } - - /** - * Get matches from an object of nested objects - * - * @export - * @template T Type of matches - * @param {*} object Parent object to search - * @param {(x: any) => boolean} pred A predicate function that will receive each property value of an object - * @param {string[]} excludeKeys Exclude a property if the key exactly matches - * @returns {T[]} The matched values from the parent object - */ - function getDeepMatches(object, pred, excludeKeys) { - const keys = typeof object === 'object' && object ? Object.keys(object) : []; - - return keys.length - ? keys - .filter((key) => !excludeKeys.includes(key)) - .reduce((r, key) => { - const target = object[key]; - - if (target && pred(target)) { - return [...r, target] - } else { - return [...r, ...getDeepMatches(target, pred, excludeKeys)] + if (typeof args[2] === 'function') { + // During capture phase all messages are async + return true + } else { + // Sync messages or some other event + return false + } + } else { + // The callbacks determine the listener return value + return callListeners(...args) + } } - }, [] ) - : [] - } - const importPath = /*@__PURE__*/JSON.parse('"../background.js"'); - const delayLength = /*@__PURE__*/JSON.parse('0'); - const excludedPaths = /*@__PURE__*/JSON.parse('["extension"]'); + // Called when dynamic import is complete + // and when subsequent events fire + function callListeners(...args) { + let isAsyncCallback = false; + callbacks.forEach((options, cb) => { + // A callback error should not affect the other callbacks + try { + isAsyncCallback = cb(...args) || isAsyncCallback; + } catch (error) { + console.error(error); + } + }); - const events = getDeepMatches( - chrome, - (x) => typeof x === 'object' && 'addListener' in x, - // The webRequest API is not compatible with event pages - // TODO: this can be removed - // if we stop using this wrapper with "webRequest" permission - excludedPaths.concat(['webRequest']), - ); - const triggerEvents = captureEvents(events); + if (!isAsyncCallback && typeof args[2] === 'function') { + // We made this an async message callback during capture phase + // when the function handleEvent returned true + // so we are responsible to call sendResponse + // If the callbacks are sync message callbacks + // the sendMessage callback on the other side + // resolves with no arguments (this is the same behavior) + args[2](); + } - import(importPath).then(async () => { - if (delayLength) await delay(delayLength); + // Support events after import is complete + return isAsyncCallback + } - triggerEvents(); - }); + // This function will trigger this Event with our stored args + function triggerEvents() { + // Fire each event for this Event + eventArgs.forEach((args) => { + callListeners(...args); + }); -}()); + // Dynamic import is complete + isCapturePhase = false; + // Don't need these anymore + eventArgs.clear(); + } + + // All future listeners are handled by our code + event.addListener = function addListener(cb, ...options) { + callbacks.set(cb, options); + }; + + event.hasListeners = function hasListeners() { + return callbacks.size > 0 + }; + + event.hasListener = function hasListener(cb) { + return callbacks.has(cb) + }; + + event.removeListener = function removeListener(cb) { + callbacks.delete(cb); + }; + + event.__isCapturedEvent = true; + + return triggerEvents + } + } + + function delay(ms) { + return new Promise((resolve) => { + setTimeout(resolve, ms); + }) + } + + /** + * Get matches from an object of nested objects + * + * @export + * @template T Type of matches + * @param {*} object Parent object to search + * @param {(x: any) => boolean} pred A predicate function that will receive each property value of an object + * @param {string[]} excludeKeys Exclude a property if the key exactly matches + * @returns {T[]} The matched values from the parent object + */ + function getDeepMatches(object, pred, excludeKeys) { + const keys = typeof object === 'object' && object ? Object.keys(object) : []; + + return keys.length ? + keys + .filter((key) => !excludeKeys.includes(key)) + .reduce((r, key) => { + const target = object[key]; + + if (target && pred(target)) { + return [...r, target] + } else { + return [...r, ...getDeepMatches(target, pred, excludeKeys)] + } + }, []) : + [] + } + + const importPath = /*@__PURE__*/ JSON.parse('"../background.js"'); + const delayLength = /*@__PURE__*/ JSON.parse('0'); + const excludedPaths = /*@__PURE__*/ JSON.parse('["extension"]'); + + const events = getDeepMatches( + chrome, + (x) => typeof x === 'object' && 'addListener' in x, + // The webRequest API is not compatible with event pages + // TODO: this can be removed + // if we stop using this wrapper with "webRequest" permission + excludedPaths.concat(['webRequest']), + ); + const triggerEvents = captureEvents(events); + + import(importPath).then(async () => { + if (delayLength) await delay(delayLength); + + triggerEvents(); + }); + +}()); \ No newline at end of file diff --git a/assets/index-26a612d9.js b/assets/index-26a612d9.js index 87ec2b4..f5804aa 100644 --- a/assets/index-26a612d9.js +++ b/assets/index-26a612d9.js @@ -1,8 +1,8 @@ -(function () { - 'use strict'; +(function() { + 'use strict'; - const importPath = /*@__PURE__*/JSON.parse('"../content/mogultv/index.js"'); + const importPath = /*@__PURE__*/ JSON.parse('"../content/mogultv/index.js"'); - import(chrome.runtime.getURL(importPath)); + import(chrome.runtime.getURL(importPath)); -}()); +}()); \ No newline at end of file diff --git a/assets/index-8c52b575.js b/assets/index-8c52b575.js index 0b25691..eabae81 100644 --- a/assets/index-8c52b575.js +++ b/assets/index-8c52b575.js @@ -1,8 +1,8 @@ -(function () { - 'use strict'; +(function() { + 'use strict'; - const importPath = /*@__PURE__*/JSON.parse('"../content/twitch/index.js"'); + const importPath = /*@__PURE__*/ JSON.parse('"../content/twitch/index.js"'); - import(chrome.runtime.getURL(importPath)); + import(chrome.runtime.getURL(importPath)); -}()); +}()); \ No newline at end of file diff --git a/assets/index-b14d09b0.js b/assets/index-b14d09b0.js index 21dff17..8583ce0 100644 --- a/assets/index-b14d09b0.js +++ b/assets/index-b14d09b0.js @@ -1,8 +1,8 @@ -(function () { - 'use strict'; +(function() { + 'use strict'; - const importPath = /*@__PURE__*/JSON.parse('"../content/youtube/index.js"'); + const importPath = /*@__PURE__*/ JSON.parse('"../content/youtube/index.js"'); - import(chrome.runtime.getURL(importPath)); + import(chrome.runtime.getURL(importPath)); -}()); +}()); \ No newline at end of file diff --git a/background.content-5f02aba1.js b/background.content-5f02aba1.js index 0e674b3..f45d118 100644 --- a/background.content-5f02aba1.js +++ b/background.content-5f02aba1.js @@ -1,7 +1,63 @@ -import { t } from './index-6137f488.js'; -import { s, m } from './storage-a8ac7bd3.js'; -import { n } from './connectRuntime-a699491c.js'; +import { + t +} from './index-6137f488.js'; +import { + s, + m +} from './storage-a8ac7bd3.js'; +import { + n +} from './connectRuntime-a699491c.js'; -class o extends t{constructor(){super(),this.fetch=async(t,e)=>{const s=Math.random().toString();return this.port.postMessage({nonce:s,path:t,body:e}),new Promise((t=>{const e=a=>{a.meta.nonce===s&&(this.port.onMessage.removeListener(e),t(a));};this.port.onMessage.addListener(e);}))},this.extensionId=s.runtime.id,this.port=this.connectToBackground(),this.port.onMessage.addListener(this.onMessage),window.addEventListener("message",(async t=>{var e,a,o;if(t.source!==window||(null===(e=t.data)||void 0===e?void 0:e.id)!==this.extensionId||"response"===(null===(a=t.data)||void 0===a?void 0:a.type))return;let n;switch(null===(o=t.data)||void 0===o?void 0:o.type){case"fetch":n=await this.fetch(t.data.data[0],t.data.data[1]);break;case"storage.get":{const[e,a]=t.data.data.split(".");n=await m[e].get(a);break}case"storage.set":{const[e,a]=t.data.data[0].split(".");n=await m[e].set(a,t.data.data[1]);break}}window.postMessage({id:this.extensionId,nonce:t.data.nonce,type:"response",data:n});}));}connectToBackground(){return n()}async onMessage(t){window.postMessage(t);}} +class o extends t { + constructor() { + super(), this.fetch = async (t, e) => { + const s = Math.random().toString(); + return this.port.postMessage({ + nonce: s, + path: t, + body: e + }), new Promise((t => { + const e = a => { + a.meta.nonce === s && (this.port.onMessage.removeListener(e), t(a)); + }; + this.port.onMessage.addListener(e); + })) + }, this.extensionId = s.runtime.id, this.port = this.connectToBackground(), this.port.onMessage.addListener(this.onMessage), window.addEventListener("message", (async t => { + var e, a, o; + if (t.source !== window || (null === (e = t.data) || void 0 === e ? void 0 : e.id) !== this.extensionId || "response" === (null === (a = t.data) || void 0 === a ? void 0 : a.type)) return; + let n; + switch (null === (o = t.data) || void 0 === o ? void 0 : o.type) { + case "fetch": + n = await this.fetch(t.data.data[0], t.data.data[1]); + break; + case "storage.get": { + const [e, a] = t.data.data.split("."); + n = await m[e].get(a); + break + } + case "storage.set": { + const [e, a] = t.data.data[0].split("."); + n = await m[e].set(a, t.data.data[1]); + break + } + } + window.postMessage({ + id: this.extensionId, + nonce: t.data.nonce, + type: "response", + data: n + }); + })); + } + connectToBackground() { + return n() + } + async onMessage(t) { + window.postMessage(t); + } +} -export { o }; +export { + o +}; \ No newline at end of file diff --git a/background.injected-af36b849.js b/background.injected-af36b849.js index ada3fba..8bba3fc 100644 --- a/background.injected-af36b849.js +++ b/background.injected-af36b849.js @@ -1,5 +1,52 @@ -import { t } from './index-6137f488.js'; +import { + t +} from './index-6137f488.js'; -class e extends t{constructor(){super(),this.fetch=async(t,e)=>this.sendToContentScript("fetch",[t,e]),this.extensionId=function(){var t;const e=null===(t=document.getElementById("jjdtNVhjLLNiwvfY"))||void 0===t?void 0:t.getAttribute("jjdtNVhjLLNiwvfY");if(!e)throw new Error("Could not resolve extension ID from injected script");return e}(),window.addEventListener("message",(t=>{var e,n;t.source===window&&(null===(e=t.data)||void 0===e?void 0:e.id)===this.extensionId&&"event"===(null===(n=t.data)||void 0===n?void 0:n.type)&&this.onMessage(t.data.data);}));}async onMessage(t){}async getStorage(t){return await this.sendToContentScript("storage.get",t)}async getLiveStorageValue(t,e=(t=>t)){const n={value:e(await this.getStorage(t))},o=window.setInterval((async()=>{n.value=e(await this.getStorage(t));}),1e3);return n.interval=o,n}async setStorage(t,e){return this.sendToContentScript("storage.set",[t,e])}async sendToContentScript(t,e){const n=Math.random().toString();return window.postMessage({id:this.extensionId,nonce:n,type:t,data:e}),new Promise((t=>{const e=o=>{var s,a,i;o.source===window&&(null===(s=o.data)||void 0===s?void 0:s.id)===this.extensionId&&(null===(a=o.data)||void 0===a?void 0:a.nonce)===n&&"response"===(null===(i=o.data)||void 0===i?void 0:i.type)&&(t(o.data.data),window.removeEventListener("message",e));};window.addEventListener("message",e);}))}} +class e extends t { + constructor() { + super(), this.fetch = async (t, e) => this.sendToContentScript("fetch", [t, e]), this.extensionId = function() { + var t; + const e = null === (t = document.getElementById("jjdtNVhjLLNiwvfY")) || void 0 === t ? void 0 : t.getAttribute("jjdtNVhjLLNiwvfY"); + if (!e) throw new Error("Could not resolve extension ID from injected script"); + return e + }(), window.addEventListener("message", (t => { + var e, n; + t.source === window && (null === (e = t.data) || void 0 === e ? void 0 : e.id) === this.extensionId && "event" === (null === (n = t.data) || void 0 === n ? void 0 : n.type) && this.onMessage(t.data.data); + })); + } + async onMessage(t) {} + async getStorage(t) { + return await this.sendToContentScript("storage.get", t) + } + async getLiveStorageValue(t, e = (t => t)) { + const n = { + value: e(await this.getStorage(t)) + }, + o = window.setInterval((async () => { + n.value = e(await this.getStorage(t)); + }), 1e3); + return n.interval = o, n + } + async setStorage(t, e) { + return this.sendToContentScript("storage.set", [t, e]) + } + async sendToContentScript(t, e) { + const n = Math.random().toString(); + return window.postMessage({ + id: this.extensionId, + nonce: n, + type: t, + data: e + }), new Promise((t => { + const e = o => { + var s, a, i; + o.source === window && (null === (s = o.data) || void 0 === s ? void 0 : s.id) === this.extensionId && (null === (a = o.data) || void 0 === a ? void 0 : a.nonce) === n && "response" === (null === (i = o.data) || void 0 === i ? void 0 : i.type) && (t(o.data.data), window.removeEventListener("message", e)); + }; + window.addEventListener("message", e); + })) + } +} -export { e }; +export { + e +}; \ No newline at end of file diff --git a/background.js b/background.js index 6179110..4d9f65f 100644 --- a/background.js +++ b/background.js @@ -1,6 +1,246 @@ -import { d as dt } from './parse_token.util-ed270559.js'; -import { e } from './fetch_youtube-71c76849.js'; -import { n } from './router.interface-6cdbc015.js'; -import { s, m } from './storage-a8ac7bd3.js'; +import { + d as dt +} from './parse_token.util-ed270559.js'; +import { + e +} from './fetch_youtube-71c76849.js'; +import { + n +} from './router.interface-6cdbc015.js'; +import { + s, + m +} from './storage-a8ac7bd3.js'; -class o extends Error{constructor(t,e){super(e),this.code=t,this.message=e;}}const r=(t,e={},a)=>({body:e,meta:{isSuccess:!1,code:t,nonce:a}});let i;const c=t=>s.cookies.getAll({url:t}).then((t=>t.filter((t=>!t.name.startsWith("ST-"))).map((t=>[t.name,t.value])))).then(Object.fromEntries),u={"@me":async()=>{const t=await m.auth.get("token");return dt(t)},logout:async()=>{const t=await m.auth.get("token");await fetch("https://v2.mogultv.org/auth/youtube",{method:"DELETE",headers:{Authorization:`Bearer ${t}`}}),await m.auth.remove("token");},login:async t=>{const a=await c(t.href),s=await fetch("https://v2.mogultv.org/auth/youtube",{method:"POST",body:JSON.stringify(Object.assign(Object.assign({},t),{cookies:a}))});if(200!==s.status)return null;const{jwt:n}=await s.json();return await m.auth.set("token",n),n},link:async t=>{const a=await m.auth.get("token"),n=await fetch(`https://v2.mogultv.org/link/${t}`,{method:"GET",headers:{Authorization:`Bearer ${a}`}});if(200!==n.status)return;const o=await n.text();await chrome.cookies.set({url:"https://v2.mogultv.org",name:"Authorization",value:a,httpOnly:!0,path:`/link/${t}/callback`,expirationDate:Math.floor(Date.now()/1e3)+3600}),await chrome.windows.create({url:o,focused:!0,type:"popup",width:850,height:800});const r=await new Promise((t=>{i=t;}));return m.auth.set("token",r),dt(r)},"finish-link":async(t,e)=>{var s$1,n;(null===(s$1=e.sender.tab)||void 0===s$1?void 0:s$1.id)&&s.tabs.remove(null===(n=e.sender.tab)||void 0===n?void 0:n.id),null==i||i(t);},"disconnect-link":async t=>{const a=await m.auth.get("token"),n=await fetch(`https://v2.mogultv.org/link/${t}`,{method:"DELETE",headers:{Authorization:`Bearer ${a}`}});if(200!==n.status)return;const{jwt:o}=await n.json();return await m.auth.set("token",o),dt(o)}};const l=t=>async()=>{var a,s;const n=await m.cache.get(t);let o;if(n&&n.expiresAt>Date.now())o=n.value;else {const n=await fetch("https://v2.mogultv.org"+t),r=Number(n.headers.get("age")),i=Number((null===(s=null===(a=n.headers.get("cache-control"))||void 0===a?void 0:a.match(/max-age=(\d+)/))||void 0===s?void 0:s[1])||300)-r,c=Date.now()+1e3*i;o=await n.json(),await m.cache.set(t,{expiresAt:c,value:o});}return o},h={youtube:{"get-stream":async()=>{const t=await m.cache.get("get-stream");let a;if(t&&t.expiresAt>Date.now())a=t.value;else {const t=Date.now()+6e4;a=await async function(){try{const t=await fetch("https://youtube.com/channel/UCrPseYLGpNygVi34QpGNqpA/live");if(200!==t.status)return null;const e=await t.text(),a=/(?:window\s*\[\s*["']ytInitialData["']\s*\]|ytInitialData)\s*=\s*({.+?})\s*;/.exec(e);if(a){const t=JSON.parse(a[1]),e=t.currentVideoEndpoint.watchEndpoint.videoId,s=t.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer,n=t.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.thumbnail.thumbnails[0].url,o=s.viewCount.videoViewCountRenderer.viewCount.runs.find((t=>/^[0-9,]+$/.test(t.text))).text;return {title:s.title.runs[0].text,viewersCount:parseInt(o.replace(/,/g,"")),previewImageURL:`https://i.ytimg.com/vi/${e}/mqdefault.jpg`,profileImageURL:n}}}catch(t){console.warn(t);}return null}(),await m.cache.set("get-stream",{expiresAt:t,value:a});}return a},"get-user":async t=>{const e$1=await c(t.href),a=await e(Object.assign(Object.assign({},t),{cookies:e$1}));if(!a.success)throw new o(a.code,a.message);return a.data}},gateway:{users:l("/gateway/users"),emotes:l("/gateway/emotes"),badges:l("/gateway/badges"),"set-settings":async t=>{const a=await m.auth.get("token"),n=await fetch("https://v2.mogultv.org/gateway/settings",{method:"PUT",headers:{Authorization:`Bearer ${a}`},body:JSON.stringify(t)}),{jwt:o}=await n.json();return m.auth.set("token",o),dt(o)}},auth:u,extension:{popup:()=>s.action.openPopup(),"open-tab":async t=>{await s.tabs.create({url:t});}}},d=async(e,a)=>{var s;const{path:n$1,body:o}=e;if(!n$1)return;e.meta?e.meta.sender=a:e.meta={sender:a,isPort:!1},e.meta.isPort||(e.meta.isPort=!1);const i=t=>{},c=n$1.split("/").filter(Boolean),u=c[0];if(!(u in h)){return r(n.NotFound,void 0,e.nonce)}const l=h[u][c.slice(1).join("/")];if(!l){return r(n.NotFound,void 0,e.nonce)}try{const a=((e,a)=>({body:e,meta:{isSuccess:!0,code:n.Success,nonce:a}}))(await l(o,e.meta),e.nonce);return i(a),a}catch(a){const n$1=a;return r(null!==(s=n$1.code)&&void 0!==s?s:n.Unknown,{message:n$1.message},e.nonce)}};s.runtime.onConnect.addListener((t=>{const e=t.sender;e&&t.onMessage.addListener((async a=>{a.meta={isPort:!0};const s=await d(a,e);t.postMessage(s);}));})),s.runtime.onMessage.addListener(d); +class o extends Error { + constructor(t, e) { + super(e), this.code = t, this.message = e; + } +} +const r = (t, e = {}, a) => ({ + body: e, + meta: { + isSuccess: !1, + code: t, + nonce: a + } +}); +let i; +const c = t => s.cookies.getAll({ + url: t + }).then((t => t.filter((t => !t.name.startsWith("ST-"))).map((t => [t.name, t.value])))).then(Object.fromEntries), + u = { + "@me": async () => { + const t = await m.auth.get("token"); + return dt(t) + }, + logout: async () => { + const t = await m.auth.get("token"); + await fetch("https://v2.mogultv.org/auth/youtube", { + method: "DELETE", + headers: { + Authorization: `Bearer ${t}` + } + }), await m.auth.remove("token"); + }, + login: async t => { + const a = await c(t.href), + s = await fetch("https://v2.mogultv.org/auth/youtube", { + method: "POST", + body: JSON.stringify(Object.assign(Object.assign({}, t), { + cookies: a + })) + }); + if (200 !== s.status) return null; + const { + jwt: n + } = await s.json(); + return await m.auth.set("token", n), n + }, + link: async t => { + const a = await m.auth.get("token"), + n = await fetch(`https://v2.mogultv.org/link/${t}`, { + method: "GET", + headers: { + Authorization: `Bearer ${a}` + } + }); + if (200 !== n.status) return; + const o = await n.text(); + await chrome.cookies.set({ + url: "https://v2.mogultv.org", + name: "Authorization", + value: a, + httpOnly: !0, + path: `/link/${t}/callback`, + expirationDate: Math.floor(Date.now() / 1e3) + 3600 + }), await chrome.windows.create({ + url: o, + focused: !0, + type: "popup", + width: 850, + height: 800 + }); + const r = await new Promise((t => { + i = t; + })); + return m.auth.set("token", r), dt(r) + }, + "finish-link": async (t, e) => { + var s$1, n; + (null === (s$1 = e.sender.tab) || void 0 === s$1 ? void 0 : s$1.id) && s.tabs.remove(null === (n = e.sender.tab) || void 0 === n ? void 0 : n.id), null == i || i(t); + }, + "disconnect-link": async t => { + const a = await m.auth.get("token"), + n = await fetch(`https://v2.mogultv.org/link/${t}`, { + method: "DELETE", + headers: { + Authorization: `Bearer ${a}` + } + }); + if (200 !== n.status) return; + const { + jwt: o + } = await n.json(); + return await m.auth.set("token", o), dt(o) + } + }; +const l = t => async () => { + var a, s; + const n = await m.cache.get(t); + let o; + if (n && n.expiresAt > Date.now()) o = n.value; + else { + const n = await fetch("https://v2.mogultv.org" + t), + r = Number(n.headers.get("age")), + i = Number((null === (s = null === (a = n.headers.get("cache-control")) || void 0 === a ? void 0 : a.match(/max-age=(\d+)/)) || void 0 === s ? void 0 : s[1]) || 300) - r, + c = Date.now() + 1e3 * i; + o = await n.json(), await m.cache.set(t, { + expiresAt: c, + value: o + }); + } + return o +}, h = { + youtube: { + "get-stream": async () => { + const t = await m.cache.get("get-stream"); + let a; + if (t && t.expiresAt > Date.now()) a = t.value; + else { + const t = Date.now() + 6e4; + a = await async function() { + try { + const t = await fetch("https://youtube.com/channel/UCrPseYLGpNygVi34QpGNqpA/live"); + if (200 !== t.status) return null; + const e = await t.text(), + a = /(?:window\s*\[\s*["']ytInitialData["']\s*\]|ytInitialData)\s*=\s*({.+?})\s*;/.exec(e); + if (a) { + const t = JSON.parse(a[1]), + e = t.currentVideoEndpoint.watchEndpoint.videoId, + s = t.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer, + n = t.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.thumbnail.thumbnails[0].url, + o = s.viewCount.videoViewCountRenderer.viewCount.runs.find((t => /^[0-9,]+$/.test(t.text))).text; + return { + title: s.title.runs[0].text, + viewersCount: parseInt(o.replace(/,/g, "")), + previewImageURL: `https://i.ytimg.com/vi/${e}/mqdefault.jpg`, + profileImageURL: n + } + } + } catch (t) { + console.warn(t); + } + return null + }(), await m.cache.set("get-stream", { + expiresAt: t, + value: a + }); + } + return a + }, + "get-user": async t => { + const e$1 = await c(t.href), + a = await e(Object.assign(Object.assign({}, t), { + cookies: e$1 + })); + if (!a.success) throw new o(a.code, a.message); + return a.data + } + }, + gateway: { + users: l("/gateway/users"), + emotes: l("/gateway/emotes"), + badges: l("/gateway/badges"), + "set-settings": async t => { + const a = await m.auth.get("token"), + n = await fetch("https://v2.mogultv.org/gateway/settings", { + method: "PUT", + headers: { + Authorization: `Bearer ${a}` + }, + body: JSON.stringify(t) + }), + { + jwt: o + } = await n.json(); + return m.auth.set("token", o), dt(o) + } + }, + auth: u, + extension: { + popup: () => s.action.openPopup(), + "open-tab": async t => { + await s.tabs.create({ + url: t + }); + } + } +}, d = async (e, a) => { + var s; + const { + path: n$1, + body: o + } = e; + if (!n$1) return; + e.meta ? e.meta.sender = a : e.meta = { + sender: a, + isPort: !1 + }, e.meta.isPort || (e.meta.isPort = !1); + const i = t => {}, + c = n$1.split("/").filter(Boolean), + u = c[0]; + if (!(u in h)) { + return r(n.NotFound, void 0, e.nonce) + } + const l = h[u][c.slice(1).join("/")]; + if (!l) { + return r(n.NotFound, void 0, e.nonce) + } + try { + const a = ((e, a) => ({ + body: e, + meta: { + isSuccess: !0, + code: n.Success, + nonce: a + } + }))(await l(o, e.meta), e.nonce); + return i(a), a + } catch (a) { + const n$1 = a; + return r(null !== (s = n$1.code) && void 0 !== s ? s : n.Unknown, { + message: n$1.message + }, e.nonce) + } +}; +s.runtime.onConnect.addListener((t => { + const e = t.sender; + e && t.onMessage.addListener((async a => { + a.meta = { + isPort: !0 + }; + const s = await d(a, e); + t.postMessage(s); + })); +})), s.runtime.onMessage.addListener(d); \ No newline at end of file diff --git a/connectRuntime-a699491c.js b/connectRuntime-a699491c.js index 2982333..f2bd1d6 100644 --- a/connectRuntime-a699491c.js +++ b/connectRuntime-a699491c.js @@ -1,5 +1,36 @@ -import { s } from './storage-a8ac7bd3.js'; +import { + s +} from './storage-a8ac7bd3.js'; -const n=n=>{let s$1;const t=()=>{s$1=s.runtime.connect(n),s$1.onDisconnect.addListener((()=>{t();}));};function o(e){return {addListener:n=>s$1[e].addListener(n),removeListener:n=>s$1[e].removeListener(n),hasListener:n=>s$1[e].hasListener(n),hasListeners:()=>s$1[e].hasListeners()}}t();const r={name:(null==n?void 0:n.name)||"",disconnect:()=>s$1.disconnect(),onDisconnect:o("onDisconnect"),onMessage:o("onMessage"),postMessage:e=>s$1.postMessage(e)};return Object.defineProperty(r,"name",{get:()=>s$1.name}),r}; +const n = n => { + let s$1; + const t = () => { + s$1 = s.runtime.connect(n), s$1.onDisconnect.addListener((() => { + t(); + })); + }; -export { n }; + function o(e) { + return { + addListener: n => s$1[e].addListener(n), + removeListener: n => s$1[e].removeListener(n), + hasListener: n => s$1[e].hasListener(n), + hasListeners: () => s$1[e].hasListeners() + } + } + t(); + const r = { + name: (null == n ? void 0 : n.name) || "", + disconnect: () => s$1.disconnect(), + onDisconnect: o("onDisconnect"), + onMessage: o("onMessage"), + postMessage: e => s$1.postMessage(e) + }; + return Object.defineProperty(r, "name", { + get: () => s$1.name + }), r +}; + +export { + n +}; \ No newline at end of file diff --git a/content/mogultv/index.js b/content/mogultv/index.js index 106f95b..511cdc9 100644 --- a/content/mogultv/index.js +++ b/content/mogultv/index.js @@ -1,7 +1,16 @@ import '../../index-6137f488.js'; import '../../storage-a8ac7bd3.js'; import '../../connectRuntime-a699491c.js'; -import { o } from '../../background.content-5f02aba1.js'; -import { e } from '../../when_ready.util-91474a6b.js'; +import { + o +} from '../../background.content-5f02aba1.js'; +import { + e +} from '../../when_ready.util-91474a6b.js'; -e((async()=>{var n;const e=new o,o$1=null===(n=document.getElementById("jwt-response"))||void 0===n?void 0:n.textContent;o$1&&e.fetch("/auth/finish-link",o$1);})); +e((async () => { + var n; + const e = new o, + o$1 = null === (n = document.getElementById("jwt-response")) || void 0 === n ? void 0 : n.textContent; + o$1 && e.fetch("/auth/finish-link", o$1); +})); \ No newline at end of file diff --git a/content/twitch/index.js b/content/twitch/index.js index 94b30f0..549c788 100644 --- a/content/twitch/index.js +++ b/content/twitch/index.js @@ -1,7 +1,11 @@ import '../../index-6137f488.js'; import '../../storage-a8ac7bd3.js'; import '../../connectRuntime-a699491c.js'; -import { o } from '../../background.content-5f02aba1.js'; -import { e } from '../../inject_script.util-c1ec59e3.js'; +import { + o +} from '../../background.content-5f02aba1.js'; +import { + e +} from '../../inject_script.util-c1ec59e3.js'; -new o,e("content/twitch/inject.js"); +new o, e("content/twitch/inject.js"); \ No newline at end of file diff --git a/content/twitch/inject.js b/content/twitch/inject.js index fb2784d..73b1d67 100644 --- a/content/twitch/inject.js +++ b/content/twitch/inject.js @@ -1,5 +1,200 @@ import '../../index-6137f488.js'; -import { e } from '../../background.injected-af36b849.js'; -import { s } from '../../router.interface-6cdbc015.js'; +import { + e +} from '../../background.injected-af36b849.js'; +import { + s +} from '../../router.interface-6cdbc015.js'; -!async function(e){async function a(e){if(Array.isArray(e))for(const t of e)await n(t);return e}async function n(a){var n,i,r;try{switch(a.extensions.operationName){case"FollowingLive_CurrentUser":{const n=a.data,i=await e.fetch("/youtube/get-stream");s(i)&&i.body&&(n.currentUser.followedLiveUsers.edges.push(function({title:e,viewersCount:t,profileImageURL:a,previewImageURL:n}){return {__typename:"FollowedLiveUserEdge",cursor:"LTE=",node:{__typename:"User",id:"40934651",displayName:"ludwig",login:"ludwig",profileImageURL:a,stream:{broadcaster:{id:"40934651",primaryColorHex:"00FFE2",__typename:"User",channel:{id:"40934651",self:{isAuthorized:!0,__typename:"ChannelSelfEdge"},__typename:"Channel"}},id:"-1",previewImageURL:n,game:{id:"-1",name:"YouTube",displayName:"YouTube",boxArtURL:"https://i.postimg.cc/NjQvCPh2/image.png",__typename:"Game"},restriction:null,tags:[],title:e,type:"live",viewersCount:t,__typename:"Stream"}}}}(i.body)),n.currentUser.followedLiveUsers.edges.sort(((e,t)=>t.node.stream.viewersCount-e.node.stream.viewersCount)));break}case"PersonalSections":{const n=a.data.personalSections.find((e=>"FOLLOWED_SECTION"===e.type));if(n){const a=await e.fetch("/youtube/get-stream");s(a)&&a.body&&(n.items.push(function({title:e,viewersCount:t,profileImageURL:a,previewImageURL:n}){return {trackingID:"1bb8ab4b-aed2-4f25-a750-c295d57e6a95",promotionsCampaignID:"",user:{id:"40934651",login:"ludwig",displayName:"ludwig",profileImageURL:a,primaryColorHex:"00FFE2",broadcastSettings:{id:"40934651",title:e,__typename:"BroadcastSettings"},channel:{id:"40934651",creatorAnniversaries:{id:"40934651",isAnniversary:!1,__typename:"CreatorAnniversaries"},__typename:"Channel"},__typename:"User"},label:"NONE",content:{id:"-1",previewImageURL:n,broadcaster:{id:"40934651",broadcastSettings:{id:"40934651",title:e,__typename:"BroadcastSettings"},__typename:"User"},viewersCount:t,self:{canWatch:!0,isRestricted:!1,restrictionType:null,__typename:"StreamSelfConnection"},game:{id:"-1",displayName:"YouTube",name:"YouTube",__typename:"Game"},type:"live",__typename:"Stream"},__typename:"PersonalSectionChannel"}}(a.body)),n.items.sort(((e,t)=>(t.content.viewersCount||0)-(e.content.viewersCount||0))));}break}case"StreamMetadata":{const n=a.data;if("40934651"===n.user.id){const a=await e.fetch("/youtube/get-stream");s(a)&&a.body&&(n.user.lastBroadcast.id="-1",n.user.lastBroadcast.title=a.body.title,n.user.stream={id:"-1",type:"live",createdAt:(new Date).toJSON(),viewersCount:a.body.viewersCount,game:{id:"-1",name:"YouTube",__typename:"Game"},__typename:"Stream"});}break}default:{const o=a.data;if("40934651"===(null===(n=o.user)||void 0===n?void 0:n.id)&&(null===(r=null===(i=o.user)||void 0===i?void 0:i.lastBroadcast)||void 0===r?void 0:r.title)){const a=await e.fetch("/youtube/get-stream");s(a)&&a.body&&(o.user.lastBroadcast.title=a.body.title);}}}}catch(e){}}const i=window.fetch.bind(window);window.fetch=async function(e,t){const n=await i(e,t);try{let t;if(t="string"==typeof e?e:e.url,!t.includes("gql.twitch.tv/gql"))return n;const i=n.text.bind(n),r=n.json.bind(n);n.text=async function(){const e=await i();try{const t=JSON.parse(e);return await a(t),JSON.stringify(t)}catch(t){return e}},n.json=async function(){const e=await r();try{return await a(e),e}catch(t){return e}};}catch(e){return n}return n};}(new e); +!async function(e) { + async function a(e) { + if (Array.isArray(e)) + for (const t of e) await n(t); + return e + } + async function n(a) { + var n, i, r; + try { + switch (a.extensions.operationName) { + case "FollowingLive_CurrentUser": { + const n = a.data, + i = await e.fetch("/youtube/get-stream"); + s(i) && i.body && (n.currentUser.followedLiveUsers.edges.push(function({ + title: e, + viewersCount: t, + profileImageURL: a, + previewImageURL: n + }) { + return { + __typename: "FollowedLiveUserEdge", + cursor: "LTE=", + node: { + __typename: "User", + id: "40934651", + displayName: "ludwig", + login: "ludwig", + profileImageURL: a, + stream: { + broadcaster: { + id: "40934651", + primaryColorHex: "00FFE2", + __typename: "User", + channel: { + id: "40934651", + self: { + isAuthorized: !0, + __typename: "ChannelSelfEdge" + }, + __typename: "Channel" + } + }, + id: "-1", + previewImageURL: n, + game: { + id: "-1", + name: "YouTube", + displayName: "YouTube", + boxArtURL: "https://i.postimg.cc/NjQvCPh2/image.png", + __typename: "Game" + }, + restriction: null, + tags: [], + title: e, + type: "live", + viewersCount: t, + __typename: "Stream" + } + } + } + }(i.body)), n.currentUser.followedLiveUsers.edges.sort(((e, t) => t.node.stream.viewersCount - e.node.stream.viewersCount))); + break + } + case "PersonalSections": { + const n = a.data.personalSections.find((e => "FOLLOWED_SECTION" === e.type)); + if (n) { + const a = await e.fetch("/youtube/get-stream"); + s(a) && a.body && (n.items.push(function({ + title: e, + viewersCount: t, + profileImageURL: a, + previewImageURL: n + }) { + return { + trackingID: "1bb8ab4b-aed2-4f25-a750-c295d57e6a95", + promotionsCampaignID: "", + user: { + id: "40934651", + login: "ludwig", + displayName: "ludwig", + profileImageURL: a, + primaryColorHex: "00FFE2", + broadcastSettings: { + id: "40934651", + title: e, + __typename: "BroadcastSettings" + }, + channel: { + id: "40934651", + creatorAnniversaries: { + id: "40934651", + isAnniversary: !1, + __typename: "CreatorAnniversaries" + }, + __typename: "Channel" + }, + __typename: "User" + }, + label: "NONE", + content: { + id: "-1", + previewImageURL: n, + broadcaster: { + id: "40934651", + broadcastSettings: { + id: "40934651", + title: e, + __typename: "BroadcastSettings" + }, + __typename: "User" + }, + viewersCount: t, + self: { + canWatch: !0, + isRestricted: !1, + restrictionType: null, + __typename: "StreamSelfConnection" + }, + game: { + id: "-1", + displayName: "YouTube", + name: "YouTube", + __typename: "Game" + }, + type: "live", + __typename: "Stream" + }, + __typename: "PersonalSectionChannel" + } + }(a.body)), n.items.sort(((e, t) => (t.content.viewersCount || 0) - (e.content.viewersCount || 0)))); + } + break + } + case "StreamMetadata": { + const n = a.data; + if ("40934651" === n.user.id) { + const a = await e.fetch("/youtube/get-stream"); + s(a) && a.body && (n.user.lastBroadcast.id = "-1", n.user.lastBroadcast.title = a.body.title, n.user.stream = { + id: "-1", + type: "live", + createdAt: (new Date).toJSON(), + viewersCount: a.body.viewersCount, + game: { + id: "-1", + name: "YouTube", + __typename: "Game" + }, + __typename: "Stream" + }); + } + break + } + default: { + const o = a.data; + if ("40934651" === (null === (n = o.user) || void 0 === n ? void 0 : n.id) && (null === (r = null === (i = o.user) || void 0 === i ? void 0 : i.lastBroadcast) || void 0 === r ? void 0 : r.title)) { + const a = await e.fetch("/youtube/get-stream"); + s(a) && a.body && (o.user.lastBroadcast.title = a.body.title); + } + } + } + } catch (e) {} + } + const i = window.fetch.bind(window); + window.fetch = async function(e, t) { + const n = await i(e, t); + try { + let t; + if (t = "string" == typeof e ? e : e.url, !t.includes("gql.twitch.tv/gql")) return n; + const i = n.text.bind(n), + r = n.json.bind(n); + n.text = async function() { + const e = await i(); + try { + const t = JSON.parse(e); + return await a(t), JSON.stringify(t) + } catch (t) { + return e + } + }, n.json = async function() { + const e = await r(); + try { + return await a(e), e + } catch (t) { + return e + } + }; + } catch (e) { + return n + } + return n + }; +}(new e); \ No newline at end of file diff --git a/content/youtube/index.js b/content/youtube/index.js index 69e2d14..9747766 100644 --- a/content/youtube/index.js +++ b/content/youtube/index.js @@ -1,10 +1,67 @@ import '../../index-6137f488.js'; -import { e as e$3 } from '../../get_stream_details-b6177000.js'; -import { e } from '../../style-inject.es-a0e1a0ba.js'; -import { s, m } from '../../storage-a8ac7bd3.js'; +import { + e as e$3 +} from '../../get_stream_details-b6177000.js'; +import { + e +} from '../../style-inject.es-a0e1a0ba.js'; +import { + s, + m +} from '../../storage-a8ac7bd3.js'; import '../../connectRuntime-a699491c.js'; -import { o as o$1 } from '../../background.content-5f02aba1.js'; -import { e as e$2 } from '../../inject_script.util-c1ec59e3.js'; -import { e as e$1 } from '../../when_ready.util-91474a6b.js'; +import { + o as o$1 +} from '../../background.content-5f02aba1.js'; +import { + e as e$2 +} from '../../inject_script.util-c1ec59e3.js'; +import { + e as e$1 +} from '../../when_ready.util-91474a6b.js'; -var o="settings-module_ludwigLogo__Wt9ZZ",i="settings-module_ludwigSettingsPopup__Mfv9p";async function c(){const g=await d();let I=document.getElementById("ludwig-settings-popup");g.addEventListener("click",(()=>{I?I.style.display="none"===I.style.display?"block":"none":I=function(){const I=document.createElement("iframe");return I.src=s.runtime.getURL("popup/index.html"),I.id="ludwig-settings-popup",I.className=i,document.body.appendChild(I),window.addEventListener("message",(g=>{g.source===I.contentWindow&&"mogul-tv:close"===g.data&&(I.style.display="none");})),document.addEventListener("keydown",(g=>{"Escape"===g.key&&(I.style.display="none");})),document.addEventListener("click",(A=>{"none"===I.style.display||g.contains(A.target)||I.contains(A.target)||(I.style.display="none");})),I}();}));}function d(){const g=document.getElementById("ludwig-settings-button");if(g)return Promise.resolve(g);const I=document.querySelector("ytd-masthead #end");if(!I)return new Promise((g=>{setTimeout((()=>g(d())),1e3);}));const A=document.createElement("yt-icon-button");A.id="ludwig-settings-button",A.setAttribute("label","Mogul.TV Settings"),A.className="style-scope ytd-masthead";const C=document.createElement("img");return C.src="data:image/png;base64,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WQwIiMSzzDBt4g3i6U3b4LxPHGZFWSU+Jx436YLEj1xXPH7jXHBZ4JlhM52aJw4Ti4U2VtqYFU2NeIo4omo65QsZj1XOW5y1cpU178lfGMrpK8tcpzWMBBaxBAkiFFRRQhk2orTrpFhI0Xncxz/k+iVyKeQqgZFjARVokF0/+B/8nq2Vn5zwkkJxoPPFcT5GgK5doFFznO9jx2mcAMFn4Epv+St1YOaT9FpLixwBfdvAxXVLU/aAyx1g8MmQTdmVgrSEfB54P6NvygL9t0DPmje35jlOH4A0zSp5AxwcAqMFyl73eXd3+9z+7WnO7wefz3K5SrnPGAAAEuFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3NTM0YTk5NC0xNDIzLTZjNDctYTExNi01ZjUzMWZkYzZkM2UiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZDhlZDc2NDctZDYzMy00NDczLWI4MWYtY2NiYjRlMzQzMGRkIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZmMzZjY2MTMtODdkZi0yZDRmLWIyNDUtODZiZjc3MWFhODk4IgogICBkYzpmb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjM4NDMxNjIxMzU1NDU4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjgiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTEyLTAyVDAwOjU3OjA2LTA2OjAwIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMi0wMlQwMTo1MDoyOC0wNjowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTItMDJUMDE6NTA6MjgtMDY6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAyVDAwOjU3OjA2LTA2OjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhhZjc3YWM5LWU3NWMtYWI0Zi05OGY4LWYyMTE4NjY3YjljZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAyVDAxOjUwOjI4LTA2OjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIKICAgICAgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIgogICAgICBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3YTAxNGEzOC02Y2M4LWFjNDQtOGYyYS0yNDE0NTI1OGJkZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0xMi0wMlQwMTo1MDoyOC0wNjowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MDgyMWI4NS03MWU5LTQzYjUtYTEwNi0wY2RhYWZhZjE3YzMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAxVDIzOjUzOjQxLTA4OjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHhtcE1NOkRlcml2ZWRGcm9tCiAgICBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIKICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGFmNzdhYzktZTc1Yy1hYjRmLTk4ZjgtZjIxMTg2NjdiOWNkIgogICAgc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+BKrvTAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+UMAgc1KQBoSUQAAAgKSURBVGjexVpNjJ1VGX7e853v3rl3Zm4pnbS2pbY4lgZNNMhCKQp1IRVM/YkxjW5csHclGw1popK4IYS4cWlcWV2oUWtUhDTVGEQSYxAVSMEU+nPpgC3tTGfuPe/j4vu55+9Oh2qmJ5lk7vdzz/O+7/P+niuIFr83FK7hbgBHCRwmZD+IDgEQACkgAULQXFOwvabNdQLa3q/e0/Z/QCFQTu4HzzT3gRGBV5T4rQI/7vT47Icf2UIfrwTgnxjuouIJCD5PSof1Bqg3pQioDXDWACUAWwFqhAS0BsUaWCVkAzL87D/vP6MElBhR5Fc0/NrBRwdnEgH08eEHIfgFiNsbDbK+HWq+2ZTt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",C.className="style-scope ytd-masthead "+o,A.appendChild(C),I.prepend(A),Promise.resolve(A)}e(".ytd-masthead.settings-module_ludwigLogo__Wt9ZZ {\n width: var(--yt-icon-button-icon-width);\n}\n\n.settings-module_ludwigSettingsPopup__Mfv9p {\n width: 400px;\n height: 600px;\n position: fixed;\n top: 56px;\n right: 0px;\n z-index: 9999;\n box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);\n}");async function a(){setInterval((async()=>{await async function(){const g=await m.settings.get("chatStyles"),I=e$3();return g&&I}()?document.body.setAttribute("data-mogul-chat-styles",""):document.body.removeAttribute("data-mogul-chat-styles");}),250);}e('/* Overwrite colors on verified/owner names */\nyt-live-chat-author-chip[is-highlighted] #author-name.owner.yt-live-chat-author-chip,\n#author-name.owner.yt-live-chat-author-chip {\n color: var(--yt-live-chat-author-chip-owner-text-color) !important;\n}\n\nyt-live-chat-author-chip[is-highlighted] #author-name.yt-live-chat-author-chip {\n color: var(--yt-live-chat-author-chip-verified-text-color) !important;\n}\n\n\nbody[data-mogul-chat-styles] #author-photo.yt-live-chat-text-message-renderer {\n\tdisplay: none;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-text-message-renderer {\n\tmin-height: 24px;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-chip {\n\tdirection: rtl;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-chip::before {\n\tcontent: ":";\n}\n\nbody[data-mogul-chat-styles] #author-name.member.yt-live-chat-author-chip,\n#author-name.moderator.yt-live-chat-author-chip {\n font-weight: 800 !important;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-badge-renderer.yt-live-chat-author-chip {\n margin: 0 4px 0 0 !important;\n}\n\n#message.yt-live-chat-text-message-renderer .emoji.yt-live-chat-text-message-renderer {\n width: auto !important;\n}'),e$1((()=>{const g=null!==document.querySelector("yt-live-chat-app");new o$1,e$2("content/youtube/inject.js"),g?a():c();})); +var o = "settings-module_ludwigLogo__Wt9ZZ", + i = "settings-module_ludwigSettingsPopup__Mfv9p"; +async function c() { + const g = await d(); + let I = document.getElementById("ludwig-settings-popup"); + g.addEventListener("click", (() => { + I ? I.style.display = "none" === I.style.display ? "block" : "none" : I = function() { + const I = document.createElement("iframe"); + return I.src = s.runtime.getURL("popup/index.html"), I.id = "ludwig-settings-popup", I.className = i, document.body.appendChild(I), window.addEventListener("message", (g => { + g.source === I.contentWindow && "mogul-tv:close" === g.data && (I.style.display = "none"); + })), document.addEventListener("keydown", (g => { + "Escape" === g.key && (I.style.display = "none"); + })), document.addEventListener("click", (A => { + "none" === I.style.display || g.contains(A.target) || I.contains(A.target) || (I.style.display = "none"); + })), I + }(); + })); +} + +function d() { + const g = document.getElementById("ludwig-settings-button"); + if (g) return Promise.resolve(g); + const I = document.querySelector("ytd-masthead #end"); + if (!I) return new Promise((g => { + setTimeout((() => g(d())), 1e3); + })); + const A = document.createElement("yt-icon-button"); + A.id = "ludwig-settings-button", A.setAttribute("label", "Mogul.TV Settings"), A.className = "style-scope ytd-masthead"; + const C = document.createElement("img"); + return C.src = "data:image/png;base64,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WQwIiMSzzDBt4g3i6U3b4LxPHGZFWSU+Jx436YLEj1xXPH7jXHBZ4JlhM52aJw4Ti4U2VtqYFU2NeIo4omo65QsZj1XOW5y1cpU178lfGMrpK8tcpzWMBBaxBAkiFFRRQhk2orTrpFhI0Xncxz/k+iVyKeQqgZFjARVokF0/+B/8nq2Vn5zwkkJxoPPFcT5GgK5doFFznO9jx2mcAMFn4Epv+St1YOaT9FpLixwBfdvAxXVLU/aAyx1g8MmQTdmVgrSEfB54P6NvygL9t0DPmje35jlOH4A0zSp5AxwcAqMFyl73eXd3+9z+7WnO7wefz3K5SrnPGAAAEuFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIgogICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgeG1sbnM6R0lNUD0iaHR0cDovL3d3dy5naW1wLm9yZy94bXAvIgogICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImFkb2JlOmRvY2lkOnBob3Rvc2hvcDo3NTM0YTk5NC0xNDIzLTZjNDctYTExNi01ZjUzMWZkYzZkM2UiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZDhlZDc2NDctZDYzMy00NDczLWI4MWYtY2NiYjRlMzQzMGRkIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZmMzZjY2MTMtODdkZi0yZDRmLWIyNDUtODZiZjc3MWFhODk4IgogICBkYzpmb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iTGludXgiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjM4NDMxNjIxMzU1NDU4IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjgiCiAgIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTEyLTAyVDAwOjU3OjA2LTA2OjAwIgogICB4bXA6Q3JlYXRvclRvb2w9IkdJTVAgMi4xMCIKICAgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0xMi0wMlQwMTo1MDoyOC0wNjowMCIKICAgeG1wOk1vZGlmeURhdGU9IjIwMjEtMTItMDJUMDE6NTA6MjgtMDY6MDAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAyVDAwOjU3OjA2LTA2OjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjhhZjc3YWM5LWU3NWMtYWI0Zi05OGY4LWYyMTE4NjY3YjljZCIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIzLjAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAyVDAxOjUwOjI4LTA2OjAwIi8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249ImNvbnZlcnRlZCIKICAgICAgc3RFdnQ6cGFyYW1ldGVycz0iZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIgogICAgICBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL3BuZyIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo3YTAxNGEzOC02Y2M4LWFjNDQtOGYyYS0yNDE0NTI1OGJkZjMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCAyMy4wIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMS0xMi0wMlQwMTo1MDoyOC0wNjowMCIvPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo0MDgyMWI4NS03MWU5LTQzYjUtYTEwNi0wY2RhYWZhZjE3YzMiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoTGludXgpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTAxVDIzOjUzOjQxLTA4OjAwIi8+CiAgICA8L3JkZjpTZXE+CiAgIDwveG1wTU06SGlzdG9yeT4KICAgPHhtcE1NOkRlcml2ZWRGcm9tCiAgICBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIKICAgIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6OGFmNzdhYzktZTc1Yy1hYjRmLTk4ZjgtZjIxMTg2NjdiOWNkIgogICAgc3RSZWY6b3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmZjM2Y2NjEzLTg3ZGYtMmQ0Zi1iMjQ1LTg2YmY3NzFhYTg5OCIvPgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+BKrvTAAAAAlwSFlzAAAuIwAALiMBeKU/dgAAAAd0SU1FB+UMAgc1KQBoSUQAAAgKSURBVGjexVpNjJ1VGX7e853v3rl3Zm4pnbS2pbY4lgZNNMhCKQp1IRVM/YkxjW5csHclGw1popK4IYS4cWlcWV2oUWtUhDTVGEQSYxAVSMEU+nPpgC3tTGfuPe/j4vu55+9Oh2qmJ5lk7vdzz/O+7/P+niuIFr83FK7hbgBHCRwmZD+IDgEQACkgAULQXFOwvabNdQLa3q/e0/Z/QCFQTu4HzzT3gRGBV5T4rQI/7vT47Icf2UIfrwTgnxjuouIJCD5PSof1Bqg3pQioDXDWACUAWwFqhAS0BsUaWCVkAzL87D/vP6MElBhR5Fc0/NrBRwdnEgH08eEHIfgFiNsbDbK+HWq+2ZTt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", C.className = "style-scope ytd-masthead " + o, A.appendChild(C), I.prepend(A), Promise.resolve(A) +} +e(".ytd-masthead.settings-module_ludwigLogo__Wt9ZZ {\n width: var(--yt-icon-button-icon-width);\n}\n\n.settings-module_ludwigSettingsPopup__Mfv9p {\n width: 400px;\n height: 600px;\n position: fixed;\n top: 56px;\n right: 0px;\n z-index: 9999;\n box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);\n}"); +async function a() { + setInterval((async () => { + await async function() { + const g = await m.settings.get("chatStyles"), + I = e$3(); + return g && I + }() ? document.body.setAttribute("data-mogul-chat-styles", "") : document.body.removeAttribute("data-mogul-chat-styles"); + }), 250); +} +e('/* Overwrite colors on verified/owner names */\nyt-live-chat-author-chip[is-highlighted] #author-name.owner.yt-live-chat-author-chip,\n#author-name.owner.yt-live-chat-author-chip {\n color: var(--yt-live-chat-author-chip-owner-text-color) !important;\n}\n\nyt-live-chat-author-chip[is-highlighted] #author-name.yt-live-chat-author-chip {\n color: var(--yt-live-chat-author-chip-verified-text-color) !important;\n}\n\n\nbody[data-mogul-chat-styles] #author-photo.yt-live-chat-text-message-renderer {\n\tdisplay: none;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-text-message-renderer {\n\tmin-height: 24px;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-chip {\n\tdirection: rtl;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-chip::before {\n\tcontent: ":";\n}\n\nbody[data-mogul-chat-styles] #author-name.member.yt-live-chat-author-chip,\n#author-name.moderator.yt-live-chat-author-chip {\n font-weight: 800 !important;\n}\n\nbody[data-mogul-chat-styles] yt-live-chat-author-badge-renderer.yt-live-chat-author-chip {\n margin: 0 4px 0 0 !important;\n}\n\n#message.yt-live-chat-text-message-renderer .emoji.yt-live-chat-text-message-renderer {\n width: auto !important;\n}'), e$1((() => { + const g = null !== document.querySelector("yt-live-chat-app"); + new o$1, e$2("content/youtube/inject.js"), g ? a() : c(); +})); \ No newline at end of file diff --git a/content/youtube/inject.js b/content/youtube/inject.js index f713d3d..b738650 100644 --- a/content/youtube/inject.js +++ b/content/youtube/inject.js @@ -1,16 +1,427 @@ -import { e } from '../../index-6137f488.js'; -import { e as e$2 } from '../../background.injected-af36b849.js'; -import { n, e as e$4 } from '../../get_stream_details-b6177000.js'; -import { d as dt, t } from '../../parse_token.util-ed270559.js'; -import { e as e$3 } from '../../fetch_youtube-71c76849.js'; -import { s } from '../../router.interface-6cdbc015.js'; -import { e as e$1 } from '../../style-inject.es-a0e1a0ba.js'; +import { + e +} from '../../index-6137f488.js'; +import { + e as e$2 +} from '../../background.injected-af36b849.js'; +import { + n, + e as e$4 +} from '../../get_stream_details-b6177000.js'; +import { + d as dt, + t +} from '../../parse_token.util-ed270559.js'; +import { + e as e$3 +} from '../../fetch_youtube-71c76849.js'; +import { + s +} from '../../router.interface-6cdbc015.js'; +import { + e as e$1 +} from '../../style-inject.es-a0e1a0ba.js'; -function u(t){if(!t)return 0;t=t.toLowerCase();const e=/\((.+)\)/.exec(t);if(!e)return 1;const n=e[1].split(/\s/),i=parseInt(n[0]);return isNaN(i)?0:n[1].startsWith("year")?12*parseInt(n[0]):parseInt(n[0])}function d(t,e){const n=e;for(let e=0;et)return n[e-1][1];return n[n.length-1][1]}function l(t,e,n,i){const a=e(t.authorExternalChannelId);!function(t,e){(null==e?void 0:e.a)&&(t.authorName={simpleText:e.a});}(t,a),function(t,e){var n,i;t.authorBadges||(t.authorBadges=[]);for(const a of t.authorBadges){const t=a.liveChatAuthorBadgeRenderer;(null===(n=t.icon)||void 0===n?void 0:n.iconType)?t._mtvType=null===(i=t.icon)||void 0===i?void 0:i.iconType.toLowerCase():t.customThumbnail&&(t._mtvType="member"),"moderator"===t._mtvType&&(delete t.icon,t._mtvType="moderator",t.customThumbnail={thumbnails:[{url:e,width:18,height:18}]});}}(t,i),function(t,e,n){if((null==n?void 0:n.b)&&!(n.b<=0))for(const i of t.authorBadges){const t=i.liveChatAuthorBadgeRenderer;if("member"!==t._mtvType)continue;const a=u(t.tooltip);if(0===a)continue;const o=a+n.b,r=`Member (${o} months)`,s=d(o,e);t.customThumbnail=s,delete t.icon,t.tooltip=r,t.accessibility.accessibilityData.label=r;}}(t,n,a);}const h=/[\s.,?!]/;function f(t){const e=[];let n=0;for(let i=0;i t) return n[e - 1][1]; + return n[n.length - 1][1] +} + +function l(t, e, n, i) { + const a = e(t.authorExternalChannelId); + ! function(t, e) { + (null == e ? void 0 : e.a) && (t.authorName = { + simpleText: e.a + }); + }(t, a), + function(t, e) { + var n, i; + t.authorBadges || (t.authorBadges = []); + for (const a of t.authorBadges) { + const t = a.liveChatAuthorBadgeRenderer; + (null === (n = t.icon) || void 0 === n ? void 0 : n.iconType) ? t._mtvType = null === (i = t.icon) || void 0 === i ? void 0 : i.iconType.toLowerCase(): t.customThumbnail && (t._mtvType = "member"), "moderator" === t._mtvType && (delete t.icon, t._mtvType = "moderator", t.customThumbnail = { + thumbnails: [{ + url: e, + width: 18, + height: 18 + }] + }); + } + }(t, i), + function(t, e, n) { + if ((null == n ? void 0 : n.b) && !(n.b <= 0)) + for (const i of t.authorBadges) { + const t = i.liveChatAuthorBadgeRenderer; + if ("member" !== t._mtvType) continue; + const a = u(t.tooltip); + if (0 === a) continue; + const o = a + n.b, + r = `Member (${o} months)`, + s = d(o, e); + t.customThumbnail = s, delete t.icon, t.tooltip = r, t.accessibility.accessibilityData.label = r; + } + }(t, n, a); +} +const h = /[\s.,?!]/; + +function f(t) { + const e = []; + let n = 0; + for (let i = 0; i < t.length - 1; i++) h.test(t[i]) !== h.test(t[i + 1]) && (e.push(t.substring(n, i + 1)), n = i + 1); + return e.push(t.substring(n)), e +} + +function m(t$1) { + let e; + if (t$1.provider === t.Twitch) e = `https://static-cdn.jtvnw.net/emoticons/v2/${t$1.id}/static/dark/1.0`; + else if (t$1.provider === t.FFZ) e = `https://cdn.frankerfacez.com/emote/${t$1.id}/1`; + else { + if (t$1.provider !== t.BTTV) return; + e = `https://cdn.betterttv.net/emote/${t$1.id}/1x`; + } + return { + emojiId: "mogultv-" + t$1.name + "-" + t$1.id, + image: { + thumbnails: [{ + url: e + }], + accessibility: { + accessibilityData: { + label: t$1.name + } + } + }, + isCustomEmoji: !0, + searchTerms: [t$1.name], + shortcuts: [":" + t$1.name + ":", t$1.name] + } +} +const g = ["#ff0000", "#009000", "#b22222", "#ff7f50", "#9acd32", "#ff4500", "#2e8b57", "#daa520", "#d2691e", "#5f9ea0", "#1e90ff", "#ff69b4", "#00ff7f", "#a244f9"]; /*! * cookie * Copyright(c) 2012-2014 Roman Shtylman * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed */ -var v=function(t,e){if("string"!=typeof t)throw new TypeError("argument str must be a string");for(var n={},i=e||{},a=t.split(p),o=i.decode||y,r=0;rthis.gatewayService.getUserInfo(t)),this.gatewayService.badgeList,"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV/TiiIVBzuIOGRonSyIijpqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxc3NSdJES/5cUWsR4cNyPd/ced+8AoVFhmhUaAzTdNtPJhJjNrYrdrwgjBGAaMZlZxpwkpeA7vu4R4OtdnGf5n/tz9Kl5iwEBkXiWGaZNvEE8tWkbnPeJI6wkq8TnxKMmXZD4keuKx2+ciy4LPDNiZtLzxBFisdjBSgezkqkRTxJHVU2nfCHrscp5i7NWqbHWPfkLw3l9ZZnrNIeRxCKWIEGEghrKqMBGnFadFAtp2k/4+Idcv0QuhVxlMHIsoAoNsusH/4Pf3VqFiXEvKZwAul4c5yMGdO8CzbrjfB87TvMECD4DV3rbX20AM5+k19ta9Ajo3wYurtuasgdc7gCDT4Zsyq4UpCkUCsD7GX1TDhi4BXrXvN5a+zh9ADLUVeoGODgERoqUve7z7p7O3v490+rvB3pIcqqJKL5aAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5QwEARQDdqq2HwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAGkSURBVDjLpdSxS5tBGMfx7+V9JamLGbSQNNAQdBBJhZKWLPkHxKmQEgd9xUFwCRQKHe1cKHSztCCmLyQlkriULu2kSyBQkCCCg0bQCJrhTSUxoW+8DuLRNPqq8aa7hx8f7nk4TpDXDCQfAC+9rTKCt4KctgcEnZKJ/pcYoRmG+oewz21Wdlb4+PvzvxFLvwlJD5vEx+Lomg5A6ahE/nTt/5hXd0Le+98x9WRKnUtHJSYKkxzLalfW5djSaKILOZCHqvZQDLIwMO8MPdOf4h/wq3Or3epAAuIRP6M/MEYMZyjY1zm6SCBC8XlBId+j3wj7wuiui+lcO6PVszxNu4lH93RiFHBrbsK+MAAnjRNnKBVaxq25u+qRQETt7bZNavfL9a2lQstMj08jhHB8idmtLF8b2atvdBUipaTVbqk2K7UKme0MrytvVEa/DWJumhi7c8QfvKD8p0zR/tV1O0FOk7dBblougE+Pl+6FKGijukGtWesZUZBZT5NcT2KdWT0hl8O2AK9ZT8M6xAZjzO8v3PFLkmVBTpsFuQgi2Nu/Ji3QXv0FPBynaffELJkAAAAASUVORK5CYII=");}}class T{constructor(t){this.gatewayService=t;}addTwitchEmotesToMessage(t){return function(t,e){const n=[];for(const i of t.runs)if("string"==typeof i.text){const{text:t}=i;let a=0,o=0;const r=f(t);let s=!1;for(const i of r){const r=e("🌝"===i?"Kappa":i);r&&(s=!0,a>0&&n.push({text:t.substring(o,a)}),n.push({emoji:r}),o=a+i.length),a+=i.length;}s?n.push({text:t.substring(o,a)}):n.push(i);}else if("🌝"===i.emoji.emojiId){const t=e("Kappa");t&&n.push({emoji:t});}else n.push(i);return t.runs=n,t}(t,(t=>this.gatewayService.getEmote(t)))}}class x extends e.exports.EventEmitter{constructor(t){super(),this.backgroundService=t,this.badgeList=[],this.emoteCache=new Map,t.getLiveStorageValue("auth.token",dt).then((t=>this.myUserInfo=t)),this.fetchUserInfo(),this.fetchEmotes(),this.fetchBadges(),setInterval((()=>{this.fetchUserInfo(),this.fetchEmotes(),this.fetchBadges();}),3e5);}async fetchBadges(){const t=await this.backgroundService.fetch("/gateway/badges");if(!s(t))return;const e=t.body.sort(((t,e)=>t.months-e.months));this.badgeList=e.map((t=>[t.months,{thumbnails:[{url:t.url,width:16,height:16}]}])),this.emit("badges",this.badgeList);}async fetchEmotes(){const t=await this.backgroundService.fetch("/gateway/emotes");if(s(t)){this.emoteCache.clear();for(const e of t.body){const t=m(e);t&&this.emoteCache.set(e.name,t);}this.emit("emotes",this.emoteCache);}}async fetchUserInfo(){const t=await this.backgroundService.fetch("/gateway/users");s(t)&&(this.infoCache=new Map(t.body),this.emit("users",this.infoCache));}getSerializedMetadata(t){const e=t.links.find((e=>e.prv===t.prv)),n={a:null==e?void 0:e.name,b:t.meta.sub,c:t.meta.col};return Object.values(n).filter((t=>void 0!==t)).length>0?n:void 0}getUserInfo(t){var e,n,i;if((null===(n=null===(e=this.myUserInfo)||void 0===e?void 0:e.value)||void 0===n?void 0:n.sub)===t){const t=this.getSerializedMetadata(this.myUserInfo.value);if(t)return t}return null===(i=this.infoCache)||void 0===i?void 0:i.get(t)}getEmote(t){var e;return null===(e=this.emoteCache)||void 0===e?void 0:e.get(t)}}async function I(t,n){await customElements.whenDefined(t);const i=customElements.get(t);if(!i)return void console.warn(`Polymer: ${t} not found`);const a=i.prototype[n.functionName];i.prototype[n.functionName]=function(...t){if(n.ludwigOnly&&!e$4())return a.apply(this,t);if(n.type===b.OverrideFunction)try{return n.function.apply(this,t)}catch(t){console.error(JSON.stringify(n)),console.error(t);}if(n.type===b.RunBefore)try{n.function.apply(this,t);}catch(t){console.error(t);}let i=a.apply(this,t);if(n.type===b.RunAfter)try{i=n.function.apply(this,[i]);}catch(t){console.error(t);}return i};}!function(t){t[t.OverrideFunction=0]="OverrideFunction",t[t.RunBefore=1]="RunBefore",t[t.RunAfter=2]="RunAfter";}(b||(b={}));const B=(t,e,{LudwigOnly:n})=>({functionName:t,function:e,ludwigOnly:n||!1,type:b.OverrideFunction}),E=(t,e,{LudwigOnly:n})=>({functionName:t,function:e,ludwigOnly:n||!1,type:b.RunBefore});function C(t,n,i){I("yt-live-chat-item-list-renderer",E("handleAddChatItemAction_",(function(e){e.item.liveChatTextMessageRenderer&&(t.addTwitchEmotesToMessage(e.item.liveChatTextMessageRenderer.message),n.addAliasesToMessage(e.item.liveChatTextMessageRenderer));}),{LudwigOnly:true})),I("yt-live-chat-text-input-field-renderer",((t,e,{LudwigOnly:n})=>({functionName:t,function:e,ludwigOnly:n||!1,type:b.RunAfter}))("calculateLiveChatRichMessageInput_",(function(t){var e;if(!(null==t?void 0:t.textSegments))return t;for(const n of t.textSegments)if(null===(e=n.emojiId)||void 0===e?void 0:e.startsWith("mogultv")){const[,t]=n.emojiId.split("-");delete n.emojiId,n.text=t;}return t}),{LudwigOnly:true})),i.on("emotes",(t=>{if(!e$4())return;const n=document.querySelector("yt-live-chat-item-list-renderer");if(null==n?void 0:n.emojiManager){if(n.emojiManager._mogulTvLoaded)return;n.emojiManager._mogulTvLoaded=!0,n.emojiManager.load([...t.values()]);}else console.warn("Cannot find chat list");}));}function S(t){return t?t._mtvType?t._mtvType:t.icon?t.icon.iconType.toLowerCase():t.customThumbnail?"member":"":""}async function M(t){I("yt-live-chat-author-badge-renderer",B("computeType_",(t=>S(t.liveChatAuthorBadgeRenderer)),{LudwigOnly:true})),I("yt-live-chat-author-chip",B("computeAuthorType_",(function(e){var n,i;const a=this.$["author-name"];if(a){let e;const o=null===(n=this.parentElement)||void 0===n?void 0:n.parentElement,r=null===(i=null==o?void 0:o.data)||void 0===i?void 0:i.authorExternalChannelId;if(r){const n=t.getUserInfo(r);(null==n?void 0:n.c)&&(e=n.c);}e||(e=function(t){const e=function(t){let e=0;if(0===t.length)return 0;for(let n=0;n{await n()?(document.body.setAttribute("data-mogul-theater-mode",""),i||window.dispatchEvent(new Event("resize")),i=!0):(i=!1,document.body.removeAttribute("data-mogul-theater-mode"));}),250);}(j),async function(t){if(!window.ytcfg)return;const e={key:window.ytcfg.get("INNERTUBE_API_KEY"),authUser:window.ytcfg.get("SESSION_INDEX"),pageId:window.ytcfg.get("DELEGATED_SESSION_ID"),href:window.location.href,context:window.ytcfg.get("INNERTUBE_CONTEXT")};n=await e$3(Object.assign(Object.assign({},e),{cookies:v(document.cookie)})),i=await t.fetch("/auth/@me"),(!n.success||!i.meta.isSuccess||n.data.id!==(null===(a=i.body)||void 0===a?void 0:a.sub))&&await t.fetch("/auth/login",e);var n,i,a;}(j),setInterval((()=>{const t=document.querySelector("ytd-live-chat-frame iframe");if(t&&!t.src.includes("QXZRwEzaeHNfDqtD")){const e=n();t.src+=`#QXZRwEzaeHNfDqtD=${encodeURIComponent(JSON.stringify(e))}`;}}),1e3);var L,O; +var v = function(t, e) { + if ("string" != typeof t) throw new TypeError("argument str must be a string"); + for (var n = {}, i = e || {}, a = t.split(p), o = i.decode || y, r = 0; r < a.length; r++) { + var s = a[r], + c = s.indexOf("="); + if (!(c < 0)) { + var u = s.substr(0, c).trim(), + d = s.substr(++c, s.length).trim(); + '"' == d[0] && (d = d.slice(1, -1)), null == n[u] && (n[u] = w(d, o)); + } + } + return n + }, + y = decodeURIComponent, + p = /; */; + +function w(t, e) { + try { + return e(t) + } catch (e) { + return t + } +} +var b; +class A { + constructor(t) { + this.gatewayService = t; + } + addAliasesToMessage(t) { + l(t, (t => this.gatewayService.getUserInfo(t)), this.gatewayService.badgeList, "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV/TiiIVBzuIOGRonSyIijpqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxc3NSdJES/5cUWsR4cNyPd/ced+8AoVFhmhUaAzTdNtPJhJjNrYrdrwgjBGAaMZlZxpwkpeA7vu4R4OtdnGf5n/tz9Kl5iwEBkXiWGaZNvEE8tWkbnPeJI6wkq8TnxKMmXZD4keuKx2+ciy4LPDNiZtLzxBFisdjBSgezkqkRTxJHVU2nfCHrscp5i7NWqbHWPfkLw3l9ZZnrNIeRxCKWIEGEghrKqMBGnFadFAtp2k/4+Idcv0QuhVxlMHIsoAoNsusH/4Pf3VqFiXEvKZwAul4c5yMGdO8CzbrjfB87TvMECD4DV3rbX20AM5+k19ta9Ajo3wYurtuasgdc7gCDT4Zsyq4UpCkUCsD7GX1TDhi4BXrXvN5a+zh9ADLUVeoGODgERoqUve7z7p7O3v490+rvB3pIcqqJKL5aAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAB3RJTUUH5QwEARQDdqq2HwAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAGkSURBVDjLpdSxS5tBGMfx7+V9JamLGbSQNNAQdBBJhZKWLPkHxKmQEgd9xUFwCRQKHe1cKHSztCCmLyQlkriULu2kSyBQkCCCg0bQCJrhTSUxoW+8DuLRNPqq8aa7hx8f7nk4TpDXDCQfAC+9rTKCt4KctgcEnZKJ/pcYoRmG+oewz21Wdlb4+PvzvxFLvwlJD5vEx+Lomg5A6ahE/nTt/5hXd0Le+98x9WRKnUtHJSYKkxzLalfW5djSaKILOZCHqvZQDLIwMO8MPdOf4h/wq3Or3epAAuIRP6M/MEYMZyjY1zm6SCBC8XlBId+j3wj7wuiui+lcO6PVszxNu4lH93RiFHBrbsK+MAAnjRNnKBVaxq25u+qRQETt7bZNavfL9a2lQstMj08jhHB8idmtLF8b2atvdBUipaTVbqk2K7UKme0MrytvVEa/DWJumhi7c8QfvKD8p0zR/tV1O0FOk7dBblougE+Pl+6FKGijukGtWesZUZBZT5NcT2KdWT0hl8O2AK9ZT8M6xAZjzO8v3PFLkmVBTpsFuQgi2Nu/Ji3QXv0FPBynaffELJkAAAAASUVORK5CYII="); + } +} +class T { + constructor(t) { + this.gatewayService = t; + } + addTwitchEmotesToMessage(t) { + return function(t, e) { + const n = []; + for (const i of t.runs) + if ("string" == typeof i.text) { + const { + text: t + } = i; + let a = 0, + o = 0; + const r = f(t); + let s = !1; + for (const i of r) { + const r = e("🌝" === i ? "Kappa" : i); + r && (s = !0, a > 0 && n.push({ + text: t.substring(o, a) + }), n.push({ + emoji: r + }), o = a + i.length), a += i.length; + } + s ? n.push({ + text: t.substring(o, a) + }) : n.push(i); + } else if ("🌝" === i.emoji.emojiId) { + const t = e("Kappa"); + t && n.push({ + emoji: t + }); + } else n.push(i); + return t.runs = n, t + }(t, (t => this.gatewayService.getEmote(t))) + } +} +class x extends e.exports.EventEmitter { + constructor(t) { + super(), this.backgroundService = t, this.badgeList = [], this.emoteCache = new Map, t.getLiveStorageValue("auth.token", dt).then((t => this.myUserInfo = t)), this.fetchUserInfo(), this.fetchEmotes(), this.fetchBadges(), setInterval((() => { + this.fetchUserInfo(), this.fetchEmotes(), this.fetchBadges(); + }), 3e5); + } + async fetchBadges() { + const t = await this.backgroundService.fetch("/gateway/badges"); + if (!s(t)) return; + const e = t.body.sort(((t, e) => t.months - e.months)); + this.badgeList = e.map((t => [t.months, { + thumbnails: [{ + url: t.url, + width: 16, + height: 16 + }] + }])), this.emit("badges", this.badgeList); + } + async fetchEmotes() { + const t = await this.backgroundService.fetch("/gateway/emotes"); + if (s(t)) { + this.emoteCache.clear(); + for (const e of t.body) { + const t = m(e); + t && this.emoteCache.set(e.name, t); + } + this.emit("emotes", this.emoteCache); + } + } + async fetchUserInfo() { + const t = await this.backgroundService.fetch("/gateway/users"); + s(t) && (this.infoCache = new Map(t.body), this.emit("users", this.infoCache)); + } + getSerializedMetadata(t) { + const e = t.links.find((e => e.prv === t.prv)), + n = { + a: null == e ? void 0 : e.name, + b: t.meta.sub, + c: t.meta.col + }; + return Object.values(n).filter((t => void 0 !== t)).length > 0 ? n : void 0 + } + getUserInfo(t) { + var e, n, i; + if ((null === (n = null === (e = this.myUserInfo) || void 0 === e ? void 0 : e.value) || void 0 === n ? void 0 : n.sub) === t) { + const t = this.getSerializedMetadata(this.myUserInfo.value); + if (t) return t + } + return null === (i = this.infoCache) || void 0 === i ? void 0 : i.get(t) + } + getEmote(t) { + var e; + return null === (e = this.emoteCache) || void 0 === e ? void 0 : e.get(t) + } +} +async function I(t, n) { + await customElements.whenDefined(t); + const i = customElements.get(t); + if (!i) return void console.warn(`Polymer: ${t} not found`); + const a = i.prototype[n.functionName]; + i.prototype[n.functionName] = function(...t) { + if (n.ludwigOnly && !e$4()) return a.apply(this, t); + if (n.type === b.OverrideFunction) try { + return n.function.apply(this, t) + } catch (t) { + console.error(JSON.stringify(n)), console.error(t); + } + if (n.type === b.RunBefore) try { + n.function.apply(this, t); + } catch (t) { + console.error(t); + } + let i = a.apply(this, t); + if (n.type === b.RunAfter) try { + i = n.function.apply(this, [i]); + } catch (t) { + console.error(t); + } + return i + }; +}! function(t) { + t[t.OverrideFunction = 0] = "OverrideFunction", t[t.RunBefore = 1] = "RunBefore", t[t.RunAfter = 2] = "RunAfter"; +}(b || (b = {})); +const B = (t, e, { + LudwigOnly: n + }) => ({ + functionName: t, + function: e, + ludwigOnly: n || !1, + type: b.OverrideFunction + }), + E = (t, e, { + LudwigOnly: n + }) => ({ + functionName: t, + function: e, + ludwigOnly: n || !1, + type: b.RunBefore + }); + +function C(t, n, i) { + I("yt-live-chat-item-list-renderer", E("handleAddChatItemAction_", (function(e) { + e.item.liveChatTextMessageRenderer && (t.addTwitchEmotesToMessage(e.item.liveChatTextMessageRenderer.message), n.addAliasesToMessage(e.item.liveChatTextMessageRenderer)); + }), { + LudwigOnly: true + })), I("yt-live-chat-text-input-field-renderer", ((t, e, { + LudwigOnly: n + }) => ({ + functionName: t, + function: e, + ludwigOnly: n || !1, + type: b.RunAfter + }))("calculateLiveChatRichMessageInput_", (function(t) { + var e; + if (!(null == t ? void 0 : t.textSegments)) return t; + for (const n of t.textSegments) + if (null === (e = n.emojiId) || void 0 === e ? void 0 : e.startsWith("mogultv")) { + const [, t] = n.emojiId.split("-"); + delete n.emojiId, n.text = t; + } return t + }), { + LudwigOnly: true + })), i.on("emotes", (t => { + if (!e$4()) return; + const n = document.querySelector("yt-live-chat-item-list-renderer"); + if (null == n ? void 0 : n.emojiManager) { + if (n.emojiManager._mogulTvLoaded) return; + n.emojiManager._mogulTvLoaded = !0, n.emojiManager.load([...t.values()]); + } else console.warn("Cannot find chat list"); + })); +} + +function S(t) { + return t ? t._mtvType ? t._mtvType : t.icon ? t.icon.iconType.toLowerCase() : t.customThumbnail ? "member" : "" : "" +} +async function M(t) { + I("yt-live-chat-author-badge-renderer", B("computeType_", (t => S(t.liveChatAuthorBadgeRenderer)), { + LudwigOnly: true + })), I("yt-live-chat-author-chip", B("computeAuthorType_", (function(e) { + var n, i; + const a = this.$["author-name"]; + if (a) { + let e; + const o = null === (n = this.parentElement) || void 0 === n ? void 0 : n.parentElement, + r = null === (i = null == o ? void 0 : o.data) || void 0 === i ? void 0 : i.authorExternalChannelId; + if (r) { + const n = t.getUserInfo(r); + (null == n ? void 0 : n.c) && (e = n.c); + } + e || (e = function(t) { + const e = function(t) { + let e = 0; + if (0 === t.length) return 0; + for (let n = 0; n < t.length; n++) e = (e << 5) - e + t.charCodeAt(n), e |= 0; + return e + }(t); + return g[(e % g.length + g.length) % g.length] + }(this.authorName.simpleText)), a.style.color = e; + } + return function(t) { + if (!t) return ""; + for (const e of t) { + if (!e.liveChatAuthorBadgeRenderer) continue; + const t = S(e.liveChatAuthorBadgeRenderer); + if ("verified" !== t) return t + } + return "" + }(e) + }), { + LudwigOnly: true + })); +} +e$1("\n/* Make the masthead transparent unless we are hovering it */\nbody[data-mogul-theater-mode] #masthead-container {\n opacity: 0.1;\n transition: opacity .2s ease;\n}\n\nbody[data-mogul-theater-mode] #masthead-container:hover {\n opacity: 1;\n}\n\n\n@media screen and (min-width: 1014px) {\n /* Make chat fill screen vertically */\n body[data-mogul-theater-mode] #chat.ytd-watch-flexy {\n height: calc(100vh - 56px) !important;\n width: var(--ytd-watch-flexy-sidebar-width);\n position: absolute;\n top: 56px;\n right: 0;\n }\n\n body[data-mogul-theater-mode] #player-theater-container.ytd-watch-flexy {\n width: calc(100vw - var(--ytd-watch-flexy-sidebar-width) - var(--ytd-watch-flexy-scrollbar-width)) !important;\n max-width: calc(100vw - var(--ytd-watch-flexy-sidebar-width) - var(--ytd-watch-flexy-scrollbar-width)) !important;\n height: calc(100vh - 56px) !important;\n max-height: calc(100vh - 56px) !important;\n }\n}"); +const R = null !== document.querySelector("yt-live-chat-app"), + j = new e$2; +if (R) { + const t = new x(j), + e = new T(t), + n = new A(t); + L = j, C(e, n, O = t), async function(t) { + const e = await t.getLiveStorageValue("settings.chatBatching"); + I("yt-timed-continuation", E("dataChanged_", (function() { + e.value && (this.data.timeoutMs /= 3 * Math.random() + 2); + }), { + LudwigOnly: !0 + })), I("yt-live-chat-renderer", E("preprocessActions_", (function(t) { + const n = Object.getPrototypeOf(this.smoothedQueue_); + for (const t in n) + if (t.includes("emitSmoothedMessages")) { + n[t] = function() { + if (this.nextUpdateId_ = null, this.messageQueue_.length) { + let i = 1e4; + this.estimatedUpdateInterval_ && (i = this.estimatedUpdateInterval_ - Date.now() + this.lastUpdateTime_); + const a = this.messageQueue_.length < i / 80 ? 1 : Math.ceil(this.messageQueue_.length / (i / 80)), + o = this.messageQueue_.splice(0, a); + if (this.callback && this.callback(o[0]), this.messageQueue_.length) { + let o = 1; + e.value || (1 === a ? (o = i / this.messageQueue_.length, o *= Math.random() + .5, o = Math.min(1e3, o), o = Math.max(80, o)) : o = 80), this.nextUpdateId_ = window.setTimeout(n[t].bind(this), o); + } + } + }; + break + } return t + }), { + LudwigOnly: !0 + })); + }(L), M(O); +} else !async function(t) { + async function n() { + const n = document.querySelector("ytd-watch-flexy"), + i = (null == n ? void 0 : n.hasAttribute("theater")) || !1, + a = (null == n ? void 0 : n.hasAttribute("fullscreen")) || !1, + o = await t.getStorage("settings.theaterMode"), + r = e$4(!1); + return i && !a && o && r + } + let i = await n(); + setInterval((async () => { + await n() ? (document.body.setAttribute("data-mogul-theater-mode", ""), i || window.dispatchEvent(new Event("resize")), i = !0) : (i = !1, document.body.removeAttribute("data-mogul-theater-mode")); + }), 250); +}(j), async function(t) { + if (!window.ytcfg) return; + const e = { + key: window.ytcfg.get("INNERTUBE_API_KEY"), + authUser: window.ytcfg.get("SESSION_INDEX"), + pageId: window.ytcfg.get("DELEGATED_SESSION_ID"), + href: window.location.href, + context: window.ytcfg.get("INNERTUBE_CONTEXT") + }; + n = await e$3(Object.assign(Object.assign({}, e), { + cookies: v(document.cookie) + })), i = await t.fetch("/auth/@me"), (!n.success || !i.meta.isSuccess || n.data.id !== (null === (a = i.body) || void 0 === a ? void 0 : a.sub)) && await t.fetch("/auth/login", e); + var n, i, a; +}(j), setInterval((() => { + const t = document.querySelector("ytd-live-chat-frame iframe"); + if (t && !t.src.includes("QXZRwEzaeHNfDqtD")) { + const e = n(); + t.src += `#QXZRwEzaeHNfDqtD=${encodeURIComponent(JSON.stringify(e))}`; + } +}), 1e3); +var L, O; \ No newline at end of file diff --git a/fetch_youtube-71c76849.js b/fetch_youtube-71c76849.js index e50481a..e6ec1f2 100644 --- a/fetch_youtube-71c76849.js +++ b/fetch_youtube-71c76849.js @@ -1,3 +1,62 @@ -async function e(e){const t=await async function(e,t){const o=t.cookies.SAPISID||t.cookies["__Secure-3PAPISID"];if(!o)return {success:!1,code:400,message:"Missing cookie"};const n=new URL(t.href).origin,c=Math.floor(Date.now()/1e3),a=await async function(e){const t=await crypto.subtle.digest("SHA-1",(new TextEncoder).encode(e));return Array.from(new Uint8Array(t)).map((e=>e.toString(16).padStart(2,"0"))).join("")}(`${c} ${o} ${n}`),s={"x-origin":n,authorization:`SAPISIDHASH ${c}_${a}`,"x-goog-authuser":t.authUser,cookie:Object.entries(t.cookies).map((([e,t])=>`${e}=${t}`)).join(";")};t.pageId&&(s["x-goog-pageid"]=t.pageId);const i=await fetch(`https://www.youtube.com${e}?key=${t.key}`,{method:"POST",headers:s,body:JSON.stringify({context:t.context})});return {success:!0,data:await i.json()}}("/youtubei/v1/account/account_menu",e);if(!t.success)return t;const o=t.data;try{const e=o.actions[0].openPopupAction.popup.multiPageMenuRenderer,t=e.header.activeAccountHeaderRenderer,n=e.sections[0].multiPageMenuSectionRenderer.items[0].compactLinkRenderer.navigationEndpoint.browseEndpoint.browseId.trim().replace(/\n/g,"");return /^UC.{22}$/.test(n)?{success:!0,data:{id:n,profile:t.accountPhoto.thumbnails[0].url,username:t.accountName.simpleText}}:{success:!1,code:400,message:"Failed to authenticate"}}catch(e){return {success:!1,code:400,message:"Failed to authenticate"}}} +async function e(e) { + const t = await async function(e, t) { + const o = t.cookies.SAPISID || t.cookies["__Secure-3PAPISID"]; + if (!o) return { + success: !1, + code: 400, + message: "Missing cookie" + }; + const n = new URL(t.href).origin, + c = Math.floor(Date.now() / 1e3), + a = await async function(e) { + const t = await crypto.subtle.digest("SHA-1", (new TextEncoder).encode(e)); + return Array.from(new Uint8Array(t)).map((e => e.toString(16).padStart(2, "0"))).join("") + }(`${c} ${o} ${n}`), s = { + "x-origin": n, + authorization: `SAPISIDHASH ${c}_${a}`, + "x-goog-authuser": t.authUser, + cookie: Object.entries(t.cookies).map((([e, t]) => `${e}=${t}`)).join(";") + }; + t.pageId && (s["x-goog-pageid"] = t.pageId); + const i = await fetch(`https://www.youtube.com${e}?key=${t.key}`, { + method: "POST", + headers: s, + body: JSON.stringify({ + context: t.context + }) + }); + return { + success: !0, + data: await i.json() + } + }("/youtubei/v1/account/account_menu", e); + if (!t.success) return t; + const o = t.data; + try { + const e = o.actions[0].openPopupAction.popup.multiPageMenuRenderer, + t = e.header.activeAccountHeaderRenderer, + n = e.sections[0].multiPageMenuSectionRenderer.items[0].compactLinkRenderer.navigationEndpoint.browseEndpoint.browseId.trim().replace(/\n/g, ""); + return /^UC.{22}$/.test(n) ? { + success: !0, + data: { + id: n, + profile: t.accountPhoto.thumbnails[0].url, + username: t.accountName.simpleText + } + } : { + success: !1, + code: 400, + message: "Failed to authenticate" + } + } catch (e) { + return { + success: !1, + code: 400, + message: "Failed to authenticate" + } + } +} -export { e }; +export { + e +}; \ No newline at end of file diff --git a/get_stream_details-b6177000.js b/get_stream_details-b6177000.js index d118636..16627cf 100644 --- a/get_stream_details-b6177000.js +++ b/get_stream_details-b6177000.js @@ -1,3 +1,25 @@ -function n(){let n=function(){var n,e;const t=document.querySelector("ytd-page-manager");return null===(e=null===(n=null==t?void 0:t.data)||void 0===n?void 0:n.playerResponse)||void 0===e?void 0:e.videoDetails}();return n||(n=function(){const n=new URLSearchParams(window.location.hash.substring(1)).get("QXZRwEzaeHNfDqtD");if(n)try{return JSON.parse(n)}catch(n){return}}(),n||void 0)}function e(e=!0){const t=n();return t?"UCrPseYLGpNygVi34QpGNqpA"===t.channelId&&t.isLiveContent:e} +function n() { + let n = function() { + var n, e; + const t = document.querySelector("ytd-page-manager"); + return null === (e = null === (n = null == t ? void 0 : t.data) || void 0 === n ? void 0 : n.playerResponse) || void 0 === e ? void 0 : e.videoDetails + }(); + return n || (n = function() { + const n = new URLSearchParams(window.location.hash.substring(1)).get("QXZRwEzaeHNfDqtD"); + if (n) try { + return JSON.parse(n) + } catch (n) { + return + } + }(), n || void 0) +} -export { e, n }; +function e(e = !0) { + const t = n(); + return t ? "UCrPseYLGpNygVi34QpGNqpA" === t.channelId && t.isLiveContent : e +} + +export { + e, + n +}; \ No newline at end of file diff --git a/index-6137f488.js b/index-6137f488.js index f440fb4..8e95c66 100644 --- a/index-6137f488.js +++ b/index-6137f488.js @@ -1,3 +1,113 @@ -var e={exports:{}};!function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}function o(e,t,n){this.fn=e,this.context=t,this.once=n||!1;}function s(e,t,r,s,i){if("function"!=typeof r)throw new TypeError("The listener must be a function");var c=new o(r,s||e,i),f=n?n+t:t;return e._events[f]?e._events[f].fn?e._events[f]=[e._events[f],c]:e._events[f].push(c):(e._events[f]=c,e._eventsCount++),e}function i(e,t){0==--e._eventsCount?e._events=new r:delete e._events[t];}function c(){this._events=new r,this._eventsCount=0;}Object.create&&(r.prototype=Object.create(null),(new r).__proto__||(n=!1)),c.prototype.eventNames=function(){var e,r,o=[];if(0===this._eventsCount)return o;for(r in e=this._events)t.call(e,r)&&o.push(n?r.slice(1):r);return Object.getOwnPropertySymbols?o.concat(Object.getOwnPropertySymbols(e)):o},c.prototype.listeners=function(e){var t=n?n+e:e,r=this._events[t];if(!r)return [];if(r.fn)return [r.fn];for(var o=0,s=r.length,i=new Array(s);o=0||(a[n]=t[n]);return a}function l(t){return null!==t&&"object"==typeof t&&t.constructor===Object}function d(t,e,n={clone:!0}){const r=n.clone?f({},t):t;return l(t)&&l(e)&&Object.keys(e).forEach((a=>{"__proto__"!==a&&(l(e[a])&&a in t&&l(t[a])?r[a]=d(t[a],e[a],n):r[a]=e[a]);})),r}function p(t){let e="https://mui.com/production-error/?code="+t;for(let t=1;t`@media (min-width:${m[t]}px)`};function y(t,e,n){const r=t.theme||{};if(Array.isArray(e)){const t=r.breakpoints||b;return e.reduce(((r,a,i)=>(r[t.up(t.keys[i])]=n(e[i]),r)),{})}if("object"==typeof e){const t=r.breakpoints||b;return Object.keys(e).reduce(((r,a)=>{if(-1!==Object.keys(t.values||m).indexOf(a)){r[t.up(a)]=n(e[a],a);}else {const t=a;r[t]=e[t];}return r}),{})}return n(e)}function x(t={}){var e;return (null==t||null==(e=t.keys)?void 0:e.reduce(((e,n)=>(e[t.up(n)]={},e)),{}))||{}}function k(t,e){return t.reduce(((t,e)=>{const n=t[e];return (!n||0===Object.keys(n).length)&&delete t[e],t}),e)}function v(t,e){return e&&"string"==typeof e?e.split(".").reduce(((t,e)=>t&&t[e]?t[e]:null),t):null}function O(t,e,n,r=n){let a;return a="function"==typeof t?t(n):Array.isArray(t)?t[n]||r:v(t,n)||r,e&&(a=e(a)),a}function A(t){const{prop:e,cssProperty:n=t.prop,themeKey:r,transform:a}=t,i=t=>{if(null==t[e])return null;const i=t[e],o=v(t.theme,r)||{};return y(t,i,(t=>{let r=O(o,a,t);return t===r&&"string"==typeof t&&(r=O(o,a,`${e}${"default"===t?"":g(t)}`,t)),!1===n?r:{[n]:r}}))};return i.propTypes={},i.filterProps=[e],i}const $={m:"margin",p:"padding"},w={t:"Top",r:"Right",b:"Bottom",l:"Left",x:["Left","Right"],y:["Top","Bottom"]},S={marginX:"mx",marginY:"my",paddingX:"px",paddingY:"py"},T=function(t){const e={};return n=>(void 0===e[n]&&(e[n]=t(n)),e[n])}((t=>{if(t.length>2){if(!S[t])return [t];t=S[t];}const[e,n]=t.split(""),r=$[e],a=w[n]||"";return Array.isArray(a)?a.map((t=>r+t)):[r+a]})),M=["m","mt","mr","mb","ml","mx","my","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","marginInline","marginInlineStart","marginInlineEnd","marginBlock","marginBlockStart","marginBlockEnd","p","pt","pr","pb","pl","px","py","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","paddingInline","paddingInlineStart","paddingInlineEnd","paddingBlock","paddingBlockStart","paddingBlockEnd"];function j(t,e,n,r){const a=v(t,e)||n;return "number"==typeof a?t=>"string"==typeof t?t:a*t:Array.isArray(a)?t=>"string"==typeof t?t:a[t]:"function"==typeof a?a:()=>{}}function B(t){return j(t,"spacing",8)}function I(t,e){if("string"==typeof e||null==e)return e;const n=t(Math.abs(e));return e>=0?n:"number"==typeof n?-n:`-${n}`}function R(t,e,n,r){if(-1===e.indexOf(n))return null;const a=function(t,e){return n=>t.reduce(((t,r)=>(t[r]=I(e,n),t)),{})}(T(n),r);return y(t,t[n],a)}function z(t){return function(t,e){const n=B(t.theme);return Object.keys(t).map((r=>R(t,e,r,n))).reduce(h,{})}(t,M)}z.propTypes={},z.filterProps=M;const F=["values","unit","step"];var W={borderRadius:4};const E=["breakpoints","palette","spacing","shape"];function L(t={},...e){const{breakpoints:n={},palette:r={},spacing:a,shape:i={}}=t,o=u(t,E),s=function(t){const{values:e={xs:0,sm:600,md:900,lg:1200,xl:1536},unit:n="px",step:r=5}=t,a=u(t,F),i=Object.keys(e);function o(t){return `@media (min-width:${"number"==typeof e[t]?e[t]:t}${n})`}function s(t){return `@media (max-width:${("number"==typeof e[t]?e[t]:t)-r/100}${n})`}function c(t,a){const o=i.indexOf(a);return `@media (min-width:${"number"==typeof e[t]?e[t]:t}${n}) and (max-width:${(-1!==o&&"number"==typeof e[i[o]]?e[i[o]]:a)-r/100}${n})`}return f({keys:i,values:e,up:o,down:s,between:c,only:function(t){return i.indexOf(t)+1(0===t.length?[1]:t).map((t=>{const n=e(t);return "number"==typeof n?`${n}px`:n})).join(" ");return n.mui=!0,n}(a);let l=d({breakpoints:s,direction:"ltr",components:{},palette:f({mode:"light"},r),spacing:c,shape:f({},W,i)},o);return l=e.reduce(((t,e)=>d(t,e)),l),l}function C(t,e=0,n=1){return Math.min(Math.max(e,t),n)}function H(t){if(t.type)return t;if("#"===t.charAt(0))return H(function(t){t=t.substr(1);const e=new RegExp(`.{1,${t.length>=6?2:1}}`,"g");let n=t.match(e);return n&&1===n[0].length&&(n=n.map((t=>t+t))),n?`rgb${4===n.length?"a":""}(${n.map(((t,e)=>e<3?parseInt(t,16):Math.round(parseInt(t,16)/255*1e3)/1e3)).join(", ")})`:""}(t));const e=t.indexOf("("),n=t.substring(0,e);if(-1===["rgb","rgba","hsl","hsla","color"].indexOf(n))throw new Error(p(9,t));let r,a=t.substring(e+1,t.length-1);if("color"===n){if(a=a.split(" "),r=a.shift(),4===a.length&&"/"===a[3].charAt(0)&&(a[3]=a[3].substr(1)),-1===["srgb","display-p3","a98-rgb","prophoto-rgb","rec-2020"].indexOf(r))throw new Error(p(10,r))}else a=a.split(",");return a=a.map((t=>parseFloat(t))),{type:n,values:a,colorSpace:r}}function P(t){const{type:e,colorSpace:n}=t;let{values:r}=t;return -1!==e.indexOf("rgb")?r=r.map(((t,e)=>e<3?parseInt(t,10):t)):-1!==e.indexOf("hsl")&&(r[1]=`${r[1]}%`,r[2]=`${r[2]}%`),r=-1!==e.indexOf("color")?`${n} ${r.join(" ")}`:`${r.join(", ")}`,`${e}(${r})`}function _(t){let e="hsl"===(t=H(t)).type?H(function(t){t=H(t);const{values:e}=t,n=e[0],r=e[1]/100,a=e[2]/100,i=r*Math.min(a,1-a),o=(t,e=(t+n/30)%12)=>a-i*Math.max(Math.min(e-3,9-e,1),-1);let s="rgb";const c=[Math.round(255*o(0)),Math.round(255*o(8)),Math.round(255*o(4))];return "hsla"===t.type&&(s+="a",c.push(e[3])),P({type:s,values:c})}(t)).values:t.values;return e=e.map((e=>("color"!==t.type&&(e/=255),e<=.03928?e/12.92:((e+.055)/1.055)**2.4))),Number((.2126*e[0]+.7152*e[1]+.0722*e[2]).toFixed(3))}function V(t,e){return t=H(t),e=C(e),"rgb"!==t.type&&"hsl"!==t.type||(t.type+="a"),"color"===t.type?t.values[3]=`/${e}`:t.values[3]=e,P(t)}function X(t,e){if(t=H(t),e=C(e),-1!==t.type.indexOf("hsl"))t.values[2]*=1-e;else if(-1!==t.type.indexOf("rgb")||-1!==t.type.indexOf("color"))for(let n=0;n<3;n+=1)t.values[n]*=1-e;return P(t)}function Y(t,e){if(t=H(t),e=C(e),-1!==t.type.indexOf("hsl"))t.values[2]+=(100-t.values[2])*e;else if(-1!==t.type.indexOf("rgb"))for(let n=0;n<3;n+=1)t.values[n]+=(255-t.values[n])*e;else if(-1!==t.type.indexOf("color"))for(let n=0;n<3;n+=1)t.values[n]+=(1-t.values[n])*e;return P(t)}const N=["mode","contrastThreshold","tonalOffset"],U={text:{primary:"rgba(0, 0, 0, 0.87)",secondary:"rgba(0, 0, 0, 0.6)",disabled:"rgba(0, 0, 0, 0.38)"},divider:"rgba(0, 0, 0, 0.12)",background:{paper:e.white,default:e.white},action:{active:"rgba(0, 0, 0, 0.54)",hover:"rgba(0, 0, 0, 0.04)",hoverOpacity:.04,selected:"rgba(0, 0, 0, 0.08)",selectedOpacity:.08,disabled:"rgba(0, 0, 0, 0.26)",disabledBackground:"rgba(0, 0, 0, 0.12)",disabledOpacity:.38,focus:"rgba(0, 0, 0, 0.12)",focusOpacity:.12,activatedOpacity:.12}},D={text:{primary:e.white,secondary:"rgba(255, 255, 255, 0.7)",disabled:"rgba(255, 255, 255, 0.5)",icon:"rgba(255, 255, 255, 0.5)"},divider:"rgba(255, 255, 255, 0.12)",background:{paper:"#121212",default:"#121212"},action:{active:e.white,hover:"rgba(255, 255, 255, 0.08)",hoverOpacity:.08,selected:"rgba(255, 255, 255, 0.16)",selectedOpacity:.16,disabled:"rgba(255, 255, 255, 0.3)",disabledBackground:"rgba(255, 255, 255, 0.12)",disabledOpacity:.38,focus:"rgba(255, 255, 255, 0.12)",focusOpacity:.12,activatedOpacity:.24}};function J(t,e,n,r){const a=r.light||r,i=r.dark||1.5*r;t[e]||(t.hasOwnProperty(n)?t[e]=t[n]:"light"===e?t.light=Y(t.main,a):"dark"===e&&(t.dark=X(t.main,i)));}function Z(t){const{mode:l="light",contrastThreshold:g=3,tonalOffset:h=.2}=t,m=u(t,N),b=t.primary||function(t="light"){return "dark"===t?{main:a[200],light:a[50],dark:a[400]}:{main:a[700],light:a[400],dark:a[800]}}(l),y=t.secondary||function(t="light"){return "dark"===t?{main:r[200],light:r[50],dark:r[400]}:{main:r[500],light:r[300],dark:r[700]}}(l),x=t.error||function(t="light"){return "dark"===t?{main:n[500],light:n[300],dark:n[700]}:{main:n[700],light:n[400],dark:n[800]}}(l),k=t.info||function(t="light"){return "dark"===t?{main:i[400],light:i[300],dark:i[700]}:{main:i[700],light:i[500],dark:i[900]}}(l),v=t.success||function(t="light"){return "dark"===t?{main:o[400],light:o[300],dark:o[700]}:{main:o[800],light:o[500],dark:o[900]}}(l),O=t.warning||function(t="light"){return "dark"===t?{main:s[400],light:s[300],dark:s[700]}:{main:"#ed6c02",light:s[500],dark:s[900]}}(l);function A(t){const e=function(t,e){const n=_(t),r=_(e);return (Math.max(n,r)+.05)/(Math.min(n,r)+.05)}(t,D.text.primary)>=g?D.text.primary:U.text.primary;return e}const $=({color:t,name:e,mainShade:n=500,lightShade:r=300,darkShade:a=700})=>{if(!(t=f({},t)).main&&t[n]&&(t.main=t[n]),!t.hasOwnProperty("main"))throw new Error(p(11,e?` (${e})`:"",n));if("string"!=typeof t.main)throw new Error(p(12,e?` (${e})`:"",JSON.stringify(t.main)));return J(t,"light",r,h),J(t,"dark",a,h),t.contrastText||(t.contrastText=A(t.main)),t},w={dark:D,light:U};return d(f({common:e,mode:l,primary:$({color:b,name:"primary"}),secondary:$({color:y,name:"secondary",mainShade:"A400",lightShade:"A200",darkShade:"A700"}),error:$({color:x,name:"error"}),warning:$({color:O,name:"warning"}),info:$({color:k,name:"info"}),success:$({color:v,name:"success"}),grey:c,contrastThreshold:g,getContrastText:A,augmentColor:$,tonalOffset:h},w[l]),m)}const q=["fontFamily","fontSize","fontWeightLight","fontWeightRegular","fontWeightMedium","fontWeightBold","htmlFontSize","allVariants","pxToRem"];const K={textTransform:"uppercase"},G='"Roboto", "Helvetica", "Arial", sans-serif';function Q(t,e){const n="function"==typeof e?e(t):e,{fontFamily:r=G,fontSize:a=14,fontWeightLight:i=300,fontWeightRegular:o=400,fontWeightMedium:s=500,fontWeightBold:c=700,htmlFontSize:l=16,allVariants:p,pxToRem:g}=n,h=u(n,q),m=a/14,b=g||(t=>t/l*m+"rem"),y=(t,e,n,a,i)=>{return f({fontFamily:r,fontWeight:t,fontSize:b(e),lineHeight:n},r===G?{letterSpacing:(o=a/e,Math.round(1e5*o)/1e5)+"em"}:{},i,p);var o;},x={h1:y(i,96,1.167,-1.5),h2:y(i,60,1.2,-.5),h3:y(o,48,1.167,0),h4:y(o,34,1.235,.25),h5:y(o,24,1.334,0),h6:y(s,20,1.6,.15),subtitle1:y(o,16,1.75,.15),subtitle2:y(s,14,1.57,.1),body1:y(o,16,1.5,.15),body2:y(o,14,1.43,.15),button:y(s,14,1.75,.4,K),caption:y(o,12,1.66,.4),overline:y(o,12,2.66,1,K)};return d(f({htmlFontSize:l,pxToRem:b,fontFamily:r,fontSize:a,fontWeightLight:i,fontWeightRegular:o,fontWeightMedium:s,fontWeightBold:c},x),h,{clone:!1})}function tt(...t){return [`${t[0]}px ${t[1]}px ${t[2]}px ${t[3]}px rgba(0,0,0,0.2)`,`${t[4]}px ${t[5]}px ${t[6]}px ${t[7]}px rgba(0,0,0,0.14)`,`${t[8]}px ${t[9]}px ${t[10]}px ${t[11]}px rgba(0,0,0,0.12)`].join(",")}var et=["none",tt(0,2,1,-1,0,1,1,0,0,1,3,0),tt(0,3,1,-2,0,2,2,0,0,1,5,0),tt(0,3,3,-2,0,3,4,0,0,1,8,0),tt(0,2,4,-1,0,4,5,0,0,1,10,0),tt(0,3,5,-1,0,5,8,0,0,1,14,0),tt(0,3,5,-1,0,6,10,0,0,1,18,0),tt(0,4,5,-2,0,7,10,1,0,2,16,1),tt(0,5,5,-3,0,8,10,1,0,3,14,2),tt(0,5,6,-3,0,9,12,1,0,3,16,2),tt(0,6,6,-3,0,10,14,1,0,4,18,3),tt(0,6,7,-4,0,11,15,1,0,4,20,3),tt(0,7,8,-4,0,12,17,2,0,5,22,4),tt(0,7,8,-4,0,13,19,2,0,5,24,4),tt(0,7,9,-4,0,14,21,2,0,5,26,4),tt(0,8,9,-5,0,15,22,2,0,6,28,5),tt(0,8,10,-5,0,16,24,2,0,6,30,5),tt(0,8,11,-5,0,17,26,2,0,6,32,5),tt(0,9,11,-5,0,18,28,2,0,7,34,6),tt(0,9,12,-6,0,19,29,2,0,7,36,6),tt(0,10,13,-6,0,20,31,3,0,8,38,7),tt(0,10,13,-6,0,21,33,3,0,8,40,7),tt(0,10,14,-6,0,22,35,3,0,8,42,7),tt(0,11,14,-7,0,23,36,3,0,9,44,8),tt(0,11,15,-7,0,24,38,3,0,9,46,8)];const nt=["duration","easing","delay"],rt={easeInOut:"cubic-bezier(0.4, 0, 0.2, 1)",easeOut:"cubic-bezier(0.0, 0, 0.2, 1)",easeIn:"cubic-bezier(0.4, 0, 1, 1)",sharp:"cubic-bezier(0.4, 0, 0.6, 1)"},at={shortest:150,shorter:200,short:250,standard:300,complex:375,enteringScreen:225,leavingScreen:195};function it(t){return `${Math.round(t)}ms`}function ot(t){if(!t)return 0;const e=t/36;return Math.round(10*(4+15*e**.25+e/5))}function st(t){const e=f({},rt,t.easing),n=f({},at,t.duration);return f({getAutoHeightDuration:ot,create:(t=["all"],r={})=>{const{duration:a=n.standard,easing:i=e.easeInOut,delay:o=0}=r;return u(r,nt),(Array.isArray(t)?t:[t]).map((t=>`${t} ${"string"==typeof a?a:it(a)} ${i} ${"string"==typeof o?o:it(o)}`)).join(",")}},t,{easing:e,duration:n})}var ct={mobileStepper:1e3,speedDial:1050,appBar:1100,drawer:1200,modal:1300,snackbar:1400,tooltip:1500};const ft=["breakpoints","mixins","spacing","palette","transitions","typography","shape"];function ut(t={},...e){const{mixins:n={},palette:r={},transitions:a={},typography:i={}}=t,o=u(t,ft),s=Z(r),c=L(t);let l=d(c,{mixins:(p=c.breakpoints,c.spacing,g=n,f({toolbar:{minHeight:56,[`${p.up("xs")} and (orientation: landscape)`]:{minHeight:48},[p.up("sm")]:{minHeight:64}}},g)),palette:s,shadows:et.slice(),typography:Q(s,i),transitions:st(a),zIndex:f({},ct)});var p,g;return l=d(l,o),l=e.reduce(((t,e)=>d(t,e)),l),l}const lt=ut({palette:{mode:"dark",primary:{main:"#7463fb"},secondary:{main:"#fd8dea"}},typography:{fontFamily:"Rubik, sans-serif",label:{color:"#ccc",fontStyle:"italic"},header:{fontSize:"1.2rem",fontWeight:500}},components:{MuiTooltip:{styleOverrides:{tooltip:{fontSize:14}}}}});function dt(t){try{if(!t)return;return JSON.parse(atob(t.split(".")[1]))}catch(t){return void console.error(t)}} +var t; +! function(t) { + t[t.Twitch = 0] = "Twitch", t[t.FFZ = 1] = "FFZ", t[t.BTTV = 2] = "BTTV", t[t.Custom = 3] = "Custom"; +}(t || (t = {})); +var e = { + black: "#000", + white: "#fff" +}; +var n = { + 50: "#ffebee", + 100: "#ffcdd2", + 200: "#ef9a9a", + 300: "#e57373", + 400: "#ef5350", + 500: "#f44336", + 600: "#e53935", + 700: "#d32f2f", + 800: "#c62828", + 900: "#b71c1c", + A100: "#ff8a80", + A200: "#ff5252", + A400: "#ff1744", + A700: "#d50000" +}; +var r = { + 50: "#f3e5f5", + 100: "#e1bee7", + 200: "#ce93d8", + 300: "#ba68c8", + 400: "#ab47bc", + 500: "#9c27b0", + 600: "#8e24aa", + 700: "#7b1fa2", + 800: "#6a1b9a", + 900: "#4a148c", + A100: "#ea80fc", + A200: "#e040fb", + A400: "#d500f9", + A700: "#aa00ff" +}; +var a = { + 50: "#e3f2fd", + 100: "#bbdefb", + 200: "#90caf9", + 300: "#64b5f6", + 400: "#42a5f5", + 500: "#2196f3", + 600: "#1e88e5", + 700: "#1976d2", + 800: "#1565c0", + 900: "#0d47a1", + A100: "#82b1ff", + A200: "#448aff", + A400: "#2979ff", + A700: "#2962ff" +}; +var i = { + 50: "#e1f5fe", + 100: "#b3e5fc", + 200: "#81d4fa", + 300: "#4fc3f7", + 400: "#29b6f6", + 500: "#03a9f4", + 600: "#039be5", + 700: "#0288d1", + 800: "#0277bd", + 900: "#01579b", + A100: "#80d8ff", + A200: "#40c4ff", + A400: "#00b0ff", + A700: "#0091ea" +}; +var o = { + 50: "#e8f5e9", + 100: "#c8e6c9", + 200: "#a5d6a7", + 300: "#81c784", + 400: "#66bb6a", + 500: "#4caf50", + 600: "#43a047", + 700: "#388e3c", + 800: "#2e7d32", + 900: "#1b5e20", + A100: "#b9f6ca", + A200: "#69f0ae", + A400: "#00e676", + A700: "#00c853" +}; +var s = { + 50: "#fff3e0", + 100: "#ffe0b2", + 200: "#ffcc80", + 300: "#ffb74d", + 400: "#ffa726", + 500: "#ff9800", + 600: "#fb8c00", + 700: "#f57c00", + 800: "#ef6c00", + 900: "#e65100", + A100: "#ffd180", + A200: "#ffab40", + A400: "#ff9100", + A700: "#ff6d00" +}; +var c = { + 50: "#fafafa", + 100: "#f5f5f5", + 200: "#eeeeee", + 300: "#e0e0e0", + 400: "#bdbdbd", + 500: "#9e9e9e", + 600: "#757575", + 700: "#616161", + 800: "#424242", + 900: "#212121", + A100: "#f5f5f5", + A200: "#eeeeee", + A400: "#bdbdbd", + A700: "#616161" +}; -export { A, I, L, V, X, Y, ut as a, d as b, lt as c, dt as d, at as e, f, g, h, j, k, l, m, n, o, p, t, u, x, y, z }; +function f() { + return f = Object.assign || function(t) { + for (var e = 1; e < arguments.length; e++) { + var n = arguments[e]; + for (var r in n) Object.prototype.hasOwnProperty.call(n, r) && (t[r] = n[r]); + } + return t + }, f.apply(this, arguments) +} + +function u(t, e) { + if (null == t) return {}; + var n, r, a = {}, + i = Object.keys(t); + for (r = 0; r < i.length; r++) n = i[r], e.indexOf(n) >= 0 || (a[n] = t[n]); + return a +} + +function l(t) { + return null !== t && "object" == typeof t && t.constructor === Object +} + +function d(t, e, n = { + clone: !0 +}) { + const r = n.clone ? f({}, t) : t; + return l(t) && l(e) && Object.keys(e).forEach((a => { + "__proto__" !== a && (l(e[a]) && a in t && l(t[a]) ? r[a] = d(t[a], e[a], n) : r[a] = e[a]); + })), r +} + +function p(t) { + let e = "https://mui.com/production-error/?code=" + t; + for (let t = 1; t < arguments.length; t += 1) e += "&args[]=" + encodeURIComponent(arguments[t]); + return "Minified MUI error #" + t + "; visit " + e + " for the full message." +} + +function g(t) { + if ("string" != typeof t) throw new Error(p(7)); + return t.charAt(0).toUpperCase() + t.slice(1) +} + +function h(t, e) { + return e ? d(t, e, { + clone: !1 + }) : t +} +const m = { + xs: 0, + sm: 600, + md: 900, + lg: 1200, + xl: 1536 + }, + b = { + keys: ["xs", "sm", "md", "lg", "xl"], + up: t => `@media (min-width:${m[t]}px)` + }; + +function y(t, e, n) { + const r = t.theme || {}; + if (Array.isArray(e)) { + const t = r.breakpoints || b; + return e.reduce(((r, a, i) => (r[t.up(t.keys[i])] = n(e[i]), r)), {}) + } + if ("object" == typeof e) { + const t = r.breakpoints || b; + return Object.keys(e).reduce(((r, a) => { + if (-1 !== Object.keys(t.values || m).indexOf(a)) { + r[t.up(a)] = n(e[a], a); + } else { + const t = a; + r[t] = e[t]; + } + return r + }), {}) + } + return n(e) +} + +function x(t = {}) { + var e; + return (null == t || null == (e = t.keys) ? void 0 : e.reduce(((e, n) => (e[t.up(n)] = {}, e)), {})) || {} +} + +function k(t, e) { + return t.reduce(((t, e) => { + const n = t[e]; + return (!n || 0 === Object.keys(n).length) && delete t[e], t + }), e) +} + +function v(t, e) { + return e && "string" == typeof e ? e.split(".").reduce(((t, e) => t && t[e] ? t[e] : null), t) : null +} + +function O(t, e, n, r = n) { + let a; + return a = "function" == typeof t ? t(n) : Array.isArray(t) ? t[n] || r : v(t, n) || r, e && (a = e(a)), a +} + +function A(t) { + const { + prop: e, + cssProperty: n = t.prop, + themeKey: r, + transform: a + } = t, i = t => { + if (null == t[e]) return null; + const i = t[e], + o = v(t.theme, r) || {}; + return y(t, i, (t => { + let r = O(o, a, t); + return t === r && "string" == typeof t && (r = O(o, a, `${e}${"default"===t?"":g(t)}`, t)), !1 === n ? r : { + [n]: r + } + })) + }; + return i.propTypes = {}, i.filterProps = [e], i +} +const $ = { + m: "margin", + p: "padding" + }, + w = { + t: "Top", + r: "Right", + b: "Bottom", + l: "Left", + x: ["Left", "Right"], + y: ["Top", "Bottom"] + }, + S = { + marginX: "mx", + marginY: "my", + paddingX: "px", + paddingY: "py" + }, + T = function(t) { + const e = {}; + return n => (void 0 === e[n] && (e[n] = t(n)), e[n]) + }((t => { + if (t.length > 2) { + if (!S[t]) return [t]; + t = S[t]; + } + const [e, n] = t.split(""), r = $[e], a = w[n] || ""; + return Array.isArray(a) ? a.map((t => r + t)) : [r + a] + })), + M = ["m", "mt", "mr", "mb", "ml", "mx", "my", "margin", "marginTop", "marginRight", "marginBottom", "marginLeft", "marginX", "marginY", "marginInline", "marginInlineStart", "marginInlineEnd", "marginBlock", "marginBlockStart", "marginBlockEnd", "p", "pt", "pr", "pb", "pl", "px", "py", "padding", "paddingTop", "paddingRight", "paddingBottom", "paddingLeft", "paddingX", "paddingY", "paddingInline", "paddingInlineStart", "paddingInlineEnd", "paddingBlock", "paddingBlockStart", "paddingBlockEnd"]; + +function j(t, e, n, r) { + const a = v(t, e) || n; + return "number" == typeof a ? t => "string" == typeof t ? t : a * t : Array.isArray(a) ? t => "string" == typeof t ? t : a[t] : "function" == typeof a ? a : () => {} +} + +function B(t) { + return j(t, "spacing", 8) +} + +function I(t, e) { + if ("string" == typeof e || null == e) return e; + const n = t(Math.abs(e)); + return e >= 0 ? n : "number" == typeof n ? -n : `-${n}` +} + +function R(t, e, n, r) { + if (-1 === e.indexOf(n)) return null; + const a = function(t, e) { + return n => t.reduce(((t, r) => (t[r] = I(e, n), t)), {}) + }(T(n), r); + return y(t, t[n], a) +} + +function z(t) { + return function(t, e) { + const n = B(t.theme); + return Object.keys(t).map((r => R(t, e, r, n))).reduce(h, {}) + }(t, M) +} +z.propTypes = {}, z.filterProps = M; +const F = ["values", "unit", "step"]; +var W = { + borderRadius: 4 +}; +const E = ["breakpoints", "palette", "spacing", "shape"]; + +function L(t = {}, ...e) { + const { + breakpoints: n = {}, + palette: r = {}, + spacing: a, + shape: i = {} + } = t, o = u(t, E), s = function(t) { + const { + values: e = { + xs: 0, + sm: 600, + md: 900, + lg: 1200, + xl: 1536 + }, + unit: n = "px", + step: r = 5 + } = t, a = u(t, F), i = Object.keys(e); + + function o(t) { + return `@media (min-width:${"number"==typeof e[t]?e[t]:t}${n})` + } + + function s(t) { + return `@media (max-width:${("number"==typeof e[t]?e[t]:t)-r/100}${n})` + } + + function c(t, a) { + const o = i.indexOf(a); + return `@media (min-width:${"number"==typeof e[t]?e[t]:t}${n}) and (max-width:${(-1!==o&&"number"==typeof e[i[o]]?e[i[o]]:a)-r/100}${n})` + } + return f({ + keys: i, + values: e, + up: o, + down: s, + between: c, + only: function(t) { + return i.indexOf(t) + 1 < i.length ? c(t, i[i.indexOf(t) + 1]) : o(t) + }, + not: function(t) { + const e = i.indexOf(t); + return 0 === e ? o(i[1]) : e === i.length - 1 ? s(i[e]) : c(t, i[i.indexOf(t) + 1]).replace("@media", "@media not all and") + }, + unit: n + }, a) + }(n), c = function(t = 8) { + if (t.mui) return t; + const e = B({ + spacing: t + }), + n = (...t) => (0 === t.length ? [1] : t).map((t => { + const n = e(t); + return "number" == typeof n ? `${n}px` : n + })).join(" "); + return n.mui = !0, n + }(a); + let l = d({ + breakpoints: s, + direction: "ltr", + components: {}, + palette: f({ + mode: "light" + }, r), + spacing: c, + shape: f({}, W, i) + }, o); + return l = e.reduce(((t, e) => d(t, e)), l), l +} + +function C(t, e = 0, n = 1) { + return Math.min(Math.max(e, t), n) +} + +function H(t) { + if (t.type) return t; + if ("#" === t.charAt(0)) return H(function(t) { + t = t.substr(1); + const e = new RegExp(`.{1,${t.length>=6?2:1}}`, "g"); + let n = t.match(e); + return n && 1 === n[0].length && (n = n.map((t => t + t))), n ? `rgb${4===n.length?"a":""}(${n.map(((t,e)=>e<3?parseInt(t,16):Math.round(parseInt(t,16)/255*1e3)/1e3)).join(", ")})` : "" + }(t)); + const e = t.indexOf("("), + n = t.substring(0, e); + if (-1 === ["rgb", "rgba", "hsl", "hsla", "color"].indexOf(n)) throw new Error(p(9, t)); + let r, a = t.substring(e + 1, t.length - 1); + if ("color" === n) { + if (a = a.split(" "), r = a.shift(), 4 === a.length && "/" === a[3].charAt(0) && (a[3] = a[3].substr(1)), -1 === ["srgb", "display-p3", "a98-rgb", "prophoto-rgb", "rec-2020"].indexOf(r)) throw new Error(p(10, r)) + } else a = a.split(","); + return a = a.map((t => parseFloat(t))), { + type: n, + values: a, + colorSpace: r + } +} + +function P(t) { + const { + type: e, + colorSpace: n + } = t; + let { + values: r + } = t; + return -1 !== e.indexOf("rgb") ? r = r.map(((t, e) => e < 3 ? parseInt(t, 10) : t)) : -1 !== e.indexOf("hsl") && (r[1] = `${r[1]}%`, r[2] = `${r[2]}%`), r = -1 !== e.indexOf("color") ? `${n} ${r.join(" ")}` : `${r.join(", ")}`, `${e}(${r})` +} + +function _(t) { + let e = "hsl" === (t = H(t)).type ? H(function(t) { + t = H(t); + const { + values: e + } = t, n = e[0], r = e[1] / 100, a = e[2] / 100, i = r * Math.min(a, 1 - a), o = (t, e = (t + n / 30) % 12) => a - i * Math.max(Math.min(e - 3, 9 - e, 1), -1); + let s = "rgb"; + const c = [Math.round(255 * o(0)), Math.round(255 * o(8)), Math.round(255 * o(4))]; + return "hsla" === t.type && (s += "a", c.push(e[3])), P({ + type: s, + values: c + }) + }(t)).values : t.values; + return e = e.map((e => ("color" !== t.type && (e /= 255), e <= .03928 ? e / 12.92 : ((e + .055) / 1.055) ** 2.4))), Number((.2126 * e[0] + .7152 * e[1] + .0722 * e[2]).toFixed(3)) +} + +function V(t, e) { + return t = H(t), e = C(e), "rgb" !== t.type && "hsl" !== t.type || (t.type += "a"), "color" === t.type ? t.values[3] = `/${e}` : t.values[3] = e, P(t) +} + +function X(t, e) { + if (t = H(t), e = C(e), -1 !== t.type.indexOf("hsl")) t.values[2] *= 1 - e; + else if (-1 !== t.type.indexOf("rgb") || -1 !== t.type.indexOf("color")) + for (let n = 0; n < 3; n += 1) t.values[n] *= 1 - e; + return P(t) +} + +function Y(t, e) { + if (t = H(t), e = C(e), -1 !== t.type.indexOf("hsl")) t.values[2] += (100 - t.values[2]) * e; + else if (-1 !== t.type.indexOf("rgb")) + for (let n = 0; n < 3; n += 1) t.values[n] += (255 - t.values[n]) * e; + else if (-1 !== t.type.indexOf("color")) + for (let n = 0; n < 3; n += 1) t.values[n] += (1 - t.values[n]) * e; + return P(t) +} +const N = ["mode", "contrastThreshold", "tonalOffset"], + U = { + text: { + primary: "rgba(0, 0, 0, 0.87)", + secondary: "rgba(0, 0, 0, 0.6)", + disabled: "rgba(0, 0, 0, 0.38)" + }, + divider: "rgba(0, 0, 0, 0.12)", + background: { + paper: e.white, + default: e.white + }, + action: { + active: "rgba(0, 0, 0, 0.54)", + hover: "rgba(0, 0, 0, 0.04)", + hoverOpacity: .04, + selected: "rgba(0, 0, 0, 0.08)", + selectedOpacity: .08, + disabled: "rgba(0, 0, 0, 0.26)", + disabledBackground: "rgba(0, 0, 0, 0.12)", + disabledOpacity: .38, + focus: "rgba(0, 0, 0, 0.12)", + focusOpacity: .12, + activatedOpacity: .12 + } + }, + D = { + text: { + primary: e.white, + secondary: "rgba(255, 255, 255, 0.7)", + disabled: "rgba(255, 255, 255, 0.5)", + icon: "rgba(255, 255, 255, 0.5)" + }, + divider: "rgba(255, 255, 255, 0.12)", + background: { + paper: "#121212", + default: "#121212" + }, + action: { + active: e.white, + hover: "rgba(255, 255, 255, 0.08)", + hoverOpacity: .08, + selected: "rgba(255, 255, 255, 0.16)", + selectedOpacity: .16, + disabled: "rgba(255, 255, 255, 0.3)", + disabledBackground: "rgba(255, 255, 255, 0.12)", + disabledOpacity: .38, + focus: "rgba(255, 255, 255, 0.12)", + focusOpacity: .12, + activatedOpacity: .24 + } + }; + +function J(t, e, n, r) { + const a = r.light || r, + i = r.dark || 1.5 * r; + t[e] || (t.hasOwnProperty(n) ? t[e] = t[n] : "light" === e ? t.light = Y(t.main, a) : "dark" === e && (t.dark = X(t.main, i))); +} + +function Z(t) { + const { + mode: l = "light", + contrastThreshold: g = 3, + tonalOffset: h = .2 + } = t, m = u(t, N), b = t.primary || function(t = "light") { + return "dark" === t ? { + main: a[200], + light: a[50], + dark: a[400] + } : { + main: a[700], + light: a[400], + dark: a[800] + } + }(l), y = t.secondary || function(t = "light") { + return "dark" === t ? { + main: r[200], + light: r[50], + dark: r[400] + } : { + main: r[500], + light: r[300], + dark: r[700] + } + }(l), x = t.error || function(t = "light") { + return "dark" === t ? { + main: n[500], + light: n[300], + dark: n[700] + } : { + main: n[700], + light: n[400], + dark: n[800] + } + }(l), k = t.info || function(t = "light") { + return "dark" === t ? { + main: i[400], + light: i[300], + dark: i[700] + } : { + main: i[700], + light: i[500], + dark: i[900] + } + }(l), v = t.success || function(t = "light") { + return "dark" === t ? { + main: o[400], + light: o[300], + dark: o[700] + } : { + main: o[800], + light: o[500], + dark: o[900] + } + }(l), O = t.warning || function(t = "light") { + return "dark" === t ? { + main: s[400], + light: s[300], + dark: s[700] + } : { + main: "#ed6c02", + light: s[500], + dark: s[900] + } + }(l); + + function A(t) { + const e = function(t, e) { + const n = _(t), + r = _(e); + return (Math.max(n, r) + .05) / (Math.min(n, r) + .05) + }(t, D.text.primary) >= g ? D.text.primary : U.text.primary; + return e + } + const $ = ({ + color: t, + name: e, + mainShade: n = 500, + lightShade: r = 300, + darkShade: a = 700 + }) => { + if (!(t = f({}, t)).main && t[n] && (t.main = t[n]), !t.hasOwnProperty("main")) throw new Error(p(11, e ? ` (${e})` : "", n)); + if ("string" != typeof t.main) throw new Error(p(12, e ? ` (${e})` : "", JSON.stringify(t.main))); + return J(t, "light", r, h), J(t, "dark", a, h), t.contrastText || (t.contrastText = A(t.main)), t + }, + w = { + dark: D, + light: U + }; + return d(f({ + common: e, + mode: l, + primary: $({ + color: b, + name: "primary" + }), + secondary: $({ + color: y, + name: "secondary", + mainShade: "A400", + lightShade: "A200", + darkShade: "A700" + }), + error: $({ + color: x, + name: "error" + }), + warning: $({ + color: O, + name: "warning" + }), + info: $({ + color: k, + name: "info" + }), + success: $({ + color: v, + name: "success" + }), + grey: c, + contrastThreshold: g, + getContrastText: A, + augmentColor: $, + tonalOffset: h + }, w[l]), m) +} +const q = ["fontFamily", "fontSize", "fontWeightLight", "fontWeightRegular", "fontWeightMedium", "fontWeightBold", "htmlFontSize", "allVariants", "pxToRem"]; +const K = { + textTransform: "uppercase" + }, + G = '"Roboto", "Helvetica", "Arial", sans-serif'; + +function Q(t, e) { + const n = "function" == typeof e ? e(t) : e, + { + fontFamily: r = G, + fontSize: a = 14, + fontWeightLight: i = 300, + fontWeightRegular: o = 400, + fontWeightMedium: s = 500, + fontWeightBold: c = 700, + htmlFontSize: l = 16, + allVariants: p, + pxToRem: g + } = n, + h = u(n, q), + m = a / 14, + b = g || (t => t / l * m + "rem"), + y = (t, e, n, a, i) => { + return f({ + fontFamily: r, + fontWeight: t, + fontSize: b(e), + lineHeight: n + }, r === G ? { + letterSpacing: (o = a / e, Math.round(1e5 * o) / 1e5) + "em" + } : {}, i, p); + var o; + }, + x = { + h1: y(i, 96, 1.167, -1.5), + h2: y(i, 60, 1.2, -.5), + h3: y(o, 48, 1.167, 0), + h4: y(o, 34, 1.235, .25), + h5: y(o, 24, 1.334, 0), + h6: y(s, 20, 1.6, .15), + subtitle1: y(o, 16, 1.75, .15), + subtitle2: y(s, 14, 1.57, .1), + body1: y(o, 16, 1.5, .15), + body2: y(o, 14, 1.43, .15), + button: y(s, 14, 1.75, .4, K), + caption: y(o, 12, 1.66, .4), + overline: y(o, 12, 2.66, 1, K) + }; + return d(f({ + htmlFontSize: l, + pxToRem: b, + fontFamily: r, + fontSize: a, + fontWeightLight: i, + fontWeightRegular: o, + fontWeightMedium: s, + fontWeightBold: c + }, x), h, { + clone: !1 + }) +} + +function tt(...t) { + return [`${t[0]}px ${t[1]}px ${t[2]}px ${t[3]}px rgba(0,0,0,0.2)`, `${t[4]}px ${t[5]}px ${t[6]}px ${t[7]}px rgba(0,0,0,0.14)`, `${t[8]}px ${t[9]}px ${t[10]}px ${t[11]}px rgba(0,0,0,0.12)`].join(",") +} +var et = ["none", tt(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), tt(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), tt(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), tt(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), tt(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), tt(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), tt(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), tt(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), tt(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), tt(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), tt(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), tt(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), tt(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), tt(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), tt(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), tt(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), tt(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), tt(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), tt(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), tt(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), tt(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), tt(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), tt(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), tt(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)]; +const nt = ["duration", "easing", "delay"], + rt = { + easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)", + easeOut: "cubic-bezier(0.0, 0, 0.2, 1)", + easeIn: "cubic-bezier(0.4, 0, 1, 1)", + sharp: "cubic-bezier(0.4, 0, 0.6, 1)" + }, + at = { + shortest: 150, + shorter: 200, + short: 250, + standard: 300, + complex: 375, + enteringScreen: 225, + leavingScreen: 195 + }; + +function it(t) { + return `${Math.round(t)}ms` +} + +function ot(t) { + if (!t) return 0; + const e = t / 36; + return Math.round(10 * (4 + 15 * e ** .25 + e / 5)) +} + +function st(t) { + const e = f({}, rt, t.easing), + n = f({}, at, t.duration); + return f({ + getAutoHeightDuration: ot, + create: (t = ["all"], r = {}) => { + const { + duration: a = n.standard, + easing: i = e.easeInOut, + delay: o = 0 + } = r; + return u(r, nt), (Array.isArray(t) ? t : [t]).map((t => `${t} ${"string"==typeof a?a:it(a)} ${i} ${"string"==typeof o?o:it(o)}`)).join(",") + } + }, t, { + easing: e, + duration: n + }) +} +var ct = { + mobileStepper: 1e3, + speedDial: 1050, + appBar: 1100, + drawer: 1200, + modal: 1300, + snackbar: 1400, + tooltip: 1500 +}; +const ft = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"]; + +function ut(t = {}, ...e) { + const { + mixins: n = {}, + palette: r = {}, + transitions: a = {}, + typography: i = {} + } = t, o = u(t, ft), s = Z(r), c = L(t); + let l = d(c, { + mixins: (p = c.breakpoints, c.spacing, g = n, f({ + toolbar: { + minHeight: 56, + [`${p.up("xs")} and (orientation: landscape)`]: { + minHeight: 48 + }, + [p.up("sm")]: { + minHeight: 64 + } + } + }, g)), + palette: s, + shadows: et.slice(), + typography: Q(s, i), + transitions: st(a), + zIndex: f({}, ct) + }); + var p, g; + return l = d(l, o), l = e.reduce(((t, e) => d(t, e)), l), l +} +const lt = ut({ + palette: { + mode: "dark", + primary: { + main: "#7463fb" + }, + secondary: { + main: "#fd8dea" + } + }, + typography: { + fontFamily: "Rubik, sans-serif", + label: { + color: "#ccc", + fontStyle: "italic" + }, + header: { + fontSize: "1.2rem", + fontWeight: 500 + } + }, + components: { + MuiTooltip: { + styleOverrides: { + tooltip: { + fontSize: 14 + } + } + } + } +}); + +function dt(t) { + try { + if (!t) return; + return JSON.parse(atob(t.split(".")[1])) + } catch (t) { + return void console.error(t) + } +} + +export { + A, + I, + L, + V, + X, + Y, + ut as a, + d as b, + lt as c, + dt as d, + at as e, + f, + g, + h, + j, + k, + l, + m, + n, + o, + p, + t, + u, + x, + y, + z +}; \ No newline at end of file diff --git a/popup/index.js b/popup/index.js index f164ab5..e4c00aa 100644 --- a/popup/index.js +++ b/popup/index.js @@ -1,9 +1,84 @@ -import { f, A as A$1, L as L$1, l, u, a as ut$1, g, V as V$1, X as X$1, Y as Y$1, p, b as d, c as lt$1, h, j as j$1, y, z as z$1, d as dt$1, x, k, e as at$1, n as n$2, o, I as I$1, m as m$1 } from '../parse_token.util-ed270559.js'; -import { e } from '../style-inject.es-a0e1a0ba.js'; -import { e as e$1, n as n$1, m } from '../storage-a8ac7bd3.js'; -import { n } from '../connectRuntime-a699491c.js'; +import { + f, + A as A$1, + L as L$1, + l, + u, + a as ut$1, + g, + V as V$1, + X as X$1, + Y as Y$1, + p, + b as d, + c as lt$1, + h, + j as j$1, + y, + z as z$1, + d as dt$1, + x, + k, + e as at$1, + n as n$2, + o, + I as I$1, + m as m$1 +} from '../parse_token.util-ed270559.js'; +import { + e +} from '../style-inject.es-a0e1a0ba.js'; +import { + e as e$1, + n as n$1, + m +} from '../storage-a8ac7bd3.js'; +import { + n +} from '../connectRuntime-a699491c.js'; -var T={exports:{}},j={},z=Object.getOwnPropertySymbols,N=Object.prototype.hasOwnProperty,_=Object.prototype.propertyIsEnumerable;function L(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var I=function(){try{if(!Object.assign)return !1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return !1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(t).map((function(e){return t[e]}));if("0123456789"!==r.join(""))return !1;var o={};return "abcdefghijklmnopqrst".split("").forEach((function(e){o[e]=e;})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},o)).join("")}catch(e){return !1}}()?Object.assign:function(e,t){for(var n,r,o=L(e),a=1;a0?Pe(Fe,--Le):0,Ne--,10===Ie&&(Ne=1,ze--),Ie}function De(){return Ie=Le<_e?Pe(Fe,Le++):0,Ne++,10===Ie&&(Ne=1,ze++),Ie}function We(){return Pe(Fe,Le)}function Ue(){return Le}function He(e,t){return Me(Fe,e,t)}function Ve(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function qe(e){return ze=Ne=1,_e=Oe(Fe=e),Le=0,[]}function Ke(e){return Fe="",e}function Xe(e){return Ce(He(Le-1,Ge(91===e?e+2:40===e?e+1:e)))}function Ye(e){for(;(Ie=We())&&Ie<33;)De();return Ve(e)>2||Ve(Ie)>3?"":" "}function Qe(e,t){for(;--t&&De()&&!(Ie<48||Ie>102||Ie>57&&Ie<65||Ie>70&&Ie<97););return He(e,Ue()+(t<6&&32==We()&&32==De()))}function Ge(e){for(;De();)switch(Ie){case e:return Le;case 34:case 39:34!==e&&39!==e&&Ge(Ie);break;case 40:41===e&&Ge(e);break;case 92:De();}return Le}function Ze(e,t){for(;De()&&e+Ie!==57&&(e+Ie!==84||47!==We()););return "/*"+He(t,Le-1)+"*"+ke(47===e?e:De())}function Je(e){for(;!Ve(We());)De();return He(e,Le)}function et(e){return Ke(tt("",null,null,null,[""],e=qe(e),0,[0],e))}function tt(e,t,n,r,o,a,i,l,s){for(var u=0,c=0,d=i,p=0,f=0,h=0,m=1,v=1,g=1,b=0,y="",x=o,w=a,k=r,S=y;v;)switch(h=b,b=De()){case 40:if(108!=h&&58==S.charCodeAt(d-1)){-1!=Re(S+=Ee(Xe(b),"&","&\f"),"&\f")&&(g=-1);break}case 34:case 39:case 91:S+=Xe(b);break;case 9:case 10:case 13:case 32:S+=Ye(h);break;case 92:S+=Qe(Ue()-1,7);continue;case 47:switch(We()){case 42:case 47:je(rt(Ze(De(),Ue()),t,n),s);break;default:S+="/";}break;case 123*m:l[u++]=Oe(S)*g;case 125*m:case 59:case 0:switch(b){case 0:case 125:v=0;case 59+c:f>0&&Oe(S)-d&&je(f>32?ot(S+";",r,n,d-1):ot(Ee(S," ","")+";",r,n,d-2),s);break;case 59:S+=";";default:if(je(k=nt(S,t,n,u,c,o,l,y,x=[],w=[],d),a),123===b)if(0===c)tt(S,t,k,k,x,a,d,l,w);else switch(p){case 100:case 109:case 115:tt(e,k,k,r&&je(nt(e,k,k,0,0,o,l,y,o,x=[],d),w),o,w,d,l,r?x:w);break;default:tt(S,k,k,k,[""],w,0,l,w);}}u=c=f=0,m=g=1,y=S="",d=i;break;case 58:d=1+Oe(S),f=h;default:if(m<1)if(123==b)--m;else if(125==b&&0==m++&&125==Be())continue;switch(S+=ke(b),b*m){case 38:g=c>0?1:(S+="\f",-1);break;case 44:l[u++]=(Oe(S)-1)*g,g=1;break;case 64:45===We()&&(S+=Xe(De())),p=We(),c=d=Oe(y=S+=Je(Ue())),b++;break;case 45:45===h&&2==Oe(S)&&(m=0);}}return a}function nt(e,t,n,r,o,a,i,l,s,u,c){for(var d=o-1,p=0===o?a:[""],f=Te(p),h=0,m=0,v=0;h0?p[g]+" "+b:Ee(b,/&\f/g,p[g])))&&(s[v++]=y);return $e(e,t,n,0===o?"rule":l,s,u,c)}function rt(e,t,n){return $e(e,t,n,"comm",ke(Ie),Me(e,2,-2),0)}function ot(e,t,n,r){return $e(e,t,n,"decl",Me(e,0,r),Me(e,r+1,-1),r)}function at(e,t){switch(function(e,t){return (((t<<2^Pe(e,0))<<2^Pe(e,1))<<2^Pe(e,2))<<2^Pe(e,3)}(e,t)){case 5103:return xe+"print-"+e+e;case 5737:case 4201:case 3177:case 3433:case 1641:case 4457:case 2921:case 5572:case 6356:case 5844:case 3191:case 6645:case 3005:case 6391:case 5879:case 5623:case 6135:case 4599:case 4855:case 4215:case 6389:case 5109:case 5365:case 5621:case 3829:return xe+e+e;case 5349:case 4246:case 4810:case 6968:case 2756:return xe+e+ye+e+be+e+e;case 6828:case 4268:return xe+e+be+e+e;case 6165:return xe+e+be+"flex-"+e+e;case 5187:return xe+e+Ee(e,/(\w+).+(:[^]+)/,"-webkit-box-$1$2-ms-flex-$1$2")+e;case 5443:return xe+e+be+"flex-item-"+Ee(e,/flex-|-self/,"")+e;case 4675:return xe+e+be+"flex-line-pack"+Ee(e,/align-content|flex-|-self/,"")+e;case 5548:return xe+e+be+Ee(e,"shrink","negative")+e;case 5292:return xe+e+be+Ee(e,"basis","preferred-size")+e;case 6060:return xe+"box-"+Ee(e,"-grow","")+xe+e+be+Ee(e,"grow","positive")+e;case 4554:return xe+Ee(e,/([^-])(transform)/g,"$1-webkit-$2")+e;case 6187:return Ee(Ee(Ee(e,/(zoom-|grab)/,xe+"$1"),/(image-set)/,xe+"$1"),e,"")+e;case 5495:case 3959:return Ee(e,/(image-set\([^]*)/,xe+"$1$`$1");case 4968:return Ee(Ee(e,/(.+:)(flex-)?(.*)/,"-webkit-box-pack:$3-ms-flex-pack:$3"),/s.+-b[^;]+/,"justify")+xe+e+e;case 4095:case 3583:case 4068:case 2532:return Ee(e,/(.+)-inline(.+)/,xe+"$1$2")+e;case 8116:case 7059:case 5753:case 5535:case 5445:case 5701:case 4933:case 4677:case 5533:case 5789:case 5021:case 4765:if(Oe(e)-1-t>6)switch(Pe(e,t+1)){case 109:if(45!==Pe(e,t+4))break;case 102:return Ee(e,/(.+:)(.+)-([^]+)/,"$1-webkit-$2-$3$1"+ye+(108==Pe(e,t+3)?"$3":"$2-$3"))+e;case 115:return ~Re(e,"stretch")?at(Ee(e,"stretch","fill-available"),t)+e:e}break;case 4949:if(115!==Pe(e,t+1))break;case 6444:switch(Pe(e,Oe(e)-3-(~Re(e,"!important")&&10))){case 107:return Ee(e,":",":"+xe)+e;case 101:return Ee(e,/(.+:)([^;!]+)(;|!.+)?/,"$1"+xe+(45===Pe(e,14)?"inline-":"")+"box$3$1"+xe+"$2$3$1"+be+"$2box$3")+e}break;case 5936:switch(Pe(e,t+11)){case 114:return xe+e+be+Ee(e,/[svh]\w+-[tblr]{2}/,"tb")+e;case 108:return xe+e+be+Ee(e,/[svh]\w+-[tblr]{2}/,"tb-rl")+e;case 45:return xe+e+be+Ee(e,/[svh]\w+-[tblr]{2}/,"lr")+e}return xe+e+be+e+e}return e}function it(e,t){for(var n="",r=Te(e),o=0;o-1&&!e.return)switch(e.type){case"decl":e.return=at(e.value,e.length);break;case"@keyframes":return it([Ae(e,{value:Ee(e.value,"@","@"+xe)})],r);case"rule":if(e.length)return function(e,t){return e.map(t).join("")}(e.props,(function(t){switch(function(e,t){return (e=t.exec(e))?e[0]:e}(t,/(::plac\w+|:read-\w+)/)){case":read-only":case":read-write":return it([Ae(e,{props:[Ee(t,/:(read-\w+)/,":-moz-$1")]})],r);case"::placeholder":return it([Ae(e,{props:[Ee(t,/:(plac\w+)/,":-webkit-input-$1")]}),Ae(e,{props:[Ee(t,/:(plac\w+)/,":-moz-$1")]}),Ae(e,{props:[Ee(t,/:(plac\w+)/,be+"input-$1")]})],r)}return ""}))}}],yt=function(e){var t=e.key;if(vt&&"css"===t){var n=document.querySelectorAll("style[data-emotion]:not([data-s])");Array.prototype.forEach.call(n,(function(e){-1!==e.getAttribute("data-emotion").indexOf(" ")&&(document.head.appendChild(e),e.setAttribute("data-s",""));}));}var r,o,a=e.stylisPlugins||bt,i={},l=[];vt&&(r=e.container||document.head,Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="'+t+' "]'),(function(e){for(var t=e.getAttribute("data-emotion").split(" "),n=1;n=4;++r,o-=4)t=1540483477*(65535&(t=255&e.charCodeAt(r)|(255&e.charCodeAt(++r))<<8|(255&e.charCodeAt(++r))<<16|(255&e.charCodeAt(++r))<<24))+(59797*(t>>>16)<<16),n=1540483477*(65535&(t^=t>>>24))+(59797*(t>>>16)<<16)^1540483477*(65535&n)+(59797*(n>>>16)<<16);switch(o){case 3:n^=(255&e.charCodeAt(r+2))<<16;case 2:n^=(255&e.charCodeAt(r+1))<<8;case 1:n=1540483477*(65535&(n^=255&e.charCodeAt(r)))+(59797*(n>>>16)<<16);}return (((n=1540483477*(65535&(n^=n>>>13))+(59797*(n>>>16)<<16))^n>>>15)>>>0).toString(36)}(o)+s;return {name:u,styles:o,next:nn}},an="undefined"!=typeof document,ln=T.exports.createContext("undefined"!=typeof HTMLElement?yt({key:"css"}):null);ln.Provider;var sn=function(e){return T.exports.forwardRef((function(t,n){var r=T.exports.useContext(ln);return e(t,r,n)}))};an||(sn=function(e){return function(t){var n=T.exports.useContext(ln);return null===n?(n=yt({key:"css"}),T.exports.createElement(ln.Provider,{value:n},e(t,n))):e(t,n)}});var un=T.exports.createContext({}),cn=sn((function(e,t){var n=e.styles,r=on([n],void 0,T.exports.useContext(un));if(!an){for(var o,a=r.name,i=r.styles,l=r.next;void 0!==l;)a+=" "+l.name,i+=l.styles,l=l.next;var s=!0===t.compat,u=t.insert("",{name:a,styles:i},t.sheet,s);return s?null:T.exports.createElement("style",((o={})["data-emotion"]=t.key+"-global "+a,o.dangerouslySetInnerHTML={__html:u},o.nonce=t.sheet.nonce,o))}var c=T.exports.useRef();return T.exports.useLayoutEffect((function(){var e=t.key+"-global",n=new ge({key:e,nonce:t.sheet.nonce,container:t.sheet.container,speedy:t.sheet.isSpeedy}),o=!1,a=document.querySelector('style[data-emotion="'+e+" "+r.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==a&&(o=!0,a.setAttribute("data-emotion",e),n.hydrate([a])),c.current=[n,o],function(){n.flush();}}),[t]),T.exports.useLayoutEffect((function(){var e=c.current,n=e[0];if(e[1])e[1]=!1;else {if(void 0!==r.next&&Kt(t,r.next,!0),n.tags.length){var o=n.tags[n.tags.length-1].nextElementSibling;n.before=o,n.flush();}t.insert("",r,n,!1);}}),[t,r.name]),null}));function dn(){for(var e=arguments.length,t=new Array(e),n=0;n96?fn:hn},vn=function(e,t,n){var r;if(t){var o=t.shouldForwardProp;r=e.__emotion_forwardProp&&o?function(t){return e.__emotion_forwardProp(t)&&o(t)}:o;}return "function"!=typeof r&&n&&(r=e.__emotion_forwardProp),r},gn="undefined"!=typeof document,bn=function(){return null},yn=function t(n,r){var o,a,i=n.__emotion_real===n,l=i&&n.__emotion_base||n;void 0!==r&&(o=r.label,a=r.target);var s=vn(n,r,i),u=s||mn(l),c=!u("as");return function(){var d=arguments,p=i&&void 0!==n.__emotion_styles?n.__emotion_styles.slice(0):[];if(void 0!==o&&p.push("label:"+o+";"),null==d[0]||void 0===d[0].raw)p.push.apply(p,d);else {p.push(d[0][0]);for(var f$1=d.length,h=1;h{return t(null==(r=e)||0===Object.keys(r).length?n:e);var r;}:t;return wn.exports.jsx(cn,{styles:r})} + */ +j.Fragment = 60107, j.StrictMode = 60108, j.Profiler = 60114; +var B = 60109, + D = 60110, + W = 60112; +j.Suspense = 60113; +var U = 60115, + H = 60116; +if ("function" == typeof Symbol && Symbol.for) { + var V = Symbol.for; + $ = V("react.element"), A = V("react.portal"), j.Fragment = V("react.fragment"), j.StrictMode = V("react.strict_mode"), j.Profiler = V("react.profiler"), B = V("react.provider"), D = V("react.context"), W = V("react.forward_ref"), j.Suspense = V("react.suspense"), U = V("react.memo"), H = V("react.lazy"); +} +var q = "function" == typeof Symbol && Symbol.iterator; + +function K(e) { + for (var t = "https://reactjs.org/docs/error-decoder.html?invariant=" + e, n = 1; n < arguments.length; n++) t += "&args[]=" + encodeURIComponent(arguments[n]); + return "Minified React error #" + e + "; visit " + t + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." +} +var X = { + isMounted: function() { + return !1 + }, + enqueueForceUpdate: function() {}, + enqueueReplaceState: function() {}, + enqueueSetState: function() {} + }, + Y = {}; + +function Q(e, t, n) { + this.props = e, this.context = t, this.refs = Y, this.updater = n || X; +} + +function G() {} + +function Z(e, t, n) { + this.props = e, this.context = t, this.refs = Y, this.updater = n || X; +} +Q.prototype.isReactComponent = {}, Q.prototype.setState = function(e, t) { + if ("object" != typeof e && "function" != typeof e && null != e) throw Error(K(85)); + this.updater.enqueueSetState(this, e, t, "setState"); +}, Q.prototype.forceUpdate = function(e) { + this.updater.enqueueForceUpdate(this, e, "forceUpdate"); +}, G.prototype = Q.prototype; +var J = Z.prototype = new G; +J.constructor = Z, F(J, Q.prototype), J.isPureReactComponent = !0; +var ee = { + current: null + }, + te = Object.prototype.hasOwnProperty, + ne = { + key: !0, + ref: !0, + __self: !0, + __source: !0 + }; + +function re(e, t, n) { + var r, o = {}, + a = null, + i = null; + if (null != t) + for (r in void 0 !== t.ref && (i = t.ref), void 0 !== t.key && (a = "" + t.key), t) te.call(t, r) && !ne.hasOwnProperty(r) && (o[r] = t[r]); + var l = arguments.length - 2; + if (1 === l) o.children = n; + else if (1 < l) { + for (var s = Array(l), u = 0; u < l; u++) s[u] = arguments[u + 2]; + o.children = s; + } + if (e && e.defaultProps) + for (r in l = e.defaultProps) void 0 === o[r] && (o[r] = l[r]); + return { + $$typeof: $, + type: e, + key: a, + ref: i, + props: o, + _owner: ee.current + } +} + +function oe(e) { + return "object" == typeof e && null !== e && e.$$typeof === $ +} +var ae = /\/+/g; + +function ie(e, t) { + return "object" == typeof e && null !== e && null != e.key ? function(e) { + var t = { + "=": "=0", + ":": "=2" + }; + return "$" + e.replace(/[=:]/g, (function(e) { + return t[e] + })) + }("" + e.key) : t.toString(36) +} + +function le(e, t, n, r, o) { + var a = typeof e; + "undefined" !== a && "boolean" !== a || (e = null); + var i = !1; + if (null === e) i = !0; + else switch (a) { + case "string": + case "number": + i = !0; + break; + case "object": + switch (e.$$typeof) { + case $: + case A: + i = !0; + } + } + if (i) return o = o(i = e), e = "" === r ? "." + ie(i, 0) : r, Array.isArray(o) ? (n = "", null != e && (n = e.replace(ae, "$&/") + "/"), le(o, t, n, "", (function(e) { + return e + }))) : null != o && (oe(o) && (o = function(e, t) { + return { + $$typeof: $, + type: e.type, + key: t, + ref: e.ref, + props: e.props, + _owner: e._owner + } + }(o, n + (!o.key || i && i.key === o.key ? "" : ("" + o.key).replace(ae, "$&/") + "/") + e)), t.push(o)), 1; + if (i = 0, r = "" === r ? "." : r + ":", Array.isArray(e)) + for (var l = 0; l < e.length; l++) { + var s = r + ie(a = e[l], l); + i += le(a, t, n, s, o); + } else if (s = function(e) { + return null === e || "object" != typeof e ? null : "function" == typeof(e = q && e[q] || e["@@iterator"]) ? e : null + }(e), "function" == typeof s) + for (e = s.call(e), l = 0; !(a = e.next()).done;) i += le(a = a.value, t, n, s = r + ie(a, l++), o); + else if ("object" === a) throw t = "" + e, Error(K(31, "[object Object]" === t ? "object with keys {" + Object.keys(e).join(", ") + "}" : t)); + return i +} + +function se(e, t, n) { + if (null == e) return e; + var r = [], + o = 0; + return le(e, r, "", "", (function(e) { + return t.call(n, e, o++) + })), r +} + +function ue(e) { + if (-1 === e._status) { + var t = e._result; + t = t(), e._status = 0, e._result = t, t.then((function(t) { + 0 === e._status && (t = t.default, e._status = 1, e._result = t); + }), (function(t) { + 0 === e._status && (e._status = 2, e._result = t); + })); + } + if (1 === e._status) return e._result; + throw e._result +} +var ce = { + current: null +}; + +function de() { + var e = ce.current; + if (null === e) throw Error(K(321)); + return e +} +var pe = { + ReactCurrentDispatcher: ce, + ReactCurrentBatchConfig: { + transition: 0 + }, + ReactCurrentOwner: ee, + IsSomeRendererActing: { + current: !1 + }, + assign: F +}; +j.Children = { + map: se, + forEach: function(e, t, n) { + se(e, (function() { + t.apply(this, arguments); + }), n); + }, + count: function(e) { + var t = 0; + return se(e, (function() { + t++; + })), t + }, + toArray: function(e) { + return se(e, (function(e) { + return e + })) || [] + }, + only: function(e) { + if (!oe(e)) throw Error(K(143)); + return e + } +}, j.Component = Q, j.PureComponent = Z, j.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = pe, j.cloneElement = function(e, t, n) { + if (null == e) throw Error(K(267, e)); + var r = F({}, e.props), + o = e.key, + a = e.ref, + i = e._owner; + if (null != t) { + if (void 0 !== t.ref && (a = t.ref, i = ee.current), void 0 !== t.key && (o = "" + t.key), e.type && e.type.defaultProps) var l = e.type.defaultProps; + for (s in t) te.call(t, s) && !ne.hasOwnProperty(s) && (r[s] = void 0 === t[s] && void 0 !== l ? l[s] : t[s]); + } + var s = arguments.length - 2; + if (1 === s) r.children = n; + else if (1 < s) { + l = Array(s); + for (var u = 0; u < s; u++) l[u] = arguments[u + 2]; + r.children = l; + } + return { + $$typeof: $, + type: e.type, + key: o, + ref: a, + props: r, + _owner: i + } +}, j.createContext = function(e, t) { + return void 0 === t && (t = null), (e = { + $$typeof: D, + _calculateChangedBits: t, + _currentValue: e, + _currentValue2: e, + _threadCount: 0, + Provider: null, + Consumer: null + }).Provider = { + $$typeof: B, + _context: e + }, e.Consumer = e +}, j.createElement = re, j.createFactory = function(e) { + var t = re.bind(null, e); + return t.type = e, t +}, j.createRef = function() { + return { + current: null + } +}, j.forwardRef = function(e) { + return { + $$typeof: W, + render: e + } +}, j.isValidElement = oe, j.lazy = function(e) { + return { + $$typeof: H, + _payload: { + _status: -1, + _result: e + }, + _init: ue + } +}, j.memo = function(e, t) { + return { + $$typeof: U, + type: e, + compare: void 0 === t ? null : t + } +}, j.useCallback = function(e, t) { + return de().useCallback(e, t) +}, j.useContext = function(e, t) { + return de().useContext(e, t) +}, j.useDebugValue = function() {}, j.useEffect = function(e, t) { + return de().useEffect(e, t) +}, j.useImperativeHandle = function(e, t, n) { + return de().useImperativeHandle(e, t, n) +}, j.useLayoutEffect = function(e, t) { + return de().useLayoutEffect(e, t) +}, j.useMemo = function(e, t) { + return de().useMemo(e, t) +}, j.useReducer = function(e, t, n) { + return de().useReducer(e, t, n) +}, j.useRef = function(e) { + return de().useRef(e) +}, j.useState = function(e) { + return de().useState(e) +}, j.version = "17.0.2", T.exports = j; +var fe = T.exports; + +function he(e) { + var t = Object.create(null); + return function(n) { + return void 0 === t[n] && (t[n] = e(n)), t[n] + } +} +var me = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/, + ve = he((function(e) { + return me.test(e) || 111 === e.charCodeAt(0) && 110 === e.charCodeAt(1) && e.charCodeAt(2) < 91 + })); +var ge = function() { + function e(e) { + var t = this; + this._insertTag = function(e) { + var n; + n = 0 === t.tags.length ? t.insertionPoint ? t.insertionPoint.nextSibling : t.prepend ? t.container.firstChild : t.before : t.tags[t.tags.length - 1].nextSibling, t.container.insertBefore(e, n), t.tags.push(e); + }, this.isSpeedy = void 0 === e.speedy || e.speedy, this.tags = [], this.ctr = 0, this.nonce = e.nonce, this.key = e.key, this.container = e.container, this.prepend = e.prepend, this.insertionPoint = e.insertionPoint, this.before = null; + } + var t = e.prototype; + return t.hydrate = function(e) { + e.forEach(this._insertTag); + }, t.insert = function(e) { + this.ctr % (this.isSpeedy ? 65e3 : 1) == 0 && this._insertTag(function(e) { + var t = document.createElement("style"); + return t.setAttribute("data-emotion", e.key), void 0 !== e.nonce && t.setAttribute("nonce", e.nonce), t.appendChild(document.createTextNode("")), t.setAttribute("data-s", ""), t + }(this)); + var t = this.tags[this.tags.length - 1]; + if (this.isSpeedy) { + var n = function(e) { + if (e.sheet) return e.sheet; + for (var t = 0; t < document.styleSheets.length; t++) + if (document.styleSheets[t].ownerNode === e) return document.styleSheets[t] + }(t); + try { + n.insertRule(e, n.cssRules.length); + } catch (e) {} + } else t.appendChild(document.createTextNode(e)); + this.ctr++; + }, t.flush = function() { + this.tags.forEach((function(e) { + return e.parentNode && e.parentNode.removeChild(e) + })), this.tags = [], this.ctr = 0; + }, e + }(), + be = "-ms-", + ye = "-moz-", + xe = "-webkit-", + we = Math.abs, + ke = String.fromCharCode, + Se = Object.assign; + +function Ce(e) { + return e.trim() +} + +function Ee(e, t, n) { + return e.replace(t, n) +} + +function Re(e, t) { + return e.indexOf(t) +} + +function Pe(e, t) { + return 0 | e.charCodeAt(t) +} + +function Me(e, t, n) { + return e.slice(t, n) +} + +function Oe(e) { + return e.length +} + +function Te(e) { + return e.length +} + +function je(e, t) { + return t.push(e), e +} +var ze = 1, + Ne = 1, + _e = 0, + Le = 0, + Ie = 0, + Fe = ""; + +function $e(e, t, n, r, o, a, i) { + return { + value: e, + root: t, + parent: n, + type: r, + props: o, + children: a, + line: ze, + column: Ne, + length: i, + return: "" + } +} + +function Ae(e, t) { + return Se($e("", null, null, "", null, null, 0), e, { + length: -e.length + }, t) +} + +function Be() { + return Ie = Le > 0 ? Pe(Fe, --Le) : 0, Ne--, 10 === Ie && (Ne = 1, ze--), Ie +} + +function De() { + return Ie = Le < _e ? Pe(Fe, Le++) : 0, Ne++, 10 === Ie && (Ne = 1, ze++), Ie +} + +function We() { + return Pe(Fe, Le) +} + +function Ue() { + return Le +} + +function He(e, t) { + return Me(Fe, e, t) +} + +function Ve(e) { + switch (e) { + case 0: + case 9: + case 10: + case 13: + case 32: + return 5; + case 33: + case 43: + case 44: + case 47: + case 62: + case 64: + case 126: + case 59: + case 123: + case 125: + return 4; + case 58: + return 3; + case 34: + case 39: + case 40: + case 91: + return 2; + case 41: + case 93: + return 1 + } + return 0 +} + +function qe(e) { + return ze = Ne = 1, _e = Oe(Fe = e), Le = 0, [] +} + +function Ke(e) { + return Fe = "", e +} + +function Xe(e) { + return Ce(He(Le - 1, Ge(91 === e ? e + 2 : 40 === e ? e + 1 : e))) +} + +function Ye(e) { + for (; + (Ie = We()) && Ie < 33;) De(); + return Ve(e) > 2 || Ve(Ie) > 3 ? "" : " " +} + +function Qe(e, t) { + for (; --t && De() && !(Ie < 48 || Ie > 102 || Ie > 57 && Ie < 65 || Ie > 70 && Ie < 97);); + return He(e, Ue() + (t < 6 && 32 == We() && 32 == De())) +} + +function Ge(e) { + for (; De();) switch (Ie) { + case e: + return Le; + case 34: + case 39: + 34 !== e && 39 !== e && Ge(Ie); + break; + case 40: + 41 === e && Ge(e); + break; + case 92: + De(); + } + return Le +} + +function Ze(e, t) { + for (; De() && e + Ie !== 57 && (e + Ie !== 84 || 47 !== We());); + return "/*" + He(t, Le - 1) + "*" + ke(47 === e ? e : De()) +} + +function Je(e) { + for (; !Ve(We());) De(); + return He(e, Le) +} + +function et(e) { + return Ke(tt("", null, null, null, [""], e = qe(e), 0, [0], e)) +} + +function tt(e, t, n, r, o, a, i, l, s) { + for (var u = 0, c = 0, d = i, p = 0, f = 0, h = 0, m = 1, v = 1, g = 1, b = 0, y = "", x = o, w = a, k = r, S = y; v;) switch (h = b, b = De()) { + case 40: + if (108 != h && 58 == S.charCodeAt(d - 1)) { + -1 != Re(S += Ee(Xe(b), "&", "&\f"), "&\f") && (g = -1); + break + } + case 34: + case 39: + case 91: + S += Xe(b); + break; + case 9: + case 10: + case 13: + case 32: + S += Ye(h); + break; + case 92: + S += Qe(Ue() - 1, 7); + continue; + case 47: + switch (We()) { + case 42: + case 47: + je(rt(Ze(De(), Ue()), t, n), s); + break; + default: + S += "/"; + } + break; + case 123 * m: + l[u++] = Oe(S) * g; + case 125 * m: + case 59: + case 0: + switch (b) { + case 0: + case 125: + v = 0; + case 59 + c: + f > 0 && Oe(S) - d && je(f > 32 ? ot(S + ";", r, n, d - 1) : ot(Ee(S, " ", "") + ";", r, n, d - 2), s); + break; + case 59: + S += ";"; + default: + if (je(k = nt(S, t, n, u, c, o, l, y, x = [], w = [], d), a), 123 === b) + if (0 === c) tt(S, t, k, k, x, a, d, l, w); + else switch (p) { + case 100: + case 109: + case 115: + tt(e, k, k, r && je(nt(e, k, k, 0, 0, o, l, y, o, x = [], d), w), o, w, d, l, r ? x : w); + break; + default: + tt(S, k, k, k, [""], w, 0, l, w); + } + } + u = c = f = 0, m = g = 1, y = S = "", d = i; + break; + case 58: + d = 1 + Oe(S), f = h; + default: + if (m < 1) + if (123 == b) --m; + else if (125 == b && 0 == m++ && 125 == Be()) continue; + switch (S += ke(b), b * m) { + case 38: + g = c > 0 ? 1 : (S += "\f", -1); + break; + case 44: + l[u++] = (Oe(S) - 1) * g, g = 1; + break; + case 64: + 45 === We() && (S += Xe(De())), p = We(), c = d = Oe(y = S += Je(Ue())), b++; + break; + case 45: + 45 === h && 2 == Oe(S) && (m = 0); + } + } + return a +} + +function nt(e, t, n, r, o, a, i, l, s, u, c) { + for (var d = o - 1, p = 0 === o ? a : [""], f = Te(p), h = 0, m = 0, v = 0; h < r; ++h) + for (var g = 0, b = Me(e, d + 1, d = we(m = i[h])), y = e; g < f; ++g)(y = Ce(m > 0 ? p[g] + " " + b : Ee(b, /&\f/g, p[g]))) && (s[v++] = y); + return $e(e, t, n, 0 === o ? "rule" : l, s, u, c) +} + +function rt(e, t, n) { + return $e(e, t, n, "comm", ke(Ie), Me(e, 2, -2), 0) +} + +function ot(e, t, n, r) { + return $e(e, t, n, "decl", Me(e, 0, r), Me(e, r + 1, -1), r) +} + +function at(e, t) { + switch (function(e, t) { + return (((t << 2 ^ Pe(e, 0)) << 2 ^ Pe(e, 1)) << 2 ^ Pe(e, 2)) << 2 ^ Pe(e, 3) + }(e, t)) { + case 5103: + return xe + "print-" + e + e; + case 5737: + case 4201: + case 3177: + case 3433: + case 1641: + case 4457: + case 2921: + case 5572: + case 6356: + case 5844: + case 3191: + case 6645: + case 3005: + case 6391: + case 5879: + case 5623: + case 6135: + case 4599: + case 4855: + case 4215: + case 6389: + case 5109: + case 5365: + case 5621: + case 3829: + return xe + e + e; + case 5349: + case 4246: + case 4810: + case 6968: + case 2756: + return xe + e + ye + e + be + e + e; + case 6828: + case 4268: + return xe + e + be + e + e; + case 6165: + return xe + e + be + "flex-" + e + e; + case 5187: + return xe + e + Ee(e, /(\w+).+(:[^]+)/, "-webkit-box-$1$2-ms-flex-$1$2") + e; + case 5443: + return xe + e + be + "flex-item-" + Ee(e, /flex-|-self/, "") + e; + case 4675: + return xe + e + be + "flex-line-pack" + Ee(e, /align-content|flex-|-self/, "") + e; + case 5548: + return xe + e + be + Ee(e, "shrink", "negative") + e; + case 5292: + return xe + e + be + Ee(e, "basis", "preferred-size") + e; + case 6060: + return xe + "box-" + Ee(e, "-grow", "") + xe + e + be + Ee(e, "grow", "positive") + e; + case 4554: + return xe + Ee(e, /([^-])(transform)/g, "$1-webkit-$2") + e; + case 6187: + return Ee(Ee(Ee(e, /(zoom-|grab)/, xe + "$1"), /(image-set)/, xe + "$1"), e, "") + e; + case 5495: + case 3959: + return Ee(e, /(image-set\([^]*)/, xe + "$1$`$1"); + case 4968: + return Ee(Ee(e, /(.+:)(flex-)?(.*)/, "-webkit-box-pack:$3-ms-flex-pack:$3"), /s.+-b[^;]+/, "justify") + xe + e + e; + case 4095: + case 3583: + case 4068: + case 2532: + return Ee(e, /(.+)-inline(.+)/, xe + "$1$2") + e; + case 8116: + case 7059: + case 5753: + case 5535: + case 5445: + case 5701: + case 4933: + case 4677: + case 5533: + case 5789: + case 5021: + case 4765: + if (Oe(e) - 1 - t > 6) switch (Pe(e, t + 1)) { + case 109: + if (45 !== Pe(e, t + 4)) break; + case 102: + return Ee(e, /(.+:)(.+)-([^]+)/, "$1-webkit-$2-$3$1" + ye + (108 == Pe(e, t + 3) ? "$3" : "$2-$3")) + e; + case 115: + return ~Re(e, "stretch") ? at(Ee(e, "stretch", "fill-available"), t) + e : e + } + break; + case 4949: + if (115 !== Pe(e, t + 1)) break; + case 6444: + switch (Pe(e, Oe(e) - 3 - (~Re(e, "!important") && 10))) { + case 107: + return Ee(e, ":", ":" + xe) + e; + case 101: + return Ee(e, /(.+:)([^;!]+)(;|!.+)?/, "$1" + xe + (45 === Pe(e, 14) ? "inline-" : "") + "box$3$1" + xe + "$2$3$1" + be + "$2box$3") + e + } + break; + case 5936: + switch (Pe(e, t + 11)) { + case 114: + return xe + e + be + Ee(e, /[svh]\w+-[tblr]{2}/, "tb") + e; + case 108: + return xe + e + be + Ee(e, /[svh]\w+-[tblr]{2}/, "tb-rl") + e; + case 45: + return xe + e + be + Ee(e, /[svh]\w+-[tblr]{2}/, "lr") + e + } + return xe + e + be + e + e + } + return e +} + +function it(e, t) { + for (var n = "", r = Te(e), o = 0; o < r; o++) n += t(e[o], o, e, t) || ""; + return n +} + +function lt(e, t, n, r) { + switch (e.type) { + case "@import": + case "decl": + return e.return = e.return || e.value; + case "comm": + return ""; + case "@keyframes": + return e.return = e.value + "{" + it(e.children, r) + "}"; + case "rule": + e.value = e.props.join(","); + } + return Oe(n = it(e.children, r)) ? e.return = e.value + "{" + n + "}" : "" +} + +function st(e) { + var t = Te(e); + return function(n, r, o, a) { + for (var i = "", l = 0; l < t; l++) i += e[l](n, r, o, a) || ""; + return i + } +} +var ut, ct, dt = function(e, t, n) { + for (var r = 0, o = 0; r = o, o = We(), 38 === r && 12 === o && (t[n] = 1), !Ve(o);) De(); + return He(e, Le) + }, + pt = function(e, t) { + return Ke(function(e, t) { + var n = -1, + r = 44; + do { + switch (Ve(r)) { + case 0: + 38 === r && 12 === We() && (t[n] = 1), e[n] += dt(Le - 1, t, n); + break; + case 2: + e[n] += Xe(r); + break; + case 4: + if (44 === r) { + e[++n] = 58 === We() ? "&\f" : "", t[n] = e[n].length; + break + } + default: + e[n] += ke(r); + } + } while (r = De()); + return e + }(qe(e), t)) + }, + ft = new WeakMap, + ht = function(e) { + if ("rule" === e.type && e.parent && !(e.length < 1)) { + for (var t = e.value, n = e.parent, r = e.column === n.column && e.line === n.line; + "rule" !== n.type;) + if (!(n = n.parent)) return; + if ((1 !== e.props.length || 58 === t.charCodeAt(0) || ft.get(n)) && !r) { + ft.set(e, !0); + for (var o = [], a = pt(t, o), i = n.props, l = 0, s = 0; l < a.length; l++) + for (var u = 0; u < i.length; u++, s++) e.props[s] = o[l] ? a[l].replace(/&\f/g, i[u]) : i[u] + " " + a[l]; + } + } + }, + mt = function(e) { + if ("decl" === e.type) { + var t = e.value; + 108 === t.charCodeAt(0) && 98 === t.charCodeAt(2) && (e.return = "", e.value = ""); + } + }, + vt = "undefined" != typeof document, + gt = vt ? void 0 : (ut = function() { + return he((function() { + var e = {}; + return function(t) { + return e[t] + } + })) + }, ct = new WeakMap, function(e) { + if (ct.has(e)) return ct.get(e); + var t = ut(e); + return ct.set(e, t), t + }), + bt = [function(e, t, n, r) { + if (e.length > -1 && !e.return) switch (e.type) { + case "decl": + e.return = at(e.value, e.length); + break; + case "@keyframes": + return it([Ae(e, { + value: Ee(e.value, "@", "@" + xe) + })], r); + case "rule": + if (e.length) return function(e, t) { + return e.map(t).join("") + }(e.props, (function(t) { + switch (function(e, t) { + return (e = t.exec(e)) ? e[0] : e + }(t, /(::plac\w+|:read-\w+)/)) { + case ":read-only": + case ":read-write": + return it([Ae(e, { + props: [Ee(t, /:(read-\w+)/, ":-moz-$1")] + })], r); + case "::placeholder": + return it([Ae(e, { + props: [Ee(t, /:(plac\w+)/, ":-webkit-input-$1")] + }), Ae(e, { + props: [Ee(t, /:(plac\w+)/, ":-moz-$1")] + }), Ae(e, { + props: [Ee(t, /:(plac\w+)/, be + "input-$1")] + })], r) + } + return "" + })) + } + }], + yt = function(e) { + var t = e.key; + if (vt && "css" === t) { + var n = document.querySelectorAll("style[data-emotion]:not([data-s])"); + Array.prototype.forEach.call(n, (function(e) { + -1 !== e.getAttribute("data-emotion").indexOf(" ") && (document.head.appendChild(e), e.setAttribute("data-s", "")); + })); + } + var r, o, a = e.stylisPlugins || bt, + i = {}, + l = []; + vt && (r = e.container || document.head, Array.prototype.forEach.call(document.querySelectorAll('style[data-emotion^="' + t + ' "]'), (function(e) { + for (var t = e.getAttribute("data-emotion").split(" "), n = 1; n < t.length; n++) i[t[n]] = !0; + l.push(e); + }))); + var s, u = [ht, mt]; + if (vt) { + var c, d = [lt, (s = function(e) { + c.insert(e); + }, function(e) { + e.root || (e = e.return) && s(e); + })], + p = st(u.concat(a, d)); + o = function(e, t, n, r) { + c = n, + function(e) { + it(et(e), p); + }(e ? e + "{" + t.styles + "}" : t.styles), r && (g.inserted[t.name] = !0); + }; + } else { + var f = [lt], + h = st(u.concat(a, f)), + m = gt(a)(t), + v = function(e, t) { + var n = t.name; + return void 0 === m[n] && (m[n] = function(e) { + return it(et(e), h) + }(e ? e + "{" + t.styles + "}" : t.styles)), m[n] + }; + o = function(e, t, n, r) { + var o = t.name, + a = v(e, t); + return void 0 === g.compat ? (r && (g.inserted[o] = !0), a) : r ? void(g.inserted[o] = a) : a + }; + } + var g = { + key: t, + sheet: new ge({ + key: t, + container: r, + nonce: e.nonce, + speedy: e.speedy, + prepend: e.prepend, + insertionPoint: e.insertionPoint + }), + nonce: e.nonce, + inserted: i, + registered: {}, + insert: o + }; + return g.sheet.hydrate(l), g + }, + xt = { + exports: {} + }, + wt = {}, + kt = "function" == typeof Symbol && Symbol.for, + St = kt ? Symbol.for("react.element") : 60103, + Ct = kt ? Symbol.for("react.portal") : 60106, + Et = kt ? Symbol.for("react.fragment") : 60107, + Rt = kt ? Symbol.for("react.strict_mode") : 60108, + Pt = kt ? Symbol.for("react.profiler") : 60114, + Mt = kt ? Symbol.for("react.provider") : 60109, + Ot = kt ? Symbol.for("react.context") : 60110, + Tt = kt ? Symbol.for("react.async_mode") : 60111, + jt = kt ? Symbol.for("react.concurrent_mode") : 60111, + zt = kt ? Symbol.for("react.forward_ref") : 60112, + Nt = kt ? Symbol.for("react.suspense") : 60113, + _t = kt ? Symbol.for("react.suspense_list") : 60120, + Lt = kt ? Symbol.for("react.memo") : 60115, + It = kt ? Symbol.for("react.lazy") : 60116, + Ft = kt ? Symbol.for("react.block") : 60121, + $t = kt ? Symbol.for("react.fundamental") : 60117, + At = kt ? Symbol.for("react.responder") : 60118, + Bt = kt ? Symbol.for("react.scope") : 60119; + +function Dt(e) { + if ("object" == typeof e && null !== e) { + var t = e.$$typeof; + switch (t) { + case St: + switch (e = e.type) { + case Tt: + case jt: + case Et: + case Pt: + case Rt: + case Nt: + return e; + default: + switch (e = e && e.$$typeof) { + case Ot: + case zt: + case It: + case Lt: + case Mt: + return e; + default: + return t + } + } + case Ct: + return t + } + } +} + +function Wt(e) { + return Dt(e) === jt +} +wt.AsyncMode = Tt, wt.ConcurrentMode = jt, wt.ContextConsumer = Ot, wt.ContextProvider = Mt, wt.Element = St, wt.ForwardRef = zt, wt.Fragment = Et, wt.Lazy = It, wt.Memo = Lt, wt.Portal = Ct, wt.Profiler = Pt, wt.StrictMode = Rt, wt.Suspense = Nt, wt.isAsyncMode = function(e) { + return Wt(e) || Dt(e) === Tt +}, wt.isConcurrentMode = Wt, wt.isContextConsumer = function(e) { + return Dt(e) === Ot +}, wt.isContextProvider = function(e) { + return Dt(e) === Mt +}, wt.isElement = function(e) { + return "object" == typeof e && null !== e && e.$$typeof === St +}, wt.isForwardRef = function(e) { + return Dt(e) === zt +}, wt.isFragment = function(e) { + return Dt(e) === Et +}, wt.isLazy = function(e) { + return Dt(e) === It +}, wt.isMemo = function(e) { + return Dt(e) === Lt +}, wt.isPortal = function(e) { + return Dt(e) === Ct +}, wt.isProfiler = function(e) { + return Dt(e) === Pt +}, wt.isStrictMode = function(e) { + return Dt(e) === Rt +}, wt.isSuspense = function(e) { + return Dt(e) === Nt +}, wt.isValidElementType = function(e) { + return "string" == typeof e || "function" == typeof e || e === Et || e === jt || e === Pt || e === Rt || e === Nt || e === _t || "object" == typeof e && null !== e && (e.$$typeof === It || e.$$typeof === Lt || e.$$typeof === Mt || e.$$typeof === Ot || e.$$typeof === zt || e.$$typeof === $t || e.$$typeof === At || e.$$typeof === Bt || e.$$typeof === Ft) +}, wt.typeOf = Dt, xt.exports = wt; +var Ut = xt.exports, + Ht = {}; +Ht[Ut.ForwardRef] = { + $$typeof: !0, + render: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0 +}, Ht[Ut.Memo] = { + $$typeof: !0, + compare: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0, + type: !0 +}; +var Vt = "undefined" != typeof document; + +function qt(e, t, n) { + var r = ""; + return n.split(" ").forEach((function(n) { + void 0 !== e[n] ? t.push(e[n] + ";") : r += n + " "; + })), r +} +var Kt = function(e, t, n) { + var r = e.key + "-" + t.name; + if ((!1 === n || !1 === Vt && void 0 !== e.compat) && void 0 === e.registered[r] && (e.registered[r] = t.styles), void 0 === e.inserted[t.name]) { + var o = "", + a = t; + do { + var i = e.insert(t === a ? "." + r : "", a, e.sheet, !0); + Vt || void 0 === i || (o += i), a = a.next; + } while (void 0 !== a); + if (!Vt && 0 !== o.length) return o + } +}; +var Xt = { + animationIterationCount: 1, + borderImageOutset: 1, + borderImageSlice: 1, + borderImageWidth: 1, + boxFlex: 1, + boxFlexGroup: 1, + boxOrdinalGroup: 1, + columnCount: 1, + columns: 1, + flex: 1, + flexGrow: 1, + flexPositive: 1, + flexShrink: 1, + flexNegative: 1, + flexOrder: 1, + gridRow: 1, + gridRowEnd: 1, + gridRowSpan: 1, + gridRowStart: 1, + gridColumn: 1, + gridColumnEnd: 1, + gridColumnSpan: 1, + gridColumnStart: 1, + msGridRow: 1, + msGridRowSpan: 1, + msGridColumn: 1, + msGridColumnSpan: 1, + fontWeight: 1, + lineHeight: 1, + opacity: 1, + order: 1, + orphans: 1, + tabSize: 1, + widows: 1, + zIndex: 1, + zoom: 1, + WebkitLineClamp: 1, + fillOpacity: 1, + floodOpacity: 1, + stopOpacity: 1, + strokeDasharray: 1, + strokeDashoffset: 1, + strokeMiterlimit: 1, + strokeOpacity: 1, + strokeWidth: 1 + }, + Yt = /[A-Z]|^ms/g, + Qt = /_EMO_([^_]+?)_([^]*?)_EMO_/g, + Gt = function(e) { + return 45 === e.charCodeAt(1) + }, + Zt = function(e) { + return null != e && "boolean" != typeof e + }, + Jt = he((function(e) { + return Gt(e) ? e : e.replace(Yt, "-$&").toLowerCase() + })), + en = function(e, t) { + switch (e) { + case "animation": + case "animationName": + if ("string" == typeof t) return t.replace(Qt, (function(e, t, n) { + return nn = { + name: t, + styles: n, + next: nn + }, t + })) + } + return 1 === Xt[e] || Gt(e) || "number" != typeof t || 0 === t ? t : t + "px" + }; + +function tn(e, t, n) { + if (null == n) return ""; + if (void 0 !== n.__emotion_styles) return n; + switch (typeof n) { + case "boolean": + return ""; + case "object": + if (1 === n.anim) return nn = { + name: n.name, + styles: n.styles, + next: nn + }, n.name; + if (void 0 !== n.styles) { + var r = n.next; + if (void 0 !== r) + for (; void 0 !== r;) nn = { + name: r.name, + styles: r.styles, + next: nn + }, r = r.next; + return n.styles + ";" + } + return function(e, t, n) { + var r = ""; + if (Array.isArray(n)) + for (var o = 0; o < n.length; o++) r += tn(e, t, n[o]) + ";"; + else + for (var a in n) { + var i = n[a]; + if ("object" != typeof i) null != t && void 0 !== t[i] ? r += a + "{" + t[i] + "}" : Zt(i) && (r += Jt(a) + ":" + en(a, i) + ";"); + else if (!Array.isArray(i) || "string" != typeof i[0] || null != t && void 0 !== t[i[0]]) { + var l = tn(e, t, i); + switch (a) { + case "animation": + case "animationName": + r += Jt(a) + ":" + l + ";"; + break; + default: + r += a + "{" + l + "}"; + } + } else + for (var s = 0; s < i.length; s++) Zt(i[s]) && (r += Jt(a) + ":" + en(a, i[s]) + ";"); + } + return r + }(e, t, n); + case "function": + if (void 0 !== e) { + var o = nn, + a = n(e); + return nn = o, tn(e, t, a) + } + } + if (null == t) return n; + var i = t[n]; + return void 0 !== i ? i : n +} +var nn, rn = /label:\s*([^\s;\n{]+)\s*(;|$)/g, + on = function(e, t, n) { + if (1 === e.length && "object" == typeof e[0] && null !== e[0] && void 0 !== e[0].styles) return e[0]; + var r = !0, + o = ""; + nn = void 0; + var a = e[0]; + null == a || void 0 === a.raw ? (r = !1, o += tn(n, t, a)) : o += a[0]; + for (var i = 1; i < e.length; i++) o += tn(n, t, e[i]), r && (o += a[i]); + rn.lastIndex = 0; + for (var l, s = ""; null !== (l = rn.exec(o));) s += "-" + l[1]; + var u = function(e) { + for (var t, n = 0, r = 0, o = e.length; o >= 4; ++r, o -= 4) t = 1540483477 * (65535 & (t = 255 & e.charCodeAt(r) | (255 & e.charCodeAt(++r)) << 8 | (255 & e.charCodeAt(++r)) << 16 | (255 & e.charCodeAt(++r)) << 24)) + (59797 * (t >>> 16) << 16), n = 1540483477 * (65535 & (t ^= t >>> 24)) + (59797 * (t >>> 16) << 16) ^ 1540483477 * (65535 & n) + (59797 * (n >>> 16) << 16); + switch (o) { + case 3: + n ^= (255 & e.charCodeAt(r + 2)) << 16; + case 2: + n ^= (255 & e.charCodeAt(r + 1)) << 8; + case 1: + n = 1540483477 * (65535 & (n ^= 255 & e.charCodeAt(r))) + (59797 * (n >>> 16) << 16); + } + return (((n = 1540483477 * (65535 & (n ^= n >>> 13)) + (59797 * (n >>> 16) << 16)) ^ n >>> 15) >>> 0).toString(36) + }(o) + s; + return { + name: u, + styles: o, + next: nn + } + }, + an = "undefined" != typeof document, + ln = T.exports.createContext("undefined" != typeof HTMLElement ? yt({ + key: "css" + }) : null); +ln.Provider; +var sn = function(e) { + return T.exports.forwardRef((function(t, n) { + var r = T.exports.useContext(ln); + return e(t, r, n) + })) +}; +an || (sn = function(e) { + return function(t) { + var n = T.exports.useContext(ln); + return null === n ? (n = yt({ + key: "css" + }), T.exports.createElement(ln.Provider, { + value: n + }, e(t, n))) : e(t, n) + } +}); +var un = T.exports.createContext({}), + cn = sn((function(e, t) { + var n = e.styles, + r = on([n], void 0, T.exports.useContext(un)); + if (!an) { + for (var o, a = r.name, i = r.styles, l = r.next; void 0 !== l;) a += " " + l.name, i += l.styles, l = l.next; + var s = !0 === t.compat, + u = t.insert("", { + name: a, + styles: i + }, t.sheet, s); + return s ? null : T.exports.createElement("style", ((o = {})["data-emotion"] = t.key + "-global " + a, o.dangerouslySetInnerHTML = { + __html: u + }, o.nonce = t.sheet.nonce, o)) + } + var c = T.exports.useRef(); + return T.exports.useLayoutEffect((function() { + var e = t.key + "-global", + n = new ge({ + key: e, + nonce: t.sheet.nonce, + container: t.sheet.container, + speedy: t.sheet.isSpeedy + }), + o = !1, + a = document.querySelector('style[data-emotion="' + e + " " + r.name + '"]'); + return t.sheet.tags.length && (n.before = t.sheet.tags[0]), null !== a && (o = !0, a.setAttribute("data-emotion", e), n.hydrate([a])), c.current = [n, o], + function() { + n.flush(); + } + }), [t]), T.exports.useLayoutEffect((function() { + var e = c.current, + n = e[0]; + if (e[1]) e[1] = !1; + else { + if (void 0 !== r.next && Kt(t, r.next, !0), n.tags.length) { + var o = n.tags[n.tags.length - 1].nextElementSibling; + n.before = o, n.flush(); + } + t.insert("", r, n, !1); + } + }), [t, r.name]), null + })); + +function dn() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return on(t) +} +var pn = function() { + var e = dn.apply(void 0, arguments), + t = "animation-" + e.name; + return { + name: t, + styles: "@keyframes " + t + "{" + e.styles + "}", + anim: 1, + toString: function() { + return "_EMO_" + this.name + "_" + this.styles + "_EMO_" + } + } + }, + fn = ve, + hn = function(e) { + return "theme" !== e + }, + mn = function(e) { + return "string" == typeof e && e.charCodeAt(0) > 96 ? fn : hn + }, + vn = function(e, t, n) { + var r; + if (t) { + var o = t.shouldForwardProp; + r = e.__emotion_forwardProp && o ? function(t) { + return e.__emotion_forwardProp(t) && o(t) + } : o; + } + return "function" != typeof r && n && (r = e.__emotion_forwardProp), r + }, + gn = "undefined" != typeof document, + bn = function() { + return null + }, + yn = function t(n, r) { + var o, a, i = n.__emotion_real === n, + l = i && n.__emotion_base || n; + void 0 !== r && (o = r.label, a = r.target); + var s = vn(n, r, i), + u = s || mn(l), + c = !u("as"); + return function() { + var d = arguments, + p = i && void 0 !== n.__emotion_styles ? n.__emotion_styles.slice(0) : []; + if (void 0 !== o && p.push("label:" + o + ";"), null == d[0] || void 0 === d[0].raw) p.push.apply(p, d); + else { + p.push(d[0][0]); + for (var f$1 = d.length, h = 1; h < f$1; h++) p.push(d[h], d[0][h]); + } + var m = sn((function(e, t, n) { + var r = c && e.as || l, + o = "", + i = [], + d = e; + if (null == e.theme) { + for (var f in d = {}, e) d[f] = e[f]; + d.theme = T.exports.useContext(un); + } + "string" == typeof e.className ? o = qt(t.registered, i, e.className) : null != e.className && (o = e.className + " "); + var h = on(p.concat(i), t.registered, d), + m = Kt(t, h, "string" == typeof r); + o += t.key + "-" + h.name, void 0 !== a && (o += " " + a); + var v = c && void 0 === s ? mn(r) : u, + g = {}; + for (var b in e) c && "as" === b || v(b) && (g[b] = e[b]); + g.className = o, g.ref = n; + var y = T.exports.createElement(r, g), + x = T.exports.createElement(bn, null); + if (!gn && void 0 !== m) { + for (var w, k = h.name, S = h.next; void 0 !== S;) k += " " + S.name, S = S.next; + x = T.exports.createElement("style", ((w = {})["data-emotion"] = t.key + " " + k, w.dangerouslySetInnerHTML = { + __html: m + }, w.nonce = t.sheet.nonce, w)); + } + return T.exports.createElement(T.exports.Fragment, null, x, y) + })); + return m.displayName = void 0 !== o ? o : "Styled(" + ("string" == typeof l ? l : l.displayName || l.name || "Component") + ")", m.defaultProps = n.defaultProps, m.__emotion_real = m, m.__emotion_base = l, m.__emotion_styles = p, m.__emotion_forwardProp = s, Object.defineProperty(m, "toString", { + value: function() { + return "." + a + } + }), m.withComponent = function(n, o) { + return t(n, f({}, r, o, { + shouldForwardProp: vn(m, o, !0) + })).apply(void 0, p) + }, m + } + }.bind(); +["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "marquee", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr", "circle", "clipPath", "defs", "ellipse", "foreignObject", "g", "image", "line", "linearGradient", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "text", "tspan"].forEach((function(e) { + yn[e] = yn(e); +})); +var xn = yn, + wn = { + exports: {} + }, + kn = {}, + Sn = T.exports, + Cn = 60103; +if (kn.Fragment = 60107, "function" == typeof Symbol && Symbol.for) { + var En = Symbol.for; + Cn = En("react.element"), kn.Fragment = En("react.fragment"); +} +var Rn = Sn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, + Pn = Object.prototype.hasOwnProperty, + Mn = { + key: !0, + ref: !0, + __self: !0, + __source: !0 + }; + +function On(e, t, n) { + var r, o = {}, + a = null, + i = null; + for (r in void 0 !== n && (a = "" + n), void 0 !== t.key && (a = "" + t.key), void 0 !== t.ref && (i = t.ref), t) Pn.call(t, r) && !Mn.hasOwnProperty(r) && (o[r] = t[r]); + if (e && e.defaultProps) + for (r in t = e.defaultProps) void 0 === o[r] && (o[r] = t[r]); + return { + $$typeof: Cn, + type: e, + key: a, + ref: i, + props: o, + _owner: Rn.current + } +} + +function Tn(e) { + const { + styles: t, + defaultTheme: n = {} + } = e, r = "function" == typeof t ? e => { + return t(null == (r = e) || 0 === Object.keys(r).length ? n : e); + var r; + } : t; + return wn.exports.jsx(cn, { + styles: r + }) +} /** @license MUI v5.2.6 * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */function jn(e,t){return xn(e,t)}kn.jsx=On,kn.jsxs=On,wn.exports=kn;var Nn=60103,_n=60106,Ln=60107,In=60108,Fn=60114,$n=60109,An=60110,Bn=60112,Dn=60113,Wn=60120,Un=60115,Hn=60116,Vn=60121,qn=60122,Kn=60117,Xn=60129,Yn=60131; + */ +function jn(e, t) { + return xn(e, t) +} +kn.jsx = On, kn.jsxs = On, wn.exports = kn; +var Nn = 60103, + _n = 60106, + Ln = 60107, + In = 60108, + Fn = 60114, + $n = 60109, + An = 60110, + Bn = 60112, + Dn = 60113, + Wn = 60120, + Un = 60115, + Hn = 60116, + Vn = 60121, + qn = 60122, + Kn = 60117, + Xn = 60129, + Yn = 60131; /** @license React v17.0.2 * react-is.production.min.js * @@ -24,7 +1503,790 @@ var T={exports:{}},j={},z=Object.getOwnPropertySymbols,N=Object.prototype.hasOwn * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */if("function"==typeof Symbol&&Symbol.for){var Qn=Symbol.for;Nn=Qn("react.element"),_n=Qn("react.portal"),Ln=Qn("react.fragment"),In=Qn("react.strict_mode"),Fn=Qn("react.profiler"),$n=Qn("react.provider"),An=Qn("react.context"),Bn=Qn("react.forward_ref"),Dn=Qn("react.suspense"),Wn=Qn("react.suspense_list"),Un=Qn("react.memo"),Hn=Qn("react.lazy"),Vn=Qn("react.block"),qn=Qn("react.server.block"),Kn=Qn("react.fundamental"),Xn=Qn("react.debug_trace_mode"),Yn=Qn("react.legacy_hidden");}function sr(...e){return e.reduce(((e,t)=>null==t?e:function(...n){e.apply(this,n),t.apply(this,n);}),(()=>{}))}function ur(e,t=166){let n;function r(...r){clearTimeout(n),n=setTimeout((()=>{e.apply(this,r);}),t);}return r.clear=()=>{clearTimeout(n);},r}function cr(e,t){return T.exports.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}function dr(e){return e&&e.ownerDocument||document}function pr(e){return dr(e).defaultView||window}function fr(e,t){"function"==typeof e?e(t):e&&(e.current=t);}var hr="undefined"!=typeof window?T.exports.useLayoutEffect:T.exports.useEffect;let mr=0;function vr(e){const[t,n]=T.exports.useState(e),r=e||t;return T.exports.useEffect((()=>{null==t&&(mr+=1,n(`mui-${mr}`));}),[t]),r}function gr({controlled:e,default:t,name:n,state:r="value"}){const{current:o}=T.exports.useRef(void 0!==e),[a,i]=T.exports.useState(t);return [o?e:a,T.exports.useCallback((e=>{o||i(e);}),[])]}function br(e){const t=T.exports.useRef(e);return hr((()=>{t.current=e;})),T.exports.useCallback(((...e)=>(0, t.current)(...e)),[])}function yr(e,t){return T.exports.useMemo((()=>null==e&&null==t?null:n=>{fr(e,n),fr(t,n);}),[e,t])}let xr,wr=!0,kr=!1;const Sr={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function Cr(e){e.metaKey||e.altKey||e.ctrlKey||(wr=!0);}function Er(){wr=!1;}function Rr(){"hidden"===this.visibilityState&&kr&&(wr=!0);}function Pr(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(e){}return wr||function(e){const{type:t,tagName:n}=e;return !("INPUT"!==n||!Sr[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}function Mr(){const e=T.exports.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",Cr,!0),t.addEventListener("mousedown",Er,!0),t.addEventListener("pointerdown",Er,!0),t.addEventListener("touchstart",Er,!0),t.addEventListener("visibilitychange",Rr,!0));}),[]),t=T.exports.useRef(!1);return {isFocusVisibleRef:t,onFocus:function(e){return !!Pr(e)&&(t.current=!0,!0)},onBlur:function(){return !!t.current&&(kr=!0,window.clearTimeout(xr),xr=window.setTimeout((()=>{kr=!1;}),100),t.current=!1,!0)},ref:e}}function Or(e){const t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}let Tr;function jr(){if(Tr)return Tr;const e=document.createElement("div"),t=document.createElement("div");return t.style.width="10px",t.style.height="1px",e.appendChild(t),e.dir="rtl",e.style.fontSize="14px",e.style.width="4px",e.style.height="1px",e.style.position="absolute",e.style.top="-1000px",e.style.overflow="scroll",document.body.appendChild(e),Tr="reverse",e.scrollLeft>0?Tr="default":(e.scrollLeft=1,0===e.scrollLeft&&(Tr="negative")),document.body.removeChild(e),Tr}function zr(e,t){const n=e.scrollLeft;if("rtl"!==t)return n;switch(jr()){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n;default:return n}}function Nr(t,n){const r=f({},n);return Object.keys(t).forEach((e=>{void 0===r[e]&&(r[e]=t[e]);})),r}function _r(...e){const n=e.reduce(((e,t)=>(t.filterProps.forEach((n=>{e[n]=t;})),e)),{}),r=e=>Object.keys(e).reduce(((r,o)=>n[o]?h(r,n[o](e)):r),{});return r.propTypes={},r.filterProps=e.reduce(((e,t)=>e.concat(t.filterProps)),[]),r}function Lr(e){return "number"!=typeof e?e:`${e}px solid`}const Ir=A$1({prop:"border",themeKey:"borders",transform:Lr}),Fr=A$1({prop:"borderTop",themeKey:"borders",transform:Lr}),$r=A$1({prop:"borderRight",themeKey:"borders",transform:Lr}),Ar=A$1({prop:"borderBottom",themeKey:"borders",transform:Lr}),Br=A$1({prop:"borderLeft",themeKey:"borders",transform:Lr}),Dr=A$1({prop:"borderColor",themeKey:"palette"}),Wr=A$1({prop:"borderTopColor",themeKey:"palette"}),Ur=A$1({prop:"borderRightColor",themeKey:"palette"}),Hr=A$1({prop:"borderBottomColor",themeKey:"palette"}),Vr=A$1({prop:"borderLeftColor",themeKey:"palette"}),qr=e=>{if(void 0!==e.borderRadius&&null!==e.borderRadius){const t=j$1(e.theme,"shape.borderRadius",4),n=e=>({borderRadius:I$1(t,e)});return y(e,e.borderRadius,n)}return null};qr.propTypes={},qr.filterProps=["borderRadius"];var Kr=_r(Ir,Fr,$r,Ar,Br,Dr,Wr,Ur,Hr,Vr,qr);var Xr=_r(A$1({prop:"displayPrint",cssProperty:!1,transform:e=>({"@media print":{display:e}})}),A$1({prop:"display"}),A$1({prop:"overflow"}),A$1({prop:"textOverflow"}),A$1({prop:"visibility"}),A$1({prop:"whiteSpace"}));var Yr=_r(A$1({prop:"flexBasis"}),A$1({prop:"flexDirection"}),A$1({prop:"flexWrap"}),A$1({prop:"justifyContent"}),A$1({prop:"alignItems"}),A$1({prop:"alignContent"}),A$1({prop:"order"}),A$1({prop:"flex"}),A$1({prop:"flexGrow"}),A$1({prop:"flexShrink"}),A$1({prop:"alignSelf"}),A$1({prop:"justifyItems"}),A$1({prop:"justifySelf"}));const Qr=e=>{if(void 0!==e.gap&&null!==e.gap){const t=j$1(e.theme,"spacing",8),n=e=>({gap:I$1(t,e)});return y(e,e.gap,n)}return null};Qr.propTypes={},Qr.filterProps=["gap"];const Gr=e=>{if(void 0!==e.columnGap&&null!==e.columnGap){const t=j$1(e.theme,"spacing",8),n=e=>({columnGap:I$1(t,e)});return y(e,e.columnGap,n)}return null};Gr.propTypes={},Gr.filterProps=["columnGap"];const Zr=e=>{if(void 0!==e.rowGap&&null!==e.rowGap){const t=j$1(e.theme,"spacing",8),n=e=>({rowGap:I$1(t,e)});return y(e,e.rowGap,n)}return null};Zr.propTypes={},Zr.filterProps=["rowGap"];var Jr=_r(Qr,Gr,Zr,A$1({prop:"gridColumn"}),A$1({prop:"gridRow"}),A$1({prop:"gridAutoFlow"}),A$1({prop:"gridAutoColumns"}),A$1({prop:"gridAutoRows"}),A$1({prop:"gridTemplateColumns"}),A$1({prop:"gridTemplateRows"}),A$1({prop:"gridTemplateAreas"}),A$1({prop:"gridArea"}));var eo=_r(A$1({prop:"color",themeKey:"palette"}),A$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),A$1({prop:"backgroundColor",themeKey:"palette"}));var to=_r(A$1({prop:"position"}),A$1({prop:"zIndex",themeKey:"zIndex"}),A$1({prop:"top"}),A$1({prop:"right"}),A$1({prop:"bottom"}),A$1({prop:"left"}));var no=A$1({prop:"boxShadow",themeKey:"shadows"});function ro(e){return e<=1&&0!==e?100*e+"%":e}const oo=A$1({prop:"width",transform:ro}),ao=e=>{if(void 0!==e.maxWidth&&null!==e.maxWidth){const t=t=>{var n,r,o;return {maxWidth:(null==(n=e.theme)||null==(r=n.breakpoints)||null==(o=r.values)?void 0:o[t])||m$1[t]||ro(t)}};return y(e,e.maxWidth,t)}return null};ao.filterProps=["maxWidth"];const io=A$1({prop:"minWidth",transform:ro}),lo=A$1({prop:"height",transform:ro}),so=A$1({prop:"maxHeight",transform:ro}),uo=A$1({prop:"minHeight",transform:ro});A$1({prop:"size",cssProperty:"width",transform:ro}),A$1({prop:"size",cssProperty:"height",transform:ro});var co=_r(oo,ao,io,lo,so,uo,A$1({prop:"boxSizing"}));const po=A$1({prop:"fontFamily",themeKey:"typography"}),fo=A$1({prop:"fontSize",themeKey:"typography"}),ho=A$1({prop:"fontStyle",themeKey:"typography"}),mo=A$1({prop:"fontWeight",themeKey:"typography"}),vo=A$1({prop:"letterSpacing"}),go=A$1({prop:"lineHeight"}),bo=A$1({prop:"textAlign"});var yo=_r(A$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),po,fo,ho,mo,vo,go,bo);const xo={borders:Kr.filterProps,display:Xr.filterProps,flexbox:Yr.filterProps,grid:Jr.filterProps,positions:to.filterProps,palette:eo.filterProps,shadows:no.filterProps,sizing:co.filterProps,spacing:z$1.filterProps,typography:yo.filterProps},wo={borders:Kr,display:Xr,flexbox:Yr,grid:Jr,positions:to,palette:eo,shadows:no,sizing:co,spacing:z$1,typography:yo},ko=Object.keys(xo).reduce(((e,t)=>(xo[t].forEach((n=>{e[n]=wo[t];})),e)),{});function So(e,t,n){const r={[e]:t,theme:n},o=ko[e];return o?o(r):{[e]:t}}function Co(e){const{sx:n,theme:r={}}=e||{};if(!n)return null;function a(e){let n=e;if("function"==typeof e)n=e(r);else if("object"!=typeof e)return e;const a=x(r.breakpoints),i=Object.keys(a);let l=a;return Object.keys(n).forEach((e=>{const a=(i=n[e],s=r,"function"==typeof i?i(s):i);var i,s;if(null!=a)if("object"==typeof a)if(ko[e])l=h(l,So(e,a,r));else {const n=y({theme:r},a,(t=>({[e]:t})));!function(...e){const t=e.reduce(((e,t)=>e.concat(Object.keys(t))),[]),n=new Set(t);return e.every((e=>n.size===Object.keys(e).length))}(n,a)?l=h(l,n):l[e]=Co({sx:a,theme:r});}else l=h(l,So(e,a,r));})),k(i,l)}return Array.isArray(n)?n.map(a):a(n)}Co.filterProps=["sx"];const Eo=["sx"];function Ro(t){const{sx:n}=t,r=u(t,Eo),{systemProps:o,otherProps:a}=(e=>{const t={systemProps:{},otherProps:{}};return Object.keys(e).forEach((n=>{ko[n]?t.systemProps[n]=e[n]:t.otherProps[n]=e[n];})),t})(r);let i;return i=Array.isArray(n)?[o,...n]:"function"==typeof n?(...t)=>{const r=n(...t);return l(r)?f({},o,r):o}:f({},o,n),f({},a,{sx:i})}function Po(e){var t,n,r="";if("string"==typeof e||"number"==typeof e)r+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t{const t=null===o?r:function(t,n){if("function"==typeof n)return n(t);return f({},t,n)}(o,r);return null!=t&&(t[jo]=null!==o),t}),[r,o]);return wn.exports.jsx(Oo.Provider,{value:a,children:n})}function No(e=null){const t=To();return t&&(n=t,0!==Object.keys(n).length)?t:e;var n;}const _o=L$1();function Lo(e=_o){return No(e)}const Io=["className","component"];function Fo(t={}){const{defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:o}=t,a=jn("div")(Co);return T.exports.forwardRef((function(t,i){const l=Lo(n),s=Ro(t),{className:u$1,component:d="div"}=s,p=u(s,Io);return wn.exports.jsx(a,f({as:d,ref:i,className:Mo(u$1,o?o(r):r),theme:l},p))}))}var $o=Fo();const Ao=["variant"];function Bo(e){return 0===e.length}function Do(e){const{variant:t}=e,n=u(e,Ao);let r=t||"";return Object.keys(n).sort().forEach((t=>{r+="color"===t?Bo(r)?e[t]:g(e[t]):`${Bo(r)?t:g(t)}${g(e[t].toString())}`;})),r}const Wo=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],Uo=["theme"],Ho=["theme"];function Vo(e){return 0===Object.keys(e).length}function qo(e){return "ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}const Ko=L$1();function Xo({props:e,name:t,defaultTheme:n}){const r=function(e){const{theme:t,name:n,props:r}=e;return t&&t.components&&t.components[n]&&t.components[n].defaultProps?Nr(t.components[n].defaultProps,r):r}({theme:Lo(n),name:t,props:e});return r}function Yo(e){const t=Lo();return wn.exports.jsx(un.Provider,{value:"object"==typeof t?t:{},children:e.children})}function Qo(e){return "string"==typeof e}function Go(t,n={},r){return Qo(t)?n:f({},n,{ownerState:f({},n.ownerState,r)})}function Zo(e,t,n){const r={};return Object.keys(e).forEach((o=>{r[o]=e[o].reduce(((e,r)=>(r&&(n&&n[r]&&e.push(n[r]),e.push(t(r))),e)),[]).join(" ");})),r}const Jo=e=>e;var ea=(()=>{let e=Jo;return {configure(t){e=t;},generate:t=>e(t),reset(){e=Jo;}}})();const ta={active:"Mui-active",checked:"Mui-checked",completed:"Mui-completed",disabled:"Mui-disabled",error:"Mui-error",expanded:"Mui-expanded",focused:"Mui-focused",focusVisible:"Mui-focusVisible",required:"Mui-required",selected:"Mui-selected"};function na(e,t){return ta[t]||`${ea.generate(e)}-${t}`}function ra(e,t){const n={};return t.forEach((t=>{n[t]=na(e,t);})),n}function oa(e){return na("MuiBackdrop",e)}ra("MuiBackdrop",["root","invisible"]);const aa=["classes","className","invisible","component","components","componentsProps","theme"];var ia=T.exports.forwardRef((function(t,n){const{classes:r,className:o,invisible:a=!1,component:i="div",components:l={},componentsProps:s={},theme:u$1}=t,d=u(t,aa),p=f({},t,{classes:r,invisible:a}),f$1=(e=>{const{classes:t,invisible:n}=e;return Zo({root:["root",n&&"invisible"]},oa,t)})(p),h=l.Root||i,m=s.root||{};return wn.exports.jsx(h,f({"aria-hidden":!0},m,!Qo(h)&&{as:i,ownerState:f({},p,m.ownerState),theme:u$1},{ref:n},d,{className:Mo(f$1.root,m.className,o)}))})),la={exports:{}},sa={},ua={exports:{}},ca={}; + */ +if ("function" == typeof Symbol && Symbol.for) { + var Qn = Symbol.for; + Nn = Qn("react.element"), _n = Qn("react.portal"), Ln = Qn("react.fragment"), In = Qn("react.strict_mode"), Fn = Qn("react.profiler"), $n = Qn("react.provider"), An = Qn("react.context"), Bn = Qn("react.forward_ref"), Dn = Qn("react.suspense"), Wn = Qn("react.suspense_list"), Un = Qn("react.memo"), Hn = Qn("react.lazy"), Vn = Qn("react.block"), qn = Qn("react.server.block"), Kn = Qn("react.fundamental"), Xn = Qn("react.debug_trace_mode"), Yn = Qn("react.legacy_hidden"); +} + +function sr(...e) { + return e.reduce(((e, t) => null == t ? e : function(...n) { + e.apply(this, n), t.apply(this, n); + }), (() => {})) +} + +function ur(e, t = 166) { + let n; + + function r(...r) { + clearTimeout(n), n = setTimeout((() => { + e.apply(this, r); + }), t); + } + return r.clear = () => { + clearTimeout(n); + }, r +} + +function cr(e, t) { + return T.exports.isValidElement(e) && -1 !== t.indexOf(e.type.muiName) +} + +function dr(e) { + return e && e.ownerDocument || document +} + +function pr(e) { + return dr(e).defaultView || window +} + +function fr(e, t) { + "function" == typeof e ? e(t) : e && (e.current = t); +} +var hr = "undefined" != typeof window ? T.exports.useLayoutEffect : T.exports.useEffect; +let mr = 0; + +function vr(e) { + const [t, n] = T.exports.useState(e), r = e || t; + return T.exports.useEffect((() => { + null == t && (mr += 1, n(`mui-${mr}`)); + }), [t]), r +} + +function gr({ + controlled: e, + default: t, + name: n, + state: r = "value" +}) { + const { + current: o + } = T.exports.useRef(void 0 !== e), [a, i] = T.exports.useState(t); + return [o ? e : a, T.exports.useCallback((e => { + o || i(e); + }), [])] +} + +function br(e) { + const t = T.exports.useRef(e); + return hr((() => { + t.current = e; + })), T.exports.useCallback(((...e) => (0, t.current)(...e)), []) +} + +function yr(e, t) { + return T.exports.useMemo((() => null == e && null == t ? null : n => { + fr(e, n), fr(t, n); + }), [e, t]) +} +let xr, wr = !0, + kr = !1; +const Sr = { + text: !0, + search: !0, + url: !0, + tel: !0, + email: !0, + password: !0, + number: !0, + date: !0, + month: !0, + week: !0, + time: !0, + datetime: !0, + "datetime-local": !0 +}; + +function Cr(e) { + e.metaKey || e.altKey || e.ctrlKey || (wr = !0); +} + +function Er() { + wr = !1; +} + +function Rr() { + "hidden" === this.visibilityState && kr && (wr = !0); +} + +function Pr(e) { + const { + target: t + } = e; + try { + return t.matches(":focus-visible") + } catch (e) {} + return wr || function(e) { + const { + type: t, + tagName: n + } = e; + return !("INPUT" !== n || !Sr[t] || e.readOnly) || "TEXTAREA" === n && !e.readOnly || !!e.isContentEditable + }(t) +} + +function Mr() { + const e = T.exports.useCallback((e => { + var t; + null != e && ((t = e.ownerDocument).addEventListener("keydown", Cr, !0), t.addEventListener("mousedown", Er, !0), t.addEventListener("pointerdown", Er, !0), t.addEventListener("touchstart", Er, !0), t.addEventListener("visibilitychange", Rr, !0)); + }), []), + t = T.exports.useRef(!1); + return { + isFocusVisibleRef: t, + onFocus: function(e) { + return !!Pr(e) && (t.current = !0, !0) + }, + onBlur: function() { + return !!t.current && (kr = !0, window.clearTimeout(xr), xr = window.setTimeout((() => { + kr = !1; + }), 100), t.current = !1, !0) + }, + ref: e + } +} + +function Or(e) { + const t = e.documentElement.clientWidth; + return Math.abs(window.innerWidth - t) +} +let Tr; + +function jr() { + if (Tr) return Tr; + const e = document.createElement("div"), + t = document.createElement("div"); + return t.style.width = "10px", t.style.height = "1px", e.appendChild(t), e.dir = "rtl", e.style.fontSize = "14px", e.style.width = "4px", e.style.height = "1px", e.style.position = "absolute", e.style.top = "-1000px", e.style.overflow = "scroll", document.body.appendChild(e), Tr = "reverse", e.scrollLeft > 0 ? Tr = "default" : (e.scrollLeft = 1, 0 === e.scrollLeft && (Tr = "negative")), document.body.removeChild(e), Tr +} + +function zr(e, t) { + const n = e.scrollLeft; + if ("rtl" !== t) return n; + switch (jr()) { + case "negative": + return e.scrollWidth - e.clientWidth + n; + case "reverse": + return e.scrollWidth - e.clientWidth - n; + default: + return n + } +} + +function Nr(t, n) { + const r = f({}, n); + return Object.keys(t).forEach((e => { + void 0 === r[e] && (r[e] = t[e]); + })), r +} + +function _r(...e) { + const n = e.reduce(((e, t) => (t.filterProps.forEach((n => { + e[n] = t; + })), e)), {}), + r = e => Object.keys(e).reduce(((r, o) => n[o] ? h(r, n[o](e)) : r), {}); + return r.propTypes = {}, r.filterProps = e.reduce(((e, t) => e.concat(t.filterProps)), []), r +} + +function Lr(e) { + return "number" != typeof e ? e : `${e}px solid` +} +const Ir = A$1({ + prop: "border", + themeKey: "borders", + transform: Lr + }), + Fr = A$1({ + prop: "borderTop", + themeKey: "borders", + transform: Lr + }), + $r = A$1({ + prop: "borderRight", + themeKey: "borders", + transform: Lr + }), + Ar = A$1({ + prop: "borderBottom", + themeKey: "borders", + transform: Lr + }), + Br = A$1({ + prop: "borderLeft", + themeKey: "borders", + transform: Lr + }), + Dr = A$1({ + prop: "borderColor", + themeKey: "palette" + }), + Wr = A$1({ + prop: "borderTopColor", + themeKey: "palette" + }), + Ur = A$1({ + prop: "borderRightColor", + themeKey: "palette" + }), + Hr = A$1({ + prop: "borderBottomColor", + themeKey: "palette" + }), + Vr = A$1({ + prop: "borderLeftColor", + themeKey: "palette" + }), + qr = e => { + if (void 0 !== e.borderRadius && null !== e.borderRadius) { + const t = j$1(e.theme, "shape.borderRadius", 4), + n = e => ({ + borderRadius: I$1(t, e) + }); + return y(e, e.borderRadius, n) + } + return null + }; +qr.propTypes = {}, qr.filterProps = ["borderRadius"]; +var Kr = _r(Ir, Fr, $r, Ar, Br, Dr, Wr, Ur, Hr, Vr, qr); +var Xr = _r(A$1({ + prop: "displayPrint", + cssProperty: !1, + transform: e => ({ + "@media print": { + display: e + } + }) +}), A$1({ + prop: "display" +}), A$1({ + prop: "overflow" +}), A$1({ + prop: "textOverflow" +}), A$1({ + prop: "visibility" +}), A$1({ + prop: "whiteSpace" +})); +var Yr = _r(A$1({ + prop: "flexBasis" +}), A$1({ + prop: "flexDirection" +}), A$1({ + prop: "flexWrap" +}), A$1({ + prop: "justifyContent" +}), A$1({ + prop: "alignItems" +}), A$1({ + prop: "alignContent" +}), A$1({ + prop: "order" +}), A$1({ + prop: "flex" +}), A$1({ + prop: "flexGrow" +}), A$1({ + prop: "flexShrink" +}), A$1({ + prop: "alignSelf" +}), A$1({ + prop: "justifyItems" +}), A$1({ + prop: "justifySelf" +})); +const Qr = e => { + if (void 0 !== e.gap && null !== e.gap) { + const t = j$1(e.theme, "spacing", 8), + n = e => ({ + gap: I$1(t, e) + }); + return y(e, e.gap, n) + } + return null +}; +Qr.propTypes = {}, Qr.filterProps = ["gap"]; +const Gr = e => { + if (void 0 !== e.columnGap && null !== e.columnGap) { + const t = j$1(e.theme, "spacing", 8), + n = e => ({ + columnGap: I$1(t, e) + }); + return y(e, e.columnGap, n) + } + return null +}; +Gr.propTypes = {}, Gr.filterProps = ["columnGap"]; +const Zr = e => { + if (void 0 !== e.rowGap && null !== e.rowGap) { + const t = j$1(e.theme, "spacing", 8), + n = e => ({ + rowGap: I$1(t, e) + }); + return y(e, e.rowGap, n) + } + return null +}; +Zr.propTypes = {}, Zr.filterProps = ["rowGap"]; +var Jr = _r(Qr, Gr, Zr, A$1({ + prop: "gridColumn" +}), A$1({ + prop: "gridRow" +}), A$1({ + prop: "gridAutoFlow" +}), A$1({ + prop: "gridAutoColumns" +}), A$1({ + prop: "gridAutoRows" +}), A$1({ + prop: "gridTemplateColumns" +}), A$1({ + prop: "gridTemplateRows" +}), A$1({ + prop: "gridTemplateAreas" +}), A$1({ + prop: "gridArea" +})); +var eo = _r(A$1({ + prop: "color", + themeKey: "palette" +}), A$1({ + prop: "bgcolor", + cssProperty: "backgroundColor", + themeKey: "palette" +}), A$1({ + prop: "backgroundColor", + themeKey: "palette" +})); +var to = _r(A$1({ + prop: "position" +}), A$1({ + prop: "zIndex", + themeKey: "zIndex" +}), A$1({ + prop: "top" +}), A$1({ + prop: "right" +}), A$1({ + prop: "bottom" +}), A$1({ + prop: "left" +})); +var no = A$1({ + prop: "boxShadow", + themeKey: "shadows" +}); + +function ro(e) { + return e <= 1 && 0 !== e ? 100 * e + "%" : e +} +const oo = A$1({ + prop: "width", + transform: ro + }), + ao = e => { + if (void 0 !== e.maxWidth && null !== e.maxWidth) { + const t = t => { + var n, r, o; + return { + maxWidth: (null == (n = e.theme) || null == (r = n.breakpoints) || null == (o = r.values) ? void 0 : o[t]) || m$1[t] || ro(t) + } + }; + return y(e, e.maxWidth, t) + } + return null + }; +ao.filterProps = ["maxWidth"]; +const io = A$1({ + prop: "minWidth", + transform: ro + }), + lo = A$1({ + prop: "height", + transform: ro + }), + so = A$1({ + prop: "maxHeight", + transform: ro + }), + uo = A$1({ + prop: "minHeight", + transform: ro + }); +A$1({ + prop: "size", + cssProperty: "width", + transform: ro +}), A$1({ + prop: "size", + cssProperty: "height", + transform: ro +}); +var co = _r(oo, ao, io, lo, so, uo, A$1({ + prop: "boxSizing" +})); +const po = A$1({ + prop: "fontFamily", + themeKey: "typography" + }), + fo = A$1({ + prop: "fontSize", + themeKey: "typography" + }), + ho = A$1({ + prop: "fontStyle", + themeKey: "typography" + }), + mo = A$1({ + prop: "fontWeight", + themeKey: "typography" + }), + vo = A$1({ + prop: "letterSpacing" + }), + go = A$1({ + prop: "lineHeight" + }), + bo = A$1({ + prop: "textAlign" + }); +var yo = _r(A$1({ + prop: "typography", + cssProperty: !1, + themeKey: "typography" +}), po, fo, ho, mo, vo, go, bo); +const xo = { + borders: Kr.filterProps, + display: Xr.filterProps, + flexbox: Yr.filterProps, + grid: Jr.filterProps, + positions: to.filterProps, + palette: eo.filterProps, + shadows: no.filterProps, + sizing: co.filterProps, + spacing: z$1.filterProps, + typography: yo.filterProps + }, + wo = { + borders: Kr, + display: Xr, + flexbox: Yr, + grid: Jr, + positions: to, + palette: eo, + shadows: no, + sizing: co, + spacing: z$1, + typography: yo + }, + ko = Object.keys(xo).reduce(((e, t) => (xo[t].forEach((n => { + e[n] = wo[t]; + })), e)), {}); + +function So(e, t, n) { + const r = { + [e]: t, + theme: n + }, + o = ko[e]; + return o ? o(r) : { + [e]: t + } +} + +function Co(e) { + const { + sx: n, + theme: r = {} + } = e || {}; + if (!n) return null; + + function a(e) { + let n = e; + if ("function" == typeof e) n = e(r); + else if ("object" != typeof e) return e; + const a = x(r.breakpoints), + i = Object.keys(a); + let l = a; + return Object.keys(n).forEach((e => { + const a = (i = n[e], s = r, "function" == typeof i ? i(s) : i); + var i, s; + if (null != a) + if ("object" == typeof a) + if (ko[e]) l = h(l, So(e, a, r)); + else { + const n = y({ + theme: r + }, a, (t => ({ + [e]: t + }))); + ! function(...e) { + const t = e.reduce(((e, t) => e.concat(Object.keys(t))), []), + n = new Set(t); + return e.every((e => n.size === Object.keys(e).length)) + }(n, a) ? l = h(l, n): l[e] = Co({ + sx: a, + theme: r + }); + } + else l = h(l, So(e, a, r)); + })), k(i, l) + } + return Array.isArray(n) ? n.map(a) : a(n) +} +Co.filterProps = ["sx"]; +const Eo = ["sx"]; + +function Ro(t) { + const { + sx: n + } = t, r = u(t, Eo), { + systemProps: o, + otherProps: a + } = (e => { + const t = { + systemProps: {}, + otherProps: {} + }; + return Object.keys(e).forEach((n => { + ko[n] ? t.systemProps[n] = e[n] : t.otherProps[n] = e[n]; + })), t + })(r); + let i; + return i = Array.isArray(n) ? [o, ...n] : "function" == typeof n ? (...t) => { + const r = n(...t); + return l(r) ? f({}, o, r) : o + } : f({}, o, n), f({}, a, { + sx: i + }) +} + +function Po(e) { + var t, n, r = ""; + if ("string" == typeof e || "number" == typeof e) r += e; + else if ("object" == typeof e) + if (Array.isArray(e)) + for (t = 0; t < e.length; t++) e[t] && (n = Po(e[t])) && (r && (r += " "), r += n); + else + for (t in e) e[t] && (r && (r += " "), r += t); + return r +} + +function Mo() { + for (var e, t, n = 0, r = ""; n < arguments.length;)(e = arguments[n++]) && (t = Po(e)) && (r && (r += " "), r += t); + return r +} +var Oo = T.exports.createContext(null); + +function To() { + return T.exports.useContext(Oo) +} +var jo = "function" == typeof Symbol && Symbol.for ? Symbol.for("mui.nested") : "__THEME_NESTED__"; + +function zo(t) { + const { + children: n, + theme: r + } = t, o = To(), a = T.exports.useMemo((() => { + const t = null === o ? r : function(t, n) { + if ("function" == typeof n) return n(t); + return f({}, t, n) + }(o, r); + return null != t && (t[jo] = null !== o), t + }), [r, o]); + return wn.exports.jsx(Oo.Provider, { + value: a, + children: n + }) +} + +function No(e = null) { + const t = To(); + return t && (n = t, 0 !== Object.keys(n).length) ? t : e; + var n; +} +const _o = L$1(); + +function Lo(e = _o) { + return No(e) +} +const Io = ["className", "component"]; + +function Fo(t = {}) { + const { + defaultTheme: n, + defaultClassName: r = "MuiBox-root", + generateClassName: o + } = t, a = jn("div")(Co); + return T.exports.forwardRef((function(t, i) { + const l = Lo(n), + s = Ro(t), + { + className: u$1, + component: d = "div" + } = s, + p = u(s, Io); + return wn.exports.jsx(a, f({ + as: d, + ref: i, + className: Mo(u$1, o ? o(r) : r), + theme: l + }, p)) + })) +} +var $o = Fo(); +const Ao = ["variant"]; + +function Bo(e) { + return 0 === e.length +} + +function Do(e) { + const { + variant: t + } = e, n = u(e, Ao); + let r = t || ""; + return Object.keys(n).sort().forEach((t => { + r += "color" === t ? Bo(r) ? e[t] : g(e[t]) : `${Bo(r)?t:g(t)}${g(e[t].toString())}`; + })), r +} +const Wo = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"], + Uo = ["theme"], + Ho = ["theme"]; + +function Vo(e) { + return 0 === Object.keys(e).length +} + +function qo(e) { + return "ownerState" !== e && "theme" !== e && "sx" !== e && "as" !== e +} +const Ko = L$1(); + +function Xo({ + props: e, + name: t, + defaultTheme: n +}) { + const r = function(e) { + const { + theme: t, + name: n, + props: r + } = e; + return t && t.components && t.components[n] && t.components[n].defaultProps ? Nr(t.components[n].defaultProps, r) : r + }({ + theme: Lo(n), + name: t, + props: e + }); + return r +} + +function Yo(e) { + const t = Lo(); + return wn.exports.jsx(un.Provider, { + value: "object" == typeof t ? t : {}, + children: e.children + }) +} + +function Qo(e) { + return "string" == typeof e +} + +function Go(t, n = {}, r) { + return Qo(t) ? n : f({}, n, { + ownerState: f({}, n.ownerState, r) + }) +} + +function Zo(e, t, n) { + const r = {}; + return Object.keys(e).forEach((o => { + r[o] = e[o].reduce(((e, r) => (r && (n && n[r] && e.push(n[r]), e.push(t(r))), e)), []).join(" "); + })), r +} +const Jo = e => e; +var ea = (() => { + let e = Jo; + return { + configure(t) { + e = t; + }, + generate: t => e(t), + reset() { + e = Jo; + } + } +})(); +const ta = { + active: "Mui-active", + checked: "Mui-checked", + completed: "Mui-completed", + disabled: "Mui-disabled", + error: "Mui-error", + expanded: "Mui-expanded", + focused: "Mui-focused", + focusVisible: "Mui-focusVisible", + required: "Mui-required", + selected: "Mui-selected" +}; + +function na(e, t) { + return ta[t] || `${ea.generate(e)}-${t}` +} + +function ra(e, t) { + const n = {}; + return t.forEach((t => { + n[t] = na(e, t); + })), n +} + +function oa(e) { + return na("MuiBackdrop", e) +} +ra("MuiBackdrop", ["root", "invisible"]); +const aa = ["classes", "className", "invisible", "component", "components", "componentsProps", "theme"]; +var ia = T.exports.forwardRef((function(t, n) { + const { + classes: r, + className: o, + invisible: a = !1, + component: i = "div", + components: l = {}, + componentsProps: s = {}, + theme: u$1 + } = t, d = u(t, aa), p = f({}, t, { + classes: r, + invisible: a + }), f$1 = (e => { + const { + classes: t, + invisible: n + } = e; + return Zo({ + root: ["root", n && "invisible"] + }, oa, t) + })(p), h = l.Root || i, m = s.root || {}; + return wn.exports.jsx(h, f({ + "aria-hidden": !0 + }, m, !Qo(h) && { + as: i, + ownerState: f({}, p, m.ownerState), + theme: u$1 + }, { + ref: n + }, d, { + className: Mo(f$1.root, m.className, o) + })) + })), + la = { + exports: {} + }, + sa = {}, + ua = { + exports: {} + }, + ca = {}; /** @license React v0.20.2 * scheduler.production.min.js * @@ -33,7 +2295,257 @@ var T={exports:{}},j={},z=Object.getOwnPropertySymbols,N=Object.prototype.hasOwn * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -!function(e){var t,n,r,o;if("object"==typeof performance&&"function"==typeof performance.now){var a=performance;e.unstable_now=function(){return a.now()};}else {var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l};}if("undefined"==typeof window||"function"!=typeof MessageChannel){var s=null,u=null,c=function(){if(null!==s)try{var t=e.unstable_now();s(!0,t),s=null;}catch(e){throw setTimeout(c,0),e}};t=function(e){null!==s?setTimeout(t,0,e):(s=e,setTimeout(c,0));},n=function(e,t){u=setTimeout(e,t);},r=function(){clearTimeout(u);},e.unstable_shouldYield=function(){return !1},o=e.unstable_forceFrameRate=function(){};}else {var d=window.setTimeout,p=window.clearTimeout;if("undefined"!=typeof console){var f=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof f&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills");}var h=!1,m=null,v=-1,g=5,b=0;e.unstable_shouldYield=function(){return e.unstable_now()>=b},o=function(){},e.unstable_forceFrameRate=function(e){0>e||125>>1,o=e[r];if(!(void 0!==o&&0C(i,n))void 0!==s&&0>C(s,i)?(e[r]=s,e[l]=n,r=l):(e[r]=i,e[a]=n,r=a);else {if(!(void 0!==s&&0>C(s,n)))break e;e[r]=s,e[l]=n,r=l;}}}return t}return null}function C(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var E=[],R=[],P=1,M=null,O=3,T=!1,j=!1,z=!1;function N(e){for(var t=k(R);null!==t;){if(null===t.callback)S(R);else {if(!(t.startTime<=e))break;S(R),t.sortIndex=t.expirationTime,w(E,t);}t=k(R);}}function _(e){if(z=!1,N(e),!j)if(null!==k(E))j=!0,t(L);else {var r=k(R);null!==r&&n(_,r.startTime-e);}}function L(t,o){j=!1,z&&(z=!1,r()),T=!0;var a=O;try{for(N(o),M=k(E);null!==M&&(!(M.expirationTime>o)||t&&!e.unstable_shouldYield());){var i=M.callback;if("function"==typeof i){M.callback=null,O=M.priorityLevel;var l=i(M.expirationTime<=o);o=e.unstable_now(),"function"==typeof l?M.callback=l:M===k(E)&&S(E),N(o);}else S(E);M=k(E);}if(null!==M)var s=!0;else {var u=k(R);null!==u&&n(_,u.startTime-o),s=!1;}return s}finally{M=null,O=a,T=!1;}}var I=o;e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null;},e.unstable_continueExecution=function(){j||T||(j=!0,t(L));},e.unstable_getCurrentPriorityLevel=function(){return O},e.unstable_getFirstCallbackNode=function(){return k(E)},e.unstable_next=function(e){switch(O){case 1:case 2:case 3:var t=3;break;default:t=O;}var n=O;O=t;try{return e()}finally{O=n;}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=I,e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3;}var n=O;O=e;try{return t()}finally{O=n;}},e.unstable_scheduleCallback=function(o,a,i){var l=e.unstable_now();switch("object"==typeof i&&null!==i?i="number"==typeof(i=i.delay)&&0l?(o.sortIndex=i,w(R,o),null===k(E)&&o===k(R)&&(z?r():z=!0,n(_,i-l))):(o.sortIndex=s,w(E,o),j||T||(j=!0,t(L))),o},e.unstable_wrapCallback=function(e){var t=O;return function(){var n=O;O=t;try{return e.apply(this,arguments)}finally{O=n;}}};}(ca),ua.exports=ca; +! function(e) { + var t, n, r, o; + if ("object" == typeof performance && "function" == typeof performance.now) { + var a = performance; + e.unstable_now = function() { + return a.now() + }; + } else { + var i = Date, + l = i.now(); + e.unstable_now = function() { + return i.now() - l + }; + } + if ("undefined" == typeof window || "function" != typeof MessageChannel) { + var s = null, + u = null, + c = function() { + if (null !== s) try { + var t = e.unstable_now(); + s(!0, t), s = null; + } catch (e) { + throw setTimeout(c, 0), e + } + }; + t = function(e) { + null !== s ? setTimeout(t, 0, e) : (s = e, setTimeout(c, 0)); + }, n = function(e, t) { + u = setTimeout(e, t); + }, r = function() { + clearTimeout(u); + }, e.unstable_shouldYield = function() { + return !1 + }, o = e.unstable_forceFrameRate = function() {}; + } else { + var d = window.setTimeout, + p = window.clearTimeout; + if ("undefined" != typeof console) { + var f = window.cancelAnimationFrame; + "function" != typeof window.requestAnimationFrame && console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"), "function" != typeof f && console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"); + } + var h = !1, + m = null, + v = -1, + g = 5, + b = 0; + e.unstable_shouldYield = function() { + return e.unstable_now() >= b + }, o = function() {}, e.unstable_forceFrameRate = function(e) { + 0 > e || 125 < e ? console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported") : g = 0 < e ? Math.floor(1e3 / e) : 5; + }; + var y = new MessageChannel, + x = y.port2; + y.port1.onmessage = function() { + if (null !== m) { + var t = e.unstable_now(); + b = t + g; + try { + m(!0, t) ? x.postMessage(null) : (h = !1, m = null); + } catch (e) { + throw x.postMessage(null), e + } + } else h = !1; + }, t = function(e) { + m = e, h || (h = !0, x.postMessage(null)); + }, n = function(t, n) { + v = d((function() { + t(e.unstable_now()); + }), n); + }, r = function() { + p(v), v = -1; + }; + } + + function w(e, t) { + var n = e.length; + e.push(t); + e: for (;;) { + var r = n - 1 >>> 1, + o = e[r]; + if (!(void 0 !== o && 0 < C(o, t))) break e; + e[r] = t, e[n] = o, n = r; + } + } + + function k(e) { + return void 0 === (e = e[0]) ? null : e + } + + function S(e) { + var t = e[0]; + if (void 0 !== t) { + var n = e.pop(); + if (n !== t) { + e[0] = n; + e: for (var r = 0, o = e.length; r < o;) { + var a = 2 * (r + 1) - 1, + i = e[a], + l = a + 1, + s = e[l]; + if (void 0 !== i && 0 > C(i, n)) void 0 !== s && 0 > C(s, i) ? (e[r] = s, e[l] = n, r = l) : (e[r] = i, e[a] = n, r = a); + else { + if (!(void 0 !== s && 0 > C(s, n))) break e; + e[r] = s, e[l] = n, r = l; + } + } + } + return t + } + return null + } + + function C(e, t) { + var n = e.sortIndex - t.sortIndex; + return 0 !== n ? n : e.id - t.id + } + var E = [], + R = [], + P = 1, + M = null, + O = 3, + T = !1, + j = !1, + z = !1; + + function N(e) { + for (var t = k(R); null !== t;) { + if (null === t.callback) S(R); + else { + if (!(t.startTime <= e)) break; + S(R), t.sortIndex = t.expirationTime, w(E, t); + } + t = k(R); + } + } + + function _(e) { + if (z = !1, N(e), !j) + if (null !== k(E)) j = !0, t(L); + else { + var r = k(R); + null !== r && n(_, r.startTime - e); + } + } + + function L(t, o) { + j = !1, z && (z = !1, r()), T = !0; + var a = O; + try { + for (N(o), M = k(E); null !== M && (!(M.expirationTime > o) || t && !e.unstable_shouldYield());) { + var i = M.callback; + if ("function" == typeof i) { + M.callback = null, O = M.priorityLevel; + var l = i(M.expirationTime <= o); + o = e.unstable_now(), "function" == typeof l ? M.callback = l : M === k(E) && S(E), N(o); + } else S(E); + M = k(E); + } + if (null !== M) var s = !0; + else { + var u = k(R); + null !== u && n(_, u.startTime - o), s = !1; + } + return s + } finally { + M = null, O = a, T = !1; + } + } + var I = o; + e.unstable_IdlePriority = 5, e.unstable_ImmediatePriority = 1, e.unstable_LowPriority = 4, e.unstable_NormalPriority = 3, e.unstable_Profiling = null, e.unstable_UserBlockingPriority = 2, e.unstable_cancelCallback = function(e) { + e.callback = null; + }, e.unstable_continueExecution = function() { + j || T || (j = !0, t(L)); + }, e.unstable_getCurrentPriorityLevel = function() { + return O + }, e.unstable_getFirstCallbackNode = function() { + return k(E) + }, e.unstable_next = function(e) { + switch (O) { + case 1: + case 2: + case 3: + var t = 3; + break; + default: + t = O; + } + var n = O; + O = t; + try { + return e() + } finally { + O = n; + } + }, e.unstable_pauseExecution = function() {}, e.unstable_requestPaint = I, e.unstable_runWithPriority = function(e, t) { + switch (e) { + case 1: + case 2: + case 3: + case 4: + case 5: + break; + default: + e = 3; + } + var n = O; + O = e; + try { + return t() + } finally { + O = n; + } + }, e.unstable_scheduleCallback = function(o, a, i) { + var l = e.unstable_now(); + switch ("object" == typeof i && null !== i ? i = "number" == typeof(i = i.delay) && 0 < i ? l + i : l : i = l, o) { + case 1: + var s = -1; + break; + case 2: + s = 250; + break; + case 5: + s = 1073741823; + break; + case 4: + s = 1e4; + break; + default: + s = 5e3; + } + return o = { + id: P++, + callback: a, + priorityLevel: o, + startTime: i, + expirationTime: s = i + s, + sortIndex: -1 + }, i > l ? (o.sortIndex = i, w(R, o), null === k(E) && o === k(R) && (z ? r() : z = !0, n(_, i - l))) : (o.sortIndex = s, w(E, o), j || T || (j = !0, t(L))), o + }, e.unstable_wrapCallback = function(e) { + var t = O; + return function() { + var n = O; + O = t; + try { + return e.apply(this, arguments) + } finally { + O = n; + } + } + }; +}(ca), ua.exports = ca; /** @license React v17.0.2 * react-dom.production.min.js * @@ -42,7 +2554,7686 @@ var T={exports:{}},j={},z=Object.getOwnPropertySymbols,N=Object.prototype.hasOwn * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -var da=T.exports,pa=I,fa=ua.exports;function ha(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n