From 11b73b13eae5565e3a0de2f51f5c41bc5fff2d52 Mon Sep 17 00:00:00 2001 From: Riley Smith Date: Sun, 30 Jan 2022 15:55:15 -0800 Subject: [PATCH] beautify everything --- assets/background-c101863b.js | 282 +- assets/index-26a612d9.js | 10 +- assets/index-8c52b575.js | 10 +- assets/index-b14d09b0.js | 10 +- background.content-5f02aba1.js | 66 +- background.injected-3cca8ca2.js | 53 +- background.js | 285 +- connectRuntime-a699491c.js | 37 +- content/mogultv/index.js | 15 +- content/twitch/index.js | 10 +- content/twitch/inject.js | 201 +- content/youtube/index.js | 71 +- content/youtube/inject.js | 928 +- fetch_youtube-cfbafc47.js | 65 +- get_stream_details-14cd00a5.js | 26 +- index-6137f488.js | 114 +- inject_script.util-a32f14cf.js | 14 +- parse_token.util-ed270559.js | 856 +- popup/index.js | 18018 +++++++++++++++++++++++++++++- router.interface-6cdbc015.js | 11 +- storage-a8ac7bd3.js | 945 +- style-inject.es-a0e1a0ba.js | 14 +- when_ready.util-91474a6b.js | 8 +- 23 files changed, 21812 insertions(+), 237 deletions(-) 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-3cca8ca2.js b/background.injected-3cca8ca2.js index 1d8c8ba..0cb66b7 100644 --- a/background.injected-3cca8ca2.js +++ b/background.injected-3cca8ca2.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("XQpBuigyZWZGIjvE"))||void 0===t?void 0:t.getAttribute("XQpBuigyZWZGIjvE");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("XQpBuigyZWZGIjvE")) || void 0 === t ? void 0 : t.getAttribute("XQpBuigyZWZGIjvE"); + 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 67b1c77..f4867c2 100644 --- a/background.js +++ b/background.js @@ -1,6 +1,281 @@ -import { d as dt } from './parse_token.util-ed270559.js'; -import { n } from './router.interface-6cdbc015.js'; -import { e } from './fetch_youtube-cfbafc47.js'; -import { s as s$1, m } from './storage-a8ac7bd3.js'; +import { + d as dt +} from './parse_token.util-ed270559.js'; +import { + n +} from './router.interface-6cdbc015.js'; +import { + e +} from './fetch_youtube-cfbafc47.js'; +import { + s as s$1, + m +} from './storage-a8ac7bd3.js'; -class s extends Error{constructor(t,e){super(e),this.code=t,this.message=e;}}const r=(t,e={},n)=>({body:e,meta:{isSuccess:!1,code:t,nonce:n}});let i;const c=t=>s$1.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)},token:async()=>await m.auth.get("token"),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 n=await c(t.href),a=await fetch("https://v2.mogultv.org/auth/youtube",{method:"POST",body:JSON.stringify(Object.assign(Object.assign({},t),{cookies:n}))});if(200!==a.status)return null;const{jwt:o}=await a.json();return await m.auth.set("token",o),o},link:async t=>{const n=await m.auth.get("token"),o=await fetch(`https://v2.mogultv.org/link/${t}`,{method:"GET",headers:{Authorization:`Bearer ${n}`}});if(200!==o.status)return;const s=await o.text();await chrome.cookies.set({url:"https://v2.mogultv.org",name:"Authorization",value:n,httpOnly:!0,path:`/link/${t}/callback`,expirationDate:Math.floor(Date.now()/1e3)+3600}),await chrome.windows.create({url:s,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 a,o;(null===(a=e.sender.tab)||void 0===a?void 0:a.id)&&s$1.tabs.remove(null===(o=e.sender.tab)||void 0===o?void 0:o.id),null==i||i(t);},"disconnect-link":async t=>{const n=await m.auth.get("token"),o=await fetch(`https://v2.mogultv.org/link/${t}`,{method:"DELETE",headers:{Authorization:`Bearer ${n}`}});if(200!==o.status)return;const{jwt:s}=await o.json();return await m.auth.set("token",s),dt(s)}};const l=t=>async()=>{var n,a;const o=await m.cache.get(t);let s;if(o&&o.expiresAt>Date.now())s=o.value;else {const o=await fetch("https://v2.mogultv.org"+t),r=Number(o.headers.get("age")),i=Number((null===(a=null===(n=o.headers.get("cache-control"))||void 0===n?void 0:n.match(/max-age=(\d+)/))||void 0===a?void 0:a[1])||300)-r,c=Date.now()+1e3*i;s=await o.json(),await m.cache.set(t,{expiresAt:c,value:s});}return s};async function d(t,e){const n={sourceType:t,sourceId:e};try{const t=await async function(t,e,n,{throwIfErrors:a}={}){var o;const s=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,variables:n})}),r=await s.json();if(a&&(null===(o=r.data)||void 0===o?void 0:o.errors))throw new Error(`spore graphql error ${r.data.errors}`);return r.data}("https://zygote.spore.build/graphql","query GetExtensionMappingConnection($sourceType: String, $sourceId: String) {\n\textensionMappingConnection(sourceType: $sourceType, sourceId: $sourceId) {\n\t\tnodes {\n\t\t\tid\n\t\t\tslug\n\t\t\tiframeUrl\n\t\t\tdomAction\n\t\t\tquerySelector\n\t\t\tiframeQuerySelector\n\t\t}\n\t}\n}",n);return t.extensionMappingConnection.nodes}catch(t){console.error(t);}}const h={youtube:{"get-stream":async()=>{const t=await m.cache.get("get-stream");let n;if(t&&t.expiresAt>Date.now())n=t.value;else {const t=Date.now()+6e4;n=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(),n=/(?:window\s*\[\s*["']ytInitialData["']\s*\]|ytInitialData)\s*=\s*({.+?})\s*;/.exec(e);if(n){const t=JSON.parse(n[1]),e=t.currentVideoEndpoint.watchEndpoint.videoId,a=t.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer,o=t.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.thumbnail.thumbnails[0].url,s=a.viewCount.videoViewCountRenderer.viewCount.runs.find((t=>/^[0-9,]+$/.test(t.text))).text;return {title:a.title.runs[0].text,viewersCount:parseInt(s.replace(/,/g,"")),previewImageURL:`https://i.ytimg.com/vi/${e}/mqdefault.jpg`,profileImageURL:o}}}catch(t){console.warn(t);}return null}(),await m.cache.set("get-stream",{expiresAt:t,value:n});}return n},"get-user":async t=>{const e$1=await c(t.href),n=await e(Object.assign(Object.assign({},t),{cookies:e$1}));if(!n.success)throw new s(n.code,n.message);return n.data}},gateway:{users:l("/gateway/users"),emotes:l("/gateway/emotes"),badges:l("/gateway/badges"),"set-settings":async t=>{const n=await m.auth.get("token"),o=await fetch("https://v2.mogultv.org/gateway/settings",{method:"PUT",headers:{Authorization:`Bearer ${n}`},body:JSON.stringify(t)}),{jwt:s}=await o.json();return m.auth.set("token",s),dt(s)}},auth:u,extension:{popup:()=>s$1.action.openPopup(),"open-tab":async t=>{await s$1.tabs.create({url:t});}},spore:{"fetch-extension-mappings":async t=>await d("youtube",t)}},w=async(e,n$1)=>{var a;const{path:o,body:s}=e;if(!o)return;e.meta?e.meta.sender=n$1:e.meta={sender:n$1,isPort:!1},e.meta.isPort||(e.meta.isPort=!1);const i=t=>{},c=o.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 n$1=((e,n$1)=>({body:e,meta:{isSuccess:!0,code:n.Success,nonce:n$1}}))(await l(s,e.meta),e.nonce);return i(n$1),n$1}catch(n$1){const o=n$1;return r(null!==(a=o.code)&&void 0!==a?a:n.Unknown,{message:o.message},e.nonce)}};s$1.runtime.onConnect.addListener((t=>{const e=t.sender;e&&t.onMessage.addListener((async n=>{n.meta={isPort:!0};const a=await w(n,e);t.postMessage(a);}));})),s$1.runtime.onMessage.addListener(w); +class s extends Error { + constructor(t, e) { + super(e), this.code = t, this.message = e; + } +} +const r = (t, e = {}, n) => ({ + body: e, + meta: { + isSuccess: !1, + code: t, + nonce: n + } +}); +let i; +const c = t => s$1.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) + }, + token: async () => await m.auth.get("token"), + 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 n = await c(t.href), + a = await fetch("https://v2.mogultv.org/auth/youtube", { + method: "POST", + body: JSON.stringify(Object.assign(Object.assign({}, t), { + cookies: n + })) + }); + if (200 !== a.status) return null; + const { + jwt: o + } = await a.json(); + return await m.auth.set("token", o), o + }, + link: async t => { + const n = await m.auth.get("token"), + o = await fetch(`https://v2.mogultv.org/link/${t}`, { + method: "GET", + headers: { + Authorization: `Bearer ${n}` + } + }); + if (200 !== o.status) return; + const s = await o.text(); + await chrome.cookies.set({ + url: "https://v2.mogultv.org", + name: "Authorization", + value: n, + httpOnly: !0, + path: `/link/${t}/callback`, + expirationDate: Math.floor(Date.now() / 1e3) + 3600 + }), await chrome.windows.create({ + url: s, + 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 a, o; + (null === (a = e.sender.tab) || void 0 === a ? void 0 : a.id) && s$1.tabs.remove(null === (o = e.sender.tab) || void 0 === o ? void 0 : o.id), null == i || i(t); + }, + "disconnect-link": async t => { + const n = await m.auth.get("token"), + o = await fetch(`https://v2.mogultv.org/link/${t}`, { + method: "DELETE", + headers: { + Authorization: `Bearer ${n}` + } + }); + if (200 !== o.status) return; + const { + jwt: s + } = await o.json(); + return await m.auth.set("token", s), dt(s) + } + }; +const l = t => async () => { + var n, a; + const o = await m.cache.get(t); + let s; + if (o && o.expiresAt > Date.now()) s = o.value; + else { + const o = await fetch("https://v2.mogultv.org" + t), + r = Number(o.headers.get("age")), + i = Number((null === (a = null === (n = o.headers.get("cache-control")) || void 0 === n ? void 0 : n.match(/max-age=(\d+)/)) || void 0 === a ? void 0 : a[1]) || 300) - r, + c = Date.now() + 1e3 * i; + s = await o.json(), await m.cache.set(t, { + expiresAt: c, + value: s + }); + } + return s +}; +async function d(t, e) { + const n = { + sourceType: t, + sourceId: e + }; + try { + const t = await async function(t, e, n, { + throwIfErrors: a + } = {}) { + var o; + const s = await fetch(t, { + method: "POST", + headers: { + "Content-Type": "application/json" + }, + body: JSON.stringify({ + query: e, + variables: n + }) + }), + r = await s.json(); + if (a && (null === (o = r.data) || void 0 === o ? void 0 : o.errors)) throw new Error(`spore graphql error ${r.data.errors}`); + return r.data + }("https://zygote.spore.build/graphql", "query GetExtensionMappingConnection($sourceType: String, $sourceId: String) {\n\textensionMappingConnection(sourceType: $sourceType, sourceId: $sourceId) {\n\t\tnodes {\n\t\t\tid\n\t\t\tslug\n\t\t\tiframeUrl\n\t\t\tdomAction\n\t\t\tquerySelector\n\t\t\tiframeQuerySelector\n\t\t}\n\t}\n}", n); + return t.extensionMappingConnection.nodes + } catch (t) { + console.error(t); + } +} +const h = { + youtube: { + "get-stream": async () => { + const t = await m.cache.get("get-stream"); + let n; + if (t && t.expiresAt > Date.now()) n = t.value; + else { + const t = Date.now() + 6e4; + n = 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(), + n = /(?:window\s*\[\s*["']ytInitialData["']\s*\]|ytInitialData)\s*=\s*({.+?})\s*;/.exec(e); + if (n) { + const t = JSON.parse(n[1]), + e = t.currentVideoEndpoint.watchEndpoint.videoId, + a = t.contents.twoColumnWatchNextResults.results.results.contents[0].videoPrimaryInfoRenderer, + o = t.contents.twoColumnWatchNextResults.results.results.contents[1].videoSecondaryInfoRenderer.owner.videoOwnerRenderer.thumbnail.thumbnails[0].url, + s = a.viewCount.videoViewCountRenderer.viewCount.runs.find((t => /^[0-9,]+$/.test(t.text))).text; + return { + title: a.title.runs[0].text, + viewersCount: parseInt(s.replace(/,/g, "")), + previewImageURL: `https://i.ytimg.com/vi/${e}/mqdefault.jpg`, + profileImageURL: o + } + } + } catch (t) { + console.warn(t); + } + return null + }(), await m.cache.set("get-stream", { + expiresAt: t, + value: n + }); + } + return n + }, + "get-user": async t => { + const e$1 = await c(t.href), + n = await e(Object.assign(Object.assign({}, t), { + cookies: e$1 + })); + if (!n.success) throw new s(n.code, n.message); + return n.data + } + }, + gateway: { + users: l("/gateway/users"), + emotes: l("/gateway/emotes"), + badges: l("/gateway/badges"), + "set-settings": async t => { + const n = await m.auth.get("token"), + o = await fetch("https://v2.mogultv.org/gateway/settings", { + method: "PUT", + headers: { + Authorization: `Bearer ${n}` + }, + body: JSON.stringify(t) + }), + { + jwt: s + } = await o.json(); + return m.auth.set("token", s), dt(s) + } + }, + auth: u, + extension: { + popup: () => s$1.action.openPopup(), + "open-tab": async t => { + await s$1.tabs.create({ + url: t + }); + } + }, + spore: { + "fetch-extension-mappings": async t => await d("youtube", t) + } + }, + w = async (e, n$1) => { + var a; + const { + path: o, + body: s + } = e; + if (!o) return; + e.meta ? e.meta.sender = n$1 : e.meta = { + sender: n$1, + isPort: !1 + }, e.meta.isPort || (e.meta.isPort = !1); + const i = t => {}, + c = o.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 n$1 = ((e, n$1) => ({ + body: e, + meta: { + isSuccess: !0, + code: n.Success, + nonce: n$1 + } + }))(await l(s, e.meta), e.nonce); + return i(n$1), n$1 + } catch (n$1) { + const o = n$1; + return r(null !== (a = o.code) && void 0 !== a ? a : n.Unknown, { + message: o.message + }, e.nonce) + } + }; +s$1.runtime.onConnect.addListener((t => { + const e = t.sender; + e && t.onMessage.addListener((async n => { + n.meta = { + isPort: !0 + }; + const a = await w(n, e); + t.postMessage(a); + })); +})), s$1.runtime.onMessage.addListener(w); \ 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 6f55fbd..3245f4b 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 { t } from '../../inject_script.util-a32f14cf.js'; +import { + o +} from '../../background.content-5f02aba1.js'; +import { + t +} from '../../inject_script.util-a32f14cf.js'; -new o,t("content/twitch/inject.js"); +new o, t("content/twitch/inject.js"); \ No newline at end of file diff --git a/content/twitch/inject.js b/content/twitch/inject.js index 50bd484..69ca72f 100644 --- a/content/twitch/inject.js +++ b/content/twitch/inject.js @@ -1,5 +1,200 @@ import '../../index-6137f488.js'; -import { e } from '../../background.injected-3cca8ca2.js'; -import { s } from '../../router.interface-6cdbc015.js'; +import { + e +} from '../../background.injected-3cca8ca2.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 1bb00e8..61f7a59 100644 --- a/content/youtube/index.js +++ b/content/youtube/index.js @@ -1,10 +1,67 @@ import '../../index-6137f488.js'; -import { e as e$2 } from '../../get_stream_details-14cd00a5.js'; -import { e } from '../../style-inject.es-a0e1a0ba.js'; -import { s, m } from '../../storage-a8ac7bd3.js'; +import { + e as e$2 +} from '../../get_stream_details-14cd00a5.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 { t } from '../../inject_script.util-a32f14cf.js'; -import { e as e$1 } from '../../when_ready.util-91474a6b.js'; +import { + o as o$1 +} from '../../background.content-5f02aba1.js'; +import { + t +} from '../../inject_script.util-a32f14cf.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 d(){const g=await c();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 c(){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(c())),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$2();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,t("content/youtube/inject.js"),g?a():d();})); +var o = "settings-module_ludwigLogo__Wt9ZZ", + i = "settings-module_ludwigSettingsPopup__Mfv9p"; +async function d() { + const g = await c(); + 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 c() { + 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(c())), 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$2(); + 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, t("content/youtube/inject.js"), g ? a() : d(); +})); \ No newline at end of file diff --git a/content/youtube/inject.js b/content/youtube/inject.js index c04f1c5..f048c5f 100644 --- a/content/youtube/inject.js +++ b/content/youtube/inject.js @@ -1,15 +1,925 @@ -import { e } from '../../index-6137f488.js'; -import { e as e$2 } from '../../background.injected-3cca8ca2.js'; -import { n, e as e$4 } from '../../get_stream_details-14cd00a5.js'; -import { d as dt, t } from '../../parse_token.util-ed270559.js'; -import { s } from '../../router.interface-6cdbc015.js'; -import { e as e$3 } from '../../fetch_youtube-cfbafc47.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-3cca8ca2.js'; +import { + n, + e as e$4 +} from '../../get_stream_details-14cd00a5.js'; +import { + d as dt, + t +} from '../../parse_token.util-ed270559.js'; +import { + s +} from '../../router.interface-6cdbc015.js'; +import { + e as e$3 +} from '../../fetch_youtube-cfbafc47.js'; +import { + e as e$1 +} from '../../style-inject.es-a0e1a0ba.js'; -function l(e){if(!e)return 0;e=e.toLowerCase();const t=/\((.+)\)/.exec(e);if(!t)return 1;const n=t[1].split(/\s/),s=parseInt(n[0]);return isNaN(s)?0:n[1].startsWith("year")?12*parseInt(n[0]):parseInt(n[0])}function u(e,t){const n=t;for(let t=0;te)return n[t-1][1];return n[n.length-1][1]}function d(e,t,n,s){const r=t(e.authorExternalChannelId);!function(e,t){(null==t?void 0:t.a)&&(e.authorName={simpleText:t.a});}(e,r),function(e,t){var n,s;e.authorBadges||(e.authorBadges=[]);for(const r of e.authorBadges){const e=r.liveChatAuthorBadgeRenderer;(null===(n=e.icon)||void 0===n?void 0:n.iconType)?e._mtvType=null===(s=e.icon)||void 0===s?void 0:s.iconType.toLowerCase():e.customThumbnail&&(e._mtvType="member"),"moderator"===e._mtvType&&(delete e.icon,e._mtvType="moderator",e.customThumbnail={thumbnails:[{url:t,width:18,height:18}]});}}(e,s),function(e,t,n){if((null==n?void 0:n.b)&&!(n.b<=0))for(const s of e.authorBadges){const e=s.liveChatAuthorBadgeRenderer;if("member"!==e._mtvType)continue;const r=l(e.tooltip);if(0===r)continue;const i=r+n.b,o=`Member (${i} months)`,a=u(i,t);e.customThumbnail=a,delete e.icon,e.tooltip=o,e.accessibility.accessibilityData.label=o;}}(e,n,r);}const h=/[\s.,?!]/;function f(e){const t=[];let n=0;for(let s=0;sthis.gatewayService.getUserInfo(e)),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=");}}var w={exports:{}},v="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(v){var y=new Uint8Array(16);w.exports=function(){return v(y),y};}else {var b=new Array(16);w.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),b[t]=e>>>((3&t)<<3)&255;return b};}for(var A=[],C=0;C<256;++C)A[C]=(C+256).toString(16).substr(1);var I,M,R=function(e,t){var n=t||0,s=A;return [s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],"-",s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]],s[e[n++]]].join("")},k=w.exports,S=R,T=0,x=0;var E=function(e,t,n){var s=t&&n||0,r=t||[],i=(e=e||{}).node||I,o=void 0!==e.clockseq?e.clockseq:M;if(null==i||null==o){var a=k();null==i&&(i=I=[1|a[0],a[1],a[2],a[3],a[4],a[5]]),null==o&&(o=M=16383&(a[6]<<8|a[7]));}var c=void 0!==e.msecs?e.msecs:(new Date).getTime(),l=void 0!==e.nsecs?e.nsecs:x+1,u=c-T+(l-x)/1e4;if(u<0&&void 0===e.clockseq&&(o=o+1&16383),(u<0||c>T)&&void 0===e.nsecs&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");T=c,x=l,M=o;var d=(1e4*(268435455&(c+=122192928e5))+l)%4294967296;r[s++]=d>>>24&255,r[s++]=d>>>16&255,r[s++]=d>>>8&255,r[s++]=255&d;var h=c/4294967296*1e4&268435455;r[s++]=h>>>8&255,r[s++]=255&h,r[s++]=h>>>24&15|16,r[s++]=h>>>16&255,r[s++]=o>>>8|128,r[s++]=255&o;for(var f=0;f<6;++f)r[s+f]=i[f];return t||S(r)},B=w.exports,O=R;var q=function(e,t,n){var s=t&&n||0;"string"==typeof e&&(t="binary"===e?new Array(16):null,e=null);var r=(e=e||{}).random||(e.rng||B)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t)for(var i=0;i<16;++i)t[s+i]=r[i];return t||O(r)},j=E,L=q,_=L;_.v1=j,_.v4=L;var P=_;const N=100,U=-1,V={"-32601":"Method not found"};V[N]="Invalid origin",V[U]="Error";class W{constructor({postMessage:e,timeout:t=3e3}={}){this.postMessage=e,this.timeout=t,this.pendingRequests={},this.callbackFunctions={},this.call=this.call.bind(this),this.resolve=this.resolve.bind(this),this.resolveRPCResponse=this.resolveRPCResponse.bind(this);}call(e,t,n={}){const{timeout:s=this.timeout}=n,r=function(){let e=null,t=null;const n=new Promise(((n,s)=>(e=n,t=s,t)));return n.resolve=e,n.reject=t,n}(),i=[];for(const e of Array.from(t||[]))if("function"==typeof e){const t={_browserComms:!0,_browserCommsGunCallback:!0,callbackId:P.v4()};this.callbackFunctions[t.callbackId]=e,i.push(t);}else i.push(e);const o=function({method:e,params:t}){if(null==t)throw new Error("Must provide params");for(const e of Array.from(t))if("function"==typeof e)throw new Error("Functions are not allowed. Use RPCCallback instead.");return {_browserComms:!0,id:P.v4(),method:e,params:t}}({method:e,params:i});this.pendingRequests[o.id]={reject:r.reject,resolve:r.resolve,isAcknowledged:!1};try{this.postMessage(JSON.stringify(o),"*");}catch(e){return r.reject(e),r}return setTimeout((()=>{if(!this.pendingRequests[o.id].isAcknowledged)return r.reject(new Error("Message Timeout"))}),s),r}resolve(e){switch(!1){case!(!0===e?.acknowledge):return this.resolveRPCRequestAcknowledgement(e);case!J(e):return this.resolveRPCResponse(e);case!function(e){return e?.callbackId&&null!=e.params}(e):return this.resolveRPCCallbackResponse(e);default:throw new Error("Unknown response type")}}resolveRPCResponse(e){const t=this.pendingRequests[e.id];if(null==t)throw new Error("Request not found");t.isAcknowledged=!0;const{result:n,error:s}=e;return s?t.reject(s.data||new Error(s.message)):null!=n?t.resolve(n):t.resolve(null),null}resolveRPCRequestAcknowledgement(e){const t=this.pendingRequests[e.id];if(null==t)throw new Error("Request not found");return t.isAcknowledged=!0,null}resolveRPCCallbackResponse(e){const t=this.callbackFunctions[e.callbackId];if(null==t)throw new Error("Callback not found");return t.apply(null,e.params),null}}function Q({params:e,callbackId:t}){return {_browserComms:!0,callbackId:t,params:e}}function D({requestId:e,result:t=null,rPCError:n=null}){return {_browserComms:!0,id:e,result:t,error:n}}function F({code:e,data:t=null}){return {_browserComms:!0,code:e,message:V[e],data:t}}function K(e){return e?._browserComms}function J(e){return e?.id&&(void 0!==e.result||void 0!==e.error)}const G=1e4,Z="undefined"!=typeof window?window:self;class z{constructor(e={}){const{timeout:t,shouldConnectToServiceWorker:n,handshakeTimeout:s=G,isParentValidFn:r=(()=>!0)}=e;this.handshakeTimeout=s,this.isParentValidFn=r,this.isListening=!1;const i=globalThis?.window?._browserCommsIsInAppBrowser||-1!==navigator.userAgent.indexOf("/InAppBrowser");this.hasParent="undefined"!=typeof window&&window.self!==window.top||i,this.parent=globalThis?.window?.parent,this.client=new W({timeout:t,postMessage:(e,t)=>{if(i){let t=(()=>{try{return JSON.parse(localStorage["portal:queue"])}catch(e){return null}})();return null==t&&(t=[]),t.push(e),localStorage["portal:queue"]=JSON.stringify(t),localStorage["portal:queue"]}return this.parent?.postMessage(e,t)}}),this.ready=n?function(){return new Promise(((e,t)=>{const n=setTimeout(e,5e3);return navigator?.serviceWorker?.ready.catch((function(){return console.log("caught sw error"),null})).then((t=>{const s=t?.active;return s&&(this.sw=new W({timeout:this.timeout,postMessage:(e,t)=>{const n=new MessageChannel;if(n)return n.port1.onmessage=e=>this.onMessage(e,{isServiceWorker:!0}),s.postMessage(e,[n.port2])}})),clearTimeout(n),e()}))}))}():Promise.resolve(!0),this.registeredMethods={ping:()=>Object.keys(this.registeredMethods)},this.parentsRegisteredMethods=[],this.setParent=this.setParent.bind(this),this.setInAppBrowserWindow=this.setInAppBrowserWindow.bind(this),this.replyInAppBrowserWindow=this.replyInAppBrowserWindow.bind(this),this.onMessageInAppBrowserWindow=this.onMessageInAppBrowserWindow.bind(this),this.listen=this.listen.bind(this),this.close=this.close.bind(this),this.call=this.call.bind(this),this.onRequest=this.onRequest.bind(this),this.onMessage=this.onMessage.bind(this),this.on=this.on.bind(this);}setParent(e){this.parent=e,this.hasParent=!0;}setInAppBrowserWindow(e,t){this.iabWindow=e;const n=-1!==navigator.userAgent.indexOf("iPhone")?"loadstop":"loadstart";return this.iabWindow.addEventListener(n,(()=>{this.iabWindow.executeScript({code:"window._browserCommsIsInAppBrowser = true;"}),clearInterval(this.iabInterval),this.iabInterval=setInterval((()=>this.iabWindow.executeScript({code:"localStorage.getItem('portal:queue');"},(e=>{try{return (e=JSON.parse(e?.[0]))&&e.length&&this.iabWindow.executeScript({code:"localStorage.setItem('portal:queue', '[]')"}),e.map((e=>t(e)))}catch(t){return console.log(t,e)}}))),100);})),this.iabWindow.addEventListener("exit",(()=>clearInterval(this.iabInterval)))}replyInAppBrowserWindow(e){const t=e.replace(/'/g,"'");return this.iabWindow.executeScript({code:`if(window._browserCommsOnMessage) window._browserCommsOnMessage('${t}')`})}onMessageInAppBrowserWindow(e){return this.onMessage({data:e,source:{postMessage:e=>this.call("browser.reply",{data:e})}})}listen(){this.isListening=!0,Z.addEventListener("message",this.onMessage),"undefined"!=typeof window&&null!==window&&(window._browserCommsOnMessage=e=>this.onMessage({debug:!0,data:(()=>{try{return JSON.parse(e)}catch(t){return console.log("error parsing",e),null}})()})),this.clientValidation=this.client.call("ping",null,{timeout:this.handshakeTimeout}).then((e=>{this.hasParent&&(this.parentsRegisteredMethods=this.parentsRegisteredMethods.concat(e));})).catch((()=>null)),this.swValidation=this.ready.then((()=>this.sw?.call("ping",null,{timeout:this.handshakeTimeout}))).then((e=>{this.parentsRegisteredMethods=this.parentsRegisteredMethods.concat(e);}));}close(){return this.isListening=!0,Z.removeEventListener("message",this.onMessage)}async call(e,...t){if(!this.isListening)return new Promise(((e,t)=>t(new Error("Must call listen() before call()"))));const n=(e,t)=>{const n=this.registeredMethods[e];if(!n)throw new Error("Method not found");return n.apply(null,t)};if(await this.ready,this.hasParent){let s=null;await this.clientValidation;if(!(-1!==this.parentsRegisteredMethods.indexOf(e)))return n(e,t);{const r=await this.client.call(e,t);try{if("ping"===e){const s=n(e,t);return (r||[]).concat(s)}return r}catch(r){try{if(s=r,!this.sw)return n(e,t);try{const s=await this.sw.call(e,t);if("ping"===e){const r=n(e,t);return (s||[]).concat(r)}return s}catch{return n(e,t)}}catch(e){throw "Method not found"===e.message&&s?s:e}}}}else {if(!this.sw)return n(e,t);if(await this.swValidation,-1===this.parentsRegisteredMethods.indexOf(e))return n(e,t);try{const s=await this.sw.call(e,t);if("ping"===e){const r=n(e,t);return (s||[]).concat(r)}return s}catch(s){return n(e,t)}}}async onRequest(e,t){const n=[];for(const s of Array.from(t.params||[]))s?._browserCommsGunCallback?(t=>{n.push(((...n)=>e(Q({params:n,callbackId:t.callbackId}))));})(s):n.push(s);e(function({requestId:e}){return {_browserComms:!0,id:e,acknowledge:!0}}({requestId:t.id}));try{const s=await this.call(t.method,...Array.from(n));return e(D({requestId:t.id,result:s}))}catch(n){return e(D({requestId:t.id,rPCError:F({code:U,data:n})}))}}onMessage(e,{isServiceWorker:t}={}){try{const s="string"==typeof e.data?JSON.parse(e.data):e.data;if(!K(s))return;const r=function(t){return "undefined"!=typeof window&&null!==window?e.source?.postMessage(JSON.stringify(t),"*"):e.ports[0].postMessage(JSON.stringify(t))};if(null!=(n=s)?.id&&null!=n.method)return this.onRequest(r,s);if(K(s)){let n;if(this.isParentValidFn(e.origin))return n=t?this.sw:this.client,n.resolve(s);if(J(s))return n=t?this.sw:this.client,n.resolve(D({requestId:s.id,rPCError:F({code:N})}));throw new Error("Invalid origin")}throw new Error("Unknown RPCEntity type")}catch(e){}var n;}on(e,t){this.registeredMethods[e]=t;}}class H{constructor(){this.call=(e,t)=>this.browserComms.call(e,t),this.listen=()=>{this.browserComms.listen(),this.browserComms.on("context.getCredentials",this.getCredentials),this.browserComms.on("dom.setStyle",this.setStyle);},this.setStyle=({querySelector:e,style:t})=>{const n=document.querySelector(e);null==n||n.setAttribute("style",t);},this.getCredentials=()=>this.credentials,this.setCredentials=e=>{this.credentials=e;},this.browserComms=new z,this.credentials={};}}class X{constructor(e){this.gatewayService=e;}addTwitchEmotesToMessage(e){return function(e,t){const n=[];for(const s of e.runs)if("string"==typeof s.text){const{text:e}=s;let r=0,i=0;const o=f(e);let a=!1;for(const s of o){const o=t("🌝"===s?"Kappa":s);o&&(a=!0,r>0&&n.push({text:e.substring(i,r)}),n.push({emoji:o}),i=r+s.length),r+=s.length;}a?n.push({text:e.substring(i,r)}):n.push(s);}else if("🌝"===s.emoji.emojiId){const e=t("Kappa");e&&n.push({emoji:e});}else n.push(s);return e.runs=n,e}(e,(e=>this.gatewayService.getEmote(e)))}}class Y extends e.exports.EventEmitter{constructor(e){super(),this.backgroundService=e,this.badgeList=[],this.emoteCache=new Map,e.getLiveStorageValue("auth.token",dt).then((e=>this.myUserInfo=e)),this.fetchUserInfo(),this.fetchEmotes(),this.fetchBadges(),setInterval((()=>{this.fetchUserInfo(),this.fetchEmotes(),this.fetchBadges();}),3e5);}async fetchBadges(){const e=await this.backgroundService.fetch("/gateway/badges");if(!s(e))return;const t=e.body.sort(((e,t)=>e.months-t.months));this.badgeList=t.map((e=>[e.months,{thumbnails:[{url:e.url,width:16,height:16}]}])),this.emit("badges",this.badgeList);}async fetchEmotes(){const e=await this.backgroundService.fetch("/gateway/emotes");if(s(e)){this.emoteCache.clear();for(const t of e.body){const e=m(t);e&&this.emoteCache.set(t.name,e);}this.emit("emotes",this.emoteCache);}}async fetchUserInfo(){const e=await this.backgroundService.fetch("/gateway/users");s(e)&&(this.infoCache=new Map(e.body),this.emit("users",this.infoCache));}getSerializedMetadata(e){const t=e.links.find((t=>t.prv===e.prv)),n={a:null==t?void 0:t.name,b:e.meta.sub,c:e.meta.col};return Object.values(n).filter((e=>void 0!==e)).length>0?n:void 0}getUserInfo(e){var t,n,s;if((null===(n=null===(t=this.myUserInfo)||void 0===t?void 0:t.value)||void 0===n?void 0:n.sub)===e){const e=this.getSerializedMetadata(this.myUserInfo.value);if(e)return e}return null===(s=this.infoCache)||void 0===s?void 0:s.get(e)}getEmote(e){var t;return null===(t=this.emoteCache)||void 0===t?void 0:t.get(e)}} +function l(e) { + if (!e) return 0; + e = e.toLowerCase(); + const t = /\((.+)\)/.exec(e); + if (!t) return 1; + const n = t[1].split(/\s/), + s = parseInt(n[0]); + return isNaN(s) ? 0 : n[1].startsWith("year") ? 12 * parseInt(n[0]) : parseInt(n[0]) +} + +function u(e, t) { + const n = t; + for (let t = 0; t < n.length; t++) + if (n[t][0] > e) return n[t - 1][1]; + return n[n.length - 1][1] +} + +function d(e, t, n, s) { + const r = t(e.authorExternalChannelId); + ! function(e, t) { + (null == t ? void 0 : t.a) && (e.authorName = { + simpleText: t.a + }); + }(e, r), + function(e, t) { + var n, s; + e.authorBadges || (e.authorBadges = []); + for (const r of e.authorBadges) { + const e = r.liveChatAuthorBadgeRenderer; + (null === (n = e.icon) || void 0 === n ? void 0 : n.iconType) ? e._mtvType = null === (s = e.icon) || void 0 === s ? void 0 : s.iconType.toLowerCase(): e.customThumbnail && (e._mtvType = "member"), "moderator" === e._mtvType && (delete e.icon, e._mtvType = "moderator", e.customThumbnail = { + thumbnails: [{ + url: t, + width: 18, + height: 18 + }] + }); + } + }(e, s), + function(e, t, n) { + if ((null == n ? void 0 : n.b) && !(n.b <= 0)) + for (const s of e.authorBadges) { + const e = s.liveChatAuthorBadgeRenderer; + if ("member" !== e._mtvType) continue; + const r = l(e.tooltip); + if (0 === r) continue; + const i = r + n.b, + o = `Member (${i} months)`, + a = u(i, t); + e.customThumbnail = a, delete e.icon, e.tooltip = o, e.accessibility.accessibilityData.label = o; + } + }(e, n, r); +} +const h = /[\s.,?!]/; + +function f(e) { + const t = []; + let n = 0; + for (let s = 0; s < e.length - 1; s++) h.test(e[s]) !== h.test(e[s + 1]) && (t.push(e.substring(n, s + 1)), n = s + 1); + return t.push(e.substring(n)), t +} + +function m(e) { + let t$1; + if (e.provider === t.Twitch) t$1 = `https://static-cdn.jtvnw.net/emoticons/v2/${e.id}/static/dark/1.0`; + else if (e.provider === t.FFZ) t$1 = `https://cdn.frankerfacez.com/emote/${e.id}/1`; + else { + if (e.provider !== t.BTTV) return; + t$1 = `https://cdn.betterttv.net/emote/${e.id}/1x`; + } + return { + emojiId: "mogultv-" + e.name + "-" + e.id, + image: { + thumbnails: [{ + url: t$1 + }], + accessibility: { + accessibilityData: { + label: e.name + } + } + }, + isCustomEmoji: !0, + searchTerms: [e.name], + shortcuts: [":" + e.name + ":", e.name] + } +} +const g = ["#ff0000", "#009000", "#b22222", "#ff7f50", "#9acd32", "#ff4500", "#2e8b57", "#daa520", "#d2691e", "#5f9ea0", "#1e90ff", "#ff69b4", "#00ff7f", "#a244f9"]; +class p { + constructor(e) { + this.gatewayService = e; + } + addAliasesToMessage(e) { + d(e, (e => this.gatewayService.getUserInfo(e)), 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="); + } +} +var w = { + exports: {} + }, + v = "undefined" != typeof crypto && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || "undefined" != typeof msCrypto && "function" == typeof window.msCrypto.getRandomValues && msCrypto.getRandomValues.bind(msCrypto); +if (v) { + var y = new Uint8Array(16); + w.exports = function() { + return v(y), y + }; +} else { + var b = new Array(16); + w.exports = function() { + for (var e, t = 0; t < 16; t++) 0 == (3 & t) && (e = 4294967296 * Math.random()), b[t] = e >>> ((3 & t) << 3) & 255; + return b + }; +} +for (var A = [], C = 0; C < 256; ++C) A[C] = (C + 256).toString(16).substr(1); +var I, M, R = function(e, t) { + var n = t || 0, + s = A; + return [s[e[n++]], s[e[n++]], s[e[n++]], s[e[n++]], "-", s[e[n++]], s[e[n++]], "-", s[e[n++]], s[e[n++]], "-", s[e[n++]], s[e[n++]], "-", s[e[n++]], s[e[n++]], s[e[n++]], s[e[n++]], s[e[n++]], s[e[n++]]].join("") + }, + k = w.exports, + S = R, + T = 0, + x = 0; +var E = function(e, t, n) { + var s = t && n || 0, + r = t || [], + i = (e = e || {}).node || I, + o = void 0 !== e.clockseq ? e.clockseq : M; + if (null == i || null == o) { + var a = k(); + null == i && (i = I = [1 | a[0], a[1], a[2], a[3], a[4], a[5]]), null == o && (o = M = 16383 & (a[6] << 8 | a[7])); + } + var c = void 0 !== e.msecs ? e.msecs : (new Date).getTime(), + l = void 0 !== e.nsecs ? e.nsecs : x + 1, + u = c - T + (l - x) / 1e4; + if (u < 0 && void 0 === e.clockseq && (o = o + 1 & 16383), (u < 0 || c > T) && void 0 === e.nsecs && (l = 0), l >= 1e4) throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + T = c, x = l, M = o; + var d = (1e4 * (268435455 & (c += 122192928e5)) + l) % 4294967296; + r[s++] = d >>> 24 & 255, r[s++] = d >>> 16 & 255, r[s++] = d >>> 8 & 255, r[s++] = 255 & d; + var h = c / 4294967296 * 1e4 & 268435455; + r[s++] = h >>> 8 & 255, r[s++] = 255 & h, r[s++] = h >>> 24 & 15 | 16, r[s++] = h >>> 16 & 255, r[s++] = o >>> 8 | 128, r[s++] = 255 & o; + for (var f = 0; f < 6; ++f) r[s + f] = i[f]; + return t || S(r) + }, + B = w.exports, + O = R; +var q = function(e, t, n) { + var s = t && n || 0; + "string" == typeof e && (t = "binary" === e ? new Array(16) : null, e = null); + var r = (e = e || {}).random || (e.rng || B)(); + if (r[6] = 15 & r[6] | 64, r[8] = 63 & r[8] | 128, t) + for (var i = 0; i < 16; ++i) t[s + i] = r[i]; + return t || O(r) + }, + j = E, + L = q, + _ = L; +_.v1 = j, _.v4 = L; +var P = _; +const N = 100, + U = -1, + V = { + "-32601": "Method not found" + }; +V[N] = "Invalid origin", V[U] = "Error"; +class W { + constructor({ + postMessage: e, + timeout: t = 3e3 + } = {}) { + this.postMessage = e, this.timeout = t, this.pendingRequests = {}, this.callbackFunctions = {}, this.call = this.call.bind(this), this.resolve = this.resolve.bind(this), this.resolveRPCResponse = this.resolveRPCResponse.bind(this); + } + call(e, t, n = {}) { + const { + timeout: s = this.timeout + } = n, r = function() { + let e = null, + t = null; + const n = new Promise(((n, s) => (e = n, t = s, t))); + return n.resolve = e, n.reject = t, n + }(), i = []; + for (const e of Array.from(t || [])) + if ("function" == typeof e) { + const t = { + _browserComms: !0, + _browserCommsGunCallback: !0, + callbackId: P.v4() + }; + this.callbackFunctions[t.callbackId] = e, i.push(t); + } else i.push(e); + const o = function({ + method: e, + params: t + }) { + if (null == t) throw new Error("Must provide params"); + for (const e of Array.from(t)) + if ("function" == typeof e) throw new Error("Functions are not allowed. Use RPCCallback instead."); + return { + _browserComms: !0, + id: P.v4(), + method: e, + params: t + } + }({ + method: e, + params: i + }); + this.pendingRequests[o.id] = { + reject: r.reject, + resolve: r.resolve, + isAcknowledged: !1 + }; + try { + this.postMessage(JSON.stringify(o), "*"); + } catch (e) { + return r.reject(e), r + } + return setTimeout((() => { + if (!this.pendingRequests[o.id].isAcknowledged) return r.reject(new Error("Message Timeout")) + }), s), r + } + resolve(e) { + switch (!1) { + case !(!0 === e?.acknowledge): + return this.resolveRPCRequestAcknowledgement(e); + case !J(e): + return this.resolveRPCResponse(e); + case ! function(e) { + return e?.callbackId && null != e.params + }(e): + return this.resolveRPCCallbackResponse(e); + default: + throw new Error("Unknown response type") + } + } + resolveRPCResponse(e) { + const t = this.pendingRequests[e.id]; + if (null == t) throw new Error("Request not found"); + t.isAcknowledged = !0; + const { + result: n, + error: s + } = e; + return s ? t.reject(s.data || new Error(s.message)) : null != n ? t.resolve(n) : t.resolve(null), null + } + resolveRPCRequestAcknowledgement(e) { + const t = this.pendingRequests[e.id]; + if (null == t) throw new Error("Request not found"); + return t.isAcknowledged = !0, null + } + resolveRPCCallbackResponse(e) { + const t = this.callbackFunctions[e.callbackId]; + if (null == t) throw new Error("Callback not found"); + return t.apply(null, e.params), null + } +} + +function Q({ + params: e, + callbackId: t +}) { + return { + _browserComms: !0, + callbackId: t, + params: e + } +} + +function D({ + requestId: e, + result: t = null, + rPCError: n = null +}) { + return { + _browserComms: !0, + id: e, + result: t, + error: n + } +} + +function F({ + code: e, + data: t = null +}) { + return { + _browserComms: !0, + code: e, + message: V[e], + data: t + } +} + +function K(e) { + return e?._browserComms +} + +function J(e) { + return e?.id && (void 0 !== e.result || void 0 !== e.error) +} +const G = 1e4, + Z = "undefined" != typeof window ? window : self; +class z { + constructor(e = {}) { + const { + timeout: t, + shouldConnectToServiceWorker: n, + handshakeTimeout: s = G, + isParentValidFn: r = (() => !0) + } = e; + this.handshakeTimeout = s, this.isParentValidFn = r, this.isListening = !1; + const i = globalThis?.window?._browserCommsIsInAppBrowser || -1 !== navigator.userAgent.indexOf("/InAppBrowser"); + this.hasParent = "undefined" != typeof window && window.self !== window.top || i, this.parent = globalThis?.window?.parent, this.client = new W({ + timeout: t, + postMessage: (e, t) => { + if (i) { + let t = (() => { + try { + return JSON.parse(localStorage["portal:queue"]) + } catch (e) { + return null + } + })(); + return null == t && (t = []), t.push(e), localStorage["portal:queue"] = JSON.stringify(t), localStorage["portal:queue"] + } + return this.parent?.postMessage(e, t) + } + }), this.ready = n ? function() { + return new Promise(((e, t) => { + const n = setTimeout(e, 5e3); + return navigator?.serviceWorker?.ready.catch((function() { + return console.log("caught sw error"), null + })).then((t => { + const s = t?.active; + return s && (this.sw = new W({ + timeout: this.timeout, + postMessage: (e, t) => { + const n = new MessageChannel; + if (n) return n.port1.onmessage = e => this.onMessage(e, { + isServiceWorker: !0 + }), s.postMessage(e, [n.port2]) + } + })), clearTimeout(n), e() + })) + })) + }() : Promise.resolve(!0), this.registeredMethods = { + ping: () => Object.keys(this.registeredMethods) + }, this.parentsRegisteredMethods = [], this.setParent = this.setParent.bind(this), this.setInAppBrowserWindow = this.setInAppBrowserWindow.bind(this), this.replyInAppBrowserWindow = this.replyInAppBrowserWindow.bind(this), this.onMessageInAppBrowserWindow = this.onMessageInAppBrowserWindow.bind(this), this.listen = this.listen.bind(this), this.close = this.close.bind(this), this.call = this.call.bind(this), this.onRequest = this.onRequest.bind(this), this.onMessage = this.onMessage.bind(this), this.on = this.on.bind(this); + } + setParent(e) { + this.parent = e, this.hasParent = !0; + } + setInAppBrowserWindow(e, t) { + this.iabWindow = e; + const n = -1 !== navigator.userAgent.indexOf("iPhone") ? "loadstop" : "loadstart"; + return this.iabWindow.addEventListener(n, (() => { + this.iabWindow.executeScript({ + code: "window._browserCommsIsInAppBrowser = true;" + }), clearInterval(this.iabInterval), this.iabInterval = setInterval((() => this.iabWindow.executeScript({ + code: "localStorage.getItem('portal:queue');" + }, (e => { + try { + return (e = JSON.parse(e?.[0])) && e.length && this.iabWindow.executeScript({ + code: "localStorage.setItem('portal:queue', '[]')" + }), e.map((e => t(e))) + } catch (t) { + return console.log(t, e) + } + }))), 100); + })), this.iabWindow.addEventListener("exit", (() => clearInterval(this.iabInterval))) + } + replyInAppBrowserWindow(e) { + const t = e.replace(/'/g, "'"); + return this.iabWindow.executeScript({ + code: `if(window._browserCommsOnMessage) window._browserCommsOnMessage('${t}')` + }) + } + onMessageInAppBrowserWindow(e) { + return this.onMessage({ + data: e, + source: { + postMessage: e => this.call("browser.reply", { + data: e + }) + } + }) + } + listen() { + this.isListening = !0, Z.addEventListener("message", this.onMessage), "undefined" != typeof window && null !== window && (window._browserCommsOnMessage = e => this.onMessage({ + debug: !0, + data: (() => { + try { + return JSON.parse(e) + } catch (t) { + return console.log("error parsing", e), null + } + })() + })), this.clientValidation = this.client.call("ping", null, { + timeout: this.handshakeTimeout + }).then((e => { + this.hasParent && (this.parentsRegisteredMethods = this.parentsRegisteredMethods.concat(e)); + })).catch((() => null)), this.swValidation = this.ready.then((() => this.sw?.call("ping", null, { + timeout: this.handshakeTimeout + }))).then((e => { + this.parentsRegisteredMethods = this.parentsRegisteredMethods.concat(e); + })); + } + close() { + return this.isListening = !0, Z.removeEventListener("message", this.onMessage) + } + async call(e, ...t) { + if (!this.isListening) return new Promise(((e, t) => t(new Error("Must call listen() before call()")))); + const n = (e, t) => { + const n = this.registeredMethods[e]; + if (!n) throw new Error("Method not found"); + return n.apply(null, t) + }; + if (await this.ready, this.hasParent) { + let s = null; + await this.clientValidation; + if (!(-1 !== this.parentsRegisteredMethods.indexOf(e))) return n(e, t); { + const r = await this.client.call(e, t); + try { + if ("ping" === e) { + const s = n(e, t); + return (r || []).concat(s) + } + return r + } catch (r) { + try { + if (s = r, !this.sw) return n(e, t); + try { + const s = await this.sw.call(e, t); + if ("ping" === e) { + const r = n(e, t); + return (s || []).concat(r) + } + return s + } catch { + return n(e, t) + } + } catch (e) { + throw "Method not found" === e.message && s ? s : e + } + } + } + } else { + if (!this.sw) return n(e, t); + if (await this.swValidation, -1 === this.parentsRegisteredMethods.indexOf(e)) return n(e, t); + try { + const s = await this.sw.call(e, t); + if ("ping" === e) { + const r = n(e, t); + return (s || []).concat(r) + } + return s + } catch (s) { + return n(e, t) + } + } + } + async onRequest(e, t) { + const n = []; + for (const s of Array.from(t.params || [])) s?._browserCommsGunCallback ? (t => { + n.push(((...n) => e(Q({ + params: n, + callbackId: t.callbackId + })))); + })(s) : n.push(s); + e(function({ + requestId: e + }) { + return { + _browserComms: !0, + id: e, + acknowledge: !0 + } + }({ + requestId: t.id + })); + try { + const s = await this.call(t.method, ...Array.from(n)); + return e(D({ + requestId: t.id, + result: s + })) + } catch (n) { + return e(D({ + requestId: t.id, + rPCError: F({ + code: U, + data: n + }) + })) + } + } + onMessage(e, { + isServiceWorker: t + } = {}) { + try { + const s = "string" == typeof e.data ? JSON.parse(e.data) : e.data; + if (!K(s)) return; + const r = function(t) { + return "undefined" != typeof window && null !== window ? e.source?.postMessage(JSON.stringify(t), "*") : e.ports[0].postMessage(JSON.stringify(t)) + }; + if (null != (n = s)?.id && null != n.method) return this.onRequest(r, s); + if (K(s)) { + let n; + if (this.isParentValidFn(e.origin)) return n = t ? this.sw : this.client, n.resolve(s); + if (J(s)) return n = t ? this.sw : this.client, n.resolve(D({ + requestId: s.id, + rPCError: F({ + code: N + }) + })); + throw new Error("Invalid origin") + } + throw new Error("Unknown RPCEntity type") + } catch (e) {} + var n; + } + on(e, t) { + this.registeredMethods[e] = t; + } +} +class H { + constructor() { + this.call = (e, t) => this.browserComms.call(e, t), this.listen = () => { + this.browserComms.listen(), this.browserComms.on("context.getCredentials", this.getCredentials), this.browserComms.on("dom.setStyle", this.setStyle); + }, this.setStyle = ({ + querySelector: e, + style: t + }) => { + const n = document.querySelector(e); + null == n || n.setAttribute("style", t); + }, this.getCredentials = () => this.credentials, this.setCredentials = e => { + this.credentials = e; + }, this.browserComms = new z, this.credentials = {}; + } +} +class X { + constructor(e) { + this.gatewayService = e; + } + addTwitchEmotesToMessage(e) { + return function(e, t) { + const n = []; + for (const s of e.runs) + if ("string" == typeof s.text) { + const { + text: e + } = s; + let r = 0, + i = 0; + const o = f(e); + let a = !1; + for (const s of o) { + const o = t("🌝" === s ? "Kappa" : s); + o && (a = !0, r > 0 && n.push({ + text: e.substring(i, r) + }), n.push({ + emoji: o + }), i = r + s.length), r += s.length; + } + a ? n.push({ + text: e.substring(i, r) + }) : n.push(s); + } else if ("🌝" === s.emoji.emojiId) { + const e = t("Kappa"); + e && n.push({ + emoji: e + }); + } else n.push(s); + return e.runs = n, e + }(e, (e => this.gatewayService.getEmote(e))) + } +} +class Y extends e.exports.EventEmitter { + constructor(e) { + super(), this.backgroundService = e, this.badgeList = [], this.emoteCache = new Map, e.getLiveStorageValue("auth.token", dt).then((e => this.myUserInfo = e)), this.fetchUserInfo(), this.fetchEmotes(), this.fetchBadges(), setInterval((() => { + this.fetchUserInfo(), this.fetchEmotes(), this.fetchBadges(); + }), 3e5); + } + async fetchBadges() { + const e = await this.backgroundService.fetch("/gateway/badges"); + if (!s(e)) return; + const t = e.body.sort(((e, t) => e.months - t.months)); + this.badgeList = t.map((e => [e.months, { + thumbnails: [{ + url: e.url, + width: 16, + height: 16 + }] + }])), this.emit("badges", this.badgeList); + } + async fetchEmotes() { + const e = await this.backgroundService.fetch("/gateway/emotes"); + if (s(e)) { + this.emoteCache.clear(); + for (const t of e.body) { + const e = m(t); + e && this.emoteCache.set(t.name, e); + } + this.emit("emotes", this.emoteCache); + } + } + async fetchUserInfo() { + const e = await this.backgroundService.fetch("/gateway/users"); + s(e) && (this.infoCache = new Map(e.body), this.emit("users", this.infoCache)); + } + getSerializedMetadata(e) { + const t = e.links.find((t => t.prv === e.prv)), + n = { + a: null == t ? void 0 : t.name, + b: e.meta.sub, + c: e.meta.col + }; + return Object.values(n).filter((e => void 0 !== e)).length > 0 ? n : void 0 + } + getUserInfo(e) { + var t, n, s; + if ((null === (n = null === (t = this.myUserInfo) || void 0 === t ? void 0 : t.value) || void 0 === n ? void 0 : n.sub) === e) { + const e = this.getSerializedMetadata(this.myUserInfo.value); + if (e) return e + } + return null === (s = this.infoCache) || void 0 === s ? void 0 : s.get(e) + } + getEmote(e) { + var t; + return null === (t = this.emoteCache) || void 0 === t ? void 0 : t.get(e) + } +} /*! * cookie * Copyright(c) 2012-2014 Roman Shtylman * Copyright(c) 2015 Douglas Christopher Wilson * MIT Licensed - */var $=function(e,t){if("string"!=typeof e)throw new TypeError("argument str must be a string");for(var n={},s=t||{},r=e.split(te),i=s.decode||ee,o=0;o0&&e.forEach((e=>{re(e,{sourceType:"youtube"});}));}}function re(e,{sourceType:t,retries:n=15}){if(!e)return;if(n<0)return;const s=function(e){var t,n;if(e.iframeQuerySelector){const s=document.querySelector(e.querySelector),r=null!==(t=null==s?void 0:s.contentDocument)&&void 0!==t?t:null===(n=null==s?void 0:s.contentWindow)||void 0===n?void 0:n.document;if(!r)return;return r.querySelector(e.iframeQuerySelector)}return document.querySelector(e.querySelector)}(e);if(s){const t=document.createElement("iframe");t.src=e.iframeUrl,t.setAttribute("key",e.slug),t.id=e.slug,"append"===e.domAction?s.appendChild(t):"replace"===e.domAction&&s.replaceWith(t);}else setTimeout((()=>{re(e,{sourceType:t,retries:n-1});}),250);}var ie;async function oe(e,n){await customElements.whenDefined(e);const s=customElements.get(e);if(!s)return void console.warn(`Polymer: ${e} not found`);const r=s.prototype[n.functionName];s.prototype[n.functionName]=function(...e){if(n.ludwigOnly&&!e$4())return r.apply(this,e);if(n.type===ie.OverrideFunction)try{return n.function.apply(this,e)}catch(e){console.error(JSON.stringify(n)),console.error(e);}if(n.type===ie.RunBefore)try{n.function.apply(this,e);}catch(e){console.error(e);}let s=r.apply(this,e);if(n.type===ie.RunAfter)try{s=n.function.apply(this,[s]);}catch(e){console.error(e);}return s};}!function(e){e[e.OverrideFunction=0]="OverrideFunction",e[e.RunBefore=1]="RunBefore",e[e.RunAfter=2]="RunAfter";}(ie||(ie={}));const ae=(e,t,{LudwigOnly:n})=>({functionName:e,function:t,ludwigOnly:n||!1,type:ie.OverrideFunction}),ce=(e,t,{LudwigOnly:n})=>({functionName:e,function:t,ludwigOnly:n||!1,type:ie.RunBefore});function le(e,n,s){oe("yt-live-chat-item-list-renderer",ce("handleAddChatItemAction_",(function(t){t.item.liveChatTextMessageRenderer&&(e.addTwitchEmotesToMessage(t.item.liveChatTextMessageRenderer.message),n.addAliasesToMessage(t.item.liveChatTextMessageRenderer));}),{LudwigOnly:true})),oe("yt-live-chat-text-input-field-renderer",((e,t,{LudwigOnly:n})=>({functionName:e,function:t,ludwigOnly:n||!1,type:ie.RunAfter}))("calculateLiveChatRichMessageInput_",(function(e){var t;if(!(null==e?void 0:e.textSegments))return e;for(const n of e.textSegments)if(null===(t=n.emojiId)||void 0===t?void 0:t.startsWith("mogultv")){const[,e]=n.emojiId.split("-");delete n.emojiId,n.text=e;}return e}),{LudwigOnly:true})),s.on("emotes",(e=>{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([...e.values()]);}else console.warn("Cannot find chat list");}));}function ue(e){return e?e._mtvType?e._mtvType:e.icon?e.icon.iconType.toLowerCase():e.customThumbnail?"member":"":""}async function de(e){oe("yt-live-chat-author-badge-renderer",ae("computeType_",(e=>ue(e.liveChatAuthorBadgeRenderer)),{LudwigOnly:true})),oe("yt-live-chat-author-chip",ae("computeAuthorType_",(function(t){var n,s;const r=this.$["author-name"];if(r){let t;const i=null===(n=this.parentElement)||void 0===n?void 0:n.parentElement,o=null===(s=null==i?void 0:i.data)||void 0===s?void 0:s.authorExternalChannelId;if(o){const n=e.getUserInfo(o);(null==n?void 0:n.c)&&(t=n.c);}t||(t=function(e){const t=function(e){let t=0;if(0===e.length)return 0;for(let n=0;n{await n()?(document.body.setAttribute("data-mogul-theater-mode",""),s||window.dispatchEvent(new Event("resize")),s=!0):(s=!1,document.body.removeAttribute("data-mogul-theater-mode"));}),250);}(fe),async function(e){if(!window.ytcfg)return;const t={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({},t),{cookies:$(document.cookie)})),s=await e.fetch("/auth/@me"),(!n.success||!s.meta.isSuccess||n.data.id!==(null===(r=s.body)||void 0===r?void 0:r.sub)||!(null===(i=s.body)||void 0===i?void 0:i.googleId))&&await e.fetch("/auth/login",t);var n,s,r,i;}(fe);const e=new H;e.listen();const s=setInterval((()=>{const t=n();(null==t?void 0:t.channelId)&&(clearInterval(s),se(fe,e,t.channelId));}),1e3);setInterval((()=>{const e=document.querySelector("ytd-live-chat-frame iframe");if(e&&!e.src.includes("rVuDVKjClhIQSUGR")){const t=n();e.src+=`#rVuDVKjClhIQSUGR=${encodeURIComponent(JSON.stringify(t))}`;}}),1e3);}var me,ge; + */ +var $ = function(e, t) { + if ("string" != typeof e) throw new TypeError("argument str must be a string"); + for (var n = {}, s = t || {}, r = e.split(te), i = s.decode || ee, o = 0; o < r.length; o++) { + var a = r[o], + c = a.indexOf("="); + if (!(c < 0)) { + var l = a.substr(0, c).trim(), + u = a.substr(++c, a.length).trim(); + '"' == u[0] && (u = u.slice(1, -1)), null == n[l] && (n[l] = ne(u, i)); + } + } + return n + }, + ee = decodeURIComponent, + te = /; */; + +function ne(e, t) { + try { + return t(e) + } catch (t) { + return e + } +} +async function se(e, t, n) { + if (!window.ytcfg) return; + const s$1 = await e.fetch("/auth/token"); + if (!s(s$1) || !s$1.body) return; + const r = { + sourceType: "google", + token: s$1.body + }; + t.setCredentials(r); + const o = await e.fetch("/spore/fetch-extension-mappings", n); + if (s(o)) { + const e = o.body; + e && (null == e ? void 0 : e.length) > 0 && e.forEach((e => { + re(e, { + sourceType: "youtube" + }); + })); + } +} + +function re(e, { + sourceType: t, + retries: n = 15 +}) { + if (!e) return; + if (n < 0) return; + const s = function(e) { + var t, n; + if (e.iframeQuerySelector) { + const s = document.querySelector(e.querySelector), + r = null !== (t = null == s ? void 0 : s.contentDocument) && void 0 !== t ? t : null === (n = null == s ? void 0 : s.contentWindow) || void 0 === n ? void 0 : n.document; + if (!r) return; + return r.querySelector(e.iframeQuerySelector) + } + return document.querySelector(e.querySelector) + }(e); + if (s) { + const t = document.createElement("iframe"); + t.src = e.iframeUrl, t.setAttribute("key", e.slug), t.id = e.slug, "append" === e.domAction ? s.appendChild(t) : "replace" === e.domAction && s.replaceWith(t); + } else setTimeout((() => { + re(e, { + sourceType: t, + retries: n - 1 + }); + }), 250); +} +var ie; +async function oe(e, n) { + await customElements.whenDefined(e); + const s = customElements.get(e); + if (!s) return void console.warn(`Polymer: ${e} not found`); + const r = s.prototype[n.functionName]; + s.prototype[n.functionName] = function(...e) { + if (n.ludwigOnly && !e$4()) return r.apply(this, e); + if (n.type === ie.OverrideFunction) try { + return n.function.apply(this, e) + } catch (e) { + console.error(JSON.stringify(n)), console.error(e); + } + if (n.type === ie.RunBefore) try { + n.function.apply(this, e); + } catch (e) { + console.error(e); + } + let s = r.apply(this, e); + if (n.type === ie.RunAfter) try { + s = n.function.apply(this, [s]); + } catch (e) { + console.error(e); + } + return s + }; +}! function(e) { + e[e.OverrideFunction = 0] = "OverrideFunction", e[e.RunBefore = 1] = "RunBefore", e[e.RunAfter = 2] = "RunAfter"; +}(ie || (ie = {})); +const ae = (e, t, { + LudwigOnly: n + }) => ({ + functionName: e, + function: t, + ludwigOnly: n || !1, + type: ie.OverrideFunction + }), + ce = (e, t, { + LudwigOnly: n + }) => ({ + functionName: e, + function: t, + ludwigOnly: n || !1, + type: ie.RunBefore + }); + +function le(e, n, s) { + oe("yt-live-chat-item-list-renderer", ce("handleAddChatItemAction_", (function(t) { + t.item.liveChatTextMessageRenderer && (e.addTwitchEmotesToMessage(t.item.liveChatTextMessageRenderer.message), n.addAliasesToMessage(t.item.liveChatTextMessageRenderer)); + }), { + LudwigOnly: true + })), oe("yt-live-chat-text-input-field-renderer", ((e, t, { + LudwigOnly: n + }) => ({ + functionName: e, + function: t, + ludwigOnly: n || !1, + type: ie.RunAfter + }))("calculateLiveChatRichMessageInput_", (function(e) { + var t; + if (!(null == e ? void 0 : e.textSegments)) return e; + for (const n of e.textSegments) + if (null === (t = n.emojiId) || void 0 === t ? void 0 : t.startsWith("mogultv")) { + const [, e] = n.emojiId.split("-"); + delete n.emojiId, n.text = e; + } return e + }), { + LudwigOnly: true + })), s.on("emotes", (e => { + 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([...e.values()]); + } else console.warn("Cannot find chat list"); + })); +} + +function ue(e) { + return e ? e._mtvType ? e._mtvType : e.icon ? e.icon.iconType.toLowerCase() : e.customThumbnail ? "member" : "" : "" +} +async function de(e) { + oe("yt-live-chat-author-badge-renderer", ae("computeType_", (e => ue(e.liveChatAuthorBadgeRenderer)), { + LudwigOnly: true + })), oe("yt-live-chat-author-chip", ae("computeAuthorType_", (function(t) { + var n, s; + const r = this.$["author-name"]; + if (r) { + let t; + const i = null === (n = this.parentElement) || void 0 === n ? void 0 : n.parentElement, + o = null === (s = null == i ? void 0 : i.data) || void 0 === s ? void 0 : s.authorExternalChannelId; + if (o) { + const n = e.getUserInfo(o); + (null == n ? void 0 : n.c) && (t = n.c); + } + t || (t = function(e) { + const t = function(e) { + let t = 0; + if (0 === e.length) return 0; + for (let n = 0; n < e.length; n++) t = (t << 5) - t + e.charCodeAt(n), t |= 0; + return t + }(e); + return g[(t % g.length + g.length) % g.length] + }(this.authorName.simpleText)), r.style.color = t; + } + return function(e) { + if (!e) return ""; + for (const t of e) { + if (!t.liveChatAuthorBadgeRenderer) continue; + const e = ue(t.liveChatAuthorBadgeRenderer); + if ("verified" !== e) return e + } + return "" + }(t) + }), { + 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 he = null !== document.querySelector("yt-live-chat-app"), + fe = new e$2; +if (he) { + const e = new Y(fe), + t = new X(e), + n = new p(e); + me = fe, le(t, n, ge = e), async function(e) { + const t = await e.getLiveStorageValue("settings.chatBatching"); + oe("yt-timed-continuation", ce("dataChanged_", (function() { + t.value && (this.data.timeoutMs /= 3 * Math.random() + 2); + }), { + LudwigOnly: !0 + })), oe("yt-live-chat-renderer", ce("preprocessActions_", (function(e) { + const n = Object.getPrototypeOf(this.smoothedQueue_); + for (const e in n) + if (e.includes("emitSmoothedMessages")) { + n[e] = function() { + if (this.nextUpdateId_ = null, this.messageQueue_.length) { + let s = 1e4; + this.estimatedUpdateInterval_ && (s = this.estimatedUpdateInterval_ - Date.now() + this.lastUpdateTime_); + const r = this.messageQueue_.length < s / 80 ? 1 : Math.ceil(this.messageQueue_.length / (s / 80)), + i = this.messageQueue_.splice(0, r); + if (this.callback && this.callback(i[0]), this.messageQueue_.length) { + let i = 1; + t.value || (1 === r ? (i = s / this.messageQueue_.length, i *= Math.random() + .5, i = Math.min(1e3, i), i = Math.max(80, i)) : i = 80), this.nextUpdateId_ = window.setTimeout(n[e].bind(this), i); + } + } + }; + break + } return e + }), { + LudwigOnly: !0 + })); + }(me), de(ge); +} else { + !async function(e) { + async function n() { + const n = document.querySelector("ytd-watch-flexy"), + s = (null == n ? void 0 : n.hasAttribute("theater")) || !1, + r = (null == n ? void 0 : n.hasAttribute("fullscreen")) || !1, + i = await e.getStorage("settings.theaterMode"), + o = e$4(!1); + return s && !r && i && o + } + let s = await n(); + setInterval((async () => { + await n() ? (document.body.setAttribute("data-mogul-theater-mode", ""), s || window.dispatchEvent(new Event("resize")), s = !0) : (s = !1, document.body.removeAttribute("data-mogul-theater-mode")); + }), 250); + }(fe), async function(e) { + if (!window.ytcfg) return; + const t = { + 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({}, t), { + cookies: $(document.cookie) + })), s = await e.fetch("/auth/@me"), (!n.success || !s.meta.isSuccess || n.data.id !== (null === (r = s.body) || void 0 === r ? void 0 : r.sub) || !(null === (i = s.body) || void 0 === i ? void 0 : i.googleId)) && await e.fetch("/auth/login", t); + var n, s, r, i; + }(fe); + const e = new H; + e.listen(); + const s = setInterval((() => { + const t = n(); + (null == t ? void 0 : t.channelId) && (clearInterval(s), se(fe, e, t.channelId)); + }), 1e3); + setInterval((() => { + const e = document.querySelector("ytd-live-chat-frame iframe"); + if (e && !e.src.includes("rVuDVKjClhIQSUGR")) { + const t = n(); + e.src += `#rVuDVKjClhIQSUGR=${encodeURIComponent(JSON.stringify(t))}`; + } + }), 1e3); +} +var me, ge; \ No newline at end of file diff --git a/fetch_youtube-cfbafc47.js b/fetch_youtube-cfbafc47.js index b331e1c..716549b 100644 --- a/fetch_youtube-cfbafc47.js +++ b/fetch_youtube-cfbafc47.js @@ -1,3 +1,64 @@ -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,a=Math.floor(Date.now()/1e3),s=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("")}(`${a} ${o} ${n}`),c={"x-origin":n,authorization:`SAPISIDHASH ${a}_${s}`,"x-goog-authuser":t.authUser,cookie:Object.entries(t.cookies).map((([e,t])=>`${e}=${t}`)).join(";")};t.pageId&&(c["x-goog-pageid"]=t.pageId);const i=await fetch(`https://www.youtube.com${e}?key=${t.key}`,{method:"POST",headers:c,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,""),a=o.responseContext.mainAppWebResponseContext.datasyncId.split("||")[0];return /^UC.{22}$/.test(n)?{success:!0,data:{id:n,googleUserId:a,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, + a = Math.floor(Date.now() / 1e3), + s = 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("") + }(`${a} ${o} ${n}`), c = { + "x-origin": n, + authorization: `SAPISIDHASH ${a}_${s}`, + "x-goog-authuser": t.authUser, + cookie: Object.entries(t.cookies).map((([e, t]) => `${e}=${t}`)).join(";") + }; + t.pageId && (c["x-goog-pageid"] = t.pageId); + const i = await fetch(`https://www.youtube.com${e}?key=${t.key}`, { + method: "POST", + headers: c, + 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, ""), + a = o.responseContext.mainAppWebResponseContext.datasyncId.split("||")[0]; + return /^UC.{22}$/.test(n) ? { + success: !0, + data: { + id: n, + googleUserId: a, + 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-14cd00a5.js b/get_stream_details-14cd00a5.js index a4f70a8..452eb33 100644 --- a/get_stream_details-14cd00a5.js +++ b/get_stream_details-14cd00a5.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("rVuDVKjClhIQSUGR");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("rVuDVKjClhIQSUGR"); + 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 810d00c..2134a05 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 ""}))}}],ht=function(e){var t=e.key;if("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||ft,i={},l=[];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:Qt}},Jt=T.exports.createContext("undefined"!=typeof HTMLElement?ht({key:"css"}):null);Jt.Provider;var en=function(e){return T.exports.forwardRef((function(t,n){var r=T.exports.useContext(Jt);return e(t,r,n)}))},tn=T.exports.createContext({}),nn=en((function(e,t){var n=e.styles,r=Zt([n],void 0,T.exports.useContext(tn)),o=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}),a=!1,i=document.querySelector('style[data-emotion="'+e+" "+r.name+'"]');return t.sheet.tags.length&&(n.before=t.sheet.tags[0]),null!==i&&(a=!0,i.setAttribute("data-emotion",e),n.hydrate([i])),o.current=[n,a],function(){n.flush();}}),[t]),T.exports.useLayoutEffect((function(){var e=o.current,n=e[0];if(e[1])e[1]=!1;else {if(void 0!==r.next&&Dt(t,r.next,!0),n.tags.length){var a=n.tags[n.tags.length-1].nextElementSibling;n.before=a,n.flush();}t.insert("",r,n,!1);}}),[t,r.name]),null}));function rn(){for(var e=arguments.length,t=new Array(e),n=0;n96?an:ln},un=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},cn=function(){return null},dn=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=un(n,r,i),u=s||sn(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 fn.exports.jsx(nn,{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 + "}" : "" +} +var st = 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) + }, + ut = 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] += st(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)) + }, + ct = new WeakMap, + dt = 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) || ct.get(n)) && !r) { + ct.set(e, !0); + for (var o = [], a = ut(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]; + } + } + }, + pt = function(e) { + if ("decl" === e.type) { + var t = e.value; + 108 === t.charCodeAt(0) && 98 === t.charCodeAt(2) && (e.return = "", e.value = ""); + } + }, + ft = [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 "" + })) + } + }], + ht = function(e) { + var t = e.key; + if ("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 || ft, + i = {}, + l = []; + 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, c = [lt, (u = function(e) { + s.insert(e); + }, function(e) { + e.root || (e = e.return) && u(e); + })], + d = function(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 + } + }([dt, pt].concat(a, c)); + o = function(e, t, n, r) { + s = n, + function(e) { + it(et(e), d); + }(e ? e + "{" + t.styles + "}" : t.styles), r && (p.inserted[t.name] = !0); + }; + var p = { + 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 p.sheet.hydrate(l), p + }, + mt = { + exports: {} + }, + vt = {}, + gt = "function" == typeof Symbol && Symbol.for, + bt = gt ? Symbol.for("react.element") : 60103, + yt = gt ? Symbol.for("react.portal") : 60106, + xt = gt ? Symbol.for("react.fragment") : 60107, + wt = gt ? Symbol.for("react.strict_mode") : 60108, + kt = gt ? Symbol.for("react.profiler") : 60114, + St = gt ? Symbol.for("react.provider") : 60109, + Ct = gt ? Symbol.for("react.context") : 60110, + Et = gt ? Symbol.for("react.async_mode") : 60111, + Rt = gt ? Symbol.for("react.concurrent_mode") : 60111, + Pt = gt ? Symbol.for("react.forward_ref") : 60112, + Mt = gt ? Symbol.for("react.suspense") : 60113, + Ot = gt ? Symbol.for("react.suspense_list") : 60120, + Tt = gt ? Symbol.for("react.memo") : 60115, + jt = gt ? Symbol.for("react.lazy") : 60116, + zt = gt ? Symbol.for("react.block") : 60121, + Nt = gt ? Symbol.for("react.fundamental") : 60117, + _t = gt ? Symbol.for("react.responder") : 60118, + Lt = gt ? Symbol.for("react.scope") : 60119; + +function It(e) { + if ("object" == typeof e && null !== e) { + var t = e.$$typeof; + switch (t) { + case bt: + switch (e = e.type) { + case Et: + case Rt: + case xt: + case kt: + case wt: + case Mt: + return e; + default: + switch (e = e && e.$$typeof) { + case Ct: + case Pt: + case jt: + case Tt: + case St: + return e; + default: + return t + } + } + case yt: + return t + } + } +} + +function Ft(e) { + return It(e) === Rt +} +vt.AsyncMode = Et, vt.ConcurrentMode = Rt, vt.ContextConsumer = Ct, vt.ContextProvider = St, vt.Element = bt, vt.ForwardRef = Pt, vt.Fragment = xt, vt.Lazy = jt, vt.Memo = Tt, vt.Portal = yt, vt.Profiler = kt, vt.StrictMode = wt, vt.Suspense = Mt, vt.isAsyncMode = function(e) { + return Ft(e) || It(e) === Et +}, vt.isConcurrentMode = Ft, vt.isContextConsumer = function(e) { + return It(e) === Ct +}, vt.isContextProvider = function(e) { + return It(e) === St +}, vt.isElement = function(e) { + return "object" == typeof e && null !== e && e.$$typeof === bt +}, vt.isForwardRef = function(e) { + return It(e) === Pt +}, vt.isFragment = function(e) { + return It(e) === xt +}, vt.isLazy = function(e) { + return It(e) === jt +}, vt.isMemo = function(e) { + return It(e) === Tt +}, vt.isPortal = function(e) { + return It(e) === yt +}, vt.isProfiler = function(e) { + return It(e) === kt +}, vt.isStrictMode = function(e) { + return It(e) === wt +}, vt.isSuspense = function(e) { + return It(e) === Mt +}, vt.isValidElementType = function(e) { + return "string" == typeof e || "function" == typeof e || e === xt || e === Rt || e === kt || e === wt || e === Mt || e === Ot || "object" == typeof e && null !== e && (e.$$typeof === jt || e.$$typeof === Tt || e.$$typeof === St || e.$$typeof === Ct || e.$$typeof === Pt || e.$$typeof === Nt || e.$$typeof === _t || e.$$typeof === Lt || e.$$typeof === zt) +}, vt.typeOf = It, mt.exports = vt; +var $t = mt.exports, + At = {}; +At[$t.ForwardRef] = { + $$typeof: !0, + render: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0 +}, At[$t.Memo] = { + $$typeof: !0, + compare: !0, + defaultProps: !0, + displayName: !0, + propTypes: !0, + type: !0 +}; + +function Bt(e, t, n) { + var r = ""; + return n.split(" ").forEach((function(n) { + void 0 !== e[n] ? t.push(e[n] + ";") : r += n + " "; + })), r +} +var Dt = function(e, t, n) { + var r = e.key + "-" + t.name; + if (!1 === n && void 0 === e.registered[r] && (e.registered[r] = t.styles), void 0 === e.inserted[t.name]) { + var o = t; + do { + e.insert(t === o ? "." + r : "", o, e.sheet, !0), o = o.next; + } while (void 0 !== o) + } +}; +var Wt = { + 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 + }, + Ut = /[A-Z]|^ms/g, + Ht = /_EMO_([^_]+?)_([^]*?)_EMO_/g, + Vt = function(e) { + return 45 === e.charCodeAt(1) + }, + qt = function(e) { + return null != e && "boolean" != typeof e + }, + Kt = he((function(e) { + return Vt(e) ? e : e.replace(Ut, "-$&").toLowerCase() + })), + Xt = function(e, t) { + switch (e) { + case "animation": + case "animationName": + if ("string" == typeof t) return t.replace(Ht, (function(e, t, n) { + return Qt = { + name: t, + styles: n, + next: Qt + }, t + })) + } + return 1 === Wt[e] || Vt(e) || "number" != typeof t || 0 === t ? t : t + "px" + }; + +function Yt(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 Qt = { + name: n.name, + styles: n.styles, + next: Qt + }, n.name; + if (void 0 !== n.styles) { + var r = n.next; + if (void 0 !== r) + for (; void 0 !== r;) Qt = { + name: r.name, + styles: r.styles, + next: Qt + }, 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 += Yt(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] + "}" : qt(i) && (r += Kt(a) + ":" + Xt(a, i) + ";"); + else if (!Array.isArray(i) || "string" != typeof i[0] || null != t && void 0 !== t[i[0]]) { + var l = Yt(e, t, i); + switch (a) { + case "animation": + case "animationName": + r += Kt(a) + ":" + l + ";"; + break; + default: + r += a + "{" + l + "}"; + } + } else + for (var s = 0; s < i.length; s++) qt(i[s]) && (r += Kt(a) + ":" + Xt(a, i[s]) + ";"); + } + return r + }(e, t, n); + case "function": + if (void 0 !== e) { + var o = Qt, + a = n(e); + return Qt = o, Yt(e, t, a) + } + } + if (null == t) return n; + var i = t[n]; + return void 0 !== i ? i : n +} +var Qt, Gt = /label:\s*([^\s;\n{]+)\s*(;|$)/g, + Zt = 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 = ""; + Qt = void 0; + var a = e[0]; + null == a || void 0 === a.raw ? (r = !1, o += Yt(n, t, a)) : o += a[0]; + for (var i = 1; i < e.length; i++) o += Yt(n, t, e[i]), r && (o += a[i]); + Gt.lastIndex = 0; + for (var l, s = ""; null !== (l = Gt.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: Qt + } + }, + Jt = T.exports.createContext("undefined" != typeof HTMLElement ? ht({ + key: "css" + }) : null); +Jt.Provider; +var en = function(e) { + return T.exports.forwardRef((function(t, n) { + var r = T.exports.useContext(Jt); + return e(t, r, n) + })) + }, + tn = T.exports.createContext({}), + nn = en((function(e, t) { + var n = e.styles, + r = Zt([n], void 0, T.exports.useContext(tn)), + o = 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 + }), + a = !1, + i = document.querySelector('style[data-emotion="' + e + " " + r.name + '"]'); + return t.sheet.tags.length && (n.before = t.sheet.tags[0]), null !== i && (a = !0, i.setAttribute("data-emotion", e), n.hydrate([i])), o.current = [n, a], + function() { + n.flush(); + } + }), [t]), T.exports.useLayoutEffect((function() { + var e = o.current, + n = e[0]; + if (e[1]) e[1] = !1; + else { + if (void 0 !== r.next && Dt(t, r.next, !0), n.tags.length) { + var a = n.tags[n.tags.length - 1].nextElementSibling; + n.before = a, n.flush(); + } + t.insert("", r, n, !1); + } + }), [t, r.name]), null + })); + +function rn() { + for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n]; + return Zt(t) +} +var on = function() { + var e = rn.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_" + } + } + }, + an = ve, + ln = function(e) { + return "theme" !== e + }, + sn = function(e) { + return "string" == typeof e && e.charCodeAt(0) > 96 ? an : ln + }, + un = 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 + }, + cn = function() { + return null + }, + dn = 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 = un(n, r, i), + u = s || sn(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 = en((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(tn); + } + "string" == typeof e.className ? o = Bt(t.registered, i, e.className) : null != e.className && (o = e.className + " "); + var h = Zt(p.concat(i), t.registered, d); + Dt(t, h, "string" == typeof r), o += t.key + "-" + h.name, void 0 !== a && (o += " " + a); + var m = c && void 0 === s ? sn(r) : u, + v = {}; + for (var g in e) c && "as" === g || m(g) && (v[g] = e[g]); + v.className = o, v.ref = n; + var b = T.exports.createElement(r, v), + y = T.exports.createElement(cn, null); + return T.exports.createElement(T.exports.Fragment, null, y, b) + })); + 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: un(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) { + dn[e] = dn(e); +})); +var pn = dn, + fn = { + exports: {} + }, + hn = {}, + mn = T.exports, + vn = 60103; +if (hn.Fragment = 60107, "function" == typeof Symbol && Symbol.for) { + var gn = Symbol.for; + vn = gn("react.element"), hn.Fragment = gn("react.fragment"); +} +var bn = mn.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner, + yn = Object.prototype.hasOwnProperty, + xn = { + key: !0, + ref: !0, + __self: !0, + __source: !0 + }; + +function wn(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) yn.call(t, r) && !xn.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: vn, + type: e, + key: a, + ref: i, + props: o, + _owner: bn.current + } +} + +function kn(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 fn.exports.jsx(nn, { + 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 Sn(e,t){return pn(e,t)}hn.jsx=wn,hn.jsxs=wn,fn.exports=hn;var En=60103,Rn=60106,Pn=60107,Mn=60108,On=60114,Tn=60109,jn=60110,zn=60112,Nn=60113,_n=60120,Ln=60115,In=60116,Fn=60121,$n=60122,An=60117,Bn=60129,Dn=60131; + */ +function Sn(e, t) { + return pn(e, t) +} +hn.jsx = wn, hn.jsxs = wn, fn.exports = hn; +var En = 60103, + Rn = 60106, + Pn = 60107, + Mn = 60108, + On = 60114, + Tn = 60109, + jn = 60110, + zn = 60112, + Nn = 60113, + _n = 60120, + Ln = 60115, + In = 60116, + Fn = 60121, + $n = 60122, + An = 60117, + Bn = 60129, + Dn = 60131; /** @license React v17.0.2 * react-is.production.min.js * @@ -24,7 +1436,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 Wn=Symbol.for;En=Wn("react.element"),Rn=Wn("react.portal"),Pn=Wn("react.fragment"),Mn=Wn("react.strict_mode"),On=Wn("react.profiler"),Tn=Wn("react.provider"),jn=Wn("react.context"),zn=Wn("react.forward_ref"),Nn=Wn("react.suspense"),_n=Wn("react.suspense_list"),Ln=Wn("react.memo"),In=Wn("react.lazy"),Fn=Wn("react.block"),$n=Wn("react.server.block"),An=Wn("react.fundamental"),Bn=Wn("react.debug_trace_mode"),Dn=Wn("react.legacy_hidden");}function er(...e){return e.reduce(((e,t)=>null==t?e:function(...n){e.apply(this,n),t.apply(this,n);}),(()=>{}))}function tr(e,t=166){let n;function r(...r){clearTimeout(n),n=setTimeout((()=>{e.apply(this,r);}),t);}return r.clear=()=>{clearTimeout(n);},r}function nr(e,t){return T.exports.isValidElement(e)&&-1!==t.indexOf(e.type.muiName)}function rr(e){return e&&e.ownerDocument||document}function or(e){return rr(e).defaultView||window}function ar(e,t){"function"==typeof e?e(t):e&&(e.current=t);}var ir="undefined"!=typeof window?T.exports.useLayoutEffect:T.exports.useEffect;let lr=0;function sr(e){const[t,n]=T.exports.useState(e),r=e||t;return T.exports.useEffect((()=>{null==t&&(lr+=1,n(`mui-${lr}`));}),[t]),r}function ur({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 cr(e){const t=T.exports.useRef(e);return ir((()=>{t.current=e;})),T.exports.useCallback(((...e)=>(0, t.current)(...e)),[])}function dr(e,t){return T.exports.useMemo((()=>null==e&&null==t?null:n=>{ar(e,n),ar(t,n);}),[e,t])}let pr,fr=!0,hr=!1;const mr={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 vr(e){e.metaKey||e.altKey||e.ctrlKey||(fr=!0);}function gr(){fr=!1;}function br(){"hidden"===this.visibilityState&&hr&&(fr=!0);}function yr(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(e){}return fr||function(e){const{type:t,tagName:n}=e;return !("INPUT"!==n||!mr[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}function xr(){const e=T.exports.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",vr,!0),t.addEventListener("mousedown",gr,!0),t.addEventListener("pointerdown",gr,!0),t.addEventListener("touchstart",gr,!0),t.addEventListener("visibilitychange",br,!0));}),[]),t=T.exports.useRef(!1);return {isFocusVisibleRef:t,onFocus:function(e){return !!yr(e)&&(t.current=!0,!0)},onBlur:function(){return !!t.current&&(hr=!0,window.clearTimeout(pr),pr=window.setTimeout((()=>{hr=!1;}),100),t.current=!1,!0)},ref:e}}function wr(e){const t=e.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}let kr;function Sr(){if(kr)return kr;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),kr="reverse",e.scrollLeft>0?kr="default":(e.scrollLeft=1,0===e.scrollLeft&&(kr="negative")),document.body.removeChild(e),kr}function Cr(e,t){const n=e.scrollLeft;if("rtl"!==t)return n;switch(Sr()){case"negative":return e.scrollWidth-e.clientWidth+n;case"reverse":return e.scrollWidth-e.clientWidth-n;default:return n}}function Er(t,n){const r=f({},n);return Object.keys(t).forEach((e=>{void 0===r[e]&&(r[e]=t[e]);})),r}function Rr(...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 Pr(e){return "number"!=typeof e?e:`${e}px solid`}const Mr=A$1({prop:"border",themeKey:"borders",transform:Pr}),Or=A$1({prop:"borderTop",themeKey:"borders",transform:Pr}),Tr=A$1({prop:"borderRight",themeKey:"borders",transform:Pr}),jr=A$1({prop:"borderBottom",themeKey:"borders",transform:Pr}),zr=A$1({prop:"borderLeft",themeKey:"borders",transform:Pr}),Nr=A$1({prop:"borderColor",themeKey:"palette"}),_r=A$1({prop:"borderTopColor",themeKey:"palette"}),Lr=A$1({prop:"borderRightColor",themeKey:"palette"}),Ir=A$1({prop:"borderBottomColor",themeKey:"palette"}),Fr=A$1({prop:"borderLeftColor",themeKey:"palette"}),$r=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};$r.propTypes={},$r.filterProps=["borderRadius"];var Ar=Rr(Mr,Or,Tr,jr,zr,Nr,_r,Lr,Ir,Fr,$r);var Br=Rr(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 Dr=Rr(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 Wr=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};Wr.propTypes={},Wr.filterProps=["gap"];const Ur=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};Ur.propTypes={},Ur.filterProps=["columnGap"];const Hr=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};Hr.propTypes={},Hr.filterProps=["rowGap"];var Vr=Rr(Wr,Ur,Hr,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 qr=Rr(A$1({prop:"color",themeKey:"palette"}),A$1({prop:"bgcolor",cssProperty:"backgroundColor",themeKey:"palette"}),A$1({prop:"backgroundColor",themeKey:"palette"}));var Kr=Rr(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 Xr=A$1({prop:"boxShadow",themeKey:"shadows"});function Yr(e){return e<=1&&0!==e?100*e+"%":e}const Qr=A$1({prop:"width",transform:Yr}),Gr=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]||Yr(t)}};return y(e,e.maxWidth,t)}return null};Gr.filterProps=["maxWidth"];const Zr=A$1({prop:"minWidth",transform:Yr}),Jr=A$1({prop:"height",transform:Yr}),eo=A$1({prop:"maxHeight",transform:Yr}),to=A$1({prop:"minHeight",transform:Yr});A$1({prop:"size",cssProperty:"width",transform:Yr}),A$1({prop:"size",cssProperty:"height",transform:Yr});var no=Rr(Qr,Gr,Zr,Jr,eo,to,A$1({prop:"boxSizing"}));const ro=A$1({prop:"fontFamily",themeKey:"typography"}),oo=A$1({prop:"fontSize",themeKey:"typography"}),ao=A$1({prop:"fontStyle",themeKey:"typography"}),io=A$1({prop:"fontWeight",themeKey:"typography"}),lo=A$1({prop:"letterSpacing"}),so=A$1({prop:"lineHeight"}),uo=A$1({prop:"textAlign"});var co=Rr(A$1({prop:"typography",cssProperty:!1,themeKey:"typography"}),ro,oo,ao,io,lo,so,uo);const po={borders:Ar.filterProps,display:Br.filterProps,flexbox:Dr.filterProps,grid:Vr.filterProps,positions:Kr.filterProps,palette:qr.filterProps,shadows:Xr.filterProps,sizing:no.filterProps,spacing:z$1.filterProps,typography:co.filterProps},fo={borders:Ar,display:Br,flexbox:Dr,grid:Vr,positions:Kr,palette:qr,shadows:Xr,sizing:no,spacing:z$1,typography:co},ho=Object.keys(po).reduce(((e,t)=>(po[t].forEach((n=>{e[n]=fo[t];})),e)),{});function mo(e,t,n){const r={[e]:t,theme:n},o=ho[e];return o?o(r):{[e]:t}}function vo(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(ho[e])l=h(l,mo(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]=vo({sx:a,theme:r});}else l=h(l,mo(e,a,r));})),k(i,l)}return Array.isArray(n)?n.map(a):a(n)}vo.filterProps=["sx"];const go=["sx"];function bo(t){const{sx:n}=t,r=u(t,go),{systemProps:o,otherProps:a}=(e=>{const t={systemProps:{},otherProps:{}};return Object.keys(e).forEach((n=>{ho[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 yo(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[So]=null!==o),t}),[r,o]);return fn.exports.jsx(wo.Provider,{value:a,children:n})}function Eo(e=null){const t=ko();return t&&(n=t,0!==Object.keys(n).length)?t:e;var n;}const Ro=L$1();function Po(e=Ro){return Eo(e)}const Mo=["className","component"];function Oo(t={}){const{defaultTheme:n,defaultClassName:r="MuiBox-root",generateClassName:o}=t,a=Sn("div")(vo);return T.exports.forwardRef((function(t,i){const l=Po(n),s=bo(t),{className:u$1,component:d="div"}=s,p=u(s,Mo);return fn.exports.jsx(a,f({as:d,ref:i,className:xo(u$1,o?o(r):r),theme:l},p))}))}var To=Oo();const jo=["variant"];function zo(e){return 0===e.length}function No(e){const{variant:t}=e,n=u(e,jo);let r=t||"";return Object.keys(n).sort().forEach((t=>{r+="color"===t?zo(r)?e[t]:g(e[t]):`${zo(r)?t:g(t)}${g(e[t].toString())}`;})),r}const _o=["name","slot","skipVariantsResolver","skipSx","overridesResolver"],Lo=["theme"],Io=["theme"];function Fo(e){return 0===Object.keys(e).length}function $o(e){return "ownerState"!==e&&"theme"!==e&&"sx"!==e&&"as"!==e}const Ao=L$1();function Bo({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?Er(t.components[n].defaultProps,r):r}({theme:Po(n),name:t,props:e});return r}function Do(e){const t=Po();return fn.exports.jsx(tn.Provider,{value:"object"==typeof t?t:{},children:e.children})}function Wo(e){return "string"==typeof e}function Uo(t,n={},r){return Wo(t)?n:f({},n,{ownerState:f({},n.ownerState,r)})}function Ho(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 Vo=e=>e;var qo=(()=>{let e=Vo;return {configure(t){e=t;},generate:t=>e(t),reset(){e=Vo;}}})();const Ko={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 Xo(e,t){return Ko[t]||`${qo.generate(e)}-${t}`}function Yo(e,t){const n={};return t.forEach((t=>{n[t]=Xo(e,t);})),n}function Qo(e){return Xo("MuiBackdrop",e)}Yo("MuiBackdrop",["root","invisible"]);const Go=["classes","className","invisible","component","components","componentsProps","theme"];var Zo=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,Go),p=f({},t,{classes:r,invisible:a}),f$1=(e=>{const{classes:t,invisible:n}=e;return Ho({root:["root",n&&"invisible"]},Qo,t)})(p),h=l.Root||i,m=s.root||{};return fn.exports.jsx(h,f({"aria-hidden":!0},m,!Wo(h)&&{as:i,ownerState:f({},p,m.ownerState),theme:u$1},{ref:n},d,{className:xo(f$1.root,m.className,o)}))})),Jo={exports:{}},ea={},ta={exports:{}},na={}; + */ +if ("function" == typeof Symbol && Symbol.for) { + var Wn = Symbol.for; + En = Wn("react.element"), Rn = Wn("react.portal"), Pn = Wn("react.fragment"), Mn = Wn("react.strict_mode"), On = Wn("react.profiler"), Tn = Wn("react.provider"), jn = Wn("react.context"), zn = Wn("react.forward_ref"), Nn = Wn("react.suspense"), _n = Wn("react.suspense_list"), Ln = Wn("react.memo"), In = Wn("react.lazy"), Fn = Wn("react.block"), $n = Wn("react.server.block"), An = Wn("react.fundamental"), Bn = Wn("react.debug_trace_mode"), Dn = Wn("react.legacy_hidden"); +} + +function er(...e) { + return e.reduce(((e, t) => null == t ? e : function(...n) { + e.apply(this, n), t.apply(this, n); + }), (() => {})) +} + +function tr(e, t = 166) { + let n; + + function r(...r) { + clearTimeout(n), n = setTimeout((() => { + e.apply(this, r); + }), t); + } + return r.clear = () => { + clearTimeout(n); + }, r +} + +function nr(e, t) { + return T.exports.isValidElement(e) && -1 !== t.indexOf(e.type.muiName) +} + +function rr(e) { + return e && e.ownerDocument || document +} + +function or(e) { + return rr(e).defaultView || window +} + +function ar(e, t) { + "function" == typeof e ? e(t) : e && (e.current = t); +} +var ir = "undefined" != typeof window ? T.exports.useLayoutEffect : T.exports.useEffect; +let lr = 0; + +function sr(e) { + const [t, n] = T.exports.useState(e), r = e || t; + return T.exports.useEffect((() => { + null == t && (lr += 1, n(`mui-${lr}`)); + }), [t]), r +} + +function ur({ + 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 cr(e) { + const t = T.exports.useRef(e); + return ir((() => { + t.current = e; + })), T.exports.useCallback(((...e) => (0, t.current)(...e)), []) +} + +function dr(e, t) { + return T.exports.useMemo((() => null == e && null == t ? null : n => { + ar(e, n), ar(t, n); + }), [e, t]) +} +let pr, fr = !0, + hr = !1; +const mr = { + 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 vr(e) { + e.metaKey || e.altKey || e.ctrlKey || (fr = !0); +} + +function gr() { + fr = !1; +} + +function br() { + "hidden" === this.visibilityState && hr && (fr = !0); +} + +function yr(e) { + const { + target: t + } = e; + try { + return t.matches(":focus-visible") + } catch (e) {} + return fr || function(e) { + const { + type: t, + tagName: n + } = e; + return !("INPUT" !== n || !mr[t] || e.readOnly) || "TEXTAREA" === n && !e.readOnly || !!e.isContentEditable + }(t) +} + +function xr() { + const e = T.exports.useCallback((e => { + var t; + null != e && ((t = e.ownerDocument).addEventListener("keydown", vr, !0), t.addEventListener("mousedown", gr, !0), t.addEventListener("pointerdown", gr, !0), t.addEventListener("touchstart", gr, !0), t.addEventListener("visibilitychange", br, !0)); + }), []), + t = T.exports.useRef(!1); + return { + isFocusVisibleRef: t, + onFocus: function(e) { + return !!yr(e) && (t.current = !0, !0) + }, + onBlur: function() { + return !!t.current && (hr = !0, window.clearTimeout(pr), pr = window.setTimeout((() => { + hr = !1; + }), 100), t.current = !1, !0) + }, + ref: e + } +} + +function wr(e) { + const t = e.documentElement.clientWidth; + return Math.abs(window.innerWidth - t) +} +let kr; + +function Sr() { + if (kr) return kr; + 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), kr = "reverse", e.scrollLeft > 0 ? kr = "default" : (e.scrollLeft = 1, 0 === e.scrollLeft && (kr = "negative")), document.body.removeChild(e), kr +} + +function Cr(e, t) { + const n = e.scrollLeft; + if ("rtl" !== t) return n; + switch (Sr()) { + case "negative": + return e.scrollWidth - e.clientWidth + n; + case "reverse": + return e.scrollWidth - e.clientWidth - n; + default: + return n + } +} + +function Er(t, n) { + const r = f({}, n); + return Object.keys(t).forEach((e => { + void 0 === r[e] && (r[e] = t[e]); + })), r +} + +function Rr(...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 Pr(e) { + return "number" != typeof e ? e : `${e}px solid` +} +const Mr = A$1({ + prop: "border", + themeKey: "borders", + transform: Pr + }), + Or = A$1({ + prop: "borderTop", + themeKey: "borders", + transform: Pr + }), + Tr = A$1({ + prop: "borderRight", + themeKey: "borders", + transform: Pr + }), + jr = A$1({ + prop: "borderBottom", + themeKey: "borders", + transform: Pr + }), + zr = A$1({ + prop: "borderLeft", + themeKey: "borders", + transform: Pr + }), + Nr = A$1({ + prop: "borderColor", + themeKey: "palette" + }), + _r = A$1({ + prop: "borderTopColor", + themeKey: "palette" + }), + Lr = A$1({ + prop: "borderRightColor", + themeKey: "palette" + }), + Ir = A$1({ + prop: "borderBottomColor", + themeKey: "palette" + }), + Fr = A$1({ + prop: "borderLeftColor", + themeKey: "palette" + }), + $r = 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 + }; +$r.propTypes = {}, $r.filterProps = ["borderRadius"]; +var Ar = Rr(Mr, Or, Tr, jr, zr, Nr, _r, Lr, Ir, Fr, $r); +var Br = Rr(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 Dr = Rr(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 Wr = 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 +}; +Wr.propTypes = {}, Wr.filterProps = ["gap"]; +const Ur = 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 +}; +Ur.propTypes = {}, Ur.filterProps = ["columnGap"]; +const Hr = 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 +}; +Hr.propTypes = {}, Hr.filterProps = ["rowGap"]; +var Vr = Rr(Wr, Ur, Hr, 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 qr = Rr(A$1({ + prop: "color", + themeKey: "palette" +}), A$1({ + prop: "bgcolor", + cssProperty: "backgroundColor", + themeKey: "palette" +}), A$1({ + prop: "backgroundColor", + themeKey: "palette" +})); +var Kr = Rr(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 Xr = A$1({ + prop: "boxShadow", + themeKey: "shadows" +}); + +function Yr(e) { + return e <= 1 && 0 !== e ? 100 * e + "%" : e +} +const Qr = A$1({ + prop: "width", + transform: Yr + }), + Gr = 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] || Yr(t) + } + }; + return y(e, e.maxWidth, t) + } + return null + }; +Gr.filterProps = ["maxWidth"]; +const Zr = A$1({ + prop: "minWidth", + transform: Yr + }), + Jr = A$1({ + prop: "height", + transform: Yr + }), + eo = A$1({ + prop: "maxHeight", + transform: Yr + }), + to = A$1({ + prop: "minHeight", + transform: Yr + }); +A$1({ + prop: "size", + cssProperty: "width", + transform: Yr +}), A$1({ + prop: "size", + cssProperty: "height", + transform: Yr +}); +var no = Rr(Qr, Gr, Zr, Jr, eo, to, A$1({ + prop: "boxSizing" +})); +const ro = A$1({ + prop: "fontFamily", + themeKey: "typography" + }), + oo = A$1({ + prop: "fontSize", + themeKey: "typography" + }), + ao = A$1({ + prop: "fontStyle", + themeKey: "typography" + }), + io = A$1({ + prop: "fontWeight", + themeKey: "typography" + }), + lo = A$1({ + prop: "letterSpacing" + }), + so = A$1({ + prop: "lineHeight" + }), + uo = A$1({ + prop: "textAlign" + }); +var co = Rr(A$1({ + prop: "typography", + cssProperty: !1, + themeKey: "typography" +}), ro, oo, ao, io, lo, so, uo); +const po = { + borders: Ar.filterProps, + display: Br.filterProps, + flexbox: Dr.filterProps, + grid: Vr.filterProps, + positions: Kr.filterProps, + palette: qr.filterProps, + shadows: Xr.filterProps, + sizing: no.filterProps, + spacing: z$1.filterProps, + typography: co.filterProps + }, + fo = { + borders: Ar, + display: Br, + flexbox: Dr, + grid: Vr, + positions: Kr, + palette: qr, + shadows: Xr, + sizing: no, + spacing: z$1, + typography: co + }, + ho = Object.keys(po).reduce(((e, t) => (po[t].forEach((n => { + e[n] = fo[t]; + })), e)), {}); + +function mo(e, t, n) { + const r = { + [e]: t, + theme: n + }, + o = ho[e]; + return o ? o(r) : { + [e]: t + } +} + +function vo(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 (ho[e]) l = h(l, mo(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] = vo({ + sx: a, + theme: r + }); + } + else l = h(l, mo(e, a, r)); + })), k(i, l) + } + return Array.isArray(n) ? n.map(a) : a(n) +} +vo.filterProps = ["sx"]; +const go = ["sx"]; + +function bo(t) { + const { + sx: n + } = t, r = u(t, go), { + systemProps: o, + otherProps: a + } = (e => { + const t = { + systemProps: {}, + otherProps: {} + }; + return Object.keys(e).forEach((n => { + ho[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 yo(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 = yo(e[t])) && (r && (r += " "), r += n); + else + for (t in e) e[t] && (r && (r += " "), r += t); + return r +} + +function xo() { + for (var e, t, n = 0, r = ""; n < arguments.length;)(e = arguments[n++]) && (t = yo(e)) && (r && (r += " "), r += t); + return r +} +var wo = T.exports.createContext(null); + +function ko() { + return T.exports.useContext(wo) +} +var So = "function" == typeof Symbol && Symbol.for ? Symbol.for("mui.nested") : "__THEME_NESTED__"; + +function Co(t) { + const { + children: n, + theme: r + } = t, o = ko(), 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[So] = null !== o), t + }), [r, o]); + return fn.exports.jsx(wo.Provider, { + value: a, + children: n + }) +} + +function Eo(e = null) { + const t = ko(); + return t && (n = t, 0 !== Object.keys(n).length) ? t : e; + var n; +} +const Ro = L$1(); + +function Po(e = Ro) { + return Eo(e) +} +const Mo = ["className", "component"]; + +function Oo(t = {}) { + const { + defaultTheme: n, + defaultClassName: r = "MuiBox-root", + generateClassName: o + } = t, a = Sn("div")(vo); + return T.exports.forwardRef((function(t, i) { + const l = Po(n), + s = bo(t), + { + className: u$1, + component: d = "div" + } = s, + p = u(s, Mo); + return fn.exports.jsx(a, f({ + as: d, + ref: i, + className: xo(u$1, o ? o(r) : r), + theme: l + }, p)) + })) +} +var To = Oo(); +const jo = ["variant"]; + +function zo(e) { + return 0 === e.length +} + +function No(e) { + const { + variant: t + } = e, n = u(e, jo); + let r = t || ""; + return Object.keys(n).sort().forEach((t => { + r += "color" === t ? zo(r) ? e[t] : g(e[t]) : `${zo(r)?t:g(t)}${g(e[t].toString())}`; + })), r +} +const _o = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"], + Lo = ["theme"], + Io = ["theme"]; + +function Fo(e) { + return 0 === Object.keys(e).length +} + +function $o(e) { + return "ownerState" !== e && "theme" !== e && "sx" !== e && "as" !== e +} +const Ao = L$1(); + +function Bo({ + 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 ? Er(t.components[n].defaultProps, r) : r + }({ + theme: Po(n), + name: t, + props: e + }); + return r +} + +function Do(e) { + const t = Po(); + return fn.exports.jsx(tn.Provider, { + value: "object" == typeof t ? t : {}, + children: e.children + }) +} + +function Wo(e) { + return "string" == typeof e +} + +function Uo(t, n = {}, r) { + return Wo(t) ? n : f({}, n, { + ownerState: f({}, n.ownerState, r) + }) +} + +function Ho(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 Vo = e => e; +var qo = (() => { + let e = Vo; + return { + configure(t) { + e = t; + }, + generate: t => e(t), + reset() { + e = Vo; + } + } +})(); +const Ko = { + 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 Xo(e, t) { + return Ko[t] || `${qo.generate(e)}-${t}` +} + +function Yo(e, t) { + const n = {}; + return t.forEach((t => { + n[t] = Xo(e, t); + })), n +} + +function Qo(e) { + return Xo("MuiBackdrop", e) +} +Yo("MuiBackdrop", ["root", "invisible"]); +const Go = ["classes", "className", "invisible", "component", "components", "componentsProps", "theme"]; +var Zo = 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, Go), p = f({}, t, { + classes: r, + invisible: a + }), f$1 = (e => { + const { + classes: t, + invisible: n + } = e; + return Ho({ + root: ["root", n && "invisible"] + }, Qo, t) + })(p), h = l.Root || i, m = s.root || {}; + return fn.exports.jsx(h, f({ + "aria-hidden": !0 + }, m, !Wo(h) && { + as: i, + ownerState: f({}, p, m.ownerState), + theme: u$1 + }, { + ref: n + }, d, { + className: xo(f$1.root, m.className, o) + })) + })), + Jo = { + exports: {} + }, + ea = {}, + ta = { + exports: {} + }, + na = {}; /** @license React v0.20.2 * scheduler.production.min.js * @@ -33,7 +2228,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;}}};}(na),ta.exports=na; +! 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; + } + } + }; +}(na), ta.exports = na; /** @license React v17.0.2 * react-dom.production.min.js * @@ -42,7 +2487,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 ra=T.exports,oa=I,aa=ta.exports;function ia(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n