PageSourceSearch

https://shadowfight2.com/play/microsite-game-interface.js

js shadowfight2.com collected 2026-09-24 09:48:19 UTC 812,523 bytes, 1 lines download raw bytes

1var __defProp=Object.defineProperty,__defNormalProp=(e,n,t)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,__publicField=(e,n,t)=>__defNormalProp(e,"symbol"!=typeof n?n+"":n,t);!function(){"use strict";const e="GameInterface",n={"[ads]":{name:"ADS",color:"#3b88c3"},"[track]":{name:"TRACK",color:"#9b59b6"},"[storage]":{name:"STORAGE",color:"#03fc2c"},"[gameStates]":{name:"GAMESTATES",color:"#f1c40f"},"[intern]":{name:"INTERN",color:"#253342"},"[listener]":{name:"LISTENER",color:"#F07857"},"[mock]":{name:"MOCK",color:"#32a0a8"},"[leaderboard]":{name:"LDRBRD",color:"#544680"},"[game]":{name:"GAME",color:"#2ecc71"},"[start]":{name:"START",color:"#581845"},"[iap]":{name:"IAP",color:"#2B1858"},"[portal]":{name:"PORTAL",color:"#e7a996"},"[bridge]":{name:"BRIDGE",color:"#76aeb2"},"[events]":{name:"EVENTS",color:"#fdb2c8"},"[player]":{name:"PLAYER",color:"#1abc9c"},"[test]":{name:"TEST",color:"#5d61c3"}};let t;function i(i,a,...o){if(!a&&(void 0===t&&(t=["1","true"].includes(new URLSearchParams(window.location.search||"").get("isVerboseLoggingEnabled")||"")),!0!==(null==window?void 0:window.isVerboseLoggingEnabled)&&!1===t))return;if(((e,...n)=>{const t=Array.isArray(e)?e:[e];return n.some(e=>"string"==typeof e&&t.some(n=>e.includes(n)))})(["isRewardedAdAvailable","isInterstitialAdAvailable"],...o))return;if("string"!=typeof o[0])return void console[i](...o);const r=[...o];let s=r[0].split(" ")[0];const u=r[0].match(/^(\[[^\]]+\])/);if(s=u?u[1]:r[0].split(" ")[0],s in n){const t=s;let i=r[0];i.startsWith(s+" ")?i=i.substring(s.length+1):i.startsWith(s)&&(i=i.substring(s.length));const a=i.length>0&&!i.startsWith(" ")?" ":"";r[0]=`%c${e}%c %c${n[t].name}%c`+a+i,r.splice(1,0,"display: inline-block; color: #fff; background: #e74c3c; padding: 1px 4px; border-radius: 3px;"),r.splice(2,0,""),r.splice(3,0,"display: inline-block; color: #fff; background: "+n[t].color+"; padding: 1px 4px; border-radius: 3px;"),r.splice(4,0,"")}else r[0]=`%c${e}%c `+r[0],r.splice(1,0,"display: inline-block; color: #fff; background: #e74c3c; padding: 1px 4px; border-radius: 3px;"),r.splice(2,0,"");console[i](...r)}const a={log(...e){i("log",!1,...e)},warn(...e){i("warn",!1,...e)},force(...e){i("log",!0,...e)},scopes:n},o=(e,n)=>{if("object"!=typeof n||null===n)return n;const t=n;let i;i="object"!=typeof e||null===e?Array.isArray(n)?[]:{}:e;for(const a of Object.keys(t))i[a]=o(i[a],t[a]);return i},r="[safeClone]",s=(e,n)=>{throw new TypeError(`${r} Unsupported value at "${n}": ${(e=>Object.prototype.toString.call(e))(e)}. State values must be plain objects, arrays, Date instances, primitives, or functions.`)},u=(e,n,t)=>{if(null==e)return e;if("function"==typeof e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());if("undefined"!=typeof Node&&e instanceof Node&&s(e,t),Array.isArray(e)){const i=n.get(e);if(i)return i;const a=[];return n.set(e,a),e.forEach((e,i)=>{a[i]=u(e,n,`${t}[${i}]`)}),a}(e=>{const n=Object.getPrototypeOf(e);return n===Object.prototype||null===n})(e)||s(e,t);const i=n.get(e);if(i)return i;if(Reflect.ownKeys(e).some(e=>"symbol"==typeof e))throw new TypeError(`${r} Symbol keys are not supported at "${t}".`);const a=Object.getOwnPropertyDescriptors(e);for(const[s,u]of Object.entries(a))if(!u.enumerable)throw new TypeError(`${r} Non-enumerable property "${t}.${s}" is not supported.`);const o={};n.set(e,o);for(const r of Object.keys(e)){const i=e[r];void 0!==i&&(o[r]=u(i,n,`${t}.${r}`))}return o},l=e=>u(e,new WeakMap,"$");function c(e,n,t=!1){const i=n.split(".");let a=e;for(let o=0;o<i.length-1;o++){const e=i[o];if(null==a[e]){if(!t)return;a[e]={}}a=a[e]}return{parent:a,key:i[i.length-1]}}function h(e){let n=l(e);return{get:()=>l(n),set(e,t){const i=(null==t?void 0:t.mode)??"merge",a=l(n);"override"===i?(Object.keys(e).forEach(n=>{a[n]=l(e[n])}),n=a):n=o(a,e)},increment(e){const t=l(n);Object.entries(e).forEach(([e,n])=>{const i=c(t,e,!0);if(!i)return;const a=Number(i.parent[i.key]??0);i.parent[i.key]=a+n}),n=t},push(e){const t=l(n);Object.entries(e).forEach(([e,n])=>{const i=c(t,e,!0);if(!i)return;const a=i.parent[i.key],o=Array.isArray(a)?[...a,n]:[n];i.parent[i.key]=o}),n=t},reset(){n=l(e)}}}const d=h({loggingEnabled:!1}),g=h({name:"missing_sdk_name"}),p=h({dev:!1,analyticsDebug:!1,gameId:void 0,gameIdOnPortal:void 0,name:void 0,locale:"en",files:[],features:{audio:!0,pause:!0,score:!0,progress:!0,copyright:!0,credits:!0,version:!0,tutorial:!0,visibilitychange:!0,iap:!0,home:!0,privacy:!0,standalone:!1},ads:{interstitial:{enabled:!0,preload:0,retry:0,timeout:0,cooldown:0,eventIds:[],passiveCooldown:10,initialCooldown:10},rewarded:{enabled:!0,preload:0,retry:0,timeout:0,eventIds:[]},forcePreloadOnOrientationChange:!1,isAutoMuting:!0,isAutoPausing:!0},shouldMock:!1,userId:void 0,userid:void 0,maxLevels:void 0,version:void 0,semanticVersion:void 0,sequentialVersion:void 0,exportedAt:void 0,label:void 0,scoreTypes:[],iap:{products:[],xsolla:{projectId:void 0,isSandbox:!1,endpoint:void 0}},analytics:{enabled:!1},auth:{enabled:!1,providers:{google:{enabled:!0}},overlay:{enabled:!1,autoShow:!1,mode:"manual",floatingButtonPosition:"bottomRight"},cloudSave:{enabled:!1,autoRestore:!0,autoSync:!0,debounceMs:2e3}},famobiTracking:{enabled:!1,debug:!1,version:"0"},console:{enabled:!0,enforce:!0},isVerboseLoggingEnabled:!1,displayName:void 0});function m(e=Date.now()){const n=new Date(e),t=e=>e.toString().padStart(2,"0");return`[${t(n.getHours())}:${t(n.getMinutes())}:${t(n.getSeconds())}]`}const f=e=>{switch(e){case"log":return"Log";case"game":return"Game";case"dev":return"GameInterface";case"sdk":return`SDK:${g.get().name}`;case"mock":return`MOCK:${p.get().currentMock}`;case"devError":return"Error";case"postMessage":return">> Post >>";case"receiveMessage":return"<< Receive <<"}},v=e=>{switch(e){case"log":case"game":return"color: #fff; background: #e74c3c;";case"dev":return"color: #000000; background: #ffffff;";case"sdk":return"color: #ffffff; background: #8f0866;";case"mock":return"color: #000000; background: #f2ff00;";case"devError":return"color: #ffffff; background: #ff0000;";case"postMessage":return"color: #ffffff; background: #343ce4;";case"receiveMessage":return"color: #ffffff; background: #00931b;"}},w=(e,...n)=>{const t=[`%c${m()} %c${f(e)}`,"color: #aaa;",`display: inline-block; ${v(e)} padding: 1px 4px; border-radius: 3px;`,...n];console.log(...t)},y=(...e)=>{p.get().dev&&w("dev",...e),a.log("[dev]",...e)},b=(...e)=>{p.get().dev&&w("devError",...e),a.log("[devError]",...e)},S=(...e)=>{p.get().dev&&d.get().sdkLoggingEnabled&&w("sdk",...e),a.log("[sdk]",...e)},C=(...e)=>{d.get().loggingEnabled&&w("game",...e),a.log("[game]",...e)},L=(e,n)=>new Promise((t,i)=>{const a=document.createElement("script");
1if(a.src=e,n)for(const e in n){const t=n[e];!1!==t&&a.setAttribute(e,!0===t?"":t)}a.onload=()=>t(),a.onerror=()=>i(new Error(`Failed to load script: ${e}`)),document.head.appendChild(a)}),T=(e,n)=>new Promise((t,i)=>{const a=document.createElement("link");if(a.rel="stylesheet",a.type="text/css",a.href=e,n)for(const e in n){const t=n[e];!1!==t&&a.setAttribute(e,!0===t?"":t)}a.onload=()=>t(),a.onerror=()=>{y(`Could not load stylesheet ${e}`),t()},document.head.appendChild(a)}),E={isReady:!1,isInitializing:!1,config:{parentNetworkCode:"",childNetworkCode:"",interstitialUnit:"",rewardedUnit:"",testMode:!1},ads:{interstitial:{slot:null,showAdCallback:null,resolveShow:null,resolvePreload:null,rejectPreload:null,preloadPromise:null,requestCount:0},rewarded:{slot:null,showAdCallback:null,resolveShow:null,resolvePreload:null,rejectPreload:null,preloadPromise:null,isRewardGranted:!1,requestCount:0}}},k="37336410",D="eos/default-h5-game-interstitial",x="eos/default-h5-game-rewarded";function A(){if("undefined"==typeof window)return!1;try{return window.self!==window.top}catch(e){return!0}}const Y=(e,n)=>{const t=E.ads[e];return E.isReady?t.preloadPromise?(y(`[GAM] (${e}) Preload already in progress`),t.preloadPromise):(t.preloadPromise=new Promise((i,a)=>{const o=setTimeout(()=>{t.rejectPreload&&t.rejectPreload(new Error(`[GAM] (${e}) Preload cancelled, timeout reached`))},3e4);t.resolvePreload=e=>{clearTimeout(o),t.resolvePreload=null,t.rejectPreload=null,i(e)},t.rejectPreload=e=>{clearTimeout(o),t.resolvePreload=null,t.rejectPreload=null,t.preloadPromise=null,a(e)},googletag.cmd.push(()=>{t.slot&&googletag.destroySlots([t.slot]);const i=(e=>{if(E.config.testMode)return"interstitial"===e?"/6355419/Travel/Europe/France/Paris":"/22639388115/rewarded_web_example";const n="interstitial"===e?E.config.interstitialUnit:E.config.rewardedUnit;return`/${E.config.childNetworkCode?`${E.config.parentNetworkCode},${E.config.childNetworkCode}`:E.config.parentNetworkCode}/${n}`})(e),a="interstitial"===e?googletag.enums.OutOfPageFormat.GAME_MANUAL_INTERSTITIAL:googletag.enums.OutOfPageFormat.REWARDED;if(t.slot=googletag.defineOutOfPageSlot(i,a),t.slot){t.requestCount++;const a="interstitial"===e?"adxfcgmi":"adxfcr",r={gid:p.get().gameId||"unknown",arc:String(t.requestCount),if:A()?"1":"0",rt:a,...n};try{t.slot.addService(googletag.pubads()),t.slot.setConfig({targeting:r}),googletag.display(t.slot),y(`[GAM] (${e}) Preloading unit ${i}`,r)}catch(o){t.rejectPreload&&t.rejectPreload(new Error(`[GAM] (${e}) Slot setup failed: ${o}`))}}else t.rejectPreload&&t.rejectPreload(new Error(`[GAM] (${e}) Slot definition failed`))})}),t.preloadPromise):Promise.reject(new Error("[GAM] Not initialized"))},_=async(e=k,n=D,t=x,i={})=>{if(E.isReady||E.isInitializing)return void y("[GAM] Init cancelled, API already active or initializing");E.isInitializing=!0,E.config={parentNetworkCode:e,childNetworkCode:i.childNetworkCode||"",interstitialUnit:n,rewardedUnit:t,testMode:!!i.testMode};const a=E.config.childNetworkCode?`${E.config.parentNetworkCode},${E.config.childNetworkCode}`:E.config.parentNetworkCode;y(`[GAM] Init (Network: ${a}, TestMode: ${E.config.testMode})`);try{window.googletag=window.googletag||{cmd:[]},await(async e=>{var n,t,i,a;for(const{src:o,...r}of e){if(y(`Load file: ${o}`),!o)continue;const e=null==(a=null==(i=null==(n=o.split)?void 0:(t=n.call(o,"?")[0]).split)?void 0:i.call(t,".").pop())?void 0:a.toLowerCase();"js"===e||"cjs"===e?await L(o,r):"css"===e?await T(o,r):y(`Could not load file, unknown extension: ${e}`)}})([{src:"https://securepubads.g.doubleclick.net/tag/js/gpt.js",async:!0,crossorigin:"anonymous"}]),await new Promise(e=>{window.googletag.cmd.push(()=>{(()=>{const e=googletag.pubads();e.addEventListener("slotRenderEnded",e=>{y("[GAM] slotRenderEnded",e),e.isEmpty&&(e.slot===E.ads.interstitial.slot&&E.ads.interstitial.rejectPreload&&E.ads.interstitial.rejectPreload(new Error("[GAM] No fill for Interstitial")),e.slot===E.ads.rewarded.slot&&E.ads.rewarded.rejectPreload&&E.ads.rewarded.rejectPreload(new Error("[GAM] No fill for Rewarded Ad")))}),e.addEventListener("gameManualInterstitialSlotReady",e=>{y("[GAM] gameManualInterstitialSlotReady",e),e.slot===E.ads.interstitial.slot&&(y("[GAM] Interstitial is READY."),E.ads.interstitial.showAdCallback=e.makeGameManualInterstitialVisible,E.ads.interstitial.resolvePreload&&E.ads.interstitial.resolvePreload(!0))}),e.addEventListener("gameManualInterstitialSlotClosed",e=>{y("[GAM] gameManualInterstitialSlotClosed",e),e.slot===E.ads.interstitial.slot&&(y("[GAM] Interstitial CLOSED."),E.ads.interstitial.showAdCallback=null,E.ads.interstitial.resolveShow&&(E.ads.interstitial.resolveShow(!0),E.ads.interstitial.resolveShow=null),E.ads.interstitial.preloadPromise=null)}),e.addEventListener("rewardedSlotReady",e=>{y("[GAM] rewardedSlotReady",e),e.slot===E.ads.rewarded.slot&&(y("[GAM] Rewarded Ad is READY."),E.ads.rewarded.showAdCallback=e.makeRewardedVisible,E.ads.rewarded.resolvePreload&&E.ads.rewarded.resolvePreload(!0))}),e.addEventListener("rewardedSlotGranted",e=>{y("[GAM] rewardedSlotGranted",e),e.slot===E.ads.rewarded.slot&&(y("[GAM] Reward GRANTED."),E.ads.rewarded.isRewardGranted=!0)}),e.addEventListener("rewardedSlotClosed",e=>{y("[GAM] rewardedSlotClosed",e),e.slot===E.ads.rewarded.slot&&(y(`[GAM] Rewarded Ad CLOSED. Granted: ${E.ads.rewarded.isRewardGranted}`),E.ads.rewarded.showAdCallback=null,E.ads.rewarded.resolveShow&&(E.ads.rewarded.resolveShow(E.ads.rewarded.isRewardGranted),E.ads.rewarded.resolveShow=null),E.ads.rewarded.preloadPromise=null)})})(),googletag.setConfig({disableInitialLoad:!1,targeting:i.globalTargeting||{}}),googletag.enableServices(),E.isReady=!0,y("[GAM] Publisher Tag is ready."),e()})})}catch(o){b("[GAM] Initialization failed:",o)}finally{E.isInitializing=!1}};var I=(e=>(e.LEVEL_START="event/level/start",e.LEVEL_END="event/level/end",e.
1LEVEL_UPDATE="event/level/update",e.PING="event/ping",e.AD="event/ad",e.INFO_PAID="event/info/paid",e.PAYMENT="event/payment",e.CUSTOM="event/custom",e))(I||{});const P=new Set(Object.values(I)),N="trackingUid";let M=null;const Z=async()=>{if("string"==typeof M&&M.length)return M;let e;a.log(`${W()} retrieve userId...`);try{if(e=await F(),void 0!==e)return e}catch{}return a.log(`${W()} no local userId found, requesting new user...`),e=await J(),await X(e).catch(e=>{a.warn(`${W()} saving userId failed.`)}),M=e,e},J=async e=>{var n;a.log(`${W()} create new user...`);const t=U()+"event/user",i=R(),o=B();if(a.log(`${W()} fetch('${t}'`,i,o),$())return H();const r=await fetch(t,{method:"POST",headers:i,body:JSON.stringify(o),signal:AbortSignal.timeout(1e4)});if(!r.ok)throw new Error(`http error! status: ${r.status}`);const s=await r.json();if("string"==typeof(null==(n=null==s?void 0:s.data)?void 0:n.uid))return s.data.uid;throw new Error("retrieving valid uid failed!")},B=()=>{var e,n,t;const i={locale:(null==(e=navigator.languages)?void 0:e[0])??navigator.language??"en",host:window.location?window.location.host:"unknown",domain:window.location?window.location.hostname:"unknown",path:window.location?window.location.pathname:"unknown",url:window.location?window.location.href:"unknown"},a=new URLSearchParams(window.location.search);return a.get("campaign")&&(i.tag=String(a.get("campaign"))),(null==(t=null==(n=window.famobi)?void 0:n.config)?void 0:t.aid)&&(i.aid=window.famobi.config.aid),i},R=e=>{var n,t;const i=p.get().gameId||"unknown",a={"Content-Type":"application/json","X-Version":z(),"X-Game":i,"X-Platform":V()};"string"==typeof(null==(t=null==(n=window.famobi)?void 0:n.config)?void 0:t.aid)&&(a["X-AID"]=window.famobi.config.aid),a["X-User"]=H();const o=new URLSearchParams(window.location.search);return o.get("original_ref")&&(a["X-Referrer"]=String(o.get("original_ref"))),a},F=async e=>{const n=`${p.get().gameId||"unknown"}:${N}`;a.log(`${W()} loading uid ('${n}')...`);const t=window.localStorage.getItem(n);if(null===t||"string"!=typeof t||!t.length||"undefined"===t||"null"===t)throw new Error("no valid userId found");return t},X=async(e,n)=>{const t=p.get().gameId||"unknown";if("string"!=typeof e||!e.length)throw new Error("no valid userId");const i=`${t}:${N}`;a.log(`${W()} saving userId '${e}' ('${i}')...`),window.localStorage.setItem(i,e)},H=()=>{let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{const t=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==n?t:3&t|8).toString(16)})};const G="[track] [famobi_tracking]",O={enabled:!1,debug:!0,version:"0",isMocked:!1};let Q=!1;const K=async()=>{if(Q)return void a.warn(`${G} init cancelled - already initialized`);const e=await Z();Q=!0,a.log(`${G} user initialized! (uid: '${e}')`),await ne().catch(e=>{a.warn(`${G} processQueue() failed`,e)})},j=()=>{setInterval(function(){setTimeout(function(){window.document.hidden?a.log("[track] hidden: famobi_tracking.EVENTS.PING skipped!"):ee(I.PING,{})},1e3*Math.floor(60*Math.random()))},6e4)},W=()=>G,U=()=>O.debug?"https://tracking.plutoniumbytes.de/":"https://master.tracking.html5games.com/",z=()=>{const{famobiTracking:e,version:n}=p.get(),t=null==e?void 0:e.version;return t&&"0"!==t?t:n||"0"},$=()=>(O.isMocked&&a.warn(`${G} --- MOCKED ---`),O.isMocked),V=()=>{if(void 0!==window.cordova&&window.cordova.platformId)switch(window.cordova.platformId){case"android":return"playstore";case"ios":return"appstore"}switch(g.get().name){case"googlePlayStore":return"playstore";case"appleAppStore":return"appstore"}return"unknown"},q=[],ee=async(e,n)=>{a.log(`${W()} trackEvent('${e}', ${JSON.stringify(n||{})})`),(e=>P.has(e))(e)&&"[object Object]"===Object.prototype.toString.call(n)&&(q.push({event:e,data:n||{}}),Q?await ne().catch(e=>{a.warn(`${W()} processQueue() failed`,e)}):a.warn(`${W()} isUserInitialized: false`))},ne=async()=>{for(;q.length>0;){const e=q.shift();e&&await te(e.event,e.data).catch(e=>{a.warn(`${W()} sendRequest failed:`,e)})}},te=async(e,n)=>{a.log(`${W()} sendRequest('${e}')`);const t=await Z().catch(e=>{}),i=U()+e,o=ie(t);if(a.log(`${W()} fetch(${i}`,o,n||{}),$())return;const r=await fetch(i,{method:"POST",headers:o,body:JSON.stringify(n),signal:AbortSignal.timeout(1e4)});if(!r.ok)throw new Error(`http error! status: ${r.status}`)},ie=e=>{var n,t;const i={"Content-Type":"application/json","X-Game":p.get().gameId||"unknown","X-Version":z(),"X-Platform":V()};return"string"==typeof e&&e.length&&(i["X-User"]=e),i["X-AID"]=(null==(t=null==(n=window.famobi)?void 0:n.config)?void 0:t.aid)||g.get().name||"unknown",i},ae=()=>!!p.get().features.iap;let oe=null;function re(e){a.log("[intern] showBlockingLoader(0.75)");const n=function(e){if(oe)return oe;const n=document.createElement("div");n.id="BlockingLoader",e=e??.75,Object.assign(n.style,{position:"absolute",inset:"0",width:"100%",height:"100%",background:`rgba(0, 0, 0, ${e})`,zIndex:"999",display:"none",pointerEvents:"none",touchAction:"none",userSelect:"none",opacity:"0",transition:"opacity 0.18s ease-out"});const t=e=>{e.preventDefault(),e.stopPropagation()};["pointerdown","pointerup","touchstart","touchend","mousedown","click"].forEach(e
vendor: 4,343 bytes, line 1
1=>{n.addEventListener(e,t,{passive:!1})});const i=document.querySelector("canvas");return i&&i.parentElement?i.parentElement.insertBefore(n,i.nextSibling):document.body.appendChild(n),oe=n,n}(e);n.style.display="block",n.getBoundingClientRect(),n.style.opacity="1",n.style.pointerEvents="auto"}var se={};const ue=function(e){const n=[];let t=0;for(let i=0;i<e.length;i++){let a=e.charCodeAt(i);a<128?n[t++]=a:a<2048?(n[t++]=a>>6|192,n[t++]=63&a|128):55296==(64512&a)&&i+1<e.length&&56320==(64512&e.charCodeAt(i+1))?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[t++]=a>>18|240,n[t++]=a>>12&63|128,n[t++]=a>>6&63|128,n[t++]=63&a|128):(n[t++]=a>>12|224,n[t++]=a>>6&63|128,n[t++]=63&a|128)}return n},le={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,n){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const t=n?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let a=0;a<e.length;a+=3){const n=e[a],o=a+1<e.length,r=o?e[a+1]:0,s=a+2<e.length,u=s?e[a+2]:0,l=n>>2,c=(3&n)<<4|r>>4;let h=(15&r)<<2|u>>6,d=63&u;s||(d=64,o||(h=64)),i.push(t[l],t[c],t[h],t[d])}return i.join("")},encodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?btoa(e):this.encodeByteArray(ue(e),n)},decodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?atob(e):function(e){const n=[];let t=0,i=0;for(;t<e.length;){const a=e[t++];if(a<128)n[i++]=String.fromCharCode(a);else if(a>191&&a<224){const o=e[t++];n[i++]=String.fromCharCode((31&a)<<6|63&o)}else if(a>239&&a<365){const o=((7&a)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536;n[i++]=String.fromCharCode(55296+(o>>10)),n[i++]=String.fromCharCode(56320+(1023&o))}else{const o=e[t++],r=e[t++];n[i++]=String.fromCharCode((15&a)<<12|(63&o)<<6|63&r)}}return n.join("")}(this.decodeStringToByteArray(e,n))},decodeStringToByteArray(e,n){this.init_();const t=n?this.charToByteMapWebSafe_:this.charToByteMap_,i=[];for(let a=0;a<e.length;){const n=t[e.charAt(a++)],o=a<e.length?t[e.charAt(a)]:0;++a;const r=a<e.length?t[e.charAt(a)]:64;++a;const s=a<e.length?t[e.charAt(a)]:64;if(++a,null==n||null==o||null==r||null==s)throw new ce;const u=n<<2|o>>4;if(i.push(u),64!==r){const e=o<<4&240|r>>2;if(i.push(e),64!==s){const e=r<<6&192|s;i.push(e)}}}return i},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class ce extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const he=function(e){return function(e){const n=ue(e);return le.encodeByteArray(n,!0)}(e).replace(/\./g,"")},de=function(e){try{return le.decodeString(e,!0)}catch(n){console.error("base64Decode failed: ",n)}return null};const ge=()=>function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,pe=()=>{try{return ge()||(()=>{if("undefined"==typeof process)return;const e=se.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const n=e&&de(e[1]);return n&&JSON.parse(n)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},me=e=>{var n,t;return null===(t=null===(n=pe())||void 0===n?void 0:n.emulatorHosts)||void 0===t?void 0:t[e]},fe=()=>{var e;return null===(e=pe())||void 0===e?void 0:e.config},ve=e=>{var n;return null===(n=pe())||void 0===n?void 0:n[`_${e}`]};class we{constructor(){this.reject=()=>{},this.resolve=()=>{}
1,this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,t)=>{n?this.reject(n):this.resolve(t),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(n):e(n,t))}}}function ye(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function be(){return!function(){var e;const n=null===(e=pe())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class Se extends Error{constructor(e,n,t){super(n),this.code=e,this.customData=t,this.name="FirebaseError",Object.setPrototypeOf(this,Se.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,Ce.prototype.create)}}class Ce{constructor(e,n,t){this.service=e,this.serviceName=n,this.errors=t}create(e,...n){const t=n[0]||{},i=`${this.service}/${e}`,a=this.errors[e],o=a?function(e,n){return e.replace(Le,(e,t)=>{const i=n[t];return null!=i?String(i):`<${t}?>`})}(a,t):"Error",r=`${this.serviceName}: ${o} (${i}).`;return new Se(i,r,t)}}const Le=/\{\$([^}]+)}/g;function Te(e,n){if(e===n)return!0;const t=Object.keys(e),i=Object.keys(n);for(const a of t){if(!i.includes(a))return!1;const t=e[a],o=n[a];if(Ee(t)&&Ee(o)){if(!Te(t,o))return!1}else if(t!==o)return!1}for(const a of i)if(!t.includes(a))return!1;return!0}function Ee(e){return null!==e&&"object"==typeof e}function ke(e){const n=[];for(const[t,i]of Object.entries(e))Array.isArray(i)?i.forEach(e=>{n.push(encodeURIComponent(t)+"="+encodeURIComponent(e))}):n.push(encodeURIComponent(t)+"="+encodeURIComponent(i));return n.length?"&"+n.join("&"):""}class De{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,t){let i;if(void 0===e&&void 0===n&&void 0===t)throw new Error("Missing Observer.");i=function(e,n){if("object"!=typeof e||null===e)return!1;for(const t of n)if(t in e&&"function"==typeof e[t])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:n,complete:t},void 0===i.next&&(i.next=xe),void 0===i.error&&(i.error=xe),void 0===i.complete&&(i.complete=xe);const a=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(e){}}),this.observers.push(i),a}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{n(this.observers[e])}catch(t){"undefined"!=typeof console&&console.error&&console.error(t)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function xe(){}function Ae(e){return e&&e._delegate?e._delegate:e}class Ye{constructor(e,n,t){this.name=e,this.instanceFactory=n,this.type=t,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const _e="[DEFAULT]";class Ie{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const e=new we;if(this.instancesDeferred.set(n,e),this.isInitialized(n)||this.shouldAutoInitialize())try{const t=this.getOrInitializeService({instanceIdentifier:n});t&&e.resolve(t)}catch(t){}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;const t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(n=null==e?void 0:e.optional)&&void 0!==n&&n;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(a){if(i)return null;throw a}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:_e})}catch(n){}for(const[e,t]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:i});t.resolve(e)}catch(n){}}}}clearInstance(e=_e){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=_e){return this.instances.has(e)}getOptions(e=_e){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,t=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(t))throw Error(`${this.name}(${t}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:t,options:n});
vendor: 5,066 bytes, line 1
1for(const[a,o]of this.instancesDeferred.entries()){t===this.normalizeInstanceIdentifier(a)&&o.resolve(i)}return i}onInit(e,n){var t;const i=this.normalizeInstanceIdentifier(n),a=null!==(t=this.onInitCallbacks.get(i))&&void 0!==t?t:new Set;a.add(e),this.onInitCallbacks.set(i,a);const o=this.instances.get(i);return o&&e(o,i),()=>{a.delete(e)}}invokeOnInitCallbacks(e,n){const t=this.onInitCallbacks.get(n);if(t)for(const a of t)try{a(e,n)}catch(i){}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let t=this.instances.get(e);if(!t&&this.component&&(t=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===_e?void 0:i),options:n}),this.instances.set(e,t),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(t,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,t)}catch(a){}var i;return t||null}normalizeInstanceIdentifier(e=_e){return this.component?this.component.multipleInstances?e:_e:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Pe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new Ie(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}var Ne,Me;(Me=Ne||(Ne={}))[Me.DEBUG=0]="DEBUG",Me[Me.VERBOSE=1]="VERBOSE",Me[Me.INFO=2]="INFO",Me[Me.WARN=3]="WARN",Me[Me.ERROR=4]="ERROR",Me[Me.SILENT=5]="SILENT";const Ze={debug:Ne.DEBUG,verbose:Ne.VERBOSE,info:Ne.INFO,warn:Ne.WARN,error:Ne.ERROR,silent:Ne.SILENT},Je=Ne.INFO,Be={[Ne.DEBUG]:"log",[Ne.VERBOSE]:"log",[Ne.INFO]:"info",[Ne.WARN]:"warn",[Ne.ERROR]:"error"},Re=(e,n,...t)=>{if(n<e.logLevel)return;const i=(new Date).toISOString(),a=Be[n];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${n})`);console[a](`[${i}]  ${e.name}:`,...t)};class Fe{constructor(e){this.name=e,this._logLevel=Je,this._logHandler=Re,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in Ne))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Ze[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,Ne.DEBUG,...e),this._logHandler(this,Ne.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,Ne.VERBOSE,...e),this._logHandler(this,Ne.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,Ne.INFO,...e),this._logHandler(this,Ne.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,Ne.WARN,...e),this._logHandler(this,Ne.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,Ne.ERROR,...e),this._logHandler(this,Ne.ERROR,...e)}}let Xe,He;const Ge=new WeakMap,Oe=new WeakMap,Qe=new WeakMap,Ke=new WeakMap,je=new WeakMap;let We={get(e,n,t){if(e instanceof IDBTransaction){if("done"===n)return Oe.get(e);if("objectStoreNames"===n)return e.objectStoreNames||Qe.get(e);if("store"===n)return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return $e(e[n])},set:(e,n,t)=>(e[n]=t,!0),has:(e,n)=>e instanceof IDBTransaction&&("done"===n||"store"===n)||n in e};function Ue(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(He||(He=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...n){return e.apply(Ve(this),n),$e(Ge.get(this))}:function(...n){return $e(e.apply(Ve(this),n))}:function(n,...t){const i=e.call(Ve(this),n,...t);return Qe.set(i,n.sort?n.sort():[n]),$e(i)}}function ze(e){return"function"==typeof e?Ue(e):(e instanceof IDBTransaction&&function(e){if(Oe.has(e))return;const n=new Promise((n,t)=>{const i=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",o),e.removeEventListener("abort",o)},a=()=>{n(),i()},o=()=>{t(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",a),e.addEventListener("error",o),e.addEventListener("abort",o)});Oe.set(e,n)}(e),n=e,(Xe||(Xe=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>n instanceof e)?new Proxy(e,We):e);var n}function $e(e){if(e instanceof IDBRequest)return function(e){const n=new Promise((n,t)=>{const i=()=>{e.removeEventListener("success",a),e.removeEventListener("error",o)},a=()=>{n($e(e.result)),i()},o=()=>{t(e.error),i()};e.addEventListener("success",a),e.addEventListener("error",o)});return n.then(n=>
1{n instanceof IDBCursor&&Ge.set(n,e)}).catch(()=>{}),je.set(n,e),n}(e);if(Ke.has(e))return Ke.get(e);const n=ze(e);return n!==e&&(Ke.set(e,n),je.set(n,e)),n}const Ve=e=>je.get(e);const qe=["get","getKey","getAll","getAllKeys","count"],en=["put","add","delete","clear"],nn=new Map;function tn(e,n){if(!(e instanceof IDBDatabase)||n in e||"string"!=typeof n)return;if(nn.get(n))return nn.get(n);const t=n.replace(/FromIndex$/,""),i=n!==t,a=en.includes(t);if(!(t in(i?IDBIndex:IDBObjectStore).prototype)||!a&&!qe.includes(t))return;const o=async function(e,...n){const o=this.transaction(e,a?"readwrite":"readonly");let r=o.store;return i&&(r=r.index(n.shift())),(await Promise.all([r[t](...n),a&&o.done]))[0]};return nn.set(n,o),o}We=(e=>({...e,get:(n,t,i)=>tn(n,t)||e.get(n,t,i),has:(n,t)=>!!tn(n,t)||e.has(n,t)}))(We);class an{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(function(e){const n=e.getComponent();return"VERSION"===(null==n?void 0:n.type)}(e)){const n=e.getImmediate();return`${n.library}/${n.version}`}return null}).filter(e=>e).join(" ")}}const on="@firebase/app",rn="0.10.13",sn=new Fe("@firebase/app"),un="@firebase/app-compat",ln="@firebase/analytics-compat",cn="@firebase/analytics",hn="@firebase/app-check-compat",dn="@firebase/app-check",gn="@firebase/auth",pn="@firebase/auth-compat",mn="@firebase/database",fn="@firebase/data-connect",vn="@firebase/database-compat",wn="@firebase/functions",yn="@firebase/functions-compat",bn="@firebase/installations",Sn="@firebase/installations-compat",Cn="@firebase/messaging",Ln="@firebase/messaging-compat",Tn="@firebase/performance",En="@firebase/performance-compat",kn="@firebase/remote-config",Dn="@firebase/remote-config-compat",xn="@firebase/storage",An="@firebase/storage-compat",Yn="@firebase/firestore",_n="@firebase/vertexai-preview",In="@firebase/firestore-compat",Pn="firebase",Nn="[DEFAULT]",Mn={[on]:"fire-core",[un]:"fire-core-compat",[cn]:"fire-analytics",[ln]:"fire-analytics-compat",[dn]:"fire-app-check",[hn]:"fire-app-check-compat",[gn]:"fire-auth",[pn]:"fire-auth-compat",[mn]:"fire-rtdb",[fn]:"fire-data-connect",[vn]:"fire-rtdb-compat",[wn]:"fire-fn",[yn]:"fire-fn-compat",[bn]:"fire-iid",[Sn]:"fire-iid-compat",[Cn]:"fire-fcm",[Ln]:"fire-fcm-compat",[Tn]:"fire-perf",[En]:"fire-perf-compat",[kn]:"fire-rc",[Dn]:"fire-rc-compat",[xn]:"fire-gcs",[An]:"fire-gcs-compat",[Yn]:"fire-fst",[In]:"fire-fst-compat",[_n]:"fire-vertex","fire-js":"fire-js",[Pn]:"fire-js-all"},Zn=new Map,Jn=new Map,Bn=new Map;function Rn(e,n){try{e.container.addComponent(n)}catch(t){sn.debug(`Component ${n.name} failed to register with FirebaseApp ${e.name}`,t)}}function Fn(e){const n=e.name;if(Bn.has(n))return sn.debug(`There were multiple attempts to register component ${n}.`),!1;Bn.set(n,e);for(const t of Zn.values())Rn(t,e);for(const t of Jn.values())Rn(t,e);return!0}function Xn(e,n){const t=e.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),e.container.getProvider(n)}function Hn(e){return void 0!==e.settings}const Gn=new Ce("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invali
1d-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class On{constructor(e,n,t){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=t,this.container.addComponent(new Ye("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Gn.create("app-deleted",{appName:this._name})}}const Qn="10.14.1";function Kn(e,n={}){let t=e;if("object"!=typeof n){n={name:n}}const i=Object.assign({name:Nn,automaticDataCollectionEnabled:!1},n),a=i.name;if("string"!=typeof a||!a)throw Gn.create("bad-app-name",{appName:String(a)});if(t||(t=fe()),!t)throw Gn.create("no-options");const o=Zn.get(a);if(o){if(Te(t,o.options)&&Te(i,o.config))return o;throw Gn.create("duplicate-app",{appName:a})}const r=new Pe(a);for(const u of Bn.values())r.addComponent(u);const s=new On(t,i,r);return Zn.set(a,s),s}function jn(e=Nn){const n=Zn.get(e);if(!n&&e===Nn&&fe())return Kn();if(!n)throw Gn.create("no-app",{appName:e});return n}function Wn(e,n,t){var i;let a=null!==(i=Mn[e])&&void 0!==i?i:e;t&&(a+=`-${t}`);const o=a.match(/\s|\//),r=n.match(/\s|\//);if(o||r){const e=[`Unable to register library "${a}" with version "${n}":`];return o&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),o&&r&&e.push("and"),r&&e.push(`version name "${n}" contains illegal characters (whitespace or "/")`),void sn.warn(e.join(" "))}Fn(new Ye(`${a}-version`,()=>({library:a,version:n}),"VERSION"))}const Un="firebase-heartbeat-store";let zn=null;function $n(){return zn||(zn=function(e,n,{blocked:t,upgrade:i,blocking:a,terminated:o}={}){const r=indexedDB.open(e,n),s=$e(r);return i&&r.addEventListener("upgradeneeded",e=>{i($e(r.result),e.oldVersion,e.newVersion,$e(r.transaction),e)}),t&&r.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),s.then(e=>{o&&e.addEventListener("close",()=>o()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}("firebase-heartbeat-database",1,{upgrade:(e,n)=>{if(0===n)try{e.createObjectStore(Un)}catch(t){console.warn(t)}}}).catch(e=>{throw Gn.create("idb-open",{originalErrorMessage:e.message})})),zn}async function Vn(e,n){try{const t=(await $n()).transaction(Un,"readwrite"),i=t.objectStore(Un);await i.put(n,qn(e)),await t.done}catch(t){if(t instanceof Se)sn.warn(t.message);else{const e=Gn.create("idb-set",{originalErrorMessage:null==t?void 0:t.message});sn.warn(e.message)}}}function qn(e){return`${e.name}!${e.options.appId}`}class et{constructor(e){this.container=e,this._heartbeatsCache=null;const n=this.container.getProvider("app").getImmediate();this._storage=new tt(n),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){var e,n;try{const t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),i=nt();if(null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(n=this._heartbeatsCache)||void 0===n?void 0:n.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===i||this._heartbeatsCache.heartbeats.some(e=>e.date===i))return;return this._heartbeatsCache.heartbeats.push({date:i,agent:t}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter(e=>{const n=new Date(e.date).valueOf();return Date.now()-n<=2592e6}),this._storage.overwrite(this._heartbeatsCache)}catch(t){sn.warn(t)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const n=nt(),{heartbeatsToSend:t,unsentEntries:i}=function(e,n=1024){const t=[];let i=e.slice();for(const a of e){const e=t.find(e=>e.agent===a.agent);if(e){if(e.dates.push(a.date),it(t)>n){e.dates.pop();break}}else if(t.push({agent:a.agent,dates:[a.date]}),it(t)>n){t.pop();break}i=i.slice(1)}return{heartbeatsToSend:t,unsentEntries:i}}(this._heartbeatsCache.heartbeats),a=he(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=n,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}catch(n){return sn.warn(n),""}}}function nt(){return(new Date).toISOString().substring(0,10)}class tt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}
1()&&new Promise((e,n)=>{try{let t=!0;const i="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(i);a.onsuccess=()=>{a.result.close(),t||self.indexedDB.deleteDatabase(i),e(!0)},a.onupgradeneeded=()=>{t=!1},a.onerror=()=>{var e;n((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(t){n(t)}}).then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const n=(await $n()).transaction(Un),t=await n.objectStore(Un).get(qn(e));return await n.done,t}catch(n){if(n instanceof Se)sn.warn(n.message);else{const e=Gn.create("idb-get",{originalErrorMessage:null==n?void 0:n.message});sn.warn(e.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var n;if(await this._canUseIndexedDBPromise){const t=await this.read();return Vn(this.app,{lastSentHeartbeatDate:null!==(n=e.lastSentHeartbeatDate)&&void 0!==n?n:t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var n;if(await this._canUseIndexedDBPromise){const t=await this.read();return Vn(this.app,{lastSentHeartbeatDate:null!==(n=e.lastSentHeartbeatDate)&&void 0!==n?n:t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}}function it(e){return he(JSON.stringify({version:2,heartbeats:e})).length}var at;at="",Fn(new Ye("platform-logger",e=>new an(e),"PRIVATE")),Fn(new Ye("heartbeat",e=>new et(e),"PRIVATE")),Wn(on,rn,at),Wn(on,rn,"esm2017"),Wn("fire-js","");var ot,rt,st="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var e;function n(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function t(e,n,t){t||(t=0);var i=Array(16);if("string"==typeof n)for(var a=0;16>a;++a)i[a]=n.charCodeAt(t++)|n.charCodeAt(t++)<<8|n.charCodeAt(t++)<<16|n.charCodeAt(t++)<<24;else for(a=0;16>a;++a)i[a]=n[t++]|n[t++]<<8|n[t++]<<16|n[t++]<<24;n=e.g[0],t=e.g[1],a=e.g[2];var o=e.g[3],r=n+(o^t&(a^o))+i[0]+3614090360&4294967295;r=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=t+(r<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[1]+3905402710&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[2]+606105819&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[3]+3250441966&4294967295)<<22&4294967295|r>>>10))+((r=n+(o^t&(a^o))+i[4]+4118548399&4294967295)<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[5]+1200080426&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[6]+2821735955&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[7]+4249261313&4294967295)<<22&4294967295|r>>>10))+((r=n+(o^t&(a^o))+i[8]+1770035416&4294967295)<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[9]+2336552879&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[10]+4294925233&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[11]+2304563134&4294967295)<<22&4294967295|r>>>10))+((r=n+(o^t&(a^o))+i[12]+1804603682&4294967295)<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[13]+4254626195&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[14]+2792965006&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[15]+1236535329&4294967295)<<22&4294967295|r>>>10))+((r=n+(a^o&(t^a))+i[1]+4129170786&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[6]+3225465664&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[11]+643717713&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[0]+3921069994&4294967295)<<20&4294967295|r>>>12))+((r=n+(a^o&(t^a))+i[5]+3593408605&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[10]+38016083&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[15]+3634488961&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[4]+3889429448&4294967295)<<20&4294967295|r>>>12))+((r=n+(a^o&(t^a))+i[9]+568446438&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[14]+3275163606&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[3]+4107603335&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[8]+1163531501&4294967295)<<20&4294967295|r>>>12))+((r=n+(a^o&(t^a))+i[13]+2850285829&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[2]+4243563512&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[7]+1735328473&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[12]+2368359562&4294967295)<<20&4294967295|r>>>
112))+((r=n+(t^a^o)+i[5]+4294588738&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[8]+2272392833&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[11]+1839030562&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[14]+4259657740&4294967295)<<23&4294967295|r>>>9))+((r=n+(t^a^o)+i[1]+2763975236&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[4]+1272893353&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[7]+4139469664&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[10]+3200236656&4294967295)<<23&4294967295|r>>>9))+((r=n+(t^a^o)+i[13]+681279174&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[0]+3936430074&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[3]+3572445317&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[6]+76029189&4294967295)<<23&4294967295|r>>>9))+((r=n+(t^a^o)+i[9]+3654602809&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[12]+3873151461&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[15]+530742520&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[2]+3299628645&4294967295)<<23&4294967295|r>>>9))+((r=n+(a^(t|~o))+i[0]+4096336452&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[7]+1126891415&4294967295)<<10&4294967295|r>>>22))+((r=a+(n^(o|~t))+i[14]+2878612391&4294967295)<<15&4294967295|r>>>17))+((r=t+(o^(a|~n))+i[5]+4237533241&4294967295)<<21&4294967295|r>>>11))+((r=n+(a^(t|~o))+i[12]+1700485571&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[3]+2399980690&4294967295)<<10&4294967295|r>>>22))+((r=a+(n^(o|~t))+i[10]+4293915773&4294967295)<<15&4294967295|r>>>17))+((r=t+(o^(a|~n))+i[1]+2240044497&4294967295)<<21&4294967295|r>>>11))+((r=n+(a^(t|~o))+i[8]+1873313359&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[15]+4264355552&4294967295)<<10&4294967295|r>>>22))+((r=a+(n^(o|~t))+i[6]+2734768916&4294967295)<<15&4294967295|r>>>17))+((r=t+(o^(a|~n))+i[13]+1309151649&4294967295)<<21&4294967295|r>>>11))+((o=(n=t+((r=n+(a^(t|~o))+i[4]+4149444226&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[11]+3174756917&4294967295)<<10&4294967295|r>>>22))^((a=o+((r=a+(n^(o|~t))+i[2]+718787259&4294967295)<<15&4294967295|r>>>17))|~n))+i[9]+3951481745&4294967295,e.g[0]=e.g[0]+n&4294967295,e.g[1]=e.g[1]+(a+(r<<21&4294967295|r>>>11))&4294967295,e.g[2]=e.g[2]+a&4294967295,e.g[3]=e.g[3]+o&4294967295}function i(e,n){this.h=n;for(var t=[],i=!0,a=e.length-1;0<=a;a--){var o=0|e[a];i&&o==n||(t[a]=o,i=!1)}this.g=t}!function(e,n){function t(){}t.prototype=n.prototype,e.D=n.prototype,e.prototype=new t,e.prototype.constructor=e,e.C=function(e,t,i){for(var a=Array(arguments.length-2),o=2;o<arguments.length;o++)a[o-2]=arguments[o];return n.prototype[t].apply(e,a)}}(n,function(){this.blockSize=-1}),n.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},n.prototype.u=function(e,n){void 0===n&&(n=e.length);for(var i=n-this.blockSize,a=this.B,o=this.h,r=0;r<n;){if(0==o)for(;r<=i;)t(this,e,r),r+=this.blockSize;if("string"==typeof e){for(;r<n;)if(a[o++]=e.charCodeAt(r++),o==this.blockSize){t(this,a),o=0;break}}else for(;r<n;)if(a[o++]=e[r++],o==this.blockSize){t(this,a),o=0;break}}this.h=o,this.o+=n},n.prototype.v=function(){var e=Array((56>this.h?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var n=1;n<e.length-8;++n)e[n]=0;var t=8*this.o;for(n=e.length-8;n<e.length;++n)e[n]=255&t,t/=256;for(this.u(e),e=Array(16),n=t=0;4>n;++n)for(var i=0;32>i;i+=8)e[t++]=this.g[n]>>>i&255;return e};var a={};function o(e){return-128<=e&&128>e?function(e,n){var t=a;return Object.prototype.hasOwnProperty.call(t,e)?t[e]:t[e]=n(e)}(e,function(e){return new i([0|e],0>e?-1:0)}):new i([0|e],0>e?-1:0)}function r(e){if(isNaN(e)||!isFinite(e))return s;if(0>e)return d(r(-e));for(var n=[],t=1,a=0;e>=t;a++)n[a]=e/t|0,t*=4294967296;return new i(n,0)}var s=o(0),u=o(1),l=o(16777216);function c(e){if(0!=e.h)return!1;for(var n=0;n<e.g.length;n++)if(0!=e.g[n])return!1;return!0}function h(e){return-1==e.h}function d(e){for(var n=e.g.length,t=[],a=0;a<n;a++)t[a]=~e.g[a];return new i(t,~e.h).add(u)}function g(e,n){return e.add(d(n))}function p(e,n){for(;(65535&e[n])!=e[n];)e[n+1]+=e[n]>>>16,e[n]&=65535,n++}function m(e,n){this.g=e,this.h=n}function f(e,n){if(c(n))throw Error("division by zero");if(c(e))return new m(s,s);if(h(e))return n=f(d(e),n),new m(d(n.g),d(n.h));if(h(n))return n=f(e,d(n)),new m(d(n.g),n.h);if(30<e.g.length){if(h(e)||h(n))throw Error("slowDivide_ only works with positive integers.");for(var t=u,i=n;0>=i.l(e);)t=v(t),i=v(i);var a=w(t,1),o=w(i,1);for(i=w(i,2),t=w(t,2);!c(i);){var l=o.add(i);0>=l.l(e)&&(a=a.add(t),o=l),i=w(i,1),t=w(t,1)}return n=g(e,a.j(n)),new m(a,n)}for(a=s;0<=e.l(n);){for(t=Math.max(1,Math.floor(e.m()/n.m())),i=48>=(i=Math.ceil(Math.log(t)/Math.LN2))?1:Math.pow(2,i-48),l=(o=r(t)).j(n);h(l)||0<l.l(e);)l=(o=r(t-=i)).j(n);c(o)&&(o=u),a=a.add(o),e=g(e,l)}return new m(a,e)}function v(e){for(var n=e.g.length+1,t=[],a=0;a<n;a++)t[a]=e.i(a)<<1|e.i(a-1)>>>31;return new i(t,e.h)}function w(e,n){var t=n>>5;n%=32;for(var a=e.g.length-t,o=[],r=0;r<a;r++)o[r]=0<n?e.i(r+t)>>>n|e.i(r+t+1)<<32-n:e.i(r+t);return new i(o,e.h)}(e=i.prototype).m=function(){if(h(this))return-d(this).m();for(var e=0,n=1,t=0;t<this.g.length;t++){var i=this.i(t);e+=(0<=i?i:4294967296+i)*n,n*=4294967296}return e},e.toString=function(e){if(2>(e=e||10)||36<e)throw Error("radix out of range: "+e);if(c(this))return"0";if(h(this))return"-"+d(this).toString(e);for(var n=r(Math.pow(e,6)),t=this,i="";;){var a=f(t,n).g,o=((0<(t=g(t,a.j(n))).g.length?t.g[0]:t.h)>>>0).toString(e);if(c(t=a))return o+i;for(;6>o.length;)o="0"+o;i=o+i}},e.i=function(e){return 0>e?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return h(e=g(this,e))?-1:c(e)?0:1},e.abs=function(){return h(this)?d(this):this},e.add=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0,o=0;o<=n;o++){var r=a+(65535&this.i(o))+(65535&e.i(o)),s=(r>>>16)+(this.i(o)>>>16)+(e.i(o)>>>16);a=s>>>16,r&=65535,s&=65535,t[o]=s<<16|r}
1return new i(t,-2147483648&t[t.length-1]?-1:0)},e.j=function(e){if(c(this)||c(e))return s;if(h(this))return h(e)?d(this).j(d(e)):d(d(this).j(e));if(h(e))return d(this.j(d(e)));if(0>this.l(l)&&0>e.l(l))return r(this.m()*e.m());for(var n=this.g.length+e.g.length,t=[],a=0;a<2*n;a++)t[a]=0;for(a=0;a<this.g.length;a++)for(var o=0;o<e.g.length;o++){var u=this.i(a)>>>16,g=65535&this.i(a),m=e.i(o)>>>16,f=65535&e.i(o);t[2*a+2*o]+=g*f,p(t,2*a+2*o),t[2*a+2*o+1]+=u*f,p(t,2*a+2*o+1),t[2*a+2*o+1]+=g*m,p(t,2*a+2*o+1),t[2*a+2*o+2]+=u*m,p(t,2*a+2*o+2)}for(a=0;a<n;a++)t[a]=t[2*a+1]<<16|t[2*a];for(a=n;a<2*n;a++)t[a]=0;return new i(t,0)},e.A=function(e){return f(this,e).h},e.and=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0;a<n;a++)t[a]=this.i(a)&e.i(a);return new i(t,this.h&e.h)},e.or=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0;a<n;a++)t[a]=this.i(a)|e.i(a);return new i(t,this.h|e.h)},e.xor=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0;a<n;a++)t[a]=this.i(a)^e.i(a);return new i(t,this.h^e.h)},n.prototype.digest=n.prototype.v,n.prototype.reset=n.prototype.s,n.prototype.update=n.prototype.u,rt=n,i.prototype.add=i.prototype.add,i.prototype.multiply=i.prototype.j,i.prototype.modulo=i.prototype.A,i.prototype.compare=i.prototype.l,i.prototype.toNumber=i.prototype.m,i.prototype.toString=i.prototype.toString,i.prototype.getBits=i.prototype.i,i.fromNumber=r,i.fromString=function e(n,t){if(0==n.length)throw Error("number format error: empty string");if(2>(t=t||10)||36<t)throw Error("radix out of range: "+t);if("-"==n.charAt(0))return d(e(n.substring(1),t));if(0<=n.indexOf("-"))throw Error('number format error: interior "-" character');for(var i=r(Math.pow(t,8)),a=s,o=0;o<n.length;o+=8){var u=Math.min(8,n.length-o),l=parseInt(n.substring(o,o+u),t);8>u?(u=r(Math.pow(t,u)),a=a.j(u).add(r(l))):a=(a=a.j(i)).add(r(l))}return a},ot=i}).apply(void 0!==st?st:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var ut,lt,ct,ht,dt,gt,pt,mt,ft="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var e,n="function"==typeof Object.defineProperties?Object.defineProperty:function(e,n,t){return e==Array.prototype||e==Object.prototype||(e[n]=t.value),e};var t=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof ft&&ft];for(var n=0;n<e.length;++n){var t=e[n];if(t&&t.Math==Math)return t}throw Error("Cannot find global object")}(this);!function(e,i){if(i)e:{var a=t;e=e.split(".");for(var o=0;o<e.length-1;o++){var r=e[o];if(!(r in a))break e;a=a[r]}(i=i(o=a[e=e[e.length-1]]))!=o&&null!=i&&n(a,e,{configurable:!0,writable:!0,value:i})}}("Array.prototype.values",function(e){return e||function(){return function(e,n){e instanceof String&&(e+="");var t=0,i=!1,a={next:function(){if(!i&&t<e.length){var a=t++;return{value:n(a,e[a]),done:!1}}return i=!0,{done:!0,value:void 0}}};return a[Symbol.iterator]=function(){return a},a}(this,function(e,n){return n})}});var i=i||{},a=this||self;function o(e){var n=typeof e;return"array"==(n="object"!=n?n:e?Array.isArray(e)?"array":n:"null")||"object"==n&&"number"==typeof e.length}function r(e){var n=typeof e;return"object"==n&&null!=e||"function"==n}function s(e,n,t){return e.call.apply(e.bind,arguments)}function u(e,n,t){if(!e)throw Error();if(2<arguments.length){var i=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,i),e.apply(n,t)}}return function(){return e.apply(n,arguments)}}function l(e,n,t){return(l=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?s:u).apply(null,arguments)}function c(e,n){var t=Array.prototype.slice.call(arguments,1);return function(){var n=t.slice();return n.push.apply(n,arguments),e.apply(this,n)}}function h(e,n){function t(){}t.prototype=n.prototype,e.aa=n.prototype,e.prototype=new t,e.prototype.constructor=e,e.Qb=function(e,t,i){for(var a=Array(arguments.length-2),o=2;o<arguments.length;o++)a[o-2]=arguments[o];return n.prototype[t].apply(e,a)}}function d(e){const n=e.length;if(0<n){const t=Array(n);for(let i=0;i<n;i++)t[i]=e[i];return t}return[]}function g(e,n){for(let t=1;t<arguments.length;t++){const n=arguments[t];if(o(n)){const t=e.length||0,i=n.length||0;e.length=t+i;for(let a=0;a<i;a++)e[t+a]=n[a]}else e.push(n)}}function p(e){return/^[\s\xa0]*$/.test(e)}function m(){var e=a.navigator;return e&&(e=e.userAgent)?e:""}function f(e){return f[" "](e),e}f[" "]=function(){};var v=!(-1==m().indexOf("Gecko")||-1!=m().toLowerCase().indexOf("webkit")&&-1==m().indexOf("Edge")||-1!=m().indexOf("Trident")||-1!=m().indexOf("MSIE")||-1!=m().indexOf("Edge"));function w(e,n,t){for(const i in e)n.call(t,e[i],i,e)}function y(e){const n={};for(const t in e)n[t]=e[t];return n}const b="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleStr
1ing toString valueOf".split(" ");function S(e,n){let t,i;for(let a=1;a<arguments.length;a++){for(t in i=arguments[a],i)e[t]=i[t];for(let n=0;n<b.length;n++)t=b[n],Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t])}}function C(e){var n=1;e=e.split(":");const t=[];for(;0<n&&e.length;)t.push(e.shift()),n--;return e.length&&t.push(e.join(":")),t}function L(e){a.setTimeout(()=>{throw e},0)}function T(){var e=A;let n=null;return e.g&&(n=e.g,e.g=e.g.next,e.g||(e.h=null),n.next=null),n}var E=new class{constructor(e,n){this.i=e,this.j=n,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new k,e=>e.reset());class k{constructor(){this.next=this.g=this.h=null}set(e,n){this.h=e,this.g=n,this.next=null}reset(){this.next=this.g=this.h=null}}let D,x=!1,A=new class{constructor(){this.h=this.g=null}add(e,n){const t=E.get();t.set(e,n),this.h?this.h.next=t:this.g=t,this.h=t}},Y=()=>{const e=a.Promise.resolve(void 0);D=()=>{e.then(_)}};var _=()=>{for(var e;e=T();){try{e.h.call(e.g)}catch(t){L(t)}var n=E;n.j(e),100>n.h&&(n.h++,e.next=n.g,n.g=e)}x=!1};function I(){this.s=this.s,this.C=this.C}function P(e,n){this.type=e,this.g=this.target=n,this.defaultPrevented=!1}I.prototype.s=!1,I.prototype.ma=function(){this.s||(this.s=!0,this.N())},I.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},P.prototype.h=function(){this.defaultPrevented=!0};var N=function(){if(!a.addEventListener||!Object.defineProperty)return!1;var e=!1,n=Object.defineProperty({},"passive",{get:function(){e=!0}});try{const e=()=>{};a.addEventListener("test",e,n),a.removeEventListener("test",e,n)}catch(t){}return e}();function M(e,n){if(P.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var t=this.type=e.type,i=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=n,n=e.relatedTarget){if(v){e:{try{f(n.nodeName);var a=!0;break e}catch(o){}a=!1}a||(n=null)}}else"mouseover"==t?n=e.fromElement:"mouseout"==t&&(n=e.toElement);this.relatedTarget=n,i?(this.clientX=void 0!==i.clientX?i.clientX:i.pageX,this.clientY=void 0!==i.clientY?i.clientY:i.pageY,this.screenX=i.screenX||0,this.screenY=i.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:Z[e.pointerType]||"",this.state=e.state,this.i=e,e.defaultPrevented&&M.aa.h.call(this)}}h(M,P);var Z={2:"touch",3:"pen",4:"mouse"};M.prototype.h=function(){M.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var J="closure_listenable_"+(1e6*Math.random()|0),B=0;function R(e,n,t,i,a){this.listener=e,this.proxy=null,this.src=n,this.type=t,this.capture=!!i,this.ha=a,this.key=++B,this.da=this.fa=!1}function F(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function X(e){this.src=e,this.g={},this.h=0}function H(e,n){var t=n.type;if(t in e.g){var i,a=e.g[t],o=Array.prototype.indexOf.call(a,n,void 0);(i=0<=o)&&Array.prototype.splice.call(a,o,1),i&&(F(n),0==e.g[t].length&&(delete e.g[t],e.h--))}}function G(e,n,t,i){for(var a=0;a<e.length;++a){var o=e[a];if(!o.da&&o.listener==n&&o.capture==!!t&&o.ha==i)return a}return-1}X.prototype.add=function(e,n,t,i,a){var o=e.toString();(e=this.g[o])||(e=this.g[o]=[],this.h++);var r=G(e,n,i,a);return-1<r?(n=e[r],t||(n.fa=!1)):((n=new R(n,this.src,o,!!i,a)).fa=t,e.push(n)),n};var O="closure_lm_"+(1e6*Math.random()|0),Q={};function K(e,n,t,i,a){if(Array.isArray(n)){for(var o=0;o<n.length;o++)K(e,n[o],t,i,a);return null}return t=q(t),e&&e[J]?e.K(n,t,!!r(i)&&!!i.capture,a):function(e,n,t,i,a,o){if(!n)throw Error("Invalid event type");var s=r(a)?!!a.capture:!!a,u=$(e);
1if(u||(e[O]=u=new X(e)),t=u.add(n,t,i,s,o),t.proxy)return t;if(i=function(){function e(t){return n.call(e.src,e.listener,t)}const n=z;return e}(),t.proxy=i,i.src=e,i.listener=t,e.addEventListener)N||(a=s),void 0===a&&(a=!1),e.addEventListener(n.toString(),i,a);else if(e.attachEvent)e.attachEvent(U(n.toString()),i);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(i)}return t}(e,n,t,!1,i,a)}function j(e,n,t,i,a){if(Array.isArray(n))for(var o=0;o<n.length;o++)j(e,n[o],t,i,a);else i=r(i)?!!i.capture:!!i,t=q(t),e&&e[J]?(e=e.i,(n=String(n).toString())in e.g&&(-1<(t=G(o=e.g[n],t,i,a))&&(F(o[t]),Array.prototype.splice.call(o,t,1),0==o.length&&(delete e.g[n],e.h--)))):e&&(e=$(e))&&(n=e.g[n.toString()],e=-1,n&&(e=G(n,t,i,a)),(t=-1<e?n[e]:null)&&W(t))}function W(e){if("number"!=typeof e&&e&&!e.da){var n=e.src;if(n&&n[J])H(n.i,e);else{var t=e.type,i=e.proxy;n.removeEventListener?n.removeEventListener(t,i,e.capture):n.detachEvent?n.detachEvent(U(t),i):n.addListener&&n.removeListener&&n.removeListener(i),(t=$(n))?(H(t,e),0==t.h&&(t.src=null,n[O]=null)):F(e)}}}function U(e){return e in Q?Q[e]:Q[e]="on"+e}function z(e,n){if(e.da)e=!0;else{n=new M(n,this);var t=e.listener,i=e.ha||e.src;e.fa&&W(e),e=t.call(i,n)}return e}function $(e){return(e=e[O])instanceof X?e:null}var V="__closure_events_fn_"+(1e9*Math.random()>>>0);function q(e){return"function"==typeof e?e:(e[V]||(e[V]=function(n){return e.handleEvent(n)}),e[V])}function ee(){I.call(this),this.i=new X(this),this.M=this,this.F=null}function ne(e,n){var t,i=e.F;if(i)for(t=[];i;i=i.F)t.push(i);if(e=e.M,i=n.type||n,"string"==typeof n)n=new P(n,e);else if(n instanceof P)n.target=n.target||e;else{var a=n;S(n=new P(i,e),a)}if(a=!0,t)for(var o=t.length-1;0<=o;o--){var r=n.g=t[o];a=te(r,i,!0,n)&&a}if(a=te(r=n.g=e,i,!0,n)&&a,a=te(r,i,!1,n)&&a,t)for(o=0;o<t.length;o++)a=te(r=n.g=t[o],i,!1,n)&&a}function te(e,n,t,i){if(!(n=e.i.g[String(n)]))return!0;n=n.concat();for(var a=!0,o=0;o<n.length;++o){var r=n[o];if(r&&!r.da&&r.capture==t){var s=r.listener,u=r.ha||r.src;r.fa&&H(e.i,r),a=!1!==s.call(u,i)&&a}}return a&&!i.defaultPrevented}function ie(e,n,t){if("function"==typeof e)t&&(e=l(e,t));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=l(e.handleEvent,e)}return 2147483647<Number(n)?-1:a.setTimeout(e,n||0)}function ae(e){e.g=ie(()=>{e.g=null,e.i&&(e.i=!1,ae(e))},e.l);const n=e.h;e.h=null,e.m.apply(null,n)}h(ee,I),ee.prototype[J]=!0,ee.prototype.removeEventListener=function(e,n,t,i){j(this,e,n,t,i)},ee.prototype.N=function(){if(ee.aa.N.call(this),this.i){var e,n=this.i;for(e in n.g){for(var t=n.g[e],i=0;i<t.length;i++)F(t[i]);delete n.g[e],n.h--}}this.F=null},ee.prototype.K=function(e,n,t,i){return this.i.add(String(e),n,!1,t,i)},ee.prototype.L=function(e,n,t,i){return this.i.add(String(e),n,!0,t,i)};class oe extends I{constructor(e,n){super(),this.m=e,this.l=n,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:ae(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function re(e){I.call(this),this.h=e,this.g={}}h(re,I);var se=[];function ue(e){w(e.g,function(e,n){this.g.hasOwnProperty(n)&&W(e)},e),e.g={}}re.prototype.N=function(){re.aa.N.call(this),ue(this)},re.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};
1var le=a.JSON.stringify,ce=a.JSON.parse,he=class{stringify(e){return a.JSON.stringify(e,void 0)}parse(e){return a.JSON.parse(e,void 0)}};function de(){}function ge(e){return e.h||(e.h=e.i())}function pe(){}de.prototype.h=null;var me={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function fe(){P.call(this,"d")}function ve(){P.call(this,"c")}h(fe,P),h(ve,P);var we={},ye=null;function be(){return ye=ye||new ee}function Se(e){P.call(this,we.La,e)}function Ce(e){const n=be();ne(n,new Se(n))}function Le(e,n){P.call(this,we.STAT_EVENT,e),this.stat=n}function Te(e){const n=be();ne(n,new Le(n,e))}function Ee(e,n){P.call(this,we.Ma,e),this.size=n}function ke(e,n){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){e()},n)}function De(){this.g=!0}function xe(e,n,t,i){e.info(function(){return"XMLHTTP TEXT ("+n+"): "+function(e,n){if(!e.g)return n;if(!n)return null;try{var t=JSON.parse(n);if(t)for(e=0;e<t.length;e++)if(Array.isArray(t[e])){var i=t[e];if(!(2>i.length)){var a=i[1];if(Array.isArray(a)&&!(1>a.length)){var o=a[0];if("noop"!=o&&"stop"!=o&&"close"!=o)for(var r=1;r<a.length;r++)a[r]=""}}}return le(t)}catch(s){return n}}(e,t)+(i?" "+i:"")})}we.La="serverreachability",h(Se,P),we.STAT_EVENT="statevent",h(Le,P),we.Ma="timingevent",h(Ee,P),De.prototype.xa=function(){this.g=!1},De.prototype.info=function(){};var Ae,Ye={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},_e={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function Ie(){}function Pe(e,n,t,i){this.j=e,this.i=n,this.l=t,this.R=i||1,this.U=new re(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new Ne}function Ne(){this.i=null,this.g="",this.h=!1}h(Ie,de),Ie.prototype.g=function(){return new XMLHttpRequest},Ie.prototype.i=function(){return{}},Ae=new Ie;var Me={},Ze={};function Je(e,n,t){e.L=1,e.v=cn(on(n)),e.m=t,e.P=!0,Be(e,null)}function Be(e,n){e.F=Date.now(),Xe(e),e.A=on(e.v);var t=e.A,i=e.R;Array.isArray(i)||(i=[String(i)]),Ln(t.i,"t",i),e.C=0,t=e.j.J,e.h=new Ne,e.g=yt(e.j,t?n:null,!e.m),0<e.O&&(e.M=new oe(l(e.Y,e,e.g),e.O)),n=e.U,t=e.g,i=e.ca;var a="readystatechange";Array.isArray(a)||(a&&(se[0]=a.toString()),a=se);for(var o=0;o<a.length;o++){var r=K(t,a[o],i||n.handleEvent,!1,n.h||n);if(!r)break;n.g[r.key]=r}n=e.H?y(e.H):{},e.m?(e.u||(e.u="POST"),n["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,n)):(e.u="GET",e.g.ea(e.A,e.u,null,n)),Ce(),function(e,n,t,i,a,o){e.info(function(){if(e.g)if(o)for(var r="",s=o.split("&"),u=0;u<s.length;u++){var l=s[u].split("=");if(1<l.length){var c=l[0];l=l[1];var h=c.split("_");r=2<=h.length&&"type"==h[1]?r+(c+"=")+l+"&":r+(c+"=redacted&")}}else r=null;else r=o;return"XMLHTTP REQ ("+i+") [attempt "+a+"]: "+n+"\n"+t+"\n"+r})}(e.i,e.u,e.A,e.l,e.R,e.m)}function Re(e){return!!e.g&&("GET"==e.u&&2!=e.L&&e.j.Ca)}function Fe(e,n){var t=e.C,i=n.indexOf("\n",t);return-1==i?Ze:(t=Number(n.substring(t,i)),isNaN(t)?Me:(i+=1)+t>n.length?Ze:(n=n.slice(i,i+t),e.C=i+t,n))}function Xe(e){e.S=Date.now()+e.I,He(e,e.I)}function He(e,n){if(null!=e.B)throw Error("WatchDog timer not null");e.B=ke(l(e.ba,e),n)}function Ge(e){e.B&&(a.clearTimeout(e.B),e.B=null)}function Oe(e){0==e.j.G||e.J||ot(e.j,e)}function Qe(e){Ge(e);var n=e.M;n&&"function"==typeof n.ma&&n.ma(),e.M=null,ue(e.U),e.g&&(n=e.g,e.g=null,n.abort(),n.ma())}function Ke(e,n){try{var t=e.j;if(0!=t.G&&(t.g==e||$e(t.h,e)))if(!e.K&&$e(t.h,e)&&3==t.G){try{var i=t.Da.g.parse(n)}catch(c){i=null}if(Array.isArray(i)&&3==i.length){var a=i;if(0==a[0]){e:if(!t.u){if(t.g){if(!(t.g.F+3e3<e.F))break e;at(t),Wn(t)}nt(t),Te(18)}}else t.za=a[1],0<t.za-t.T&&37500>a[2]&&t.F&&0==t.v&&!t.C&&(t.C=ke(l(t.Za,t),6e3));if(1>=ze(t.h)&&t.ca){try{t.ca()}catch(c){}t.ca=void 0}}else st(t,11)}else if((e.K||t.g==e)&&at(t),!p(n))for(a=t.Da.g.parse(n),n=0;n<a.length;n++){let l=a[n];if(t.T=l[0],l=l[1],2==t.G)if("c"==l[0]){t.K=l[1],t.ia=l[2];const n=l[3];null!=n&&(t.la=n,t.j.info("VER="+t.la));const a=l[4];null!=a&&(t.Aa=a,t.j.info("SVER="+t.Aa));const c=l[5];null!=c&&"number"==typeof c&&0<c&&(i=1.5*c,t.L=i,t.j.info("backChannelRequestTimeoutMs_="+i)),i=t;const h=e.g;if(h){const e=h.g?h.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(e){var o=i.h;o.g||-1==e.indexOf("spdy")&&-1==e.indexOf("quic")&&-1==e.indexOf("h2")||(o.j=o.l,o.g=new Set,o.h&&(Ve(o,o.h),o.h=null))}if(i.D){const e=h.g?h.g.getResponseHeader("X-HTTP-Session-Id"):null;e&&(i.ya=e,ln(i.I,i.D,e))}}t.G=3,t.l&&t.l.ua(),t.ba&&(t.R=Date.now()-e.F,t.j.info("Handshake RTT: "+t.R+"ms"));var r=e;if((i=t).qa=wt(i,i.J?i.ia:null,i.W),r.K){qe(i.h,r);var s=r,u=i.L;u&&(s.I=u),s.B&&(Ge(s),Xe(s)),i.g=r}else et(i);0<t.i.length&&zn(t)}else"stop"!=l[0]&&"close"!=l[0]||st(t,7);else 3==t.G&&("stop"==l[0]||"close"==l[0]?"stop"==l[0]?st(t,7):jn(t):"noop"!=l[0]&&t.l&&t.l.ta(l),t.v=0)}Ce()}catch(c){}}Pe.prototype.ca=function(e){e=e.target;const n=this.M;n&&3==Gn(e)?n.j():this.Y(e)},Pe.prototype.Y=function(e){try{if(e==this.g)e:{const d=Gn(this.g);var n=this.g.Ba();this.g.Z();if(!(3>d)&&(3!=d||this.g&&(this.h.h||this.g.oa()||On(this.g)))){this.J||4!=d||7==n||Ce(),Ge(this);var t=this.g.Z();this.X=t;n:if(Re(this)){var i=On(this.g);e="";var o=i.length,r=4==Gn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Qe(this),Oe(this);var s="";break n}this.h.i=new a.TextDecoder}for(n=0;n<o;n++)this.h.h=!0,e+=this.h.i.decode(i[n],{stream:!(r&&n==o-1)});i.length=0,this.h.g+=e,this.C=0,s=this.h.g}else s=this.g.oa();if(this.o=200==t,function(e,n,t,i,a,o,r){e.info(function(){return"XMLHTTP RESP ("+i+") [ attempt "+a+"]: "+n+"\n"+t+"\n"+o+" "+r})}(this.i,this.u,this.A,this.l,this.R,d,t),this.o){if(this.T&&!this.K){n:{if(this.g){var u,l=this.g;if((u=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!p(u)){var c=u;break n}}c=null}if(!(t=c)){this.o=!1,this.s=3,Te(12),Qe(this),Oe(this);break e}xe(this.i,this.l,t,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,Ke(this,t)}if(this.P){let e;for(t=!0;!this.J&&this.C<s.length;){if(e=Fe(this,s),e==Ze){4==d&&(this.s=4,Te(14),t=!1),xe(this.i,this.l,null,"[Incomplete Response]");break}if(e==Me){this.s=4,Te(15),xe(this.i,this.l,s,"[Invalid Chunk]"),t=!1;break}xe(this.i,this.l,e,null),Ke(this,e)}if(Re(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=d||0!=s.length||this.h.h||(this.s=1,Te(16),t=!1),this.o=this.o&&t,t){if(0<s.length&&!this.W){this.W=!0;var h=this.j;h.g==this&&h.ba&&!h.M&&(h.j.info("Great, no buffering proxy detected. Bytes received: "+s.length),tt(h),h.M=!0,Te(11))}}else xe(this.i,this.l,s,"[Invalid Chunked Response]"),Qe(this),Oe(this)}else xe(this.i,this.l,s,null),Ke(this,s);4==d&&Qe(this),this.o&&!this.J&&(4==d?ot(this.j,this):(this.o=!1,Xe(this)))}else(function(e){const n={};e=(e.g&&2<=Gn(e)&&e.g.getAllResponseHeaders()||"").split("\r\n");for(let i=0;i<e.length;i++){if(p(e[i]))continue;var t=C(e[i]);const a=t[0];
1if("string"!=typeof(t=t[1]))continue;t=t.trim();const o=n[a]||[];n[a]=o,o.push(t)}!function(e,n){for(const t in e)n.call(void 0,e[t],t,e)}(n,function(e){return e.join(", ")})})(this.g),400==t&&0<s.indexOf("Unknown SID")?(this.s=3,Te(12)):(this.s=0,Te(13)),Qe(this),Oe(this)}}}catch(d){}},Pe.prototype.cancel=function(){this.J=!0,Qe(this)},Pe.prototype.ba=function(){this.B=null;const e=Date.now();0<=e-this.S?(function(e,n){e.info(function(){return"TIMEOUT: "+n})}(this.i,this.A),2!=this.L&&(Ce(),Te(17)),Qe(this),this.s=2,Oe(this)):He(this,this.S-e)};var je=class{constructor(e,n){this.g=e,this.map=n}};function We(e){this.l=e||10,a.PerformanceNavigationTiming?e=0<(e=a.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):e=!!(a.chrome&&a.chrome.loadTimes&&a.chrome.loadTimes()&&a.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function Ue(e){return!!e.h||!!e.g&&e.g.size>=e.j}function ze(e){return e.h?1:e.g?e.g.size:0}function $e(e,n){return e.h?e.h==n:!!e.g&&e.g.has(n)}function Ve(e,n){e.g?e.g.add(n):e.h=n}function qe(e,n){e.h&&e.h==n?e.h=null:e.g&&e.g.has(n)&&e.g.delete(n)}function en(e){if(null!=e.h)return e.i.concat(e.h.D);if(null!=e.g&&0!==e.g.size){let n=e.i;for(const t of e.g.values())n=n.concat(t.D);return n}return d(e.i)}function nn(e,n){if(e.forEach&&"function"==typeof e.forEach)e.forEach(n,void 0);else if(o(e)||"string"==typeof e)Array.prototype.forEach.call(e,n,void 0);else for(var t=function(e){if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(o(e)||"string"==typeof e){var n=[];e=e.length;for(var t=0;t<e;t++)n.push(t);return n}n=[],t=0;for(const i in e)n[t++]=i;return n}}}(e),i=function(e){if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(o(e)){for(var n=[],t=e.length,i=0;i<t;i++)n.push(e[i]);return n}for(i in n=[],t=0,e)n[t++]=e[i];return n}(e),a=i.length,r=0;r<a;r++)n.call(void 0,i[r],t&&t[r],e)}We.prototype.cancel=function(){if(this.i=en(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const e of this.g.values())e.cancel();this.g.clear()}};var tn=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function an(e){if(this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof an){this.h=e.h,rn(this,e.j),this.o=e.o,this.g=e.g,sn(this,e.s),this.l=e.l;var n=e.i,t=new yn;t.i=n.i,n.g&&(t.g=new Map(n.g),t.h=n.h),un(this,t),this.m=e.m}else e&&(n=String(e).match(tn))?(this.h=!1,rn(this,n[1]||"",!0),this.o=hn(n[2]||""),this.g=hn(n[3]||"",!0),sn(this,n[4]),this.l=hn(n[5]||"",!0),un(this,n[6]||"",!0),this.m=hn(n[7]||"")):(this.h=!1,this.i=new yn(null,this.h))}function on(e){return new an(e)}function rn(e,n,t){e.j=t?hn(n,!0):n,e.j&&(e.j=e.j.replace(/:$/,""))}function sn(e,n){if(n){if(n=Number(n),isNaN(n)||0>n)throw Error("Bad port number "+n);e.s=n}else e.s=null}
1function un(e,n,t){n instanceof yn?(e.i=n,function(e,n){n&&!e.j&&(bn(e),e.i=null,e.g.forEach(function(e,n){var t=n.toLowerCase();n!=t&&(Sn(this,n),Ln(this,t,e))},e)),e.j=n}(e.i,e.h)):(t||(n=dn(n,vn)),e.i=new yn(n,e.h))}function ln(e,n,t){e.i.set(n,t)}function cn(e){return ln(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function hn(e,n){return e?n?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function dn(e,n,t){return"string"==typeof e?(e=encodeURI(e).replace(n,gn),t&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function gn(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}an.prototype.toString=function(){var e=[],n=this.j;n&&e.push(dn(n,pn,!0),":");var t=this.g;return(t||"file"==n)&&(e.push("//"),(n=this.o)&&e.push(dn(n,pn,!0),"@"),e.push(encodeURIComponent(String(t)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(t=this.s)&&e.push(":",String(t))),(t=this.l)&&(this.g&&"/"!=t.charAt(0)&&e.push("/"),e.push(dn(t,"/"==t.charAt(0)?fn:mn,!0))),(t=this.i.toString())&&e.push("?",t),(t=this.m)&&e.push("#",dn(t,wn)),e.join("")};var pn=/[#\/\?@]/g,mn=/[#\?:]/g,fn=/[#\?]/g,vn=/[#\?@]/g,wn=/#/g;function yn(e,n){this.h=this.g=null,this.i=e||null,this.j=!!n}function bn(e){e.g||(e.g=new Map,e.h=0,e.i&&function(e,n){if(e){e=e.split("&");for(var t=0;t<e.length;t++){var i=e[t].indexOf("="),a=null;if(0<=i){var o=e[t].substring(0,i);a=e[t].substring(i+1)}else o=e[t];n(o,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}(e.i,function(n,t){e.add(decodeURIComponent(n.replace(/\+/g," ")),t)}))}function Sn(e,n){bn(e),n=Tn(e,n),e.g.has(n)&&(e.i=null,e.h-=e.g.get(n).length,e.g.delete(n))}function Cn(e,n){return bn(e),n=Tn(e,n),e.g.has(n)}function Ln(e,n,t){Sn(e,n),0<t.length&&(e.i=null,e.g.set(Tn(e,n),d(t)),e.h+=t.length)}function Tn(e,n){return n=String(n),e.j&&(n=n.toLowerCase()),n}function En(e,n,t,i,a){try{a&&(a.onload=null,a.onerror=null,a.onabort=null,a.ontimeout=null),i(t)}catch(o){}}function kn(){this.g=new he}function Dn(e,n,t){const i=t||"";try{nn(e,function(e,t){let a=e;r(e)&&(a=le(e)),n.push(i+t+"="+encodeURIComponent(a))})}catch(a){throw n.push(i+"type="+encodeURIComponent("_badmap")),a}}function xn(e){this.l=e.Ub||null,this.j=e.eb||!1}function An(e,n){ee.call(this),this.D=e,this.o=n,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Yn(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function _n(e){e.readyState=4,e.l=null,e.j=null,e.v=null,In(e)}function In(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Pn(e){let n="";return w(e,function(e,t){n+=t,n+=":",n+=e,n+="\r\n"}),n}function Nn(e,n,t){e:{for(i in t){var i=!1;break e}i=!0}i||(t=Pn(t),"string"==typeof e?null!=t&&encodeURIComponent(String(t)):ln(e,n,t))}function Mn(e){ee.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=yn.prototype).add=function(e,n){bn(this),this.i=null,e=Tn(this,e);var t=this.g.get(e);return t||this.g.set(e,t=[]),t.push(n),this.h+=1,this},e.forEach=function(e,n){bn(this),this.g.forEach(function(t,i){t.forEach(function(t){e.call(n,t,i,this)},this)},this)},e.na=function(){bn(this);const e=Array.from(this.g.values()),n=Array.from(this.g.keys()),t=[];for(let i=0;i<n.length;i++){const a=e[i];for(let e=0;e<a.length;e++)t.push(n[i])}return t},e.V=function(e){bn(this);let n=[];if("string"==typeof e)Cn(this,e)&&(n=n.concat(this.g.get(Tn(this,e))));else{e=Array.from(this.g.values());for(let t=0;t<e.length;t++)n=n.concat(e[t])}return n},e.set=function(e,n){return bn(this),this.i=null,Cn(this,e=Tn(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[n]),this.h+=1,this},e.get=function(e,n){return e&&0<(e=this.V(e)).length?String(e[0]):n},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";const e=[],n=Array.from(this.g.keys());for(var t=0;t<n.length;t++){var i=n[t];const o=encodeURIComponent(String(i)),r=this.V(i);for(i=0;i<r.length;i++){var a=o;""!==r[i]&&(a+="="+encodeURIComponent(String(r[i]))),e.push(a)}}return this.i=e.join("&")},h(xn,de),xn.prototype.g=function(){return new An(this.l,this.j)},xn.prototype.i=function(e){return function(){return e}}({}),h(An,ee),(e=An.prototype).open=function(e,n){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=n,this.readyState=1,In(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const n={headers:this.u,method:this.B,credentials:this.m,cache:void 0};
vendor: 4,354 bytes, line 1
1e&&(n.body=e),(this.D||a).fetch(new Request(this.A,n)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,_n(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,In(this)),this.g&&(this.readyState=3,In(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==a.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Yn(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){if(this.g){if(this.o&&e.value)this.response.push(e.value);else if(!this.o){var n=e.value?e.value:new Uint8Array(0);(n=this.v.decode(n,{stream:!e.done}))&&(this.response=this.responseText+=n)}e.done?_n(this):In(this),3==this.readyState&&Yn(this)}},e.Ra=function(e){this.g&&(this.response=this.responseText=e,_n(this))},e.Qa=function(e){this.g&&(this.response=e,_n(this))},e.ga=function(){this.g&&_n(this)},e.setRequestHeader=function(e,n){this.u.append(e,n)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";const e=[],n=this.h.entries();for(var t=n.next();!t.done;)t=t.value,e.push(t[0]+": "+t[1]),t=n.next();return e.join("\r\n")},Object.defineProperty(An.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),h(Mn,ee);var Zn=/^https?$/i,Jn=["POST","PUT"];function Bn(e,n){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=n,e.m=5,Rn(e),Xn(e)}function Rn(e){e.A||(e.A=!0,ne(e,"complete"),ne(e,"error"))}function Fn(e){if(e.h&&void 0!==i&&(!e.v[1]||4!=Gn(e)||2!=e.Z()))if(e.u&&4==Gn(e))ie(e.Ea,0,e);else if(ne(e,"readystatechange"),4==Gn(e)){e.h=!1;try{const i=e.Z();e:switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var n=!0;break e;default:n=!1}var t;if(!(t=n)){var o;if(o=0===i){var r=String(e.D).match(tn)[1]||null;!r&&a.self&&a.self.location&&(r=a.self.location.protocol.slice(0,-1)),o=!Zn.test(r?r.toLowerCase():"")}t=o}if(t)ne(e,"complete"),ne(e,"success");else{e.m=6;try{var s=2<Gn(e)?e.g.statusText:""}catch(u){s=""}e.l=s+" ["+e.Z()+"]",Rn(e)}}finally{Xn(e)}}}function Xn(e,n){if(e.g){Hn(e);const i=e.g,a=e.v[0]?()=>{}:null;e.g=null,e.v=null,n||ne(e,"ready");try{i.onreadystatechange=a}catch(t){}}}function Hn(e){e.I&&(a.clearTimeout(e.I),e.I=null)}function Gn(e){return e.g?e.g.readyState:0}function On(e){try{if(!e.g)return null;if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}return null}catch(n){return null}}function Qn(e,n,t){return t&&t.internalChannelParams&&t.internalChannelParams[e]||n}function Kn(e){this.Aa=0,this.i=[],this.j=new De,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Qn("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Qn("baseRetryDelayMs",5e3,e),this.cb=Qn("retryDelaySeedMs",1e4,e),this.Wa=Qn("forwardChannelMaxRetries",2,e),this.wa=Qn("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new We(e&&e.concurrentRequestLimit),this.Da=new kn,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function jn(e){if(Un(e),3==e.G){var n=e.U++,t=on(e.I);if(ln(t,"SID",e.K),ln(t,"RID",n),ln(t,"TYPE","terminate"),Vn(e,t),(n=new Pe
1(e,e.j,n)).L=2,n.v=cn(on(t)),t=!1,a.navigator&&a.navigator.sendBeacon)try{t=a.navigator.sendBeacon(n.v.toString(),"")}catch(i){}!t&&a.Image&&((new Image).src=n.v,t=!0),t||(n.g=yt(n.j,null),n.g.ea(n.v)),n.F=Date.now(),Xe(n)}vt(e)}function Wn(e){e.g&&(tt(e),e.g.cancel(),e.g=null)}function Un(e){Wn(e),e.u&&(a.clearTimeout(e.u),e.u=null),at(e),e.h.cancel(),e.s&&("number"==typeof e.s&&a.clearTimeout(e.s),e.s=null)}function zn(e){if(!Ue(e.h)&&!e.s){e.s=!0;var n=e.Ga;D||Y(),x||(D(),x=!0),A.add(n,e),e.B=0}}function $n(e,n){var t;t=n?n.l:e.U++;const i=on(e.I);ln(i,"SID",e.K),ln(i,"RID",t),ln(i,"AID",e.T),Vn(e,i),e.m&&e.o&&Nn(i,e.m,e.o),t=new Pe(e,e.j,t,e.B+1),null===e.m&&(t.H=e.o),n&&(e.i=n.D.concat(e.i)),n=qn(e,t,1e3),t.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),Ve(e.h,t),Je(t,i,n)}function Vn(e,n){e.H&&w(e.H,function(e,t){ln(n,t,e)}),e.l&&nn({},function(e,t){ln(n,t,e)})}function qn(e,n,t){t=Math.min(e.i.length,t);var i=e.l?l(e.l.Na,e.l,e):null;e:{var a=e.i;let n=-1;for(;;){const e=["count="+t];-1==n?0<t?(n=a[0].g,e.push("ofs="+n)):n=0:e.push("ofs="+n);let r=!0;for(let s=0;s<t;s++){let t=a[s].g;const u=a[s].map;if(t-=n,0>t)n=Math.max(0,a[s].g-100),r=!1;else try{Dn(u,e,"req"+t+"_")}catch(o){i&&i(u)}}if(r){i=e.join("&");break e}}}return e=e.i.splice(0,t),n.D=e,i}function et(e){if(!e.g&&!e.u){e.Y=1;var n=e.Fa;D||Y(),x||(D(),x=!0),A.add(n,e),e.v=0}}function nt(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=ke(l(e.Fa,e),rt(e,e.v)),e.v++,!0)}function tt(e){null!=e.A&&(a.clearTimeout(e.A),e.A=null)}function it(e){e.g=new Pe(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var n=on(e.qa);ln(n,"RID","rpc"),ln(n,"SID",e.K),ln(n,"AID",e.T),ln(n,"CI",e.F?"0":"1"),!e.F&&e.ja&&ln(n,"TO",e.ja),ln(n,"TYPE","xmlhttp"),Vn(e,n),e.m&&e.o&&Nn(n,e.m,e.o),e.L&&(e.g.I=e.L);var t=e.g;e=e.ia,t.L=1,t.v=cn(on(n)),t.m=null,t.P=!0,Be(t,e)}function at(e){null!=e.C&&(a.clearTimeout(e.C),e.C=null)}function ot(e,n){var t=null;if(e.g==n){at(e),tt(e),e.g=null;var i=2}else{if(!$e(e.h,n))return;t=n.D,qe(e.h,n),i=1}if(0!=e.G)if(n.o)if(1==i){t=n.m?n.m.length:0,n=Date.now()-n.F;var a=e.B;ne(i=be(),new Ee(i,t)),zn(e)}else et(e);else if(3==(a=n.s)||0==a&&0<n.X||!(1==i&&function(e,n){return!(ze(e.h)>=e.h.j-(e.s?1:0)||(e.s?(e.i=n.D.concat(e.i),0):1==e.G||2==e.G||e.B>=(e.Va?0:e.Wa)||(e.s=ke(l(e.Ga,e,n),rt(e,e.B)),e.B++,0)))}(e,n)||2==i&&nt(e)))switch(t&&0<t.length&&(n=e.h,n.i=n.i.concat(t)),a){case 1:st(e,5);break;case 4:st(e,10);break;case 3:st(e,6);break;default:st(e,2)}}function rt(e,n){let t=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(t*=2),t*n}function st(e,n){if(e.j.info("Error code "+n),2==n){var t=l(e.fb,e),i=e.Xa;const n=!i;i=new an(i||"//www.google.com/images/cleardot.gif"),a.location&&"http"==a.location.protocol||rn(i,"https"),cn(i),n?function(e,n){const t=new De;if(a.Image){const i=new Image;i.onload=c(En,t,"TestLoadImage: loaded",!0,n,i),i.onerror=c(En,t,"TestLoadImage: error",!1,n,i),i.onabort=c(En,t,"TestLoadImage: abort",!1,n,i),i.ontimeout=c(En,t,"TestLoadImage: timeout",!1,n,i),a.setTimeout(function(){i.ontimeout&&i.ontimeout()},1e4),i.src=e}else n(!1)}
1(i.toString(),t):function(e,n){new De;const t=new AbortController,i=setTimeout(()=>{t.abort(),En(0,0,!1,n)},1e4);fetch(e,{signal:t.signal}).then(e=>{clearTimeout(i),e.ok?En(0,0,!0,n):En(0,0,!1,n)}).catch(()=>{clearTimeout(i),En(0,0,!1,n)})}(i.toString(),t)}else Te(2);e.G=0,e.l&&e.l.sa(n),vt(e),Un(e)}function vt(e){if(e.G=0,e.ka=[],e.l){const n=en(e.h);0==n.length&&0==e.i.length||(g(e.ka,n),g(e.ka,e.i),e.h.i.length=0,d(e.i),e.i.length=0),e.l.ra()}}function wt(e,n,t){var i=t instanceof an?on(t):new an(t);if(""!=i.g)n&&(i.g=n+"."+i.g),sn(i,i.s);else{var o=a.location;i=o.protocol,n=n?n+"."+o.hostname:o.hostname,o=+o.port;var r=new an(null);i&&rn(r,i),n&&(r.g=n),o&&sn(r,o),t&&(r.l=t),i=r}return t=e.D,n=e.ya,t&&n&&ln(i,t,n),ln(i,"VER",e.la),Vn(e,i),i}function yt(e,n,t){if(n&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(n=e.Ca&&!e.pa?new Mn(new xn({eb:t})):new Mn(e.pa)).Ha(e.J),n}function bt(){}function St(){}function Ct(e,n){ee.call(this),this.g=new Kn(n),this.l=e,this.h=n&&n.messageUrlParams||null,e=n&&n.messageHeaders||null,n&&n.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=n&&n.initMessageHeaders||null,n&&n.messageContentType&&(e?e["X-WebChannel-Content-Type"]=n.messageContentType:e={"X-WebChannel-Content-Type":n.messageContentType}),n&&n.va&&(e?e["X-WebChannel-Client-Profile"]=n.va:e={"X-WebChannel-Client-Profile":n.va}),this.g.S=e,(e=n&&n.Sb)&&!p(e)&&(this.g.m=e),this.v=n&&n.supportsCrossDomainXhr||!1,this.u=n&&n.sendRawJson||!1,(n=n&&n.httpSessionIdParam)&&!p(n)&&(this.g.D=n,null!==(e=this.h)&&n in e&&(n in(e=this.h)&&delete e[n])),this.j=new Et(this)}function Lt(e){fe.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var n=e.__sm__;if(n){e:{for(const t in n){e=t;break e}e=void 0}(this.i=e)&&(e=this.i,n=null!==n&&e in n?n[e]:void 0),this.data=n}else this.data=e}function Tt(){ve.call(this),this.status=1}function Et(e){this.g=e}(e=Mn.prototype).Ha=function(e){this.J=e},e.ea=function(e,n,t,i){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);n=n?n.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=this.o?this.o.g():Ae.g(),this.v=this.o?ge(this.o):ge(Ae),this.g.onreadystatechange=l(this.Ea,this);try{this.B=!0,this.g.open(n,String(e),!0),this.B=!1}catch(r){return void Bn(this,r)}if(e=t||"",t=new Map(this.headers),i)if(Object.getPrototypeOf(i)===Object.prototype)for(var o in i)t.set(o,i[o]);else{if("function"!=typeof i.keys||"function"!=typeof i.get)throw Error("Unknown input type for opt_headers: "+String(i));for(const e of i.keys())t.set(e,i.get(e))}i=Array.from(t.keys()).find(e=>"content-type"==e.toLowerCase()),o=a.FormData&&e instanceof a.FormData,!(0<=Array.prototype.indexOf.call(Jn,n,void 0))||i||o||t.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[a,s]of t)this.g.setRequestHeader(a,s);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Hn(this),this.u=!0,this.g.send(e),this.u=!1}catch(r){Bn(this,r)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,ne(this,"complete"),ne(this,"abort"),Xn(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Xn(this,!0)),Mn.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?Fn(this):this.bb())},e.bb=function(){Fn(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<Gn(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){if(this.g){var n=this.g.responseText;return e&&0==n.indexOf(e)&&(n=n.substring(e.length)),ce(n)}},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Kn.prototype).la=8,e.G=1,e.connect=function(e,n,t,i){Te(0),this.W=e,this.H=n||{},t&&void 0!==i&&(this.H.OSID=t,this.H.OAID=i),this.F=this.X,this.I=wt(this,null,this.W),zn(this)},e.Ga=function(e){if(this.s)if(this.s=null,1==this.G){if(!e){this.U=Math.floor(1e5*Math.random()),e=this.U++;
1const a=new Pe(this,this.j,e);let o=this.o;if(this.S&&(o?(o=y(o),S(o,this.S)):o=this.S),null!==this.m||this.O||(a.H=o,o=null),this.P)e:{for(var n=0,t=0;t<this.i.length;t++){var i=this.i[t];if(void 0===(i="__data__"in i.map&&"string"==typeof(i=i.map.__data__)?i.length:void 0))break;if(4096<(n+=i)){n=t;break e}if(4096===n||t===this.i.length-1){n=t+1;break e}}n=1e3}else n=1e3;n=qn(this,a,n),ln(t=on(this.I),"RID",e),ln(t,"CVER",22),this.D&&ln(t,"X-HTTP-Session-Id",this.D),Vn(this,t),o&&(this.O?n="headers="+encodeURIComponent(String(Pn(o)))+"&"+n:this.m&&Nn(t,this.m,o)),Ve(this.h,a),this.Ua&&ln(t,"TYPE","init"),this.P?(ln(t,"$req",n),ln(t,"SID","null"),a.T=!0,Je(a,t,null)):Je(a,t,n),this.G=2}}else 3==this.G&&(e?$n(this,e):0==this.i.length||Ue(this.h)||$n(this))},e.Fa=function(){if(this.u=null,it(this),this.ba&&!(this.M||null==this.g||0>=this.R)){var e=2*this.R;this.j.info("BP detection timer enabled: "+e),this.A=ke(l(this.ab,this),e)}},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,Te(10),Wn(this),it(this))},e.Za=function(){null!=this.C&&(this.C=null,Wn(this),nt(this),Te(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),Te(2)):(this.j.info("Failed to ping google.com"),Te(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=bt.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},St.prototype.g=function(e,n){return new Ct(e,n)},h(Ct,ee),Ct.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},Ct.prototype.close=function(){jn(this.g)},Ct.prototype.o=function(e){var n=this.g;if("string"==typeof e){var t={};t.__data__=e,e=t}else this.u&&((t={}).__data__=le(e),e=t);n.i.push(new je(n.Ya++,e)),3==n.G&&zn(n)},Ct.prototype.N=function(){this.g.l=null,delete this.j,jn(this.g),delete this.g,Ct.aa.N.call(this)},h(Lt,fe),h(Tt,ve),h(Et,bt),Et.prototype.ua=function(){ne(this.g,"a")},Et.prototype.ta=function(e){ne(this.g,new Lt(e))},Et.prototype.sa=function(e){ne(this.g,new Tt)},Et.prototype.ra=function(){ne(this.g,"b")},St.prototype.createWebChannel=St.prototype.g,Ct.prototype.send=Ct.prototype.o,Ct.prototype.open=Ct.prototype.m,Ct.prototype.close=Ct.prototype.close,mt=function(){return new St},pt=function(){return be()},gt=we,dt={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},Ye.NO_ERROR=0,Ye.TIMEOUT=8,Ye.HTTP_ERROR=6,ht=Ye,_e.COMPLETE="complete",ct=_e,pe.EventType=me,me.OPEN="a",me.CLOSE="b",me.ERROR="c",me.MESSAGE="d",ee.prototype.listen=ee.prototype.K,lt=pe,Mn.prototype.listenOnce=Mn.prototype.L,Mn.prototype.getLastError=Mn.prototype.Ka,Mn.prototype.getLastErrorCode=Mn.prototype.Ba,Mn.prototype.getStatus=Mn.prototype.Z,Mn.prototype.getResponseJson=Mn.prototype.Oa,Mn.prototype.getResponseText=Mn.prototype.oa,Mn.prototype.send=Mn.prototype.ea,Mn.prototype.setWithCredentials=Mn.prototype.Ha,ut=Mn}).apply(void 0!==ft?ft:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});const vt="@firebase/firestore";class wt{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}wt.UNAUTHENTICATED=new wt(null),wt.GOOGLE_CREDENTIALS=new wt("google-credentials-uid"),wt.FIRST_PARTY=new wt("first-party-uid"),wt.MOCK_USER=new wt("mock-user");let yt="10.14.0";const bt=new Fe("@firebase/firestore");function St(){return bt.logLevel}function Ct(e,...n){if(bt.logLevel<=Ne.DEBUG){const t=n.map(Et);bt.debug(`Firestore (${yt}): ${e}`,...t)}}function Lt(e,...n){if(bt.logLevel<=Ne.ERROR){const t=n.map(Et);bt.error(`Firestore (${yt}): ${e}`,...t)}}function Tt(e,...n){if(bt.logLevel<=Ne.WARN){const t=n.map(Et);bt.warn(`Firestore (${yt}): ${e}`,...t)}}function Et(e){if("string"==typeof e)return e;try{return n=e,JSON.stringify(n)}catch(t){return e}var n}function kt(e="Unexpected state"){const n=`FIRESTORE (${yt}) INTERNAL ASSERTION FAILED: `+e;throw Lt(n),new Error(n)}function Dt(e,n){e||kt()}function xt(e,n){return e}const At={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENT
1ED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Yt extends Se{constructor(e,n){super(e,n),this.code=e,this.message=n,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class _t{constructor(){this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}}class It{constructor(e,n){this.user=n,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class Pt{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,n){e.enqueueRetryable(()=>n(wt.UNAUTHENTICATED))}shutdown(){}}class Nt{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,n){this.changeListener=n,e.enqueueRetryable(()=>n(this.token.user))}shutdown(){this.changeListener=null}}class Mt{constructor(e){this.t=e,this.currentUser=wt.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,n){Dt(void 0===this.o);let t=this.i;const i=e=>this.i!==t?(t=this.i,n(e)):Promise.resolve();let a=new _t;this.o=()=>{this.i++,this.currentUser=this.u(),a.resolve(),a=new _t,e.enqueueRetryable(()=>i(this.currentUser))};const o=()=>{const n=a;e.enqueueRetryable(async()=>{await n.promise,await i(this.currentUser)})},r=e=>{Ct("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),o())};this.t.onInit(e=>r(e)),setTimeout(()=>{if(!this.auth){const e=this.t.getImmediate({optional:!0});e?r(e):(Ct("FirebaseAuthCredentialsProvider","Auth not yet detected"),a.resolve(),a=new _t)}},0),o()}getToken(){const e=this.i,n=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(n).then(n=>this.i!==e?(Ct("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):n?(Dt("string"==typeof n.accessToken),new It(n.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){const e=this.auth&&this.auth.getUid();return Dt(null===e||"string"==typeof e),new wt(e)}}class Zt{constructor(e,n,t){this.l=e,this.h=n,this.P=t,this.type="FirstParty",this.user=wt.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const e=this.T();return e&&this.I.set("Authorization",e),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class Jt{constructor(e,n,t){this.l=e,this.h=n,this.P=t}getToken(){return Promise.resolve(new Zt(this.l,this.h,this.P))}start(e,n){e.enqueueRetryable(()=>n(wt.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Bt{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&e.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class Rt{constructor(e){this.A=e,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(e,n){Dt(void 0===this.o);const t=e=>{null!=e.error&&Ct("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);const t=e.token!==this.R;return this.R=e.token,Ct("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?n(e.token):Promise.resolve()};this.o=n=>{e.enqueueRetryable(()=>t(n))};const i=e=>{Ct("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.A.onInit(e=>i(e)),setTimeout(()=>{if(!this.appCheck){const e=this.A.getImmediate({optional:!0});e?i(e):Ct("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}},0)}getToken(){const e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(Dt("string"==typeof e.token),this.R=e.token,new Bt(e.token)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Ft(e){const n="undefined"!=typeof self&&(self.crypto||self.msCrypto),t=new Uint8Array(e);if(n&&"function"==typeof n.getRandomValues)n.getRandomValues(t);else for(let i=0;i<e;
1i++)t[i]=Math.floor(256*Math.random());return t}class Xt{static newId(){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=62*Math.floor(256/62);let t="";for(;t.length<20;){const i=Ft(40);for(let a=0;a<i.length;++a)t.length<20&&i[a]<n&&(t+=e.charAt(i[a]%62))}return t}}function Ht(e,n){return e<n?-1:e>n?1:0}function Gt(e,n,t){return e.length===n.length&&e.every((e,i)=>t(e,n[i]))}class Ot{constructor(e,n){if(this.seconds=e,this.nanoseconds=n,n<0)throw new Yt(At.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+n);if(n>=1e9)throw new Yt(At.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+n);if(e<-62135596800)throw new Yt(At.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(e>=253402300800)throw new Yt(At.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}static now(){return Ot.fromMillis(Date.now())}static fromDate(e){return Ot.fromMillis(e.getTime())}static fromMillis(e){const n=Math.floor(e/1e3),t=Math.floor(1e6*(e-1e3*n));return new Ot(n,t)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?Ht(this.nanoseconds,e.nanoseconds):Ht(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const e=this.seconds- -62135596800;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class Qt{constructor(e){this.timestamp=e}static fromTimestamp(e){return new Qt(e)}static min(){return new Qt(new Ot(0,0))}static max(){return new Qt(new Ot(253402300799,999999999))}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class Kt{constructor(e,n,t){void 0===n?n=0:n>e.length&&kt(),void 0===t?t=e.length-n:t>e.length-n&&kt(),this.segments=e,this.offset=n,this.len=t}get length(){return this.len}isEqual(e){return 0===Kt.comparator(this,e)}child(e){const n=this.segments.slice(this.offset,this.limit());return e instanceof Kt?e.forEach(e=>{n.push(e)}):n.push(e),this.construct(n)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+e,this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let n=0;n<this.length;n++)if(this.get(n)!==e.get(n))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let n=0;n<this.length;n++)if(this.get(n)!==e.get(n))return!1;return!0}forEach(e){for(let n=this.offset,t=this.limit();n<t;n++)e(this.segments[n])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,n){const t=Math.min(e.length,n.length);for(let i=0;i<t;i++){const t=e.get(i),a=n.get(i);if(t<a)return-1;if(t>a)return 1}return e.length<n.length?-1:e.length>n.length?1:0}}class jt extends Kt{construct(e,n,t){return new jt(e,n,t)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){const n=[];for(const t of e){if(t.indexOf("//")>=0)throw new Yt(At.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);n.push(...t.split("/").filter(e=>e.length>0))}return new jt(n)}static emptyPath(){return new jt([])}}const Wt=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class Ut extends Kt{construct(e,n,t){return new Ut(e,n,t)}static isValidIdentifier(e){return Wt.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),Ut.isValidIdentifier(e)||(e="`"+e+"`"),e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new Ut(["__name__"])}static fromServerFormat(e){const n=[];let t="",i=0;const a=()=>
1{if(0===t.length)throw new Yt(At.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);n.push(t),t=""};let o=!1;for(;i<e.length;){const n=e[i];if("\\"===n){if(i+1===e.length)throw new Yt(At.INVALID_ARGUMENT,"Path has trailing escape character: "+e);const n=e[i+1];if("\\"!==n&&"."!==n&&"`"!==n)throw new Yt(At.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);t+=n,i+=2}else"`"===n?(o=!o,i++):"."!==n||o?(t+=n,i++):(a(),i++)}if(a(),o)throw new Yt(At.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new Ut(n)}static emptyPath(){return new Ut([])}}class zt{constructor(e){this.path=e}static fromPath(e){return new zt(jt.fromString(e))}static fromName(e){return new zt(jt.fromString(e).popFirst(5))}static empty(){return new zt(jt.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return this.path.length>=2&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===jt.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,n){return jt.comparator(e.path,n.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new zt(new jt(e.slice()))}}function $t(e){return new Vt(e.readTime,e.key,-1)}class Vt{constructor(e,n,t){this.readTime=e,this.documentKey=n,this.largestBatchId=t}static min(){return new Vt(Qt.min(),zt.empty(),-1)}static max(){return new Vt(Qt.max(),zt.empty(),-1)}}function qt(e,n){let t=e.readTime.compareTo(n.readTime);return 0!==t?t:(t=zt.comparator(e.documentKey,n.documentKey),0!==t?t:Ht(e.largestBatchId,n.largestBatchId))}class ei{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function ni(e){if(e.code!==At.FAILED_PRECONDITION||"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."!==e.message)throw e;Ct("LocalStore","Unexpectedly lost primary lease")}class ti{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(e,n){return this.callbackAttached&&kt(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(n,this.error):this.wrapSuccess(e,this.result):new ti((t,i)=>{this.nextCallback=n=>{this.wrapSuccess(e,n).next(t,i)},this.catchCallback=e=>{this.wrapFailure(n,e).next(t,i)}})}toPromise(){return new Promise((e,n)=>{this.next(e,n)})}wrapUserFunction(e){try{const n=e();return n instanceof ti?n:ti.resolve(n)}catch(n){return ti.reject(n)}}wrapSuccess(e,n){return e?this.wrapUserFunction(()=>e(n)):ti.resolve(n)}wrapFailure(e,n){return e?this.wrapUserFunction(()=>e(n)):ti.reject(n)}static resolve(e){return new ti((n,t)=>{n(e)})}static reject(e){return new ti((n,t)=>{t(e)})}static waitFor(e){return new ti((n,t)=>{let i=0,a=0,o=!1;e.forEach(e=>{++i,e.next(()=>{++a,o&&a===i&&n()},e=>t(e))}),o=!0,a===i&&n()})}static or(e){let n=ti.resolve(!1);for(const t of e)n=n.next(e=>e?ti.resolve(e):t());return n}static forEach(e,n){const t=[];return e.forEach((e,i)=>{t.push(n.call(this,e,i))}),this.waitFor(t)}static mapArray(e,n){return new ti((t,i)=>{const a=e.length,o=new Array(a);let r=0;for(let s=0;s<a;s++){const u=s;n(e[u]).next(e=>{o[u]=e,++r,r===a&&t(o)},e=>i(e))}})}static doWhile(e,n){return new ti((t,i)=>{const a=()=>{!0===e()?n().next(()=>{a()},i):t()};a()})}}function ii(e){return"IndexedDbTransactionError"===e.name}class ai{constructor(e,n){this.previousValue=e,n&&(n.sequenceNumberHandler=e=>this.ie(e),this.se=e=>n.writeSequenceNumber(e))}ie(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){const e=++this.previousValue;return this.se&&this.se(e),e}}function oi(e){return null==e}function ri(e){return 0===e&&1/e==-1/0}function si(e){let n=0;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&n++;return n}function ui(e,n){for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&n(t,e[t])}function li(e){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!1;return!0}ai.oe=-1;class ci{constructor(e,n){this.comparator=e,this.root=n||di.EMPTY}insert(e,n){return new ci(this.comparator,this.root.insert(e,n,this.comparator).copy(null,null,di.BLACK,null,
vendor: 4,485 bytes, line 1
1null))}remove(e){return new ci(this.comparator,this.root.remove(e,this.comparator).copy(null,null,di.BLACK,null,null))}get(e){let n=this.root;for(;!n.isEmpty();){const t=this.comparator(e,n.key);if(0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}indexOf(e){let n=0,t=this.root;for(;!t.isEmpty();){const i=this.comparator(e,t.key);if(0===i)return n+t.left.size;i<0?t=t.left:(n+=t.left.size+1,t=t.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(e){this.inorderTraversal((n,t)=>(e(n,t),!1))}toString(){const e=[];return this.inorderTraversal((n,t)=>(e.push(`${n}:${t}`),!1)),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new hi(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new hi(this.root,e,this.comparator,!1)}getReverseIterator(){return new hi(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new hi(this.root,e,this.comparator,!0)}}class hi{constructor(e,n,t,i){this.isReverse=i,this.nodeStack=[];let a=1;for(;!e.isEmpty();)if(a=n?t(e.key,n):1,n&&i&&(a*=-1),a<0)e=this.isReverse?e.left:e.right;else{if(0===a){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();const n={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return n}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class di{constructor(e,n,t,i,a){this.key=e,this.value=n,this.color=null!=t?t:di.RED,this.left=null!=i?i:di.EMPTY,this.right=null!=a?a:di.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,n,t,i,a){return new di(null!=e?e:this.key,null!=n?n:this.value,null!=t?t:this.color,null!=i?i:this.left,null!=a?a:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,n,t){let i=this;const a=t(e,i.key);return i=a<0?i.copy(null,null,null,i.left.insert(e,n,t),null):0===a?i.copy(null,n,null,null,null):i.copy(null,null,null,null,i.right.insert(e,n,t)),i.fixUp()}removeMin(){if(this.left.isEmpty())return di.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),e=e.copy(null,null,null,e.left.removeMin(),null),e.fixUp()}remove(e,n){let t,i=this;if(n(e,i.key)<0)i.left.isEmpty()||i.left.isRed()||i.left.left.isRed()||(i=i.moveRedLeft()),i=i.copy(null,null,null,i.left.remove(e,n),null);else{if(i.left.isRed()&&(i=i.rotateRight()),i.right.isEmpty()||i.right.isRed()||i.right.left.isRed()||(i=i.moveRedRight()),0===n(e,i.key)){if(i.right.isEmpty())return di.EMPTY;t=i.right.min(),i=i.copy(t.key,t.value,null,null,i.right.removeMin())}i=i.copy(null,null,null,null,i.right.remove(e,n))}return i.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e}rotateLeft(){const e=this.copy(null,null,di.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){const e=this.copy(null,null,di.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){const e=this.left.copy(null,null,!this.left.color,null,null),n=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,n)}checkMaxDepth(){const e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw kt();if(this.right.isRed())throw kt();const e=this.left.check();if(e!==this.right.check())throw kt();return e+(this.isRed()?0:1)}}
1di.EMPTY=null,di.RED=!0,di.BLACK=!1,di.EMPTY=new class{constructor(){this.size=0}get key(){throw kt()}get value(){throw kt()}get color(){throw kt()}get left(){throw kt()}get right(){throw kt()}copy(e,n,t,i,a){return this}insert(e,n,t){return new di(e,n)}remove(e,n){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class gi{constructor(e){this.comparator=e,this.data=new ci(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(e){this.data.inorderTraversal((n,t)=>(e(n),!1))}forEachInRange(e,n){const t=this.data.getIteratorFrom(e[0]);for(;t.hasNext();){const i=t.getNext();if(this.comparator(i.key,e[1])>=0)return;n(i.key)}}forEachWhile(e,n){let t;for(t=void 0!==n?this.data.getIteratorFrom(n):this.data.getIterator();t.hasNext();)if(!e(t.getNext().key))return}firstAfterOrEqual(e){const n=this.data.getIteratorFrom(e);return n.hasNext()?n.getNext().key:null}getIterator(){return new pi(this.data.getIterator())}getIteratorFrom(e){return new pi(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let n=this;return n.size<e.size&&(n=e,e=this),e.forEach(e=>{n=n.add(e)}),n}isEqual(e){if(!(e instanceof gi))return!1;if(this.size!==e.size)return!1;const n=this.data.getIterator(),t=e.data.getIterator();for(;n.hasNext();){const e=n.getNext().key,i=t.getNext().key;if(0!==this.comparator(e,i))return!1}return!0}toArray(){const e=[];return this.forEach(n=>{e.push(n)}),e}toString(){const e=[];return this.forEach(n=>e.push(n)),"SortedSet("+e.toString()+")"}copy(e){const n=new gi(this.comparator);return n.data=e,n}}class pi{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}class mi{constructor(e){this.fields=e,e.sort(Ut.comparator)}static empty(){return new mi([])}unionWith(e){let n=new gi(Ut.comparator);for(const t of this.fields)n=n.add(t);for(const t of e)n=n.add(t);return new mi(n.toArray())}covers(e){for(const n of this.fields)if(n.isPrefixOf(e))return!0;return!1}isEqual(e){return Gt(this.fields,e.fields,(e,n)=>e.isEqual(n))}}class fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class vi{constructor(e){this.binaryString=e}static fromBase64String(e){const n=function(e){try{return atob(e)}catch(n){throw"undefined"!=typeof DOMException&&n instanceof DOMException?new fi("Invalid base64 string: "+n):n}}(e);return new vi(n)}static fromUint8Array(e){const n=function(e){let n="";for(let t=0;t<e.length;++t)n+=String.fromCharCode(e[t]);return n}(e);return new vi(n)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){return function(e){const n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return n}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return Ht(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}vi.EMPTY_BYTE_STRING=new vi("");const wi=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function yi(e){if(Dt(!!e),"string"==typeof e){let n=0;const t=wi.exec(e);if(Dt(!!t),t[1]){let e=t[1];e=(e+"000000000").substr(0,9),n=Number(e)}const i=new Date(e);return{seconds:Math.floor(i.getTime()/1e3),nanos:n}}return{seconds:bi(e.seconds),nanos:bi(e.nanos)}}function bi(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function Si(e){return"string"==typeof e?vi.fromBase64String(e):vi.fromUint8Array(e)}function Ci(e){var n,t;return"server_timestamp"===(null===(t=((null===(n=null==e?void 0:e.mapValue)||void 0===n?void 0:n.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function Li(e){const n=e.mapValue.fields.__previous_value__;return Ci(n)?Li(n):n}function Ti(e){const n=yi(e.mapValue.fields.__local_write_time__.timestampValue);return new Ot(n.seconds,n.nanos)}class Ei{constructor(e,n,t,i,a,o,r,s,u){this.databaseId=e,this.appId=n,this.persistenceKey=t,this.host=i,this.ssl=a,this.forceLongPolling=o,this.autoDetectLongPolling=r,this.longPollingOptions=s,this.useFetchStreams=u}}class ki{constructor(e,n){this.projectId=e,this.database=n||"(default)"}static empty(){return new ki("","")}get isDefaultDatabase(){return"(default)"===this.database}isEqual(e){return e instanceof ki&&e.projectId===this.projectId&&e.database===this.database}}const Di={};function xi(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Ci(e)?4:function(e){return"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}(e)?9007199254740991:function(e){var n,t;return"__vector__"===(null===(t=((null===(n=null==e?void 0:e.mapValue)||void 0===n?void 0:n.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}(e)?10:11:kt()}function Ai(e,n){if(e===n)return!0;const t=xi(e);if(t!==xi(n))return!1;switch(t){case 0:case 9007199254740991:return!0;case 1:return e.booleanValue===n.booleanValue;case 4:return Ti(e).isEqual(Ti(n));case 3:return function(e,n){if("string"==typeof e.timestampValue&&"string"==typeof n.timestampValue&&e.timestampValue.length===n.timestampValue.length)return e.timestampValue===n.timestampValue;const t=yi(e.timestampValue),i=yi(n.timestampValue);return t.seconds===i.seconds&&t.nanos===i.nanos}(e,n);case 5:return e.stringValue===n.stringValue;case 6:return i=n,Si(e.bytesValue).isEqual(Si(i.bytesValue));case 7:return e.referenceValue===n.referenceValue;case 8:return function(e,n){return bi(e.geoPointValue.latitude)===bi(n.geoPointValue.latitude)&&bi(e.geoPointValue.longitude)===bi(n.geoPointValue.longitude)}(e,n);case 2:return function(e,n){if("integerValue"in e&&"integerValue"in n)return bi(e.integerValue)===bi(n.integerValue);if("doubleValue"in e&&"doubleValue"in n){const t=bi(e.doubleValue),i=bi(n.doubleValue);return t===i?ri(t)===ri(i):isNaN(t)&&isNaN(i)}return!1}(e,n);case 9:return Gt(e.arrayValue.values||[],n.arrayValue.values||[],Ai);case 10:case 11:return function(e,n){const t=e.mapValue.fields||{},i=n.mapValue.fields||{};if(si(t)!==si(i))return!1;for(const a in t)if(t.hasOwnProperty(a)&&(void 0===i[a]||!Ai(t[a
1],i[a])))return!1;return!0}(e,n);default:return kt()}var i}function Yi(e,n){return void 0!==(e.values||[]).find(e=>Ai(e,n))}function _i(e,n){if(e===n)return 0;const t=xi(e),i=xi(n);if(t!==i)return Ht(t,i);switch(t){case 0:case 9007199254740991:return 0;case 1:return Ht(e.booleanValue,n.booleanValue);case 2:return function(e,n){const t=bi(e.integerValue||e.doubleValue),i=bi(n.integerValue||n.doubleValue);return t<i?-1:t>i?1:t===i?0:isNaN(t)?isNaN(i)?0:-1:1}(e,n);case 3:return Ii(e.timestampValue,n.timestampValue);case 4:return Ii(Ti(e),Ti(n));case 5:return Ht(e.stringValue,n.stringValue);case 6:return function(e,n){const t=Si(e),i=Si(n);return t.compareTo(i)}(e.bytesValue,n.bytesValue);case 7:return function(e,n){const t=e.split("/"),i=n.split("/");for(let a=0;a<t.length&&a<i.length;a++){const e=Ht(t[a],i[a]);if(0!==e)return e}return Ht(t.length,i.length)}(e.referenceValue,n.referenceValue);case 8:return function(e,n){const t=Ht(bi(e.latitude),bi(n.latitude));return 0!==t?t:Ht(bi(e.longitude),bi(n.longitude))}(e.geoPointValue,n.geoPointValue);case 9:return Pi(e.arrayValue,n.arrayValue);case 10:return function(e,n){var t,i,a,o;const r=e.fields||{},s=n.fields||{},u=null===(t=r.value)||void 0===t?void 0:t.arrayValue,l=null===(i=s.value)||void 0===i?void 0:i.arrayValue,c=Ht((null===(a=null==u?void 0:u.values)||void 0===a?void 0:a.length)||0,(null===(o=null==l?void 0:l.values)||void 0===o?void 0:o.length)||0);return 0!==c?c:Pi(u,l)}(e.mapValue,n.mapValue);case 11:return function(e,n){if(e===Di&&n===Di)return 0;if(e===Di)return 1;if(n===Di)return-1;const t=e.fields||{},i=Object.keys(t),a=n.fields||{},o=Object.keys(a);i.sort(),o.sort();for(let r=0;r<i.length&&r<o.length;++r){const e=Ht(i[r],o[r]);if(0!==e)return e;const n=_i(t[i[r]],a[o[r]]);if(0!==n)return n}return Ht(i.length,o.length)}(e.mapValue,n.mapValue);default:throw kt()}}function Ii(e,n){if("string"==typeof e&&"string"==typeof n&&e.length===n.length)return Ht(e,n);const t=yi(e),i=yi(n),a=Ht(t.seconds,i.seconds);return 0!==a?a:Ht(t.nanos,i.nanos)}function Pi(e,n){const t=e.values||[],i=n.values||[];for(let a=0;a<t.length&&a<i.length;++a){const e=_i(t[a],i[a]);if(e)return e}return Ht(t.length,i.length)}function Ni(e){return Mi(e)}function Mi(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?function(e){const n=yi(e);return`time(${n.seconds},${n.nanos})`}(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?Si(e.bytesValue).toBase64():"referenceValue"in e?function(e){return zt.fromName(e).toString()}(e.referenceValue):"geoPointValue"in e?function(e){return`geo(${e.latitude},${e.longitude})`}(e.geoPointValue):"arrayValue"in e?function(e){let n="[",t=!0;for(const i of e.values||[])t?t=!1:n+=",",n+=Mi(i);return n+"]"}(e.arrayValue):"mapValue"in e?function(e){const n=Object.keys(e.fields||{}).sort();let t="{",i=!0;for(const a of n)i?i=!1:t+=",",t+=`${a}:${Mi(e.fields[a])}`;return t+"}"}(e.mapValue):kt()}function Zi(e){return!!e&&"integerValue"in e}function Ji(e){return!!e&&"arrayValue"in e}function Bi(e){return!!e&&"nullValue"in e}function Ri(e){return!!e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Fi(e){return!!e&&"mapValue"in e}function Xi(e){if(e.geoPointValue)return{geoPointValue:Object.assign({},e.geoPointValue)};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:Object.assign({},e.timestampValue)};if(e.mapValue){const n={mapValue:{fields:{}}};return ui(e.mapValue.fields,(e,t)=>n.mapValue.fields[e]=Xi(t)),n}if(e.arrayValue){const n={arrayValue:{values:[]}};for(let t=0;t<(e.arrayValue.values||[]).length;++t)n.arrayValue.values[t]=Xi(e.arrayValue.values[t]);return n}return Object.assign({},e)}class Hi{constructor(e){this.value=e}static empty(){return new Hi({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let n=this.value;for(let t=0;t<e.length-1;++t)if(n=(n.mapValue.fields||{})[e.get(t)],!Fi(n))return null;return n=(n.mapValue.fields||{})[e.lastSegment()],n||null}}set(e,n){this.getFieldsMap(e.popLast())[e.lastSegment()]=Xi(n)}setAll(e){let n=Ut.emptyPath(),t={},i=[];e.forEach((e,a)=>{if(!n.isImmediateParentOf(a)){const e=this.getFieldsMap(n);this.applyChanges(e,t,i),t={},i=[],n=a.popLast()}e?t[a.lastSegment()]=Xi(e):i.push(a.lastSegment())});const a=this.getFieldsMap(n);this.applyChanges(a,t,i)}delete(e){const n=this.field(e.popLast());Fi(n)&&n.mapValue.fields&&delete n.mapValue.fields[e.lastSegment()]}isEqual(e){return Ai(this.value,e.value)}getFieldsMap(e){let n=this.value;n.mapValue.fields||(n.mapValue={fields:{}});for(let t=0;t<e.length;++t){let i=n.mapValue.fields[e.get(t)];Fi(i)&&i.mapValue.fields||(i={mapValue:{fields:{}}},n.mapValue.fields[e.get(t)]=i),n=i}return n.mapValue.fields}
1applyChanges(e,n,t){ui(n,(n,t)=>e[n]=t);for(const i of t)delete e[i]}clone(){return new Hi(Xi(this.value))}}function Gi(e){const n=[];return ui(e.fields,(e,t)=>{const i=new Ut([e]);if(Fi(t)){const e=Gi(t.mapValue).fields;if(0===e.length)n.push(i);else for(const t of e)n.push(i.child(t))}else n.push(i)}),new mi(n)}class Oi{constructor(e,n,t,i,a,o,r){this.key=e,this.documentType=n,this.version=t,this.readTime=i,this.createTime=a,this.data=o,this.documentState=r}static newInvalidDocument(e){return new Oi(e,0,Qt.min(),Qt.min(),Qt.min(),Hi.empty(),0)}static newFoundDocument(e,n,t,i){return new Oi(e,1,n,Qt.min(),t,i,0)}static newNoDocument(e,n){return new Oi(e,2,n,Qt.min(),Qt.min(),Hi.empty(),0)}static newUnknownDocument(e,n){return new Oi(e,3,n,Qt.min(),Qt.min(),Hi.empty(),2)}convertToFoundDocument(e,n){return!this.createTime.isEqual(Qt.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=n,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=Hi.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=Hi.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=Qt.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof Oi&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new Oi(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class Qi{constructor(e,n){this.position=e,this.inclusive=n}}function Ki(e,n,t){let i=0;for(let a=0;a<e.position.length;a++){const o=n[a],r=e.position[a];if(i=o.field.isKeyField()?zt.comparator(zt.fromName(r.referenceValue),t.key):_i(r,t.data.field(o.field)),"desc"===o.dir&&(i*=-1),0!==i)break}return i}function ji(e,n){if(null===e)return null===n;if(null===n)return!1;if(e.inclusive!==n.inclusive||e.position.length!==n.position.length)return!1;for(let t=0;t<e.position.length;t++)if(!Ai(e.position[t],n.position[t]))return!1;return!0}class Wi{constructor(e,n="asc"){this.field=e,this.dir=n}}function Ui(e,n){return e.dir===n.dir&&e.field.isEqual(n.field)}class zi{}class $i extends zi{constructor(e,n,t){super(),this.field=e,this.op=n,this.value=t}static create(e,n,t){return e.isKeyField()?"in"===n||"not-in"===n?this.createKeyFieldInFilter(e,n,t):new aa(e,n,t):"array-contains"===n?new ua(e,t):"in"===n?new la(e,t):"not-in"===n?new ca(e,t):"array-contains-any"===n?new ha(e,t):new $i(e,n,t)}static createKeyFieldInFilter(e,n,t){return"in"===n?new oa(e,t):new ra(e,t)}matches(e){const n=e.data.field(this.field);return"!="===this.op?null!==n&&this.matchesComparison(_i(n,this.value)):null!==n&&xi(this.value)===xi(n)&&this.matchesComparison(_i(n,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return e>0;case">=":return e>=0;default:return kt()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Vi extends zi{constructor(e,n){super(),this.filters=e,this.op=n,this.ae=null}static create(e,n){return new Vi(e,n)}matches(e){return qi(this)?void 0===this.filters.find(n=>!n.matches(e)):void 0!==this.filters.find(n=>n.matches(e))}getFlattenedFilters(){return null!==this.ae||(this.ae=this.filters.reduce((e,n)=>e.concat(n.getFlattenedFilters()),[])),this.ae}getFilters(){return Object.assign([],this.filters)}}function qi(e){return"and"===e.op}function ea(e){return function(e){for(const n of e.filters)if(n instanceof Vi)return!1;return!0}(e)&&qi(e)}function na(e){if(e instanceof $i)return e.field.canonicalString()+e.op.toString()+Ni(e.value);if(ea(e))return e.filters.map(e=>na(e)).join(",");{const n=e.filters.map(e=>na(e)).join(",");
1return`${e.op}(${n})`}}function ta(e,n){return e instanceof $i?(t=e,(i=n)instanceof $i&&t.op===i.op&&t.field.isEqual(i.field)&&Ai(t.value,i.value)):e instanceof Vi?function(e,n){return n instanceof Vi&&e.op===n.op&&e.filters.length===n.filters.length&&e.filters.reduce((e,t,i)=>e&&ta(t,n.filters[i]),!0)}(e,n):void kt();var t,i}function ia(e){return e instanceof $i?`${(n=e).field.canonicalString()} ${n.op} ${Ni(n.value)}`:e instanceof Vi?function(e){return e.op.toString()+" {"+e.getFilters().map(ia).join(" ,")+"}"}(e):"Filter";var n}class aa extends $i{constructor(e,n,t){super(e,n,t),this.key=zt.fromName(t.referenceValue)}matches(e){const n=zt.comparator(e.key,this.key);return this.matchesComparison(n)}}class oa extends $i{constructor(e,n){super(e,"in",n),this.keys=sa("in",n)}matches(e){return this.keys.some(n=>n.isEqual(e.key))}}class ra extends $i{constructor(e,n){super(e,"not-in",n),this.keys=sa("not-in",n)}matches(e){return!this.keys.some(n=>n.isEqual(e.key))}}function sa(e,n){var t;return((null===(t=n.arrayValue)||void 0===t?void 0:t.values)||[]).map(e=>zt.fromName(e.referenceValue))}class ua extends $i{constructor(e,n){super(e,"array-contains",n)}matches(e){const n=e.data.field(this.field);return Ji(n)&&Yi(n.arrayValue,this.value)}}class la extends $i{constructor(e,n){super(e,"in",n)}matches(e){const n=e.data.field(this.field);return null!==n&&Yi(this.value.arrayValue,n)}}class ca extends $i{constructor(e,n){super(e,"not-in",n)}matches(e){if(Yi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const n=e.data.field(this.field);return null!==n&&!Yi(this.value.arrayValue,n)}}class ha extends $i{constructor(e,n){super(e,"array-contains-any",n)}matches(e){const n=e.data.field(this.field);return!(!Ji(n)||!n.arrayValue.values)&&n.arrayValue.values.some(e=>Yi(this.value.arrayValue,e))}}class da{constructor(e,n=null,t=[],i=[],a=null,o=null,r=null){this.path=e,this.collectionGroup=n,this.orderBy=t,this.filters=i,this.limit=a,this.startAt=o,this.endAt=r,this.ue=null}}function ga(e,n=null,t=[],i=[],a=null,o=null,r=null){return new da(e,n,t,i,a,o,r)}function pa(e){const n=xt(e);if(null===n.ue){let e=n.path.canonicalString();null!==n.collectionGroup&&(e+="|cg:"+n.collectionGroup),e+="|f:",e+=n.filters.map(e=>na(e)).join(","),e+="|ob:",e+=n.orderBy.map(e=>{return(n=e).field.canonicalString()+n.dir;var n}).join(","),oi(n.limit)||(e+="|l:",e+=n.limit),n.startAt&&(e+="|lb:",e+=n.startAt.inclusive?"b:":"a:",e+=n.startAt.position.map(e=>Ni(e)).join(",")),n.endAt&&(e+="|ub:",e+=n.endAt.inclusive?"a:":"b:",e+=n.endAt.position.map(e=>Ni(e)).join(",")),n.ue=e}return n.ue}function ma(e,n){if(e.limit!==n.limit)return!1;if(e.orderBy.length!==n.orderBy.length)return!1;for(let t=0;t<e.orderBy.length;t++)if(!Ui(e.orderBy[t],n.orderBy[t]))return!1;if(e.filters.length!==n.filters.length)return!1;for(let t=0;t<e.filters.length;t++)if(!ta(e.filters[t],n.filters[t]))return!1;return e.collectionGroup===n.collectionGroup&&!!e.path.isEqual(n.path)&&!!ji(e.startAt,n.startAt)&&ji(e.endAt,n.endAt)}function fa(e){return zt.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}class va{constructor(e,n=null,t=[],i=[],a=null,o="F",r=null,s=null){this.path=e,this.collectionGroup=n,this.explicitOrderBy=t,this.filters=i,this.limit=a,this.limitType=o,this.startAt=r,this.endAt=s,this.ce=null,this.le=null,this.he=null,this.startAt,this.endAt}}function wa(e){return new va(e)}function ya(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function ba(e){const n=xt(e);if(null===n.ce){n.ce=[];const e=new Set;for(const i of n.explicitOrderBy)n.ce.push(i),e.add(i.field.canonicalString());const t=n.explicitOrderBy.length>0?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc";(function(e){let n=new gi(Ut.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(n=n.add(e.field))})}),n})(n).forEach(i=>{e.has(i.canonicalString())||i.isKeyField()||n.ce.push(new Wi(i,t))}),e.has(Ut.keyField().canonicalString())||n.ce.push(new Wi(Ut.keyField(),t))}return n.ce}function Sa(e){const n=xt(e);return n.le||(n.le=function(e,n){if("F"===e.limitType)return ga(e.path,e.collectionGroup,n,e.filters,e.limit,e.startAt,e.endAt);{n=n.map(e=>{const n="desc"===e.dir?"asc":"desc";return new Wi(e.field,n)});const t=e.endAt?new Qi(e.endAt.position,e.endAt.inclusive):null,i=e.startAt?new Qi(e.startAt.position,e.startAt.inclusive):null;return ga(e.path,e.collectionGroup,n,e.filters,e.limit,t,i)}}(n,ba(e))),n.le}function Ca(e,n,t){return new va(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),n,t,e.startAt,e.endAt)}function La(e,n){return ma(Sa(e),Sa(n))&&e.limitType===n.limitType}function Ta(e){return`${pa(Sa(e))}|lt:${e.limitType}`}function Ea(e){return`Query(target=${function(e){let n=e.path.canonicalString();return null!==e.collectionGroup&&(n+=" collectionGroup="+e.collectionGroup),e.filters.length>0&&(n+=`, filters: [${e.filters.map(e=>ia(e)).join(", ")}]`),oi(e.limit)||(n+=", limit: "+e.limit),e.orderBy.length>0&&(n+=`, orderBy: [${e.orderBy.map(e=>{return`${(n=e).field.canonicalString()} (${n.dir})`;var n}).join(", ")}]`),e.startAt&&(n+=", startAt: ",n+=e.startAt.inclusive?"b:":"a:",n+=e.startAt.position.map(e=>Ni(e)).join(",")),e.endAt&&(n+=", endAt: ",n+=e.endAt.inclusive?"a:":"b:",n+=e.endAt.position.map(e=>Ni(e)).join(",")),`Target(${n})`}(Sa(e))}; limitType=${e.limitType})`}function ka(e,n){return n.isFoundDocument()&&function(e,n){const t=n.key.path;return null!==e.collectionGroup?n.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(t):zt.isDocumentKey(e.path)?e.path.isEqual(t):e.path.isImmediateParentOf(t)}(e,n)&&function(e,n){for(const t of ba(e))if(!t.field.isKeyField()&&null===n.data.field(t.field))return!1;return!0}(e,n)&&function(e,n){for(const t of e.filters)if(!t.matches(n))return!1;return!0}(e,n)&&(i=n,!((t=e).startAt&&!function(e,n,t){const i=Ki(e,n,t);return e.inclusive?i<=0:i<0}(t.startAt,ba(t),i)||t.endAt&&!function(e,n,t){const i=Ki(e,n,t);return e.inclusive?i>=0:i>0}(t.endAt,ba(t),i)));var t,i}function Da(e){return(n,t)=>{let i=!1;for(const a of ba(e)){const e=xa(a,n,t);
1if(0!==e)return e;i=i||a.field.isKeyField()}return 0}}function xa(e,n,t){const i=e.field.isKeyField()?zt.comparator(n.key,t.key):function(e,n,t){const i=n.data.field(e),a=t.data.field(e);return null!==i&&null!==a?_i(i,a):kt()}(e.field,n,t);switch(e.dir){case"asc":return i;case"desc":return-1*i;default:return kt()}}class Aa{constructor(e,n){this.mapKeyFn=e,this.equalsFn=n,this.inner={},this.innerSize=0}get(e){const n=this.mapKeyFn(e),t=this.inner[n];if(void 0!==t)for(const[i,a]of t)if(this.equalsFn(i,e))return a}has(e){return void 0!==this.get(e)}set(e,n){const t=this.mapKeyFn(e),i=this.inner[t];if(void 0===i)return this.inner[t]=[[e,n]],void this.innerSize++;for(let a=0;a<i.length;a++)if(this.equalsFn(i[a][0],e))return void(i[a]=[e,n]);i.push([e,n]),this.innerSize++}delete(e){const n=this.mapKeyFn(e),t=this.inner[n];if(void 0===t)return!1;for(let i=0;i<t.length;i++)if(this.equalsFn(t[i][0],e))return 1===t.length?delete this.inner[n]:t.splice(i,1),this.innerSize--,!0;return!1}forEach(e){ui(this.inner,(n,t)=>{for(const[i,a]of t)e(i,a)})}isEmpty(){return li(this.inner)}size(){return this.innerSize}}const Ya=new ci(zt.comparator);function _a(){return Ya}const Ia=new ci(zt.comparator);function Pa(...e){let n=Ia;for(const t of e)n=n.insert(t.key,t);return n}function Na(e){let n=Ia;return e.forEach((e,t)=>n=n.insert(e,t.overlayedDocument)),n}function Ma(){return Ja()}function Za(){return Ja()}function Ja(){return new Aa(e=>e.toString(),(e,n)=>e.isEqual(n))}const Ba=new ci(zt.comparator),Ra=new gi(zt.comparator);function Fa(...e){let n=Ra;for(const t of e)n=n.add(t);return n}const Xa=new gi(Ht);function Ha(e,n){if(e.useProto3Json){if(isNaN(n))return{doubleValue:"NaN"};if(n===1/0)return{doubleValue:"Infinity"};if(n===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:ri(n)?"-0":n}}function Ga(e){return{integerValue:""+e}}function Oa(e,n){return function(e){return"number"==typeof e&&Number.isInteger(e)&&!ri(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}(n)?Ga(n):Ha(e,n)}class Qa{constructor(){this._=void 0}}function Ka(e,n,t){return e instanceof Ua?function(e,n){const t={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:e.seconds,nanos:e.nanoseconds}}}};return n&&Ci(n)&&(n=Li(n)),n&&(t.fields.__previous_value__=n),{mapValue:t}}(t,n):e instanceof za?$a(e,n):e instanceof Va?qa(e,n):function(e,n){const t=Wa(e,n),i=no(t)+no(e.Pe);return Zi(t)&&Zi(e.Pe)?Ga(i):Ha(e.serializer,i)}(e,n)}function ja(e,n,t){return e instanceof za?$a(e,n):e instanceof Va?qa(e,n):t}function Wa(e,n){return e instanceof eo?Zi(t=n)||(i=t)&&"doubleValue"in i?n:{integerValue:0}:null;var t,i}class Ua extends Qa{}class za extends Qa{constructor(e){super(),this.elements=e}}function $a(e,n){const t=to(n);for(const i of e.elements)t.some(e=>Ai(e,i))||t.push(i);return{arrayValue:{values:t}}}class Va extends Qa{constructor(e){super(),this.elements=e}}function qa(e,n){let t=to(n);for(const i of e.elements)t=t.filter(e=>!Ai(e,i));return{arrayValue:{values:t}}}class eo extends Qa{constructor(e,n){super(),this.serializer=e,this.Pe=n}}function no(e){return bi(e.integerValue||e.doubleValue)}function to(e){return Ji(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class io{constructor(e,n){this.version=e,this.transformResults=n}}class ao{constructor(e,n){this.updateTime=e,this.exists=n}static none(){return new ao}static exists(e){return new ao(void 0,e)}static updateTime(e){return new ao(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function oo(e,n){return void 0!==e.updateTime?n.isFoundDocument()&&n.version.isEqual(e.updateTime):void 0===e.exists||e.exists===n.isFoundDocument()}class ro{}function so(e,n){if(!e.hasLocalMutations||n&&0===n.fields.length)return null;if(null===n)return e.isNoDocument()?new wo(e.key,ao.none()):new go(e.key,e.data,ao.none());{const t=e.data,i=Hi.empty();let a=new gi(Ut.comparator);for(let e of n.fields)if(!a.has(e)){let n=t.field(e);null===n&&e.length>1&&(e=e.popLast(),n=t.field(e)),null===n?i.delete(e):i.set(e,n),a=a.add(e)}return new po(e.key,i,new mi(a.toArray()),ao.none())}}function uo(e,n,t){var i;e instanceof go?function(e,n,t){const i=e.value.clone(),a=fo(e.f
1ieldTransforms,n,t.transformResults);i.setAll(a),n.convertToFoundDocument(t.version,i).setHasCommittedMutations()}(e,n,t):e instanceof po?function(e,n,t){if(!oo(e.precondition,n))return void n.convertToUnknownDocument(t.version);const i=fo(e.fieldTransforms,n,t.transformResults),a=n.data;a.setAll(mo(e)),a.setAll(i),n.convertToFoundDocument(t.version,a).setHasCommittedMutations()}(e,n,t):(i=t,n.convertToNoDocument(i.version).setHasCommittedMutations())}function lo(e,n,t,i){return e instanceof go?function(e,n,t,i){if(!oo(e.precondition,n))return t;const a=e.value.clone(),o=vo(e.fieldTransforms,i,n);return a.setAll(o),n.convertToFoundDocument(n.version,a).setHasLocalMutations(),null}(e,n,t,i):e instanceof po?function(e,n,t,i){if(!oo(e.precondition,n))return t;const a=vo(e.fieldTransforms,i,n),o=n.data;return o.setAll(mo(e)),o.setAll(a),n.convertToFoundDocument(n.version,o).setHasLocalMutations(),null===t?null:t.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,n,t,i):(a=n,o=t,oo(e.precondition,a)?(a.convertToNoDocument(a.version).setHasLocalMutations(),null):o);var a,o}function co(e,n){let t=null;for(const i of e.fieldTransforms){const e=n.data.field(i.field),a=Wa(i.transform,e||null);null!=a&&(null===t&&(t=Hi.empty()),t.set(i.field,a))}return t||null}function ho(e,n){return e.type===n.type&&!!e.key.isEqual(n.key)&&!!e.precondition.isEqual(n.precondition)&&(t=e.fieldTransforms,i=n.fieldTransforms,!!(void 0===t&&void 0===i||t&&i&&Gt(t,i,(e,n)=>function(e,n){return e.field.isEqual(n.field)&&(t=e.transform,i=n.transform,t instanceof za&&i instanceof za||t instanceof Va&&i instanceof Va?Gt(t.elements,i.elements,Ai):t instanceof eo&&i instanceof eo?Ai(t.Pe,i.Pe):t instanceof Ua&&i instanceof Ua);var t,i}(e,n)))&&(0===e.type?e.value.isEqual(n.value):1!==e.type||e.data.isEqual(n.data)&&e.fieldMask.isEqual(n.fieldMask)));var t,i}class go extends ro{constructor(e,n,t,i=[]){super(),this.key=e,this.value=n,this.precondition=t,this.fieldTransforms=i,this.type=0}getFieldMask(){return null}}class po extends ro{constructor(e,n,t,i,a=[]){super(),this.key=e,this.data=n,this.fieldMask=t,this.precondition=i,this.fieldTransforms=a,this.type=1}getFieldMask(){return this.fieldMask}}function mo(e){const n=new Map;return e.fieldMask.fields.forEach(t=>{if(!t.isEmpty()){const i=e.data.field(t);n.set(t,i)}}),n}function fo(e,n,t){const i=new Map;Dt(e.length===t.length);for(let a=0;a<t.length;a++){const o=e[a],r=o.transform,s=n.data.field(o.field);i.set(o.field,ja(r,s,t[a]))}return i}function vo(e,n,t){const i=new Map;for(const a of e){const e=a.transform,o=t.data.field(a.field);i.set(a.field,Ka(e,o,n))}return i}class wo extends ro{constructor(e,n){super(),this.key=e,this.precondition=n,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class yo extends ro{constructor(e,n){super(),this.key=e,this.precondition=n,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class bo{constructor(e,n,t,i){this.batchId=e,this.localWriteTime=n,this.baseMutations=t,this.mutations=i}applyToRemoteDocument(e,n){const t=n.mutationResults;for(let i=0;i<this.mutations.length;i++){const n=this.mutations[i];n.key.isEqual(e.key)&&uo(n,e,t[i])}}applyToLocalView(e,n){for(const t of this.baseMutations)t.key.isEqual(e.key)&&(n=lo(t,e,n,this.localWriteTime));for(const t of this.mutations)t.key.isEqual(e.key)&&(n=lo(t,e,n,this.localWriteTime));return n}applyToLocalDocumentSet(e,n){const t=Za();return this.mutations.forEach(i=>{const a=e.get(i.key),o=a.overlayedDocument;let r=this.applyToLocalView(o,a.mutatedFields);r=n.has(i.key)?null:r;const s=so(o,r);null!==s&&t.set(i.key,s),o.isValidDocument()||o.convertToNoDocument(Qt.min())}),t}keys(){return this.mutations.reduce((e,n)=>e.add(n.key),Fa())}isEqual(e){return this.batchId===e.batchId&&Gt(this.mutations,e.mutations,(e,n)=>ho(e,n))&&Gt(this.baseMutations,e.baseMutations,(e,n)=>ho(e,n))}}class So{constructor(e,n,t,i){this.batch=e,this.commitVersion=n,this.mutationResults=t,this.docVersions=i}static from(e,n,t){Dt(e.mutations.length===t.length);let i=function(){return Ba}();const a=e.mutations;for(let o=0;o<a.length;o++)i=i.insert(a[o].key,t[o].version);return new So(e,n,t,i)}}class Co{constructor(e,n){this.largestBatchId=e,this.mutation=n}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{\n      largestBatchId: ${this.largestBatchId},\n      mutation: ${this.mutation.toString()}\n    }`}}class Lo{constructor(e,n){this.count=e,this.unchangedNames=n}}var To,Eo;function ko(e){switch(e){default:return kt();case At.CANCELLED:case At.UNKNOWN:case At.DEADLINE_EXCEEDED:case At.RESOURCE_EXHAUSTED:case At.INTERNAL:case At.UNAVAILABLE:case At.UNAUTHENTICATED:return!1;case At.INVALID_ARGUMENT:case At.NOT_FOUND:case At.ALREADY_EXISTS:case At.PERMISSION_DENIED:case At.FAILED_PRECONDITION:case At.ABORTED:case At.OUT_OF_RANGE:case At.UNIMPLEMENT
vendor: 4,232 bytes, line 1
1ED:case At.DATA_LOSS:return!0}}function Do(e){if(void 0===e)return Lt("GRPC error has no .code"),At.UNKNOWN;switch(e){case To.OK:return At.OK;case To.CANCELLED:return At.CANCELLED;case To.UNKNOWN:return At.UNKNOWN;case To.DEADLINE_EXCEEDED:return At.DEADLINE_EXCEEDED;case To.RESOURCE_EXHAUSTED:return At.RESOURCE_EXHAUSTED;case To.INTERNAL:return At.INTERNAL;case To.UNAVAILABLE:return At.UNAVAILABLE;case To.UNAUTHENTICATED:return At.UNAUTHENTICATED;case To.INVALID_ARGUMENT:return At.INVALID_ARGUMENT;case To.NOT_FOUND:return At.NOT_FOUND;case To.ALREADY_EXISTS:return At.ALREADY_EXISTS;case To.PERMISSION_DENIED:return At.PERMISSION_DENIED;case To.FAILED_PRECONDITION:return At.FAILED_PRECONDITION;case To.ABORTED:return At.ABORTED;case To.OUT_OF_RANGE:return At.OUT_OF_RANGE;case To.UNIMPLEMENTED:return At.UNIMPLEMENTED;case To.DATA_LOSS:return At.DATA_LOSS;default:return kt()}}(Eo=To||(To={}))[Eo.OK=0]="OK",Eo[Eo.CANCELLED=1]="CANCELLED",Eo[Eo.UNKNOWN=2]="UNKNOWN",Eo[Eo.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",Eo[Eo.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",Eo[Eo.NOT_FOUND=5]="NOT_FOUND",Eo[Eo.ALREADY_EXISTS=6]="ALREADY_EXISTS",Eo[Eo.PERMISSION_DENIED=7]="PERMISSION_DENIED",Eo[Eo.UNAUTHENTICATED=16]="UNAUTHENTICATED",Eo[Eo.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",Eo[Eo.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",Eo[Eo.ABORTED=10]="ABORTED",Eo[Eo.OUT_OF_RANGE=11]="OUT_OF_RANGE",Eo[Eo.UNIMPLEMENTED=12]="UNIMPLEMENTED",Eo[Eo.INTERNAL=13]="INTERNAL",Eo[Eo.UNAVAILABLE=14]="UNAVAILABLE",Eo[Eo.DATA_LOSS=15]="DATA_LOSS";const xo=new ot([4294967295,4294967295],0);function Ao(e){const n=(new TextEncoder).encode(e),t=new rt;return t.update(n),new Uint8Array(t.digest())}function Yo(e){const n=new DataView(e.buffer),t=n.getUint32(0,!0),i=n.getUint32(4,!0),a=n.getUint32(8,!0),o=n.getUint32(12,!0);return[new ot([t,i],0),new ot([a,o],0)]}class _o{constructor(e,n,t){if(this.bitmap=e,this.padding=n,this.hashCount=t,n<0||n>=8)throw new Io(`Invalid padding: ${n}`);if(t<0)throw new Io(`Invalid hash count: ${t}`);if(e.length>0&&0===this.hashCount)throw new Io(`Invalid hash count: ${t}`);if(0===e.length&&0!==n)throw new Io(`Invalid padding when bitmap length is 0: ${n}`);this.Ie=8*e.length-n,this.Te=ot.fromNumber(this.Ie)}Ee(e,n,t){let i=e.add(n.multiply(ot.fromNumber(t)));return 1===i.compare(xo)&&(i=new ot([i.getBits(0),i.getBits(1)],0)),i.modulo(this.Te).toNumber()}de(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ie)return!1;const n=Ao(e),[t,i]=Yo(n);for(let a=0;a<this.hashCount;a++){const e=this.Ee(t,i,a);if(!this.de(e))return!1}return!0}static create(e,n,t){const i=e%8==0?0:8-e%8,a=new Uint8Array(Math.ceil(e/8)),o=new _o(a,i,n);return t.forEach(e=>o.insert(e)),o}insert(e){if(0===this.Ie)return;const n=Ao(e),[t,i]=Yo(n);for(let a=0;a<this.hashCount;a++){const e=this.Ee(t,i,a);this.Ae(e)}}Ae(e){const n=Math.floor(e/8),t=e%8;this.bitmap[n]|=1<<t}}class Io extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Po{constructor(e,n,t,i,a){this.snapshotVersion=e,this.targetChanges=n,this.targetMismatches=t,this.documentUpdates=i,this.resolvedLimboDocuments=a}static createSynthesizedRemoteEventForCurrentChange(e,n,t){const i=new Map;return i.set(e,No.createSynthesizedTargetChangeForCurrentChange(e,n,t)),new Po(Qt.min(),i,new ci(Ht),_a(),Fa())}}class No{constructor(e,n,t,i,a){this.resumeToken=e,this.current=n,this.addedDocuments=t,this.modifiedDocuments=i,this.removedDocuments=a}static createSynthesizedTargetChangeForCurrentChange(e,n,t){return new No(t,n,Fa(),Fa(),Fa())}}class Mo{constructor(e,n,t,i){this.Re=e,this.removedTargetIds=n,this.key=t,this.Ve=i}}class Zo{constructor(e,n){this.targetId=e,this.me=n}}class Jo{constructor(e,n,t=vi.EMPTY_BYTE_STRING,i=null){this.state=e,this.targetIds=n,this.resumeToken=t,this.cause=i}}class Bo{constructor(){this.fe=0,this.ge=Xo(),this.pe=vi.EMPTY_BYTE_STRING,this.ye=!1,this.we=!0}get current(){return this.ye}get resumeToken(){return this.pe}get Se(){return 0!==this.fe}get be(){return this.we}De(e){e.approximateByteSize()>0&&(this.we=!0,this.pe=e)}ve(){let e=Fa(),n=Fa(),t=Fa();return this.ge.forEach((i,a)=>{switch(a){case 0:e=e.add(i);break;case 2:n=n.add(i);break;case 1:t=t.add(i);break;
1default:kt()}}),new No(this.pe,this.ye,e,n,t)}Ce(){this.we=!1,this.ge=Xo()}Fe(e,n){this.we=!0,this.ge=this.ge.insert(e,n)}Me(e){this.we=!0,this.ge=this.ge.remove(e)}xe(){this.fe+=1}Oe(){this.fe-=1,Dt(this.fe>=0)}Ne(){this.we=!0,this.ye=!0}}class Ro{constructor(e){this.Le=e,this.Be=new Map,this.ke=_a(),this.qe=Fo(),this.Qe=new ci(Ht)}Ke(e){for(const n of e.Re)e.Ve&&e.Ve.isFoundDocument()?this.$e(n,e.Ve):this.Ue(n,e.key,e.Ve);for(const n of e.removedTargetIds)this.Ue(n,e.key,e.Ve)}We(e){this.forEachTarget(e,n=>{const t=this.Ge(n);switch(e.state){case 0:this.ze(n)&&t.De(e.resumeToken);break;case 1:t.Oe(),t.Se||t.Ce(),t.De(e.resumeToken);break;case 2:t.Oe(),t.Se||this.removeTarget(n);break;case 3:this.ze(n)&&(t.Ne(),t.De(e.resumeToken));break;case 4:this.ze(n)&&(this.je(n),t.De(e.resumeToken));break;default:kt()}})}forEachTarget(e,n){e.targetIds.length>0?e.targetIds.forEach(n):this.Be.forEach((e,t)=>{this.ze(t)&&n(t)})}He(e){const n=e.targetId,t=e.me.count,i=this.Je(n);if(i){const a=i.target;if(fa(a))if(0===t){const e=new zt(a.path);this.Ue(n,e,Oi.newNoDocument(e,Qt.min()))}else Dt(1===t);else{const i=this.Ye(n);if(i!==t){const t=this.Ze(e),a=t?this.Xe(t,e,i):1;if(0!==a){this.je(n);const e=2===a?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Qe=this.Qe.insert(n,e)}}}}}Ze(e){const n=e.me.unchangedNames;if(!n||!n.bits)return null;const{bits:{bitmap:t="",padding:i=0},hashCount:a=0}=n;let o,r;try{o=Si(t).toUint8Array()}catch(s){if(s instanceof fi)return Tt("Decoding the base64 bloom filter in existence filter failed ("+s.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw s}try{r=new _o(o,i,a)}catch(s){return Tt(s instanceof Io?"BloomFilter error: ":"Applying bloom filter failed: ",s),null}return 0===r.Ie?null:r}Xe(e,n,t){return n.me.count===t-this.nt(e,n.targetId)?0:2}nt(e,n){const t=this.Le.getRemoteKeysForTarget(n);let i=0;return t.forEach(t=>{const a=this.Le.tt(),o=`projects/${a.projectId}/databases/${a.database}/documents/${t.path.canonicalString()}`;e.mightContain(o)||(this.Ue(n,t,null),i++)}),i}rt(e){const n=new Map;this.Be.forEach((t,i)=>{const a=this.Je(i);if(a){if(t.current&&fa(a.target)){const n=new zt(a.target.path);null!==this.ke.get(n)||this.it(i,n)||this.Ue(i,n,Oi.newNoDocument(n,e))}t.be&&(n.set(i,t.ve()),t.Ce())}});let t=Fa();this.qe.forEach((e,n)=>{let i=!0;n.forEachWhile(e=>{const n=this.Je(e);return!n||"TargetPurposeLimboResolution"===n.purpose||(i=!1,!1)}),i&&(t=t.add(e))}),this.ke.forEach((n,t)=>t.setReadTime(e));const i=new Po(e,n,this.Qe,this.ke,t);return this.ke=_a(),this.qe=Fo(),this.Qe=new ci(Ht),i}$e(e,n){if(!this.ze(e))return;const t=this.it(e,n.key)?2:0;this.Ge(e).Fe(n.key,t),this.ke=this.ke.insert(n.key,n),this.qe=this.qe.insert(n.key,this.st(n.key).add(e))}Ue(e,n,t){if(!this.ze(e))return;const i=this.Ge(e);this.it(e,n)?i.Fe(n,1):i.Me(n),this.qe=this.qe.insert(n,this.st(n).delete(e)),t&&(this.ke=this.ke.insert(n,t))}removeTarget(e){this.Be.delete(e)}Ye(e){const n=this.Ge(e).ve();return this.Le.getRemoteKeysForTarget(e).size+n.addedDocuments.size-n.removedDocuments.size}xe(e){this.Ge(e).xe()}Ge(e){let n=this.Be.get(e);return n||(n=new Bo,this.Be.set(e,n)),n}st(e){let n=this.qe.get(e);return n||(n=new gi(Ht),this.qe=this.qe.insert(e,n)),n}ze(e){const n=null!==this.Je(e);return n||Ct("WatchChangeAggregator","Detected inactive target",e),n}Je(e){const n=this.Be.get(e);return n&&n.Se?null:this.Le.ot(e)}je(e){this.Be.set(e,new Bo),this.Le.getRemoteKeysForTarget(e).forEach(n=>{this.Ue(e,n,null)})}it(e,n){return this.Le.getRemoteKeysForTarget(e).has(n)}}function Fo(){return new ci(zt.comparator)}function Xo(){return new ci(zt.comparator)}const Ho=(()=>({asc:"ASCENDING",desc:"DESCENDING"}))(),Go=(()=>({"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"}))(),Oo=(()=>({and:"AND",or:"OR"}))();class Qo{constructor(e,n){this.databaseId=e,this.useProto3Json=n}}function Ko(e,n){return e.useProto3Json||oi(n)?n:{value:n}}function jo(e,n){return e.useProto3Json?`${new Date(1e3*n.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+n.nanoseconds).slice(-9)}Z`:{seconds:""+n.seconds,nanos:n.nanoseconds}}function Wo(e,n){return e.useProto3Json?n.toBase64():n.toUint8Array()}function Uo(e,n){return jo(e,n.toTimestamp())}function zo(e){return Dt(!!e),Qt.fromTimestamp(function(e){const n=yi(e);return new Ot(n.seconds,n.nanos)}(e))}function $o(e,n){return Vo(e,n).canonicalString()}function Vo(e,n){const t=(i=e,new jt(["projects",i.projectId,"databases",i.database])).child("documents");var i;return void 0===n?t:t.child(n)}function qo(e){const n=jt.fromString(e);return Dt(wr(n)),n}function er(e,n){return $o(e.databaseId,n.path)}function nr(e,n){const t=qo(n);
1if(t.get(1)!==e.databaseId.projectId)throw new Yt(At.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+t.get(1)+" vs "+e.databaseId.projectId);if(t.get(3)!==e.databaseId.database)throw new Yt(At.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+t.get(3)+" vs "+e.databaseId.database);return new zt(ar(t))}function tr(e,n){return $o(e.databaseId,n)}function ir(e){return new jt(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function ar(e){return Dt(e.length>4&&"documents"===e.get(4)),e.popFirst(5)}function or(e,n,t){return{name:er(e,n),fields:t.value.mapValue.fields}}function rr(e,n){let t;if(n instanceof go)t={update:or(e,n.key,n.value)};else if(n instanceof wo)t={delete:er(e,n.key)};else if(n instanceof po)t={update:or(e,n.key,n.data),updateMask:vr(n.fieldMask)};else{if(!(n instanceof yo))return kt();t={verify:er(e,n.key)}}return n.fieldTransforms.length>0&&(t.updateTransforms=n.fieldTransforms.map(e=>function(e,n){const t=n.transform;if(t instanceof Ua)return{fieldPath:n.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof za)return{fieldPath:n.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Va)return{fieldPath:n.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof eo)return{fieldPath:n.field.canonicalString(),increment:t.Pe};throw kt()}(0,e))),n.precondition.isNone||(t.currentDocument=(i=e,void 0!==(a=n.precondition).updateTime?{updateTime:Uo(i,a.updateTime)}:void 0!==a.exists?{exists:a.exists}:kt())),t;var i,a}function sr(e,n){return{documents:[tr(e,n.path)]}}function ur(e,n){const t={structuredQuery:{}},i=n.path;let a;null!==n.collectionGroup?(a=i,t.structuredQuery.from=[{collectionId:n.collectionGroup,allDescendants:!0}]):(a=i.popLast(),t.structuredQuery.from=[{collectionId:i.lastSegment()}]),t.parent=tr(e,a);const o=function(e){if(0!==e.length)return fr(Vi.create(e,"and"))}(n.filters);o&&(t.structuredQuery.where=o);const r=function(e){if(0!==e.length)return e.map(e=>{return{field:pr((n=e).field),direction:hr(n.dir)};var n})}(n.orderBy);r&&(t.structuredQuery.orderBy=r);const s=Ko(e,n.limit);return null!==s&&(t.structuredQuery.limit=s),n.startAt&&(t.structuredQuery.startAt={before:(u=n.startAt).inclusive,values:u.position}),n.endAt&&(t.structuredQuery.endAt=function(e){return{before:!e.inclusive,values:e.position}}(n.endAt)),{_t:t,parent:a};var u}function lr(e){let n=function(e){const n=qo(e);return 4===n.length?jt.emptyPath():ar(n)}(e.parent);const t=e.structuredQuery,i=t.from?t.from.length:0;let a=null;if(i>0){Dt(1===i);const e=t.from[0];e.allDescendants?a=e.collectionId:n=n.child(e.collectionId)}let o=[];t.where&&(o=function(e){const n=cr(e);return n instanceof Vi&&ea(n)?n.getFilters():[n]}(t.where));let r=[];t.orderBy&&(r=t.orderBy.map(e=>{return new Wi(mr((n=e).field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(n.direction));var n}));let s=null;t.limit&&(s=function(e){let n;return n="object"==typeof e?e.value:e,oi(n)?null:n}(t.limit));let u=null;t.startAt&&(u=function(e){const n=!!e.before,t=e.values||[];return new Qi(t,n)}(t.startAt));let l=null;return t.endAt&&(l=function(e){const n=!e.before,t=e.values||[];return new Qi(t,n)}(t.endAt)),function(e,n,t,i,a,o,r,s){return new va(e,n,t,i,a,o,r,s)}(n,a,r,o,s,"F",u,l)}function cr(e){return void 0!==e.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":const n=mr(e.unaryFilter.field);return $i.create(n,"==",{doubleValue:NaN});case"IS_NULL":const t=mr(e.unaryFilter.field);return $i.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const i=mr(e.unaryFilter.field);return $i.create(i,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const a=mr(e.unaryFilter.field);return $i.create(a,"!=",{nullValue:"NULL_VALUE"});default:return kt()}}(e):void 0!==e.fieldFilter?(n=e,$i.create(mr(n.fieldFilter.field),function(e){switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return kt()}}(n.fieldFilter.op),n.fieldFilter.value)):void 0!==e.compositeFilter?function(e){return Vi.create(e.compositeFilter.filters.map(e=>cr(e)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return kt()}}(e.compositeFilter.op))}(e):kt();var n}function hr(e){return Ho[e]}function dr(e){return Go[e]}function gr(e){return Oo[e]}function pr(e){return{fieldPath:e.canonicalString()}}function mr(e){return Ut.fromServerFormat(e.fieldPath)}function fr(e){return e instanceof $i?function(e){if("=="===e.op){if(Ri(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NAN"}};if(Bi(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Ri(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NOT_NA
1N"}};if(Bi(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:pr(e.field),op:dr(e.op),value:e.value}}}(e):e instanceof Vi?function(e){const n=e.getFilters().map(e=>fr(e));return 1===n.length?n[0]:{compositeFilter:{op:gr(e.op),filters:n}}}(e):kt()}function vr(e){const n=[];return e.fields.forEach(e=>n.push(e.canonicalString())),{fieldPaths:n}}function wr(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}class yr{constructor(e,n,t,i,a=Qt.min(),o=Qt.min(),r=vi.EMPTY_BYTE_STRING,s=null){this.target=e,this.targetId=n,this.purpose=t,this.sequenceNumber=i,this.snapshotVersion=a,this.lastLimboFreeSnapshotVersion=o,this.resumeToken=r,this.expectedCount=s}withSequenceNumber(e){return new yr(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,n){return new yr(this.target,this.targetId,this.purpose,this.sequenceNumber,n,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new yr(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new yr(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class br{constructor(e){this.ct=e}}function Sr(e){const n=lr({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Ca(n,n.limit,"L"):n}class Cr{constructor(){this.un=new Lr}addToCollectionParentIndex(e,n){return this.un.add(n),ti.resolve()}getCollectionParents(e,n){return ti.resolve(this.un.getEntries(n))}addFieldIndex(e,n){return ti.resolve()}deleteFieldIndex(e,n){return ti.resolve()}deleteAllFieldIndexes(e){return ti.resolve()}createTargetIndexes(e,n){return ti.resolve()}getDocumentsMatchingTarget(e,n){return ti.resolve(null)}getIndexType(e,n){return ti.resolve(0)}getFieldIndexes(e,n){return ti.resolve([])}getNextCollectionGroupToUpdate(e){return ti.resolve(null)}getMinOffset(e,n){return ti.resolve(Vt.min())}getMinOffsetFromCollectionGroup(e,n){return ti.resolve(Vt.min())}updateCollectionGroup(e,n,t){return ti.resolve()}updateIndexEntries(e,n){return ti.resolve()}}class Lr{constructor(){this.index={}}add(e){const n=e.lastSegment(),t=e.popLast(),i=this.index[n]||new gi(jt.comparator),a=!i.has(t);return this.index[n]=i.add(t),a}has(e){const n=e.lastSegment(),t=e.popLast(),i=this.index[n];return i&&i.has(t)}getEntries(e){return(this.index[e]||new gi(jt.comparator)).toArray()}}class Tr{constructor(e){this.Ln=e}next(){return this.Ln+=2,this.Ln}static Bn(){return new Tr(0)}static kn(){return new Tr(-1)}}class Er{constructor(){this.changes=new Aa(e=>e.toString(),(e,n)=>e.isEqual(n)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,n){this.assertNotApplied(),this.changes.set(e,Oi.newInvalidDocument(e).setReadTime(n))}getEntry(e,n){this.assertNotApplied();const t=this.changes.get(n);return void 0!==t?ti.resolve(t):this.getFromCache(e,n)}getEntries(e,n){return this.getAllFromCache(e,n)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class kr{constructor(e,n){this.overlayedDocument=e,this.mutatedFields=n}}class Dr{constructor(e,n,t,i){this.remoteDocumentCache=e,this.mutationQueue=n,this.documentOverlayCache=t,this.indexManager=i}getDocument(e,n){let t=null;return this.documentOverlayCache.getOverlay(e,n).next(i=>(t=i,this.remoteDocumentCache.getEntry(e,n))).next(e=>(null!==t&&lo(t.mutation,e,mi.empty(),Ot.now()),e))}getDocuments(e,n){return this.remoteDocumentCache.getEntries(e,n).next(n=>this.getLocalViewOfDocuments(e,n,Fa()).next(()=>n))}getLocalViewOfDocuments(e,n,t=Fa()){const i=Ma();return this.populateOverlays(e,i,n).next(()=>this.computeViews(e,n,i,t).next(e=>{let n=Pa();return e.forEach((e,t)=>{n=n.insert(e,t.overlayedDocument)}),n}))}getOverlayedDocuments(e,n){const t=Ma();return this.populateOverlays(e,t,n).next(()=>this.computeViews(e,n,t,Fa()))}populateOverlays(e,n,t){const i=[];
1return t.forEach(e=>{n.has(e)||i.push(e)}),this.documentOverlayCache.getOverlays(e,i).next(e=>{e.forEach((e,t)=>{n.set(e,t)})})}computeViews(e,n,t,i){let a=_a();const o=Ja(),r=Ja();return n.forEach((e,n)=>{const r=t.get(n.key);i.has(n.key)&&(void 0===r||r.mutation instanceof po)?a=a.insert(n.key,n):void 0!==r?(o.set(n.key,r.mutation.getFieldMask()),lo(r.mutation,n,r.mutation.getFieldMask(),Ot.now())):o.set(n.key,mi.empty())}),this.recalculateAndSaveOverlays(e,a).next(e=>(e.forEach((e,n)=>o.set(e,n)),n.forEach((e,n)=>{var t;return r.set(e,new kr(n,null!==(t=o.get(e))&&void 0!==t?t:null))}),r))}recalculateAndSaveOverlays(e,n){const t=Ja();let i=new ci((e,n)=>e-n),a=Fa();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,n).next(e=>{for(const a of e)a.keys().forEach(e=>{const o=n.get(e);if(null===o)return;let r=t.get(e)||mi.empty();r=a.applyToLocalView(o,r),t.set(e,r);const s=(i.get(a.batchId)||Fa()).add(e);i=i.insert(a.batchId,s)})}).next(()=>{const o=[],r=i.getReverseIterator();for(;r.hasNext();){const i=r.getNext(),s=i.key,u=i.value,l=Za();u.forEach(e=>{if(!a.has(e)){const i=so(n.get(e),t.get(e));null!==i&&l.set(e,i),a=a.add(e)}}),o.push(this.documentOverlayCache.saveOverlays(e,s,l))}return ti.waitFor(o)}).next(()=>t)}recalculateAndSaveOverlaysForDocumentKeys(e,n){return this.remoteDocumentCache.getEntries(e,n).next(n=>this.recalculateAndSaveOverlays(e,n))}getDocumentsMatchingQuery(e,n,t,i){return a=n,zt.isDocumentKey(a.path)&&null===a.collectionGroup&&0===a.filters.length?this.getDocumentsMatchingDocumentQuery(e,n.path):function(e){return null!==e.collectionGroup}(n)?this.getDocumentsMatchingCollectionGroupQuery(e,n,t,i):this.getDocumentsMatchingCollectionQuery(e,n,t,i);var a}getNextDocuments(e,n,t,i){return this.remoteDocumentCache.getAllFromCollectionGroup(e,n,t,i).next(a=>{const o=i-a.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,n,t.largestBatchId,i-a.size):ti.resolve(Ma());let r=-1,s=a;return o.next(n=>ti.forEach(n,(n,t)=>(r<t.largestBatchId&&(r=t.largestBatchId),a.get(n)?ti.resolve():this.remoteDocumentCache.getEntry(e,n).next(e=>{s=s.insert(n,e)}))).next(()=>this.populateOverlays(e,n,a)).next(()=>this.computeViews(e,s,n,Fa())).next(e=>({batchId:r,changes:Na(e)})))})}getDocumentsMatchingDocumentQuery(e,n){return this.getDocument(e,new zt(n)).next(e=>{let n=Pa();return e.isFoundDocument()&&(n=n.insert(e.key,e)),n})}getDocumentsMatchingCollectionGroupQuery(e,n,t,i){const a=n.collectionGroup;let o=Pa();return this.indexManager.getCollectionParents(e,a).next(r=>ti.forEach(r,r=>{const s=(u=n,l=r.child(a),new va(l,null,u.explicitOrderBy.slice(),u.filters.slice(),u.limit,u.limitType,u.startAt,u.endAt));var u,l;return this.getDocumentsMatchingCollectionQuery(e,s,t,i).next(e=>{e.forEach((e,n)=>{o=o.insert(e,n)})})}).next(()=>o))}getDocumentsMatchingCollectionQuery(e,n,t,i){let a;return this.documentOverlayCache.getOverlaysForCollection(e,n.path,t.largestBatchId).next(o=>(a=o,this.remoteDocumentCache.getDocumentsMatchingQuery(e,n,t,a,i))).next(e=>{a.forEach((n,t)=>{const i=t.getKey();null===e.get(i)&&(e=e.insert(i,Oi.newInvalidDocument(i)))});let t=Pa();return e.forEach((e,i)=>{const o=a.get(e);void 0!==o&&lo(o.mutation,i,mi.empty(),Ot.now()),ka(n,i)&&(t=t.insert(e,i))}),t})}}class xr{constructor(e){this.serializer=e,this.hr=new Map,this.Pr=new Map}getBundleMetadata(e,n){return ti.resolve(this.hr.get(n))}saveBundleMetadata(e,n){return this.hr.set(n.id,{id:(t=n).id,version:t.version,createTime:zo(t.createTime)}),ti.resolve();var t}getNamedQuery(e,n){return ti.resolve(this.Pr.get(n))}saveNamedQuery(e,n){return this.Pr.set(n.name,{name:(t=n).name,query:Sr(t.bundledQuery),readTime:zo(t.readTime)}),ti.resolve();var t}}class Ar{constructor(){this.overlays=new ci(zt.comparator),this.Ir=new Map}getOverlay(e,n){return ti.resolve(this.overlays.get(n))}getOverlays(e,n){const t=Ma();return ti.forEach(n,n=>this.getOverlay(e,n).next(e=>{null!==e&&t.set(n,e)})).next(()=>t)}saveOverlays(e,n,t){return t.forEach((t,i)=>{this.ht(e,n,i)}),ti.resolve()}removeOverlaysForBatchId(e,n,t){const i=this.Ir.get(t);
1return void 0!==i&&(i.forEach(e=>this.overlays=this.overlays.remove(e)),this.Ir.delete(t)),ti.resolve()}getOverlaysForCollection(e,n,t){const i=Ma(),a=n.length+1,o=new zt(n.child("")),r=this.overlays.getIteratorFrom(o);for(;r.hasNext();){const e=r.getNext().value,o=e.getKey();if(!n.isPrefixOf(o.path))break;o.path.length===a&&e.largestBatchId>t&&i.set(e.getKey(),e)}return ti.resolve(i)}getOverlaysForCollectionGroup(e,n,t,i){let a=new ci((e,n)=>e-n);const o=this.overlays.getIterator();for(;o.hasNext();){const e=o.getNext().value;if(e.getKey().getCollectionGroup()===n&&e.largestBatchId>t){let n=a.get(e.largestBatchId);null===n&&(n=Ma(),a=a.insert(e.largestBatchId,n)),n.set(e.getKey(),e)}}const r=Ma(),s=a.getIterator();for(;s.hasNext()&&(s.getNext().value.forEach((e,n)=>r.set(e,n)),!(r.size()>=i)););return ti.resolve(r)}ht(e,n,t){const i=this.overlays.get(t.key);if(null!==i){const e=this.Ir.get(i.largestBatchId).delete(t.key);this.Ir.set(i.largestBatchId,e)}this.overlays=this.overlays.insert(t.key,new Co(n,t));let a=this.Ir.get(n);void 0===a&&(a=Fa(),this.Ir.set(n,a)),this.Ir.set(n,a.add(t.key))}}class Yr{constructor(){this.sessionToken=vi.EMPTY_BYTE_STRING}getSessionToken(e){return ti.resolve(this.sessionToken)}setSessionToken(e,n){return this.sessionToken=n,ti.resolve()}}class _r{constructor(){this.Tr=new gi(Ir.Er),this.dr=new gi(Ir.Ar)}isEmpty(){return this.Tr.isEmpty()}addReference(e,n){const t=new Ir(e,n);this.Tr=this.Tr.add(t),this.dr=this.dr.add(t)}Rr(e,n){e.forEach(e=>this.addReference(e,n))}removeReference(e,n){this.Vr(new Ir(e,n))}mr(e,n){e.forEach(e=>this.removeReference(e,n))}gr(e){const n=new zt(new jt([])),t=new Ir(n,e),i=new Ir(n,e+1),a=[];return this.dr.forEachInRange([t,i],e=>{this.Vr(e),a.push(e.key)}),a}pr(){this.Tr.forEach(e=>this.Vr(e))}Vr(e){this.Tr=this.Tr.delete(e),this.dr=this.dr.delete(e)}yr(e){const n=new zt(new jt([])),t=new Ir(n,e),i=new Ir(n,e+1);let a=Fa();return this.dr.forEachInRange([t,i],e=>{a=a.add(e.key)}),a}containsKey(e){const n=new Ir(e,0),t=this.Tr.firstAfterOrEqual(n);return null!==t&&e.isEqual(t.key)}}class Ir{constructor(e,n){this.key=e,this.wr=n}static Er(e,n){return zt.comparator(e.key,n.key)||Ht(e.wr,n.wr)}static Ar(e,n){return Ht(e.wr,n.wr)||zt.comparator(e.key,n.key)}}class Pr{constructor(e,n){this.indexManager=e,this.referenceDelegate=n,this.mutationQueue=[],this.Sr=1,this.br=new gi(Ir.Er)}checkEmpty(e){return ti.resolve(0===this.mutationQueue.length)}addMutationBatch(e,n,t,i){const a=this.Sr;this.Sr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const o=new bo(a,n,t,i);this.mutationQueue.push(o);for(const r of i)this.br=this.br.add(new Ir(r.key,a)),this.indexManager.addToCollectionParentIndex(e,r.key.path.popLast());return ti.resolve(o)}lookupMutationBatch(e,n){return ti.resolve(this.Dr(n))}getNextMutationBatchAfterBatchId(e,n){const t=n+1,i=this.vr(t),a=i<0?0:i;return ti.resolve(this.mutationQueue.length>a?this.mutationQueue[a]:null)}getHighestUnacknowledgedBatchId(){return ti.resolve(0===this.mutationQueue.length?-1:this.Sr-1)}getAllMutationBatches(e){return ti.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,n){const t=new Ir(n,0),i=new Ir(n,Number.POSITIVE_INFINITY),a=[];return this.br.forEachInRange([t,i],e=>{const n=this.Dr(e.wr);a.push(n)}),ti.resolve(a)}getAllMutationBatchesAffectingDocumentKeys(e,n){let t=new gi(Ht);return n.forEach(e=>{const n=new Ir(e,0),i=new Ir(e,Number.POSITIVE_INFINITY);this.br.forEachInRange([n,i],e=>{t=t.add(e.wr)})}),ti.resolve(this.Cr(t))}getAllMutationBatchesAffectingQuery(e,n){const t=n.path,i=t.length+1;let a=t;zt.isDocumentKey(a)||(a=a.child(""));const o=new Ir(new zt(a),0);let r=new gi(Ht);return this.br.forEachWhile(e=>{const n=e.key.path;return!!t.isPrefixOf(n)&&(n.length===i&&(r=r.add(e.wr)),!0)},o),ti.resolve(this.Cr(r))}Cr(e){const n=[];return e.forEach(e=>{const t=this.Dr(e);null!==t&&n.push(t)}),n}removeMutationBatch(e,n){Dt(0===this.Fr(n.batchId,"removed")),this.mutationQueue.shift();let t=this.br;return ti.forEach(n.mutations,i=>{const a=new Ir(i.key,n.batchId);return t=t.delete(a),this.referenceDelegate.markPotentiallyOrphaned(e,i.key)}).next(()=>{this.br=t})}On(e){}containsKey(e,n){const t=new Ir(n,0),i=this.br.firstAfterOrEqual(t);return ti.resolve(n.isEqual(i&&i.key))}
1performConsistencyCheck(e){return this.mutationQueue.length,ti.resolve()}Fr(e,n){return this.vr(e)}vr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Dr(e){const n=this.vr(e);return n<0||n>=this.mutationQueue.length?null:this.mutationQueue[n]}}class Nr{constructor(e){this.Mr=e,this.docs=new ci(zt.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,n){const t=n.key,i=this.docs.get(t),a=i?i.size:0,o=this.Mr(n);return this.docs=this.docs.insert(t,{document:n.mutableCopy(),size:o}),this.size+=o-a,this.indexManager.addToCollectionParentIndex(e,t.path.popLast())}removeEntry(e){const n=this.docs.get(e);n&&(this.docs=this.docs.remove(e),this.size-=n.size)}getEntry(e,n){const t=this.docs.get(n);return ti.resolve(t?t.document.mutableCopy():Oi.newInvalidDocument(n))}getEntries(e,n){let t=_a();return n.forEach(e=>{const n=this.docs.get(e);t=t.insert(e,n?n.document.mutableCopy():Oi.newInvalidDocument(e))}),ti.resolve(t)}getDocumentsMatchingQuery(e,n,t,i){let a=_a();const o=n.path,r=new zt(o.child("")),s=this.docs.getIteratorFrom(r);for(;s.hasNext();){const{key:e,value:{document:r}}=s.getNext();if(!o.isPrefixOf(e.path))break;e.path.length>o.length+1||qt($t(r),t)<=0||(i.has(r.key)||ka(n,r))&&(a=a.insert(r.key,r.mutableCopy()))}return ti.resolve(a)}getAllFromCollectionGroup(e,n,t,i){kt()}Or(e,n){return ti.forEach(this.docs,e=>n(e))}newChangeBuffer(e){return new Mr(this)}getSize(e){return ti.resolve(this.size)}}class Mr extends Er{constructor(e){super(),this.cr=e}applyChanges(e){const n=[];
1return this.changes.forEach((t,i)=>{i.isValidDocument()?n.push(this.cr.addEntry(e,i)):this.cr.removeEntry(t)}),ti.waitFor(n)}getFromCache(e,n){return this.cr.getEntry(e,n)}getAllFromCache(e,n){return this.cr.getEntries(e,n)}}class Zr{constructor(e){this.persistence=e,this.Nr=new Aa(e=>pa(e),ma),this.lastRemoteSnapshotVersion=Qt.min(),this.highestTargetId=0,this.Lr=0,this.Br=new _r,this.targetCount=0,this.kr=Tr.Bn()}forEachTarget(e,n){return this.Nr.forEach((e,t)=>n(t)),ti.resolve()}getLastRemoteSnapshotVersion(e){return ti.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return ti.resolve(this.Lr)}allocateTargetId(e){return this.highestTargetId=this.kr.next(),ti.resolve(this.highestTargetId)}setTargetsMetadata(e,n,t){return t&&(this.lastRemoteSnapshotVersion=t),n>this.Lr&&(this.Lr=n),ti.resolve()}Kn(e){this.Nr.set(e.target,e);const n=e.targetId;n>this.highestTargetId&&(this.kr=new Tr(n),this.highestTargetId=n),e.sequenceNumber>this.Lr&&(this.Lr=e.sequenceNumber)}addTargetData(e,n){return this.Kn(n),this.targetCount+=1,ti.resolve()}updateTargetData(e,n){return this.Kn(n),ti.resolve()}removeTargetData(e,n){return this.Nr.delete(n.target),this.Br.gr(n.targetId),this.targetCount-=1,ti.resolve()}removeTargets(e,n,t){let i=0;const a=[];return this.Nr.forEach((o,r)=>{r.sequenceNumber<=n&&null===t.get(r.targetId)&&(this.Nr.delete(o),a.push(this.removeMatchingKeysForTargetId(e,r.targetId)),i++)}),ti.waitFor(a).next(()=>i)}getTargetCount(e){return ti.resolve(this.targetCount)}getTargetData(e,n){const t=this.Nr.get(n)||null;return ti.resolve(t)}addMatchingKeys(e,n,t){return this.Br.Rr(n,t),ti.resolve()}removeMatchingKeys(e,n,t){this.Br.mr(n,t);const i=this.persistence.referenceDelegate,a=[];return i&&n.forEach(n=>{a.push(i.markPotentiallyOrphaned(e,n))}),ti.waitFor(a)}removeMatchingKeysForTargetId(e,n){return this.Br.gr(n),ti.resolve()}getMatchingKeysForTargetId(e,n){const t=this.Br.yr(n);return ti.resolve(t)}containsKey(e,n){return ti.resolve(this.Br.containsKey(n))}}class Jr{constructor(e,n){this.qr={},this.overlays={},this.Qr=new ai(0),this.Kr=!1,this.Kr=!0,this.$r=new Yr,this.referenceDelegate=e(this),this.Ur=new Zr(this),this.indexManager=new Cr,this.remoteDocumentCache=new Nr(e=>this.referenceDelegate.Wr(e)),this.serializer=new br(n),this.Gr=new xr(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.Kr=!1,Promise.resolve()}get started(){return this.Kr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let n=this.overlays[e.toKey()];return n||(n=new Ar,this.overlays[e.toKey()]=n),n}getMutationQueue(e,n){let t=this.qr[e.toKey()];return t||(t=new Pr(n,this.referenceDelegate),this.qr[e.toKey()]=t),t}getGlobalsCache(){return this.$r}getTargetCache(){return this.Ur}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Gr}runTransaction(e,n,t){Ct("MemoryPersistence","Starting transaction:",e);const i=new Br(this.Qr.next());return this.referenceDelegate.zr(),t(i).next(e=>this.referenceDelegate.jr(i).next(()=>e)).toPromise().then(e=>(i.raiseOnCommittedEvent(),e))}Hr(e,n){return ti.or(Object.values(this.qr).map(t=>()=>t.containsKey(e,n)))}}class Br extends ei{constructor(e){super(),this.currentSequenceNumber=e}}class Rr{constructor(e){this.persistence=e,this.Jr=new _r,this.Yr=null}static Zr(e){return new Rr(e)}get Xr(){if(this.Yr)return this.Yr;throw kt()}addReference(e,n,t){return this.Jr.addReference(t,n),this.Xr.delete(t.toString()),ti.resolve()}removeReference(e,n,t){return this.Jr.removeReference(t,n),this.Xr.add(t.toString()),ti.resolve()}markPotentiallyOrphaned(e,n){return this.Xr.add(n.toString()),ti.resolve()}removeTarget(e,n){this.Jr.gr(n.targetId).forEach(e=>this.Xr.add(e.toString()));const t=this.persistence.getTargetCache();return t.getMatchingKeysForTargetId(e,n.targetId).next(e=>{e.forEach(e=>this.Xr.add(e.toString()))}).next(()=>t.removeTargetData(e,n))}zr(){this.Yr=new Set}jr(e){const n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return ti.forEach(this.Xr,t=>{const i=zt.fromPath(t);return this.ei(e,i).next(e=>{e||n.removeEntry(i,Qt.min())})}).next(()=>(this.Yr=null,n.apply(e)))}updateLimboDocument(e,n){return this.ei(e,n).next(e=>{e?this.Xr.delete(n.toString()):this.Xr.add(n.toString())})}Wr(e){return 0}ei(e,n){return ti.or([()=>ti.resolve(this.Jr.containsKey(n)),()=>this.persistence.getTargetCache().containsKey(e,n),()=>this.persistence.Hr(e,n)])}}class Fr{constructor(e,n,t,i){this.targetId=e,this.fromCache=n,this.$i=t,this.Ui=i}static Wi(e,n){let t=Fa(),i=Fa();for(const a of n.docChanges)switch(a.type){case 0:t=t.add(a.doc.key);break;case 1:i=i.add(a.doc.key)}return new Fr(e,n.fromCache,t,i)}}class Xr{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class Hr{constructor(){this.Gi=!1,this.zi=!1,this.ji=100,this.Hi=be()?8:function(e){const n=e.match(/Android ([\d.]+)/i),t=n?n[1].split(".").slice(0,2).join("."):"-1";return Number(t)}(ye())>0?6:4}initialize(e,n){this.Ji=e,this.indexManager=n,this.Gi=!0}getDocumentsMatchingQuery(e,n,t,i){const a={result:null};return this.Yi(e,n).next(e=>{a.result=e}).next(()=>{if(!a.result)return this.Zi(e,n,i,t).next(e=>{a.result=e})}).next(()=>{if(a.result)return;const t=new Xr;return this.Xi(e,n,t).next(i=>{if(a.result=i,this.zi)return this.es(e,n,t,i.size)})}).next(()=>a.result)}es(e,n,t,i){return t.documentReadCount<this.ji?(St()<=Ne.DEBUG&&Ct("QueryEngine","SDK will not create cache indexes for query:",Ea(n),"since it only creates cache indexes for collection contains","more than or equal to",this.ji,"documents"),ti.resolve()):(St()<=Ne.DEBUG&&Ct("QueryEngine","Query:",Ea(n),"scans",t.documentReadCount,"local documents and returns",i,"documents as results."),t.documentReadCount>this.Hi*i?(St()<=Ne.DEBUG&&Ct("QueryEngine","The SDK decides to create cache indexes for query:",Ea(n),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Sa(n))):ti.resolve())}Yi(e,n){if(ya(n))return ti.resolve(null);let t=Sa(n);return this.indexManager.getIndexType(e,t).next(i=>0===i?null:(null!==n.limit&&1===i&&(n=Ca(n,null,"F"),t=Sa(n)),this.indexManager.getDocumentsMatchingTarget(e,t).next(i=>{const a=Fa(...i);return this.Ji.getDocuments(e,a).next(i=>this.indexManager.getMinOffset(e,t).next(t=>{const o=this.ts(n,i);return this.ns(n,o,a,t.readTime)?this.Yi(e,Ca(n,null,"F")):this.rs(e,o,n,t)}))})))}Zi(e,n,t,i){return ya(n)||i.isEqual(Qt.min())?ti.resolve(null):this.Ji.getDocuments(e,t).next(a=>{const o=this.ts(n,a);return this.ns(n,o,t,i)?ti.resolve(null):(St()<=Ne.DEBUG&&Ct("QueryEngine","Re-using previous result from %s to execute query: %s",i.toString(),Ea(n)),this.rs(e,o,n,function(e,n){const t=e.toTimestamp().seconds,i=e.toTimestamp().nanoseconds+1,a=Qt.fromTimestamp(1e9===i?new Ot(t+1,0):new Ot(t,i));return new Vt(a,zt.empty(),n)}(i,-1)).next(e=>e))})}ts(e,n){let t=new gi(Da(e));
1return n.forEach((n,i)=>{ka(e,i)&&(t=t.add(i))}),t}ns(e,n,t,i){if(null===e.limit)return!1;if(t.size!==n.size)return!0;const a="F"===e.limitType?n.last():n.first();return!!a&&(a.hasPendingWrites||a.version.compareTo(i)>0)}Xi(e,n,t){return St()<=Ne.DEBUG&&Ct("QueryEngine","Using full collection scan to execute query:",Ea(n)),this.Ji.getDocumentsMatchingQuery(e,n,Vt.min(),t)}rs(e,n,t,i){return this.Ji.getDocumentsMatchingQuery(e,t,i).next(e=>(n.forEach(n=>{e=e.insert(n.key,n)}),e))}}class Gr{constructor(e,n,t,i){this.persistence=e,this.ss=n,this.serializer=i,this.os=new ci(Ht),this._s=new Aa(e=>pa(e),ma),this.us=new Map,this.cs=e.getRemoteDocumentCache(),this.Ur=e.getTargetCache(),this.Gr=e.getBundleCache(),this.ls(t)}ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new Dr(this.cs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.cs.setIndexManager(this.indexManager),this.ss.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",n=>e.collect(n,this.os))}}async function Or(e,n){const t=xt(e);return await t.persistence.runTransaction("Handle user change","readonly",e=>{let i;return t.mutationQueue.getAllMutationBatches(e).next(a=>(i=a,t.ls(n),t.mutationQueue.getAllMutationBatches(e))).next(n=>{const a=[],o=[];let r=Fa();for(const e of i){a.push(e.batchId);for(const n of e.mutations)r=r.add(n.key)}for(const e of n){o.push(e.batchId);for(const n of e.mutations)r=r.add(n.key)}return t.localDocuments.getDocuments(e,r).next(e=>({hs:e,removedBatchIds:a,addedBatchIds:o}))})})}function Qr(e){const n=xt(e);return n.persistence.runTransaction("Get last remote snapshot version","readonly",e=>n.Ur.getLastRemoteSnapshotVersion(e))}function Kr(e,n){const t=xt(e),i=n.snapshotVersion;let a=t.os;return t.persistence.runTransaction("Apply remote event","readwrite-primary",e=>{const o=t.cs.newChangeBuffer({trackRemovals:!0});a=t.os;const r=[];
1n.targetChanges.forEach((o,s)=>{const u=a.get(s);if(!u)return;r.push(t.Ur.removeMatchingKeys(e,o.removedDocuments,s).next(()=>t.Ur.addMatchingKeys(e,o.addedDocuments,s)));let l=u.withSequenceNumber(e.currentSequenceNumber);var c,h,d;null!==n.targetMismatches.get(s)?l=l.withResumeToken(vi.EMPTY_BYTE_STRING,Qt.min()).withLastLimboFreeSnapshotVersion(Qt.min()):o.resumeToken.approximateByteSize()>0&&(l=l.withResumeToken(o.resumeToken,i)),a=a.insert(s,l),h=l,d=o,(0===(c=u).resumeToken.approximateByteSize()||h.snapshotVersion.toMicroseconds()-c.snapshotVersion.toMicroseconds()>=3e8||d.addedDocuments.size+d.modifiedDocuments.size+d.removedDocuments.size>0)&&r.push(t.Ur.updateTargetData(e,l))});let s=_a(),u=Fa();if(n.documentUpdates.forEach(i=>{n.resolvedLimboDocuments.has(i)&&r.push(t.persistence.referenceDelegate.updateLimboDocument(e,i))}),r.push(function(e,n,t){let i=Fa(),a=Fa();return t.forEach(e=>i=i.add(e)),n.getEntries(e,i).next(e=>{let i=_a();return t.forEach((t,o)=>{const r=e.get(t);o.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(t)),o.isNoDocument()&&o.version.isEqual(Qt.min())?(n.removeEntry(t,o.readTime),i=i.insert(t,o)):!r.isValidDocument()||o.version.compareTo(r.version)>0||0===o.version.compareTo(r.version)&&r.hasPendingWrites?(n.addEntry(o),i=i.insert(t,o)):Ct("LocalStore","Ignoring outdated watch update for ",t,". Current version:",r.version," Watch version:",o.version)}),{Ps:i,Is:a}})}(e,o,n.documentUpdates).next(e=>{s=e.Ps,u=e.Is})),!i.isEqual(Qt.min())){const n=t.Ur.getLastRemoteSnapshotVersion(e).next(n=>t.Ur.setTargetsMetadata(e,e.currentSequenceNumber,i));r.push(n)}return ti.waitFor(r).next(()=>o.apply(e)).next(()=>t.localDocuments.getLocalViewOfDocuments(e,s,u)).next(()=>s)}).then(e=>(t.os=a,e))}function jr(e,n){const t=xt(e);return t.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===n&&(n=-1),t.mutationQueue.getNextMutationBatchAfterBatchId(e,n)))}async function Wr(e,n,t){const i=xt(e),a=i.os.get(n),o=t?"readwrite":"readwrite-primary";try{t||await i.persistence.runTransaction("Release target",o,e=>i.persistence.referenceDelegate.removeTarget(e,a))}catch(r){if(!ii(r))throw r;Ct("LocalStore",`Failed to update sequence numbers for target ${n}: ${r}`)}i.os=i.os.remove(n),i._s.delete(a.target)}function Ur(e,n,t){const i=xt(e);let a=Qt.min(),o=Fa();return i.persistence.runTransaction("Execute query","readwrite",e=>function(e,n,t){const i=xt(e),a=i._s.get(t);return void 0!==a?ti.resolve(i.os.get(a)):i.Ur.getTargetData(n,t)}(i,e,Sa(n)).next(n=>{if(n)return a=n.lastLimboFreeSnapshotVersion,i.Ur.getMatchingKeysForTargetId(e,n.targetId).next(e=>{o=e})}).next(()=>i.ss.getDocumentsMatchingQuery(e,n,t?a:Qt.min(),t?o:Fa())).next(e=>(function(e,n,t){let i=e.us.get(n)||Qt.min();t.forEach((e,n)=>{n.readTime.compareTo(i)>0&&(i=n.readTime)}),e.us.set(n,i)}(i,function(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}(n),e),{documents:e,Ts:o})))}class zr{constructor(){this.activeTargetIds=Xa}fs(e){this.activeTargetIds=this.activeTargetIds.add(e)}gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Vs(){const e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class $r{constructor(){this.so=new zr,this.oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,n,t){}addLocalQueryTarget(e,n=!0){return n&&this.so.fs(e),this.oo[e]||"not-current"}updateQueryState(e,n,t){this.oo[e]=n}removeLocalQueryTarget(e){this.so.gs(e)}isLocalQueryTarget(e){return this.so.activeTargetIds.has(e)}clearQueryState(e){delete this.oo[e]}getAllActiveQueryTargets(){return this.so.activeTargetIds}isActiveQueryTarget(e){return this.so.activeTargetIds.has(e)}start(){return this.so=new zr,Promise.resolve()}handleUserChange(e,n,t){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class Vr{_o(e){}shutdown(){}}class qr{constructor(){this.ao=()=>this.uo(),this.co=()=>this.lo(),this.ho=[],this.Po()}_o(e){this.ho.push(e)}shutdown(){window.removeEventListener("online",this.ao),window.removeEventListener("offline",this.co)}Po(){window.addEventListener("online",this.ao),window.addEventListener("offline",this.co)}uo(){Ct("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const e of this.ho)e(0)}lo(){Ct("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const e of this.ho)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let es=null;function ns(){return null===es?es=268435456+Math.round(2147483648*Math.random()):es++,"0x"+es.toString(16)}const ts={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregation
1Query:"runAggregationQuery"};class is{constructor(e){this.Io=e.Io,this.To=e.To}Eo(e){this.Ao=e}Ro(e){this.Vo=e}mo(e){this.fo=e}onMessage(e){this.po=e}close(){this.To()}send(e){this.Io(e)}yo(){this.Ao()}wo(){this.Vo()}So(e){this.fo(e)}bo(e){this.po(e)}}const as="WebChannelConnection";class os extends class{constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const n=e.ssl?"https":"http",t=encodeURIComponent(this.databaseId.projectId),i=encodeURIComponent(this.databaseId.database);this.Do=n+"://"+e.host,this.vo=`projects/${t}/databases/${i}`,this.Co="(default)"===this.databaseId.database?`project_id=${t}`:`project_id=${t}&database_id=${i}`}get Fo(){return!1}Mo(e,n,t,i,a){const o=ns(),r=this.xo(e,n.toUriEncodedString());Ct("RestConnection",`Sending RPC '${e}' ${o}:`,r,t);const s={"google-cloud-resource-prefix":this.vo,"x-goog-request-params":this.Co};return this.Oo(s,i,a),this.No(e,r,s,t).then(n=>(Ct("RestConnection",`Received RPC '${e}' ${o}: `,n),n),n=>{throw Tt("RestConnection",`RPC '${e}' ${o} failed with error: `,n,"url: ",r,"request:",t),n})}Lo(e,n,t,i,a,o){return this.Mo(e,n,t,i,a)}Oo(e,n,t){e["X-Goog-Api-Client"]="gl-js/ fire/"+yt,e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),n&&n.headers.forEach((n,t)=>e[t]=n),t&&t.headers.forEach((n,t)=>e[t]=n)}xo(e,n){const t=ts[e];return`${this.Do}/v1/${n}:${t}`}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}No(e,n,t,i){const a=ns();return new Promise((o,r)=>{const s=new ut;s.setWithCredentials(!0),s.listenOnce(ct.COMPLETE,()=>{try{switch(s.getLastErrorCode()){case ht.NO_ERROR:const n=s.getResponseJson();Ct(as,`XHR for RPC '${e}' ${a} received:`,JSON.stringify(n)),o(n);break;case ht.TIMEOUT:Ct(as,`RPC '${e}' ${a} timed out`),r(new Yt(At.DEADLINE_EXCEEDED,"Request time out"));break;case ht.HTTP_ERROR:const t=s.getStatus();if(Ct(as,`RPC '${e}' ${a} failed with status:`,t,"response text:",s.getResponseText()),t>0){let e=s.getResponseJson();Array.isArray(e)&&(e=e[0]);const n=null==e?void 0:e.error;if(n&&n.status&&n.message){const e=function(e){const n=e.toLowerCase().replace(/_/g,"-");return Object.values(At).indexOf(n)>=0?n:At.UNKNOWN}(n.status);r(new Yt(e,n.message))}else r(new Yt(At.UNKNOWN,"Server responded with status "+s.getStatus()))}else r(new Yt(At.UNAVAILABLE,"Connection failed."));break;
1default:kt()}}finally{Ct(as,`RPC '${e}' ${a} completed.`)}});const u=JSON.stringify(i);Ct(as,`RPC '${e}' ${a} sending request:`,i),s.send(n,"POST",u,t,15)})}Bo(e,n,t){const i=ns(),a=[this.Do,"/","google.firestore.v1.Firestore","/",e,"/channel"],o=mt(),r=pt(),s={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(s.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(s.useFetchStreams=!0),this.Oo(s.initMessageHeaders,n,t),s.encodeInitMessageHeaders=!0;const l=a.join("");Ct(as,`Creating RPC '${e}' stream ${i}: ${l}`,s);const c=o.createWebChannel(l,s);let h=!1,d=!1;const g=new is({Io:n=>{d?Ct(as,`Not sending because RPC '${e}' stream ${i} is closed:`,n):(h||(Ct(as,`Opening RPC '${e}' stream ${i} transport.`),c.open(),h=!0),Ct(as,`RPC '${e}' stream ${i} sending:`,n),c.send(n))},To:()=>c.close()}),p=(e,n,t)=>{e.listen(n,e=>{try{t(e)}catch(n){setTimeout(()=>{throw n},0)}})};return p(c,lt.EventType.OPEN,()=>{d||(Ct(as,`RPC '${e}' stream ${i} transport opened.`),g.yo())}),p(c,lt.EventType.CLOSE,()=>{d||(d=!0,Ct(as,`RPC '${e}' stream ${i} transport closed`),g.So())}),p(c,lt.EventType.ERROR,n=>{d||(d=!0,Tt(as,`RPC '${e}' stream ${i} transport errored:`,n),g.So(new Yt(At.UNAVAILABLE,"The operation could not be completed")))}),p(c,lt.EventType.MESSAGE,n=>{var t;if(!d){const a=n.data[0];Dt(!!a);const o=a,r=o.error||(null===(t=o[0])||void 0===t?void 0:t.error);if(r){Ct(as,`RPC '${e}' stream ${i} received error:`,r);const n=r.status;let t=function(e){const n=To[e];if(void 0!==n)return Do(n)}(n),a=r.message;void 0===t&&(t=At.INTERNAL,a="Unknown error status: "+n+" with message "+r.message),d=!0,g.So(new Yt(t,a)),c.close()}else Ct(as,`RPC '${e}' stream ${i} received:`,a),g.bo(a)}}),p(r,gt.STAT_EVENT,n=>{n.stat===dt.PROXY?Ct(as,`RPC '${e}' stream ${i} detected buffering proxy`):n.stat===dt.NOPROXY&&Ct(as,`RPC '${e}' stream ${i} detected no buffering proxy`)}),setTimeout(()=>{g.wo()},0),g}}function rs(){return"undefined"!=typeof document?document:null}function ss(e){return new Qo(e,!0)}class us{constructor(e,n,t=1e3,i=1.5,a=6e4){this.ui=e,this.timerId=n,this.ko=t,this.qo=i,this.Qo=a,this.Ko=0,this.$o=null,this.Uo=Date.now(),this.reset()}reset(){this.Ko=0}Wo(){this.Ko=this.Qo}Go(e){this.cancel();const n=Math.floor(this.Ko+this.zo()),t=Math.max(0,Date.now()-this.Uo),i=Math.max(0,n-t);i>0&&Ct("ExponentialBackoff",`Backing off for ${i} ms (base delay: ${this.Ko} ms, delay with jitter: ${n} ms, last attempt: ${t} ms ago)`),this.$o=this.ui.enqueueAfterDelay(this.timerId,i,()=>(this.Uo=Date.now(),e())),this.Ko*=this.qo,this.Ko<this.ko&&(this.Ko=this.ko),this.Ko>this.Qo&&(this.Ko=this.Qo)}jo(){null!==this.$o&&(this.$o.skipDelay(),this.$o=null)}
1cancel(){null!==this.$o&&(this.$o.cancel(),this.$o=null)}zo(){return(Math.random()-.5)*this.Ko}}class ls{constructor(e,n,t,i,a,o,r,s){this.ui=e,this.Ho=t,this.Jo=i,this.connection=a,this.authCredentialsProvider=o,this.appCheckCredentialsProvider=r,this.listener=s,this.state=0,this.Yo=0,this.Zo=null,this.Xo=null,this.stream=null,this.e_=0,this.t_=new us(e,n)}n_(){return 1===this.state||5===this.state||this.r_()}r_(){return 2===this.state||3===this.state}start(){this.e_=0,4!==this.state?this.auth():this.i_()}async stop(){this.n_()&&await this.close(0)}s_(){this.state=0,this.t_.reset()}o_(){this.r_()&&null===this.Zo&&(this.Zo=this.ui.enqueueAfterDelay(this.Ho,6e4,()=>this.__()))}a_(e){this.u_(),this.stream.send(e)}async __(){if(this.r_())return this.close(0)}u_(){this.Zo&&(this.Zo.cancel(),this.Zo=null)}c_(){this.Xo&&(this.Xo.cancel(),this.Xo=null)}async close(e,n){this.u_(),this.c_(),this.t_.cancel(),this.Yo++,4!==e?this.t_.reset():n&&n.code===At.RESOURCE_EXHAUSTED?(Lt(n.toString()),Lt("Using maximum backoff delay to prevent overloading the backend."),this.t_.Wo()):n&&n.code===At.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.l_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.mo(n)}l_(){}auth(){this.state=1;const e=this.h_(this.Yo),n=this.Yo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.Yo===n&&this.P_(e,t)},n=>{e(()=>{const e=new Yt(At.UNKNOWN,"Fetching auth token failed: "+n.message);return this.I_(e)})})}P_(e,n){const t=this.h_(this.Yo);this.stream=this.T_(e,n),this.stream.Eo(()=>{t(()=>this.listener.Eo())}),this.stream.Ro(()=>{t(()=>(this.state=2,this.Xo=this.ui.enqueueAfterDelay(this.Jo,1e4,()=>(this.r_()&&(this.state=3),Promise.resolve())),this.listener.Ro()))}),this.stream.mo(e=>{t(()=>this.I_(e))}),this.stream.onMessage(e=>{t(()=>1==++this.e_?this.E_(e):this.onNext(e))})}i_(){this.state=5,this.t_.Go(async()=>{this.state=0,this.start()})}I_(e){return Ct("PersistentStream",`close with error: ${e}`),this.stream=null,this.close(4,e)}h_(e){return n=>{this.ui.enqueueAndForget(()=>this.Yo===e?n():(Ct("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class cs extends ls{constructor(e,n,t,i,a,o){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",n,t,i,o),this.serializer=a}T_(e,n){return this.connection.Bo("Listen",e,n)}E_(e){return this.onNext(e)}onNext(e){this.t_.reset();const n=function(e,n){let t;if("targetChange"in n){n.targetChange;const a="NO_CHANGE"===(i=n.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===i?1:"REMOVE"===i?2:"CURRENT"===i?3:"RESET"===i?4:kt(),o=n.targetChange.targetIds||[],r=function(e,n){return e.useProto3Json?(Dt(void 0===n||"string"==typeof n),vi.fromBase64String(n||"")):(Dt(void 0===n||n instanceof Buffer||n instanceof Uint8Array),vi.fromUint8Array(n||new Uint8Array))}(e,n.targetChange.resumeToken),s=n.targetChange.cause,u=s&&function(e){const n=void 0===e.code?At.UNKNOWN:Do(e.code);return new Yt(n,e.message||"")}(s);t=new Jo(a,o,r,u||null)}else if("documentChange"in n){n.documentChange;const i=n.documentChange;i.document,i.document.name,i.document.updateTime;const a=nr(e,i.document.name),o=zo(i.document.updateTime),r=i.document.createTime?zo(i.document.createTime):Qt.min(),s=new Hi({mapValue:{fields:i.document.fields}}),u=Oi.newFoundDocument(a,o,r,s),l=i.targetIds||[],c=i.removedTargetIds||[];t=new Mo(l,c,u.key,u)}else if("documentDelete"in n){n.documentDelete;const i=n.documentDelete;i.document;const a=nr(e,i.document),o=i.readTime?zo(i.readTime):Qt.min(),r=Oi.newNoDocument(a,o),s=i.removedTargetIds||[];t=new Mo([],s,r.key,r)}else if("documentRemove"in n){n.documentRemove;const i=n.documentRemove;i.document;const a=nr(e,i.document),o=i.removedTargetIds||[];t=new Mo([],o,a,null)}else{if(!("filter"in n))return kt();{n.filter;const e=n.filter;e.targetId;const{count:i=0,unchangedNames:a}=e,o=new Lo(i,a),r=e.targetId;t=new Zo(r,o)}}var i;return t}(this.serializer,e),t=function(e){if(!("targetChange"in e))return Qt.min();const n=e.targetChange;return n.targetIds&&n.targetIds.length?Qt.min():n.readTime?zo(n.readTime):Qt.min()}(e);return this.listener.d_(n,t)}A_(e){const n={};n.database=ir(this.serializer),n.addTarget=function(e,n){let t;const i=n.target;if(t=fa(i)?{documents:sr(e,i)}:{query:ur(e,i)._t},t.targetId=n.targetId,n.resumeToken.approximateByteSize()>0){t.resumeToken=Wo(e,n.resumeToken);const i=Ko(e,n.expectedCount);null!==i&&(t.expectedCount=i)}else if(n.snapshotVersion.compareTo(Qt.min())>0){t.readTime=jo(e,n.snapshotVersion.toTimestamp());const i=Ko(e,n.expectedCount);null!==i&&(t.expectedCount=i)}return t}(this.serializer,e);const t=function(e,n){const t=function(e){switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return kt()}}(n.purpose);return null==t?null:{"goog-listen-tags":t}}(this.serializer,e);t&&(n.labels=t),this.a_(n)}R_(e){const n={};n.database=ir(this.serializer),n.removeTarget=e,this.a_(n)}}class hs extends ls{constructor(e,n,t,i,a,o){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",n,t,i,o),this.serializer
1=a}get V_(){return this.e_>0}start(){this.lastStreamToken=void 0,super.start()}l_(){this.V_&&this.m_([])}T_(e,n){return this.connection.Bo("Write",e,n)}E_(e){return Dt(!!e.streamToken),this.lastStreamToken=e.streamToken,Dt(!e.writeResults||0===e.writeResults.length),this.listener.f_()}onNext(e){Dt(!!e.streamToken),this.lastStreamToken=e.streamToken,this.t_.reset();const n=function(e,n){return e&&e.length>0?(Dt(void 0!==n),e.map(e=>function(e,n){let t=e.updateTime?zo(e.updateTime):zo(n);return t.isEqual(Qt.min())&&(t=zo(n)),new io(t,e.transformResults||[])}(e,n))):[]}(e.writeResults,e.commitTime),t=zo(e.commitTime);return this.listener.g_(t,n)}p_(){const e={};e.database=ir(this.serializer),this.a_(e)}m_(e){const n={streamToken:this.lastStreamToken,writes:e.map(e=>rr(this.serializer,e))};this.a_(n)}}class ds extends class{}{constructor(e,n,t,i){super(),this.authCredentials=e,this.appCheckCredentials=n,this.connection=t,this.serializer=i,this.y_=!1}w_(){if(this.y_)throw new Yt(At.FAILED_PRECONDITION,"The client has already been terminated.")}Mo(e,n,t,i){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([a,o])=>this.connection.Mo(e,Vo(n,t),i,a,o)).catch(e=>{throw"FirebaseError"===e.name?(e.code===At.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new Yt(At.UNKNOWN,e.toString())})}Lo(e,n,t,i,a){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([o,r])=>this.connection.Lo(e,Vo(n,t),i,o,r,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===At.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new Yt(At.UNKNOWN,e.toString())})}terminate(){this.y_=!0,this.connection.terminate()}}class gs{constructor(e,n){this.asyncQueue=e,this.onlineStateHandler=n,this.state="Unknown",this.S_=0,this.b_=null,this.D_=!0}v_(){0===this.S_&&(this.C_("Unknown"),this.b_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.b_=null,this.F_("Backend didn't respond within 10 seconds."),this.C_("Offline"),Promise.resolve())))}M_(e){"Online"===this.state?this.C_("Unknown"):(this.S_++,this.S_>=1&&(this.x_(),this.F_(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.C_("Offline")))}set(e){this.x_(),this.S_=0,"Online"===e&&(this.D_=!1),this.C_(e)}C_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}F_(e){const n=`Could not reach Cloud Firestore backend. ${e}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.D_?(Lt(n),this.D_=!1):Ct("OnlineStateTracker",n)}x_(){null!==this.b_&&(this.b_.cancel(),this.b_=null)}}class ps{constructor(e,n,t,i,a){this.localStore=e,this.datastore=n,this.asyncQueue=t,this.remoteSyncer={},this.O_=[],this.N_=new Map,this.L_=new Set,this.B_=[],this.k_=a,this.k_._o(e=>{t.enqueueAndForget(async()=>{Ls(this)&&(Ct("RemoteStore","Restarting streams for network reachability change."),await async function(e){const n=xt(e);n.L_.add(4),await fs(n),n.q_.set("Unknown"),n.L_.delete(4),await ms(n)}(this))})}),this.q_=new gs(t,i)}}async function ms(e){if(Ls(e))for(const n of e.B_)await n(!0)}async function fs(e){for(const n of e.B_)await n(!1)}function vs(e,n){const t=xt(e);t.N_.has(n.targetId)||(t.N_.set(n.targetId,n),Cs(t)?Ss(t):Xs(t).r_()&&ys(t,n))}function ws(e,n){const t=xt(e),i=Xs(t);t.N_.delete(n),i.r_()&&bs(t,n),0===t.N_.size&&(i.r_()?i.o_():Ls(t)&&t.q_.set("Unknown"))}function ys(e,n){if(e.Q_.xe(n.targetId),n.resumeToken.approximateByteSize()>0||n.snapshotVersion.compareTo(Qt.min())>0){const t=e.remoteSyncer.getRemoteKeysForTarget(n.targetId).size;n=n.withExpectedCount(t)}Xs(e).A_(n)}function bs(e,n){e.Q_.xe(n),Xs(e).R_(n)}function Ss(e){e.Q_=new Ro({getRemoteKeysForTarget:n=>e.remoteSyncer.getRemoteKeysForTarget(n),ot:n=>e.N_.get(n)||null,tt:()=>e.datastore.serializer.databaseId}),Xs(e).start(),e.q_.v_()}function Cs(e){return Ls(e)&&!Xs(e).n_()&&e.N_.size>0}function Ls(e){return 0===xt(e).L_.size}function Ts(e){e.Q_=void 0}async function Es(e){e.q_.set("Online")}async function ks(e){e.N_.forEach((n,t)=>{ys(e,n)})}async function Ds(e,n){Ts(e),Cs(e)?(e.q_.M_(n),Ss(e)):e.q_.set("Unknown")}async function xs(e,n,t){if(e.q_.set("Online"),n instanceof Jo&&2===n.state&&n.cause)try{await async function(e,n){const t=n.cause;for(const i of n.targetIds)e.N_.has(i)&&(await e.remoteSyncer.rejectListen(i,t),e.N_.delete(i),e.Q_.removeTarget(i))}
1(e,n)}catch(i){Ct("RemoteStore","Failed to remove targets %s: %s ",n.targetIds.join(","),i),await As(e,i)}else if(n instanceof Mo?e.Q_.Ke(n):n instanceof Zo?e.Q_.He(n):e.Q_.We(n),!t.isEqual(Qt.min()))try{const n=await Qr(e.localStore);t.compareTo(n)>=0&&await function(e,n){const t=e.Q_.rt(n);return t.targetChanges.forEach((t,i)=>{if(t.resumeToken.approximateByteSize()>0){const a=e.N_.get(i);a&&e.N_.set(i,a.withResumeToken(t.resumeToken,n))}}),t.targetMismatches.forEach((n,t)=>{const i=e.N_.get(n);if(!i)return;e.N_.set(n,i.withResumeToken(vi.EMPTY_BYTE_STRING,i.snapshotVersion)),bs(e,n);const a=new yr(i.target,n,t,i.sequenceNumber);ys(e,a)}),e.remoteSyncer.applyRemoteEvent(t)}(e,t)}catch(a){Ct("RemoteStore","Failed to raise snapshot:",a),await As(e,a)}}async function As(e,n,t){if(!ii(n))throw n;e.L_.add(1),await fs(e),e.q_.set("Offline"),t||(t=()=>Qr(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{Ct("RemoteStore","Retrying IndexedDB access"),await t(),e.L_.delete(1),await ms(e)})}function Ys(e,n){return n().catch(t=>As(e,t,n))}async function _s(e){const n=xt(e),t=Hs(n);let i=n.O_.length>0?n.O_[n.O_.length-1].batchId:-1;for(;Is(n);)try{const e=await jr(n.localStore,i);if(null===e){0===n.O_.length&&t.o_();break}i=e.batchId,Ps(n,e)}catch(a){await As(n,a)}Ns(n)&&Ms(n)}function Is(e){return Ls(e)&&e.O_.length<10}function Ps(e,n){e.O_.push(n);const t=Hs(e);t.r_()&&t.V_&&t.m_(n.mutations)}function Ns(e){return Ls(e)&&!Hs(e).n_()&&e.O_.length>0}function Ms(e){Hs(e).start()}async function Zs(e){Hs(e).p_()}async function Js(e){const n=Hs(e);for(const t of e.O_)n.m_(t.mutations)}async function Bs(e,n,t){const i=e.O_.shift(),a=So.from(i,n,t);await Ys(e,()=>e.remoteSyncer.applySuccessfulWrite(a)),await _s(e)}async function Rs(e,n){n&&Hs(e).V_&&await async function(e,n){if(ko(t=n.code)&&t!==At.ABORTED){const t=e.O_.shift();Hs(e).s_(),await Ys(e,()=>e.remoteSyncer.rejectFailedWrite(t.batchId,n)),await _s(e)}var t}(e,n),Ns(e)&&Ms(e)}async function Fs(e,n){const t=xt(e);t.asyncQueue.verifyOperationInProgress(),Ct("RemoteStore","RemoteStore received new credentials");const i=Ls(t);t.L_.add(3),await fs(t),i&&t.q_.set("Unknown"),await t.remoteSyncer.handleCredentialChange(n),t.L_.delete(3),await ms(t)}function Xs(e){return e.K_||(e.K_=function(e,n,t){const i=xt(e);return i.w_(),new cs(n,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,t)}(e.datastore,e.asyncQueue,{Eo:Es.bind(null,e),Ro:ks.bind(null,e),mo:Ds.bind(null,e),d_:xs.bind(null,e)}),e.B_.push(async n=>{n?(e.K_.s_(),Cs(e)?Ss(e):e.q_.set("Unknown")):(await e.K_.stop(),Ts(e))})),e.K_}function Hs(e){return e.U_||(e.U_=function(e,n,t){const i=xt(e);return i.w_(),new hs(n,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,t)}(e.datastore,e.asyncQueue,{Eo:()=>Promise.resolve(),Ro:Zs.bind(null,e),mo:Rs.bind(null,e),f_:Js.bind(null,e),g_:Bs.bind(null,e)}),e.B_.push(async n=>{n?(e.U_.s_(),await _s(e)):(await e.U_.stop(),e.O_.length>0&&(Ct("RemoteStore",`Stopping write stream with ${e.O_.length} pending writes`),e.O_=[]))})),e.U_}class Gs{constructor(e,n,t,i,a){this.asyncQueue=e,this.timerId=n,this.targetTimeMs=t,this.op=i,this.removalCallback=a,this.deferred=new _t,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,n,t,i,a){const o=Date.now()+t,r=new Gs(e,n,o,i,a);return r.start(t),r}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Yt(At.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Os(e,n){if(Lt("AsyncQueue",`${n}: ${e}`),ii(e))return new Yt(At.UNAVAILABLE,`${n}: ${e}`);throw e}class Qs{constructor(e){this.comparator=e?(n,t)=>e(n,t)||zt.comparator(n.key,t.key):(e,n)=>zt.comparator(e.key,n.key),this.keyedMap=Pa(),this.sortedSet=new ci(this.comparator)}static emptySet(e){return new Qs(e.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){const n=this.keyedMap.get(e);return n?this.sortedSet.indexOf(n):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal((n,t)=>(e(n),!1))}add(e){const n=this.delete(e.key);return n.copy(n.keyedMap.insert(e.key,e),n.sortedSet.insert(e,null))}delete(e){const n=this.get(e);return n?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(n)):this}isEqual(e){if(!(e instanceof Qs))return!1;if(this.size!==e.size)return!1;const n=this.sortedSet.getIterator(),t=e.sortedSet.getIterator();for(;n.hasNext();){const e=n.getNext().key,i=t.getNext().key;if(!e.isEqual(i))return!1}return!0}toString(){const e=[];return this.forEach(n=>{e.push(n.toString())}),0===e.length?"DocumentSet ()":"DocumentSet (\n  "+e.join("  \n")+"\n)"}copy(e,n){const t=new Qs;return t.comparator=this.comparator,t.keyedMap=e,t.sortedSet=n,t}}class Ks{constructor(){this.W_=new ci(zt.comparator)}track(e){const n=e.doc.key,t=this.W_.get(n);t?0!==e.type&&3===t.type?this.W_=this.W_.insert(n,e):3===e.type&&1!==t.type?this.W_=this.W_.insert(n,{type:t.type,doc:e.doc}):2===e.type&&2===t.type?this.W_=this.W_.insert(n,{type:2,doc:e.doc}):2===e.type&&0===t.type?this.W_=this.W_.insert(n,{type:0,doc:e.doc}):1===e.type&&0===t.type?this.W_=this.W_.remove(n):1===e.type&&2===t.type?this.W_=this.W_.insert(n,{type:1,doc:t.doc}):0===e.type&&1===t.type?this.W_=this.W_.insert(n,{type:2,doc:e.doc}):kt():this.W_=this.W_.insert(n,e)}G_(){const e=[];return this.W_.inorderTraversal((n,t)=>{e.push(t)}),e}}class js{constructor(e,n,t,i,a,o,r,s,u){this.query=e,this.docs=n,this.oldDocs=t,this.docChanges=i,this.mutatedKeys=a,this.fromCache=o,this.syncStateChanged=r,this.excludesMetadataChanges=s,this.hasCachedResults=u}static fromInitialDocuments(e,n,t,i,a){const o=[];
1return n.forEach(e=>{o.push({type:0,doc:e})}),new js(e,n,Qs.emptySet(n),o,t,i,!0,!1,a)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&La(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;const n=this.docChanges,t=e.docChanges;if(n.length!==t.length)return!1;for(let i=0;i<n.length;i++)if(n[i].type!==t[i].type||!n[i].doc.isEqual(t[i].doc))return!1;return!0}}class Ws{constructor(){this.z_=void 0,this.j_=[]}H_(){return this.j_.some(e=>e.J_())}}class Us{constructor(){this.queries=zs(),this.onlineState="Unknown",this.Y_=new Set}terminate(){!function(e,n){const t=xt(e),i=t.queries;t.queries=zs(),i.forEach((e,t)=>{for(const i of t.j_)i.onError(n)})}(this,new Yt(At.ABORTED,"Firestore shutting down"))}}function zs(){return new Aa(e=>Ta(e),La)}function $s(e,n){const t=xt(e);let i=!1;for(const a of n){const e=a.query,n=t.queries.get(e);if(n){for(const e of n.j_)e.X_(a)&&(i=!0);n.z_=a}}i&&qs(t)}function Vs(e,n,t){const i=xt(e),a=i.queries.get(n);if(a)for(const o of a.j_)o.onError(t);i.queries.delete(n)}function qs(e){e.Y_.forEach(e=>{e.next()})}var eu,nu;(nu=eu||(eu={})).ea="default",nu.Cache="cache";class tu{constructor(e,n,t){this.query=e,this.ta=n,this.na=!1,this.ra=null,this.onlineState="Unknown",this.options=t||{}}X_(e){if(!this.options.includeMetadataChanges){const n=[];for(const t of e.docChanges)3!==t.type&&n.push(t);e=new js(e.query,e.docs,e.oldDocs,n,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let n=!1;return this.na?this.ia(e)&&(this.ta.next(e),n=!0):this.sa(e,this.onlineState)&&(this.oa(e),n=!0),this.ra=e,n}onError(e){this.ta.error(e)}Z_(e){this.onlineState=e;let n=!1;return this.ra&&!this.na&&this.sa(this.ra,e)&&(this.oa(this.ra),n=!0),n}sa(e,n){if(!e.fromCache)return!0;if(!this.J_())return!0;const t="Offline"!==n;return(!this.options._a||!t)&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===n)}ia(e){if(e.docChanges.length>0)return!0;const n=this.ra&&this.ra.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!n)&&!0===this.options.includeMetadataChanges}oa(e){e=js.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.na=!0,this.ta.next(e)}J_(){return this.options.source!==eu.Cache}}class iu{constructor(e){this.key=e}}class au{constructor(e){this.key=e}}class ou{constructor(e,n){this.query=e,this.Ta=n,this.Ea=null,this.hasCachedResults=!1,this.current=!1,this.da=Fa(),this.mutatedKeys=Fa(),this.Aa=Da(e),this.Ra=new Qs(this.Aa)}get Va(){return this.Ta}ma(e,n){const t=n?n.fa:new Ks,i=n?n.Ra:this.Ra;let a=n?n.mutatedKeys:this.mutatedKeys,o=i,r=!1;const s="F"===this.query.limitType&&i.size===this.query.limit?i.last():null,u="L"===this.query.limitType&&i.size===this.query.limit?i.first():null;if(e.inorderTraversal((e,n)=>{const l=i.get(e),c=ka(this.query,n)?n:null,h=!!l&&this.mutatedKeys.has(l.key),d=!!c&&(c.hasLocalMutations||this.mutatedKeys.has(c.key)&&c.hasCommittedMutations);let g=!1;l&&c?l.data.isEqual(c.data)?h!==d&&(t.track({type:3,doc:c}),g=!0):this.ga(l,c)||(t.track({type:2,doc:c}),g=!0,(s&&this.Aa(c,s)>0||u&&this.Aa(c,u)<0)&&(r=!0)):!l&&c?(t.track({type:0,doc:c}),g=!0):l&&!c&&(t.track({type:1,doc:l}),g=!0,(s||u)&&(r=!0)),g&&(c?(o=o.add(c),a=d?a.add(e):a.delete(e)):(o=o.delete(e),a=a.delete(e)))}),null!==this.query.limit)for(;o.size>this.query.limit;){const e="F"===this.query.limitType?o.last():o.first();o=o.delete(e.key),a=a.delete(e.key),t.track({type:1,doc:e})}return{Ra:o,fa:t,ns:r,mutatedKeys:a}}ga(e,n){return e.hasLocalMutations&&n.hasCommittedMutations&&!n.hasLocalMutations}applyChanges(e,n,t,i){const a=this.Ra;this.Ra=e.Ra,this.mutatedKeys=e.mutatedKeys;const o=e.fa.G_();o.sort((e,n)=>function(e,n){const t=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return kt()}};return t(e)-t(n)}(e.type,n.type)||this.Aa(e.doc,n.doc)),this.pa(t),i=null!=i&&i;const r=n&&!i?this.ya():[],s=0===this.da.size&&this.current&&!i?1:0,u=s!==this.Ea;return this.Ea=s,0!==o.length||u?{snapshot:new js(this.query,e.Ra,a,o,e.mutatedKeys,0===s,u,!1,!!t&&t.resumeToken.approximateByteSize()>0),wa:r}:{wa:r}}Z_(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Ra:this.Ra,fa:new Ks,mutatedKeys:this.mutatedKeys,ns:!1},!1)):{wa:[]}}Sa(e){return!this.Ta.has(e)&&!!this.Ra.has(e)&&!this.Ra.get(e).hasLocalMutations}
1pa(e){e&&(e.addedDocuments.forEach(e=>this.Ta=this.Ta.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ta=this.Ta.delete(e)),this.current=e.current)}ya(){if(!this.current)return[];const e=this.da;this.da=Fa(),this.Ra.forEach(e=>{this.Sa(e.key)&&(this.da=this.da.add(e.key))});const n=[];return e.forEach(e=>{this.da.has(e)||n.push(new au(e))}),this.da.forEach(t=>{e.has(t)||n.push(new iu(t))}),n}ba(e){this.Ta=e.Ts,this.da=Fa();const n=this.ma(e.documents);return this.applyChanges(n,!0)}Da(){return js.fromInitialDocuments(this.query,this.Ra,this.mutatedKeys,0===this.Ea,this.hasCachedResults)}}class ru{constructor(e,n,t){this.query=e,this.targetId=n,this.view=t}}class su{constructor(e){this.key=e,this.va=!1}}class uu{constructor(e,n,t,i,a,o){this.localStore=e,this.remoteStore=n,this.eventManager=t,this.sharedClientState=i,this.currentUser=a,this.maxConcurrentLimboResolutions=o,this.Ca={},this.Fa=new Aa(e=>Ta(e),La),this.Ma=new Map,this.xa=new Set,this.Oa=new ci(zt.comparator),this.Na=new Map,this.La=new _r,this.Ba={},this.ka=new Map,this.qa=Tr.kn(),this.onlineState="Unknown",this.Qa=void 0}get isPrimaryClient(){return!0===this.Qa}}async function lu(e,n,t=!0){const i=Yu(e);let a;const o=i.Fa.get(n);return o?(i.sharedClientState.addLocalQueryTarget(o.targetId),a=o.view.Da()):a=await hu(i,n,t,!0),a}async function cu(e,n){const t=Yu(e);await hu(t,n,!0,!1)}async function hu(e,n,t,i){const a=await function(e,n){const t=xt(e);return t.persistence.runTransaction("Allocate target","readwrite",e=>{let i;return t.Ur.getTargetData(e,n).next(a=>a?(i=a,ti.resolve(i)):t.Ur.allocateTargetId(e).next(a=>(i=new yr(n,a,"TargetPurposeListen",e.currentSequenceNumber),t.Ur.addTargetData(e,i).next(()=>i))))}).then(e=>{const i=t.os.get(e.targetId);return(null===i||e.snapshotVersion.compareTo(i.snapshotVersion)>0)&&(t.os=t.os.insert(e.targetId,e),t._s.set(n,e.targetId)),e})}(e.localStore,Sa(n)),o=a.targetId,r=e.sharedClientState.addLocalQueryTarget(o,t);let s;return i&&(s=await async function(e,n,t,i,a){e.Ka=(n,t,i)=>async function(e,n,t,i){let a=n.view.ma(t);a.ns&&(a=await Ur(e.localStore,n.query,!1).then(({documents:e})=>n.view.ma(e,a)));const o=i&&i.targetChanges.get(n.targetId),r=i&&null!=i.targetMismatches.get(n.targetId),s=n.view.applyChanges(a,e.isPrimaryClient,o,r);return Tu(e,n.targetId,s.wa),s.snapshot}(e,n,t,i);const o=await Ur(e.localStore,n,!0),r=new ou(n,o.Ts),s=r.ma(o.documents),u=No.createSynthesizedTargetChangeForCurrentChange(t,i&&"Offline"!==e.onlineState,a),l=r.applyChanges(s,e.isPrimaryClient,u);Tu(e,t,l.wa);const c=new ru(n,t,r);return e.Fa.set(n,c),e.Ma.has(t)?e.Ma.get(t).push(n):e.Ma.set(t,[n]),l.snapshot}(e,n,o,"current"===r,a.resumeToken)),e.isPrimaryClient&&t&&vs(e.remoteStore,a),s}async function du(e,n,t){const i=xt(e),a=i.Fa.get(n),o=i.Ma.get(a.targetId);if(o.length>1)return i.Ma.set(a.targetId,o.filter(e=>!La(e,n))),void i.Fa.delete(n);i.isPrimaryClient?(i.sharedClientState.removeLocalQueryTarget(a.targetId),i.sharedClientState.isActiveQueryTarget(a.targetId)||await Wr(i.localStore,a.targetId,!1).then(()=>{i.sharedClientState.clearQueryState(a.targetId),t&&ws(i.remoteStore,a.targetId),Cu(i,a.targetId)}).catch(ni)):(Cu(i,a.targetId),await Wr(i.localStore,a.targetId,!0))}async function gu(e,n){const t=xt(e),i=t.Fa.get(n),a=t.Ma.get(i.targetId);t.isPrimaryClient&&1===a.length&&(t.sharedClientState.removeLocalQueryTarget(i.targetId),ws(t.remoteStore,i.targetId))}async function pu(e,n,t){const i=function(e){const n=xt(e);return n.remoteStore.remoteSyncer.applySuccessfulWrite=wu.bind(null,n),n.remoteStore.remoteSyncer.rejectFailedWrite=yu.bind(null,n),n}(e);try{const e=await function(e,n){const t=xt(e),i=Ot.now(),a=n.reduce((e,n)=>e.add(n.key),Fa());let o,r;return t.persistence.runTransaction("Locally write mutations","readwrite",e=>{let s=_a(),u=Fa();return t.cs.getEntries(e,a).next(e=>{s=e,s.forEach((e,n)=>{n.isValidDocument()||(u=u.add(e))})}).next(()=>t.localDocuments.getOverlayedDocuments(e,s)).next(a=>{o=a;const r=[];for(const e of n){const n=co(e,o.get(e.key).overlayedDocument);null!=n&&r.push(new po(e.key,n,Gi(n.value.mapValue),ao.exists(!0)))}
1return t.mutationQueue.addMutationBatch(e,i,r,n)}).next(n=>{r=n;const i=n.applyToLocalDocumentSet(o,u);return t.documentOverlayCache.saveOverlays(e,n.batchId,i)})}).then(()=>({batchId:r.batchId,changes:Na(o)}))}(i.localStore,n);i.sharedClientState.addPendingMutation(e.batchId),function(e,n,t){let i=e.Ba[e.currentUser.toKey()];i||(i=new ci(Ht)),i=i.insert(n,t),e.Ba[e.currentUser.toKey()]=i}(i,e.batchId,t),await Du(i,e.changes),await _s(i.remoteStore)}catch(a){const e=Os(a,"Failed to persist write");t.reject(e)}}async function mu(e,n){const t=xt(e);try{const e=await Kr(t.localStore,n);n.targetChanges.forEach((e,n)=>{const i=t.Na.get(n);i&&(Dt(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),e.addedDocuments.size>0?i.va=!0:e.modifiedDocuments.size>0?Dt(i.va):e.removedDocuments.size>0&&(Dt(i.va),i.va=!1))}),await Du(t,e,n)}catch(i){await ni(i)}}function fu(e,n,t){const i=xt(e);if(i.isPrimaryClient&&0===t||!i.isPrimaryClient&&1===t){const e=[];i.Fa.forEach((t,i)=>{const a=i.view.Z_(n);a.snapshot&&e.push(a.snapshot)}),function(e,n){const t=xt(e);t.onlineState=n;let i=!1;t.queries.forEach((e,t)=>{for(const a of t.j_)a.Z_(n)&&(i=!0)}),i&&qs(t)}(i.eventManager,n),e.length&&i.Ca.d_(e),i.onlineState=n,i.isPrimaryClient&&i.sharedClientState.setOnlineState(n)}}async function vu(e,n,t){const i=xt(e);i.sharedClientState.updateQueryState(n,"rejected",t);const a=i.Na.get(n),o=a&&a.key;if(o){let e=new ci(zt.comparator);e=e.insert(o,Oi.newNoDocument(o,Qt.min()));const t=Fa().add(o),a=new Po(Qt.min(),new Map,new ci(Ht),e,t);await mu(i,a),i.Oa=i.Oa.remove(o),i.Na.delete(n),ku(i)}else await Wr(i.localStore,n,!1).then(()=>Cu(i,n,t)).catch(ni)}async function wu(e,n){const t=xt(e),i=n.batch.batchId;try{const e=await function(e,n){const t=xt(e);return t.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{const i=n.batch.keys(),a=t.cs.newChangeBuffer({trackRemovals:!0});return function(e,n,t,i){const a=t.batch,o=a.keys();let r=ti.resolve();return o.forEach(e=>{r=r.next(()=>i.getEntry(n,e)).next(n=>{const o=t.docVersions.get(e);Dt(null!==o),n.version.compareTo(o)<0&&(a.applyToRemoteDocument(n,t),n.isValidDocument()&&(n.setReadTime(t.commitVersion),i.addEntry(n)))})}),r.next(()=>e.mutationQueue.removeMutationBatch(n,a))}(t,e,n,a).next(()=>a.apply(e)).next(()=>t.mutationQueue.performConsistencyCheck(e)).next(()=>t.documentOverlayCache.removeOverlaysForBatchId(e,i,n.batch.batchId)).next(()=>t.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let n=Fa();for(let t=0;t<e.mutationResults.length;++t)e.mutationResults[t].transformResults.length>0&&(n=n.add(e.batch.mutations[t].key));return n}(n))).next(()=>t.localDocuments.getDocuments(e,i))})}(t.localStore,n);Su(t,i,null),bu(t,i),t.sharedClientState.updateMutationState(i,"acknowledged"),await Du(t,e)}catch(a){await ni(a)}}async function yu(e,n,t){const i=xt(e);try{const e=await function(e,n){const t=xt(e);return t.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let i;return t.mutationQueue.lookupMutationBatch(e,n).next(n=>(Dt(null!==n),i=n.keys(),t.mutationQueue.removeMutationBatch(e,n))).next(()=>t.mutationQueue.performConsistencyCheck(e)).next(()=>t.documentOverlayCache.removeOverlaysForBatchId(e,i,n)).next(()=>t.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,i)).next(()=>t.localDocuments.getDocuments(e,i))})}(i.localStore,n);Su(i,n,t),bu(i,n),i.sharedClientState.updateMutationState(n,"rejected",t),await Du(i,e)}catch(a){await ni(a)}}function bu(e,n){(e.ka.get(n)||[]).forEach(e=>{e.resolve()}),e.ka.delete(n)}function Su(e,n,t){const i=xt(e);let a=i.Ba[i.currentUser.toKey()];if(a){const e=a.get(n);e&&(t?e.reject(t):e.resolve(),a=a.remove(n)),i.Ba[i.currentUser.toKey()]=a}}function Cu(e,n,t=null){e.sharedClientState.removeLocalQueryTarget(n);for(const i of e.Ma.get(n))e.Fa.delete(i),t&&e.Ca.$a(i,t);e.Ma.delete(n),e.isPrimaryClient&&e.La.gr(n).forEach(n=>{e.La.containsKey(n)||Lu(e,n)})}function Lu(e,n){e.xa.delete(n.path.canonicalString());const t=e.Oa.get(n);null!==t&&(ws(e.remoteStore,t),e.Oa=e.Oa.remove(n),e.Na.delete(t),ku(e))}function Tu(e,n,t){for(const i of t)i instanceof iu?(e.La.addReference(i.key,n),Eu(e,i)):i instanceof au?(Ct("SyncEngine","Document no longer in limbo: "+i.key),e.La.removeReference(i.key,n),e.La.containsKey(i.key)||Lu(e,i.key)):kt()}function Eu(e,n){const t=n.key,i=t.path.canonicalString();e.Oa.get(t)||e.xa.has(i)||(Ct("SyncEngine","New document in limbo: "+t),e.xa.add(i),ku(e))}function ku(e){for(;e.xa.size>0&&e.Oa.size<e.maxConcurrentLimboResolutions;){const n=e.xa.values().next().value;e.xa.delete(n);const t=new zt(jt.fromString(n)),i=e.qa.next();e.Na.set(i,new su(t)),e.Oa=e.Oa.insert(t,i),vs(e.remoteStore,new yr(Sa(wa(t.path)),i,"TargetPurposeLimboResolution",ai.oe))}}async function Du(e,n,t){const i=xt(e),a=[],o=[],r=[];
1i.Fa.isEmpty()||(i.Fa.forEach((e,s)=>{r.push(i.Ka(s,n,t).then(e=>{var n;if((e||t)&&i.isPrimaryClient){const a=e?!e.fromCache:null===(n=null==t?void 0:t.targetChanges.get(s.targetId))||void 0===n?void 0:n.current;i.sharedClientState.updateQueryState(s.targetId,a?"current":"not-current")}if(e){a.push(e);const n=Fr.Wi(s.targetId,e);o.push(n)}}))}),await Promise.all(r),i.Ca.d_(a),await async function(e,n){const t=xt(e);try{await t.persistence.runTransaction("notifyLocalViewChanges","readwrite",e=>ti.forEach(n,n=>ti.forEach(n.$i,i=>t.persistence.referenceDelegate.addReference(e,n.targetId,i)).next(()=>ti.forEach(n.Ui,i=>t.persistence.referenceDelegate.removeReference(e,n.targetId,i)))))}catch(i){if(!ii(i))throw i;Ct("LocalStore","Failed to update sequence numbers: "+i)}for(const a of n){const e=a.targetId;if(!a.fromCache){const n=t.os.get(e),i=n.snapshotVersion,a=n.withLastLimboFreeSnapshotVersion(i);t.os=t.os.insert(e,a)}}}(i.localStore,o))}async function xu(e,n){const t=xt(e);if(!t.currentUser.isEqual(n)){Ct("SyncEngine","User change. New user:",n.toKey());const e=await Or(t.localStore,n);t.currentUser=n,a="'waitForPendingWrites' promise is rejected due to a user change.",(i=t).ka.forEach(e=>{e.forEach(e=>{e.reject(new Yt(At.CANCELLED,a))})}),i.ka.clear(),t.sharedClientState.handleUserChange(n,e.removedBatchIds,e.addedBatchIds),await Du(t,e.hs)}var i,a}function Au(e,n){const t=xt(e),i=t.Na.get(n);if(i&&i.va)return Fa().add(i.key);{let e=Fa();const i=t.Ma.get(n);if(!i)return e;for(const n of i){const i=t.Fa.get(n);e=e.unionWith(i.view.Va)}return e}}function Yu(e){const n=xt(e);return n.remoteStore.remoteSyncer.applyRemoteEvent=mu.bind(null,n),n.remoteStore.remoteSyncer.getRemoteKeysForTarget=Au.bind(null,n),n.remoteStore.remoteSyncer.rejectListen=vu.bind(null,n),n.Ca.d_=$s.bind(null,n.eventManager),n.Ca.$a=Vs.bind(null,n.eventManager),n}class _u{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=ss(e.databaseInfo.databaseId),this.sharedClientState=this.Wa(e),this.persistence=this.Ga(e),await this.persistence.start(),this.localStore=this.za(e),this.gcScheduler=this.ja(e,this.localStore),this.indexBackfillerScheduler=this.Ha(e,this.localStore)}ja(e,n){return null}Ha(e,n){return null}za(e){return function(e,n,t,i){return new Gr(e,n,t,i)}(this.persistence,new Hr,e.initialUser,this.serializer)}Ga(e){return new Jr(Rr.Zr,this.serializer)}Wa(e){return new $r}async terminate(){var e,n;null===(e=this.gcScheduler)||void 0===e||e.stop(),null===(n=this.indexBackfillerScheduler)||void 0===n||n.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}_u.provider={build:()=>new _u};class Iu{async initialize(e,n){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(n),this.remoteStore=this.createRemoteStore(n),this.eventManager=this.createEventManager(n),this.syncEngine=this.createSyncEngine(n,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>fu(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=xu.bind(null,this.syncEngine),await async function(e,n){const t=xt(e);n?(t.L_.delete(2),await ms(t)):n||(t.L_.add(2),await fs(t),t.q_.set("Unknown"))}(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new Us}createDatastore(e){const n=ss(e.databaseInfo.databaseId),t=(i=e.databaseInfo,new os(i));var i;return function(e,n,t,i){return new ds(e,n,t,i)}(e.authCredentials,e.appCheckCredentials,t,n)}createRemoteStore(e){return n=this.localStore,t=this.datastore,i=e.asyncQueue,a=e=>fu(this.syncEngine,e,0),o=qr.D()?new qr:new Vr,new ps(n,t,i,a,o);var n,t,i,a,o}createSyncEngine(e,n){return function(e,n,t,i,a,o,r){const s=new uu(e,n,t,i,a,o);return r&&(s.Qa=!0),s}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,e.initialUser,e.maxConcurrentLimboResolutions,n)}async terminate(){var e,n;await async function(e){const n=xt(e);Ct("RemoteStore","RemoteStore shutting down."),n.L_.add(5),await fs(n),n.k_.shutdown(),n.q_.set("Unknown")}(this.remoteStore),null===(e=this.datastore)||void 0===e||e.terminate(),null===(n=this.eventManager)||void 0===n||n.terminate()}}Iu.provider={build:()=>new Iu};class Pu{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ya(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ya(this.observer.error,e):Lt("Uncaught Error in snapshot listener:",e.toString()))}Za(){this.muted=!0}
1Ya(e,n){setTimeout(()=>{this.muted||e(n)},0)}}class Nu{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new Yt(At.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const n=await async function(e,n){const t=xt(e),i={documents:n.map(e=>er(t.serializer,e))},a=await t.Lo("BatchGetDocuments",t.serializer.databaseId,jt.emptyPath(),i,n.length),o=new Map;a.forEach(e=>{const n=function(e,n){return"found"in n?function(e,n){Dt(!!n.found),n.found.name,n.found.updateTime;const t=nr(e,n.found.name),i=zo(n.found.updateTime),a=n.found.createTime?zo(n.found.createTime):Qt.min(),o=new Hi({mapValue:{fields:n.found.fields}});return Oi.newFoundDocument(t,i,a,o)}(e,n):"missing"in n?function(e,n){Dt(!!n.missing),Dt(!!n.readTime);const t=nr(e,n.missing),i=zo(n.readTime);return Oi.newNoDocument(t,i)}(e,n):kt()}(t.serializer,e);o.set(n.key.toString(),n)});const r=[];return n.forEach(e=>{const n=o.get(e.toString());Dt(!!n),r.push(n)}),r}(this.datastore,e);return n.forEach(e=>this.recordVersion(e)),n}set(e,n){this.write(n.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,n){try{this.write(n.toMutation(e,this.preconditionForUpdate(e)))}catch(t){this.lastTransactionError=t}this.writtenDocs.add(e.toString())}delete(e){this.write(new wo(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const e=this.readVersions;this.mutations.forEach(n=>{e.delete(n.key.toString())}),e.forEach((e,n)=>{const t=zt.fromPath(n);this.mutations.push(new yo(t,this.precondition(t)))}),await async function(e,n){const t=xt(e),i={writes:n.map(e=>rr(t.serializer,e))};await t.Mo("Commit",t.serializer.databaseId,jt.emptyPath(),i)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let n;if(e.isFoundDocument())n=e.version;else{if(!e.isNoDocument())throw kt();n=Qt.min()}const t=this.readVersions.get(e.key.toString());if(t){if(!n.isEqual(t))throw new Yt(At.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),n)}precondition(e){const n=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&n?n.isEqual(Qt.min())?ao.exists(!1):ao.updateTime(n):ao.none()}preconditionForUpdate(e){const n=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&n){if(n.isEqual(Qt.min()))throw new Yt(At.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return ao.updateTime(n)}return ao.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class Mu{constructor(e,n,t,i,a){this.asyncQueue=e,this.datastore=n,this.options=t,this.updateFunction=i,this.deferred=a,this._u=t.maxAttempts,this.t_=new us(this.asyncQueue,"transaction_retry")}au(){this._u-=1,this.uu()}uu(){this.t_.Go(async()=>{const e=new Nu(this.datastore),n=this.cu(e);n&&n.then(n=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(n)}).catch(e=>{this.lu(e)}))}).catch(e=>{this.lu(e)})})}cu(e){try{const n=this.updateFunction(e);return!oi(n)&&n.catch&&n.then?n:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(n){return this.deferred.reject(n),null}}lu(e){this._u>0&&this.hu(e)?(this._u-=1,this.asyncQueue.enqueueAndForget(()=>(this.uu(),Promise.resolve()))):this.deferred.reject(e)}hu(e){if("FirebaseError"===e.name){const n=e.code;return"aborted"===n||"failed-precondition"===n||"already-exists"===n||!ko(n)}return!1}}class Zu{constructor(e,n,t,i,a){this.authCredentials=e,this.appCheckCredentials=n,this.asyncQueue=t,this.databaseInfo=i,this.user=wt.UNAUTHENTICATED,this.clientId=Xt.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=a,this.authCredentials.start(t,async e=>{Ct("FirestoreClient","Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(t,e=>(Ct("FirestoreClient","Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();const e=new _t;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(n){const t=Os(n,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function Ju(e,n){e.asyncQueue.verifyOperationInProgress(),Ct("FirestoreClient","Initializing OfflineComponentProvider");const t=e.configuration;await n.initialize(t);let i=t.initialUser;e.setCredentialChangeListener(async e=>{i.isEqual(e)||(await Or(n.localStore,e),i=e)}),n.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=n}async function Bu(e,n){e.asyncQueue.verifyOperationInProgress();const t=await async function(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){Ct("FirestoreClient","Using user provided OfflineComponentProvider");try{await Ju(e,e._uninitializedComponentsProvider._offline)}catch(n){const a=n;if(!("FirebaseError"===(t=a).name?t.code===At.FAILED_PRECONDITION||t.code===At.UNIMPLEMENT
1ED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw a;Tt("Error using user provided cache. Falling back to memory cache: "+a),await Ju(e,new _u)}}else Ct("FirestoreClient","Using default OfflineComponentProvider"),await Ju(e,new _u);var t;return e._offlineComponents}(e);Ct("FirestoreClient","Initializing OnlineComponentProvider"),await n.initialize(t,e.configuration),e.setCredentialChangeListener(e=>Fs(n.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>Fs(n.remoteStore,t)),e._onlineComponents=n}async function Ru(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(Ct("FirestoreClient","Using user provided OnlineComponentProvider"),await Bu(e,e._uninitializedComponentsProvider._online)):(Ct("FirestoreClient","Using default OnlineComponentProvider"),await Bu(e,new Iu))),e._onlineComponents}async function Fu(e){const n=await Ru(e),t=n.eventManager;return t.onListen=lu.bind(null,n.syncEngine),t.onUnlisten=du.bind(null,n.syncEngine),t.onFirstRemoteStoreListen=cu.bind(null,n.syncEngine),t.onLastRemoteStoreUnlisten=gu.bind(null,n.syncEngine),t}function Xu(e,n,t={}){const i=new _t;return e.asyncQueue.enqueueAndForget(async()=>function(e,n,t,i,a){const o=new Pu({next:s=>{o.Za(),n.enqueueAndForget(()=>async function(e,n){const t=xt(e),i=n.query;let a=3;const o=t.queries.get(i);if(o){const e=o.j_.indexOf(n);e>=0&&(o.j_.splice(e,1),0===o.j_.length?a=n.J_()?0:1:!o.H_()&&n.J_()&&(a=2))}switch(a){case 0:return t.queries.delete(i),t.onUnlisten(i,!0);case 1:return t.queries.delete(i),t.onUnlisten(i,!1);case 2:return t.onLastRemoteStoreUnlisten(i);default:return}}(e,r));const u=s.docs.has(t);!u&&s.fromCache?a.reject(new Yt(At.UNAVAILABLE,"Failed to get document because the client is offline.")):u&&s.fromCache&&i&&"server"===i.source?a.reject(new Yt(At.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):a.resolve(s)},error:e=>a.reject(e)}),r=new tu(wa(t.path),o,{includeMetadataChanges:!0,_a:!0});return async function(n,t){const i=xt(n);let a=3;const o=t.query;let r=i.queries.get(o);r?!r.H_()&&t.J_()&&(a=2):(r=new Ws,a=t.J_()?0:1);try{switch(a){case 0:r.z_=await i.onListen(o,!0);break;case 1:r.z_=await i.onListen(o,!1);break;case 2:await i.onFirstRemoteStoreListen(o)}}catch(e){const i=Os(e,`Initialization of query '${Ea(t.query)}' failed`);return void t.onError(i)}i.queries.set(o,r),r.j_.push(t),t.Z_(i.onlineState),r.z_&&t.X_(r.z_)&&qs(i)}(e,r)}(await Fu(e),e.asyncQueue,n,t,i)),i.promise}function Hu(e){const n={};return void 0!==e.timeoutSeconds&&(n.timeoutSeconds=e.timeoutSeconds),n}const Gu=new Map;function Ou(e){if(!zt.isDocumentKey(e))throw new Yt(At.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Qu(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{const t=(n=e).constructor?n.constructor.name:null;return t?`a custom ${t} object`:"an object"}}var n;return"function"==typeof e?"a function":kt()}function Ku(e,n){if("_delegate"in e&&(e=e._delegate),!(e instanceof n)){if(n.name===e.constructor.name)throw new Yt(At.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const t=Qu(e);throw new Yt(At.INVALID_ARGUMENT,`Expected type '${n.name}', but it was: ${t}`)}}return e}class ju{constructor(e){var n,t;if(void 0===e.host){if(void 0!==e.ssl)throw new Yt(At.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=e.host,this.ssl=null===(n=e.ssl)||void 0===n||n;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Yt(At.INVA
1LID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,n,t,i){if(!0===n&&!0===i)throw new Yt(At.INVALID_ARGUMENT,`${e} and ${t} cannot be used together.`)})("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Hu(null!==(t=e.experimentalLongPollingOptions)&&void 0!==t?t:{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new Yt(At.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new Yt(At.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new Yt(At.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(n=this.experimentalLongPollingOptions,t=e.experimentalLongPollingOptions,n.timeoutSeconds===t.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var n,t}}class Wu{constructor(e,n,t,i){this._authCredentials=e,this._appCheckCredentials=n,this._databaseId=t,this._app=i,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new ju({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(!this._app)throw new Yt(At.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new Yt(At.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new ju(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new Pt;switch(e.type){case"firstParty":return new Jt(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new Yt(At.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(e){const n=Gu.get(e);n&&(Ct("ComponentProvider","Removing Datastore"),Gu.delete(e),n.terminate())}(this),Promise.resolve()}}function Uu(e,n,t,i={}){var a;const o=(e=Ku(e,Wu))._getSettings(),r=`${n}:${t}`;if("firestore.googleapis.com"!==o.host&&o.host!==r&&Tt("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),e._setSettings(Object.assign(Object.assign({},o),{host:r,ssl:!1})),i.mockUserToken){let n,t;if("string"==typeof i.mockUserToken)n=i.mockUserToken,t=wt.MOCK_USER;else{n=function(e,n){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const t=n||"demo-project",i=e.iat||0,a=e.sub||e.user_id;if(!a)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const o=Object.assign({iss:`https://securetoken.google.com/${t}`,aud:t,iat:i,exp:i+3600,auth_time:i,sub:a,user_id:a,firebase:{sign_in_provider:"custom",identities:{}}},e);return[he(JSON.stringify({alg:"none",type:"JWT"})),he(JSON.stringify(o)),""].join(".")}(i.mockUserToken,null===(a=e._app)||void 0===a?void 0:a.options.projectId);const o=i.mockUserToken.sub||i.mockUserToken.user_id;
1if(!o)throw new Yt(At.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");t=new wt(o)}e._authCredentials=new Nt(new It(n,t))}}class zu{constructor(e,n,t){this.converter=n,this._query=t,this.type="query",this.firestore=e}withConverter(e){return new zu(this.firestore,e,this._query)}}class $u{constructor(e,n,t){this.converter=n,this._key=t,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new Vu(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new $u(this.firestore,e,this._key)}}class Vu extends zu{constructor(e,n,t){super(e,n,wa(t)),this._path=t,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const e=this._path.popLast();return e.isEmpty()?null:new $u(this.firestore,null,new zt(e))}withConverter(e){return new Vu(this.firestore,e,this._path)}}function qu(e,n,...t){if(e=Ae(e),1===arguments.length&&(n=Xt.newId()),function(e,n,t){if(!t)throw new Yt(At.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${n}.`)}("doc","path",n),e instanceof Wu){const i=jt.fromString(n,...t);return Ou(i),new $u(e,null,new zt(i))}{if(!(e instanceof $u||e instanceof Vu))throw new Yt(At.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const i=e._path.child(jt.fromString(n,...t));return Ou(i),new $u(e.firestore,e instanceof Vu?e.converter:null,new zt(i))}}class el{constructor(e=Promise.resolve()){this.Pu=[],this.Iu=!1,this.Tu=[],this.Eu=null,this.du=!1,this.Au=!1,this.Ru=[],this.t_=new us(this,"async_queue_retry"),this.Vu=()=>{const e=rs();e&&Ct("AsyncQueue","Visibility state changed to "+e.visibilityState),this.t_.jo()},this.mu=e;const n=rs();n&&"function"==typeof n.addEventListener&&n.addEventListener("visibilitychange",this.Vu)}get isShuttingDown(){return this.Iu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.fu(),this.gu(e)}enterRestrictedMode(e){if(!this.Iu){this.Iu=!0,this.Au=e||!1;const n=rs();n&&"function"==typeof n.removeEventListener&&n.removeEventListener("visibilitychange",this.Vu)}}enqueue(e){if(this.fu(),this.Iu)return new Promise(()=>{});const n=new _t;return this.gu(()=>this.Iu&&this.Au?Promise.resolve():(e().then(n.resolve,n.reject),n.promise)).then(()=>n.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Pu.push(e),this.pu()))}async pu(){if(0!==this.Pu.length){try{await this.Pu[0](),this.Pu.shift(),this.t_.reset()}catch(e){if(!ii(e))throw e;Ct("AsyncQueue","Operation failed with retryable error: "+e)}this.Pu.length>0&&this.t_.Go(()=>this.pu())}}gu(e){const n=this.mu.then(()=>(this.du=!0,e().catch(e=>{this.Eu=e,this.du=!1;throw Lt("INTERNAL UNHANDLED ERROR: ",function(e){let n=e.message||"";return e.stack&&(n=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),n}(e)),e}).then(e=>(this.du=!1,e))));return this.mu=n,n}enqueueAfterDelay(e,n,t){this.fu(),this.Ru.indexOf(e)>-1&&(n=0);const i=Gs.createAndSchedule(this,e,n,t,e=>this.yu(e));return this.Tu.push(i),i}fu(){this.Eu&&kt()}verifyOperationInProgress(){}async wu(){let e;do{e=this.mu,await e}while(e!==this.mu)}Su(e){for(const n of this.Tu)if(n.timerId===e)return!0;return!1}bu(e){return this.wu().then(()=>{this.Tu.sort((e,n)=>e.targetTimeMs-n.targetTimeMs);for(const n of this.Tu)if(n.skipDelay(),"all"!==e&&n.timerId===e)break;return this.wu()})}Du(e){this.Ru.push(e)}yu(e){const n=this.Tu.indexOf(e);this.Tu.splice(n,1)}}class nl extends Wu{constructor(e,n,t,i){super(e,n,t,i),this.type="firestore",this._queue=new el,this._persistenceKey=(null==i?void 0:i.name)||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){const e=this._firestoreClient.terminate();this._queue=new el(e),this._firestoreClient=void 0,await e}}}function tl(e,n){const t="string"==typeof e?e:"(default)",i=Xn("object"==typeof e?e:jn(),"firestore").getImmediate({identifier:t});if(!i._initialized){const e=(e=>{const n=me(e);
1if(!n)return;const t=n.lastIndexOf(":");if(t<=0||t+1===n.length)throw new Error(`Invalid host ${n} with no separate hostname and port!`);const i=parseInt(n.substring(t+1),10);return"["===n[0]?[n.substring(1,t-1),i]:[n.substring(0,t),i]})("firestore");e&&Uu(i,...e)}return i}function il(e){if(e._terminated)throw new Yt(At.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var n,t,i;const a=e._freezeSettings(),o=(r=e._databaseId,s=(null===(n=e._app)||void 0===n?void 0:n.options.appId)||"",u=e._persistenceKey,l=a,new Ei(r,s,u,l.host,l.ssl,l.experimentalForceLongPolling,l.experimentalAutoDetectLongPolling,Hu(l.experimentalLongPollingOptions),l.useFetchStreams));var r,s,u,l;e._componentsProvider||(null===(t=a.localCache)||void 0===t?void 0:t._offlineComponentProvider)&&(null===(i=a.localCache)||void 0===i?void 0:i._onlineComponentProvider)&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new Zu(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&function(e){const n=null==e?void 0:e._online.build();return{_offline:null==e?void 0:e._offline.build(n),_online:n}}(e._componentsProvider))}(e),e._firestoreClient}class al{constructor(e){this._byteString=e}static fromBase64String(e){try{return new al(vi.fromBase64String(e))}catch(n){throw new Yt(At.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+n)}}static fromUint8Array(e){return new al(vi.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class ol{constructor(...e){for(let n=0;n<e.length;++n)if(0===e[n].length)throw new Yt(At.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Ut(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class rl{constructor(e){this._methodName=e}}class sl{constructor(e,n){if(!isFinite(e)||e<-90||e>90)throw new Yt(At.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(n)||n<-180||n>180)throw new Yt(At.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+n);this._lat=e,this._long=n}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return Ht(this._lat,e._lat)||Ht(this._long,e._long)}}class ul{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==n[t])return!1;return!0}(this._values,e._values)}}const ll=/^__.*__$/;class cl{constructor(e,n,t){this.data=e,this.fieldMask=n,this.fieldTransforms=t}toMutation(e,n){return null!==this.fieldMask?new po(e,this.data,this.fieldMask,n,this.fieldTransforms):new go(e,this.data,n,this.fieldTransforms)}}class hl{constructor(e,n,t){this.data=e,this.fieldMask=n,this.fieldTransforms=t}toMutation(e,n){return new po(e,this.data,this.fieldMask,n,this.fieldTransforms)}}function dl(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw kt()}}class gl{constructor(e,n,t,i,a,o){this.settings=e,this.databaseId=n,this.serializer=t,this.ignoreUndefinedProperties=i,void 0===a&&this.vu(),this.fieldTransforms=a||[],this.fieldMask=o||[]}get path(){return this.settings.path}get Cu(){return this.settings.Cu}Fu(e){return new gl(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Mu(e){var n;const t=null===(n=this.path)||void 0===n?void 0:n.child(e),i=this.Fu({path:t,xu:!1});return i.Ou(e),i}Nu(e){var n;const t=null===(n=this.path)||void 0===n?void 0:n.child(e),i=this.Fu({path:t,xu:!1});return i.vu(),i}Lu(e){return this.Fu({path:void 0,xu:!0})}Bu(e){return El(e,this.settings.methodName,this.settings.ku||!1,this.path,this.settings.qu)}contains(e){return void 0!==this.fieldMask.find(n=>e.isPrefixOf(n))||void 0!==this.fieldTransforms.find(n=>e.isPrefixOf(n.field))}vu(){if(this.path)for(let e=0;e<this.path.length;e++)this.Ou(this.path.get(e))}Ou(e){if(0===e.length)throw this.Bu("Document fields must not be empty");if(dl(this.Cu)&&ll.test(e))throw this.Bu('Document fields cannot begin and end with "__"')}}class pl{constructor(e,n,t){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer
1=t||ss(e)}Qu(e,n,t,i=!1){return new gl({Cu:e,methodName:n,qu:t,path:Ut.emptyPath(),xu:!1,ku:i},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function ml(e){const n=e._freezeSettings(),t=ss(e._databaseId);return new pl(e._databaseId,!!n.ignoreUndefinedProperties,t)}function fl(e,n,t,i,a,o={}){const r=e.Qu(o.merge||o.mergeFields?2:0,n,t,a);Sl("Data must be an object, but it was:",r,i);const s=yl(i,r);let u,l;if(o.merge)u=new mi(r.fieldMask),l=r.fieldTransforms;else if(o.mergeFields){const e=[];for(const i of o.mergeFields){const a=Cl(n,i,t);if(!r.contains(a))throw new Yt(At.INVALID_ARGUMENT,`Field '${a}' is specified in your field mask but missing from your input data.`);kl(e,a)||e.push(a)}u=new mi(e),l=r.fieldTransforms.filter(e=>u.covers(e.field))}else u=null,l=r.fieldTransforms;return new cl(new Hi(s),u,l)}class vl extends rl{_toFieldTransform(e){if(2!==e.Cu)throw 1===e.Cu?e.Bu(`${this._methodName}() can only appear at the top level of your update data`):e.Bu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof vl}}function wl(e,n){if(bl(e=Ae(e)))return Sl("Unsupported field value:",n,e),yl(e,n);if(e instanceof rl)return function(e,n){if(!dl(n.Cu))throw n.Bu(`${e._methodName}() can only be used with update() and set()`);if(!n.path)throw n.Bu(`${e._methodName}() is not currently supported inside arrays`);const t=e._toFieldTransform(n);t&&n.fieldTransforms.push(t)}(e,n),null;if(void 0===e&&n.ignoreUndefinedProperties)return null;if(n.path&&n.fieldMask.push(n.path),e instanceof Array){if(n.settings.xu&&4!==n.Cu)throw n.Bu("Nested arrays are not supported");return function(e,n){const t=[];let i=0;for(const a of e){let e=wl(a,n.Lu(i));null==e&&(e={nullValue:"NULL_VALUE"}),t.push(e),i++}return{arrayValue:{values:t}}}(e,n)}return function(e,n){if(null===(e=Ae(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return Oa(n.serializer,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){const t=Ot.fromDate(e);return{timestampValue:jo(n.serializer,t)}}if(e instanceof Ot){const t=new Ot(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:jo(n.serializer,t)}}if(e instanceof sl)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof al)return{bytesValue:Wo(n.serializer,e._byteString)};if(e instanceof $u){const t=n.databaseId,i=e.firestore._databaseId;if(!i.isEqual(t))throw n.Bu(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${t.projectId}/${t.database}`);return{referenceValue:$o(e.firestore._databaseId||n.databaseId,e._key.path)}}if(e instanceof ul)return t=n,{mapValue:{fields:{__type__:{stringValue:"__vector__"},value:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw t.Bu("VectorValues must only contain numeric values.");return Ha(t.serializer,e)})}}}}};var t;throw n.Bu(`Unsupported field value: ${Qu(e)}`)}(e,n)}function yl(e,n){const t={};return li(e)?n.path&&n.path.length>0&&n.fieldMask.push(n.path):ui(e,(e,i)=>{const a=wl(i,n.Mu(e));null!=a&&(t[e]=a)}),{mapValue:{fields:t}}}function bl(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof Ot||e instanceof sl||e instanceof al||e instanceof $u||e instanceof rl||e instanceof ul)}function Sl(e,n,t){if(!bl(t)||("object"!=typeof(i=t)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))){const i=Qu(t);throw"an object"===i?n.Bu(e+" a custom object"):n.Bu(e+" "+i)}var i}function Cl(e,n,t){if((n=Ae(n))instanceof ol)return n._internalPath;if("string"==typeof n)return Tl(e,n);throw El("Field path arguments must be of type string or ",e,!1,void 0,t)}const Ll=new RegExp("[~\\*/\\[\\]]");function Tl(e,n,t){if(n.search(Ll)>=0)throw El(`Invalid field path (${n}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,t);try{return new ol(...n.split("."))._internalPath}catch(i){throw El(`Invalid field path (${n}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,t)}}function El(e,n,t,i,a){const o=i&&!i.isEmpty(),r=void 0!==a;let s=`Function ${n}
1() called with invalid data`;t&&(s+=" (via `toFirestore()`)"),s+=". ";let u="";return(o||r)&&(u+=" (found",o&&(u+=` in field ${i}`),r&&(u+=` in document ${a}`),u+=")"),new Yt(At.INVALID_ARGUMENT,s+e+u)}function kl(e,n){return e.some(e=>e.isEqual(n))}class Dl{constructor(e,n,t,i,a){this._firestore=e,this._userDataWriter=n,this._key=t,this._document=i,this._converter=a}get id(){return this._key.path.lastSegment()}get ref(){return new $u(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const e=new xl(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){const n=this._document.data.field(Al("DocumentSnapshot.get",e));if(null!==n)return this._userDataWriter.convertValue(n)}}}class xl extends Dl{data(){return super.data()}}function Al(e,n){return"string"==typeof n?Tl(e,n):n instanceof ol?n._internalPath:n._delegate._internalPath}class Yl{convertValue(e,n="none"){switch(xi(e)){case 0:return null;case 1:return e.booleanValue;case 2:return bi(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,n);case 5:return e.stringValue;case 6:return this.convertBytes(Si(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,n);case 11:return this.convertObject(e.mapValue,n);case 10:return this.convertVectorValue(e.mapValue);default:throw kt()}}convertObject(e,n){return this.convertObjectMap(e.fields,n)}convertObjectMap(e,n="none"){const t={};return ui(e,(e,i)=>{t[e]=this.convertValue(i,n)}),t}convertVectorValue(e){var n,t,i;const a=null===(i=null===(t=null===(n=e.fields)||void 0===n?void 0:n.value.arrayValue)||void 0===t?void 0:t.values)||void 0===i?void 0:i.map(e=>bi(e.doubleValue));return new ul(a)}convertGeoPoint(e){return new sl(bi(e.latitude),bi(e.longitude))}convertArray(e,n){return(e.values||[]).map(e=>this.convertValue(e,n))}convertServerTimestamp(e,n){switch(n){case"previous":const t=Li(e);return null==t?null:this.convertValue(t,n);case"estimate":return this.convertTimestamp(Ti(e));default:return null}}convertTimestamp(e){const n=yi(e);return new Ot(n.seconds,n.nanos)}convertDocumentKey(e,n){const t=jt.fromString(e);Dt(wr(t));const i=new ki(t.get(1),t.get(3)),a=new zt(t.popFirst(5));return i.isEqual(n)||Lt(`Document ${a} contains a document reference within a different database (${i.projectId}/${i.database}) which is not supported. It will be treated as a reference in the current database (${n.projectId}/${n.database}) instead.`),a}}function _l(e,n,t){let i;return i=e?t&&(t.merge||t.mergeFields)?e.toFirestore(n,t):e.toFirestore(n):n,i}class Il extends Yl{constructor(e){super(),this.firestore=e}convertBytes(e){return new al(e)}convertReference(e){const n=this.convertDocumentKey(e,this.firestore._databaseId);return new $u(this.firestore,null,n)}}class Pl{constructor(e,n){this.hasPendingWrites=e,this.fromCache=n}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class Nl extends Dl{constructor(e,n,t,i,a,o){super(e,n,t,i,o),this._firestore=e,this._firestoreImpl=e,this.metadata=a}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){const n=new Ml(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(n,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,n={}){if(this._document){const t=this._document.data.field(Al("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t,n.serverTimestamps)}}}class Ml extends Nl{data(e={}){return super.data(e)}}function Zl(e){e=Ku(e,$u);const n=Ku(e.firestore,nl);return Xu(il(n),e._key).then(t=>function(e,n,t){const i=t.docs.get(n._key),a=new Jl(e);return new Nl(e,a,n._key,i,new Pl(t.hasPendingWrites,t.fromCache),n.converter)}(n,e,t))}class Jl extends Yl{constructor(e){super(),this.firestore=e}convertBytes(e){return new al(e)}convertReference(e){const n=this.convertDocumentKey(e,this.firestore._databaseId);
1return new $u(this.firestore,null,n)}}function Bl(e,n,t){e=Ku(e,$u);const i=Ku(e.firestore,nl),a=_l(e.converter,n,t);return function(e,n){return function(e,n){const t=new _t;return e.asyncQueue.enqueueAndForget(async()=>pu(await function(e){return Ru(e).then(e=>e.syncEngine)}(e),n,t)),t.promise}(il(e),n)}(i,[fl(ml(i),"setDoc",e._key,a,null!==e.converter,t).toMutation(e._key,ao.none())])}const Rl={maxAttempts:5};function Fl(e,n){if((e=Ae(e)).firestore!==n)throw new Yt(At.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class Xl extends class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=ml(e)}get(e){const n=Fl(e,this._firestore),t=new Il(this._firestore);return this._transaction.lookup([n._key]).then(e=>{if(!e||1!==e.length)return kt();const i=e[0];if(i.isFoundDocument())return new Dl(this._firestore,t,i.key,i,n.converter);if(i.isNoDocument())return new Dl(this._firestore,t,n._key,null,n.converter);throw kt()})}set(e,n,t){const i=Fl(e,this._firestore),a=_l(i.converter,n,t),o=fl(this._dataReader,"Transaction.set",i._key,a,null!==i.converter,t);return this._transaction.set(i._key,o),this}update(e,n,t,...i){const a=Fl(e,this._firestore);let o;return o="string"==typeof(n=Ae(n))||n instanceof ol?function(e,n,t,i,a,o){const r=e.Qu(1,n,t),s=[Cl(n,i,t)],u=[a];if(o.length%2!=0)throw new Yt(At.INVALID_ARGUMENT,`Function ${n}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let d=0;d<o.length;d+=2)s.push(Cl(n,o[d])),u.push(o[d+1]);const l=[],c=Hi.empty();for(let d=s.length-1;d>=0;--d)if(!kl(l,s[d])){const e=s[d];let n=u[d];n=Ae(n);const t=r.Nu(e);if(n instanceof vl)l.push(e);else{const i=wl(n,t);null!=i&&(l.push(e),c.set(e,i))}}const h=new mi(l);return new hl(c,h,r.fieldTransforms)}(this._dataReader,"Transaction.update",a._key,n,t,i):function(e,n,t,i){const a=e.Qu(1,n,t);Sl("Data must be an object, but it was:",a,i);const o=[],r=Hi.empty();ui(i,(e,i)=>{const s=Tl(n,e,t);i=Ae(i);const u=a.Nu(s);if(i instanceof vl)o.push(s);else{const e=wl(i,u);null!=e&&(o.push(s),r.set(s,e))}});const s=new mi(o);return new hl(r,s,a.fieldTransforms)}(this._dataReader,"Transaction.update",a._key,n),this._transaction.update(a._key,o),this}delete(e){const n=Fl(e,this._firestore);return this._transaction.delete(n._key),this}}{constructor(e,n){super(e,n),this._firestore=e}get(e){const n=Fl(e,this._firestore),t=new Jl(this._firestore);return super.get(e).then(e=>new Nl(this._firestore,t,n._key,e._document,new Pl(!1,!1),n.converter))}}function Hl(e,n,t){e=Ku(e,nl);const i=Object.assign(Object.assign({},Rl),t);return function(e){if(e.maxAttempts<1)throw new Yt(At.INVALID_ARGUMENT,"Max attempts must be at least 1")}(i),function(e,n,t){const i=new _t;return e.asyncQueue.enqueueAndForget(async()=>{const a=await function(e){return Ru(e).then(e=>e.datastore)}(e);new Mu(e.asyncQueue,a,t,n,i).au()}),i.promise}(il(e),t=>n(new Xl(e,t)),i)}function Gl(e,n){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0&&(t[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(i=Object.getOwnPropertySymbols(e);a<i.length;a++)n.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(e,i[a])&&(t[i[a]]=e[i[a]])}return t}function Ol(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}!function(e,n=!0){yt=Qn,Fn(new Ye("firestore",(e,{instanceIdentifier:t,options:i})=>{const a=e.getProvider("app").getImmediate(),o=new nl(new Mt(e.getProvider("auth-internal")),new Rt(e.getProvider("app-check-internal")),function(e,n){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new Yt(At.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new ki(e.options.projectId,n)}(a,t),a);return i=Object.assign({useFetchStreams:n},i),o._setSettings(i),o},"PUBLIC").setMultipleInstances(!0)),Wn(vt,"4.7.3",e),Wn(vt,"4.7.3","esm2017")}(),"function"==typeof SuppressedError&&SuppressedError;const Ql=Ol,Kl=new Ce("auth","Firebase",{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}),jl=new Fe("@firebase/auth");function Wl(e,...n){jl.logLevel<=Ne.ERROR&&jl.error(`Auth (${Qn}): ${e}`,...n)}function Ul(e,...n){throw ec(e,...n)}function zl(e,...n){return ec(e,...n)}function $l(e,n,t){const i=Object.assign(Object.assign({},Ql()),{[n]:t});
vendor: 4,991 bytes, line 1
1return new Ce("auth","Firebase",i).create(n,{appName:e.name})}function Vl(e){return $l(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function ql(e,n,t){if(!(n instanceof t))throw t.name!==n.constructor.name&&Ul(e,"argument-error"),$l(e,"argument-error",`Type of ${n.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function ec(e,...n){if("string"!=typeof e){const t=n[0],i=[...n.slice(1)];return i[0]&&(i[0].appName=e.name),e._errorFactory.create(t,...i)}return Kl.create(e,...n)}function nc(e,n,...t){if(!e)throw ec(n,...t)}function tc(e){const n="INTERNAL ASSERTION FAILED: "+e;throw Wl(n),new Error(n)}function ic(e,n){e||tc(n)}function ac(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function oc(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function rc(){return"undefined"==typeof navigator||!navigator||!("onLine"in navigator)||"boolean"!=typeof navigator.onLine||"http:"!==oc()&&"https:"!==oc()&&!function(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}()&&!("connection"in navigator)||navigator.onLine}class sc{constructor(e,n){this.shortDelay=e,this.longDelay=n,ic(n>e,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ye())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return rc()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function uc(e,n){ic(e.emulator,"Emulator should always be set here");const{url:t}=e.emulator;return n?`${t}${n.startsWith("/")?n.slice(1):n}`:t}class lc{static initialize(e,n,t){this.fetchImpl=e,n&&(this.headersImpl=n),t&&(this.responseImpl=t)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void tc("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void tc("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void tc("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const cc={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-rec
1aptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},hc=new sc(3e4,6e4);function dc(e,n){return e.tenantId&&!n.tenantId?Object.assign(Object.assign({},n),{tenantId:e.tenantId}):n}async function gc(e,n,t,i,a={}){return pc(e,a,async()=>{let a={},o={};i&&("GET"===n?o=i:a={body:JSON.stringify(i)});const r=ke(Object.assign({key:e.config.apiKey},o)).slice(1),s=await e._getAdditionalHeaders();s["Content-Type"]="application/json",e.languageCode&&(s["X-Firebase-Locale"]=e.languageCode);const u=Object.assign({method:n,headers:s},a);return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(u.referrerPolicy="no-referrer"),lc.fetch()(fc(e,e.config.apiHost,t,r),u)})}async function pc(e,n,t){e._canInitEmulator=!1;const i=Object.assign(Object.assign({},cc),n);try{const n=new vc(e),a=await Promise.race([t(),n.promise]);n.clearNetworkTimeout();const o=await a.json();if("needConfirmation"in o)throw wc(e,"account-exists-with-different-credential",o);if(a.ok&&!("errorMessage"in o))return o;{const n=a.ok?o.errorMessage:o.error.message,[t,r]=n.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===t)throw wc(e,"credential-already-in-use",o);if("EMAIL_EXISTS"===t)throw wc(e,"email-already-in-use",o);if("USER_DISABLED"===t)throw wc(e,"user-disabled",o);const s=i[t]||t.toLowerCase().replace(/[_\s]+/g,"-");if(r)throw $l(e,s,r);Ul(e,s)}}catch(a){if(a instanceof Se)throw a;Ul(e,"network-request-failed",{message:String(a)})}}async function mc(e,n,t,i,a={}){const o=await gc(e,n,t,i,a);return"mfaPendingCredential"in o&&Ul(e,"multi-factor-auth-required",{_serverResponse:o}),o}function fc(e,n,t,i){const a=`${n}${t}?${i}`;return e.config.emulator?uc(e.config,a):`${e.config.apiScheme}://${a}`}class vc{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,n)=>{this.timer=setTimeout(()=>n(zl(this.auth,"network-request-failed")),hc.get())})}clearNetworkTimeout(){clearTimeout(this.timer)}}function wc(e,n,t){const i={appName:e.name};t.email&&(i.email=t.email),t.phoneNumber&&(i.phoneNumber=t.phoneNumber);const a=zl(e,n,i);return a.customData._tokenResponse=t,a}async function yc(e,n){return gc(e,"POST","/v1/accounts:lookup",n)}function bc(e){if(e)try{const n=new Date(Number(e));if(!isNaN(n.getTime()))return n.toUTCString()}catch(n){}}function Sc(e){return 1e3*Number(e)}function Cc(e){const[n,t,i]=e.split(".");if(void 0===n||void 0===t||void 0===i)return Wl("JWT malformed, contained fewer than 3 sections"),null;try{const e=de(t);return e?JSON.parse(e):(Wl("Failed to decode base64 JWT payload"),null)}catch(a){return Wl("Caught error parsing JWT payload as JSON",null==a?void 0:a.toString()),null}}function Lc(e){const n=Cc(e);return nc(n,"internal-error"),nc(void 0!==n.exp,"internal-error"),nc(void 0!==n.iat,"internal-error"),Number(n.exp)-Number(n.iat)}async function Tc(e,n,t=!1){if(t)return n;try{return await n}catch(i){throw i instanceof Se&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(i)&&e.auth.currentUser===e&&await e.auth.signOut(),i}}class Ec{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var n;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(n=this.user.stsTokenManager.expirationTime)&&void 0!==n?n:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(e=!1){if(!this.isRunning)return;const n=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},n)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class kc{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=bc(this.lastLoginAt),this.creationTime=bc(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Dc(e){var n;const t=e.auth,i=await e.getIdToken(),a=await Tc(e,yc(t,{idToken:i}));nc(null==a?void 0:a.users.length,t,"internal-error");const o=a.users[0];e._notifyReloadListener(o);const r=(null===(n=o.providerUserInfo)||void 0===n?void 0:n.length)?xc(o.providerUserInfo):[],s=(u=e.providerData,l=r,[...u.filter(e=>!l.some(n=>n.providerId===e.providerId)),...l]);var u,l;const c=e.isAnonymous,h=!(e.email&&o.passwordHash||(null==s?void 0:s.length)),d=!!c&&h,g={uid:o.localId,displayName:o.displayName||null,photoURL:o.photoUrl||null,email:o.email||null,emailVerified:o.emailVerified||!1,phoneNumber:o.phoneNumber||null,tenantId:o.tenantId||null,providerData:s,metadata:new kc(o.createdAt,o.lastLoginAt),isAnonymous:d};Object.assign(e,g)}function xc(e){return e.map(e=>{var{providerId:n}=e,t=Gl(e,["providerId"]);
vendor: 13,297 bytes, line 1
1return{providerId:n,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}})}class Ac{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){nc(e.idToken,"internal-error"),nc(void 0!==e.idToken,"internal-error"),nc(void 0!==e.refreshToken,"internal-error");const n="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Lc(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){nc(0!==e.length,"internal-error");const n=Lc(e);this.updateTokensAndExpiration(e,null,n)}async getToken(e,n=!1){return n||!this.accessToken||this.isExpired?(nc(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,n){const{accessToken:t,refreshToken:i,expiresIn:a}=await async function(e,n){const t=await pc(e,{},async()=>{const t=ke({grant_type:"refresh_token",refresh_token:n}).slice(1),{tokenApiHost:i,apiKey:a}=e.config,o=fc(e,i,"/v1/token",`key=${a}`),r=await e._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",lc.fetch()(o,{method:"POST",headers:r,body:t})});return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}}(e,n);this.updateTokensAndExpiration(t,i,Number(a))}updateTokensAndExpiration(e,n,t){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*t}static fromJSON(e,n){const{refreshToken:t,accessToken:i,expirationTime:a}=n,o=new Ac;return t&&(nc("string"==typeof t,"internal-error",{appName:e}),o.refreshToken=t),i&&(nc("string"==typeof i,"internal-error",{appName:e}),o.accessToken=i),a&&(nc("number"==typeof a,"internal-error",{appName:e}),o.expirationTime=a),o}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Ac,this.toJSON())}_performRefresh(){return tc("not implemented")}}function Yc(e,n){nc("string"==typeof e||void 0===e,"internal-error",{appName:n})}class _c{constructor(e){var{uid:n,auth:t,stsTokenManager:i}=e,a=Gl(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Ec(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=n,this.auth=t,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=a.displayName||null,this.email=a.email||null,this.emailVerified=a.emailVerified||!1,this.phoneNumber=a.phoneNumber||null,this.photoURL=a.photoURL||null,this.isAnonymous=a.isAnonymous||!1,this.tenantId=a.tenantId||null,this.providerData=a.providerData?[...a.providerData]:[],this.metadata=new kc(a.createdAt||void 0,a.lastLoginAt||void 0)}async getIdToken(e){const n=await Tc(this,this.stsTokenManager.getToken(this.auth,e));return nc(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n}getIdTokenResult(e){return async function(e,n=!1){const t=Ae(e),i=await t.getIdToken(n),a=Cc(i);nc(a&&a.exp&&a.auth_time&&a.iat,t.auth,"internal-error");const o="object"==typeof a.firebase?a.firebase:void 0,r=null==o?void 0:o.sign_in_provider;return{claims:a,token:i,authTime:bc(Sc(a.auth_time)),issuedAtTime:bc(Sc(a.iat)),expirationTime:bc(Sc(a.exp)),signInProvider:r||null,signInSecondFactor:(null==o?void 0:o.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const n=Ae(e);await Dc(n),await n.auth._persistUserIfCurrent(n),n.auth._notifyListenersIfCurrent(n)}(this)}_assign(e){this!==e&&(nc(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const n=new _c(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return n.metadata._copy(this.metadata),n}_onReload(e){nc(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,n=!1){let t=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),t=!0),n&&await Dc(this),await this.auth._persistUserIfCurrent(this),t&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(Hn(this.auth.app))return Promise.reject(Vl(this.auth));const e=await this.getIdToken();return await Tc(this,async function(e,n){return gc(e,"POST","/v1/accounts:delete",n)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,n){var t,i,a,o,r,s,u,l;const c=null!==(t=n.displayName)&&void 0!==t?t:void 0,h=null!==(i=n.email)&&void 0!==i?i:void 0,d=null!==(a=n.phoneNumber)&&void 0!==a?a:void 0,g=null!==(o=n.photoURL)&&void 0!==o?o:void 0,p=null!==(r=n.tenantId)&&void 0!==r?r:void 0,m=null!==(s=n._redirectEventId)&&void 0!==s?s:void 0,f=null!==(u=n.createdAt)&&void 0!==u?u:void 0,v=null!==(l=n.lastLoginAt)&&void 0!==l?l:void 0,{uid:w,emailVerified:y,isAnonymous:b,providerData:S,stsTokenManager:C}=n;nc(w&&C,e,"internal-error");const L=Ac.fromJSON(this.name,C);nc("string"==typeof w,e,"internal-error"),Yc(c,e.name),Yc(h,e.name),nc("boolean"==typeof y,e,"internal-error"),nc("boolean"==typeof b,e,"internal-error"),Yc(d,e.name),Yc(g,e.name),Yc(p,e.name),Yc(m,e.name),Yc(f,e.name),Yc(v,e.name);const T=new _c({uid:w,auth:e,email:h,emailVerified:y,displayName:c,isAnonymous:b,photoURL:g,phoneNumber:d,tenantId:p,stsTokenManager:L,createdAt:f,lastLoginAt:v});return S&&Array.isArray(S)&&(T.providerData=S.map(e=>Object.assign({},e))),m&&(T._redirectEventId=m),T}static async _fromIdTokenResponse(e,n,t=!1){const i=new Ac;i.updateFromServerResponse(n);const a=new _c({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:t});return await Dc(a),a}static async _fromGetAccountInfoResponse(e,n,t){const i=n.users[0];nc(void 0!==i.localId,"internal-error");const a=void 0!==i.providerUserInfo?xc(i.providerUserInfo):[],o=!(i.email&&i.passwordHash||(null==a?void 0:a.length)),r=new Ac;r.updateFromIdToken(t);const s=new _c({uid:i.localId,auth:e,stsTokenManager:r,isAnonymous:o}),u={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:a,metadata:new kc(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash||(null==a?void 0:a.length))};return Object.assign(s,u),s}}const Ic=new Map;function Pc(e){ic(e instanceof Function,"Expected a class definition");let n=Ic.get(e);return n?(ic(n instanceof e,"Instance stored in cache mismatched with class"),n):(n=new e,Ic.set(e,n),n)}class Nc{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,n){this.storage[e]=n}async _get(e){const n=this.storage[e];return void 0===n?null:n}async _remove(e){delete this.storage[e]}_addListener(e,n){}_removeListener(e,n){}}Nc.type="NONE";const Mc=Nc;function Zc(e,n,t){return`firebase:${e}:${n}:${t}`}class Jc{constructor(e,n,t){this.persistence=e,this.auth=n,this.userKey=t;const{config:i,name:a}=this.auth;this.fullUserKey=Zc(this.userKey,i.apiKey,a),this.fullPersistenceKey=Zc("persistence",i.apiKey,a),this.boundEventHandler=n._onStorageEvent.bind(n),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);return e?_c._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;const n=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,n?this.setCurrentUser(n):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,n,t="authUser"){if(!n.length)return new Jc(Pc(Mc),e,t);const i=(await Promise.all(n.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let a=i[0]||Pc(Mc);const o=Zc(t,e.config.apiKey,e.name);let r=null;for(const l of n)try{const n=await l._get(o);if(n){const t=_c._fromJSON(e,n);l!==a&&(r=t),a=l;break}}catch(u){}const s=i.filter(e=>e._shouldAllowMigration);return a._shouldAllowMigration&&s.length?(a=s[0],r&&await a._set(o,r.toJSON()),await Promise.all(n.map(async e=>{if(e!==a)try{await e._remove(o)}catch(u){}})),new Jc(a,e,t)):new Jc(a,e,t)}}function Bc(e){const n=e.toLowerCase();if(n.includes("opera/")||n.includes("opr/")||n.includes("opios/"))return"Opera";if(Hc(n))return"IEMobile";if(n.includes("msie")||n.includes("trident/"))return"IE";if(n.includes("edge/"))return"Edge";if(Rc(n))return"Firefox";if(n.includes("silk/"))return"Silk";if(Oc(n))return"Blackberry";if(Qc(n))return"Webos";if(Fc(n))return"Safari";if((n.includes("chrome/")||Xc(n))&&!n.includes("edge/"))return"Chrome";if(Gc(n))return"Android";{const n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,t=e.match(n);if(2===(null==t?void 0:t.length))return t[1]}return"Other"}function Rc(e=ye()){return/firefox\//i.test(e)}function Fc(e=ye()){const n=e.toLowerCase();return n.includes("safari/")&&!n.includes("chrome/")&&!n.includes("crios/")&&!n.includes("android")}function Xc(e=ye()){return/crios\//i.test(e)}function Hc(e=ye()){return/iemobile/i.test(e)}function Gc(e=ye()){return/android/i.test(e)}function Oc(e=ye()){return/blackberry/i.test(e)}function Qc(e=ye()){return/webos/i.test(e)}function Kc(e=ye()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function jc(){return function(){const e=ye();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}()&&10===document.documentMode}function Wc(e=ye()){return Kc(e)||Gc(e)||Qc(e)||Oc(e)||/windows phone/i.test(e)||Hc(e)}function Uc(e,n=[]){let t;switch(e){case"Browser":t=Bc(ye());break;case"Worker":t=`${Bc(ye())}-${e}`;break;default:t=e}const i=n.length?n.join(","):"FirebaseCore-web";return`${t}/JsCore/${Qn}/${i}`}class zc{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){const t=n=>new Promise((t,i)=>{try{t(e(n))}catch(a){i(a)}});t.onAbort=n,this.queue.push(t);const i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const n=[];try{for(const t of this.queue)await t(e),t.onAbort&&n.push(t.onAbort)}catch(t){n.reverse();for(const e of n)try{e()}catch(i){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==t?void 0:t.message})}}}class $c{constructor(e){var n,t,i,a;const o=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(n=o.minPasswordLength)&&void 0!==n?n:6,o.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=o.maxPasswordLength),void 0!==o.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=o.containsLowercaseCharacter),void 0!==o.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=o.containsUppercaseCharacter),void 0!==o.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=o.containsNumericCharacter),void 0!==o.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=o.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(i=null===(t=e.allowedNonAlphanumericCharacters)||void 0===t?void 0:t.join(""))&&void 0!==i?i:"",this.forceUpgradeOnSignin=null!==(a=e.forceUpgradeOnSignin)&&void 0!==a&&a,this.schemaVersion=e.schemaVersion}validatePassword(e){var n,t,i,a,o,r;const s={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,s),this.validatePasswordCharacterOptions(e,s),s.isValid&&
1(s.isValid=null===(n=s.meetsMinPasswordLength)||void 0===n||n),s.isValid&&(s.isValid=null===(t=s.meetsMaxPasswordLength)||void 0===t||t),s.isValid&&(s.isValid=null===(i=s.containsLowercaseLetter)||void 0===i||i),s.isValid&&(s.isValid=null===(a=s.containsUppercaseLetter)||void 0===a||a),s.isValid&&(s.isValid=null===(o=s.containsNumericCharacter)||void 0===o||o),s.isValid&&(s.isValid=null===(r=s.containsNonAlphanumericCharacter)||void 0===r||r),s}validatePasswordLengthOptions(e,n){const t=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;t&&(n.meetsMinPasswordLength=e.length>=t),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){let t;this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);for(let i=0;i<e.length;i++)t=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,t>="a"&&t<="z",t>="A"&&t<="Z",t>="0"&&t<="9",this.allowedNonAlphanumericCharacters.includes(t))}updatePasswordCharacterOptionsStatuses(e,n,t,i,a){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=t)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=a))}}class Vc{constructor(e,n,t,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=t,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new eh(this),this.idTokenSubscription=new eh(this),this.beforeStateQueue=new zc(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Kl,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=Pc(n)),this._initializationPromise=this.queue(async()=>{var t,i;if(!this._deleted&&(this.persistenceManager=await Jc.create(this,e),!this._deleted)){if(null===(t=this._popupRedirectResolver)||void 0===t?void 0:t._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(a){}await this.initializeCurrentUser(n),this.lastNotifiedUid=(null===(i=this.currentUser)||void 0===i?void 0:i.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void(await this.currentUser.getIdToken())):void(await this._updateCurrentUser(e,!0)):void 0}async initializeCurrentUserFromIdToken(e){try{const n=await yc(this,{idToken:e}),t=await _c._fromGetAccountInfoResponse(this,n,e);await this.directlySetCurrentUser(t)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){var n;if(Hn(this.app)){const e=this.app.settings.authIdToken;return e?new Promise(n=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(e).then(n,n))}):this.directlySetCurrentUser(null)}const t=await this.assertedPersistence.getCurrentUser();let i=t,a=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const t=null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId,o=null==i?void 0:i._redirectEventId,r=await this.tryRedirectSignIn(e);t&&t!==o||!(null==r?void 0:r.user)||(i=r.user,a=!0)}if(!i)return this.directlySetCurrentUser(null);
vendor: 15,164 bytes, line 1
1if(!i._redirectEventId){if(a)try{await this.beforeStateQueue.runMiddleware(i)}catch(o){i=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(o))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return nc(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let n=null;try{n=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(t){await this._setRedirectUser(null)}return n}async reloadAndSetCurrentUserOrClear(e){try{await Dc(e)}catch(n){if("auth/network-request-failed"!==(null==n?void 0:n.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(Hn(this.app))return Promise.reject(Vl(this));const n=e?Ae(e):null;return n&&nc(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))}async _updateCurrentUser(e,n=!1){if(!this._deleted)return e&&nc(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return Hn(this.app)?Promise.reject(Vl(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return Hn(this.app)?Promise.reject(Vl(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(Pc(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const e=await async function(e,n={}){return gc(e,"GET","/v2/passwordPolicy",dc(e,n))}(this),n=new $c(e);null===this.tenantId?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new Ce("auth","Firebase",e())}onAuthStateChanged(e,n,t){return this.registerStateListener(this.authStateSubscription,e,n,t)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,t){return this.registerStateListener(this.idTokenSubscription,e,n,t)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{const t=this.onAuthStateChanged(()=>{t(),e()},n)}})}async revokeAccessToken(e){if(this.currentUser){const n={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(n.tenantId=this.tenantId),await async function(e,n){return gc(e,"POST","/v2/accounts:revokeToken",dc(e,n))}(this,n)}}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,n){const t=await this.getOrInitRedirectPersistenceManager(n);return null===e?t.removeCurrentUser():t.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const n=e&&Pc(e)||this._popupRedirectResolver;nc(n,this,"argument-error"),this.redirectPersistenceManager=await Jc.create(this,[Pc(n._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var n,t;return this._isInitialized&&await this.queue(async()=>{}),(null===(n=this._currentUser)||void 0===n?void 0:n._redirectEventId)===e?this._currentUser:(null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,n;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const t=null!==(n=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==n?n:null;this.lastNotifiedUid!==t&&(this.lastNotifiedUid=t,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,n,t,i){if(this._deleted)return()=>{};const a="function"==typeof n?n:n.next.bind(n);let o=!1;const r=this._isInitialized?Promise.resolve():this._initializationPromise;if(nc(r,this,"internal-error"),r.then(()=>{o||a(this.currentUser)}),"function"==typeof n){const a=e.addObserver(n,t,i);return()=>{o=!0,a()}}{const t=e.addObserver(n);return()=>{o=!0,t()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return nc(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=Uc(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const n={"X-Client-Version":this.clientVersion};this.app.options.appId&&(n["X-Firebase-gmpid"]=this.app.options.appId);const t=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());t&&(n["X-Firebase-Client"]=t);const i=await this._getAppCheckToken();return i&&(n["X-Firebase-AppCheck"]=i),n}async _getAppCheckToken(){var e;const n=await(null===(e=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getToken());return(null==n?void 0:n.error)&&function(e,...n){jl.logLevel<=Ne.WARN&&jl.warn(`Auth (${Qn}): ${e}`,...n)}(`Error while retrieving App Check token: ${n.error}`),null==n?void 0:n.token}}function qc(e){return Ae(e)}class eh{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e,n){const t=new De(e,n);return t.subscribe.bind(t)}(e=>this.observer=e)}get next(){return nc(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let nh={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function th(e,n,t){const i=qc(e);nc(i._canInitEmulator,i,"emulator-config-failed"),nc(/^https?:\/\//.test(n),i,"invalid-emulator-scheme");const a=ih(n),{host:o,port:r}=function(e){const n=ih(e),t=/(\/\/)?([^?#/]+)/.exec(e.substr(n.length));if(!t)return{host:"",port:null};const i=t[2].split("@").pop()||"",a=/^(\[[^\]]+\])(:|$)/.exec(i);if(a){const e=a[1];return{host:e,port:ah(i.substr(e.length+1))}}{const[e,n]=i.split(":");return{host:e,port:ah(n)}}}(n),s=null===r?"":`:${r}`;i.config.emulator={url:`${a}//${o}${s}/`},i.settings.appVerificationDisabledForTesting=!0,i.emulatorConfig=Object.freeze({host:o,port:r,protocol:a.replace(":",""),options:Object.freeze({disableWarnings:!1})}),function(){function e(){const e=document.createElement("p"),n=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",n.position="fixed",n.width="100%",n.backgroundColor="#ffffff",n.border=".1em solid #000000",n.color="#b50000",n.bottom="0px",n.left="0px",n.margin="0px",n.zIndex="10000",n.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only.  Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}function ih(e){const n=e.indexOf(":");return n<0?"":e.substr(0,n+1)}function ah(e){if(!e)return null;const n=Number(e);return isNaN(n)?null:n}class oh{constructor(e,n){this.providerId=e,this.signInMethod=n}toJSON(){return tc("not implemented")}_getIdTokenResponse(e){return tc("not implemented")}_linkToIdToken(e,n){return tc("not implemented")}_getReauthenticationResolver(e){return tc("not implemented")}}async function rh(e,n){return mc(e,"POST","/v1/accounts:signInWithIdp",dc(e,n))}class sh extends oh{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const n=new sh(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(n.idToken=e.idToken),e.accessToken&&(n.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(n.nonce=e.nonce),e.pendingToken&&(n.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(n.accessToken=e.oauthToken,n.secret=e.oauthTokenSecret):Ul("argument-error"),n}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const n="string"==typeof e?JSON.parse(e):e,{providerId:t,signInMethod:i}=n,a=Gl(n,["providerId","signInMethod"]);if(!t||!i)return null;const o=new sh(t,i);return o.idToken=a.idToken||void 0,o.accessToken=a.accessToken||void 0,o.secret=a.secret,o.nonce=a.nonce,o.pendingToken=a.pendingToken||null,o}_getIdTokenResponse(e){return rh(e,this.buildRequest())}_linkToIdToken(e,n){const t=this.buildRequest();return t.idToken=n,rh(e,t)}_getReauthenticationResolver(e){const n=this.buildRequest();return n.autoCreate=!1,rh(e,n)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const n={};this.idToken&&(n.id_token=this.idToken),this.accessToken&&(n.access_token=this.accessToken),this.secret&&(n.oauth_token_secret=this.secret),n.providerId=this.providerId,this.nonce&&!this.pendingToken&&(n.nonce=this.nonce),e.postBody=ke(n)}return e}}class uh{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class lh extends uh{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class ch extends lh{constructor(){super("facebook.com")}static credential(e){return sh._fromParams({providerId:ch.PROVIDER_ID,signInMethod:ch.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ch.credentialFromTaggedObject(e)}static credentialFromError(e){return ch.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ch.credential(e.oauthAccessToken)}catch(n){return null}}}ch.FACEBOOK_SIGN_IN_METHOD="facebook.com",ch.PROVIDER_ID="facebook.com";class hh extends lh{constructor(){super("google.com"),this.addScope("profile")}static credential(e,n){return sh._fromParams({providerId:hh.PROVIDER_ID,signInMethod:hh.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:n})}static credentialFromResult(e){return hh.credentialFromTaggedObject(e)}static credentialFromError(e){return hh.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:n,oauthAccessToken:t}=e;if(!n&&!t)return null;try{return hh.credential(n,t)}catch(i){return null}}}hh.GOOGLE_SIGN_IN_METHOD="google.com",hh.PROVIDER_ID="google.com";class dh extends lh{constructor(){super("github.com")}static credential(e){return sh._fromParams({providerId:dh.PROVIDER_ID,signInMethod:dh.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return dh.credentialFromTaggedObject(e)}static credentialFromError(e){return dh.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return dh.credential(e.oauthAccessToken)}catch(n){return null}}}dh.GITHUB_SIGN_IN_METHOD="github.com",dh.PROVIDER_ID="github.com";class gh extends lh{constructor(){super("twitter.com")}static credential(e,n){return sh._fromParams({providerId:gh.PROVIDER_ID,signInMethod:gh.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:n})}static credentialFromResult(e){return gh.credentialFromTaggedObject(e)}static credentialFromError(e){return gh.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:n,oauthTokenSecret:t}=e;if(!n||!t)return null;try{return gh.credential(n,t)}catch(i){return null}}}gh.TWITTER_SIGN_IN_METHOD="twitter.com",gh.PROVIDER_ID="twitter.com";class ph{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,n,t,i=!1){const a=await _c._fromIdTokenResponse(e,t,i),o=mh(t);return new ph({user:a,providerId:o,_tokenResponse:t,operationType:n})}static async _forOperation(e,n,t){await e._updateTokensIfNecessary(t,!0);const i=mh(t);return new ph({user:e,providerId:i,_tokenResponse:t,operationType:n})}}function mh(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}async function fh(e){var n;if(Hn(e.app))return Promise.reject(Vl(e));const t=qc(e);if(await t._initializationPromise,null===(n=t.currentUser)||void 0===n?void 0:n.isAnonymous)return new ph({user:t.currentUser,providerId:null,operationType:"signIn"});const i=await async function(e,n){return mc(e,"POST","/v1/accounts:signUp",dc(e,n))}(t,{returnSecureToken:!0}),a=await ph._fromIdTokenResponse(t,"signIn",i,!0);return await t._updateCurrentUser(a.user),a}class vh extends Se{constructor(e,n,t,i){var a;super(n.code,n.message),this.operationType=t,this.user=i,Object.setPrototypeOf(this,vh.prototype),this.customData={appName:e.n
1ame,tenantId:null!==(a=e.tenantId)&&void 0!==a?a:void 0,_serverResponse:n.customData._serverResponse,operationType:t}}static _fromErrorAndOperation(e,n,t,i){return new vh(e,n,t,i)}}function wh(e,n,t,i){return("reauthenticate"===n?t._getReauthenticationResolver(e):t._getIdTokenResponse(e)).catch(t=>{if("auth/multi-factor-auth-required"===t.code)throw vh._fromErrorAndOperation(e,t,n,i);throw t})}async function yh(e,n,t){await Dc(n);var i;nc((i=n.providerData,new Set(i.map(({providerId:e})=>e).filter(e=>!!e))).has(t)===e,n.auth,"provider-already-linked")}const bh="__sak";class Sh{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(bh,"1"),this.storage.removeItem(bh),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){const n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class Ch extends Sh{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,n)=>this.onStorageEvent(e,n),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=Wc(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const n of Object.keys(this.listeners)){const t=this.storage.getItem(n),i=this.localCache[n];t!==i&&e(n,i,t)}}onStorageEvent(e,n=!1){if(!e.key)return void this.forAllChangedKeys((e,n,t)=>{this.notifyListeners(e,t)});const t=e.key;n?this.detachListener():this.stopPolling();const i=()=>{const e=this.storage.getItem(t);(n||this.localCache[t]!==e)&&this.notifyListeners(t,e)},a=this.storage.getItem(t);jc()&&a!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,10):i()}notifyListeners(e,n){this.localCache[e]=n;const t=this.listeners[e];if(t)for(const i of Array.from(t))i(n?JSON.parse(n):n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,n,t)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:n,newValue:t}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,n){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,n){await super._set(e,n),this.localCache[e]=JSON.stringify(n)}async _get(e){const n=await super._get(e);return this.localCache[e]=JSON.stringify(n),n}async _remove(e){await super._remove(e),delete this.localCache[e]}}Ch.type="LOCAL";const Lh=Ch;class Th extends Sh{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,n){}_removeListener(e,n){}}Th.type="SESSION";const Eh=Th;class kh{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const n=this.receivers.find(n=>n.isListeningto(e));if(n)return n;const t=new kh(e);return this.receivers.push(t),t}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const n=e,{eventId:t,eventType:i,data:a}=n.data,o=this.handlersMap[i];if(!(null==o?void 0:o.size))return;n.ports[0].postMessage({status:"ack",eventId:t,eventType:i});const r=Array.from(o).map(async e=>e(n.origin,a)),s=await function(e){return Promise.all(e.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(n){return{fulfilled:!1,reason:n}}}))}(r);n.ports[0].postMessage({status:"done",eventId:t,eventType:i,response:s})}_subscribe(e,n){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(n)}_unsubscribe(e,n){this.handlersMap[e]&&n&&this.handlersMap[e].delete(n),n&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Dh(e="",n=10){let t="";for(let i=0;i<n;i++)t+=Math.floor(10*Math.random());return e+t}kh.receivers=[];class xh{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,n,t=50){const i="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let a,o;return new Promise((r,s)=>{const u=Dh("",20);i.port1.start();const l=setTimeout(()=>{s(new Error("unsupported_event"))},t);o={messageChannel:i,onMessage(e){const n=e;if(n.data.eventId===u)switch(n.data.status){case"ack":clearTimeout(l),a=setTimeout(()=>{s(new Error("timeout"))},3e3);break;case"done":clearTimeout(a),r(n.data.response);break;default:clearTimeout(l),clearTimeout(a),s(new Error("invalid_response"))}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:u,data:n},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}}function Ah(){return window}
1function Yh(){return void 0!==Ah().WorkerGlobalScope&&"function"==typeof Ah().importScripts}const _h="firebaseLocalStorageDb",Ih="firebaseLocalStorage",Ph="fbase_key";class Nh{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}}function Mh(e,n){return e.transaction([Ih],n?"readwrite":"readonly").objectStore(Ih)}function Zh(){const e=indexedDB.open(_h,1);return new Promise((n,t)=>{e.addEventListener("error",()=>{t(e.error)}),e.addEventListener("upgradeneeded",()=>{const n=e.result;try{n.createObjectStore(Ih,{keyPath:Ph})}catch(i){t(i)}}),e.addEventListener("success",async()=>{const t=e.result;t.objectStoreNames.contains(Ih)?n(t):(t.close(),await function(){const e=indexedDB.deleteDatabase(_h);return new Nh(e).toPromise()}(),n(await Zh()))})})}async function Jh(e,n,t){const i=Mh(e,!0).put({[Ph]:n,value:t});return new Nh(i).toPromise()}function Bh(e,n){const t=Mh(e,!0).delete(n);return new Nh(t).toPromise()}class Rh{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await Zh()),this.db}async _withRetries(e){let n=0;for(;;)try{const n=await this._openDb();return await e(n)}catch(t){if(n++>3)throw t;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Yh()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=kh._getInstance(Yh()?self:null),this.receiver._subscribe("keyChanged",async(e,n)=>({keyProcessed:(await this._poll()).includes(n.key)}
1)),this.receiver._subscribe("ping",async(e,n)=>["keyChanged"])}async initializeSender(){var e,n;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new xh(this.activeServiceWorker);const t=await this.sender._send("ping",{},800);t&&(null===(e=t[0])||void 0===e?void 0:e.fulfilled)&&(null===(n=t[0])||void 0===n?void 0:n.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var n;if(this.sender&&this.activeServiceWorker&&((null===(n=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===n?void 0:n.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(n){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await Zh();return await Jh(e,bh,"1"),await Bh(e,bh),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,n){return this._withPendingWrite(async()=>(await this._withRetries(t=>Jh(t,e,n)),this.localCache[e]=n,this.notifyServiceWorker(e)))}async _get(e){const n=await this._withRetries(n=>async function(e,n){const t=Mh(e,!1).get(n),i=await new Nh(t).toPromise();return void 0===i?null:i.value}(n,e));return this.localCache[e]=n,n}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(n=>Bh(n,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){const e=await this._withRetries(e=>{const n=Mh(e,!1).getAll();return new Nh(n).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];const n=[],t=new Set;if(0!==e.length)for(const{fbase_key:i,value:a}of e)t.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(a)&&(this.notifyListeners(i,a),n.push(i));for(const i of Object.keys(this.localCache))this.localCache[i]&&!t.has(i)&&(this.notifyListeners(i,null),n.push(i));return n}notifyListeners(e,n){this.localCache[e]=n;const t=this.listeners[e];if(t)for(const i of Array.from(t))i(n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,n){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Rh.type="LOCAL";const Fh=Rh;function Xh(e,n){return n?Pc(n):(nc(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}new sc(3e4,6e4);class Hh extends oh{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return rh(e,this._buildIdpRequest())}_linkToIdToken(e,n){return rh(e,this._buildIdpRequest(n))}_getReauthenticationResolver(e){return rh(e,this._buildIdpRequest())}_buildIdpRequest(e){const n={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(n.idToken=e),n}}function Gh(e){return async function(e,n,t=!1){if(Hn(e.app))return Promise.reject(Vl(e));const i="signIn",a=await wh(e,i,n),o=await ph._fromIdTokenResponse(e,i,a);return t||await e._updateCurrentUser(o.user),o}(e.auth,new Hh(e),e.bypassAuthState)}function Oh(e){const{auth:n,user:t}=e;return nc(t,n,"internal-error"),async function(e,n,t=!1){const{auth:i}=e;if(Hn(i.app))return Promise.reject(Vl(i));const a="reauthenticate";try{const o=await Tc(e,wh(i,a,n,e),t);nc(o.idToken,i,"internal-error");const r=Cc(o.idToken);nc(r,i,"internal-error");const{sub:s}=r;return nc(e.uid===s,i,"user-mismatch"),ph._forOperation(e,a,o)}catch(o){throw"auth/user-not-found"===(null==o?void 0:o.code)&&Ul(i,"user-mismatch"),o}}(t,new Hh(e),e.bypassAuthState)}async function Qh(e){const{auth:n,user:t}=e;return nc(t,n,"internal-error"),async function(e,n,t=!1){const i=await Tc(e,n._linkToIdToken(e.auth,await e.getIdToken()),t);return ph._forOperation(e,"link",i)}(t,new Hh(e),e.bypassAuthState)}class Kh{constructor(e,n,t,i,a=!1){this.auth=e,this.resolver=t,this.user=i,this.bypassAuthState=a,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(n)?n:[n]}execute(){return new Promise(async(e,n)=>{this.pendingPromise={resolve:e,reject:n};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(t){this.reject(t)}})}async onAuthEvent(e){const{urlResponse:n,sessionId:t,postBody:i,tenantId:a,error:o,type:r}=e;if(o)return void this.reject(o);const s={auth:this.auth,requestUri:n,sessionId:t,tenantId:a||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(r)(s))}catch(u){this.reject(u)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Gh;case"linkViaPopup":case"linkViaRedirect":return Qh;case"reauthViaPopup":case"reauthViaRedirect":return Oh;default:Ul(this.auth,"internal-error")}}resolve(e){ic(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){ic(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const jh=new sc(2e3,1e4);async function Wh(e,n,t){if(Hn(e.app))return Promise.reject(zl(e,"operation-not-supported-in-this-environment"));const i=qc(e);ql(e,n,uh);const a=Xh(i,t);return new Uh(i,"signInViaPopup",n,a).executeNotNull()}class Uh extends Kh{constructor(e,n,t,i,a){super(e,n,i,a),this.provider=t,this.authWindow=null,this.pollId=null,Uh.currentPopupAction&&Uh.currentPopupAction.cancel(),Uh.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return nc(e,this.auth,"internal-error"),e}async onExecution(){ic(1===this.filter.length,"Popup operations only handle one event");const e=Dh();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(zl(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(zl(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,Uh.currentPopupAction=null}pollUserCancellation(){const e=()=>{var n,t;(null===(t=null===(n=this.authWindow)||void 0===n?void 0:n.window)||void 0===t?void 0:t.closed)?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(zl(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,jh.get())};e()}}Uh.currentPopupAction=null;const zh=new Map;class $h extends Kh{constructor(e,n,t=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],n,void 0,t),this.eventId=null}async execute(){let e=zh.get(this.auth._key());if(!e){try{const n=await async function(e,n){const t=nd(n),i=ed(e);if(!(await i._isAvailable()))return!1;const a="true"===await i._get(t);return await i._remove(t),a}(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(n)}catch(n){e=()=>Promise.reject(n)}zh.set(this.auth._key(),e)}return this.bypassAuthState||zh.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);
1if("unknown"!==e.type){if(e.eventId){const n=await this.auth._redirectUserForId(e.eventId);if(n)return this.user=n,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function Vh(e,n){return ed(e)._set(nd(n),"true")}function qh(e,n){zh.set(e._key(),n)}function ed(e){return Pc(e._redirectPersistence)}function nd(e){return Zc("pendingRedirect",e.config.apiKey,e.name)}function td(e,n,t){return async function(e,n,t){if(Hn(e.app))return Promise.reject(Vl(e));const i=qc(e);ql(e,n,uh),await i._initializationPromise;const a=Xh(i,t);return await Vh(a,i),a._openRedirect(i,n,"signInViaRedirect")}(e,n,t)}function id(e,n,t){return async function(e,n,t){const i=Ae(e);ql(i.auth,n,uh),await i.auth._initializationPromise;const a=Xh(i.auth,t);await yh(!1,i,n.providerId),await Vh(a,i.auth);const o=await async function(e){const n=Dh(`${e.uid}:::`);return e._redirectEventId=n,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),n}(i);return a._openRedirect(i.auth,n,"linkViaRedirect",o)}(e,n,t)}async function ad(e,n,t=!1){if(Hn(e.app))return Promise.reject(Vl(e));const i=qc(e),a=Xh(i,n),o=new $h(i,a,t),r=await o.execute();return r&&!t&&(delete r.user._redirectEventId,await i._persistUserIfCurrent(r.user),await i._setRedirectUser(null,n)),r}class od{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let n=!1;return this.consumers.forEach(t=>{this.isEventForConsumer(e,t)&&(n=!0,this.sendToConsumer(e,t),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return sd(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=e,n=!0)),n}sendToConsumer(e,n){var t;if(e.error&&!sd(e)){const i=(null===(t=e.error.code)||void 0===t?void 0:t.split("auth/")[1])||"internal-error";n.onError(zl(this.auth,i))}else n.onAuthEvent(e)}isEventForConsumer(e,n){const t=null===n.eventId||!!e.eventId&&e.eventId===n.eventId;return n.filter.includes(e.type)&&t}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(rd(e))}saveEventToCache(e){this.cachedEventUids.add(rd(e)),this.lastProcessedEventTime=Date.now()}}function rd(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function sd({type:e,error:n}){return"unknown"===e&&"auth/no-auth-event"===(null==n?void 0:n.code)}const ud=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,ld=/^https?/;async function cd(e){if(e.config.emulator)return;const{authorizedDomains:n}=await async function(e,n={}){return gc(e,"GET","/v1/projects",n)}(e);for(const i of n)try{if(hd(i))return}catch(t){}Ul(e,"unauthorized-domain")}function hd(e){const n=ac(),{protocol:t,hostname:i}=new URL(n);if(e.startsWith("chrome-extension://")){const a=new URL(e);return""===a.hostname&&""===i?"chrome-extension:"===t&&e.replace("chrome-extension://","")===n.replace("chrome-extension://",""):"chrome-extension:"===t&&a.hostname===i}if(!ld.test(t))return!1;if(ud.test(e))return i===e;const a=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+a+"|"+a+")$","i").test(i)}const dd=new sc(3e4,6e4);function gd(){const e=Ah().___jsl;if(null==e?void 0:e.H)for(const n of Object.keys(e.H))if(e.H[n].r=e.H[n].r||[],e.H[n].L=e.H[n].L||[],e.H[n].r=[...e.H[n].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}function pd(e){return new Promise((n,t)=>{var i,a,o,r;function s(){gd(),gapi.load("gapi.iframes",{callback:()=>{n(gapi.iframes.getContext())},ontimeout:()=>{gd(),t(zl(e,"network-request-failed"))},timeout:dd.get()})}if(null===(a=null===(i=Ah().gapi)||void 0===i?void 0:i.iframes)||void 0===a?void 0:a.Iframe)n(gapi.iframes.getContext());else{if(!(null===(o=Ah().gapi)||void 0===o?void 0:o.load)){const n=`__${"iframefcb"}${Math.floor(1e6*Math.random())}`;return Ah()[n]=()=>{gapi.load?s():t(zl(e,"network-request-failed"))},(r=`${nh.gapiScript}?onload=${n}`,nh.loadJS(r)).catch(e=>t(e))}s()}}).catch(e=>{throw md=null,e})}let md=null;const fd=new sc(5e3,15e3),vd={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},wd=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function yd(e){const n=e.config;nc(n.authDomain,e,"auth-domain-config-required");const t=n.emulator?uc(n,"emulator/auth/iframe"):`https://${e.config.authDomain}
1/__/auth/iframe`,i={apiKey:n.apiKey,appName:e.name,v:Qn},a=wd.get(e.config.apiHost);a&&(i.eid=a);const o=e._getFrameworks();return o.length&&(i.fw=o.join(",")),`${t}?${ke(i).slice(1)}`}async function bd(e){const n=await function(e){return md=md||pd(e),md}(e),t=Ah().gapi;return nc(t,e,"internal-error"),n.open({where:document.body,url:yd(e),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:vd,dontclear:!0},n=>new Promise(async(t,i)=>{await n.restyle({setHideOnLeave:!1});const a=zl(e,"network-request-failed"),o=Ah().setTimeout(()=>{i(a)},fd.get());function r(){Ah().clearTimeout(o),t(n)}n.ping(r).then(r,()=>{i(a)})}))}const Sd={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Cd{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Ld(e,n,t,i=500,a=600){const o=Math.max((window.screen.availHeight-a)/2,0).toString(),r=Math.max((window.screen.availWidth-i)/2,0).toString();let s="";const u=Object.assign(Object.assign({},Sd),{width:i.toString(),height:a.toString(),top:o,left:r}),l=ye().toLowerCase();t&&(s=Xc(l)?"_blank":t),Rc(l)&&(n=n||"http://localhost",u.scrollbars="yes");const c=Object.entries(u).reduce((e,[n,t])=>`${e}${n}=${t},`,"");if(function(e=ye()){var n;return Kc(e)&&!!(null===(n=window.navigator)||void 0===n?void 0:n.standalone)}(l)&&"_self"!==s)return function(e,n){const t=document.createElement("a");t.href=e,t.target=n;const i=document.createEvent("MouseEvent");i.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(i)}(n||"",s),new Cd(null);const h=window.open(n||"",s,c);nc(h,e,"popup-blocked");try{h.focus()}catch(d){}return new Cd(h)}const Td="__/auth/handler",Ed="emulator/auth/handler",kd=encodeURIComponent("fac");async function Dd(e,n,t,i,a,o){nc(e.config.authDomain,e,"auth-domain-config-required"),nc(e.config.apiKey,e,"invalid-api-key");const r={apiKey:e.config.apiKey,appName:e.name,authType:t,redirectUrl:i,v:Qn,eventId:a};if(n instanceof uh){n.setDefaultLanguage(e.languageCode),r.providerId=n.providerId||"",function(e){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!1;return!0}(n.getCustomParameters())||(r.customParameters=JSON.stringify(n.getCustomParameters()));for(const[e,n]of Object.entries({}))r[e]=n}if(n instanceof lh){const e=n.getScopes().filter(e=>""!==e);e.length>0&&(r.scopes=e.join(","))}e.tenantId&&(r.tid=e.tenantId);const s=r;for(const c of Object.keys(s))void 0===s[c]&&delete s[c];const u=await e._getAppCheckToken(),l=u?`#${kd}=${encodeURIComponent(u)}`:"";return`${function({config:e}){if(!e.emulator)return`https://${e.authDomain}/${Td}`;return uc(e,Ed)}(e)}?${ke(s).slice(1)}${l}`}const xd="webStorageSupport";const Ad=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Eh,this._completeRedirectFn=ad,this._overrideRedirectResult=qh}async _openPopup(e,n,t,i){var a;ic(null===(a=this.eventManagers[e._key()])||void 0===a?void 0:a.manager,"_initialize() not called before _openPopup()");return Ld(e,await Dd(e,n,t,ac(),i),Dh())}async _openRedirect(e,n,t,i){await this._originValidation(e);return function(e){Ah().location.href=e}(await Dd(e,n,t,ac(),i)),new Promise(()=>{})}_initialize(e){const n=e._key();if(this.eventManagers[n]){const{manager:e,promise:t}=this.eventManagers[n];return e?Promise.resolve(e):(ic(t,"If manager is not set, promise should be"),t)}const t=this.initAndGetManager(e);return this.eventManagers[n]={promise:t},t.catch(()=>{delete this.eventManagers[n]}),t}async initAndGetManager(e){const n=await bd(e),t=new od(e);return n.register("authEvent",n=>{nc(null==n?void 0:n.authEvent,e,"invalid-auth-event");return{status:t.onEvent(n.authEvent)?"ACK":"ERROR"}},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:t},this.iframes[e._key()]=n,t}_isIframeWebStorageSupported(e,n){this.iframes[e._key()].send(xd,{type:xd},t=>{var i;const a=null===(i=null==t?void 0:t[0])||void 0===i?void 0:i[xd];void 0!==a&&n(!!a),Ul(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const n=e._key();return this.originValidationPromises[n]||(this.originValidationPromises[n]=cd(e)),this.originValidationPromises[n]}get _shouldInitProactively(){return Wc()||Fc()||Kc()}};var Yd="@firebase/auth",_d="1.7.9";class Id{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){if(this.assertAuthConfigured(),await this.auth._initializationPromise,!this.auth.currentUser)return null;return{accessToken:await this.auth.currentUser.getIdToken(e)}}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;const n=this.auth.onIdTokenChanged(n=>{e((null==n?void 0:n.stsTokenManager.accessToken)||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){nc(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const Pd=ve("authIdTokenMaxAge")||300;let Nd=null;function Md(e=jn()){const n=Xn(e,"auth");if(n.isInitialized())return n.getImmediate();const t=function(e,n){const t=Xn(e,"auth");if(t.isInitialized()){const e=t.getImmediate();if(Te(t.getOptions(),null!=n?n:{}))return e;Ul(e,"already-initialized")}return t.initialize({options:n})}(e,{popupRedirectResolver:Ad,persistence:[Fh,Lh,Eh]}),i=ve("authTokenSyncURL");if(i&&"boolean"==typeof isSecureContext&&isSecureContext){const e=new URL(i,location.origin);if(location.origin===e.origin){const n=(a=e.toString(),async e=>{const n=e&&await e.getIdTokenResult(),t=n&&((new Date).getTime()-Date.parse(n.issuedAtTime))/1e3;if(t&&t>Pd)return;const i=null==n?void 0:n.token;Nd!==i&&(Nd=i,await fetch(a,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});!function(e,n,t){Ae(e).beforeAuthStateChanged(n,t)}(t,n,()=>n(t.currentUser)),function(e,n,t,i){Ae(e).onIdTokenChanged(n,t,i)}(t,e=>n(e))}}var a;const o=me("auth");return o&&th(t,`http://${o}`),t}var Zd;function Jd(e,n,t){if("function"==typeof e?e===n:e.has(n))return arguments.length<3?n:t;throw new TypeError("Private element is not present on this object")}
1function Bd(e,n){return e.get(Jd(e,n))}function Rd(e,n,t){(function(e,n){if(n.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,n),n.set(e,t)}nh={loadJS:e=>new Promise((n,t)=>{const i=document.createElement("script");var a,o;i.setAttribute("src",e),i.onload=n,i.onerror=e=>{const n=zl("internal-error");n.customData=e,t(n)},i.type="text/javascript",i.charset="UTF-8",(null!==(o=null===(a=document.getElementsByTagName("head"))||void 0===a?void 0:a[0])&&void 0!==o?o:document).appendChild(i)}),gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},Zd="Browser",Fn(new Ye("auth",(e,{options:n})=>{const t=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),a=e.getProvider("app-check-internal"),{apiKey:o,authDomain:r}=t.options;nc(o&&!o.includes(":"),"invalid-api-key",{appName:t.name});const s={apiKey:o,authDomain:r,clientPlatform:Zd,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:Uc(Zd)},u=new Vc(t,i,a,s);return function(e,n){const t=(null==n?void 0:n.persistence)||[],i=(Array.isArray(t)?t:[t]).map(Pc);(null==n?void 0:n.errorMap)&&e._updateErrorMap(n.errorMap),e._initializeWithPersistence(i,null==n?void 0:n.popupRedirectResolver)}(u,n),u},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,t)=>{e.getProvider("auth-internal").initialize()})),Fn(new Ye("auth-internal",e=>{const n=qc(e.getProvider("auth").getImmediate());return new Id(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),Wn(Yd,_d,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(Zd)),Wn(Yd,_d,"esm2017");const Fd={},Xd=e=>new Promise(n=>{if(!e)return n();const t=window.scrollX,i=window.scrollY;Fd.restoreFocusTimeout=setTimeout(()=>{Fd.previousActiveElement instanceof HTMLElement?(Fd.previousActiveElement.focus(),Fd.previousActiveElement=null):document.body&&document.body.focus(),n()},100),window.scrollTo(t,i)}),Hd="swal2-",Gd=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","draggable","dragging"].reduce((e,n)=>(e[n]=Hd+n,e),{}),Od=["success","warning","info","question","error"].reduce((e,n)=>(e[n]=Hd+n,e),{}),Qd="SweetAlert2:",Kd=e=>e.charAt(0).toUpperCase()+e.slice(1),jd=e=>{console.warn(`${Qd} ${"object"==typeof e?e.join(" "):e}`)},Wd=e=>{console.error(`${Qd} ${e}`)},Ud=[],zd=(e,n=null)=>{var t;t=`"${e}" is deprecated and will be removed in the next major release.${n?` Use "${n}" instead.`:""}`,Ud.includes(t)||(Ud.push(t),jd(t))},$d=e=>"function"==typeof e?e():e,Vd=e=>e&&"function"==typeof e.toPromise,qd=e=>Vd(e)?e.toPromise():Promise.resolve(e),eg=e=>e&&Promise.resolve(e)===e,ng=()=>document.body.querySelector(`.${Gd.container}`),tg=e=>{const n=ng();return n?n.querySelector(e):null},ig=e=>tg(`.${e}`),ag=()=>ig(Gd.popup),og=()=>ig(Gd.icon),rg=()=>ig(Gd.title),sg=()=>ig(Gd["html-container"]),ug=()=>ig(Gd.image),lg=()=>ig(Gd["progress-steps"]),cg=()=>ig(Gd["validation-message"]),hg=()=>tg(`.${Gd.actions} .${Gd.confirm}`),dg=()=>tg(`.${Gd.actions} .${Gd.cancel}`),gg=()=>tg(`.${Gd.actions} .${Gd.deny}`),pg=()=>tg(`.${Gd.loader}`),mg=()=>ig(Gd.actions),fg=()=>ig(Gd.footer),vg=()=>ig(Gd["timer-progress-bar"]),wg=()=>ig(Gd.close),yg=()=>{const e=ag();if(!e)return[];
vendor: 1,030 bytes, line 1
1const n=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),t=Array.from(n).sort((e,n)=>{const t=parseInt(e.getAttribute("tabindex")||"0"),i=parseInt(n.getAttribute("tabindex")||"0");return t>i?1:t<i?-1:0}),i=e.querySelectorAll('\n  a[href],\n  area[href],\n  input:not([disabled]),\n  select:not([disabled]),\n  textarea:not([disabled]),\n  button:not([disabled]),\n  iframe,\n  object,\n  embed,\n  [tabindex="0"],\n  [contenteditable],\n  audio[controls],\n  video[controls],\n  summary\n'),a=Array.from(i).filter(e=>"-1"!==e.getAttribute("tabindex"));return[...new Set(t.concat(a))].filter(e=>Jg(e))},bg=()=>Lg(document.body,Gd.shown)&&!Lg(document.body,Gd["toast-shown"])&&!Lg(document.body,Gd["no-backdrop"]),Sg=()=>{const e=ag();return!!e&&Lg(e,Gd.toast)},Cg=(e,n)=>{if(e.textContent="",n){const t=(new DOMParser).parseFromString(n,"text/html"),i=t.querySelector("head");i&&Array.from(i.childNodes).forEach(n=>{e.appendChild(n)});const a=t.querySelector("body");a&&Array.from(a.childNodes).forEach(n=>
1{n instanceof HTMLVideoElement||n instanceof HTMLAudioElement?e.appendChild(n.cloneNode(!0)):e.appendChild(n)})}},Lg=(e,n)=>{if(!n)return!1;const t=n.split(/\s+/);for(let i=0;i<t.length;i++)if(!e.classList.contains(t[i]))return!1;return!0},Tg=(e,n,t)=>{if(((e,n)=>{Array.from(e.classList).forEach(t=>{Object.values(Gd).includes(t)||Object.values(Od).includes(t)||Object.values(n.showClass||{}).includes(t)||e.classList.remove(t)})})(e,n),!n.customClass)return;const i=n.customClass[t];i&&("string"==typeof i||i.forEach?xg(e,i):jd(`Invalid type of customClass.${t}! Expected string or iterable object, got "${typeof i}"`))},Eg=(e,n)=>{if(!n)return null;switch(n){case"select":case"textarea":case"file":return e.querySelector(`.${Gd.popup} > .${Gd[n]}`);case"checkbox":return e.querySelector(`.${Gd.popup} > .${Gd.checkbox} input`);case"radio":return e.querySelector(`.${Gd.popup} > .${Gd.radio} input:checked`)||e.querySelector(`.${Gd.popup} > .${Gd.radio} input:first-child`);case"range":return e.querySelector(`.${Gd.popup} > .${Gd.range} input`);default:return e.querySelector(`.${Gd.popup} > .${Gd.input}`)}},kg=e=>{if(e.focus(),"file"!==e.type){const n=e.value;e.value="",e.value=n}},Dg=(e,n,t)=>{e&&n&&("string"==typeof n&&(n=n.split(/\s+/).filter(Boolean)),n.forEach(n=>{Array.isArray(e)?e.forEach(e=>{t?e.classList.add(n):e.classList.remove(n)}):t?e.classList.add(n):e.classList.remove(n)}))},xg=(e,n)=>{Dg(e,n,!0)},Ag=(e,n)=>{Dg(e,n,!1)},Yg=(e,n)=>{const t=Array.from(e.children);for(let i=0;i<t.length;i++){const e=t[i];if(e instanceof HTMLElement&&Lg(e,n))return e}},_g=(e,n,t)=>{t===`${parseInt(`${t}`)}`&&(t=parseInt(t)),t||0===parseInt(`${t}`)?e.style.setProperty(n,"number"==typeof t?`${t}px`:t):e.style.removeProperty(n)},Ig=(e,n="flex")=>{e&&(e.style.display=n)},Pg=e=>{e&&(e.style.display="none")},Ng=(e,n="block")=>{e&&new MutationObserver(()=>{Zg(e,e.innerHTML,n)}).observe(e,{childList:!0,subtree:!0})},Mg=(e,n,t,i)=>{const a=e.querySelector(n);a&&a.style.setProperty(t,i)},Zg=(e,n,t="flex")=>{n?Ig(e,t):Pg(e)},Jg=e=>Boolean(e&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),Bg=e=>Boolean(e.scrollHeight>e.clientHeight),Rg=e=>{const n=window.getComputedStyle(e),t=parseFloat(n.getPropertyValue("animation-duration")||"0"),i=parseFloat(n.getPropertyValue("transition-duration")||"0");return t>0||i>0},Fg=(e,n=!1)=>{const t=vg();t&&Jg(t)&&(n&&(t.style.transition="none",t.style.width="100%"),setTimeout(()=>{t.style.transition=`width ${e/1e3}s linear`,t.style.width="0%"},10))},Xg=`\n <div aria-labelledby="${Gd.title}" aria-describedby="${Gd["html-container"]}" class="${Gd.popup}" tabindex="-1">\n   <button type="button" class="${Gd.close}"></button>\n   <ul class="${Gd["progress-steps"]}"></ul>\n   <div class="${Gd.icon}"></div>\n   <img class="${Gd.image}" />\n   <h2 class="${Gd.title}" id="${Gd.title}"></h2>\n   <div class="${Gd["html-container"]}" id="${Gd["html-container"]}"></div>\n   <input class="${Gd.input}" id="${Gd.input}" />\n   <input type="file" class="${Gd.file}" />\n   <div class="${Gd.range}">\n     <input type="range" />\n     <output></output>\n   </div>\n   <select class="${Gd.select}" id="${Gd.select}"></select>\n   <div class="${Gd.radio}"></div>\n   <label class="${Gd.checkbox}">\n     <input type="checkbox" id="${Gd.checkbox}" />\n     <span class="${Gd.label}"></span>\n   </label>\n   <textarea class="${Gd.textarea}" id="${Gd.textarea}"></textarea>\n   <div class="${Gd["validation-message"]}" id="${Gd["validation-message"]}"></div>\n   <div class="${Gd.actions}">\n     <div class="${Gd.loader}"></div>\n     <button type="button" class="${Gd.confirm}"></button>\n     <button type="button" class="${Gd.deny}"></button>\n     <button type="button" class="${Gd.cancel}"></button>\n   </div>\n   <div class="${Gd.footer}"></div>\n   <div class="${Gd["timer-progress-bar-container"]}">\n     <div class="${Gd["timer-progress-bar"]}"></div>\n   </div>\n </div>\n`.replace(/(^|\n)\s*/g,""),Hg=()=>{Fd.currentInstance&&Fd.currentInstance.resetValidationMessage()},Gg=e=>{const n=(()=>{const e=ng();return!!e&&(e.remove(),Ag([document.documentElement,document.body],[Gd["no-backdrop"],Gd["toast-shown"],Gd["has-column"]]),!0)})();if("undefined"==typeof window||"undefined"==typeof document)return void Wd("SweetAlert2 requires document to initialize");const t=document.createElement("div");t.className=Gd.container,n&&xg(t,Gd["no-transition"]),Cg(t,Xg),t.dataset.swal2Theme=e.theme;const i=(e=>{if("string"==typeof e){const n=document.querySelector(e);
vendor: 14,903 bytes, line 1
1if(!n)throw new Error(`Target element "${e}" not found`);return n}return e})(e.target||"body");i.appendChild(t),e.topLayer&&(t.setAttribute("popover",""),t.showPopover()),(e=>{const n=ag();n&&(n.setAttribute("role",e.toast?"alert":"dialog"),n.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||n.setAttribute("aria-modal","true"))})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&(xg(ng(),Gd.rtl),Fd.isRTL=!0)})(i),(()=>{const e=ag();if(!e)return;const n=Yg(e,Gd.input),t=Yg(e,Gd.file),i=e.querySelector(`.${Gd.range} input`),a=e.querySelector(`.${Gd.range} output`),o=Yg(e,Gd.select),r=e.querySelector(`.${Gd.checkbox} input`),s=Yg(e,Gd.textarea);n&&(n.oninput=Hg),t&&(t.onchange=Hg),o&&(o.onchange=Hg),r&&(r.onchange=Hg),s&&(s.oninput=Hg),i&&a&&(i.oninput=()=>{Hg(),a.value=i.value},i.onchange=()=>{Hg(),a.value=i.value})})()},Og=(e,n)=>{e instanceof HTMLElement?n.appendChild(e):"object"==typeof e?Qg(e,n):e&&Cg(n,e)},Qg=(e,n)=>{"jquery"in e?Kg(n,e):Cg(n,e.toString())},Kg=(e,n)=>{if(e.textContent="",0 in n)for(let t=0;t in n;t++)e.appendChild(n[t].cloneNode(!0));else e.appendChild(n.cloneNode(!0))},jg=(e,n)=>{const t=mg(),i=pg();t&&i&&(n.showConfirmButton||n.showDenyButton||n.showCancelButton?Ig(t):Pg(t),Tg(t,n,"actions"),function(e,n,t){const i=hg(),a=gg(),o=dg();if(!i||!a||!o)return;Ug(i,"confirm",t),Ug(a,"deny",t),Ug(o,"cancel",t),function(e,n,t,i){if(!i.buttonsStyling)return void Ag([e,n,t],Gd.styled);xg([e,n,t],Gd.styled),i.confirmButtonColor&&e.style.setProperty("--swal2-confirm-button-background-color",i.confirmButtonColor);i.denyButtonColor&&n.style.setProperty("--swal2-deny-button-background-color",i.denyButtonColor);i.cancelButtonColor&&t.style.setProperty("--swal2-cancel-button-background-color",i.cancelButtonColor);Wg(e),Wg(n),Wg(t)}(i,a,o,t),t.reverseButtons&&(t.toast?(e.insertBefore(o,i),e.insertBefore(a,i)):(e.insertBefore(o,n),e.insertBefore(a,n),e.insertBefore(i,n)))}(t,i,n),Cg(i,n.loaderHtml||""),Tg(i,n,"loader"))};function Wg(e){const n=window.getComputedStyle(e);if(n.getPropertyValue("--swal2-action-button-focus-box-shadow"))return;const t=n.backgroundColor.replace(/rgba?\((\d+), (\d+), (\d+).*/,"rgba($1, $2, $3, 0.5)");e.style.setProperty("--swal2-action-button-focus-box-shadow",n.getPropertyValue("--swal2-outline").replace(/ rgba\(.*/,` ${t}`))}function Ug(e,n,t){const i=Kd(n);Zg(e,t[`show${i}Button`],"inline-block"),Cg(e,t[`${n}ButtonText`]||""),e.setAttribute("aria-label",t[`${n}ButtonAriaLabel`]||""),e.className=Gd[n],Tg(e,t,`${n}Button`)}const zg=(e,n)=>{const t=ng();t&&(!function(e,n){"string"==typeof n?e.style.background=n:n||xg([document.documentElement,document.body],Gd["no-backdrop"])}(t,n.backdrop),function(e,n){if(!n)return;n in Gd?xg(e,Gd[n]):(jd('The "position" parameter is not valid, defaulting to "center"'),xg(e,Gd.center))}(t,n.position),function(e,n){if(!n)return;xg(e,Gd[`grow-${n}`])}(t,n.grow),Tg(t,n,"container"))};var $g={innerParams:new WeakMap,domCache:new WeakMap,focusedElement:new WeakMap};const Vg=["input","file","range","select","radio","checkbox","textarea"],qg=e=>{if(!e.input)return;if(!rp[e.input])return void Wd(`Unexpected type of input! Expected ${Object.keys(rp).join(" | ")}, got "${e.input}"`);const n=ap(e.input);if(!n)return;const t=rp[e.input](n,e);Ig(n),e.inputAutoFocus&&setTimeout(()=>{kg(t)})},ep=(e,n)=>{const t=ag();if(!t)return;const i=Eg(t,e);if(i){(e=>{for(let n=0;n<e.attributes.length;n++){const t=e.attributes[n].name;["id","type","value","style"].includes(t)||e.removeAttribute(t)}})(i);for(const e in n)i.setAttribute(e,n[e])}},np=e=>{if(!e.input)return;const n=ap(e.input);n&&Tg(n,e,"input")},tp=(e,n)=>{!e.placeholder&&n.inputPlaceholder&&(e.placeholder=n.inputPlaceholder)},ip=(e,n,t)=>{if(t.inputLabel){const i=document.createElement("label"),a=Gd["input-label"];i.setAttribute("for",e.id),i.className=a,"object"==typeof t.customClass&&xg(i,t.customClass.inputLabel),i.innerText=t.inputLabel,n.insertAdjacentElement("beforebegin",i)}},ap=e=>{const n=ag();if(n)return Yg(n,Gd[e]||Gd.input)},op=(e,n)=>{["string","number"].includes(typeof n)?e.value=`${n}`:eg(n)||jd(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof n}"`)},rp={};rp.text=rp.email=rp.password=rp.number=rp.tel=rp.url=rp.search=rp.date=rp["datetime-local"]=rp.time=rp.week=rp.month=(e,n)=>{const t=e;return op(t,n.inputValue),ip(t,t,n),tp(t,n),t.type=n.input,t},rp.file=(e,n)=>{const t=e;return ip(t,t,n),tp(t,n),t},rp.range=(e,n)=>{const t=e,i=t.querySelector("input"),a=t.querySelector("output");return i&&(op(i,n.inputValue),i.type=n.input,ip(i,e,n)),a&&op(a,n.inputValue),e},rp.select=(e,n)=>{const t=e;if(t.textContent="",n.inputPlaceholder){const e=document.createElement("option");Cg(e,n.inputPlaceholder),e.value="",e.disabled=!0,e.selected=!0,t.appendChild(e)}return ip(t,t,n),t},rp.radio=e=>(e.textContent="",e),rp.checkbox=(e,n)=>{const t=ag();if(!t)throw new Error("Popup not found");const i=Eg(t,"checkbox");if(!i)throw new Error("Checkbox input not found");i.value="1",i.checked=Boolean(n.inputValue);const a=e.querySelector("span");if(a){const e=n.inputPlaceholder||n.inputLabel;e&&Cg(a,e)}return i},rp.textarea=(e,n)=>{const t=e;op(t,n.inputValue),tp(t,n),ip(t,t,n);return setTimeout(()=>{if("MutationObserver"in window){const e=ag();if(!e)return;const i=parseInt(window.getComputedStyle(e).width);new MutationObserver(()=>{if(!document.body.contains(t))return;const e=t.offsetWidth+(a=t,parseInt(window.getComputedStyle(a).marginLeft)+parseInt(window.getComputedStyle(a).marginRight));var a;const o=ag();o&&(e>i?o.style.width=`${e}px`:_g(o,"width",n.width))}).observe(t,{attributes:!0,attributeFilter:["style"]})}}),t};const sp=(e,n)=>{const t=sg();t&&(Ng(t),Tg(t,n,"htmlContainer"),n.html?(Og(n.html,t),Ig(t,"block")):n.text?(t.textContent=n.text,Ig(t,"block")):Pg(t),((e,n)=>{const t=ag();if(!t)return;const i=$g.innerParams.get(e),a=!i||n.input!==i.input;Vg.forEach(e=>{const i=Yg(t,Gd[e]);i&&(ep(e,n.inputAttributes),i.className=Gd[e],a&&Pg(i))}),n.input&&(a&&qg(n),np(n))})(e,n))},up=(e,n)=>{for(const[t,i]of Object.entries(Od))n.icon!==t&&Ag(e,i);xg(e,n.icon&&Od[n.icon]),hp(e,n),lp(),Tg(e,n,"icon")},lp=()=>{const e=ag();if(!e)return;const n=window.getComputedStyle(e).getPropertyValue("background-color"),t=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let i=0;i<t.length;i++)t[i].style.backgroundColor=n},cp=(e,n)=>{if(!n.icon&&!n.iconHtml)return;let t=e.innerHTML,i="";if(n.iconHtml)i=dp(n.iconHtml);else if("success"===n.icon)i=(e=>`\n  ${e.animation?'<div class="swal2-success-circular-line-left"></div>':""}\n  <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n  <div class="swal2-success-ring"></div>\n  ${e.animation?'<div class="swal2-success-fix"></div>':""}\n  ${e.animation?'<div class="swal2-success-circular-line-right"></div>':""}\n`)(n),t=t.replace(/ style=".*?"/g,"");else if("error"===n.icon)i='\n  <span class="swal2-x-mark">\n    <span class="swal2-x-mark-line-left"></span>\n    <span class="swal2-x-mark-line-right"></span>\n  </span>\n';else if(n.icon){i=dp({question:"?",warning:"!",info:"i"}[n.icon])}t.trim()!==i.trim()&&Cg(e,i)},hp=(e,n)=>{if(n.iconColor){e.style.color=n.iconColor,e.style.borderColor=n.iconColor;for(const t of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])Mg(e,t,"background-color",n.iconColor);Mg(e,".swal2-success-ring","border-color",n.iconColor)}},dp=e=>`<div class="${Gd["icon-content"]}">${e}</div>`;let gp=!1,pp=0,mp=0,fp=0,vp=0;const wp=e=>{const n=ag();if(!n)return;const t=og();if(e.target===n||t&&t.contains(e.target)){gp=!0;const t=Sp(e);pp=t.clientX,mp=t.clientY,fp=parseInt(n.style.insetInlineStart)||0,vp=parseInt(n.style.insetBlockStart)||0,xg(n,"swal2-dragging")}},yp=e=>{const n=ag();if(n&&gp){let{clientX:t,clientY:i}=Sp(e);const a=t-pp;n.style.insetInlineStart=`${fp+(Fd.isRTL?-a:a)}px`,n.style.insetBlockStart=`${vp+(i-mp)}px`}},bp=()=>{const e=ag();gp=!1,Ag(e,"swal2-dragging")},Sp=e=>{let n=0,t=0;return e.type.startsWith("mouse")?(n=e.clientX,t=e.clientY):e.type.startsWith("touch")&&(n=e.touches[0].clientX,t=e.touches[0].clientY),{clientX:n,clientY:t}},Cp=(e,n)=>{const t=ng(),i=ag();if(t&&i){if(n.toast){_g(t,"width",n.width),i.style.width="100%";const e=pg();e&&i.insertBefore(e,og())}else _g(i,"width",n.width);_g(i,"padding",n.padding),n.color&&(i.style.color=n.color),n.background&&(i.style.background=n.background),Pg(cg()),Lp(i,n),n.draggable&&!n.toast?(xg(i,Gd.draggable),(e=>{e.addEventListener("mousedown",wp),document.body.addEventListener("mousemove",yp),e.addEventListener("mouseup",bp),e.addEventListener("touchstart",wp),document.body.addEventListener("touchmove",yp),e.addEventListener("touchend",bp)})(i)):(Ag(i,Gd.draggable),(e=>{e.removeEventListener("mousedown",wp),document.body.removeEventListener("mousemove",yp),e.removeEventListener("mouseup",bp),e.removeEventListener("touchstart",wp),document.body.removeEventListener("touchmove",yp),e.removeEventListener("touchend",bp)})(i))}},Lp=(e,n)=>{const t=n.showClass||{};e.className=`${Gd.popup} ${Jg(e)?t.popup:""}`,n.toast?(xg([document.documentElement,document.body],Gd["toast-shown"]),xg(e,Gd.toast)):xg(e,Gd.modal),Tg(e,n,"popup"),"string"==typeof n.customClass&&xg(e,n.customClass),n.icon&&xg(e,Gd[`icon-${n.icon}`])},Tp=e=>{const n=document.createElement("li");return xg(n,Gd["progress-step"]),Cg(n,e),n},Ep=e=>{const n=document.createElement("li");return xg(n,Gd["progress-step-line"]),e.progressStepsDistance&&_g(n,"width",e.progressStepsDistance),n},kp=(e,n)=>{var t;Cp(0,n),zg(0,n),((e,n)=>{const t=lg();if(!t)return;const{progressSteps:i,currentProgressStep:a}=n;i&&0!==i.length&&void 0!==a?(Ig(t),t.textContent="",a>=i.length&&jd("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),i.forEach((e,o)=>{const r=Tp(e);if(t.appendChild(r),o===a&&xg(r,Gd["active-progress-step"]),o!==i.length-1){const e=Ep(n);t.appendChild(e)}})):Pg(t)})(0,n),((e,n)=>{const t=$g.innerParams.get(e),i=og();if(!i)return;if(t&&n.icon===t.icon)return cp(i,n),void up(i,n);if(!n.icon&&!n.iconHtml)return void Pg(i);if(n.icon&&-1===Object.keys(Od).indexOf(n.icon))return Wd(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${n.icon}"`),void Pg(i);Ig(i),cp(i,n),up(i,n),xg(i,n.showClass&&n.showClass.icon),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",lp)})(e,n),((e,n)=>{const t=ug();t&&(n.imageUrl?(Ig(t,""),t.setAttribute("src",n.imageUrl),t.setAttribute("alt",n.imageAlt||""),_g(t,"width",n.imageWidth),_g(t,"height",n.imageHeight),t.className=Gd.image,Tg(t,n,"image")):Pg(t))})(0,n),((e,n)=>{const t=rg();t&&(Ng(t),Zg(t,Boolean(n.title||n.titleText),"block"),n.title&&Og(n.title,t),n.titleText&&(t.innerText=n.titleText),Tg(t,n,"title"))})(0,n),((e,n)=>{const t=wg();t&&(Cg(t,n.closeButtonHtml||""),Tg(t,n,"closeButton"),Zg(t,n.showCloseButton),t.setAttribute("aria-label",n.closeButtonAriaLabel||""))})(0,n),sp(e,n),jg(0,n),((e,n)=>{const t=fg();t&&(Ng(t),Zg(t,Boolean(n.footer),"block"),n.footer&&Og(n.footer,t),Tg(t,n,"footer"))})(0,n);const i=ag();"function"==typeof n.didRender&&i&&n.didRender(i),null===(t=Fd.eventEmitter)||void 0===t||t.emit("didRender",i)},Dp=()=>{var e;return null===(e=hg())||void 0===e?void 0:e.click()},xp=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Ap=e=>{if(e.keydownTarget&&e.keydownHandlerAdded&&e.keydownHandler){const n=e.keydownHandler;e.keydownTarget.removeEventListener("keydown",n,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1}},Yp=(e,n)=>{var t;const i=yg();if(i.length)return-2===(e+=n)&&(e=i.length-1),e===i.length?e=0:-1===e&&(e=i.length-1),void i[e].focus();null===(t=ag())||void 0===t||t.focus()},_p=["ArrowRight","ArrowDown"],Ip=["ArrowLeft","ArrowUp"],Pp=(e,n,t)=>{e&&(n.isComposing||229===n.keyCode||(e.stopKeydownPropagation&&n.stopPropagation(),"Enter"===n.key?Np(n,e):"Tab"===n.key?Mp(n):[..._p,...Ip].includes(n.key)?Zp(n.key):"Escape"===n.key&&Jp(n,e,t)))},Np=(e,n)=>{if(!$d(n.allowEnterKey))return;const t=ag();if(!t||!n.input)return;const i=Eg(t,n.input);if(e.target&&i&&e.target instanceof HTMLElement&&e.target.outerHTML===i.outerHTML){if(["textarea","file"].includes(n.input))return;Dp(),e.preventDefault()}},Mp=e=>{const n=e.target,t=yg();let i=-1;for(let a=0;a<t.length;a++)if(n===t[a]){i=a;break}e.shiftKey?Yp(i,-1):Yp(i,1),e.stopPropagation(),e.preventDefault()},Zp=e=>{const n=mg(),t=hg(),i=gg(),a=dg();if(!(n&&t&&i&&a))return;const o=[t,i,a];if(document.activeElement instanceof HTMLElement&&!o.includes(document.activeElement))return;const r=_p.includes(e)?"nextElementSibling":"previousElementSibling";let s=document.activeElement;if(s){for(let e=0;e<n.children.length;e++){if(s=s[r],!s)return;if(s instanceof HTMLButtonElement&&Jg(s))break}s instanceof HTMLButtonElement&&s.focus()}},Jp=(e,n,t)=>{e.preventDefault(),$d(n.allowEscapeKey)&&t(xp.esc)};var Bp={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Rp=()=>{Array.from(document.body.children).forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},Fp="undefined"!=typeof window&&Boolean(window.GestureEvent),Xp=()=>{const e=ng();if(!e)return;let n;e.ontouchstart=e=>{n=Hp(e)},e.ontouchmove=e=>{n&&(e.preventDefault(),e.stopPropagation())}},Hp=e=>{const n=e.target,t=ng(),i=sg();return!(!t||!i)&&(!Gp(e)&&!Op(e)&&(n===t||!(Bg(t)||!(n instanceof HTMLElement)||((e,n)=>{let t=e;for(;t&&t!==n;){if(Bg(t))return!0;t=t.parentElement}return!1})(n,i)||"INPUT"===n.tagName||"TEXTAREA"===n.tagName||Bg(i)&&i.contains(n))))},Gp=e=>Boolean(e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType),Op=e=>e.touches&&e.touches.length>1;let Qp=null;const Kp=e=>{null===Qp&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(Qp=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${Qp+(()=>{const e=document.createElement("div");e.className=Gd["scrollbar-measure"],document.body.appendChild(e);const n=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),n})()}px`)};function jp(e,n,t,i){Sg()?nm(e,i):(Xd(t).then(()=>nm(e,i)),Ap(Fd)),Fp?(n.setAttribute("style","display:none !important"),n.removeAttribute("class"),n.innerHTML=""):n.remove(),bg()&&(null!==Qp&&(document.body.style.paddingRight=`${Qp}px`,Qp=null),(()=>{if(Lg(document.body,Gd.iosfix)){const e=parseInt(document.body.style.top,10);Ag(document.body,Gd.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),Rp()),Ag([document.documentElement,document.body],[Gd.shown,Gd["he
1ight-auto"],Gd["no-backdrop"],Gd["toast-shown"]])}function Wp(e){e=Vp(e);const n=Bp.swalPromiseResolve.get(this),t=Up(this);this.isAwaitingPromise?e.isDismissed||($p(this),n(e)):t&&n(e)}const Up=e=>{const n=ag();if(!n)return!1;const t=$g.innerParams.get(e);if(!t||Lg(n,t.hideClass.popup))return!1;Ag(n,t.showClass.popup),xg(n,t.hideClass.popup);const i=ng();return Ag(i,t.showClass.backdrop),xg(i,t.hideClass.backdrop),qp(e,n,t),!0};function zp(e){const n=Bp.swalPromiseReject.get(this);$p(this),n&&n(e)}const $p=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,$g.innerParams.get(e)||e._destroy())},Vp=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),qp=(e,n,t)=>{var i;const a=ng(),o=Rg(n);"function"==typeof t.willClose&&t.willClose(n),null===(i=Fd.eventEmitter)||void 0===i||i.emit("willClose",n),o&&a?em(e,n,a,Boolean(t.returnFocus),t.didClose):a&&jp(e,a,Boolean(t.returnFocus),t.didClose)},em=(e,n,t,i,a)=>{Fd.swalCloseEventFinishedCallback=jp.bind(null,e,t,i,a);const o=function(e){var t;e.target===n&&(null===(t=Fd.swalCloseEventFinishedCallback)||void 0===t||t.call(Fd),delete Fd.swalCloseEventFinishedCallback,n.removeEventListener("animationend",o),n.removeEventListener("transitionend",o))};n.addEventListener("animationend",o),n.addEventListener("transitionend",o)},nm=(e,n)=>{setTimeout(()=>{var t;"function"==typeof n&&n.bind(e.params)(),null===(t=Fd.eventEmitter)||void 0===t||t.emit("didClose"),e._destroy&&e._destroy()})},tm=e=>{let n=ag();if(n||new Mf,n=ag(),!n)return;const t=pg();Sg()?Pg(og()):im(n,e),Ig(t),n.setAttribute("data-loading","true"),n.setAttribute("aria-busy","true"),n.focus()},im=(e,n)=>{const t=mg(),i=pg();t&&i&&(!n&&Jg(hg())&&(n=hg()),Ig(t),n&&(Pg(n),i.setAttribute("data-button-to-replace",n.className),t.insertBefore(i,n)),xg([e,t],Gd.loading))},am=e=>e.checked?1:0,om=e=>e.checked?e.value:null,rm=e=>e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,sm=(e,n)=>{const t=ag();if(!t)return;const i=e=>{"select"===n.input?function(e,n,t){const i=Yg(e,Gd.select);if(!i)return;const a=(e,n,i)=>{const a=document.createElement("option");a.value=i,Cg(a,n),a.selected=cm(i,t.inputValue),e.appendChild(a)};n.forEach(e=>{const n=e[0],t=e[1];if(Array.isArray(t)){const e=document.createElement("optgroup");e.label=n,e.disabled=!1,i.appendChild(e),t.forEach(n=>a(e,n[1],n[0]))}else a(i,t,n)}),i.focus()}(t,lm(e),n):"radio"===n.input&&function(e,n,t){const i=Yg(e,Gd.radio);if(!i)return;n.forEach(e=>{const n=e[0],a=e[1],o=document.createElement("input"),r=document.createElement("label");o.type="radio",o.name=Gd.radio,o.value=n,cm(n,t.inputValue)&&(o.checked=!0);const s=document.createElement("span");Cg(s,a),s.className=Gd.label,r.appendChild(o),r.appendChild(s),i.appendChild(r)});const a=i.querySelectorAll("input");a.length&&a[0].focus()}(t,lm(e),n)};Vd(n.inputOptions)||eg(n.inputOptions)?(tm(hg()),qd(n.inputOptions).then(n=>
1{e.hideLoading(),i(n)})):"object"==typeof n.inputOptions?i(n.inputOptions):Wd("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof n.inputOptions)},um=(e,n)=>{const t=e.getInput();t&&(Pg(t),qd(n.inputValue).then(i=>{t.value="number"===n.input?`${parseFloat(i)||0}`:`${i}`,Ig(t),t.focus(),e.hideLoading()}).catch(n=>{Wd(`Error in inputValue promise: ${n}`),t.value="",Ig(t),t.focus(),e.hideLoading()}))};const lm=e=>{const n=[];return e instanceof Map?e.forEach((e,t)=>{let i=e;"object"==typeof i&&(i=lm(i)),n.push([t,i])}):Object.keys(e).forEach(t=>{let i=e[t];"object"==typeof i&&(i=lm(i)),n.push([t,i])}),n},cm=(e,n)=>Boolean(n)&&null!=n&&n.toString()===e.toString(),hm=(e,n)=>{const t=$g.innerParams.get(e);if(!t.input)return void Wd(`The "input" parameter is needed to be set when using returnInputValueOn${Kd(n)}`);const i=e.getInput(),a=((e,n)=>{const t=e.getInput();if(!t)return null;switch(n.input){case"checkbox":return am(t);case"radio":return om(t);case"file":return rm(t);default:return n.inputAutoTrim?t.value.trim():t.value}})(e,t);t.inputValidator?dm(e,a,n):i&&!i.checkValidity()?(e.enableButtons(),e.showValidationMessage(t.validationMessage||i.validationMessage)):"deny"===n?gm(e,a):fm(e,a)},dm=(e,n,t)=>{const i=$g.innerParams.get(e);e.disableInput();Promise.resolve().then(()=>qd(i.inputValidator(n,i.validationMessage))).then(i=>{e.enableButtons(),e.enableInput(),i?e.showValidationMessage(i):"deny"===t?gm(e,n):fm(e,n)})},gm=(e,n)=>{const t=$g.innerParams.get(e);if(t.showLoaderOnDeny&&tm(gg()),t.preDeny){e.isAwaitingPromise=!0;Promise.resolve().then(()=>qd(t.preDeny(n,t.validationMessage))).then(t=>{!1===t?(e.hideLoading(),$p(e)):e.close({isDenied:!0,value:void 0===t?n:t})}).catch(n=>mm(e,n))}else e.close({isDenied:!0,value:n})},pm=(e,n)=>{e.close({isConfirmed:!0,value:n})},mm=(e,n)=>{e.rejectPromise(n)},fm=(e,n)=>{const t=$g.innerParams.get(e);if(t.showLoaderOnConfirm&&tm(),t.preConfirm){e.resetValidationMessage(),e.isAwaitingPromise=!0;Promise.resolve().then(()=>qd(t.preConfirm(n,t.validationMessage))).then(t=>{Jg(cg())||!1===t?(e.hideLoading(),$p(e)):pm(e,void 0===t?n:t)}).catch(n=>mm(e,n))}else pm(e,n)};function vm(){const e=$g.innerParams.get(this);if(!e)return;const n=$g.domCache.get(this);Pg(n.loader),Sg()?e.icon&&Ig(og()):wm(n),Ag([n.popup,n.actions],Gd.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1;const t=$g.focusedElement.get(this);t instanceof HTMLElement&&(t.focus(),$g.focusedElement.delete(this))}const wm=e=>{const n=e.loader.getAttribute("data-button-to-replace"),t=n?e.popup.getElementsByClassName(n):[];t.length?Ig(t[0],"inline-block"):Jg(hg())||Jg(gg())||Jg(dg())||Pg(e.actions)};function ym(){const e=$g.innerParams.get(this),n=$g.domCache.get(this);return n?Eg(n.popup,e.input):null}function bm(e,n,t){const i=$g.domCache.get(e);n.forEach(e=>{i[e].disabled=t})}function Sm(e,n){const t=ag();if(t&&e)if("radio"===e.type){const e=t.querySelectorAll(`[name="${Gd.radio}"]`);for(let t=0;t<e.length;t++)e[t].disabled=n}else e.disabled=n}function Cm(){bm(this,["confirmButton","denyButton","cancelButton"],!1);const e=$g.focusedElement.get(this);e instanceof HTMLElement&&(e.focus(),$g.focusedElement.delete(this))}function Lm(){$g.focusedElement.set(this,document.activeElement),bm(this,["confirmButton","denyButton","cancelButton"],!0)}function Tm(){Sm(this.getInput(),!1)}function Em(){Sm(this.getInput(),!0)}function km(e){const n=$g.domCache.get(this),t=$g.innerParams.get(this);Cg(n.validationMessage,e),n.validationMessage.className=Gd["validation-message"],t.customClass&&t.customClass.validationMessage&&xg(n.validationMessage,t.customClass.validationMessage),Ig(n.validationMessage);const i=this.getInput();i&&(i.setAttribute("aria-invalid","true"),i.setAttribute("aria-describedby",Gd["validation-message"]),kg(i),xg(i,Gd.inputerror))}function Dm(){const e=$g.domCache.get(this);e.validationMessage&&Pg(e.validationMessage);const n=this.getInput();n&&(n.removeAttribute("aria-invalid"),n.removeAttribute("aria-describedby"),Ag(n,Gd.inputerror))}const xm={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,draggable:!1,animation:!0,theme:"light",showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"&times;",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoFocus:!0,inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose
vendor: 15,890 bytes, line 1
1:void 0,didDestroy:void 0,scrollbarPadding:!0,topLayer:!1},Am=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","draggable","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","theme","willClose"],Ym={allowEnterKey:void 0},_m=["allowOutsideClick","allowEnterKey","backdrop","draggable","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],Im=e=>Object.prototype.hasOwnProperty.call(xm,e),Pm=e=>-1!==Am.indexOf(e),Nm=e=>Ym[e],Mm=e=>{Im(e)||jd(`Unknown parameter "${e}"`)},Zm=e=>{_m.includes(e)&&jd(`The parameter "${e}" is incompatible with toasts`)},Jm=e=>{const n=Nm(e);n&&zd(e,n)},Bm=e=>{!1===e.backdrop&&e.allowOutsideClick&&jd('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),e.theme&&!["light","dark","auto","minimal","borderless","bootstrap-4","bootstrap-4-light","bootstrap-4-dark","bootstrap-5","bootstrap-5-light","bootstrap-5-dark","material-ui","material-ui-light","material-ui-dark","embed-iframe","bulma","bulma-light","bulma-dark"].includes(e.theme)&&jd(`Invalid theme "${e.theme}"`);for(const n in e)Mm(n),e.toast&&Zm(n),Jm(n)};function Rm(e){const n=ng(),t=ag(),i=$g.innerParams.get(this);if(!t||Lg(t,i.hideClass.popup))return void jd("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const a=Fm(e),o=Object.assign({},i,a);Bm(o),n&&(n.dataset.swal2Theme=o.theme),kp(this,o),$g.innerParams.set(this,o),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const Fm=e=>{const n={};return Object.keys(e).forEach(t=>{if(Pm(t)){const i=e;n[t]=i[t]}else jd(`Invalid parameter to update: ${t}`)}),n};function Xm(){var e;const n=$g.domCache.get(this),t=$g.innerParams.get(this);t?(n.popup&&Fd.swalCloseEventFinishedCallback&&(Fd.swalCloseEventFinishedCallback(),delete Fd.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),null===(e=Fd.eventEmitter)||void 0===e||e.emit("didDestroy"),Hm(this)):Gm(this)}const Hm=e=>{Gm(e),delete e.params,delete Fd.keydownHandler,delete Fd.keydownTarget,delete Fd.currentInstance},Gm=e=>{e.isAwaitingPromise?(Om($g,e),e.isAwaitingPromise=!0):(Om(Bp,e),Om($g,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},Om=(e,n)=>{for(const t in e)e[t].delete(n)};var Qm=Object.freeze({__proto__:null,_destroy:Xm,close:Wp,closeModal:Wp,closePopup:Wp,closeToast:Wp,disableButtons:Lm,disableInput:Em,disableLoading:vm,enableButtons:Cm,enableInput:Tm,getInput:ym,handleAwaitingPromise:$p,hideLoading:vm,rejectPromise:zp,resetValidationMessage:Dm,showValidationMessage:km,update:Rm});const Km=(e,n,t)=>{n.popup.onclick=()=>{e&&(jm(e)||e.timer||e.input)||t(xp.close)}},jm=e=>Boolean(e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton);let Wm=!1;const Um=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(n){e.container.onmouseup=()=>{},n.target===e.container&&(Wm=!0)}}},zm=e=>{e.container.onmousedown=n=>{n.target===e.container&&n.preventDefault(),e.popup.onmouseup=function(n){e.popup.onmouseup=()=>{},(n.target===e.popup||n.target instanceof HTMLElement&&e.popup.contains(n.target))&&(Wm=!0)}}},$m=(e,n,t)=>{n.container.onclick=i=>{Wm?Wm=!1:i.target===n.container&&$d(e.allowOutsideClick)&&t(xp.backdrop)}},Vm=e=>e instanceof Element||(e=>"object"==typeof e&&null!==e&&"jquery"in e)(e);const qm=()=>{if(Fd.timeout)return(()=>{const e=vg();if(!e)return;const n=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const t=n/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${t}%`})(),Fd.timeout.stop()},ef=()=>{if(Fd.timeout){const e=Fd.timeout.start();return Fg(e),e}};let nf=!1;const tf={};const af=e=>{for(let n=e.target;n&&n!==document;n=n.parentNode)for(const e in tf){const t=n.getAttribute&&n.getAttribute(e);if(t)return void tf[e].fire({template:t})}};Fd.eventEmitter=new class{constructor(){this.events={}}_getHandlersByEventName(e){return void 0===this.events[e]&&(this.events[e]=[]),this.events[e]}on(e,n){const t=this._getHandlersByEventName(e);t.includes(n)||t.push(n)}once(e,n){const t=(...i)=>{this.removeListener(e,t),n.apply(this,i)};this.on(e,t)}emit(e,...n){this._getHandlersByEventName(e).forEach(e=>{try{e.apply(this,n)}catch(t){console.error(t)}})}removeListener(e,n){const t=this._getHandlersByEventName(e),i=t.indexOf(n);i>-1&&t.splice(i,1)}removeAllListeners(e){void 0!==this.events[e]&&(this.events[e].length=0)}reset(){this.events={}}};var of=Object.freeze({__proto__:null,argsToParams:e=>{const n={};return"object"!=typeof e[0]||Vm(e[0])?["title","html","icon"].forEach((t,i)=>{const a=e[i];"string"==typeof a||Vm(a)?n[t]=a:void 0!==a&&Wd(`Unexpected type of ${t}! Expected "string" or "Element", got ${typeof a}`)}):Object.assign(n,e[0]),n},bindClickHandler:function(e="data-swal-template"){tf[e]=this,nf||(document.body.addEventListener("click",af),nf=!0)},clickCancel:()=>{var e;return null===(e=dg())||void 0===e?void 0:e.click()},clickConfirm:Dp,clickDeny:()=>{var e;return null===(e=gg())||void 0===e?void 0:e.click()},enableLoading:tm,fire:function(...e){return new this(...e)},getActions:mg,getCancelButton:dg,getCloseButton:wg,getConfirmButton:hg,getContainer:ng,getDenyButton:gg,getFocusableElements:yg,getFooter:fg,getHtmlContainer:sg,getIcon:og,getIconContent:()=>ig(Gd["icon-content"]),getImage:ug,getInputLabel:()=>ig(Gd["input-label"]),getLoader:pg,getPopup:ag,getProgressSteps:lg,getTimerLeft:()=>Fd.timeout&&Fd.timeout.getTimerLeft(),getTimerProgressBar:vg,getTitle:rg,getValidationMessage:cg,increaseTimer:e=>{if(Fd.timeout){const n=Fd.timeout.increase(e);return Fg(n,!0),n}},isDeprecatedParameter:Nm,isLoading:()=>{const e=ag();return!!e&&e.hasAttribute("data-loading")},isTimerRunning:()=>Boolean(Fd.timeout&&Fd.timeout.isRunning()),isUpdatableParameter:Pm,isValidParameter:Im,isVisible:()=>Jg(ag()),mixin:function(e){return class extends(this){_main(n,t){return super._main(n,Object.assign({},e,t))}}},off:(e,n)=>{Fd.eventEmitter&&(e?n?Fd.eventEmitter.removeListener(e,n):Fd.eventEmitter.removeAllListeners(e):Fd.eventEmitter.reset())},on:(e,n)=>{Fd.eventEmitter&&Fd.eventEmitter.on(e,n)},once:(e,n)=>{Fd.eventEmitter&&Fd.eventEmitter.once(e,n)},resumeTimer:ef,showLoading:tm,stopTimer:qm,toggleTimer:()=>{const e=Fd.timeout;return e&&(e.running?qm():ef())}});class rf{constructor(e,n){this.callback=e,this.remaining=n,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const n=this.running;return n&&this.stop(),this.remaining+=e,n&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const sf=["swal-title","swal-html","swal-footer"],uf=e=>{const n={};return Array.from(e.querySelectorAll("swal-param")).forEach(e=>{ff(e,["name","value"]);const t=e.getAttribute("name"),i=e.getAttribute("value");t&&i&&(n[t]=t in xm&&"boolean"==typeof xm[t]?"false"!==i:t in xm&&"object"==typeof xm[t]?JSON.parse(i):i)}),n},lf=e=>{const n={};return Array.from(e.querySelectorAll("swal-function-param")).forEach(e=>{const t=e.getAttribute("name"),i=e.getAttribute("value");t&&i&&(n[t]=new Function(`return ${i}`)())}),n},cf=e=>{const n={};return Array.from(e.querySelectorAll("swal-button")).forEach(e=>{ff(e,["type","color","aria-label"]);const t=e.getAttribute("type");if(t&&["confirm","cancel","deny"].includes(t)){if(n[`${t}ButtonText`]=e.innerHTML,n[`show${Kd(t)}Button`]=!0,e.hasAttribute("color")){const i=e.getAttribute("color");null!==i&&(n[`${t}ButtonColor`]=i)}if(e.hasAttribute("aria-label")){const i=e.getAttribute("aria-label");null!==i&&(n[`${t}ButtonAriaLabel`]=i)}}}),n},hf=e=>{const n={},t=e.querySelector("swal-image");return t&&(ff(t,["src","width","height","alt"]),t.hasAttribute("src")&&(n.imageUrl=t.getAttribute("src")||void 0),t.hasAttribute("width")&&(n.imageWidth=t.getAttribute("width")||void 0),t.hasAttribute("height")&&(n.imageHeight=t.getAttribute("height")||void 0),t.hasAttribute("alt")&&(n.imageAlt=t.getAttribute("alt")||void 0)),n},df=e=>{const n={},t=e.querySelector("swal-icon");return t&&(ff(t,["type","color"]),t.hasAttribute("type")&&(n.icon=t.getAttribute("type")),t.hasAttribute("color")&&(n.iconColor=t.getAttribute("color")),n.iconHtml=t.innerHTML),n},gf=e=>{const n={},t=e.querySelector("swal-input");t&&(ff(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));const i=Array.from(e.querySelectorAll("swal-input-option"));return i.length&&(n.inputOptions={},i.forEach(e=>{ff(e,["value"]);const t=e.getAttribute("value");if(!t)return;const i=e.innerHTML;n.inputOptions[t]=i})),n},pf=(e,n)=>{const t={};for(const i in n){const a=n[i],o=e.querySelector(a);o&&(ff(o,[]),t[a.replace(/^swal-/,"")]=o.innerHTML.trim())}return t},mf=e=>{const n=sf.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach(e=>{const t=e.tagName.toLowerCase();n.includes(t)||jd(`Unrecognized element <${t}>`)})},ff=(e,n)=>{Array.from(e.attributes).forEach(t=>{-1===n.indexOf(t.name)&&jd([`Unrecognized attribute "${t.name}" on <${e.tagName.toLowerCase()}>.`,""+(n.length?`Allowed attributes are: ${n.join(", ")}`:"To set the value, use HTML within the element.")])})},vf=e=>{var n,t;const i=ng(),a=ag();if(!i||!a)return;"function"==typeof e.willOpen&&e.willOpen(a),null===(n=Fd.eventEmitter)||void 0===n||n.emit("willOpen",a);const o=window.getComputedStyle(document.body).overflowY;if(Sf(i,a,e),setTimeout(()=>{yf(i,a)},10),bg()&&(bf(i,void 0!==e.scrollbarPadding&&e.scrollbarPadding,o),(()=>{const e=ng();Array.from(document.body.children).forEach(n=>{n.contains(e)||(n.hasAttribute("aria-hidden")&&n.setAttribute("data-previous-aria-hidden",n.getAttribute("aria-hidden")||""),n.setAttribute("aria-hidden","true"))})})()),Sg()||Fd.previousActiveElement||(Fd.previousActiveElement=document.activeElement),"function"==typeof e.didOpen){const n=e.didOpen;setTimeout(()=>n(a))}null===(t=Fd.eventEmitter)||void 0===t||t.emit("didOpen",a)},wf=e=>{const n=ag();if(!n||e.target!==n)return;const t=ng();t&&(n.removeEventListener("animationend",wf),n.removeEventListener("transitionend",wf),t.style.overflowY="auto",Ag(t,Gd["no-transition"]))},yf=(e,n)=>{Rg(n)?(e.style.overflowY="hidden",n.addEventListener("animationend",wf),n.addEventListener("transitionend",wf)):e.style.overflowY="auto"},bf=(e,n,t)=>{(()=>{if(Fp&&!Lg(document.body,Gd.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",xg(document.body,Gd.iosfix),Xp()}})(),n&&"hidden"!==t&&Kp(t),setTimeout(()=>{e.scrollTop=0})},Sf=(e,n,t)=>{var i;null!==(i=t.showClass)&&void 0!==i&&i.backdrop&&xg(e,t.showClass.backdrop),t.animation?(n.style.setProperty("opacity","0","important"),Ig(n,"grid"),setTimeout(()=>{var e;null!==(e=t.showClass)&&void 0!==e&&e.popup&&xg(n,t.showClass.popup),n.style.removeProperty("opacity")},10)):Ig(n,"grid"),xg([document.documentElement,document.body],Gd.shown),t.heightAuto&&t.backdrop&&!t.toast&&xg([document.documentElement,document.body],Gd["height-auto"])};var Cf=(e,n)=>/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(n||"Invalid email address"),Lf=(e,n)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(n||"Invalid URL");function Tf(e){!function(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Cf),"url"===e.input&&(e.inputValidator=Lf))}(e),e.showLoaderOnConfirm&&!e.preConfirm&&jd("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(jd('Target parameter is not valid, defaulting to "body"'),e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("<br />")),Gg(e)}let Ef;var kf=new WeakMap;class Df{constructor(...e){if(Rd(this,kf,Promise.resolve({isConfirmed:!1,isDenied:!1,isDismissed:!0})),"undefined"==typeof window)return;Ef=this;const n=Object.freeze(this.constructor.argsToParams(e));var t,i,a;this.params=n,this.isAwaitingPromise=!1,t=kf,i=this,a=this._main(Ef.params),t.set(Jd(t,i),a)}_main(e,n={}){if(Bm(Object.assign({},n,e)),Fd.currentInstance){const e=Bp.swalPromiseResolve.get(Fd.currentInstance),{isAwaitingPromise:n}=Fd.currentInstance;Fd.currentInstance._destroy(),n||e({isDismissed:!0}),bg()&&Rp()}Fd.currentInstance=Ef;const t=Af(e,n);Tf(t),Object.freeze(t),Fd.timeout&&(Fd.timeout.stop(),delete Fd.timeout),clearTimeout(Fd.restoreFocusTimeout);const i=Yf(Ef);return kp(Ef,t),$g.innerParams.set(Ef,t),xf(Ef,i,t)}then(e){return Bd(kf,this).then(e)}finally(e){return Bd(kf,this).finally(e)}}const xf=(e,n,t)=>new Promise((i,a)=>{const o=n=>{e.close({isDismissed:!0,dismiss:n,isConfirmed:!1,isDenied:!1})};Bp.swalPromiseResolve.set(e,i),Bp.swalPromiseReject.set(e,a),n.confirmButton.onclick=()=>{(e=>{const n=$g.innerParams.get(e);e.disableButtons(),n.input?hm(e,"confirm"):fm(e,!0)})(e)},n.denyButton.onclick=()=>{(e=>{const n=$g.innerParams.get(e);e.disableButtons(),n.returnInputValueOnDeny?hm(e,"deny"):gm(e,!1)})(e)},n.cancelButton.onclick=()=>{((e,n)=>{e.disableButtons(),n(xp.cancel)})(e,o)},n.closeButton.onclick=()=>{o(xp.close)},((e,n,t)=>{e.toast?Km(e,n,t):(Um(n),zm(n),$m(e,n,t))})(t,n,o),((e,n,t)=>{if(Ap(e),!n.toast){const i=e=>Pp(n,e,t);e.keydownHandler=i;const a=n.keydownListenerCapture?window:ag();if(a){e.keydownTarget=a,e.keydownListenerCapture=n.keydownListenerCapture;const t=i;e.keydownTarget.addEventListener("keydown",t,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0}}})(Fd,t,o),((e,n)=>{"select"===n.input||"radio"===n.input?sm(e,n):["text","email","number","tel","textarea"].some(e=>e===n.input)&&(Vd(n.inputValue)||eg(n.inputValue))&&(tm(hg()),um(e,n))})(e,t),vf(t),_f(Fd,t,o),If(n,t),setTimeout(()=>{n.container.scrollTop=0})}),Af=(e,n)=>{const t=(e=>{const n="string"==typeof e.template?document.querySelector(e.template):e.template;if(!n)return{};const t=n.content;return mf(t),Object.assign(uf(t),lf(t),cf(t),hf(t),df(t),gf(t),pf(t,sf))})(e),i=Object.assign({},xm,n,t,e);return i.showClass=Object.assign({},xm.showClass,i.showClass),i.hideClass=Object.assign({},xm.hideClass,i.hideClass),!1===i.animation&&(i.showClass={backdrop:"swal2-noanimation"},i.hideClass={}),i},Yf=e=>
vendor: 4,093 bytes, line 1
1{const n={popup:ag(),container:ng(),actions:mg(),confirmButton:hg(),denyButton:gg(),cancelButton:dg(),loader:pg(),closeButton:wg(),validationMessage:cg(),progressSteps:lg()};return $g.domCache.set(e,n),n},_f=(e,n,t)=>{const i=vg();Pg(i),n.timer&&(e.timeout=new rf(()=>{t("timer"),delete e.timeout},n.timer),n.timerProgressBar&&i&&(Ig(i),Tg(i,n,"timerProgressBar"),setTimeout(()=>{e.timeout&&e.timeout.running&&Fg(n.timer)})))},If=(e,n)=>{if(!n.toast)return $d(n.allowEnterKey)?void(Pf(e)||Nf(e,n)||Yp(-1,1)):(zd("allowEnterKey","preConfirm: () => false"),void e.popup.focus())},Pf=e=>{const n=Array.from(e.popup.querySelectorAll("[autofocus]"));for(const t of n)if(t instanceof HTMLElement&&Jg(t))return t.focus(),!0;return!1},Nf=(e,n)=>n.focusDeny&&Jg(e.denyButton)?(e.denyButton.focus(),!0):n.focusCancel&&Jg(e.cancelButton)?(e.cancelButton.focus(),!0):!(!n.focusConfirm||!Jg(e.confirmButton))&&(e.confirmButton.focus(),!0);Df.prototype.disableButtons=Lm,Df.prototype.enableButtons=Cm,Df.prototype.getInput=ym,Df.prototype.disableInput=Em,Df.prototype.enableInput=Tm,Df.prototype.hideLoading=vm,Df.prototype.disableLoading=vm,Df.prototype.showValidationMessage=km,Df.prototype.resetValidationMessage=Dm,Df.prototype.close=Wp,Df.prototype.closePopup=Wp,Df.prototype.closeModal=Wp,Df.prototype.closeToast=Wp,Df.prototype.rejectPromise=zp,Df.prototype.update=Rm,Df.prototype._destroy=Xm,Object.assign(Df,of),Object.keys(Qm).forEach(e=>{Df[e]=function(...n){if(Ef&&Ef[e])return Ef[e](...n)}}),Df.DismissReason=xp,Df.version="11.26.20";const Mf=Df;Mf.default=Mf,"undefined"!=typeof document&&function(e,n){var t=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(t),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=n);else try{t.innerHTML=n}catch(i){t.innerText=n}}(document,':root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.15s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border: 1px solid #d9d9d9;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.2s, box-shadow 0.2s;--swal2-input-hover-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-focus-border: 1px solid #b4dbed;--swal2-input-focus-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-footer-border-color: #eee;--swal2-footer-background: transparent;--swal2-footer-color: inherit;--swal2-timer-progress-bar-background: rgba(0, 0, 0, 0.3);--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.2s, box-shadow 0.2s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-actions-justify-content: center;--swal2-actions-width: auto;--swal2-actions-margin: 1.25em auto 0;--swal2-actions-padding: 0;--swal2-actions-border-radius: 0;--swal2-actions-background: transparent;--swal2-action-button-transition: background-color 0.2s, box-shadow 0.2s;--swal2-action-button-hover: black 10%;--swal2-action-button-active: black 10%;--swal2-confirm-button-box-shadow: none;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-confirm-button-color: #fff;
1--swal2-deny-button-box-shadow: none;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-deny-button-color: #fff;--swal2-cancel-button-box-shadow: none;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-cancel-button-color: #fff;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start     top            top-end" "center-start  center         center-end" "bottom-start  bottom-center  bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;
1align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup
vendor: 9,849 bytes, line 1
1}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;overflow-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background)}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-action-button-transition);border:none;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:var(--swal2-timer-progress-bar-background)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;overflow-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);outline:none;box-shadow:var(--swal2-input-focus-box-shadow)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:
1"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;
1left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;
1left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}100%{transform:translate3d(0, 0, 0) scale(1);opacity:1}}@keyframes swal2-hide{0%{transform:translate3d(0, 0, 0) scale(1);opacity:1}100%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}
150%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}');const Zf=e=>(e||"").trim().toLowerCase().replace(/_/g,"-"),Jf=e=>e.split("-")[0],Bf=(e,n)=>{const t=Zf(e);if(!t)return;const i=n.find(e=>Zf(e)===t);if(i)return i;const a=Jf(t),o=n.find(e=>Zf(e)===a);if(o)return o;const r=n.filter(e=>Jf(Zf(e))===a);return 1===r.length?r[0]:void 0},Rf={popupChrome:{themeToggleDark:"Turn dark theme on",themeToggleLight:"Turn light theme on"},auth:{privacyPolicy:"Privacy Policy",connect:{title:"Save Your Progress",message:"Sign in with Google to save and restore your game progress.",confirmButtonText:"Continue with Google",cancelButtonText:"Not now"},restore:{title:"Restore Progress",message:"Sign in with Google to re
1cover your cloud save.",confirmButtonText:"Continue with Google",cancelButtonText:"Close"},manage:{title:"Account",message:"You are signed in. You can sign out to return to an anonymous session.",confirmButtonText:"Sign out",cancelButtonText:"Close"},floatingButton:{readyLabel:"Login?",pausedLabel:"Login",loginAriaLabel:"Log in",menuAriaLabel:"Open login menu"},errors:{"auth/popup-blocked":"The Google sign-in popup was blocked by the browser. Please allow popups for this site and try again.","auth/popup-closed-by-user":"The Google sign-in popup was closed before the login finished.","auth/unauthorized-domain":"This domain is not authorized in Firebase Auth. Add localhost to the Authorized domains list and try again.","auth/operation-not-allowed":"Google sign-in is not enabled for this Firebase project.","auth/cancelled-popup-request":"A previous sign-in popup is still pending. Close it or try again.",missing_config:"Firebase auth configuration is missing or incomplete.",timeout:"Firebase auth initialization timed out. Please reload and try again.",default:"Google sign-in failed. Please try again.",signOutDefault:"Sign out failed. Please try again."}},loginUi:{yandex:{floatingButton:{readyLabel:"Save Progress",pausedLabel:"Save Progress",ariaLabel:"Save Progress",menuAriaLabel:"Menu"},connect:{title:"Save your progress",message:"Sign in with your account to save your progress and purchases.",confirmButtonText:"Login",cancelButtonText:"Later"},restore:{title:"Restore your progress",message:"Sign in with your account to restore your progress and purchases on this device.",confirmButtonText:"Restore",cancelButtonText:"Later"},manage:{title:"Account",message:"Your account is managed by the platform.",confirmButtonText:"Continue"},errors:{canceled:"Login was canceled. You can try again anytime.",default:"Login failed. Please try again."}}},saveConflict:{title:"Cloud Conflict",message:"Your local game save data conflicts with what is stored in the cloud.",warningLabel:"Warning:",warningMessage:"The game will restart to apply the cloud save.",progressLabel:"Progress",updatedLabel:"Updated",localTitle:"This device",localBadge:"Local",remoteTitle:"Cloud save",remoteBadge:"Cloud",confirmButtonText:"Confirm"},saveRestored:{title:"Cloud Save Restored",message:"Your selected cloud save is ready.",panelTitle:"Applying your progress",panelMessage:"Reloading the game to apply the selected save."}},Ff={popupChrome:{themeToggleDark:"Activar tema oscuro",themeToggleLight:"Activar tema claro"},auth:{privacyPolicy:"Política de privacidad",connect:{title:"Guarda tu progreso",message:"Inicia sesión con Google para guardar y restaurar el progreso de tu juego.",confirmButtonText:"Continuar con Google",cancelButtonText:"Ahora no"},restore:{title:"Restaurar progreso",message:"Inicia sesión con Google para recuperar tu guardado en la nube.",confirmButtonText:"Continuar con Google",cancelButtonText:"Cerrar"},manage:{title:"Cuenta",message:"Has iniciado sesión. Puedes cerrar sesión para volver a una sesión anónima.",confirmButtonText:"Cerrar sesión",cancelButtonText:"Cerrar"},floatingButton:{readyLabel:"¿Iniciar sesión?",pausedLabel:"Iniciar sesión",loginAriaLabel:"Iniciar sesión",menuAriaLabel:"Abrir menú de inicio de sesión"},errors:{"auth/popup-blocked":"El navegador bloqueó la ventana emergente de inicio de sesión de Google. Permite las ventanas emergentes para este sitio e inténtalo de nuevo.","auth/popup-closed-by-user":"La ventana emergente de inicio de sesión de Google se cerró antes de completar el acceso.","auth/unauthorized-domain":"Este dominio no está autorizado en Firebase Auth. Añade localhost a la lista de dominios autorizados y vuelve a intentarlo.","auth/operation-not-allowed":"El inicio de sesión con Google no está habilitado para este proyecto de Firebase.","auth/cancelled-popup-request":"Ya hay una ventana emergente de inicio de sesión pendiente. Ciérrala o vuelve a intentarlo.",missing_config:"La configuración de autenticación de Firebase falta o está incompleta.",timeout:"La inicialización de la autenticación de Firebase agotó el tiempo de espera. Recarga la página e inténtalo de nuevo.",default:"El inicio de sesión con Google falló. Inténtalo de nuevo.",signOutDefault:"No se pudo cerrar la sesión. Inténtalo de nuevo."}},loginUi:{yandex:{floatingButton:{readyLabel:"Guardar progreso",pausedLabel:"Guardar progreso",ariaLabel:"Guardar progreso",menuAriaLabel:"Menú"},connect:{title:"Guarda tu progreso",message:"Inicia sesión con tu cuenta para conservar tu progreso y tus compras.",confirmButtonText:"Registro",cancelButtonText:"Cancelar"},restore:{title:"Restaura tu progreso",message:"Inicia sesión con tu cuenta para restaurar tu progreso y tus compras en este dispositivo.",confirmButtonText:"Registro",cancelButtonText:"Cancelar"},manage:{title:"Cuenta",message:"Tu cuenta es gestionada por la plataforma.",confirmButtonText:"Continuar"},errors:{canceled:"Se canceló el inicio de sesión. Puedes volver a intentarlo en cualquier momento.",default:"Error al iniciar sesión. Por favor, inténtalo de nuevo."}}},saveConflict:{title:"Conflicto en la nube",message:"Los datos de guardado locales de tu juego entran en conflicto con lo que está almacenado en la nube.",warningLabel:"Advertencia:",warningMessage:"El juego se reiniciará para aplicar el guardado en la nube.",progressLabel:"Progreso",updatedLabel:"Actualizado",localTitle:"Este dispositivo",localBadge:"Local",remoteTitle:"Guardado en la nube",remoteBadge:"Nube",confirmButtonText:"Confirmar"},saveRestored:{title:"Guardado en la nube restaurado",message:"El guardado en la nube que seleccionaste está listo.",panelTitle:"Aplicando tu progreso",panelMessage:"Recargando el juego para aplicar el guardado seleccionado."}},Xf={popupChrome:{themeToggleDark:"Activer le thème sombre",themeToggleLight:"Activer le thème clair"},auth:{privacyPolicy:"Politique de confidentialité",connect:{title:"Sauvegardez votre progression",message:"Connectez-vous avec Google pour sauvegarder et restaurer votre progression.",confirmButtonText:"Continuer avec Google",cancelButtonText:"Pas maintenant"},restore:{title:"Restaurer la progression",message:"Connectez-vous avec Google pour récupérer votre sauvegarde cloud.",confirmButtonText:"Continuer avec Google",cancelButtonText:"Fermer"},manage:{title:"Compte",message:"Vous êtes connecté. Vous pouvez vous déconnecter pour revenir à une session anonyme.",confirmButtonText:"Se déconnecter",cancelButtonText:"Fermer"},floatingButton:{readyLabel:"Connexion ?",pausedLabel:"Connexion",loginAriaLabel:"Se connecter",menuAriaLabel:"Ouvrir le menu de connexion"},errors:{"auth/popup-blocked":"La fenêtre pop-up de connexion Google a été bloquée par le navigateur. Autorisez les pop-ups pour ce site et réessayez.","auth/popup-closed-by-user":"La fenêtre pop-up de connexion Google a été fermée avant la fin de la connexion.","auth/un
1authorized-domain":"Ce domaine n'est pas autorisé dans Firebase Auth. Ajoutez localhost à la liste des domaines autorisés et réessayez.","auth/operation-not-allowed":"La connexion avec Google n'est pas activée pour ce projet Firebase.","auth/cancelled-popup-request":"Une précédente fenêtre de connexion est toujours en attente. Fermez-la ou réessayez.",missing_config:"La configuration d'authentification Firebase est manquante ou incomplète.",timeout:"L'initialisation de Firebase Auth a expiré. Rechargez la page et réessayez.",default:"La connexion avec Google a échoué. Réessayez.",signOutDefault:"La déconnexion a échoué. Réessayez."}},loginUi:{yandex:{floatingButton:{readyLabel:"Enregistrer la progression",pausedLabel:"Enregistrer la progression",ariaLabel:"Enregistrer la progression",menuAriaLabel:"Menu"},connect:{title:"Enregistrez votre progression",message:"Connectez-vous avec votre compte pour conserver votre progression et vos achats.",confirmButtonText:"Se connecter",cancelButtonText:"Annuler"},restore:{title:"Restaurer votre progression",message:"Connectez-vous avec votre compte pour restaurer votre progression et vos achats sur cet appareil.",confirmButtonText:"Se connecter",cancelButtonText:"Annuler"},manage:{title:"Compte",message:"Votre compte est géré par la plateforme.",confirmButtonText:"Continuer"},errors:{canceled:"La connexion a été annulée. Vous pouvez réessayer à tout moment.",default:"Échec de la connexion. Veuillez réessayer."}}},saveConflict:{title:"Conflit cloud",message:"Les données de sauvegarde locales de votre jeu sont en conflit avec celles stockées dans le cloud.",warningLabel:"Attention :",warningMessage:"Le jeu va redémarrer pour appliquer la sauvegarde cloud.",progressLabel:"Progression",updatedLabel:"Mis à jour",localTitle:"Cet appareil",localBadge:"Local",remoteTitle:"Sauvegarde cloud",remoteBadge:"Cloud",confirmButtonText:"Confirmer"},saveRestored:{title:"Sauvegarde cloud restaurée",message:"La sauvegarde cloud sélectionnée est prête.",panelTitle:"Application de votre progression",panelMessage:"Rechargement du jeu pour appliquer la sauvegarde sélectionnée."}},Hf={popupChrome:{themeToggleDark:"Attiva il tema scuro",themeToggleLight:"Attiva il tema chiaro"},auth:{privacyPolicy:"Informativa sulla privacy",connect:{title:"Salva i tuoi progressi",message:"Accedi con Google per salvare e ripristinare i progressi di gioco.",confirmButtonText:"Continua con Google",cancelButtonText:"Non ora"},restore:{title:"Ripristina i progressi",message:"Accedi con Google per recuperare il tuo salvataggio in cloud.",confirmButtonText:"Continua con Google",cancelButtonText:"Chiudi"},manage:{title:"Account",message:"Hai effettuato l'accesso. Puoi disconnetterti per tornare a una sessione anonima.",confirmButtonText:"Disconnettiti",cancelButtonText:"Chiudi"},floatingButton:{readyLabel:"Accedi?",pausedLabel:"Accedi",loginAriaLabel:"Accedi",menuAriaLabel:"Apri il menu di accesso"},errors:{"auth/popup-blocked":"Il popup di accesso a Google è stato bloccato dal browser. Consenti i popup per questo sito e riprova.","auth/popup-closed-by-user":"Il popup di accesso a Google è stato chiuso prima di terminare l'accesso.","auth/unauthorized-domain":"Questo dominio non è autorizzato in Firebase Auth. Aggiungi localhost all'elenco dei domini autorizzati e riprova.","auth/operation-not-allowed":"L'accesso con Google non è abilitato per questo progetto Firebase.","auth/cancelled-popup-request":"Un precedente popup di accesso è ancora in sospeso. Chiudilo o riprova.",missing_config:"La configurazione di Firebase Auth è mancante o incompleta.",timeout:"Inizializzazione di Firebase Auth scaduta. Ricarica la pagina e riprova.",default:"Accesso con Google non riuscito. Riprova.",signOutDefault:"Disconnessione non riuscita. Riprova."}},loginUi:{yandex:{floatingButton:{readyLabel:"Salva progressi",pausedLabel:"Salva progressi",ariaLabel:"Salva progressi",menuAriaLabel:"Menu"},connect:{title:"Salva i tuoi progressi",message:"Accedi con il tuo account per salvare i tuoi progressi e gli acquisti.",confirmButtonText:"Accedi",cancelButtonText:"Più tardi"},restore:{title:"Ripristina i tuoi progressi",message:"Accedi con il tuo account per ripristinare i tuoi progressi e gli acquisti su questo dispositivo.",confirmButtonText:"Ripristina",cancelButtonText:"Più tardi"},manage:{title:"Account",message:"Il tuo account è gestito dalla piattaforma.",confirmButtonText:"Continua"},errors:{canceled:"L'accesso è stato annullato. Puoi riprovare in qualsiasi momento.",default:"Accesso non riuscito. Riprova."}}},saveConflict:{title:"Conflitto cloud",message:"I dati di salvataggio locali del gioco sono in conflitto con quelli archiviati nel cloud.",warningLabel:"Avviso:",warningMessage:"Il gioco si riavvierà per applicare il salvataggio in cloud.",progressLabel:"Progressi",updatedLabel:"Aggiornato",localTitle:"Questo dispositivo",localBadge:"Locale",remoteTitle:"Salvataggio cloud",remoteBadge:"Cloud",confirmButtonText:"Conferma"},saveRestored:{title:"Salvataggio in cloud ripristinato",message:"Il salvataggio in cloud selezionato è pronto.",panelTitle:"Ap
1plicazione dei progressi in corso",panelMessage:"Ricaricamento del gioco per applicare il salvataggio selezionato."}},Gf={popupChrome:{themeToggleDark:"ダークテーマを有効にする",themeToggleLight:"ライトテーマを有効にする"},auth:{privacyPolicy:"プライバシーポリシー",connect:{title:"進行状況を保存",message:"Google でログインして、ゲームの進行状況を保存・復元しましょう。",confirmButtonText:"Google で続行",cancelButtonText:"今はしない"},restore:{title:"進行状況を復元",message:"Google でログインして、クラウドセーブを復元しましょう。",confirmButtonText:"Google で続行",cancelButtonText:"閉じる"},manage:{title:"アカウント",message:"ログイン済みです。ログアウトすると匿名セッションに戻れます。",confirmButtonText:"ログアウト",cancelButtonText:"閉じる"},floatingButton:{readyLabel:"ログインしますか?",pausedLabel:"ログイン",loginAriaLabel:"ログイン",menuAriaLabel:"ログインメニューを開く"},errors:{"auth/popup-blocked":"Google ログインのポップアップがブラウザにブロックされました。このサイトでポップアップを許可して、もう一度お試しください。","auth/popup-closed-by-user":"Google ログインのポップアップが、ログイン完了前に閉じられました。","auth/unauthorized-domain":"このドメインは Firebase Auth で許可されていません。localhost を Authorized domains に追加して、もう一度お試しください。","auth/operation-not-allowed":"この Firebase プロジェクトでは Google ログインが有効になっていません。","auth/cancelled-popup-request":"前回のログイン用ポップアップがまだ処理中です。閉じるか、もう一度お試しください。",missing_config:"Firebase Auth の設定が不足しているか、不完全です。",timeout:"Firebase Auth の初期化がタイムアウトしました。ページを再読み込みして、もう一度お試しください。",default:"Google ログインに失敗しました。もう一度お試しください。",signOutDefault:"ログアウトに失敗しました。もう一度お試しください。"}},loginUi:{yandex:{floatingButton:{readyLabel:"進行状況を保存",pausedLabel:"進行状況を保存",ariaLabel:"進行状況を保存",menuAriaLabel:"メニュー"},connect:{title:"進行状況を保存",message:"アカウントでログインして、進行状況と購入情報を保持しましょう。",confirmButtonText:"ログイン",cancelButtonText:"あとで"},restore:{title:"進行状況を復元",message:"アカウントでログインして、このデバイスで進行状況と購入情報を復元しましょう。",confirmButtonText:"復元",cancelButtonText:"あとで"},manage:{title:"アカウント",message:"あなたのアカウントはプラットフォームによって管理されています。",confirmButtonText:"続ける"},errors:{canceled:"ログインがキャンセルされました。いつでも再試行できます。",default:"ログインに失敗しました。もう一度お試しください。"}}},saveConflict:{title:"クラウド競合",message:"ローカルのセーブデータが、クラウドに保存されているデータと競合しています。",warningLabel:"警告:",warningMessage:"クラウドセーブを適用するため、ゲームが再起動します。",progressLabel:"進行状況",updatedLabel:"更新",localTitle:"この端末",localBadge:"ローカル",remoteTitle:"クラウドセーブ",remoteBadge:"クラウド",confirmButtonText:"確認"},saveRestored:{title:"クラウドセーブを復元しました",message:"選択したクラウドセーブを利用できます。",panelTitle:"進行状況を適用しています",panelMessage:"選択したセーブデータを適用するため、ゲームを再読み込みしています。"}}
1,Of={popupChrome:{themeToggleDark:"다크 테마 켜기",themeToggleLight:"라이트 테마 켜기"},auth:{privacyPolicy:"개인정보 처리방침",connect:{title:"진행 상황 저장",message:"Google로 로그인하여 게임 진행 상황을 저장하고 복원하세요.",confirmButtonText:"Google로 계속",cancelButtonText:"지금은 안 함"},restore:{title:"진행 상황 복원",message:"Google로 로그인하여 클라우드 저장 데이터를 복구하세요.",confirmButtonText:"Google로 계속",cancelButtonText:"닫기"},manage:{title:"계정",message:"로그인되어 있습니다. 로그아웃하면 익명 세션으로 돌아갑니다.",confirmButtonText:"로그아웃",cancelButtonText:"닫기"},floatingButton:{readyLabel:"로그인할까요?",pausedLabel:"로그인",loginAriaLabel:"로그인",menuAriaLabel:"로그인 메뉴 열기"},errors:{"auth/popup-blocked":"브라우저에서 Google 로그인 팝업을 차단했습니다. 이 사이트의 팝업을 허용한 뒤 다시 시도하세요.","auth/popup-closed-by-user":"로그인이 완료되기 전에 Google 로그인 팝업이 닫혔습니다.","auth/unauthorized-domain":"이 도메인은 Firebase Auth에서 허용되지 않습니다. Authorized domains 목록에 localhost를 추가한 뒤 다시 시도하세요.","auth/operation-not-allowed":"이 Firebase 프로젝트에서는 Google 로그인이 활성화되어 있지 않습니다.","auth/cancelled-popup-request":"이전에 요청한 로그인 팝업이 아직 열려 있습니다. 닫거나 다시 시도하세요.",missing_config:"Firebase 인증 설정이 없거나 불완전합니다.",timeout:"Firebase 인증 초기화 시간이 초과되었습니다. 페이지를 새로고침한 뒤 다시 시도하세요.",default:"Google 로그인에 실패했습니다. 다시 시도하세요.",signOutDefault:"로그아웃에 실패했습니다. 다시 시도하세요."}},loginUi:{yandex:{floatingButton:{readyLabel:"진행 상황 저장",pausedLabel:"진행 상황 저장",ariaLabel:"진행 상황 저장",menuAriaLabel:"메뉴"},connect:{title:"진행 상황 저장",message:" 계정으로 로그인하여 진행 상황과 구매 내역을 유지하세요.",confirmButtonText:"로그인",cancelButtonText:"나중에"},restore:{title:"진행 상황 복원",message:"계정으로 로그인하여 이 기기에서 진행 상황과 구매 내역을 복원하세요.",confirmButtonText:"복원",cancelButtonText:"나중에"},manage:{title:"계정",message:"귀하의 계정은 플랫폼에서 관리됩니다.",confirmButtonText:"계속"},errors:{canceled:"로그인이 취소되었습니다. 언제든지 다시 시도할 수 있습니다.",default:"로그인에 실패했습니다. 다시 시도해 주세요."}}},saveConflict:{title:"클라우드 충돌",message:"로컬 게임 저장 데이터가 클라우드에 저장된 데이터와 충돌합니다.",warningLabel:"경고:",warningMessage:"클라우드 저장 데이터를 적용하려면 게임이 다시 시작됩니다.",progressLabel:"진행 상황",updatedLabel:"업데이트됨",localTitle:"이 기기",localBadge:"로컬",remoteTitle:"클라우드 저장",remoteBadge:"클라우드",confirmButtonText:"확인"},saveRestored:{title:"클라우드 저장 복원됨",message:"선택한 클라우드 저장 데이터를 사용할 수 있습니다.",panelTitle:"진행 상황 적용 중",panelMessage:"선택한 저장 데이터를 적용하기 위해 게임을 다시 불러오는 중입니다."}},Qf={popupChrome:{themeToggleDark:"Ativar tema escuro",themeToggleLight:"Ativar tema claro"},auth:{privacyPolicy:"Política de Privacidade",connect:{title:"Salve seu progresso",message:"Faça login com o Google para salvar e restaurar o progresso do seu jogo.",confirmButtonText:"Continuar com Google",cancelButtonText:"Agora não"},restore:{title:"Restaurar progresso",message:"Faça login com o Google para recuperar seu salvamento na nuvem.",confirmButtonText:"Continuar com Google",cancelButtonText:"Fechar"},manage:{title:"Conta",message:"Você está conectado. Você pode sair para voltar a uma sessão anônima.",confirmButtonText:"Sair",cancelButtonText:"Fechar"},floatingButton:{readyLabel:"Fazer login?",pausedLabel:"Fazer login",loginAriaLabel:"Fazer login",menuAriaLabel:"Abrir menu de login"},errors:{"auth/popup-blocked":"A janela pop-up de login do Google foi bloqueada pelo navegador. Permita pop-ups para este site e tente novamente.","auth/popup-closed-by-user":"A janela pop-up de login do Google foi fechada antes da conclusão do login.","auth/un
1authorized-domain":"Este domínio não está autorizado no Firebase Auth. Adicione localhost à lista de domínios autorizados e tente novamente.","auth/operation-not-allowed":"O login com Google não está habilitado para este projeto do Firebase.","auth/cancelled-popup-request":"Ainda há uma janela de login pendente. Feche-a ou tente novamente.",missing_config:"A configuração de autenticação do Firebase está ausente ou incompleta.",timeout:"A inicialização da autenticação do Firebase excedeu o tempo limite. Recarregue a página e tente novamente.",default:"Falha no login com Google. Tente novamente.",signOutDefault:"Falha ao sair. Tente novamente."}},loginUi:{yandex:{floatingButton:{readyLabel:"Salvar Progresso",pausedLabel:"Salvar Progresso",ariaLabel:"Salvar Progresso",menuAriaLabel:"Menu"},connect:{title:"Salve seu progresso",message:"Faça login com sua conta para salvar seu progresso e compras.",confirmButtonText:"Entrar",cancelButtonText:"Depois"},restore:{title:"Restaurar seu progresso",message:"Faça login com sua conta para restaurar seu progresso e compras neste dispositivo.",confirmButtonText:"Restaurar",cancelButtonText:"Depois"},manage:{title:"Conta",message:"Sua conta é gerenciada pela plataforma.",confirmButtonText:"Continuar"},errors:{canceled:"O login foi cancelado. Você pode tentar novamente a qualquer momento.",default:"Falha no login. Por favor, tente novamente."}}},saveConflict:{title:"Conflito na nuvem",message:"Os dados de salvamento locais do seu jogo entram em conflito com o que está armazenado na nuvem.",warningLabel:"Aviso:",warningMessage:"O jogo será reiniciado para aplicar o salvamento na nuvem.",progressLabel:"Progresso",updatedLabel:"Atualizado",localTitle:"Este dispositivo",localBadge:"Local",remoteTitle:"Salvamento na nuvem",remoteBadge:"Nuvem",confirmButtonText:"Confirmar"},saveRestored:{title:"Salvamento na nuvem restaurado",message:"O salvamento na nuvem selecionado está pronto.",panelTitle:"Aplicando seu progresso",panelMessage:"Recarregando o jogo para aplicar o salvamento selecionado."}},Kf={popupChrome:{themeToggleDark:"Включить темную тему",themeToggleLight:"Включить светлую тему"},auth:{privacyPolicy:"Политика конфиденциальности",connect:{title:"Сохраните прогресс",message:"Войдите через Google, чтобы сохранять и восстанавливать игровой прогресс.",confirmButtonText:"Продолжить с Google",cancelButtonText:"Не сейчас"},restore:{title:"Восстановить прогресс",message:"Войдите через Google, чтобы восстановить облачное сохранение.",confirmButtonText:"Продолжить с Google",cancelButtonText:"Закрыть"},manage:{title:"Аккаунт",message:"Вы вошли в систему. Вы можете выйти, чтобы вернуться к анонимной сессии.",confirmButtonText:"Выйти",cancelButtonText:"Закрыть"},floatingButton:{readyLabel:"Войти?",pausedLabel:"Войти",loginAriaLabel:"Войти",menuAriaLabel:"Открыть меню входа"},errors:{"auth/popup-blocked":"Браузер заблокировал всплывающее окно входа через Google. Разрешите всплывающие окна для этого сайта и попробуйте снова.","auth/popup-closed-by-user":"Всплывающее окно входа через Google было закрыто до завершения входа.","auth/unauthorized-domain":"Этот домен не авторизован в Firebase Auth. Добавьте localhost в список Authorized domains и попробуйте снова.","auth/operation-not-allowed":"Вход через Google не включен для этого проекта Firebase.","auth/cancelled-popup-request":"Предыдущее окно входа все еще ожидает завершения. Закройте его или попробуйте снова.",missing_config:"Конфигурация Firebase Auth отсутствует или заполнена не полностью.",timeout:"В
1ремя ожидания инициализации Firebase Auth истекло. Перезагрузите страницу и попробуйте снова.",default:"Не удалось войти через Google. Попробуйте снова.",signOutDefault:"Не удалось выйти из аккаунта. Попробуйте снова."}},loginUi:{yandex:{floatingButton:{readyLabel:"Сохранить прогресс",pausedLabel:"Сохранить прогресс",ariaLabel:"Сохранить прогресс",menuAriaLabel:"Меню"},connect:{title:"Сохраните свой прогресс",message:"Войдите в аккаунт, чтобы сохранить прогресс и приобретенные товары.",confirmButtonText:"Войти",cancelButtonText:"Позже"},restore:{title:"Восстановите свой прогресс",message:"Войдите в аккаунт, чтобы восстановить прогресс и приобретенные товары на этом устройстве.",confirmButtonText:"Восстановить",cancelButtonText:"Позже"},manage:{title:"Аккаунт",message:"Ваш аккаунт управляется платформой.",confirmButtonText:"Продолжить"},errors:{canceled:"Вход был отменен. Вы можете попробовать снова в любое время.",default:"Не удалось войти через. Попробуйте снова."}}},saveConflict:{title:"Конфликт с облаком",message:"Локальные данные сохранения игры конфликтуют с сохранением в облаке.",warningLabel:"Внимание:",warningMessage:"Игра будет перезапущена, чтобы применить облачное сохранение.",progressLabel:"Прогресс",updatedLabel:"Обновлено",localTitle:"Это устройство",localBadge:"Локально",remoteTitle:"Облачное сохранение",remoteBadge:"Облако",confirmButtonText:"Подтвердить"},saveRestored:{title:"Облачное сохранение восстановлено",message:"Выбранное облачное сохранение готово.",panelTitle:"Применяем ваш прогресс",panelMessage:"Игра перезагружается, чтобы применить выбранное сохранение."}},jf={popupChrome:{themeToggleDark:"Koyu temayı aç",themeToggleLight:"Açık temayı aç"},auth:{privacyPolicy:"Gizlilik Politikası",connect:{title:"İlerlemeni kaydet",message:"Oyun ilerlemeni kaydetmek ve geri yüklemek için Google ile oturum aç.",confirmButtonText:"Google ile devam et",cancelButtonText:"Şimdi değil"},restore:{title:"İlerlemeyi geri yükle",message:"Bulut kaydını geri yüklemek için Google ile oturum aç.",confirmButtonText:"Google ile devam et",cancelButtonText:"Kapat"},manage:{title:"Hesap",message:"Oturum açtın. Anonim oturuma dönmek için çıkış yapabilirsin.",confirmButtonText:"Çıkış yap",cancelButtonText:"Kapat"},floatingButton:{readyLabel:"Giriş yap?",pausedLabel:"Giriş yap",loginAriaLabel:"Giriş yap",menuAriaLabel:"Giriş menüsünü aç"},errors:{"auth/popup-blocked":"Google oturum açma açılır penceresi tarayıcı tarafından engellendi. Bu site için açılır pencerelere izin verip tekrar dene.","auth/popup-closed-by-user":"Google oturum açma açılır penceresi, giriş tamamlanmadan kapatıldı.","auth/unauthorized-domain":"Bu alan adı Firebase Auth içinde yetkilendirilmemiş. localhost'u Authorized domains listesine ekleyip tekrar dene.","auth/operation-not-allowed":"Bu Firebase projesinde Google ile oturum açma etkin değil.","auth/cancelled-popup-request":"Önceki bir oturum açma penceresi hâlâ açık. Kapat veya tekrar dene.",missing_config:"Firebase kimlik doğrulama yapılandırması eksik ya da tamamlanmamış.",timeout:"Firebase kimlik doğrulama başlatımı zaman aşımına uğradı. Sayfayı yenileyip tekrar dene.",default:"Google ile oturum açma başarısız oldu. Tekrar dene.",signOutDefault:"Çıkış yapılamadı. Tekrar dene."}},loginUi:{yandex:{floatingButton:{readyLabel:"İlerlemeyi Kaydet",pausedLabel:"İlerlemeyi Kaydet",ariaLabel:"İlerlemeyi Kaydet",menuAriaLabel:"Menü"},connect:{title:"İlerlemenizi kaydedin",message:"İlerlemenizi ve satın alımlarınızı kaydetmek için hesabınızla giriş yapın.",confirmButtonText:"Giriş Yap",cancelButtonText:"Daha Sonra"},restore:{title:"İlerlemenizi geri yükleyin",message:"Bu cihazda ilerlemenizi ve satın alımlarınızı geri yüklemek için hesabınızla giriş yapın.",confirmButtonText:"Geri Yükle",cancelButtonText:"Daha Sonra"},manage:{title:"hesabı",message:"hesabınız platform tarafından yönetilmektedir.",confirmButtonText:"Devam Et"},errors:{canceled:"Giriş iptal edildi. İstediğiniz zaman tekrar deneyebilirsiniz.",default:"girişi başarısız oldu. Lütfen tekrar deneyin."}}},saveConflict:{title:"Bulut çakışması",message:"Yerel oyun kayıt verilerin bulutta saklanan verilerle çakışıyor.",warningLabel:"Uyarı:",warningMessage:"Bulut kaydını uygulamak için oyun yeniden başlatılacak.",progressLabel:"İlerleme",updatedLabel:"Güncellendi",localTitle:"Bu cihaz",localBadge:"Yerel",remoteTitle:"Bulut kaydı",remoteBadge:"Bulut",confirmButtonText:"Onayla"},saveRestored:{title:"Bulut kaydı geri yüklendi",message:"Seçtiğin bulut kaydı hazır.",panelTitle:"İlerlemen uygulanıyor",panelMessage:"Seçilen kaydı uygulamak için oyun yeniden yükleniyor."}},Wf={popupChrome:{themeToggleDark:"开启深色主题",themeToggleLight:"开启浅色主题"},auth:{privacyPolicy:"隐私政策",connect:{title:"保存你的进度",message:"使用 Google 登录,以保存和恢复你的游戏进度。",confirmButtonText:"使用 Google 继续",cancelButtonText:"暂不"},restore:{title:"恢复进度",message:"使用 Google 登录,以恢复你的云存档。",confirmButtonText:"使用 Google 继续",cancelButtonText:"关闭"},manage:{title:"账号",message:"你已登录。你可以退出登录以返回匿名会话。",confirmButtonText:"退出登录",cancelButtonText:"关闭"},floatingButton:{readyLabel:"登录?",pausedLabel:"登录",loginAriaLabel:"登录",menuAriaLabel:"打开登录菜单"},errors:{"auth/popup-blocked":"Google 登录弹窗已被浏览器拦截。请允许此网站弹窗后重试。","auth/popup-closed-by-user":"Google 登录弹窗在登录完成前已被关闭。","auth/un
1authorized-domain":"此域名未在 Firebase Auth 中获得授权。请将 localhost 添加到 Authorized domains 列表后重试。","auth/operation-not-allowed":"此 Firebase 项目未启用 Google 登录。","auth/cancelled-popup-request":"之前的登录弹窗仍在等待处理。请先关闭它或重试。",missing_config:"Firebase 身份验证配置缺失或不完整。",timeout:"Firebase 身份验证初始化超时。请重新加载页面后重试。",default:"Google 登录失败。请重试。",signOutDefault:"退出登录失败。请重试。"}},loginUi:{yandex:{floatingButton:{readyLabel:"保存进度",pausedLabel:"保存进度",ariaLabel:"保存进度",menuAriaLabel:"菜单"},connect:{title:"保存您的进度",message:"使用您的 账号登录,以保存您的进度和购买记录。",confirmButtonText:"登录",cancelButtonText:"稍后"},restore:{title:"恢复您的进度",message:"使用您的 账号登录,以在此设备上恢复您的进度和购买记录。",confirmButtonText:"恢复",cancelButtonText:"稍后"},manage:{title:"账号",message:"您的 账号由平台管理。",confirmButtonText:"继续"},errors:{canceled:"登录已取消。您可以随时重试。",default:"登录失败。请重试。"}}},saveConflict:{title:"云端冲突",message:"你的本地游戏存档与云端存储的内容发生冲突。",warningLabel:"警告:",warningMessage:"游戏将重新启动以应用云存档。",progressLabel:"进度",updatedLabel:"更新时间",localTitle:"此设备",localBadge:"本地",remoteTitle:"云存档",remoteBadge:"云端",confirmButtonText:"确认"},saveRestored:{title:"云存档已恢复",message:"你选择的云存档已准备就绪。",panelTitle:"正在应用你的进度",panelMessage:"正在重新加载游戏以应用所选存档。"}},Uf=(e,n)=>{if("string"==typeof e||"string"==typeof n)return"string"==typeof n&&n.trim()?n:e;const t=Object.keys(e).map(t=>{const i=e[t],a=n[t]??i;return[t,Uf(i,a)]});return Object.fromEntries(t)},zf={de:Uf(Rf,{popupChrome:{themeToggleDark:"Dunkles Design aktivieren",themeToggleLight:"Helles Design aktivieren"},auth:{privacyPolicy:"Datenschutzerklärung",connect:{title:"Spielstand speichern",message:"Melden Sie sich mit Google an, um Ihren Spielfortsc
1hritt zu speichern und wiederherzustellen.",confirmButtonText:"Mit Google fortfahren",cancelButtonText:"Jetzt nicht"},restore:{title:"Fortschritt wiederherstellen",message:"Melden Sie sich mit Google an, um Ihren Cloud-Spielstand wiederherzustellen.",confirmButtonText:"Mit Google fortfahren",cancelButtonText:"Schließen"},manage:{title:"Konto",message:"Sie sind angemeldet. Sie können sich abmelden, um zu einer anonymen Sitzung zurückzukehren.",confirmButtonText:"Abmelden",cancelButtonText:"Schließen"},floatingButton:{readyLabel:"Anmelden?",pausedLabel:"Anmelden",loginAriaLabel:"Anmelden",menuAriaLabel:"Anmeldemenü öffnen"},errors:{"auth/popup-blocked":"Das Google-Anmeldefenster wurde vom Browser blockiert. Bitte erlauben Sie Pop-ups für diese Website und versuchen Sie es erneut.","auth/popup-closed-by-user":"Das Google-Anmeldefenster wurde geschlossen, bevor die Anmeldung abgeschlossen war.","auth/unauthorized-domain":"Diese Domain ist in Firebase Auth nicht autorisiert. Fügen Sie localhost zur Liste der autorisierten Domains hinzu und versuchen Sie es erneut.","auth/operation-not-allowed":"Die Google-Anmeldung ist für dieses Firebase-Projekt nicht aktiviert.","auth/cancelled-popup-request":"Ein vorheriges Anmeldefenster ist noch offen. Schließen Sie es oder versuchen Sie es erneut.",missing_config:"Die Firebase-Auth-Konfiguration fehlt oder ist unvollständig.",timeout:"Die Initialisierung von Firebase Auth hat zu lange gedauert. Bitte laden Sie die Seite neu und versuchen Sie es erneut.",default:"Die Google-Anmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",signOutDefault:"Die Abmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut."}},loginUi:{yandex:{floatingButton:{readyLabel:"Spielstand speichern",pausedLabel:"Spielstand speichern",ariaLabel:"Spielstand speichern",menuAriaLabel:"Menü"},connect:{title:"Spielstand speichern",message:"Melde dich mit deinem Konto an, um deinen Fortschritt und Käufe zu speichern.",confirmButtonText:"Anmelden",cancelButtonText:"Abbrechen"},restore:{title:"Spielstand wiederherstellen",message:"Melde dich mit deinem Konto an, um deinen Fortschritt und deine Käufe auf diesem Gerät wiederherzustellen.",confirmButtonText:"Anmelden",cancelButtonText:"Abbrechen"},manage:{title:"Konto",message:"Ihr Konto wird von der Plattform verwaltet.",confirmButtonText:"Weiter"},errors:{canceled:"Die Anmeldung wurde abgebrochen. Sie können es jederzeit erneut versuchen.",default:"Die Anmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut."}}},saveConflict:{title:"Cloud-Konflikt",message:"Ihre lokalen Spielstandsdaten stehen im Konflikt mit dem in der Cloud gespeicherten Spielstand.",warningLabel:"Warnung:",warningMessage:"Das Spiel wird neu gestartet, um den Cloud-Spielstand anzuwenden.",progressLabel:"Fortschritt",updatedLabel:"Aktualisiert",localTitle:"Dieses Gerät",localBadge:"Lokal",remoteTitle:"Cloud-Spielstand",remoteBadge:"Cloud",confirmButtonText:"Bestätigen"},saveRestored:{title:"Cloud-Spielstand wiederhergestellt",message:"Der ausgewählte Cloud-Spielstand ist bereit.",panelTitle:"Ihr Fortschritt wird angewendet",panelMessage:"Das Spiel wird neu geladen, um den ausgewählten Spielstand anzuwenden."}}),en:Rf,es:Uf(Rf,Ff),fr:Uf(Rf,Xf),it:Uf(Rf,Hf),ja:Uf(Rf,Gf),ko:Uf(Rf,Of),"pt-br":Uf(Rf,Qf),ru:Uf(Rf,Kf),tr:Uf(Rf,jf),"zh-cn":Uf(Rf,Wf)},$f=Object.keys(zf),Vf=()=>{var e,n,t;const i=null==(n=(e=g.get()).getCurrentLanguage)?void 0:n.call(e);if(i)return i;const a=p.get().locale;return a||("undefined"!=typeof window&&"function"==typeof(null==(t=window.famobi)?void 0:t.getCurrentLanguage)?window.famobi.getCurrentLanguage():"undefined"!=typeof navigator?navigator.language:null)},qf=()=>{return zf[(e=Vf(),Bf(e,$f)??"en")];var e},ev=(e,n="")=>{if("string"==typeof e)return e;if(!e||"object"!=typeof e)return n;const t=Object.entries(e).filter(e=>"string"==typeof e[1]&&Boolean(e[1].trim())).map(([e])=>e),i=Bf(Vf(),t)??Bf("en",t)??t[0];return(i?e[i]:void 0)??n},nv=(e,n)=>{const t=document.createElement("style");if(t.textContent=e,n)for(const i in n){const e=n[i];!1!==e&&t.setAttribute(i,!0===e?"":e)}document.head.appendChild(t)},tv="data-game-interface-auth-overlay-template";let iv=!1;const av=e=>e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;"),ov={popup:"game-interface-auth-connect-popup",htmlContainer:"game-interface-auth-connect-html",container:"game-interface-auth-connect-container"},rv=()=>{iv||(nv("\n  .game-interface-auth-connect-popup {\n    width: min(100%, 540px);\n    max-height: calc(100svh - 32px);\n    padding: 0;\n    overflow: visible;\n    background: transparent;\n    border-radius: 0;\n    box-shadow: none;\n  }\n\n  .game-interface-auth-connect-html {\n    margin: 0;\n    padding: 0;\n    border-radius: 28px;\n    overflow: hidden;\n  }\n\n  .game-interface-auth-connect-container {\n    padding: 24px;\n    --famobi-blue: #00a3e0;\n    --famobi-blue-dark: #087ead;\n    --famobi-orange: #ff7f20;\n    --famobi-dark: #222831;\n    --text-muted: #566070;\n    --page-bg: #f3f6f9;\n    --modal-bg: #ffffff;\n    --modal-shadow: rgba(34, 40, 49, 0.16);\n    --secondary-bg: #ffffff;\n    --secondary-border: #c9ced6;\n    --modal-radius: 28px;\n  }\n\n  .game-interface-auth-connect-container .save-progress-modal {\n    position: relative;\n    width: min(100%, 540px);\n    max-height: calc(100svh - 32px);\n    padding: 42px 44px 36px;\n    overflow-x: hidden;\n    overflow-y: auto;\n    text-align: center;\n    color: var(--famobi-dark);\n    background:\n      radial-gradient(circle at top left, rgba(0, 163, 224, 0.16) 0 27%, transparent 28%),\n      radial-gradient(circle at bottom right, rgba(255, 127, 32, 0.26) 0 22%, transparent 23%), var(--modal-bg);\n    border-radius: var(--modal-radius);\n    box-shadow:\n      0 18px 45px var(--modal-shadow),\n      inset 0 0 0 1px rgba(255, 255, 255, 0.8);\n    animation: game-interface-auth-connect-pop-in 260ms ease-out both;\n    box-sizing: border-box;\n    font-family: Arial, Helvetica, sans-serif;\n    isolation: isolate;\n    scrollbar-width: thin;\n    transition:\n      background 180ms ease,\n      color 180ms ease,\n      box-shadow 180ms ease;\n  }\n\n  .game-interface-auth-connect-container .save-progress-modal[data-background-visible='false'] {\n    background: var(--modal-bg);\n  }\n\n  .game-interface-auth-connect-container .save-progress-modal::before,\n  .game-interface-auth-connect-container .save-progress-modal::after {\n    content: '';\n    position: absolute;\n    z-index: 0;\n    transform: rotate(45deg);\n    pointer-events: none;\n    animation: game-interface-auth-connect-sparkle-pulse 1.8s ease-in-out infinite;\n  }\n\n  .game-interface-auth-connect-container .save-progress-modal[data-background-visible='false']::before,\n  .game-interface-auth-connect-container .save-progress-modal[data-background-visible='false']::after {\n    display: none;\n  }\n\n  .game-interface-auth-connect-container .save-progress-modal::before {\n    top: 66px;\n    right: 76px;
1\n    width: 20px;\n    height: 20px;\n    background: var(--famobi-blue);\n  }\n\n  .game-interface-auth-connect-container .save-progress-modal::after {\n    top: 98px;\n    right: 34px;\n    width: 18px;\n    height: 18px;\n    background: var(--famobi-orange);\n    animation-delay: 0.25s;\n  }\n\n  .game-interface-auth-connect-container .famobi-logo,\n  .game-interface-auth-connect-container .theme-toggle,\n  .game-interface-auth-connect-container .save-icon,\n  .game-interface-auth-connect-container h1,\n  .game-interface-auth-connect-container p,\n  .game-interface-auth-connect-container .save-actions,\n  .game-interface-auth-connect-container .save-popup-footer,\n  .game-interface-auth-connect-container .auth-connect-error,\n  .game-interface-auth-connect-container .save-conflict-comparison,\n  .game-interface-auth-connect-container .save-conflict-alerts,\n  .game-interface-auth-connect-container .save-restored-panel {\n    position: relative;\n    z-index: 1;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] {\n    --famobi-dark: #f7fafc;\n    --text-muted: #cbd5e1;\n    --page-bg: #111827;\n    --modal-bg: #1f2937;\n    --modal-shadow: rgba(0, 0, 0, 0.42);\n    --secondary-bg: #111827;\n    --secondary-border: #374151;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-progress-modal {\n    background:\n      radial-gradient(circle at top left, rgba(0, 163, 224, 0.22) 0 27%, transparent 28%),\n      radial-gradient(circle at bottom right, rgba(255, 127, 32, 0.24) 0 22%, transparent 23%), var(--modal-bg);\n    box-shadow:\n      0 22px 55px var(--modal-shadow),\n      inset 0 0 0 1px rgba(255, 255, 255, 0.08);\n  }\n\n  @keyframes game-interface-auth-connect-pop-in {\n    from {\n      transform: scale(0.96) translateY(12px);\n      opacity: 0;\n    }\n    to {\n      transform: scale(1) translateY(0);\n      opacity: 1;\n    }\n  }\n\n  .game-interface-auth-connect-container .famobi-logo {\n    position: absolute;\n    top: 26px;\n    left: 28px;\n    z-index: 1;\n    display: inline-flex;\n    align-items: center;\n    color: var(--famobi-dark);\n  }\n\n  .game-interface-auth-connect-container .auth-overlay-logo-image {\n    display: block;\n    max-width: 140px;\n    max-height: 48px;\n    width: auto;\n    height: auto;\n    object-fit: contain;\n  }\n\n  .game-interface-auth-connect-container .famobi-mark {\n    position: relative;\n    display: grid;\n    grid-template-columns: repeat(2, 14px);\n    grid-template-rows: repeat(3, 14px);\n    gap: 2px;\n    width: 30px;\n    height: 46px;\n    flex: 0 0 auto;\n  }\n\n  .game-interface-auth-connect-container .famobi-mark span {\n    display: block;\n  }\n\n  .game-interface-auth-connect-container .famobi-mark span:nth-child(1),\n  .game-interface-auth-connect-container .famobi-mark span:nth-child(2) {\n    background: var(--famobi-blue);\n  }\n\n  .game-interface-auth-connect-container .famobi-mark span:nth-child(3) {\n    background: var(--famobi-orange);\n  }\n\n  .game-interface-auth-connect-container .famobi-mark span:nth-child(4) {\n    grid-row: 3;\n    grid-column: 1;\n    background: var(--famobi-dark);\n  }\n\n  .game-interface-auth-connect-container .famobi-mark::after {\n    content: '';\n    position: absolute;\n    left: 16px;\n    top: 16px;\n    width: 0;\n    height: 0;\n    border-top: 7px solid transparent;\n    border-bottom: 7px solid transparent;\n    border-left: 11px solid var(--famobi-orange);\n  }\n\n  @keyframes game-interface-auth-connect-sparkle-pulse {\n    0%,\n    100% {\n      transform: rotate(45deg) scale(0.82);\n      opacity: 0.72;\n    }\n    50% {\n      transform: rotate(45deg) scale(1);\n      opacity: 1;\n    }\n  }\n\n  .game-interface-auth-connect-container .save-icon {\n    width: 118px;\n    height: 96px;\n    margin: 0 auto 22px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--famobi-blue);\n  }\n\n  .game-interface-auth-connect-container .save-icon-svg {\n    width: 104px;\n    height: 104px;\n    display: block;\n    filter: drop-shadow(0 8px 14px rgba(0, 163, 224, 0.18));\n  }\n\n  .game-interface-auth-connect-container .theme-toggle {\n    position: absolute;\n    top: 24px;
1\n    right: 26px;\n    z-index: 2;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 24px;\n    height: 24px;\n    padding: 0;\n    color: var(--famobi-blue);\n    background: transparent;\n    border: 0;\n    cursor: pointer;\n    transition:\n      transform 120ms ease,\n      color 180ms ease,\n      opacity 180ms ease;\n  }\n\n  .game-interface-auth-connect-container .theme-toggle:hover {\n    opacity: 0.8;\n  }\n\n  .game-interface-auth-connect-container .theme-toggle:active {\n    transform: scale(0.92);\n  }\n\n  .game-interface-auth-connect-container .theme-toggle svg {\n    width: 22px;\n    height: 22px;\n    display: block;\n    color: currentColor;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .theme-toggle {\n    color: var(--famobi-orange);\n  }\n\n  .game-interface-auth-connect-container h1 {\n    margin: 0 0 12px;\n    font-size: clamp(32px, 6vw, 46px);\n    line-height: 1.05;\n    font-weight: 900;\n    letter-spacing: -1px;\n  }\n\n  .game-interface-auth-connect-container p {\n    max-width: 440px;\n    margin: 0 auto 28px;\n    color: var(--text-muted);\n    font-size: clamp(17px, 3.2vw, 22px);\n    line-height: 1.4;\n  }\n\n  .game-interface-auth-connect-container .auth-account-email {\n    width: fit-content;\n    max-width: min(100%, 440px);\n    margin: -10px auto 28px;\n    padding: 10px 14px;\n    color: var(--famobi-dark);\n    background: rgba(0, 163, 224, 0.1);\n    border: 1px solid rgba(0, 163, 224, 0.2);\n    border-radius: 999px;\n    font-size: clamp(15px, 3vw, 18px);\n    font-weight: 700;\n    line-height: 1.3;\n    word-break: break-word;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .auth-account-email {\n    background: rgba(0, 163, 224, 0.18);\n    border-color: rgba(0, 163, 224, 0.3);\n  }\n\n  .game-interface-auth-connect-container .save-actions {\n    display: flex;\n    flex-direction: column;\n    gap: 14px;\n  }\n\n  .game-interface-auth-connect-container .save-popup-footer {\n    display: grid;\n    gap: 10px;\n    margin-top: 18px;\n  }\n\n  .game-interface-auth-connect-container .save-popup-privacy-link {\n    display: inline-block;\n    margin: 0 auto;\n    color: rgba(86, 96, 112, 0.78);\n    font-size: 12px;\n    line-height: 1.35;\n    text-decoration: underline;\n    text-underline-offset: 2px;\n    transition:\n      color 120ms ease,\n      opacity 120ms ease;\n  }\n\n  .game-interface-auth-connect-container .save-popup-privacy-link:hover {\n    color: rgba(86, 96, 112, 0.96);\n  }\n\n  .game-interface-auth-connect-container .save-popup-privacy-link:focus-visible {\n    outline: 2px solid rgba(0, 163, 224, 0.35);\n    outline-offset: 3px;\n    border-radius: 4px;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-popup-privacy-link {\n    color: rgba(203, 213, 225, 0.62);\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-popup-privacy-link:hover {\n    color: rgba(203, 213, 225, 0.82);\n  }\n\n  .game-interface-auth-connect-container .save-actions button {\n    width: 100%;\n    min-height: 62px;\n    border-radius: 10px;\n    font-size: clamp(17px, 3.4vw, 23px);\n    font-weight: 900;\n    cursor: pointer;\n    transition:\n      transform 120ms ease,\n      box-shadow 120ms ease,\n      opacity 120ms ease;\n  }\n\n  .game-interface-auth-connect-container .save-actions button:active {\n    transform: scale(0.98);\n  }\n\n  .game-interface-auth-connect-container .google-button {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 18px;\n    overflow: hidden;\n    color: #ffffff;\n    background: var(--famobi-blue);\n    border: 0;\n    box-shadow:\n      0 8px 0 var(--famobi-blue-dark),\n      0 12px 22px rgba(0, 163, 224, 0.28);\n  }\n\n  .game-interface-auth-connect-container .primary-button {\n    position: relative;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 18px;\n    overflow: hidden;\n    color: #ffffff;\n    background: var(--famobi-blue);\n    border: 0;\n    box-shadow:\n      0 8px 0 var(--famobi-blue-dark),\n      0 12px 22px rgba(0, 163, 224, 0.28);\n  }\n\n  .game-interface-auth-connect-container .warning-button {\n    position: relative;\n    display: flex;
1\n    align-items: center;\n    justify-content: center;\n    gap: 18px;\n    overflow: hidden;\n    color: #ffffff;\n    background: var(--famobi-orange);\n    border: 0;\n    box-shadow:\n      0 8px 0 #d86308,\n      0 12px 22px rgba(255, 127, 32, 0.28);\n  }\n\n  .game-interface-auth-connect-container .google-button::after,\n  .game-interface-auth-connect-container .primary-button::after {\n    content: '';\n    position: absolute;\n    right: -1px;\n    bottom: -1px;\n    width: 78px;\n    height: 78px;\n    background: var(--famobi-orange);\n    clip-path: polygon(100% 0, 0 100%, 100% 100%);\n  }\n\n  .game-interface-auth-connect-container .warning-button::after {\n    content: '';\n    position: absolute;\n    right: -1px;\n    bottom: -1px;\n    width: 78px;\n    height: 78px;\n    background: var(--famobi-blue);\n    clip-path: polygon(100% 0, 0 100%, 100% 100%);\n  }\n\n  .game-interface-auth-connect-container .google-icon {\n    position: relative;\n    z-index: 1;\n    width: 44px;\n    height: 44px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n    background: #ffffff;\n    border-radius: 50%;\n  }\n\n  .game-interface-auth-connect-container .google-icon svg {\n    width: 22px;\n    height: 22px;\n    display: block;\n  }\n\n  .game-interface-auth-connect-container .google-button .button-label,\n  .game-interface-auth-connect-container .primary-button .button-label,\n  .game-interface-auth-connect-container .warning-button .button-label {\n    position: relative;\n    z-index: 1;\n  }\n\n  .game-interface-auth-connect-container .secondary-button {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 18px;\n    color: var(--famobi-dark);\n    background: var(--secondary-bg);\n    border: 2px solid var(--secondary-border);\n    box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.08);\n  }\n\n  .game-interface-auth-connect-container .button-icon {\n    position: relative;\n    z-index: 1;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n  }\n\n  .game-interface-auth-connect-container .button-icon-image {\n    width: 28px;\n    height: 28px;\n    display: block;\n    object-fit: contain;\n  }\n\n  .game-interface-auth-connect-container .google-button:hover,\n  .game-interface-auth-connect-container .primary-button:hover,\n  .game-interface-auth-connect-container .warning-button:hover,\n  .game-interface-auth-connect-container .secondary-button:hover {\n    opacity: 0.94;\n  }\n\n  .game-interface-auth-connect-container .google-button:disabled,\n  .game-interface-auth-connect-container .primary-button:disabled,\n  .game-interface-auth-connect-container .warning-button:disabled,\n  .game-interface-auth-connect-container .secondary-button:disabled {\n    cursor: wait;\n    opacity: 0.7;\n  }\n\n  .game-interface-auth-connect-container .auth-connect-error {\n    display: none;\n    margin: 18px auto 0;\n    max-width: 440px;\n    padding: 12px 14px;\n    border-radius: 12px;\n    background: rgba(255, 59, 48, 0.1);\n    color: #b42318;\n    font-family: Arial, Helvetica, sans-serif;\n    font-size: 15px;\n    line-height: 1.35;\n    text-align: left;\n  }\n\n  .game-interface-auth-connect-container .auth-connect-error[data-visible='true'] {\n    display: block;\n  }\n\n  @media (max-width: 420px) {\n    .game-interface-auth-connect-popup {\n      max-height: calc(100svh - 16px);\n    }\n\n    .game-interface-auth-connect-html {\n      border-radius: 24px;\n    }\n\n    .game-interface-auth-connect-container {\n      padding: 8px;\n    }\n\n    .game-interface-auth-connect-container .save-progress-modal {\n      max-height: calc(100svh - 16px);\n      padding: 28px 18px 22px;\n      border-radius: 24px;\n    }\n\n    .game-interface-auth-connect-container .famobi-logo {\n      top: 18px;\n      left: 18px;\n    }\n\n    .game-interface-auth-connect-container .theme-toggle {\n      top: 16px;\n      right: 16px;\n    }\n\n    .game-interface-auth-connect-container .theme-toggle svg {\n      width: 18px;\n      height: 18px;\n    }\n\n    .game-interface-auth-connect-container .save-icon {\n      width: 84px;\n      height: 68px;\n      margin-bottom: 14px;\n    }\n\n    .game-interface-auth-connect-container .save-icon-svg {\n      width: 72px;\n      height: 72px;\n    }\n\n    .game-interface-auth-connect-container .save-actions button {\n      min-height: 52px;\n      font-size: clamp(16px, 4.8vw, 20px);\n    }\n\n    .game-interface-auth-connect-container .google-icon {\n      width: 34px;\n      height: 34px;\n    }\n\n    .game-interface-auth-connect-container .google-icon svg {\n      width: 18px;\n      height: 18px;\n    }\n  }\n\n  @media (max-height: 760px) {\n    .game-interface-auth-connect-container {\n      padding: 8px;\n    }\n\n    .game-interface-auth-connect-html {\n      border-radius: 22px;\n    }\n\n    .game-interface-auth-connect-container .save-progress-modal {\n      max-height: calc(100svh - 16px);\n      padding: 24px 18px 20px;\n      border-radius: 22px;\n    }\n\n    .game-interface-auth-connect-container .famobi-logo {\n      top: 16px;\n      left: 18px;\n      transform: scale(0.9);\n      transform-origin: top left;\n    }\n\n    .game-interface-auth-connect-container .theme-toggle {\n      top: 14px;\n      right: 14px;\n    }\n\n    .game-interface-auth-connect-container h1 {\n      margin-bottom: 10px;\n      font-size: clamp(26px, 5vw, 38px);\n    }\n\n    .game-interface-auth-connect-container p {\n      margin-bottom: 18px;\n      font-size: clamp(15px, 2.8vw, 18px);\n    }\n\n    .game-interface-auth-connect-container .save-icon {\n      width: 78px;\n      height: 64px;\n      margin-bottom: 12px;\n    }\n\n    .game-interface-auth-connect-container .save-icon-svg {\n      width: 68px;\n      height: 68px;\n    }\n\n    .game-interface-auth-connect-container .save-actions {\n      gap: 10px;\n    }\n\n    .game-interface-auth-connect-container .save-actions button {\n      min-height: 50px;\n      font-size: clamp(15px, 3vw, 19px);\n    }\n  }\n",{[tv]:"true"}),iv=!0)},sv='\n  fill="none"\n  stroke="currentColor"\n  stroke-width="4"\n  stroke-linecap="round"\n  stroke-linejoin="round"\n',uv=(e,n
1)=>`\n    <svg viewBox="0 0 64 64" class="save-icon-svg" xmlns="http://www.w3.org/2000/svg">\n      <path d="M22 46h20c6.6 0 12-5.1 12-11.5S48.6 23 42 23h-1.1C39.3 17.8 34.7 14 29.3 14c-6.2 0-11.4 4.9-11.9 11.1C12.1 26 8 30.5 8 36c0 5.5 4.5 10 10 10h4" ${sv} />\n      <path d="${e}" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />\n      <path d="${n}" ${sv} />\n    </svg>\n  `,lv={connect:uv("M32 46V30","M25 37l7-7 7 7"),restore:uv("M32 27v13","M25 33l7 7 7-7"),manage:`\n    <svg viewBox="0 0 64 64" class="save-icon-svg" xmlns="http://www.w3.org/2000/svg">\n      <path d="M46 18v28" ${sv} />\n      <path d="M28 24L18 32l10 8" ${sv} />\n      <path d="M20 32h18" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />\n    </svg>\n  `},cv=(e,n)=>{if(!n||!1===n.visible)return"";const t=n.variant??("cancel"===e?"secondary":"google");return`\n    <button class="${"primary"===t?"primary-button":"warning"===t?"warning-button":"secondary"===t?"secondary-button":"google-button"}" type="button" data-auth-connect-action="${e}">\n      ${n.iconHtml??("google"===n.iconVariant||void 0===n.iconVariant&&"google"===t?'\n  <span class="google-icon" aria-hidden="true">\n    <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">\n      <path\n        fill="#EA4335"\n        d="M9 3.48c1.69 0 2.84.73 3.49 1.34l2.54-2.48C13.46.89 11.43 0 9 0 5.48 0 2.44 2.02.96 4.96l2.96 2.29C4.8 4.84 6.76 3.48 9 3.48z"\n      />\n      <path\n        fill="#4285F4"\n        d="M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84c-.21 1.12-.84 2.07-1.8 2.71v2.25h2.91c1.7-1.57 2.69-3.88 2.69-6.6z"\n      />\n      <path\n        fill="#FBBC05"\n        d="M3.92 10.71c-.18-.54-.29-1.11-.29-1.71s.1-1.17.29-1.71V5.04H.96A8.96 8.96 0 0 0 0 9c0 1.43.34 2.78.96 3.96l2.96-2.25z"\n      />\n      <path\n        fill="#34A853"\n        d="M9 18c2.43 0 4.46-.8 5.95-2.16l-2.91-2.25c-.8.54-1.82.86-3.04.86-2.24 0-4.18-1.36-4.87-3.29L.96 13.41A9 9 0 0 0 9 18z"\n      />\n    </svg>\n  </span>\n':"")}\n      <span class="button-label">${av(n.label)}</span>\n    </button>\n  `},hv=e=>{const n=qf().popupChrome,t=e.privacyLinkUrl??"https://famobi.com/privacy-policy",i=e.backgroundStyle?` style="${av(e.backgroundStyle)}"`:"",a=e.logoHtml??(!1===e.showDefaultLogo?"":'\n        <div class="famobi-logo" aria-label="Famobi">\n          <div class="famobi-mark" aria-hidden="true">\n            <span></span>\n            <span></span>\n            <span></span>\n            <span></span>\n          </div>\n        </div>\n      '),o=e.privacyLinkLabel?`\n      <a class="save-popup-privacy-link" href="${av(t)}" target="_blank" rel="noreferrer">\n        ${av(e.privacyLinkLabel)}\n      </a>\n    `:"",r=e.footerHtml||o?`\n        <div class="save-popup-footer">\n          ${e.footerHtml??""}\n          ${o}\n        </div>\n      `:"";return`\n    <section class="save-progress-modal" aria-modal="true" role="dialog" aria-labelledby="saveTitle" data-background-visible="${String(!1!==e.backgroundVisible)}"${i}>\n      <button class="theme-toggle" type="button" data-auth-overlay-action="themeToggle" aria-pressed="false" aria-label="${av(n.themeToggleDark)}">\n        <svg data-auth-overlay-theme-icon viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">\n          <path\n            d="M21 14.8A8.6 8.6 0 0 1 9.2 3a7.8 7.8 0 1 0 11.8 11.8z"\n            fill="none"\n            stroke="currentColor"\n            stroke-width="2.2"\n            stroke-linecap="round"\n            stroke-linejoin="round"\n          />\n        </svg>\n      </button>\n\n      ${a}\n\n      ${e.iconHtml?`<div class="save-icon" aria-hidden="true">${e.iconHtml}</div>`:""}\n\n      <h1 id="saveTitle">${av(e.title)}</h1>\n      ${e.message?`<p>${av(e.message)}</p>`:""}\n      ${e.contentHtml??""}\n\n      <div class="save-actions">\n        ${e.actionsHtml}\n      </div>\n\n      ${r}\n    </section>\n  `},dv=e=>{const n=qf().popupChrome,t=e.querySelector('[data-auth-overlay-action="themeToggle"]'),i=e.querySelector("[data-auth-overlay-theme-icon]"),a=e.closest(".game-interface-auth-connect-container"),o=e=>{a&&i&&t&&(a.dataset.theme=e?"dark":"light",i.innerHTML=e?'\n    <circle cx="12" cy="12" r="4.2" fill="none" stroke="currentColor" stroke-width="2.2" />\n    <path\n      d="M12 2.5v2.2M12 19.3v2.2M4.6 4.6l1.6 1.6M17.8 17.8l1.6 1.6M2.5 12h2.2M19.3 12h2.2M4.6 19.4l1.6-1.6M17.8 6.2l1.6-1.6"\n      fill="none"\n      stroke="currentColor"\n      stroke-width="2.2"\n      stroke-linecap="round"\n    />\n  ':'\n    <path\n      d="M21 14.8A8.6 8.6 0 0 1 9.2 3a7.8 7.8 0 1 0 11.8 11.8z"\n      fill="none"\n      stroke="currentColor"\n      stroke-width="2.2"\n      stroke-linecap="round"\n      stroke-linejoin="round"\n    />\n  ',t.setAttribute("aria-pressed",String(e)),t.setAttribute("aria-label",e?n.themeToggleLight:n.themeToggleDark))},r="undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;o(r),null==t||t.addEventListener("click",()=>{o("dark"!==(null==a?void 0:a.dataset.theme))})},gv=async e=>{var n,t,i;rv();const a=e.iconVariant?(o=e.iconVariant,lv[o]):"";var o;const r=e.iconHtml??a,s=!1===(null==(n=e.confirmButton)?void 0:n.visible)?void 0:e.confirmButton,u=!1===(null==(t=e.cancelButton)?void 0:t.visible)?void 0:e.cancelButton,l=(null==(i=e.errorMessage)?void 0:i.trim())??"";let c;await Mf.fire({html:hv({title:e.title,message:e.message,contentHtml:e.contentHtml,privacyLinkLabel:e.privacyLinkLabel,privacyLinkUrl:e.privacyLinkUrl,iconHtml:r,logoHtml:e.logoHtml,showDefaultLogo:e.showDefaultLogo,backgroundVisible:e.backgroundVisible,backgroundStyle:e.backgroundStyle,actionsHtml:`${cv("confirm",s)}${cv("cancel",u)}`,footerHtml:`<div class="auth-connect-error" data-auth-connect-error data-visible="${String(B
1oolean(l))}">${av(l)}</div>`}),showConfirmButton:!1,showCancelButton:!1,allowOutsideClick:()=>!Mf.isLoading(),allowEscapeKey:()=>!Mf.isLoading(),customClass:ov,didOpen:n=>{const t=n.querySelector('[data-auth-connect-action="confirm"]'),i=n.querySelector('[data-auth-connect-action="cancel"]'),a=n.querySelector("[data-auth-connect-error]");dv(n);const o=()=>Mf.getPopup()===n,r=e=>{t&&(t.disabled=e),i&&(i.disabled=e),o()&&(e?Mf.showLoading():Mf.hideLoading())},s=e=>{a&&(a.textContent=e??"",a.dataset.visible=String(Boolean(e)))},u=async e=>{var n;s(null),r(!0);try{const t=await(null==(n=null==e?void 0:e.onClick)?void 0:n.call(e));if(!t||"close"===t.type)return c=null==t?void 0:t.afterClose,void(o()&&Mf.close());if("error"===t.type)return s(t.message),void r(!1);r(!1)}catch(t){s(String(t)),r(!1)}};null==t||t.addEventListener("click",async()=>{await u(e.confirmButton)}),null==i||i.addEventListener("click",async()=>{var n;Mf.isLoading()||((null==(n=e.cancelButton)?void 0:n.onClick)?await u(e.cancelButton):Mf.close())})}}),await(null==c?void 0:c())};var pv=(e=>(e[e.UNKNOWN=0]="UNKNOWN",e[e.ACTIVE=1]="ACTIVE",e[e.PAUSED=2]="PAUSED",e[e.INTERRUPTED=3]="INTERRUPTED",e[e.TERMINATED=4]="TERMINATED",e))(pv||{});const mv=h({isMuted:!1,isPaused:!1,userMutePref:!1,userPausePref:!1,gameplayState:pv.UNKNOWN,callbacks:{},gameReadyAt:null,playerReadyAt:null,offsets:{}});let fv={},vv=!1;const wv=()=>fv,yv=e=>{vv=e},bv="game-interface-auth-floating-button";let Sv=!1;const Cv=`\n  #${bv} {\n    position: fixed;\n    inset: auto auto auto auto;\n    z-index: 2147483000;\n    display: flex;\n    align-items: center;\n    touch-action: none;\n    user-select: none;\n    -webkit-user-select: none;\n    -webkit-tap-highlight-color: transparent;\n  }\n\n  #${bv}[data-hidden='true'] {\n    display: none;\n  }\n\n  #${bv}[data-draggable='false'] {\n    touch-action: auto;\n  }\n\n  #${bv} button {\n    border: 0;\n    cursor: pointer;\n    font: 600 14px/1.2 system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n    letter-spacing: 0.01em;\n    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);\n    transition:\n      opacity 0.18s ease,\n      transform 0.18s ease,\n      width 0.18s ease,\n      padding 0.18s ease,\n      margin 0.18s ease;\n  }\n\n  #${bv} .game-interface-auth-floating-button__handle {\n    width: 16px;\n    height: 100%;\n    display: inline-grid;\n    grid-template-columns: repeat(2, 4px);\n    grid-template-rows: repeat(3, 4px);\n    gap: 4px;\n    place-content: center;\n    flex: 0 0 auto;\n    pointer-events: none;\n    opacity: 0.72;\n  }\n\n  #${bv}[data-draggable='false'] .game-interface-auth-floating-button__handle {\n    display: none;\n  }\n\n  #${bv} .game-interface-auth-floating-button__handle-dot {\n    width: 4px;\n    height: 4px;\n    border-radius: 999px;\n    background: rgba(255, 255, 255, 0.74);\n  }\n\n  #${bv} .game-interface-auth-floating-button__login {\n    display: inline-flex;\n    align-items: center;\n    gap: 10px;\n    min-height: 42px;\n    padding: 0 16px 0 12px;\n    border-radius: 999px;\n    background: rgba(22, 27, 45, 0.94);\n    color: #ffffff;\n    white-space: nowrap;\n  }\n\n  #${bv}[data-draggable='false'] .game-interface-auth-floating-button__login {\n    padding-left: 16px;\n  }\n\n  #${bv} .game-interface-auth-floating-button__icon {\n    display: none;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n  }\n\n  #${bv} .game-interface-auth-floating-button__icon[data-visible='true'] {\n    display: inline-flex;\n  }\n\n  #${bv} .game-interface-auth-floating-button__icon-image {\n    width: 20px;\n    height: 20px;\n    display: block;\n    object-fit: contain;\n  }\n\n  #${bv} .game-interface-auth-floating-button__label {\n    display: inline-flex;\n    align-items: center;\n  }\n\n  #${bv} .game-interface-auth-floating-button__burger {\n    display: none;\n    width: 42px;\n    height: 42px;\n    align-items: center;\n    justify-content: center;\n    flex: 0 0 auto;\n    border-radius: 50%;\n    background: rgba(22, 27, 45, 0.94);\n    color: #ffffff;\n    font-size: 20px;\n  }\n\n  #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__login {\n    width: 0;\n    min-width: 0;\n    padding-left: 0;\n    padding-right: 0;\n    margin: 0;\n    opacity: 0;\n    transform: translateX(8px);\n    pointer-events: none;\n    overflow: hidden;\n  }\n\n  #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__handle,\n  #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__label {\n    opacity: 0;\n  }\n\n  #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__burger {\n    display: inline-flex;\n  }\n`,Lv=(e,n="")=>ev(e,n),Tv=(e,n,t="",i={})=>{const a=!1!==i.decorative?' aria-hidden="true"':"",o=!1!==i.decorative?"":t;return`<img class="${n}" src="${av(e)}
1" alt="${av(o)}"${a} />`},Ev=(e,n,t="",i={})=>!1===(null==e?void 0:e.visible)?"":"function"==typeof(null==e?void 0:e.render)?e.render():(null==e?void 0:e.imageUrl)?Tv(e.imageUrl,n,Lv(e.alt,t),i):void 0,kv=e=>{const n=Ev(null==e?void 0:e.icon,"button-icon-image");if("string"==typeof n)return n?`<span class="button-icon" aria-hidden="true">${n}</span>`:""},Dv=(e,n="")=>e&&"close"!==e.type?"keepOpen"===e.type?e:{type:"error",message:Lv(e.message,n)}:{type:"close",afterClose:null==e?void 0:e.afterClose},xv=(e,n)=>{if(e||n)return{...e,...n,icon:{...null==e?void 0:e.icon,...null==n?void 0:n.icon}}},Av=(e,n)=>({...e,...n,logo:{...null==e?void 0:e.logo,...null==n?void 0:n.logo},background:{...null==e?void 0:e.background,...null==n?void 0:n.background},icon:{...null==e?void 0:e.icon,...null==n?void 0:n.icon},privacyPolicy:{...null==e?void 0:e.privacyPolicy,...null==n?void 0:n.privacyPolicy},confirmButton:xv(null==e?void 0:e.confirmButton,null==n?void 0:n.confirmButton),cancelButton:xv(null==e?void 0:e.cancelButton,null==n?void 0:n.cancelButton),actions:{...null==e?void 0:e.actions,...null==n?void 0:n.actions}}),Yv=(e,n)=>({...e,...n,icon:{...null==e?void 0:e.icon,...null==n?void 0:n.icon}}),_v=16;let Iv="hidden",Pv=!1,Nv=null,Mv=null,Zv=null,Jv=null,Bv=null,Rv=null,Fv=!1,Xv={},Hv=!0,Gv={x:0,y:0,initialized:!1},Ov=null,Qv=0;const Kv=()=>Yv(Hv?wv().button:void 0,Xv),jv=()=>{const e=Kv().visible;return"function"==typeof e?e():"boolean"!=typeof e||e},Wv=()=>{null!==Rv&&(clearTimeout(Rv),Rv=null)},Uv=()=>{const e=Kv();return!0!==e.anchored&&("boolean"!=typeof e.draggable||e.draggable)},zv=()=>{Nv&&Gv.initialized&&((()=>{if(!Nv||!Gv.initialized)return;const e=Math.max(_v,window.innerWidth-Nv.offsetWidth-_v),n=Math.max(_v,window.innerHeight-Nv.offsetHeight-_v);Gv.x=Math.min(Math.max(Gv.x,_v),e),Gv.y=Math.min(Math.max(Gv.y,_v),n)})(),Nv.style.left=`${Gv.x}px`,Nv.style.top=`${Gv.y}px`)},$v=(e=!1)=>{if(!Nv||Gv.initialized&&!e)return;const n=(()=>{const e=Kv().position??"bottomRight",n=(null==Nv?void 0:Nv.offsetWidth)??0,t=(null==Nv?void 0:Nv.offsetHeight)??0,i=Math.max(_v,window.innerWidth-n-_v),a=Math.max(_v,window.innerHeight-t-_v),o=Math.max(_v,Math.round((window.innerWidth-n)/2)),r=Math.max(_v,Math.round((window.innerHeight-t)/2));switch(e){case"topLeft":return{x:_v,y:_v};case"topCenter":return{x:o,y:_v};case"topRight":return{x:i,y:_v};case"centerLeft":return{x:_v,y:r};case"center":return{x:o,y:r};case"centerRight":return{x:i,y:r};case"bottomLeft":return{x:_v,y:a};case"bottomCenter":return{x:o,y:a};default:return{x:i,y:a}}})();Gv={x:n.x,y:n.y,initialized:!0},zv()},Vv=()=>{if(!(Mv&&Zv&&Jv&&Bv))return;const e=Kv(),n=Lv(e.label),t=Lv(e.pausedLabel,n);Jv.textContent="paused"===Iv?t:n,Mv.setAttribute("aria-label",Lv(e.ariaLabel,"paused"===Iv?t:n)),Zv.textContent="☰",Zv.setAttribute("aria-label",Lv(e.menuAriaLabel,"Menu"));const i=Ev(null==(a=e)?void 0:a.icon,"game-interface-auth-floating-button__icon-image");var a;Bv.innerHTML=i??"",Bv.dataset.visible=String(Boolean(i))},qv=()=>{if(!Nv)return;Vv();const e=!Fv&&"hidden"!==Iv&&jv()&&!vv,n=Uv();Nv.dataset.hidden=String(!e),Nv.dataset.mode=Iv,Nv.dataset.collapsed=String("paused"===Iv&&Pv),Nv.dataset.draggable=String(n),e?(n||$v(!0),zv()):Wv()},ew=()=>{Wv(),"paused"===Iv&&(Rv=window.setTimeout(()=>{"paused"===Iv&&(Pv=!0,qv())},3e3))},nw=e=>{Nv&&null!==e.target&&e.target instanceof Node&&(Date.now()<Qv?e.preventDefault():(null==Zv?void 0:Zv.contains(e.target))||"paused"===Iv&&Pv?Date.now()<Qv||"paused"!==Iv||(Pv=!1,qv(),ew()):((null==Mv?void 0:Mv.contains(e.target))||Nv.contains(e.target))&&(async e=>{var n,t;if(e.preventDefault(),!(Date.now()<Qv))try{await(null==(t=(n=Kv()).onClick)?void 0:t.call(n))}catch(i){b("Login UI floating button click failed:",i)}})(e))},tw=e=>{0===e.button&&Nv&&Uv()&&(Ov={pointerId:e.pointerId,startPointerX:e.clientX,startPointerY:e.clientY,startX:Gv.x,startY:Gv.y,moved:!1},Nv.setPointerCapture(e.pointerId))},iw=e=>{if(!Ov||Ov.pointerId!==e.pointerId||!Nv||!Uv())return;const n=e.clientX-Ov.startPointerX,t=e.clientY-Ov.startPointerY;!Ov.moved&&Math.hypot(n,t)>=6&&(Ov.moved=!0),Ov.moved&&(Gv.x=Ov.startX+n,Gv.y=Ov.startY+t,zv(),e.preventDefault())},aw=e=>{Ov&&Ov.pointerId===e.pointerId&&Nv&&(Nv.hasPointerCapture(e.pointerId)&&Nv.releasePointerCapture(e.pointerId),Ov.moved&&(Qv=Date.now()+250),Ov=null)},ow=()=>
1{if("undefined"!=typeof window&&"undefined"!=typeof document&&(Sv||(nv(Cv,{"data-game-interface-auth-floating-button":"true"}),Sv=!0),!Nv)){const{rootElement:e,loginButtonElement:n,burgerButtonElement:t}=(()=>{const e=document.createElement("div");e.id=bv,e.dataset.hidden="true",e.dataset.mode="hidden",e.dataset.collapsed="false",e.dataset.draggable="true";const n=document.createElement("button");n.type="button",n.className="game-interface-auth-floating-button__login",n.setAttribute("aria-label","");const t=document.createElement("span");t.className="game-interface-auth-floating-button__handle",t.setAttribute("aria-hidden","true");for(let r=0;r<6;r+=1){const e=document.createElement("span");e.className="game-interface-auth-floating-button__handle-dot",t.appendChild(e)}const i=document.createElement("span");i.className="game-interface-auth-floating-button__label";const a=document.createElement("span");a.className="game-interface-auth-floating-button__icon",a.dataset.visible="false",a.setAttribute("aria-hidden","true"),n.append(t,a,i);const o=document.createElement("button");return o.type="button",o.className="game-interface-auth-floating-button__burger",o.setAttribute("aria-label",""),e.append(n,o),{rootElement:e,loginButtonElement:n,burgerButtonElement:o}})();document.body.appendChild(e),Nv=e,Mv=n,Zv=t,Jv=n.querySelector(".game-interface-auth-floating-button__label"),Bv=n.querySelector(".game-interface-auth-floating-button__icon"),Vv(),$v(!0),e.addEventListener("pointerdown",tw),e.addEventListener("pointermove",iw),e.addEventListener("pointerup",aw),e.addEventListener("pointercancel",aw),e.addEventListener("click",nw),window.addEventListener("resize",zv)}},rw=(e,n={})=>{ow(),Hv=!1!==n.useRegistration,Xv=Yv(Xv,e),Iv=(null==e?void 0:e.mode)??("hidden"===Iv?"ready":Iv),Fv=!1,Pv=!1,Uv()?Gv.initialized||$v():$v(!0),qv(),"paused"===Iv?ew():Wv()},sw=()=>{Iv="hidden",Pv=!1,Wv(),qv()},uw=()=>Boolean(fv.button)&&"auto"===(fv.lifecycle??"manual"),lw=()=>{qv(),"paused"===Iv&&jv()&&!Pv&&ew()},cw=(e,n,t)=>e||("cancel"===t?"secondary":"manage"===n?"warning":"primary"),hw=e
1=>{var n;const t=wv(),i=(null==e?void 0:e.mode)??(null==(n=t.overlay)?void 0:n.mode)??"connect";return Av(((e,n)=>{var t;const i=e.overlay,a=n?null==(t=e.overlayModes)?void 0:t[n]:void 0;return Av({...i,actions:{...e.actions,...null==i?void 0:i.actions}},{...a,actions:{...e.actions,...null==i?void 0:i.actions,...null==a?void 0:a.actions}})})(t,i),e)},dw=async(e,n={})=>{var t,i,a,o,r,s,u,l,c,h,d,g,p,m,f,v,w,y,b,S,C,L,T,E,k;if(Mf.isVisible())return;const D=!1===n.useRegistration?Av(void 0,e):hw(e),x=D.mode??"connect",A=((e,n,t)=>{var i;return n||(e?null==(i=t.actions)?void 0:i[e]:void 0)})(x,null==(t=D.confirmButton)?void 0:t.action,D),Y=null==(i=D.cancelButton)?void 0:i.action,{backgroundVisible:_,backgroundStyle:I}=(e=>{const n=Boolean((null==e?void 0:e.cssValue)||(null==e?void 0:e.imageUrl));return{backgroundVisible:!1!==(null==e?void 0:e.visible)&&!n,backgroundStyle:!1===(null==e?void 0:e.visible)?"background: var(--modal-bg);":(null==e?void 0:e.cssValue)?`background: ${e.cssValue};`:(null==e?void 0:e.imageUrl)?`background: var(--modal-bg) url("${e.imageUrl}") center / cover no-repeat;`:void 0}})(D.background);yv(!0);try{await gv({title:Lv(D.title),message:Lv(D.message),errorMessage:Lv(D.errorMessage),contentHtml:D.contentHtml,privacyLinkLabel:!1===(null==(a=D.privacyPolicy)?void 0:a.visible)?void 0:Lv(null==(o=D.privacyPolicy)?void 0:o.label),privacyLinkUrl:null==(r=D.privacyPolicy)?void 0:r.url,backgroundVisible:_,backgroundStyle:I,logoHtml:(N=D.logo,!1===(null==N?void 0:N.visible)?"":"function"==typeof(null==N?void 0:N.render)?N.render():(null==N?void 0:N.imageUrl)?`\n      <div class="famobi-logo" aria-label="${av(Lv(N.alt,"Brand logo"))}">\n        ${Tv(N.imageUrl,"auth-overlay-logo-image",Lv(N.alt,"Brand logo"),{decorative:!1})}\n      </div>\n    `:void 0),showDefaultLogo:!1!==(null==(s=D.logo)?void 0:s.visible),iconVariant:!1===(null==(u=D.icon)?void 0:u.visible)||(null==(l=D.icon)?void 0:l.imageUrl)||(null==(c=D.icon)?void 0:c.render)?void 0:(null==(h=D.icon)?void 0:h.variant)??x,iconHtml:(P=D.icon,Ev(P,"save-icon-svg","",{decorative:!0})),confirmButton:!1===(null==(d=D.confirmButton)?void 0:d.visible)?void 0:{visible:!0,label:Lv(null==(g=D.confirmButton)?void 0:g.label),variant:cw(null==(p=D.confirmButton)?void 0:p.variant,x,"confirm"),iconVariant:!1===(null==(f=null==(m=D.confirmButton)?void 0:m.icon)?void 0:f.visible)?void 0:(null==(w=null==(v=D.confirmButton)?void 0:v.icon)?void 0:w.kind)??("google"===cw(null==(y=D.confirmButton)?void 0:y.variant,x,"confirm")?"google":void 0),iconHtml:kv(D.confirmButton),onClick:async()=>A?Dv(await A()):{type:"close"}},cancelButton:!1===(null==(b=D.cancelButton)?void 0:b.visible)?void 0:{visible:!0,label:Lv(null==(S=D.cancelButton)?void 0:S.label),variant:cw(null==(C=D.cancelButton)?void 0:C.variant,x,"cancel"),iconVariant:!1===(null==(T=null==(L=D.cancelButton)?void 0:L.icon)?void 0:T.visible)||null==(k=null==(E=D.cancelButton)?void 0:E.icon)?void 0:k.kind,iconHtml:kv(D.cancelButton),onClick:async()=>Y?Dv(await Y()):{type:"close"}}})}finally{yv(!1),lw()}var P,N},gw=()=>{if("undefined"==typeof document||!document.body)return yv(!1),void lw();Mf.isVisible()&&Mf.close(),yv(!1),lw()},pw="game-interface-sdk",mw="authOverlay",fw={apiKey:"AIzaSyBW0ZUtnhcyX8yBxwVMdfGr-hBLp9xJpBA",authDomain:"famobi-games.firebaseapp.com",projectId:"famobi-games",storageBucket:"famobi-games.firebasestorage.app",messagingSenderId:"792529222731",appId:"1:792529222731:web:9e863a89c229ecf156a1ce"},vw=()=>{var e;return!0===(null==(e=p.get().auth)?void 0:e.enabled)},ww=()=>{var e;const n=null==(e=p.get().auth)?void 0:e.firebase;return Boolean(n&&Object.keys(n).length>0)?n:fw},yw=()=>{var e,n,t;return vw()&&!1!==(null==(t=null==(n=null==(e=p.get().auth)?void 0:e.providers)?void 0:n.google)?void 0:t.enabled)},bw=()=>{var e,n;return vw()&&!0===(null==(n=null==(e=p.get().auth)?void 0:e.overlay)?void 0:n.enabled)},Sw=()=>{var e;const n=null==(e=p.get().auth)?void 0:e.timeoutMs;return"number"==typeof n&&Number.isFinite(n)&&n>0?n:5e3};Wn("firebase","10.14.1","app");const Cw=h({status:"idle",isAnonymous:null,userId:null,email:null,isLinked:!1,providerId:null,canSignIn:!1,canSignOut:!1,isOverlayVisible:!1,lastError:null}),Lw=new Set,Tw=()=>Cw.get(),Ew=(e={},n)=>{const t=((e={},n)=>{const t={...Cw.get(),...e},i="boolean"==typeof t.isAnonymous?t.isAnonymous:null,a=n?((e,n=null)=>{var t;return(null==e?void 0:e.isAnonymous)?"anonymous":(null==(t=null==e?void 0:e.providerData)?void 0:t.some(e=>"google.com"===e.providerId))?"google":n})(n,t.providerId):!0===i?"anonymous":t.providerId??null,o=!1===i&&null!==a,r=n?n.email??null:!0===i?
1null:t.email??null;return{status:t.status??"idle",userId:t.userId??null,email:r,isAnonymous:i,isLinked:o,providerId:a,canSignIn:yw(),canSignOut:o,isOverlayVisible:t.isOverlayVisible??!1,lastError:t.lastError??null}})(e,n);var i,a;(i=Cw.get(),a=t,i.status!==a.status||i.userId!==a.userId||i.email!==a.email||i.isAnonymous!==a.isAnonymous||i.isLinked!==a.isLinked||i.providerId!==a.providerId||i.canSignIn!==a.canSignIn||i.canSignOut!==a.canSignOut||i.isOverlayVisible!==a.isOverlayVisible||i.lastError!==a.lastError)&&(Cw.set(t,{mode:"override"}),(()=>{const e=Cw.get();Lw.forEach(n=>{try{n(e)}catch(t){b("Auth state listener error:",t)}})})())},kw=e=>{Ew({isOverlayVisible:e})},Dw=e=>{Ew({status:"ready",userId:e.uid,isAnonymous:e.isAnonymous??!0,lastError:null},e)},xw=e=>(Lw.add(e),e(Tw()),()=>{Lw.delete(e)}),Aw={initPromise:null,authInstance:null,firebaseAppInstance:null,hasHandledUrlTriggeredOverlay:!1,autoOverlayShownByReason:{progress:!1,iap:!1},reloadAfterNextRestore:!1},Yw=e=>{const n=Array.from(Zn.values()).find(e=>e.name===pw);return n||Kn(e,pw)},_w=()=>{if(!Aw.authInstance)throw new Error("Firebase auth is not initialized");return Aw.authInstance},Iw=()=>{if(!Aw.firebaseAppInstance)throw new Error("Firebase app is not initialized");return Aw.firebaseAppInstance},Pw=async()=>{const e=_w(),n=await fh(e);Dw(n.user)},Nw=async e=>{const n=await async function(e,n){return await qc(e)._initializationPromise,ad(e,n,!1)}(e);return(null==n?void 0:n.user)??null},Mw=e=>{const n=qf().auth.errors;return e?n[e]??e:n.default},Zw=e=>e||qf().auth.errors.signOutDefault,Jw=e=>{switch(e){case"restore":return"restore";case"manage":return"manage";default:return"connect"}},Bw=(e,n="")=>ev(e,n),Rw=(e,n="")=>e&&"close"!==e.type?"keepOpen"===e.type?e:{type:"error",message:Bw(e.message,n)}:{type:"close",afterClose:null==e?void 0:e.afterClose},Fw=(e,n,t)=>e||("cancel"===t?"secondary":"manage"===n?"warning":"google"),Xw=()=>{const e=(()=>{if(Aw.hasHandledUrlTriggeredOverlay||"undefined"==typeof window)return null;Aw.hasHandledUrlTriggeredOverlay=!0;const e=new URL(window.location.href),n=(e=>{switch(e){case"connect":case"restore":case"manage":return e;default:return null}})(e.searchParams.get(mw));return e.searchParams.has(mw)?(e.searchParams.delete(mw),window.history.replaceState(window.history.state,"",`${e.pathname}${e.search}${e.hash}`),n):null})();if(!e)return;const n=Tw();if("manage"===e&&!n.canSignOut)return void y("Skipping URL-triggered manage overlay because no linked account is signed in.");("undefined"!=typeof window?window.setTimeout:setTimeout)(()=>{Uw({mode:e})},0)},Hw=()=>{if(Aw.initPromise){const e=Tw().status;if(null!==Aw.authInstance||!vw()||"pending"===e||"ready"===e)return Aw.initPromise;Aw.initPromise=null}return Aw.initPromise=new Promise(e=>{const n="undefined"!=typeof window?window.setTimeout:setTimeout;if(!vw())return Ew({status:"skipped",userId:null,isAnonymous:null,providerId:null,lastError:null,isOverlayVisible:!1}),void e("skipped");const t=ww();if(!(e=>Boolean((null==e?void 0:e.apiKey)&&(null==e?void 0:e.authDomain)&&(null==e?void 0:e.projectId)&&(null==e?void 0:e.appId)))(t))return b("Auth enabled, but Firebase config is missing or incomplete."),Ew({status:"failed",userId:null,isAnonymous:!0,providerId:"anonymous",lastError:"missing_config"}),void n(()=>{e("failed")},Sw());y("init auth...");const i=(e=>{const n=Yw(e);return Aw.firebaseAppInstance=n,Aw.authInstance=Md(n),Aw.authInstance})(t);let a=!1;const o=n=>{a||(a=!0,e(n),"ready"===n&&Xw())};let r=!1,s=!1;Ew({status:"pending",userId:Tw().userId,isAnonymous:Tw().isAnonymous??!0,lastError:null}),Nw(i).catch(e=>{b("Redirect auth completion failed:",e),Ew({lastError:String((null==e?void 0:e.code)||e)})});const u=n(()=>{const e=r?"failed":"timeout";"pending"===Tw().status&&Ew({status:e,lastError:e}),o(e)},Sw());!function(e,n,t,i){Ae(e).onAuthStateChanged(n,t,i)}(i,async e=>{try{if(!s&&(s=!0,!e))return await Pw(),clearTimeout(u),void o("ready");if(!e)return;clearTimeout(u),Dw(e),o("ready")}catch(n){b("Anonymous auth failed:",n),r=!0,Ew({status:"failed",userId:null,isAnonymous:!0,providerId:"anonymous",lastError:String((null==n?void 0:n.code)||n)}),o("failed")}},e=>{b("Auth state observer error:",e)})}),Aw.initPromise},Gw=async()=>Hw(),Ow=()=>{Aw.reloadAfterNextRestore=!0},Qw=()=>{Aw.reloadAfterNextRestore=!1},Kw=()=>vw(),jw=async(e="google")=>{if(await Hw(),!vw())return Tw();if("google"!==e||!yw())return Ew({lastError:"provider_disabled"}),Tw();const n=Tw(),t=new hh;Ew({status:"pending",lastError:null});try{const e=_w();let n=null;const a=e.currentUser;if(null==a?void 0:a.isAnonymous)try{const e=await async function(e,n,t){const i=Ae(e);ql(i.auth,n,uh);const a=Xh(i.auth,t);return new Uh(i.auth,"linkViaPopup",n,a,i).executeNotNull()}(a,t);n=e.user}catch(i){const o=String((null==i?void 0:i.code)||"");if("auth/credential-already-in-use"!==o&&"auth/provider-already-linked"!==o&&"auth/email-already-in-use"!==o){if("auth/popup-blocked"===o)return await id(a,t),Tw();throw i}n=(await Wh(e,t)).user}else try{n=(await Wh(e,t)).user}catch(i){if("auth/popup-blocked"===String((null==i?void 0:i.code)||""))return await td(e,t),Tw();throw i}return n&&Dw(n),Tw()}catch(i){return b("Google sign-in failed:",i),Ew({...n,status:"ready"===n.status?"ready":"failed",lastError:String((null==i?void 0:i.code)||i)}),Tw()}},Ww=async()=>
1{if(await Hw(),!vw())return Tw();const e=Tw();Ew({status:"pending",lastError:null});try{const e=_w();return await function(e){return Ae(e).signOut()}(e),await Pw(),Tw()}catch(n){return b("Sign-out failed:",n),Ew({...e,status:"ready"===e.status?"ready":"failed",lastError:String((null==n?void 0:n.code)||n)}),Tw()}},Uw=async(e={})=>{var n,t,i,a,o,r,s,u,l,c,h,d,g,p,m,f,v,w,y,b,S;if(await Hw(),!bw()||Mf.isVisible())return;const C=Tw(),L=e.mode??(C.canSignOut?"manage":"connect"),T=(e=>{const n=qf().auth;switch(e){case"manage":return{...n.manage,privacyLinkLabel:n.privacyPolicy};case"restore":return{...n.restore,privacyLinkLabel:n.privacyPolicy};default:return{...n.connect,privacyLinkLabel:n.privacyPolicy}}})(L),E="manage"===L&&C.email?`<div class="auth-account-email">${av(C.email)}</div>`:void 0,k=Bw(null==(n=e.confirmButton)?void 0:n.label,T.confirmButtonText),D=Bw(null==(t=e.cancelButton)?void 0:t.label,T.cancelButtonText),x=!1===(null==(i=e.privacyPolicy)?void 0:i.visible)?void 0:Bw(null==(a=e.privacyPolicy)?void 0:a.label,T.privacyLinkLabel),A=(e=>async()=>{const n="manage"===e?await Ww():await jw("google");return"manage"===e?!0===n.isAnonymous&&Boolean(n.userId)?{type:"close"}:{type:"error",message:Zw(n.lastError)}:!1===n.isAnonymous&&Boolean(n.userId)?{type:"close"}:{type:"error",message:Mw(n.lastError)}})(L);kw(!0);try{await dw({mode:L,title:Bw(e.title,T.title),message:Bw(e.message,T.message),contentHtml:e.contentHtml??E,logo:e.logo,background:e.background,icon:!1===(null==(o=e.icon)?void 0:o.visible)?e.icon:{...e.icon,variant:(null==(r=e.icon)?void 0:r.imageUrl)||(null==(s=e.icon)?void 0:s.render)?null==(u=e.icon)?void 0:u.variant:(null==(l=e.icon)?void 0:l.variant)??Jw(L)},privacyPolicy:{...e.privacyPolicy,label:x,url:(null==(c=e.privacyPolicy)?void 0:c.url)??"https://famobi.com/privacy-policy"},confirmButton:!1===(null==(h=e.confirmButton)?void 0:h.visible)?void 0:{visible:!0,label:k,variant:Fw(null==(d=e.confirmButton)?void 0:d.variant,L,"confirm"),icon:{...null==(g=e.confirmButton)?void 0:g.icon,kind:!1===(null==(m=null==(p=e.confirmButton)?void 0:p.icon)?void 0:m.visible)?void 0:(null==(v=null==(f=e.confirmButton)?void 0:f.icon)?void 0:v.kind)??("google"===Fw(null==(w=e.confirmButton)?void 0:w.variant,L,"confirm")?"google":void 0)},action:async()=>{var n;const t=(null==(n=e.confirmButton)?void 0:n.action)?await e.confirmButton.action():await A();return Rw(t,"manage"===L?Zw(null):Mw(null))}},cancelButton:!1===(null==(y=e.cancelButton)?void 0:y.visible)?void 0:{visible:!0,label:D,variant:Fw(null==(b=e.cancelButton)?void 0:b.variant,L,"cancel"),icon:null==(S=e.cancelButton)?void 0:S.icon,action:async()=>{var n;if(!(null==(n=e.cancelButton)?void 0:n.action))return{type:"close"};const t=await e.cancelButton.action();return Rw(t)}}},{useRegistration:!1})}finally{kw(!1)}},zw=async(e,n={})=>{if(await Hw(),!1===n.hasLocalSavegame||!(()=>{var e;const n=null==(e=p.get().auth)?void 0:e.overlay;return bw()&&!0===(null==n?void 0:n.autoShow)&&"manual"!==n.mode})()||Aw.autoOverlayShownByReason[e])return;const t=Tw();var i,a;!0===t.isAnonymous&&t.canSignIn&&(Aw.autoOverlayShownByReason[e]=!0,await Uw({mode:"restorePrompt"===(null==(a=null==(i=p.get().auth)?void 0:i.overlay)?void 0:a.mode)?"restore":"connect"}))},$w=async e=>{const n=mv.get().gameReadyAt;null===n||Date.now()-n<(()=>{var e,n;const t=null==(n=null==(e=p.get().auth)?void 0:e.overlay)?void 0:n.minPlaytimeMs;return"number"==typeof t&&Number.isFinite(t)&&t>=0?t:3e5})()||await zw("progress",{hasLocalSavegame:e})},Vw=()=>{var e,n;return!0===(null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.enabled)},qw=async()=>{if(!Vw()||!Kw())return null;await Gw();const e=Tw();if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return null;const n=p.get().gameId||p.get().gameIdOnPortal;return n?{gameId:n,userId:e.userId}:null},ey=async()=>{if(!(()=>
1{if(!0===p.get().dev)return!0;if("undefined"==typeof window)return!1;const e=window.location.hostname.toLowerCase();return"localhost"===e||"127.0.0.1"===e||"[::1]"===e})())return{enabled:!1,error:"Cloud user inspection is only available on localhost or when SDK dev mode is enabled.",path:null,gameId:null,userId:null,exists:!1,data:null};const e=await qw();if(!e)return{enabled:!0,error:null,path:null,gameId:null,userId:null,exists:!1,data:null};const n=`games/${e.gameId}/users/${e.userId}`,t=tl(Iw()),i=await Zl(qu(t,"games",e.gameId,"users",e.userId));return{enabled:!0,error:null,path:n,gameId:e.gameId,userId:e.userId,exists:i.exists(),data:i.exists()&&i.data()||null}},ny=e=>{if(!e||"object"!=typeof e)return null;const n=e,t="local"===n.source||"cloud"===n.source?n.source:null;return t?{savegame:"object"==typeof n.savegame&&n.savegame?n.savegame:{},savegameUpdatedAt:"number"==typeof n.savegameUpdatedAt&&Number.isFinite(n.savegameUpdatedAt)?n.savegameUpdatedAt:0,savegameVersion:"number"==typeof n.savegameVersion&&Number.isFinite(n.savegameVersion)?n.savegameVersion:1,gameVersion:"string"==typeof n.gameVersion?n.gameVersion:null,level:"number"==typeof n.level&&Number.isInteger(n.level)?n.level:null,source:t,backedUpAt:"number"==typeof n.backedUpAt&&Number.isFinite(n.backedUpAt)?n.backedUpAt:0}:null},ty=async e=>{const n=await qw();if(!n)return!1;const t={gameId:n.gameId,userId:n.userId,savegame:e.data,savegameUpdatedAt:e.updatedAt,savegameVersion:e.version,gameVersion:p.get().version??null,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null,sdkName:g.get().name||null,portal:g.get().name||null,lastSeenAt:Date.now()},i=tl(Iw());return await Bl(qu(i,"games",n.gameId,"users",n.userId),t,{merge:!0}),!0};let iy=null;const ay=()=>{iy||(iy=xw(()=>{lw()}))},oy=()=>{var e;const n=p.get().auth,t=Tw();return!0===(null==n?void 0:n.enabled)&&!0===(null==(e=n.overlay)?void 0:e.enabled)&&Vw()&&
1!0===t.isAnonymous&&t.canSignIn&&!0!==t.isOverlayVisible},ry=async()=>{!0===Tw().isAnonymous&&Ow(),await Uw({mode:"connect"}),!0===Tw().isAnonymous&&Qw()},sy=e=>{var n,t;const i=qf().auth.floatingButton;return{mode:e,position:(null==(t=null==(n=p.get().auth)?void 0:n.overlay)?void 0:t.floatingButtonPosition)??"bottomRight",draggable:!0,visible:oy,label:i.readyLabel,pausedLabel:i.pausedLabel,ariaLabel:i.loginAriaLabel,menuAriaLabel:i.menuAriaLabel,onClick:ry}},uy=()=>Boolean(fv.button||fv.overlay||fv.overlayModes||fv.actions),ly=()=>{uw()&&rw({mode:"ready"},{useRegistration:!0}),uy()||(ay(),rw(sy("ready"),{useRegistration:!1}))},cy=()=>{uw()&&rw({mode:"paused"},{useRegistration:!0}),uy()||(ay(),rw(sy("paused"),{useRegistration:!1}))},hy=()=>{uw()&&sw(),uy()||sw()},dy=async()=>{if(!ae())return null;if(!Kw())return null;await Gw();const e=Tw();if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return null;const n=p.get().gameId||p.get().gameIdOnPortal;return n?{gameId:n,userId:e.userId}:null},gy=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),py=e=>"number"==typeof e&&Number.isFinite(e)?e:null,my=e=>"string"==typeof e&&e.length>0?e:null,fy=e=>gy(e)?{amount:py(e.amount),currency:my(e.currency),displayPrice:my(e.displayPrice)}:null,vy=e=>"consumed"===e?"consumed":"purchased",wy=e=>{const n=gy(e)&&gy(e.purchases)?Object.entries(e.purchases).reduce((e,[n,t])=>{const i=((e,n)=>{if(!gy(n))return null;const t=my(n.sku),i=my(n.firebaseUserId);return t&&i?{provider:"xsolla",sku:t,title:my(n.title),description:my(n.description),paymentId:py(n.paymentId),famobiPaymentToken:my(n.famobiPaymentToken)||(e.startsWith("token:")?e.slice(6):null),externalUserId:my(n.externalUserId),firebaseUserId:i,status:vy(n.status),purchasedAt:py(n.purchasedAt),consumedAt:py(n.consumedAt),updatedAt:py(n.updatedAt)??0,price:fy(n.price)}:null})(n,t);return i&&(e[n]=i),e},{}):{},t=gy(e)&&gy(e.items)?Object.entries(e.items).reduce((e,[n,t])=>{const i=((e,n)=>gy(n)?{sku:e,title:my(n.title),description:my(n.description),purchaseCount:"number"==typeof n.purchaseCount&&Number.isFinite(n.purchaseCount)&&n.purchaseCount>0?n.purchaseCount:0,firstPurchasedAt:py(n.firstPurchasedAt),lastPurchasedAt:py(n.lastPurchasedAt),lastPaymentId:py(n.lastPaymentId),lastStatus:vy(n.lastStatus),lastPrice:fy(n.lastPrice),updatedAt:py(n.updatedAt)??0}:null)(n,t);return i&&(e[n]=i),e},{}):{};return{externalUserId:gy(e)?my(e.externalUserId):null,firebaseUserId:gy(e)?my(e.firebaseUserId):null,updatedAt:gy(e)?py(e.updatedAt)??0:0,purchases:n,items:t}},yy=e=>{const n=gy(e)&&gy(e.providers)?e.providers:{};return{updatedAt:gy(e)?py(e.updatedAt)??0:0,providers:{xsolla:n.xsolla?wy(n.xsolla):void 0}}},by=async()=>{try{const e=await dy();if(!e)return null;const n=qu(tl(Iw()),"games",e.gameId,"users",e.userId),t=await Zl(n);if(!t.exists())return null;const i=t.data();return yy(i.iap)}catch(e){return b("Error reading cloud IAP state:",e),null}},Sy=async()=>{const e=await by(),n=null==e?void 0:e.providers.xsolla;return n?(e=>Object.values(e.purchases).filter(e=>"purchased"===e.status).sort((e,n)=>(e.purchasedAt??e.updatedAt)-(n.purchasedAt??n.updatedAt)))(n).map(e=>({sku:e.sku,paymentId:e.paymentId??void 0,famobiPaymentToken:e.famobiPaymentToken??void 0})):[]},Cy=async()=>{var e;if(!ae())return null;const n=Tw();if("ready"!==n.status||!1!==n.isAnonymous||!n.userId)return null;const t=await by(),i=null==(e=null==t?void 0:t.providers.xsolla)?void 0:e.updatedAt;return"number"!=typeof i||i<=0?`${n.userId}:0`:`${n.userId}:${i}`},Ly="gi-xsolla-userid-explicit",Ty=e=>{const n=localStorage.getItem(e);return"string"==typeof n&&n.length>0?n:null},Ey=(e,n=Ly)=>{localStorage.setItem(n,e)},ky=()=>Ty(Ly),Dy=(e="gi-xsolla-userid")=>{const n=(()=>{const e=Tw();return"ready"===e.status&&!1===e.isAnonymous&&e.userId?e.userId:null})();if(n)return n;const t=ky();if(t)return t;let i=Ty(e);return i||(i=crypto.randomUUID?crypto.randomUUID():"user-"+Date.now()+"-"+Math.random().toString(36).substring(2,9),Ey(i,e)),i},xy=e=>[...e].sort((e,n)=>n.updatedAt-e.updatedAt)[0]||null,Ay=e=>{var n;const t=e.previousSummary,i=(a=e.sku,o=e.purchases,Object.values(o).filter(e=>e.sku===a));var a,o;const r=xy(i),s=xy(i.filter(e=>"purchased"===e.status)),u=i.map(e=>e.purchasedAt).filter(e=>"number"==typeof e&&Number.isFinite(e)),l=u.length?Math.min(...u):(null==t?void 0:t.firstPurchasedAt)??null,c=u.length?Math.max(...u):(null==t?void 0:t.lastPurchasedAt)??null,h=(e=>[...e].sort((e,n)=>n.updatedAt-e.updatedAt).find(e=>e.title||e.description||e.price)||null)(i),d=s??r;return{sku:e.sku,title:(null==h?void 0:h.title)??(null==t?void 0:t.t
1itle)??null,description:(null==h?void 0:h.description)??(null==t?void 0:t.description)??null,purchaseCount:i.length,firstPurchasedAt:l,lastPurchasedAt:c,lastPaymentId:(null==d?void 0:d.paymentId)??(null==t?void 0:t.lastPaymentId)??null,lastStatus:(null==d?void 0:d.status)??(null==t?void 0:t.lastStatus)??"purchased",lastPrice:(null==(n=s??h)?void 0:n.price)??(null==t?void 0:t.lastPrice)??null,updatedAt:(null==d?void 0:d.updatedAt)??(null==t?void 0:t.updatedAt)??0}},Yy=async e=>{try{const n=await dy();if(!n)return!1;const t=tl(Iw()),i=qu(t,"games",n.gameId,"users",n.userId);return await Hl(t,async t=>{const a=await t.get(i),o=a.exists()?a.data():void 0,r=yy(null==o?void 0:o.iap),s=r.providers.xsolla||wy(void 0),u=(e=>"number"==typeof e.paymentId&&Number.isFinite(e.paymentId)?`payment:${e.paymentId}`:"string"==typeof e.famobiPaymentToken&&e.famobiPaymentToken.length>0?`token:${e.famobiPaymentToken}`:`sku:${e.sku}`)(e),l=s.purchases[u],c=s.items[e.sku],h=Date.now(),d=(e=>{var n,t,i;const a=e.previousRecord,o=e.previousSummary,r=(null==(n=e.catalog)?void 0:n.price)||(null==a?void 0:a.price)||(null==o?void 0:o.lastPrice)||null,s=((e,n)=>"consumed"===(null==n?void 0:n.status)?"consumed":e)(e.status,a);return{provider:"xsolla",sku:e.sku,title:(null==(t=e.catalog)?void 0:t.title)??(null==a?void 0:a.title)??(null==o?void 0:o.title)??null,description:(null==(i=e.catalog)?void 0:i.description)??(null==a?void 0:a.description)??(null==o?void 0:o.description)??null,paymentId:"number"==typeof e.paymentId&&Number.isFinite(e.paymentId)?e.paymentId:(null==a?void 0:a.paymentId)??null,famobiPaymentToken:e.famobiPaymentToken||(null==a?void 0:a.famobiPaymentToken)||null,externalUserId:e.externalUserId??(null==a?void 0:a.externalUserId)??null,firebaseUserId:e.firebaseUserId,status:s,purchasedAt:(null==a?void 0:a.purchasedAt)??e.purchasedAt??null,consumedAt:"consumed"===s?(null==a?void 0:a.consumedAt)??e.consumedAt??null:null,updatedAt:e.updatedAt,price:r}})({...e,firebaseUserId:n.userId,externalUserId:ky(),previousRecord:l,previousSummary:c,consumedAt:"consumed"===e.status?e.consumedAt??h:e.consumedAt,updatedAt:h}),g={...s.purchases,[u]:d},p=Ay({sku:e.sku,purchases:g,previousSummary:c}),m=Math.max(s.updatedAt,d.updatedAt,p.updatedAt),f={externalUserId:d.externalUserId,firebaseUserId:n.userId,updatedAt:m,purchases:g,items:{...s.items,[e.sku]:p}},v={updatedAt:Math.max(r.updatedAt,m),providers:{...r.providers,xsolla:f}};t.set(i,{iap:v},{merge:!0})}),!0}catch(n){return b("Error persisting cloud IAP purchase:",n),!1}},_y="https://us-central1-famobi-payment.cloudfunctions.net",Iy="https://store.xsolla.com/api/v2/project";let Py=null;const Ny=async()=>{if(!ae())return[];if(Py)return Py;Py=(async()=>{var e,n;a.log("[iap][xsolla] get products...");const t=null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.projectId;if(void 0===t)throw new Error("invalid projectId");const i=await fetch((e=>`${Iy}/${e}/items/virtual_items`)(t));if(!i.ok)throw new Error(`http error! status: ${i.status}`);const o=await i.json();return a.log("[iap][xsolla] products found:",JSON.stringify(o.items)),Array.isArray(o.items)?o.items:[]})();try{return await Py}catch(e){throw Py=null,e}},My=async e=>{var n;if("crazyGames"===g.get().name){a.log("[portal] window.CrazyGames.SDK.user.getXsollaUserToken()...");const e=await(null==(n=window.CrazyGames)?void 0:n.SDK.user.getXsollaUserToken().catch(e=>{a.warn("[iap][xsolla] Error:",e)}));if("string"==typeof e)return e}const t=(()=>{var e,n;return(null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.endpoint)||_y})();a.log(`[iap][xsolla] retrieve bearer token... (endpoint: '${t}')`,e);const i=await fetch(`${t}/xsollaToken`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!i.ok)throw new Error(`http error! status: ${i.status}`);return(await i.json()).token},Zy=()=>{const e=navigator.userAgent.toLowerCase(),n=window.innerWidth;return/smart-tv|smarttv|appletv|googletv|hbbtv|pov_tv|netcast.tv|roku|viera|tv/i.test(e)?"tv":/(ipad|tablet|playbook|silk)|(android(?!.*mobile))/i.test(e)||n>=600&&n<=1024?"tablet":/(mobi|iphone|ipod|blackberry|phone|windows phone|opera mini|android)/i.test(e)||n<600?"mobile":"desktop"};let Jy=!1,By=null;let Ry=!1;const Fy=e=>new Error(e),Xy=e=>{var n,t;const i=!!(null==(t=null==(n=p.get().iap)?void 0:n.xsolla)?void 0:t.isSandbox);if(Ry)return a.warn("[iap] Xsolla iframe is already open — additional call ignored"),Promise.reject(Fy("canceled"));Ry=!0;const o=`https://${i?"sandbox-secure":"secure"}.xsolla.com/paystation4/?token=${e}`;
1return a.log("Xsolla iframe URL:",o),new Promise((e,n)=>{const t=document.createElement("iframe");t.src=o,t.allow="clipboard-read; clipboard-write; payment",t.style.position="fixed",t.style.top="30px",t.style.left="0",t.style.width="100%",t.style.height="100%",t.style.border="none",t.style.background="transparent",t.style.zIndex="1000",t.onload=()=>{a.log("Xsolla iframe loaded")},t.onerror=()=>{a.warn("Error loading Xsolla iframe"),s(),n(new Error("failed"))},document.body.appendChild(t);const i=document.createElement("button");i.innerText="X",i.style.position="absolute",i.style.top="0px",i.style.right="15px",i.style.zIndex="10001",i.style.color="#fff",i.style.border="none",i.style.padding="5px",i.style.fontSize="12px",i.style.cursor="pointer",i.style.boxShadow="2px 4px 6px rgba(0, 0, 0, 0.1)",i.style.background="transparent",document.body.appendChild(i);const r=t=>{if(!t.origin.includes("xsolla.com"))return;let i;try{i="string"==typeof t.data?JSON.parse(t.data):t.data}catch(u){return void a.warn("Failed to parse Xsolla message",u)}const o=null==i?void 0:i.command,r=null==i?void 0:i.data;switch(a.log(`Xsolla message: ${o}`,i),o){case"change-status":"done"===(null==r?void 0:r.value)&&(s(),e({result:!0,paymentId:2}));break;case"close":a.log("Xsolla sent close command"),s(),n(Fy("closed by Xsolla"))}},s=()=>{Ry=!1,t.parentNode&&document.body.removeChild(t),i.parentNode&&document.body.removeChild(i),window.removeEventListener("message",r)};i.addEventListener("pointerup",()=>{s(),n(Fy("Payment canceled by user (close button)"))},{once:!0}),window.addEventListener("message",r);const u=setTimeout(()=>{Ry&&(a.warn("[iap] Iframe timeout – forcing cleanup"),s(),n(Fy("Iframe timeout")))},3e5),l=n;n=e=>{clearTimeout(u),l(e)}}).finally(()=>{Ry=!1})},Hy=async e=>{var n,t;const i=!!(null==(t=null==(n=p.get().iap)?void 0:n.xsolla)?void 0:t.isSandbox);a.log("[iap] openXsollaWidget()");try{if(Ry)return Promise.reject(Fy("canceled"));if(Ry=!0,await function(e){return Jy?Promise.resolve():By||(By=new Promise((n,t)=>{a.log(`[iap][xsolla] load ${e?"sandbox ":""}script`);const i=document.createElement("script");i.type="text/javascript",i.async=!0,i.src=e?"//cdn.xsolla.net/embed/paystation/1.3.0/widget.min.js":"//cdn.xsolla.net/payments-bucket-prod/embed/1.5.1/widget.min.js",i.onload=()=>{Jy=!0,By=null,n()},i.onerror=()=>{By=null,t(new Error("Xsolla widget script failed to load"))},document.head.appendChild(i)}),By)}(i),!window.XPayStationWidget)throw new Error("failed");const n=window.XPayStationWidget;return n.init({sandbox:i,access_token:e}),new Promise((e,t)=>{const i=n=>{var t,i;o(),Ry=!1,e({result:!0,paymentId:Number(null==(i=null==(t=n.detail)?void 0:t.paymentInfo)?void 0:i.invoice)})},a=()=>{o(),Ry=!1,t(Fy("closed"))},o=()=>{n.off(n.eventTypes.STATUS_DONE,i),n.off(n.eventTypes.CLOSE,a)};n.on(n.eventTypes.STATUS_DONE,i),n.on(n.eventTypes.CLOSE,a),n.open()})}catch(o){throw a.warn("Xsolla widget error",o),o}},Gy=async(e,n,t,i)=>{const o=((e,n)=>`${Iy}/${e}/payment/item/${n}`)(e,n);i=i||Oy(),a.log(`[iap][xsolla][getXsollaToken] get xsolla token... (projectId: '${e}', sku: '${n}', bearerToken: '${t}', endpoint: '${o}')`,i);const r=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+t},body:JSON.stringify(i)});if(!r.ok)throw new Error(`http error! status: ${r.status}`);return(await r.json()).token},Oy=()=>{var e,n;const t="mobile"===Zy();return{sandbox:!!(null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.isSandbox),settings:{ui:{size:t?"small":"large",theme:"default",version:t?"mobile":"desktop",desktop:{header:{is_visible:!0,visible_logo:!0,visible_name:!0,visible_purchase:!0,type:"normal",close_button:!1}},mobile:{footer:{is_visible:!0},header:{close_button:!1}}}}}};var Qy,Ky={exports:{}};var jy,Wy,Uy=(Qy||(Qy=1,jy=Ky,Wy=function(){var e=String.fromCharCode,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(e,n){if(!i[e]){i[e]={};for(var t=0;t<e.length;t++)i[e][e.charAt(t)]=t}return i[e][n]}var o={compressToBase64:function(e){if(null==e)return"";var t=o._compress(e,6,function(e){return n.charAt(e)});switch(t.length%4){default:case 0:return t;case 1:return t+"===";case 2:return t+"==";case 3:return t+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:o._decompress(e.length,32,function(t){return a(n,e.charAt(t))})},compressToUTF16:function(n){return null==n?"":o._compress(n,15,function(n){return e(n+32)})+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:o._decompress(e.length,16384,function(n){return e.charCodeAt(n)-32})},compressToUint8Array:function(e){for(var n=o.compress(e),t=new Uint8Array(2*n.length),i=0,a=n.length;i<a;i++){var r=n.charCodeAt(i);t[2*i]=r>>>8,t[2*i+1]=r%256}return t},decompressFromUint8Array:function(n){if(null==n)return o.decompress(n);for(var t=new Array(n.length/2),i=0,a=t.length;i<a;i++)t[i]=256*n[2*i]+n[2*i+1];var r=[];return t.forEach(function(n){r.push(e(n))}),o.decompress(r.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":o._compress(e,6,function(e){return t.charAt(e)})},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),o._decompress(e.length,32,function(n){return a(t,e.charAt(n))}))},compress:function(n){return o._compress(n,16,function(n){return e(n)})},_compress:function(e,n,t){if(null==e)return"";var i,a,o,r={},s={},u="",l="",c="",h=2,d=3,g=2,p=[],m=0,f=0;for(o=0;o<e.length;o+=1)if(u=e.charAt(o),Object.prototype.hasOwnProperty.call(r,u)||(r[u]=d++,s[u]=!0),l=c+u,Object.prototype.hasOwnProperty.call(r,l))c=l;else{if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i<g;i++)m<<=1,f==n-1?(f=0,p.push(t(m)),m=0):f++;for(a=c.charCodeAt(0),i=0;i<8;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}else{for(a=1,i=0;i<g;i++)m=m<<1|a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a=0;for(a=c.charCodeAt(0),i=0;i<16;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}0==--h&&(h=Math.pow(2,g),g++),delete s[c]}else for(a=r[c],i=0;i<g;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1;0==--h&&(h=Math.pow(2,g),g++),r[l]=d++,c=String(u)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i<g;i++)m<<=1,f==n-1?(f=0,p.push(t(m)),m=0):f++;for(a=c.charCodeAt(0),i=0;i<8;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}else{for(a=1,i=0;i<g;i++)m=m<<1|a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a=0;for(a=c.charCodeAt(0),i=0;i<16;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}0==--h&&(h=Math.pow(2,g),g++),delete s[c]}else for(a=r[c],i=0;i<g;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1;0==--h&&(h=Math.pow(2,g),g++)}for(a=2,i=0;i<g;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1;for(;;){if(m<<=1,f==n-1){p.push(t(m));break}f++}return p.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,function(n){return e.charCodeAt(n)})},_decompress:function(n,t,i){var a,o,r,s,u,l,c,h=[],d=4,g=4,p=3,m="",f=[],v={val:i(0),position:t,index:1};for(a=0;a<3;a+=1)h[a]=a;for(r=0,u=Math.pow(2,2),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,u=Math.pow(2,8),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,u=Math.pow(2,16),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(h[3]=c,o=c,f.push(c);;){if(v.index>n)return"";for(r=0,u=Math.pow(2,p),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,u=Math.pow(2,8),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;h[g++]=e(r),c=g-1,d--;break;case 1:for(r=0,u=Math.pow(2,16),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;h[g++]=e(r),c=g-1,d--;break;case 2:return f.join("")}if(0==d&&(d=Math.pow(2,p),p++),h[c])m=h[c];else{if(c!==g)return null;m=o+o.charAt(0)}f.push(m),h[g++]=o+m.charAt(0),o=m,0==--d&&(d=Math.pow(2,p),p++)}}};return o}(),null!=jy?jy.exports=Wy:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return Wy}
1)),Ky.exports);const zy=async(e,n)=>{if(y("[compress] Compressing..."),"string"==typeof e&&e.length)try{return e=Uy.compressToUTF16(e)}catch(t){console.warn("[compress] Failed to compress string with LZString",t)}return y("[compress] ... skipped!"),e},$y=async(e,n,t=!1)=>{if(y("[decompress] Decompressing..."),"string"==typeof e&&e.length){let n=null;try{if(n=Uy.decompressFromUTF16(e),t)try{JSON.parse(n)}catch{return console.warn("Failed to parse the decompressed savegame. Returning the original string instead!"),e}return n}catch(i){console.warn("[decompress] Failed to decompress string with LZString",i)}}return y("[decompress] ... skipped!"),e},Vy="gi-xsolla-pending-purchase",qy=async(e,n,t,i,o)=>{var r;const s=`${Vy}-${n}`;a.log(`[iap][xsolla] store pending purchase ('${s}')`);const u={uid:e,paymentId:i,famobiPaymentToken:n,isSandbox:t,timestamp:(new Date).toISOString()},l=await zy(JSON.stringify(u)).catch(e=>{throw e});if(null===l)throw new Error("[iap][xsolla] could not save the pending purchase.");null==(r=null==window?void 0:window.localStorage)||r.setItem(s,l)},eb=async(e,n)=>{const t=`${Vy}-${e}`;a.log(`removeItem('${t}')`),window.localStorage.removeItem(t)},nb={providers:new Map,onEventCallback:null,queuedEvents:[],deliveredPurchaseKeys:new Set,providerRestoreFingerprints:new Map,authRestoreListenerAttached:!1},tb=e=>({type:"PURCHASE_SUCCESS_EVENT",detail:{sku:e.sku,purchase:e}}),ib=(e,n)=>{const t="PURCHASE_SUCCESS_EVENT"===n.type?(e=>{const n=e.detail.purchase;return"number"==typeof(null==n?void 0:n.paymentId)&&Number.isFinite(n.paymentId)?`payment:${n.paymentId}`:"string"==typeof(null==n?void 0:n.famobiPaymentToken)&&n.famobiPaymentToken.length>0?`token:${n.famobiPaymentToken}`:"string"==typeof(null==n?void 0:n.token)&&n.token.length>0?`token:${n.token}`:"string"==typeof(null==n?void 0:n.sku)&&n.sku.length>0?`sku:${n.sku}`:"string"==typeof e.detail.sku&&e.detail.sku.length>0?`sku:${e.detail.sku}`:null})(n):null;if(t&&nb.deliveredPurchaseKeys.has(t))return!0;try{return e(n),t&&nb.deliveredPurchaseKeys.add(t),!0}catch(i){return a.warn("[iap][restore] event callback failed",i),!1}},ab=e=>{a.log("[iap][restore] dispatch event"),"function"!=typeof nb.onEventCallback?nb.queuedEvents.push(e):ib(nb.onEventCallback,e)||nb.queuedEvents.push(e)},ob=async e=>{if(!e.getRestoreFingerprint||!e.getRestorablePurchases)return;const n=await e.getRestoreFingerprint();if(!n)return void nb.providerRestoreFingerprints.delete(e.id);if(nb.providerRestoreFingerprints.get(e.id)===n)return;const t=await e.getRestorablePurchases();for(const i of t)ab(tb(i));nb.providerRestoreFingerprints.set(e.id,n)},rb=async()=>{for(const e of nb.providers.values())await ob(e)},sb=()=>{nb.authRestoreListenerAttached||(nb.authRestoreListenerAttached=!0,xw(e=>{if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return nb.deliveredPurchaseKeys=new Set,void nb.providerRestoreFingerprints.clear();rb().catch(e=>{a.warn("[iap][restore] replaying cloud purchases failed",e)})}))},ub=async e=>{if(!e.getPendingPurchases)return;const n=await e.getPendingPurchases();for(const t of n)ab(tb(t))},lb=e=>{nb.onEventCallback=e,(()=>{if("function"==typeof nb.onEventCallback&&nb.queuedEvents.length)for(;nb.queuedEvents.length;){const e=nb.queuedEvents[0];if(!e||!ib(nb.onEventCallback,e))return;nb.queuedEvents.shift()}})(),(async()=>{for(const e of nb.providers.values())await ub(e)})().catch(e=>{a.warn("[iap][restore] replaying pending purchases failed",e)}),rb().catch(e=>{a.warn("[iap][restore] replaying restored purchases failed",e)})},cb=async e=>{var n,t;e=e||Dy(),a.log(`[iap][xsolla] getting pending purchases (uid: '${e}')...`);const i=await(async()=>{const e=[];let n,t;return Object.keys(localStorage).filter(e=>e.startsWith(`${Vy}
1`)).forEach(async i=>{var a;t=await $y(null==(a=null==window?void 0:window.localStorage)?void 0:a.getItem(i)),null!==t&&t.length&&(n=JSON.parse(t),e.push(n))}),e})();if(!i.length)throw new Error("[iap][xsolla] No stored pending purchases found.");i.sort((e,n)=>+new Date(n.timestamp)-+new Date(e.timestamp));const o=i[0];if(!(null==(n=null==o?void 0:o.uid)?void 0:n.length)||!(null==(t=null==o?void 0:o.famobiPaymentToken)?void 0:t.length))throw new Error("[iap][xsolla] stored pending purchase is invalid.");const r=await fetch((()=>{var e,n;return`${(null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.endpoint)||_y}/getPendingPurchase`})(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox:!!o.isSandbox,uid:o.uid,famobiPaymentToken:o.famobiPaymentToken})});if(!r.ok)throw await eb(o.famobiPaymentToken).catch(e=>{a.warn("[iap][xsolla] error: ",e)}),new Error(`http error! status: ${r.status}`);const s=await r.json();if("ERROR"===s.code&&"TOO_MANY_REQUESTS"===s.message&&(a.warn(`[iap][xsolla] too many requests: removing stored pending purchase ('${o.famobiPaymentToken}')`),await eb(o.famobiPaymentToken)),void 0===s.sku||"undefined"===s.paymentId)throw new Error("[iap][xsolla] pending purchase is invalid.");return{sku:s.sku,paymentId:s.paymentId,famobiPaymentToken:o.famobiPaymentToken}};let hb=!1;const db=()=>{var e;hb||(hb=!0,e={id:"xsolla",getPendingPurchases:async()=>{const e=await cb().catch(()=>{});return e?[e]:[]},getRestoreFingerprint:Cy,getRestorablePurchases:Sy},nb.providers.set(e.id,e),sb())},gb=e=>{ae()&&ab(e)},pb=async e=>{const n=await(async e=>(await Ny()).find(n=>n.sku===e)||null)(e);return n?{title:n.name,description:n.description,price:{amount:n.price.amount,currency:n.price.currency,displayPrice:`${n.price.amount} ${n.price.currency}`}}:null},mb=async(e,n,t=!0)=>{var i,o;if(!ae())return void a.log(`[iap][xsolla] buy product skipped because IAP feature is disabled (sku: ${e})`);a.log(`[iap][xsolla] buy product (sku: ${e}...)`),t&&re();const r=Math.random().toString(36).substring(2,10);try{const n=null==(o=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:o.projectId;if(void 0===n)throw new Error("invalid projectId");const t=((e,n,t)=>{var i,a,o;const r=Dy();return{packageId:n,sandbox:!!(null==(a=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:a.isSandbox),token:r,gameId:p.get().gameId||p.get().gameIdOnPortal||"unknown",projectId:e,uid:r,aid:(null==(o=window.famobi)?void 0:o.config.aid)||g.get().name,famobiPaymentToken:t||Math.random().toString(36).substring(2,10),payload:JSON.stringify({})}})(n,e,r),s=await My(t).catch(e=>{throw e});await qy(t.uid,t.famobiPaymentToken,t.sandbox).catch(e=>{throw e});const u=await Gy(n,e,s).catch(e=>{throw e}),l=await(e=>"mobile"===Zy()?Xy(e):Hy(e))(u).catch(e=>{throw e});if(void 0===l||!l.result||!l.paymentId)throw new Error("invalid xsolla shop result");await qy(t.uid,t.famobiPaymentToken,t.sandbox,l.paymentId).catch(e=>{a.warn("[iap][xsolla] error:",e)}),gb({type:"PURCHASE_SUCCESS_EVENT",detail:{sku:e,purchase:{token:u,paymentId:l.paymentId,sku:e,famobiPaymentToken:t.famobiPaymentToken}}}),(async()=>{const n=await pb(e).catch(e=>(a.warn("[iap][xsolla] could not resolve product catalog snapshot",e),null));await Yy({sku:e,status:"purchased",paymentId:l.paymentId,famobiPaymentToken:t.famobiPaymentToken,catalog:n,purchasedAt:Date.now()}).catch(e=>(a.warn("[iap][xsolla] cloud IAP purchase sync failed",e),!1))})()}catch(s){throw await eb(r),gb({type:"PURCHASE_FAIL_EVENT",detail:{sku:e}}),s}finally{t&&(a.log("[intern] hideBlockingLoader()"),oe&&(oe.style.opacity="0",oe.style.pointerEvents="none",setTimeout(()=>{oe&&(oe.style.display="none")},200)))}},fb=h({savegame:{},savegameUpdatedAt:0,savegameVersion:1,savegameLevel:null}),vb=async e=>{if(!ae())return void a.log(`[iap][xsolla] consume skipped because IAP feature is disabled (sku: ${e.sku})`);a.log(`[iap][xsolla] consume product (sku: ${e.sku})...`);const n=JSON.stringify(fb.get().savegame||{});a.log("[iap][xsolla] current savegame retrieved.");const t=await fetch(`${(null==(o=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:o.endpoint)||_y}/updatePaymentGameState`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paymentId:e.paymentId,gameState:n})});var i,o;if(!t.ok)throw new Error(`http error! status: ${t.status}`);const r=await t.json();a.log("[iap][xsolla] payment payload updated:",r),Yy({sku:e.sku,status:"consumed",paymentId:e.paymentId,famobiPaymentToken:e.famobiPaymentToken,consumedAt:Date.now()}).catch(e=>(a.warn("[iap][xsolla] cloud IAP consume sync failed",e),!1)),void 0!==e.famobiPaymentToken&&await eb(e.famobiPaymentToken).c
1atch(e=>{a.warn("[iap][xsolla] error: ",e)})},wb="__gameInterfaceEnvelope",yb=new Set([wb,"data","updatedAt","version","level"]),bb=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),Sb=e=>bb(e)?e:{},Cb=e=>({__gameInterfaceEnvelope:!0,data:e.data,updatedAt:e.updatedAt,version:e.version,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null}),Lb=e=>(e=>{if(!bb(e))return!1;const n=Object.keys(e);return!(n.length<4||n.length>yb.size)&&!!n.every(e=>yb.has(e))&&!0===e[wb]&&bb(e.data)&&"number"==typeof e.updatedAt&&Number.isFinite(e.updatedAt)&&e.updatedAt>=0&&"number"==typeof e.version&&Number.isFinite(e.version)&&e.version>0&&(!("level"in e)||null===e.level||"number"==typeof e.level&&Number.isFinite(e.level))})(e)?{data:e.data,updatedAt:e.updatedAt,version:e.version,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null}:{data:Sb(e),updatedAt:0,version:1,level:null},Tb=e=>e.updatedAt>0||Object.keys(e.data).length>0,Eb=e=>Array.isArray(e)?e.map(e=>Eb(e)):bb(e)?Object.keys(e).sort().reduce((n,t)=>(n[t]=Eb(e[t]),n),{}):e,kb=(e,n)=>JSON.stringify(Eb(e.data))===JSON.stringify(Eb(n.data)),Db=()=>{var e,n;const t=null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.debounceMs;return"number"==typeof t&&Number.isFinite(t)&&t>=0?t:2e3},xb=()=>{var e,n;return!0===(null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.enabled)};let Ab=!1,Yb=null,_b=null,Ib=null;const Pb=()=>{if(!xb()||!1===(null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.autoSync))return;var e,n;const t=Tw();"ready"===t.status&&!1===t.isAnonymous&&t.userId&&(Ib&&clearTimeout(Ib),Ib=setTimeout(async()=>{Ib=null;try{await ty(Rb())}catch(e){b("Error syncing cloud save:",e)}},Db()))},Nb=()=>{Yb&&(clearTimeout(Yb),Yb=null)},Mb=()=>(_b||(_b=Zb().catch(e=>{throw b("Error saving savegame:",e),e}).finally(()=>{_b=null})),_b),Zb=async()=>{for(;Ab;){Ab=!1;const{storagePrefix:n="famobi",storageKey:t="savegame",shouldCompress:i}=fb.get(),a=`${n}:${t}`,{storage:o}=g.get(),r=Rb(),s=JSON.stringify(Cb(r)),u=(i?await zy(s):s)??s;if(u)try{(null==o?void 0:o.setItem)?(y(`Flushing savegame to Portal: ${a}`),await o.setItem(a,u)):(y(`Flushing savegame to localStorage: ${a}`),window.localStorage.setItem(a,u))}catch(e){throw Ab=!0,e}}},Jb=e=>"number"==typeof e&&Number.isInteger(e)?e:null,Bb=()=>{const e=Jb(mv.get().level);return null!==e?e:Jb(fb.get().savegameLevel)},Rb=()=>{const{savegame:e,savegameUpdatedAt:n,savegameVersion:t,savegameLevel:i}=fb.get();return{data:Sb(e),updatedAt:"number"==typeof n?n:0,version:"number"==typeof t&&t>0?t:1,level:Jb(i)}},Fb=(e,n)=>{fb.set({savegame:e.data,savegameUpdatedAt:e.updatedAt,savegameVersion:e.version,savegameLevel:Jb(e.level)},{mode:"override"}),(null==n?void 0:n.persist)&&(()=>{var e;let n=fb.get().flushDelay||0;n=n<1e3?1e3*n:n;const t=(null==(e=g.get().storage)?void 0:e.flushMode)??"deferred";if(Ab=!0,Pb(),!_b)n<=0&&"immediate"===t?(Nb(),Mb().catch(()=>{})):Yb||(Yb=setTimeout(()=>{Yb=null,Mb().catch(()=>{})},n))})()},Xb=async()=>{Nb(),_b&&await _b,Ab&&await Mb()},Hb="data-game-interface-save-restored-template";let Gb=!1;const Ob=()=>{const e=qf().saveRestored;return hv({title:e.title,message:e.message,iconHtml:'\n  <svg viewBox="0 0 64 64" class="save-icon-svg" xmlns="http://www.w3.org/2000/svg">\n    <path\n      d="M22 46h20c6.6 0 12-5.1 12-11.5S48.6 23 42 23h-1.1C39.3 17.8 34.7 14 29.3 14c-6.2 0-11.4 4.9-11.9 11.1C12.1 26 8 30.5 8 36c0 5.5 4.5 10 10 10h4"\n      fill="none"\n      stroke="currentColor"\n      stroke-width="4"\n      stroke-linecap="round"\n      stroke-linejoin="round"\n    />\n    <path d="M32 27v13" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />\n    <path\n      d="M25 33l7 7 7-7"\n      fill="none"\n      stroke="currentColor"\n      stroke-width="4"\n      stroke-linecap="round"\n      stroke-linejoin="round"\n    />\n  </svg>\n',contentHtml:`\n      <div class="save-restored-panel">\n        <h2 class="save-restored-title">${av(e.panelTitle)}</h2>\n        <p class="save-restored-copy">\n          <span class="save-restored-spinner" aria-hidden="true"></span>\n          ${av(e.panelMessage)}\n        </p>\n      </div>\n    `,actionsHtml:""})},Qb=async()=>{rv(),Gb||(nv("\n  .game-interface-auth-connect-container .save-restored-panel {\n    margin: 4px 0 8px;\n    padding: 18px 18px 16px;\n    text-align: left;\n    background: rgba(16, 185, 129, 0.12);\n    border: 1px solid rgba(16, 185, 129, 0.22);\n    border-radius: 18px;\n    color: #166534;\n    box-shadow: 0 10px 24px rgba(22, 101, 52, 0.08);\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-restored-panel {\n    background: rgba(16, 185, 129, 0.18);\n    border-color: rgba(74, 222, 128, 0.24);\n    color: #dcfce7;\n    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);\n  }\n\n  .game-interface-auth-connect-container .save-restored-title {\n    margin: 0 0 8px;\n    font-size: 18px;\n    font-weight: 900;\n    color: inherit;\n  }\n\n  .game-interface-auth-connect-container .save-restored-copy {\n    margin: 0;\n    font-size: 15px;\n    line-height: 1.45;\n    color: inherit;\n  }\n\n  .game-interface-auth-connect-container .save-restored-spinner {\n    display: inline-flex;\n    width: 18px;\n    height: 18px;\n    margin-right: 10px;\n    vertical-align: text-bottom;\n    border: 2px solid currentColor;\n    border-right-color: transparent;\n    border-radius: 999px;\n    animation: game-interface-save-restored-spin 0.8s linear infinite;\n  }\n\n  @keyframes game-interface-save-restored-spin {\n    from {\n      transform: rotate(0deg);\n    }\n    to {\n      transform: rotate(360deg);\n    }\n  }\n\n  @media (max-width: 420px) {\n    .game-interface-auth-connect-container .save-restored-panel {\n      padding: 16px;\n      border-radius: 16px;\n    }\n\n    .game-interface-auth-connect-container .save-restored-title {\n      font-size: 17px;\n    }\n  }\n",{[Hb]:"true"}),Gb=!0),await Mf.fire({html:Ob(),showConfirmButton:!1,showCancelButton:!1,allowOutsideClick:!1,allowEscapeKey:!1,timer:1200,customClass:ov,didOpen:e=>{dv(e)}})},Kb="data-game-interface-save-conflict-template";let jb=!1;const Wb=e=>`\n    <button class="save-conflict-card" type="button" data-save-conflict-choice="${e.choiceValue}" data-selected="false">
1\n      <span class="save-conflict-card-header">\n        <span class="save-conflict-card-title">${av(e.title)}</span>\n        <span class="save-conflict-card-header-right">\n          <span class="save-conflict-badge ${av(e.badgeClassName)}">${av(e.badgeLabel)}</span>\n          <span class="save-conflict-check">\n  <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">\n    <path\n      d="M3.4 8.2l2.8 2.8 6-6"\n      fill="none"\n      stroke="currentColor"\n      stroke-width="2"\n      stroke-linecap="round"\n      stroke-linejoin="round"\n    />\n  </svg>\n</span>\n        </span>\n      </span>\n      <span class="save-conflict-meta">\n        <span class="save-conflict-meta-row">\n          <span class="save-conflict-meta-label">${av(e.progressTitle)}</span>\n          <span class="save-conflict-meta-value">${av(e.progressLabel)}</span>\n        </span>\n        <span class="save-conflict-meta-row">\n          <span class="save-conflict-meta-label">${av(e.updatedTitle)}</span>\n          <span class="save-conflict-meta-value">${av(e.updatedAtLabel)}</span>\n        </span>\n      </span>\n    </button>\n  `,Ub=e=>{const n=qf().saveConflict,t=`<div class="save-conflict-alert"><strong>${av(n.warningLabel)}</strong> ${av(n.warningMessage)}</div>`;return hv({title:n.title,message:n.message,iconHtml:"",contentHtml:`\n      <div class="save-conflict-comparison">\n        ${Wb({choiceValue:"local",title:n.localTitle,badgeLabel:n.localBadge,badgeClassName:"device",progressTitle:n.progressLabel,updatedTitle:n.updatedLabel,progressLabel:e.localSummary.progressLabel,updatedAtLabel:e.localSummary.updatedAtLabel})}\n        ${Wb({choiceValue:"remote",title:n.remoteTitle,badgeLabel:n.remoteBadge,badgeClassName:"cloud",progressTitle:n.progressLabel,updatedTitle:n.updatedLabel,progressLabel:e.remoteSummary.progressLabel,updatedAtLabel:e.remoteSummary.updatedAtLabel})}\n      </div>\n      <div class="save-conflict-alerts" data-save-conflict-alerts data-visible="false">${t}</div>\n    `,actionsHtml:`\n      <button class="primary-button save-conflict-confirm" type="button" data-save-conflict-action="confirm" disabled>\n        <span class="button-label">${av(n.confirmButtonText)}</span>\n      </button>\n    `})},zb=async e=>{rv(),jb||(nv("\n  .game-interface-auth-connect-container .save-conflict-comparison {\n    display: grid;\n    gap: 10px;\n    margin: 4px 0 16px;\n    text-align: left;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card {\n    position: relative;\n    display: block;\n    width: 100%;\n    padding: 14px 14px 12px;\n    text-align: left;\n    font: inherit;\n    background: rgba(255, 255, 255, 0.84);\n    border: 1px solid rgba(0, 163, 224, 0.14);\n    border-radius: 18px;\n    box-shadow: 0 8px 18px rgba(34, 40, 49, 0.08);\n    cursor: pointer;\n    transition:\n      transform 120ms ease,\n      border-color 120ms ease,\n      box-shadow 120ms ease,\n      background 120ms ease;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card:hover {\n    transform: translateY(-1px);\n    border-color: rgba(0, 163, 224, 0.3);\n    box-shadow: 0 12px 24px rgba(34, 40, 49, 0.12);\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card:focus-visible {\n    outline: 3px solid rgba(0, 163, 224, 0.28);\n    outline-offset: 2px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card[data-selected='true'] {\n    border-color: rgba(0, 163, 224, 0.5);\n    box-shadow:\n      0 0 0 3px rgba(0, 163, 224, 0.12),\n      0 12px 24px rgba(34, 40, 49, 0.12);\n    background: rgba(0, 163, 224, 0.08);\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-conflict-card {\n    background: rgba(17, 24, 39, 0.82);\n    border-color: rgba(148, 163, 184, 0.18);\n    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22);\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 10px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card-title {\n    margin: 0;\n    font-size: 17px;\n    font-weight: 900;\n    color: var(--famobi-dark);\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card-header-right {\n    display: inline-flex;
1\n    align-items: center;\n    gap: 8px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-badge {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 24px;\n    padding: 0 8px;\n    color: #ffffff;\n    background: var(--famobi-blue);\n    border-radius: 999px;\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: 0.04em;\n    text-transform: uppercase;\n    white-space: nowrap;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-badge.device {\n    background: #222831;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-conflict-badge.device {\n    color: #111827;\n    background: #f7fafc;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-meta {\n    display: flex;\n    flex-wrap: wrap;\n    gap: 10px 14px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-meta-row {\n    display: flex;\n    flex: 1 1 160px;\n    min-width: 0;\n    flex-direction: column;\n    gap: 4px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-meta-label {\n    font-size: 12px;\n    font-weight: 800;\n    letter-spacing: 0.05em;\n    text-transform: uppercase;\n    color: var(--text-muted);\n  }\n\n  .game-interface-auth-connect-container .save-conflict-meta-value {\n    font-size: 16px;\n    font-weight: 800;\n    color: var(--famobi-dark);\n  }\n\n  .game-interface-auth-connect-container .save-conflict-check {\n    width: 24px;\n    height: 24px;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    color: #ffffff;\n    background: rgba(0, 163, 224, 0.18);\n    border: 2px solid rgba(0, 163, 224, 0.22);\n    border-radius: 999px;\n    box-sizing: border-box;\n    transition:\n      background 120ms ease,\n      border-color 120ms ease,\n      color 120ms ease,\n      transform 120ms ease;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card[data-selected='true'] .save-conflict-check {\n    background: var(--famobi-blue);\n    border-color: var(--famobi-blue);\n    transform: scale(1.04);\n  }\n\n  .game-interface-auth-connect-container .save-conflict-check svg {\n    width: 12px;\n    height: 12px;\n    opacity: 0;\n    transition: opacity 120ms ease;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-card[data-selected='true'] .save-conflict-check svg {\n    opacity: 1;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-alerts {\n    display: grid;\n    gap: 10px;\n    margin: 0 0 16px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-alerts[data-visible='false'] {\n    display: none;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-alert {\n    padding: 14px 16px;\n    text-align: left;\n    border-radius: 16px;\n    background: rgba(255, 59, 48, 0.12);\n    border: 1px solid rgba(220, 38, 38, 0.18);\n    color: #991b1b;\n    font-size: 15px;\n    line-height: 1.4;\n  }\n\n  .game-interface-auth-connect-container[data-theme='dark'] .save-conflict-alert {\n    background: rgba(127, 29, 29, 0.28);\n    border-color: rgba(248, 113, 113, 0.24);\n    color: #fecaca;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-alert strong {\n    display: inline-block;\n    margin-right: 6px;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-confirm {\n    width: 100%;\n  }\n\n  .game-interface-auth-connect-container .save-conflict-confirm:disabled {\n    cursor: not-allowed;\n    opacity: 0.48;\n  }\n\n  @media (max-width: 420px) {\n    .game-interface-auth-connect-container .save-conflict-comparison {\n      gap: 8px;\n      margin-bottom: 12px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-card {\n      padding: 12px 12px 10px;\n      border-radius: 16px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-card-title {\n      font-size: 15px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-badge {\n      min-height: 22px;\n      padding: 0 7px;\n      font-size: 11px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-meta-value {\n      font-size: 14px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-alerts {\n      gap: 8px;\n      margin-bottom: 12px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-alert {\n      padding: 12px 12px;\n      border-radius: 14px;\n      font-size: 14px;\n    }\n  }\n\n  @media (max-height: 760px) {\n    .game-interface-auth-connect-container .save-conflict-comparison {\n      gap: 8px;\n      margin-bottom: 12px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-card {\n      padding: 12px 12px 10px;\n      border-radius: 16px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-card-header {\n      margin-bottom: 8px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-card-title {\n      font-size: 15px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-meta {\n      gap: 8px 12px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-meta-value {\n      font-size: 14px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-alerts {\n      gap: 8px;\n      margin-bottom: 12px;\n    }\n\n    .game-interface-auth-connect-container .save-conflict-alert {\n      padding: 12px 12px;\n      border-radius: 14px;\n      font-size: 14px;\n    }\n  }\n",{[Kb]:"true"}),jb=!0);let n="local",t=null;return await Mf.fire({html:Ub(e),showConfirmButton:!1,showCancelButton:!1,allowOutsideClick:!1,allowEscapeKey:!1,customClass:ov,didOpen:e=>{const i=e.querySelector('[data-save-conflict-action="confirm"]'),a=e.querySelector("[data-save-conflict-alerts]"),o=Array.from(e.querySelectorAll("[data-save-conflict-choice]"));dv(e);
1o.forEach(e=>{e.addEventListener("click",()=>{var r;r="remote"===e.dataset.saveConflictChoice?"remote":"local",t=r,n=r,o.forEach(e=>{const n=e.dataset.saveConflictChoice===r;e.dataset.selected=String(n)}),a&&(a.dataset.visible=String("remote"===r)),i&&(i.disabled=!1)})}),null==i||i.addEventListener("click",()=>{t&&Mf.close()})}}),n},$b=["level","currentLevel","maxLevel","stage"],Vb=(e,n=new WeakSet)=>{if("string"==typeof e){const t=e.trim();if(!t||"{"!==t[0]&&"["!==t[0])return null;try{return Vb(JSON.parse(t),n)}catch{return null}}if(!e||"object"!=typeof e)return null;if(n.has(e))return null;if(n.add(e),Array.isArray(e)){let t=null;for(const i of e){const e=Vb(i,n);"number"==typeof e&&Number.isFinite(e)&&(t=null===t?e:Math.max(t,e))}return t}const t=e;let i=null;for(const a of $b){const e=t[a];"number"==typeof e&&Number.isFinite(e)&&(i=null===i?e:Math.max(i,e))}for(const a of Object.values(t)){const e=Vb(a,n);"number"==typeof e&&Number.isFinite(e)&&(i=null===i?e:Math.max(i,e))}return i},qb=e=>"number"==typeof e.level&&Number.isInteger(e.level)?e.level:Vb(e.data),eS=e=>{const n=qb(e);return{progressLabel:null!==n?`Level ${n}`:"Progress unavailable",updatedAtLabel:e.updatedAt>0?new Date(e.updatedAt).toLocaleString():"Unknown"}},nS=e=>{if("string"==typeof e){const n=JSON.stringify(e.length>80?`${e.slice(0,77)}...`:e);return e.length>80?`${n} (${e.length} chars)`:n}if(Array.isArray(e))return`Array(${e.length})`;if(bb(e))return`Object(${Object.keys(e).length})`;const n=JSON.stringify(e);return"string"==typeof n?n:String(e)},tS=(e,n,t)=>{const i=t.get(e);if(null==i?void 0:i.has(n))return!0;const a=i??new WeakSet;return a.add(n),t.set(e,a),!1},iS=()=>{const{gameReadyAt:e,playerReadyAt:n}=mv.get();return null===e&&null===n},aS=(e,n)=>{const t=((e,n,t=8)=>{const i=[],a=new WeakMap,o=(e,n,r)=>{if(!(i.length>=t||Object.is(e,n)))if(Array.isArray(e)&&Array.isArray(n)){if(tS(e,n,a))return;e.length!==n.length&&i.push(`${r||"$"} length: ${e.length} !== ${n.length}`);for(let a=0;a<Math.max(e.length,n.length);a+=1)if(o(e[a],n[a],`${r||"$"}[${a}]`),i.length>=t)return}else{if(bb(e)&&bb(n)){if(tS(e,n,a))return;const s=Array.from(new Set([...Object.keys(e),...Object.keys(n)])).sort();for(const a of s)if(o(e[a],n[a],r?`${r}.${a}`:a),i.length>=t)return;return}i.push(`${r||"$"}: ${nS(e)} !== ${nS(n)}`)}};return o(e,n,""),i})(e.data,n.data);a.force("[storage] Cloud save conflict detected",{localUpdatedAt:e.updatedAt,remoteUpdatedAt:n.updatedAt,updatedAtDeltaMs:Math.abs(e.updatedAt-n.updatedAt),localLevel:e.level,remoteLevel:n.level,differingPaths:t})},oS=(e,n,t)=>{if(!0!==(null==t?void 0:t.isAutomatic)||!iS())return!1;if(e.updatedAt<=n.updatedAt)return!1;if(e.updatedAt-n.updatedAt>Math.max(5e3,Db()+2e3))return!1;const i=qb(e),a=qb(n);return null!==i&&null!==a&&i===a};let rS=!1,sS=null;const uS=async e=>{if(xb()&&Tb(e))try{await ty(e)}catch(n){b("Error syncing local save to cloud:",n)}},lS=async(e,n)=>{if(xb()&&Tb(e))try{await(async(e,n)=>{const t=await qw();if(!t)return!1;const i={savegame:e.data,savegameUpdatedAt:e.updatedAt,savegameVersion:e.version,gameVersion:p.get().version??null,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null,source:n,backedUpAt:Date.now()},a=tl(Iw());return await Bl(qu(a,"games",t.gameId,"users",t.userId),{gameVersion:p.get().version??null,oldSavegame:i},{merge:!0}),!0})(e,n)}catch(t){b("Error backing up savegame to cloud:",t)}},cS=async(e,n,t)=>{await(async e=>{Fb(e,{persist:!0}),await Xb()})(n),(!0===(null==t?void 0:t.forceReload)||((e,n,t)=>!0===t&&!kb(e,n))(e,n,null==t?void 0:t.reloadOnRemoteApply))&&await(async()=>{await Qb(),window.location.reload()})()},hS=()=>{rS||(rS=!0,xw(e=>{if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return void(sS=null);if(e.isOverlayVisible)return;if(!xb()||!1===(null==(t=null==(n=p.get().auth)?void 0:n.cloudSave)?void 0:t.autoRestore)||sS===e.userId)return;var n,t;sS=e.userId;const i=(()=>{const e=Aw.reloadAfterNextRestore;return Aw.reloadAfterNextRestore=!1,e})();dS({promptOnConflict:!0,reloadOnRemoteApply:i,isAutomatic:!0}).catch(e=>{b("Automatic cloud save restore failed:",e),sS=null})}))},dS=async(e={})=>
1{if(!xb())return!1;const n=Tw();if("ready"!==n.status||!1!==n.isAnonymous||!n.userId)return!1;try{const n=Rb(),t=await(async()=>{const e=await qw();if(!e)return null;const n=tl(Iw()),t=await Zl(qu(n,"games",e.gameId,"users",e.userId));if(!t.exists())return null;const i=t.data();return{gameId:e.gameId,userId:e.userId,savegame:"object"==typeof i.savegame&&i.savegame?i.savegame:{},savegameUpdatedAt:"number"==typeof i.savegameUpdatedAt&&Number.isFinite(i.savegameUpdatedAt)?i.savegameUpdatedAt:0,savegameVersion:"number"==typeof i.savegameVersion&&Number.isFinite(i.savegameVersion)?i.savegameVersion:1,gameVersion:"string"==typeof i.gameVersion?i.gameVersion:null,level:"number"==typeof i.level&&Number.isInteger(i.level)?i.level:null,oldSavegame:ny(i.oldSavegame),sdkName:"string"==typeof i.sdkName?i.sdkName:null,portal:"string"==typeof i.portal?i.portal:null,lastSeenAt:"number"==typeof i.lastSeenAt&&Number.isFinite(i.lastSeenAt)?i.lastSeenAt:0}})();if(!t)return await uS(n),!1;const i={data:Sb(t.savegame),updatedAt:t.savegameUpdatedAt,version:t.savegameVersion||1,level:"number"==typeof t.level&&Number.isInteger(t.level)?t.level:null};if(!Tb(i))return await uS(n),!1;if(!Tb(n))return await cS(n,i,e),!0;if(kb(n,i))return n.updatedAt>=i.updatedAt?(await uS(n),!1):(await cS(n,i,e),!0);if(oS(n,i,e))return a.force("[storage] Auto-resolving startup cloud conflict to local save",{localUpdatedAt:n.updatedAt,remoteUpdatedAt:i.updatedAt,updatedAtDeltaMs:n.updatedAt-i.updatedAt,localProgress:qb(n),remoteProgress:qb(i),isAutomatic:!0===e.isAutomatic,isDuringInitialCloudRestoreWindow:iS()}),await lS(i,"cloud"),await uS(n),!1;if(aS(n,i),!1!==e.promptOnConflict){const t=await(async(e,n)=>zb({localSummary:eS(e),remoteSummary:eS(n)}))(n,i);return"local"===t?(await lS(i,"cloud"),await uS(n),!1):(await lS(n,"local"),await cS(n,i,{...e,forceReload:!0}),!0)}return n.updatedAt>=i.updatedAt?(await uS(n),!1):(await cS(n,i,e),!0)}catch(t){return b("Error restoring cloud save:",t),!1}},gS=async()=>{var e,n,t;y("init storage...");const{gameId:i="{FAMOBI_GAMEID}"}=p.get();fb.set({storagePrefix:i});const{storagePrefix:a="famobi",storageKey:o="savegame",shouldCompress:r,indexedDBName:s}=fb.get(),u=`${a}:${o}`;let l={data:{},updatedAt:0,version:1,level:null};if(null==(e=g.get().storage)?void 0:e.getItem)try{let e=await(null==(t=null==(n=g.get().storage)?void 0:n.getItem)?void 0:t.call(n,u));r&&(e=await $y(e,0,!0)),l=Lb(e&&JSON.parse(e)||{}
1),y(`Loaded from Portal: ${u}`)}catch(c){b("Error loading Portal data:",c)}else{const e=window.localStorage.getItem(u),n=r?await $y(e,0,!0):e;if(n)try{l=Lb(JSON.parse(n))}catch{b("Error loading data:",n)}}if(!Tb(l)&&(null==s?void 0:s.length)){const e=await(async(e,n="keyvaluepairs")=>{const t=(await indexedDB.databases()).find(n=>n.name===e);return t&&t.name&&t.version?new Promise(e=>{const i=indexedDB.open(t.name,t.version);i.onerror=()=>{e(null)},i.onsuccess=t=>{const i=t.target.result;if(!Array.from(i.objectStoreNames).includes(n))return i.close(),void e(null);const a=i.transaction(n,"readonly").objectStore(n).getAll();a.onsuccess=()=>{i.close(),e("string"==typeof a.result[0]?a.result[0]:null)},a.onerror=()=>{i.close(),e(null)}}}):null})(s);if(null!==e)try{l=Lb(JSON.parse(e))}catch{l=Lb(e)}}Fb(l),hS(),window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&Xb().catch(()=>{})}),window.addEventListener("beforeunload",()=>{Xb().catch(()=>{})})},pS=async(e,n)=>{if(!ae())return void a.log(`[iap][xsolla] redeem code skipped because IAP feature is disabled (code: '${e}')`);a.log(`[iap][xsolla] redeem code '${e}' (params: ${JSON.stringify(n||{})})...`);const t=await fetch(`${(null==(o=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:o.endpoint)||_y}/redeemCode`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,sandbox:!!(null==n?void 0:n.isSandbox)})});var i,o;if(!t.ok)throw new Error(`http error! status: ${t.status}`);const r=await t.json();if(r.success&&"string"==typeof r.gameState)return a.log("[iap][xsolla] game data received. overwrite existing savegame..."),(e=>{try{a.log("[storage] Overwriting existing savegame"),a.log("[storage] OLD:",fb.get().savegame||{}),a.log("[storage] NEW:",e);const n=Lb(JSON.parse(e));Fb(n,{persist:!0})}catch{throw new Error("overwriting savegame failed!")}})(r.gameState),a.warn("[iap][xsolla] reloading page..."),window.location.replace(window.location.href);throw new Error("invalid gameState")},mS=h({}),fS=async(e=[],n=!1)=>{if(!Array.isArray(e))return b("'files' is not of type 'array'");const t=(e||[]).length;if(t<=0)return;y(`Trying to load ${t} files`);const i=Date.now(),a=await vS(e.filter(e=>"function"!=typeof e));await wS(a),e.filter(e=>"function"==typeof e).forEach(e=>e()),y(t,"Files loaded (",Date.now()-i,"ms )")},vS=async(e=[])=>(await Promise.all(e.map(async e=>{if(y(`Download file: ${e}`),!e)return null;const n=CS(e);if("js"===n||"css"===n){const t=await fetch(e,{});if(!t.ok)throw new Error(`Failed to fetch: ${e}`);return{file:e,ext:n,content:await t.text()}}return null}))).filter(e=>null!==e),wS=async e=>{for(const n of e)n&&n.content?(y(`Load file: ${n.file}`),"js"===n.ext?await bS(n.content,n.file):"css"===n.ext&&await SS(n.content,n.file)):b("Could not load file")},yS=e=>{var n;const t=null==(n=document.querySelector("script[nonce]"))?void 0:n.getAttribute("nonce");return t&&e.setAttribute("nonce",t),e},bS=(e,n)=>new Promise((t,i)=>{const a=new Blob([e],{type:"text/javascript"}),o=URL.createObjectURL(a),r=yS(document.createElement("script"));r.src=o,r.async=!1,r.charset="utf-8",r.onload=()=>{URL.revokeObjectURL(o),t()},r.onerror=e=>{URL.revokeObjectURL(o),i(new Error(`Failed to load ${n||"blob script"}`))},document.head.appendChild(r)}),SS=(e,n)=>new Promise((t,i)=>{const a=new Blob([e],{type:"text/css"}),o=URL.createObjectURL(a),r=yS(document.createElement("link"));r.rel="stylesheet",r.href=o,r.onload=()=>{URL.revokeObjectURL(o),t()},r.onerror=()=>{URL.revokeObjectURL(o),i(new Error(`Failed to load CSS ${n||""}`))},document.head.appendChild(r)}),CS=e=>{var n;return(null==(n=e.split("?")[0].split("#")[0].split(".").pop())?void 0:n.toLowerCase())||null};const LS=e=>new Promise(n=>{setTimeout(n,e)});let TS=0,ES=Date.now(),kS=null,DS=!1,xS=!1;const AS=()=>TS,YS=()=>{xS=!1,a.log("[intern] Resume playtime tracking...")},_S="https://game-collector.famobi.com/collect";let IS=!1,PS=null,NS="",MS="",ZS="",JS=0,BS=null,RS=null,FS=null,XS=null,HS=null,GS=1e3,OS=!1,QS=!1;const KS=[],jS=()=>{var e;return!1!==(null==(e=p.get().analytics)?void 0:e.enabled)},WS=()=>
1{if("undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID();return`${Date.now().toString(16)}-${Math.random().toString(16).slice(2)}-${Math.random().toString(16).slice(2)}`},US=(e,n)=>{const t=((e,n)=>{try{return(null==e?void 0:e.getItem(n))??null}catch{return null}})(e,n);if(t)return t;const i=WS();return((e,n,t)=>{try{null==e||e.setItem(n,t)}catch{}})(e,n,i),i},zS=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase(),$S=e=>{const n=(e=>{if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&e.trim().length){const n=Number(e);if(Number.isFinite(n))return n}return null})(e);return null===n?null:Math.round(n)},VS=(e,n)=>"webview"!==n||"android"!==e&&"ios"!==e?"web":e,qS=()=>{if("undefined"==typeof navigator)return null;const e=navigator.userAgent||"";return/ipad/i.test(e)||/tablet/i.test(e)?"tablet":/mobi|android|iphone|ipod/i.test(e)?"mobile":"desktop"},eC=()=>{const e=p.get(),n=Cw.get(),t=g.get().name,i=t&&"missing_sdk_name"!==t?t:"microsite",a="undefined"!=typeof window?window.location.href:null,o="undefined"!=typeof window?window.location.host:null,r=(e=>{if(!e)return null;try{return new URL(e).host}catch{return null}})("undefined"!=typeof document?document.referrer:""),s=e.locale||("undefined"!=typeof navigator?navigator.language:null),u=n.userId||e.userId||e.userid||null,l="boolean"==typeof n.isAnonymous?n.isAnonymous:!u,c=(()=>{if("undefined"==typeof navigator)return null;const e=navigator.userAgent||"";return/windows/i.test(e)?"windows":/android/i.test(e)?"android":/iphone|ipad|ipod/i.test(e)?"ios":/mac os x/i.test(e)?"macos":/linux/i.test(e)?"linux":null})(),h=(()=>
1{if("undefined"==typeof navigator)return null;const e=navigator.userAgent||"";return/edg/i.test(e)?"edge":/firefox/i.test(e)?"firefox":/chrome/i.test(e)&&!/edg|opr/i.test(e)?"chrome":/safari/i.test(e)&&!/chrome|crios|edg/i.test(e)?"safari":null})(),d=(()=>{var e,n;if("undefined"==typeof window||"undefined"==typeof navigator)return null;const t=navigator.userAgent||"",i=/iphone|ipad|ipod/i.test(t),a=/android/i.test(t);return void 0!==window.ReactNativeWebView||void 0!==window.NativeBridge||void 0!==window.WindowsGameBridge||void 0!==(null==(e=window.chrome)?void 0:e.webview)||void 0!==window.cordova||void 0!==window.Capacitor||void 0!==(null==(n=window.webkit)?void 0:n.messageHandlers)||a&&/\bwv\b/i.test(t)||i&&/applewebkit/i.test(t)&&!/safari/i.test(t)?"webview":"browser"})(),m=e.gameId||e.gameIdOnPortal||"unknown";"unknown"===m&&y("Analytics: missing game_id, using fallback 'unknown'.");const f=Boolean(e.dev)||Boolean(e.currentMock);return{game_id:m,platform:VS(c,d),session_id:NS,app_session_id:MS,portal:i,sdk_name:"eos-sdk",sdk_version:"6a5a4a7bcfdfb5ed800f25c1f8e405cf45640d44",game_version:e.version||null,build_env:f?"dev":"prod",is_dev:f,is_mocked:Boolean(e.currentMock),portal_game_id:e.gameIdOnPortal||null,page_url:a,page_host:o,host_domain:r,referrer_domain:r,language:s||null,user_id:u,anon_id:ZS||null,is_anonymous:l,os:c,browser:h,client_runtime:d,device_type:qS(),country:null}},nC=()=>{if(IS)return;IS=!0,PS=Date.now();const e="undefined"!=typeof window?window.sessionStorage:void 0,n="undefined"!=typeof window?window.localStorage:void 0;NS=US(e,"eos_sdk_session_id"),MS=WS(),ZS=US(n,"eos_sdk_anon_id"),JS=0,null===XS&&"undefined"!=typeof window&&(XS=window.setInterval(()=>{rC(!1)},5e3),window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&rC(!0)}),window.addEventListener("pagehide",e=>{"persisted"in e&&!0===e.persisted||uC("pagehide"),rC(!0)}),window.addEventListener("beforeunload",()=>{uC("unload"),rC(!0)})),y("init analytics collector...")},tC=(e,n={})=>{KS.length>=100&&(KS.shift(),y("Analytics: queue full, dropping oldest event.")),KS.push(e),(n.flushNow??1)&&(KS.length>=25||"game_end"===e.event_name)&&rC(!1)},iC=()=>{null===HS&&"undefined"!=typeof window&&(HS=window.setTimeout(()=>{HS=null,rC(!1)},GS),GS=Math.min(2*GS,3e4))},aC=()=>{GS=1e3},oC=e=>{KS.unshift(...e),KS.length>100&&(KS.length=100)},rC=async e=>{if(0===KS.length)return;const n=!OS;if(!n&&!e)return;n&&(OS=!0);let t=[];try{if(e||await(async()=>{if(Kw())try{await Gw()}catch{}})(),0===KS.length)return;t=KS.splice(0,e?KS.length:25);const n={...eC(),events:t},a=JSON.stringify(n);if(p.get().analyticsDebug)return console.log("[analytics][debug] batch",n),void oC(t);if((e=>!!e&&"undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon)(e)){const e=new Blob([a],{type:"application/json"});if(navigator.sendBeacon(_S,e))return void aC()}const o=await fetch(_S,{method:"POST",headers:{"Content-Type":"application/json"},body:a,credentials:"omit",keepalive:e});o.ok?aC():(i=o.status)>=500||408===i||429===i?(oC(t),iC()):aC()}catch{t.length>0&&(oC(t),iC())}finally{n&&(OS=!1)}var i},sC=(e,n,t)=>{const i=Date.now(),a=zS(e),o=zS(t);let r=a;const s=new Set(["sdk_init","game_ready","game_start","game_end","game_pause","game_resume","audio_mute_changed","progress_updated","score_updated","ad_request","ad_impression","ad_result","iap_purchase_result","ui_action","custom_event","player_ready","game_finished","stage_start","stage_end"]);r="game_over"===o||"game_complete"===o||"game_quit"===o?"game_end":s.has(a)?a:s.has(o)?o:"custom_event";const u=(({eventName:e,runSessionId:n,stage:t})=>"game_start"===e&&n?"active_run_session":(e=>"game_end"===e||"stage_start"===e||"stage_end"===e)(e)&&!n?"missing_run_session":!(e=>"stage_start"===e||"stage_end"===e)(e)||"number"==typeof t&&Number.isFinite(t)&&Number.isInteger(t)?null:"invalid_stage")({eventName:r,runSessionId:BS,stage:n.stage??mv.get().stage});if("active_run_session"===u)return y("Analytics: ignored 'game_start' because a gameplay run is already active."),null;if("missing_run_session"===u)return y(`Analytics: ignored '${r}' without an active run_session_id.`),null;if("invalid_stage"===u)return y(`Analytics: ignored '${r}
1' with an invalid stage.`),null;if("score_updated"===r)return null;const l={event_id:WS(),event_name:r,event_ts:i,event_seq:++JS,run_session_id:BS};if("sdk_init"===r&&(l.time_since_init_ms=0),"game_ready"===r&&(l.time_since_init_ms=PS?Math.max(0,i-PS):null),"game_start"===r){(e=>{BS=WS(),RS=e,FS=AS()})(i),l.run_session_id=BS;const e=$S(n.level??mv.get().level);l.level=e;const t=mv.get().gameReadyAt;l.time_since_ready_ms=t?Math.max(0,i-t):null}if("game_end"===r){l.run_session_id=BS;const e=$S(n.level??mv.get().level);l.level=e;const t=$S(n.score_total??mv.get().score);l.score_total=t,l.duration_wall_ms=RS?Math.max(0,i-RS):null,l.playtime_active_ms=null!==FS?Math.max(0,Math.round(AS()-FS)):null,"string"==typeof n.end_reason?l.end_reason=n.end_reason:"game_over"===o?l.end_reason="over":"game_complete"===o?l.end_reason="complete":"game_quit"===o&&(l.end_reason="quit"),BS=null,RS=null,FS=null}let c=null;if("custom_event"===r&&(c="string"==typeof n.name?n.name:"custom_event"!==o?o:null,c&&(l.custom_name=c),"string"==typeof n.category&&(l.custom_category=n.category),void 0!==n.value)){const e=n.value;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e||"bigint"==typeof e)l.custom_value=String(e);else try{l.custom_value=JSON.stringify(e)??Object.prototype.toString.call(e)}catch{l.custom_value=Object.prototype.toString.call(e)}}const h={...n};return"custom_event"===r&&c&&"string"!=typeof h.name&&(h.name=c),Object.keys(h).length>0&&(l.params_json=h),l},uC=e=>{if(!BS)return;const n=sC("game_end",{end_reason:"quit",quit_reason:e,synthetic_end:!0},"game_end");n&&tC(n,{flushNow:!1})},lC=(e,n={},t)=>{if(!jS())return;nC();let i=e,a=n,o=e||"";if(!i){const e=(()=>{var e,n;const t=null==(e=mv.get().history)?void 0:e.gameEvents;if(!(null==t?void 0:t.length))return null;const i=t[t.length-1],a={};return null==(n=i.params)||n.forEach(e=>{a[e.name]=e.value}),{name:i.name,params:a}})();if(!e)return;i=e.name,a=e.params,o=e.name}t&&(a=((e,n={})=>{const t={...e},i=mv.get(),a="number"==typeof t.level?t.level:"number"==typeof n.level?n.level:i.level,o="number"==typeof t.stage?t.stage:"number"==typeof n.stage?n.stage:i.stage;if(n.includeLevel&&"number"==typeof a&&(t.level=a),n.includeStage&&"number"==typeof o&&(t.stage=o),"number"==typeof t.stage&&(t.stage=t.stage/1e3+(a||0)),n.includeScore){const e=n.scoreKey??"score_total";if("number"!=typeof t[e]){const a="number"==typeof n.score?n.score:i.score;"number"==typeof a&&(t[e]=a)}}return t})(a,t));const r=sC(i,a,o);r&&tC(r)},cC=h({rewardedAdAvailable:!1,interstitialAdAvailable:!1,types:{preroll:{state:"off"},interstitial:{state:"off"},rewarded:{state:"off"},banner:{state:"off"}},callbacks:{onRewardedAdAvailabilityChange:void 0,onInterstitialAdAvailabilityChange:void 0,onOffsetChange:void 0},offsets:{top:0,bottom:0,left:0,right:0},skipValidation:{rewarded:!1,interstitial:!1,banner:!1,preroll:!1}}),hC="off",dC="idle",gC="preloading",pC="ready",mC="playing",fC="closed",vC=(e="",n="")=>{const t=["preroll","start","pause","resume","quit","browse","next","break"],i="string"==typeof n?n.toLowerCase():"";if(t.includes(i))return i;const a="string"==typeof e?e.toLowerCase():"";if(!a)return"browse";const o=a.split(":");if("break"===o[0])return"break";const r=o[o.length-1];return t.includes(r)?r:"browse"},wC={init:{once:!0,next:["gameReady"]},gameReady:{once:!0,next:["playerReady","stageStart","gameStart"]},playerReady:{once:!0,next:["stageStart","gameStart"]},gameStart:{next:["stageStart","gameEnd"]},gameEnd:{next:["gameStart","gameFinished"]},stageStart:{next:["stageEnd","gameEnd"]},stageEnd:{next:["stageStart","gameStart","gameEnd"]},gameFinished:{once:!0,next:[]}},yC=[],bC={isStarted:!1,isPaused:!1,isExternalPaused:{ad:!1,browser:!1,external:!1}};let SC=null;const CC=(e,n)=>{"function"==typeof n&&mv.set({callbacks:{[e]:n}})},LC=(e=!0,n=!1,t="unknown",i=!1)=>{var o,r;a.log(`[intern] setMute(${e}, ${n}, '${t}', ${i})...`);const{isMuted:s,userMutePref:u,callbacks:l}=mv.get();let c=e;n?(c=e||u,mv.set({isMuted:c})):mv.set({isMuted:c,userMutePref:c}),(s!==c||i)&&(lC("audio_mute_changed",{is_muted:c,mute_trigger:t}),null==(o=l.onAudioStateChange)||o.call(l,c,n),null==(r=l.onMuteStateChange)||r.call(l,c,n))},TC=(e=!0,n=!1)=>{var t;a.log(`[intern] setPause(${e}, ${n})...`);const{isPaused:i,userPausePref:o,callbacks:r}=mv.get();let s=i;
1if(n?(s=e||o,s!==i&&mv.set({isPaused:s})):(s=e,mv.set({isPaused:s,userPausePref:s})),kC("setPause",[{name:"isAdTriggered",value:n},{name:"isPaused",value:s}]),s!==i){const e={pause_reason:n?"ad":"user"};if(s)SC=Date.now(),lC("game_pause",e,{includeLevel:!0});else{const n=SC?Date.now()-SC:null;SC=null;const t={...e};null!==n&&(t.pause_duration_ms=n),lC("game_resume",t,{includeLevel:!0})}null==(t=r.onPauseStateChange)||t.call(r,s,n)}};function EC(e,n){var t;const i=(null==(t=mv.get().history)?void 0:t.gameEvents)||[];i.push({name:e,params:n}),mv.set({history:{gameEvents:i}}),kC(e,n);const a={eventName:e,data:n};document.dispatchEvent(new CustomEvent("gameevent",{detail:a})),document.dispatchEvent(new CustomEvent("gameevent ",{detail:a})),VC("game-event",{eventName:e}),(async e=>{var n;if(!(e in wC))return!0;if(yC.push(e),wC[e].once&&yC.filter(n=>n===e).length>1)return VC("invalid-game-event",{error:"INVALID_GAME_EVENT",message:`Event '${e}' can only be called once!`}),!1;if(yC.length>1){const t=yC[yC.length-2],i=(null==(n=wC[t])?void 0:n.next)??[];if(!i.includes(e))return VC("invalid-game-event",{error:"INVALID_GAME_EVENT",message:`Event '${e}' is not allowed after '${t}' - only the following events can follow: ${i.map(e=>`'${e}'`).join(", ")}`}),!1}})(e)}const kC=(e,n)=>{const t=mv.get().gameplayState,i=((e,n)=>{var t,i,a;const o=mv.get().gameplayState;switch(e){case"gameStart":case"stageStart":return bC.isStarted=!0,pv.ACTIVE;case"gameEnd":case"stageEnd":case"gameFinished":return bC.isStarted=!1,pv.TERMINATED;case"gamePause":return bC.isPaused=!0,pv.PAUSED;case"gameResume":return bC.isPaused=!1,pv.ACTIVE;case"visibilitychange":if(bC.isExternalPaused.browser=null==(t=null==n?void 0:n.find(e=>"hidden"===e.name))?void 0:t.value,bC.isStarted&&bC.isExternalPaused.browser)return pv.INTERRUPTED;break;case"setPause":{const e=null==(i=null==n?void 0:n.find(e=>"isAdTriggered"===e.name))?void 0:i.value;if(bC.isExternalPaused[e?"ad":"external"]=(null==(a=null==n?void 0:n.find(e=>"isPaused"===e.name))?void 0:a.value)||!1,bC.isStarted&&bC.isExternalPaused[e?"ad":"external"])return pv.INTERRUPTED;break}}return bC.isStarted&&Object.values(bC.isExternalPaused).every(e=>!1===e)?bC.isPaused?pv.PAUSED:pv.ACTIVE:o})(e,n);t!==i&&(mv.set({gameplayState:i}),a.log(`[game] gameplay state changed: ${i}`),document.dispatchEvent(new CustomEvent("gameplaystatechange",{detail:{state:i}})),VC("gameplaystatechange",{state:i}))},DC=e=>{var n,t;const i=JC("interstitial",e),a=(null==(t=(n=g.get()).isInterstitialAdAvailable)?void 0:t.call(n,e))??!0,o=i&&a;return S(`isInterstitialAdAvailable('${e}') -> ${o}`),o},xC=async(e,n)=>{var t,i;C(`track(${e}, ${JSON.stringify(n||{})})`),lC("custom_event",{name:e,data:n}),await(null==(i=(t=g.get()).track)?void 0:i.call(t,e,n))},AC=async(e,n)=>{C("showInterstitialAd",e,n),await xC("showInterstitialAd",{eventId:e,placementType:n,isInternal:!0}),await MC("interstitial",e,n)},YC="break:gameplay:internal",_C=(e,n=!1)=>{var t;const i=cC.get(),a=i.types[e],o=a.state===pC;if((a.wasReady||!1)!==o||n){a.wasReady=o,cC.set(i),o&&y(`[${e}] Ad is available.`);const n=p.get(),r=null==(t=null==n?void 0:n.ads)?void 0:t[e];if(!r)return;const{eventIds:s=[]}=r;"interstitial"===e?s.forEach(e=>{setTimeout(()=>{var n,t;null==(t=(n=i.callbacks).onInterstitialAdAvailabilityChange)||t.call(n,e,o)},50)}):"rewarded"===e&&s.forEach(e=>{setTimeout(()=>{var n,t;null==(t=(n=i.callbacks).onRewardedAdAvailabilityChange)||t.call(n,e,o)},50)})}},IC=async(e,n,t)=>{var i;const a=p.get(),o=cC.get();switch(o.types[e].state=n,cC.set(o),y(`[${e}] state changed to '${n}'`),n){case mC:a.ads.isAutoMuting&&(o.types[e].timeoutAutoMuting=setTimeout(()=>{y("auto-mute the game..."),LC(!0,!0)},500)),a.ads.isAutoPausing&&(o.types[e].timeoutAutoPausing=setTimeout(()=>{y("auto-pause the game..."),TC(!0,!0)},500)),cC.set(o);break;case fC:void 0!==t&&(o.types[e].lastCalled=t),cC.set(o),await LS((null==(i=a.ads[e])?void 0:i.timeout)??0),a.ads.isAutoPausing&&(y("auto-resume the game..."),clearTimeout(o.types[e].timeoutAutoPausing),TC(!1,!0)),a.ads.isAutoMuting&&(y("auto-unmute the game..."),clearTimeout(o.types[e].timeoutAutoMuting),LC(!1,!0));break;case dC:PC(e);break;case pC:o.types[e].isLandscape=window.innerWidth>window.innerHeight,cC.set(o)}},PC=async e=>{const n=p.get().ads[e];if(!(null==n?void 0:n.enabled))return;await LS(n.preload??0);cC.get().types[e].state===dC&&await NC(e,async()=>{var n,t;return await(null==(t=(n=g.get()).preloadAd)?void 0:t.call(n,e))??!0})},NC=async(e,n)=>{var t;const i=p.get(),a=cC.get().types[e];if(a&&a.state===dC){IC(e,gC);try{const t=await n(e);if(!1===t)throw new Error("Not preloaded by portal");if(void 0===t)return void IC(e,dC);IC(e,pC)}catch{y(`[${e}] preloading... FAILED`);const n=(null==(t=i.ads[e])?void 0:t.retry)??0,a=n>0?n:2e3;await LS(a),IC(e,dC)}}},MC=async(e,n,t)=>{var i;const{skipAdValidation:a=!1,showInterstitialAd:o,showRewardedAd:r}=g.get(),s=cC.get(),u=s.types[e];if(Object.values(s.types).some(e=>e.state===mC))return y(`[${e}] skipped [Another ad already playing]`),{isRewardGranted:!1};if(!a){if(!FC(n,e))return y(`[${e}] event '${n}' is blocked or not allowed.`),{isRewardGranted:!1};if(u.isLocked)return y(`[${e}] Ad is locked.`),{isRewardGranted:!1};if(u.state!==pC)return y(`[${e}] skipped (state: ${u.state})`),{isRewardGranted:!1};if(!BC(e))return y(`[${e}] skipped (cooldown)`),{isRewardGranted:!1};if(!RC(e))return y(`[${e}] skipped (passive cooldown)`),{isRewardGranted:!1}}const l=vC(n,t),c=Date.now();lC("ad_request",{ad_type:e,ad_event_key:n,ad_placement_type:l});try{IC(e,mC),y(`[${e}] showing ad (event: '${n}', placement: '${l}')`);let a=!1;return"interstitial"===e&&await(null==o?void 0:o(n,t)),"rewarded"===e&&(a=!!(null==(i=await(null==r?void 0:r(n)))?void 0:i.isRewardGranted)),await ZC(e,n,l,a,!0,Date.now()-c)}catch{return await ZC(e,n,l,!1,!1)}};async function ZC(e,n,t,i,a,o){if(a){const i={ad_type:e,ad_event_key:n,ad_placement_type:t};"number"==typeof o&&Number.isFinite(o)&&o>=0&&(i.ad_duration_ms=Math.round(o)),lC("ad_impression",i)}const r={ad_type:e,ad_event_key:n,ad_placement_type:t,ad_result:a?"rewarded"===e&&i?"completed":"closed":"failed"};return"rewarded"===e&&(r.reward_granted=i),a||(r.error_code="show_failed"),lC("ad_result",r),a?await IC(e,fC,Date.now()):await IC(e,fC),setTimeout(()=>{IC(e,dC)},250),{isRewardGranted:i}}const JC=(e,n="")=>{if(g.get().skipAdValidation)return!0;const t=cC.get();return!Object.values(t.types).some(e=>e.state===mC)&&(!!FC(n,e)&&(t.types[e].state===pC&&!0!==t.types[e].isLocked&&(!!BC(e,!0)&&!!RC(e,!0))))},BC=(e,n=!1)=>{const t=cC.get();if("interstitial"!==e)return!0;const i=t.types[e],{lastCalled:a}=i;if(!a)return!0;const o=XC(e);if(!o||o<=0)return!0;const r=o<1e3?1e3*o:o,s=Date.now()-a;return!(s<r)||(n||y(`[${e}] not cooled down yet. Needs ${r-s}ms more.`),!1)},RC=(e,n=!1)=>{var t,i;const a=cC.get(),o=p.get();if("interstitial"!==e)return!0;const r=(null==(i=null==(t=o.ads)?void 0:t.interstitial)?void 0:i.passiveCooldown)||0;if(r<=0)return!0;const{lastCalled:s}=a.types.rewarded;if(!s)return!0;const u=r<1e3?1e3*r:r,l=Date.now()-s;return!(l<u)||(n||y(`[${e}] not passive cooled down yet. Needs ${u-l}ms more.`),!1)},FC=(e,n)=>{var t;if(cC.get().skipValidation[n])return!0;const i=p.get(),a=null==(t=null==i?void 0:i.ads)?void 0:t[n];if(!a)return!1;const{eventIds:o=[]}=a;return o.includes(e)},XC=e=>{var n;if("interstitial"!==e)return 0;const t=p.get(),i=null==(n=null==t?void 0:t.ads)?void 0:n[e];if(!i)return 0;const a=t.ads[e],o=i.cooldown??(null==a?void 0:a.cooldown)??0;return o<1e3?1e3*o:o},HC=e=>{const n=cC.get();return Object.values(n.types).some(e=>e.state===mC)},GC=()=>{let e=window.innerWidth>window.innerHeight,n=0;window.addEventListener("resize",t=>{const i=window.innerWidth>window.innerHeight;clearTimeout(n),n=setTimeout(()=>{if(e!==i){e=i,S("orientation change detected "+(e?"landscape":"portrait"));const n=cC.get();
1Object.entries(n.types).forEach(([n,t])=>{t.isLandscape===e||t.state!==pC&&t.state!==gC||IC(n,dC)})}},500)})},OC=()=>{var e,n,t;if(!((null==(t=null==(n=null==(e=p.get())?void 0:e.ads)?void 0:n.interstitial)?void 0:t.eventIds)||[]).includes(YC))return;nv(".swal2-popup.adbreak-overlay-rounded{border-radius:20px!important;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.swal2-popup.adbreak-overlay-rounded{box-shadow:0 10px 25px #0000002e}.swal2-popup,.swal2-title,.swal2-html-container{font-family:Arial,Helvetica,sans-serif!important}");let i=!1,a=null,o=null;document.addEventListener("gameplaystatechange",e=>{const n=e.detail;(null==n?void 0:n.state)===pv.ACTIVE?o=setInterval(()=>{a=setTimeout(async()=>{if(!i){if(i=!0,mv.get().gameplayState===pv.ACTIVE&&DC(YC)){let e=null;await Mf.fire({html:"An ad will start in <b></b> seconds...",timer:5e3,toast:!0,timerProgressBar:!0,position:"top",showConfirmButton:!1,background:"rgb(255, 255, 255, 0.9)",color:"#00000",didOpen:()=>{Mf.showLoading();const n=Mf.getPopup();if(n){const t=n.querySelector("b");t&&(e=setInterval(()=>{const e=Mf.getTimerLeft();e&&(t.textContent=`${Math.ceil(e/1e3)}`)},100))}},willClose(n){e&&clearInterval(e)},customClass:{popup:"adbreak-overlay-rounded"}}),await LS(500),mv.get().gameplayState===pv.ACTIVE&&await AC(YC,"break")}i=!1}},2e3)},1e3):mv.get().gameplayState!==pv.TERMINATED&&mv.get().gameplayState!==pv.UNKNOWN||(o&&clearInterval(o),a&&clearTimeout(a))})},QC={},KC=async()=>{if(!Boolean(QC.pendingGameFiles||QC.bootPromise))throw new Error("No prepared game is available to boot");return QC.bootPromise||(QC.bootPromise=(async()=>{const e=QC.pendingGameFiles||[];QC.pendingGameFiles=void 0,await fS(e)})()),QC.bootPromise};let jC={};const WC=[],UC=(e,n)=>{if(a.log(`[events] addEventListener('${e}')`),jC[e]||(jC[e]=[]),"function"!=typeof n)throw new Error("[events] callback is not a function");jC[e].push(n);const t=WC.filter(n=>n.event===e);t.length&&a.log(`[events] ${t.length} cached '${e}' events found!`),t.forEach(e=>VC(e.event,e.data,!0));for(let i=WC.length-1;i>=0;i--)WC[i].event===e&&WC.splice(i,1);return()=>zC(e,n)},zC=(e,n)=>{if(a.log(`[events] removeEventListener('${e}')`),!jC[e])return;const t=jC[e].length;jC[e]=jC[e].filter(e=>e!==n);const i=t-jC[e].length;a.log(`[events] Removed ${i} listener(s) for '${e}'`),0===jC[e].length&&delete jC[e]},$C=async(e,n)=>{switch(a.log(`[events] sendEvent('${e}')`,n),n=n||{},e){case"disableAds":return t=(t=n.adType)||"interstitial",a.log(`[ads] disableAds('${t}')`),void IC(t,hC).catch(e=>{a.warn("[ads] disableAds error",e)});case"xsollaSetup":return(e=>"string"==typeof(null==e?void 0:e.uid)&&e.uid.length>0)(n)?(Ey(n.uid),!0):(a.warn("[events] famobi xsollaSetup ignored: missing or invalid 'uid'"),!1);case"micrositeBootGame":return KC();default:a.warn(`[events] Unknown event '${e}'`)}var t;await LS(0)},VC=(e,n,t=!1)=>{if(a.log(`[events] emitEvent('${e}', data, ${t})`),!jC[e])return void(t||(a.warn(`[events] no callbacks for event '${e}' found -> cached!`),WC.push({event:e,data:n})));const i=[...jC[e]];for(const r of i)try{r(n)}catch(o){a.warn(`[events] Error in event listener for '${e}':`,o)}};const qC=async()=>Promise.resolve();Error;const eL=(()=>{const e={};return e})();let nL=!0,tL=!0,iL=null;const aL=["log","info","warn","table","debug"],oL=Object.fromEntries(aL.map(e=>[e,console[e].bind(console)])),rL=Object.fromEntries(aL.map(e=>[e,(...n)=>{nL&&oL[e](...n)}])),sL=(e=!1)=>{if(!tL&&!e)return;const n=console;for(const t of aL)n[t]!==rL[t]&&(n[t]=rL[t])},uL=h({}),lL=async e=>{try{const n=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});if(!n.ok)return;return await n.json()}catch{return}},cL=(e=p.get().auth,n)=>{var t,i,a,o;const r=(null==e?void 0:e.firebase)||(null==n?void 0:n.firebase)?{...null==e?void 0:e.firebase,...null==n?void 0:n.firebase}:void 0,s=(null==e?void 0:e.overlay)||(null==n?void 0:n.overlay)?{...null==e?void 0:e.overlay,...null==n?void 0:n.overlay,...!0===(null==(t=null==n?void 0:n.overlay)?void 0:t.autoShow)&&void 0===(null==(i=null==n?void 0:n.overlay)?void 0:i.mode)?{mode:"loginRequired"}:{}}:void 0;return{...e,...n,firebase:r,providers:{...null==e?void 0:e.providers,...null==n?void 0:n.providers,google:{...null==(a=null==e?void 0:e.providers)?void 0:a.google,...null==(o=null==n?void 0:n.providers)?void 0:o.google}},overlay:s,cloudSave:{...null==e?void 0:e.cloudSave,...null==n?void 0:n.cloudSave}}}
1,hL=e=>{if(!e||"object"!=typeof e||Array.isArray(e))return;const n=Object.entries(e).filter(([e,n])=>!(!e||"__proto__"===e||"constructor"===e||"prototype"===e)&&(null===n||"string"==typeof n||"boolean"==typeof n||"number"==typeof n&&Number.isFinite(n)));return n.length>0?Object.fromEntries(n):void 0},dL=(e,n)=>{const t=hL(null==n?void 0:n.metrics);return t?{...e,metrics:t}:e},gL=e=>{const n=hL(e);if(!n)return;const t=Object.entries(n).reduce((e,[n,t])=>("number"==typeof t&&Number.isFinite(t)&&(e[n]=t),e),{});return Object.keys(t).length>0?t:void 0},pL=async e=>{var n,t;C("gameComplete"),EC("gameEnd",[{name:"reason",value:"complete"}]),lC("game_end",dL({end_reason:"complete"},e),{includeLevel:!0,includeScore:!0,scoreKey:"score_total"});const i=mv.get().level,a={success:!0,level:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_END,a),await(null==(t=(n=g.get()).gameComplete)?void 0:t.call(n,e)),Tb(Rb())&&(Ow(),await $w(!0),!0===Tw().isAnonymous&&Qw())},mL=async(e,n)=>{switch(C("gameEnd",e),e){case"complete":return pL(n);case"quit":return(async e=>{var n,t;C("gameQuit"),EC("gameEnd",[{name:"reason",value:"quit"}]),lC("game_end",dL({end_reason:"quit"},e),{includeLevel:!0,includeScore:!0,scoreKey:"score_total"});const i=mv.get().level,a={level:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_END,a),await(null==(t=(n=g.get()).gameQuit)?void 0:t.call(n,e))})(n);default:return(async e=>{var n,t;C("gameOver"),EC("gameEnd",[{name:"reason",value:"fail"}]),lC("game_end",dL({end_reason:"over"},e),{includeLevel:!0,includeScore:!0,scoreKey:"score_total"});const i=mv.get().level,a={success:!1,level:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_END,a),await(null==(t=(n=g.get()).gameOver)?void 0:t.call(n,e))})(n)}},fL=async e=>mL("complete",e),vL=async e=>mL("fail",e),wL=(e,n="gameInterfaceAssets")=>{try{const t=n.replace(/\/+$/,""),i=e.replace(/^\/+/,"");return t?i?t+"/"+i:t:i}catch{return""}},yL={pauseGameplay:()=>{},resumeGameplay:()=>{},disableAudio:()=>{},enableAudio:()=>{},disableMusic:()=>{},enableMusic:()=>{},changeVolume:()=>{},onOffsetChange:()=>{},restartGame:()=>{}},bL={};let SL=1,CL=0;const LL=async()=>{var e;(null==(e=window.famobi_gameID)?void 0:e.length)&&"{FAMOBI_GAMEID}"!==window.famobi_gameID&&p.set({gameId:window.famobi_gameID});const n=wL("branding-button.png"),t=await lL("famobi.json");window.famobi_tracking={init:e=>{y(`[bridge] famobi_tracking.init('${e}')`)},trackEvent:(e,n)=>{a.log(`[bridge] famobi_tracking.trackEvent('${e}')`,JSON.stringify(n))},EVENTS:I},window.famobi_analytics={trackEvent:async(e,n)=>{var t;y(`[bridge] ${e} (${JSON.stringify(n)})`);let i=0;"string"==typeof(null==n?void 0:n.levelName)&&(i=parseInt(null==(t=null==n?void 0:n.levelName)?void 0:t.replace(/\D/g,""))),i=isNaN(i)?0:i;let a=!1;switch(e){case"EVENT_CUSTOM":"LEVELEND"===(null==n?void 0:n.eventName)||"LEVELEND"===(null==n?void 0:n.event)?"success"===n.result?await fL():await vL():await window.GameInterface.track(e,n||{}).catch(()=>{});break;case"EVENT_LEVELSTART":case"EVENT_LEVELRESTART":await window.GameInterface.gameStart(i);break;case"EVENT_TOTALSCORE":"number"==typeof(null==n?void 0:n.totalScore)&&Number.isInteger(n.totalScore)&&window.GameInterface.sendScore(n.totalScore,{type:"total"});break;case"EVENT_LEVELSCORE":"number"==typeof(null==n?void 0:n.levelScore)&&Number.isInteger(n.levelScore)&&window.GameInterface.sendScore(null==n?void 0:n.levelScore,{type:"level"});break;case"EVENT_LIVESCORE":"number"==typeof(null==n?void 0:n.liveScore)&&Number.isInteger(n.liveScore)&&window.GameInterface.sendScore(null==n?void 0:n.liveScore,{type:"live"});break;case"EVENT_LEVELSUCCESS":a=!0;break;case"EVENT_LEVELFAIL":"quit"===(null==n?void 0:n.reason)?await window.GameInterface.gameQuit():a=!0;break;case"EVENT_VOLUMECHANGE":window.GameInterface.gameMuted(0===(null==n?void 0:n.bgmVolume)&&0===(null==n?void 0:n.sfxVolume),"system");break;case"EVENT_PAUSE":await window.GameInterface.gamePause();break;case"EVENT_RESUME":await window.GameInterface.gameResume()}if(a)return new Promise(e=>{var n;null==(n=window.famobi)||n.showAd(()=>{e()})})},getEvents:async()=>(await qC(),[]),EVENT_CUSTOM:"EVENT_CUSTOM",EVENT_LEVELFAIL:"EVENT_LEVELFAIL",EVENT_LEVELRESTART:"EVENT_LEVELRESTART",EVENT_LEVELSTART:"EVENT_LEVELSTART",EVENT_LEVELSUCCESS:"EVENT_LEVELSUCCESS",EVENT_LIVESCORE:"EVENT_LIVESCORE",EVENT_LEVELSCORE:"EVENT_LEVELSCORE",EVENT_TOTALSCORE:"EVENT_TOTALSCORE",EVENT_TUTORIALCOMPLETED:"EVENT_TUTORIALCOMPLETED",EVENT_TUTORIALSKIPPED:"EVENT_TUTORIALSKIPPED",EVENT_VOLUMECHANGE:"EVENT_VOLUMECHANGE",EVENT_PAUSE:"EVENT_PAUSE",EVENT_RESUME:"EVENT_RESUME",trackScreen:async(e,n)=>{a.log(`[bridge] famobi_tracking.trackScreen('${e}', '${n||"-"}')`),await qC()},trackStats:async(e,n,t)=>{a.log("[bridge] famobi_tracking.trackStats",e,n,t),await qC()},getScreen:()=>"",getPageTitle:()=>"",SCREEN_OTHER:"SCREEN_OTHER",SCREEN_BONUS:"SCREEN_BONUS",SCREEN_CHARACTER:"SCREEN_CHARACTER",SCREEN_CREDITS:"SCREEN_CREDITS",SCREEN_GAMERESULT:"SCREEN_GAMERESULT",SCREEN_HELP:"SCREEN_HELP",SCREEN_HOME:"SCREEN_HOME",SCREEN_LEVEL:"SCREEN_LEVEL",SCREEN_LEVELINTRO:"SCREEN_LEVELINTRO",SCREEN_LEVELLOADING:"SCREEN_LEVELLOADING",SCREEN_LEVELRESULT:"SCREEN_LEVELRESULT",SCREEN_LEVELSELECT:"SCREEN_LEVELSELECT",SCREEN_PAUSE:"SCREEN_PAUSE",SCREEN_SETTINGS:"SCREEN_SETTINGS",SCREEN_SHOP:"SCREEN_SHOP",SCREEN_SPLASH:"SCREEN_SPLASH",SCREEN_TUTORIAL:"SCREEN_TUTORIAL"},window.famobi={setPreloadProgress:e=>{if("number"==typeof e){const n=(e=Math.floor(e))!==CL;CL=e,n&&window.GameInterface.sendPreloadProgress(CL)}},log:(...e)=>{window.GameInterface.log(...e)},gameReady:(e=!1)=>{window.GameInterface.gameReady(e)},playerReady:()=>{window.GameInterface.playerReady()},setVolume:e=>{var n;const t=e!==SL;SL=e,t&&(null==(n=yL.changeVolume)||n.call(yL,SL))},getVolume:()=>SL,hasFeature:e=>{let n=e;switch(e){case"standalone":case"multiplayer_local":return!0;case"external_mute":n="audio";break;case"external_pause":n="pause";break;case"external_focus":n="visibilitychange"}switch(e in bL||(bL[e]=window.GameInterface.hasFeature(n)),e){case"external_mute":case"external_pause":case"external_focus":return!bL[e];default:return bL[e]}},getOrientation:()=>window.innerHeight>window.innerWidth?"portrait":window.innerHeight<window.innerWidth?"landscape":"",onOrientationChange:e=>{window.addEventListener("orientationchange",e)},getCurrentLanguage:()=>window.GameInterface.getCurrentLanguage(),showInterstitialAd:async(e,n)=>{const t=e=>"string"==typeof e,i=e=>"function"==typeof e;"object"==typeof e&&(n=e.callback,e=e.eventId);const a=t(e)?e:t(n)?n:"",o=i(n)?n:i(e)?e:()=>{};await window.GameInterface.showInterstitialAd(a,vC(a)),"function"==typeof o&&o()}
1,hasRewardedAd:e=>window.GameInterface.isRewardedAdAvailable(e||"rewarded:multipass"),rewardedAd:async(e,n)=>{const t=await window.GameInterface.showRewardedAd(n||"rewarded:multipass");"function"==typeof e&&e({rewardGranted:t.isRewardGranted})},getOffsets:()=>window.GameInterface.getOffsets(),onOffsetChange:e=>{yL.onOffsetChange=e,yL.onOffsetChange(window.GameInterface.getOffsets())},showAd:async e=>{await window.GameInterface.showInterstitialAd("interstitial:multipass","browse").then(()=>{"function"==typeof e&&e()})},forceAd:e=>{var n;null==(n=window.famobi)||n.showAd(e,!0)},__:e=>(null==t?void 0:t.game_i18n)?((e,n,t,i)=>{var a,o;if("more_games_image"===e)return(null==(a=window.famobi)?void 0:a.getBrandingButtonImage())||null;if(t=t||(null==(o=window.famobi)?void 0:o.getCurrentLanguage())||"en",i=i||"A-12345",n){if(n[t]&&(n[t]=Object.assign(n[t],n[i+"."+t])),n[t]&&n[t][e]){let i=n[t][e];return"string"==typeof i?(i=i.replace("{lang}",t),i):n[t][e]}if(n.default&&(n.default=Object.assign(n.default,n[i+".default"])),n.default&&n.default[e])return"string"==typeof n.default[e]?n.default[e].replace("{lang}",t):n.default[e]}return null})(e,t.game_i18n):null,getFeatureProperties:()=>({}),ads:{hasCooledDown:()=>BC("interstitial"),isEnabled(){var e;return(null==(e=p.get().ads.interstitial)?void 0:e.enabled)||!1}},adapters:{add:(e,n,t)=>{a.log(`[bridge] famobi.adapters.add('${e}', '${n}', ${typeof t})`)},run:(e,n)=>{a.log(`[bridge] famobi.adapters.run('${e}', '${n}')`)}},onRequest:(e,n)=>{switch(e){case"enableAudio":case"disableAudio":case"enableMusic":case"disableMusic":case"pauseGameplay":case"resumeGameplay":case"restartGame":case"changeVolume":a.log(`[bridge] onRequest('${e}')`),yL[e]=n;break;default:a.warn(`[bridge] onRequest: unknown event '${e}'`)}},localStorage:{setItem:(e,n)=>{window.GameInterface.storage.setItem(e,n)},getItem:e=>window.GameInterface.storage.getItem(e),removeItem:e=>{window.GameInterface.storage.removeItem(e)},clear:()=>{window.GameInterface.storage.clear()}},iap:{getProducts:async()=>window.GameInterface.iap.getProducts(),buyProduct:e=>{window.GameInterface.iap.buyProduct(e)},onEvent:e=>{window.GameInterface.iap.onEvent(e)},consumeProduct:async e=>{var n,t,i;try{await(null==(i=null==(t=null==(n=window.GameInterface)?void 0:n.iap)?void 0:t.consumeProduct)?void 0:i.call(t,e))}catch(o){throw a.warn("[bridge] iap.consumeProduct()",o),o}}},game:{isWaiting:()=>window.GameInterface.isPaused()},config:{aid:"A-GAMEINTERFACE"},getBrandingButtonImage:()=>n,openBrandingLink:()=>{},submitHighscore:(e,n)=>{a.log(`[bridge] submitHighscore('${e}', ${n})`)},levelUp:()=>{},gameOver:()=>{},moreGamesLink:()=>{},getMoreGamesButtonImage:()=>n},window.fenster={offsets:{top:0,right:0,bottom:0,left:0},fnResize:null,get innerHeight(){return window.innerHeight-this.offsets.top-this.offsets.bottom},get innerWidth(){return window.innerWidth-this.offsets.left-this.offsets.right},update(){var e,n;null==(e=this.fnResize)||e.call(this),(null==(n=mS.get().famobi)?void 0:n.applyCanvasOffset)&&setTimeout(()=>{const e=document.getElementsByTagName("canvas")[0];e&&(e.style.marginLeft=this.offsets.left+"px",e.style.marginTop=this.offsets.top+"px")},50)},subscribeToOffsetUpdates(e){this.fnResize=e},set(e,n=0,t=0,i=0){this.offsets.top=("object"==typeof e?e.top:e)||0,this.offsets.right=("object"==typeof e?e.right:n)||0,this.offsets.bottom=("object"==typeof e?e.bottom:t)||0,this.offsets.left=("object"==typeof e?e.left:i)||0,this.update()},get(){return this.offsets}},window.GameInterface.onMuteStateChange((e,n)=>{var t,i,o,r,s,u;a.log(`[bridge] onMuteStateChange(isMuted: ${e}, isAdTriggered: ${n})`),n||(e?(null==(t=window.famobi)||t.setVolume(0),null==(i=yL.disableAudio)||i.call(yL),null==(o=yL.disableMusic)||o.call(yL)):(null==(r=window.famobi)||r.setVolume(1),null==(s=yL.enableAudio)||s.call(yL),null==(u=yL.enableMusic)||u.call(yL)))}),window.GameInterface.onPauseStateChange((e,n)=>{var t,i,o,r;a.log(`[bridge] onPauseStateChange(isPaused: ${e}, isAdTriggered: ${n})`),e?n?(a.log("[bridge] onPauseStateChange -> window.famobi_onPauseRequested?.()"),null==(t=window.famobi_onPauseRequested)||t.call(window)):null==(i=yL.pauseGameplay)||i.call(yL):n?(a.log("[bridge] onPauseStateChange -> window.famobi_onResumeRequested?.()"),null==(o=window.famobi_onResumeRequested)||o.call(window)):null==(r=yL.resumeGameplay)||r.call(yL)}),window.GameInterface.onRestartGame(()=>{var e;a.log("[bridge] onRestartGame -> requestAdapterCallbacks.restartGame?.()"),null==(e=yL.restartGame)||e.call(yL)}),window.GameInterface.onOffsetChange(e=>{var n,t;null==(n=yL.onOffsetChange)||n.call(yL,e),null==(t=window.fenster)||t.set(e)})},TL=h({currentScores:{},bestScores:{},isAutoSaving:!1,key:"scoring"}),EL=e=>{const n={audio:!0,copyright:!0,credits:!0,pause:!0,progress:!0,score:!0,tutorial:!0,version:!0,visibilitychange:!0,iap:!0,home:!0,privacy:!0,standalone:!1};
1return e.features?(Object.keys(n).forEach(t=>{void 0!==e.features[t]&&(n[t]=!!e.features[t])}),n):n},kL=e=>!!["","true","1"].includes(e.toLowerCase()),DL=(e,n)=>{const t=e.get(n);return null!==t&&kL(t)},xL=e=>{const n={};return["audio","copyright","credits","pause","progress","score","tutorial","version","visibilitychange","iap","home","privacy","standalone"].forEach(t=>{const i=e.get(t);null!==i&&(n[t]=kL(i))}),n},AL=(e,n,t,i)=>{const a=e.get(t);if(null!==a)switch(i){case"string":n.set({[t]:a});break;case"boolean":"mock"===t?n.set({shouldMock:kL(a)}):n.set({[t]:kL(a)});break;case"number":n.set({[t]:parseInt(a)})}},YL=()=>g.get().name,_L=async e=>{if(await qC(),"youtubePlayables"===YL()){const n=e.indexOf("playcanvas-stable.min.js");-1!==n&&e.splice(n+1,0,()=>{(()=>{var e,n,t,i,o,r;try{if(void 0!==(null==(t=null==(n=null==(e=null==window?void 0:window.pc)?void 0:e.Asset)?void 0:n.prototype)?void 0:t.getFileUrl)){const e=null==(r=null==(o=null==(i=null==window?void 0:window.pc)?void 0:i.Asset)?void 0:o.prototype)?void 0:r.getFileUrl;e&&(window.pc.Asset.prototype.getFileUrl=function(n){const t=e.call(this,n);if("string"==typeof t)return t.replace(/([?&])t=[^&]+(&|$)/,"$2")})}}catch(s){a.warn(s)}})()})}return e},IL=async({gameFiles:e=[],params:n={},isFamobiLegacy:t=!1,logLabel:i})=>{var o,r;const s=Date.now();C(i),EC("init"),QC.pendingGameFiles=void 0,QC.bootPromise=void 0,gw(),Xv={},Hv=!0,Iv="hidden",Pv=!1,Fv=!1,Wv(),qv(),fv={},await(async e=>{var n,t,i,a,o,r,s;y("init params..."),p.set({dev:e.dev??p.get().dev??!1,gameId:e.gameId||void 0,locale:e.locale||void 0,eventDelay:e.eventDelay||0,features:EL(e),shouldMock:e.mock||!1,analyticsDebug:e.analyticsDebug||!1,userId:void 0,maxLevels:e.maxLevels||void 0,scoreTypes:e.scoreTypes||void 0,version:e.version||void 0}),mv.set({isMuted:e.isMuted||!1});const u=e.loggingEnabled??!1;d.set({loggingEnabled:u}),fb.set({storageKey:(null==(n=e.storage)?void 0:n.storageKey)||void 0,storagePrefix:(null==(t=e.storage)?void 0:t.storagePrefix)||void 0,flushDelay:(null==(i=e.storage)?void 0:i.flushDelay)??0,isLegacyMode:(null==(a=e.storage)?void 0:a.isLegacyMode)??!1,chunkSize:(null==(o=e.storage)?void 0:o.chunkSize)??0,shouldCompress:(null==(r=e.storage)?void 0:r.shouldCompress)??!1,indexedDBName:(null==(s=e.storage)?void 0:s.indexedDBName)||void 0}),TL.set({isAutoSaving:e.isAutoSaving??!1})})(n),await(async()=>{var e,n,t,i,a,o,r,s,u,l,c,h,d,g,m,f,v,w,b,S,C,L,T,E,k,D,x,A,Y;y("Load famobi.json...");const _=await lL("famobi.json");if(_&&"object"==typeof _){const{gameId:y,gameIdOnPortal:I,name:P,ads:N,features:M,maxLevels:Z,scoreTypes:J,analytics:B,auth:R}=p.get(),F=uL.get(),X=_.versionInfo;uL.set({features:{...F.features,..._.features},maxLevels:_.maxLevels,scoreTypes:_.scoreTypes,ads:{interstitial:{eventIds:(null==(n=null==(e=_.ads)?void 0:e.interstitial)?void 0:n.eventIds)||[]},rewarded:{eventIds:(null==(i=null==(t=_.ads)?void 0:t.rewarded)?void 0:i.eventIds)||[]}},iap:{products:(null==(a=_.iap)?void 0:a.products)||[]},analytics:{...B,..._.analytics},auth:cL(R,_.auth)}),p.set({gameId:!y&&_.gameId?_.gameId.toString():void 0,gameIdOnPortal:!I&&_.gameIdOnPortal?_.gameIdOnPortal.toString():void 0,name:!P&&_.name?_.name.toString():void 0,version:(null==X?void 0:X.version)||_.version||void 0,semanticVersion:(null==X?void 0:X.semanticVersion)||_.gameVersion||_.version||void 0,sequentialVersion:"number"==typeof(null==X?void 0:X.sequentialVersion)?X.sequentialVersion:void 0,exportedAt:(null==X?void 0:X.exportedAt)||_.exportedAt,label:(null==X?void 0:X.label)||void 0,ads:{interstitial:{...N.interstitial,...null==(o=_.ads)?void 0:o.interstitial},rewarded:{...N.rewarded,...null==(r=_.ads)?void 0:r.rewarded},banner:{...N.banner,...null==(s=_.ads)?void 0:s.banner},forcePreloadOnOrientationChange:(null==(u=_.ads)?void 0:u.forcePreloadOnOrientationChange)??!0,isAutoMuting:(null==(l=_.ads)?void 0:l.isAutoMuting)??!0,isAutoPausing:(null==(c=_.ads)?void 0:c.isAutoPausing)??!0,hasBackfillAds:(null==(h=_.ads)?void 0:h.hasBackfillAds)??!1},features:{...M,..._.features},maxLevels:Z??_.maxLevels??void 0,scoreTypes:J??_.scoreTypes??void 0,iap:{products:(null==(d=_.iap)?void 0:d.products)||[],xsolla:{projectId:(null==(m=null==(g=_.iap)?void 0:g.xsolla)?void 0:m.projectId)||void 0,isSandbox:(null==(v=null==(f=_.iap)?void 0:f.xsolla)?void 0:v.isSandbox)||!1,endpoint:(null==(b=null==(w=_.iap)?void 0:w.xsolla)?void 0:b.endpoint)||void 0}},auth:cL(R,_.auth),analytics:{...B,..._.analytics},famobiTracking:{enabled:(null==(S=_.famobiTracking)?void 0:S.enabled)||!1,debug:(null==(C=_.famobiTracking)?void 0:C.debug)||!1,version:(null==(L=_.famobiTracking)?void 0:L.version)||"0"},console:{enabled:(null==(T=_.console)?void 0:T.enabled)??!0,enforce:(null==(E=_.console)?void 0:E.enforce)??!0}}),mS.set({microsoftStart:_.microsoftStart,glance:_.glance,arkadium:_.ark
1adium,gameSnacks:_.gameSnacks,upify:_.upify,microsite:_.microsite,famobi:_.famobi,samsung:_.samsung,yandex:_.yandex}),fb.set({flushDelay:null==(k=_.storage)?void 0:k.flushDelay,isLegacyMode:null==(D=_.storage)?void 0:D.isLegacyMode,chunkSize:null==(x=_.storage)?void 0:x.chunkSize,shouldCompress:null==(A=_.storage)?void 0:A.shouldCompress,indexedDBName:null==(Y=_.storage)?void 0:Y.indexedDBName})}else y("A file is missing from the project. This issue might result in unexpected behaviour.")})(),await(async()=>{var e,n,t;const i=g.get().name;if(!["microsoftStart","samsung"].includes(i))return;const a=await lL(`https://remote-config.famobi.com/${i}/latest.json`);switch(i){case"microsoftStart":const i=(null==a?void 0:a.config)||{};mS.set({microsoftStart:{remoteConfig:i}});const o=p.get().gameId||"";if(!(o in i))break;const r=null==(t=null==(n=null==(e=i.games)?void 0:e[o])?void 0:n.ads)?void 0:t.hasBackfillAds;"boolean"==typeof r&&p.set({ads:{hasBackfillAds:r}});break;case"samsung":mS.set({samsung:{remoteConfig:(null==a?void 0:a.config)||{}}})}})(),(()=>{y("init url params...");const e=new URLSearchParams(window.location.search);if(e.has("dev")){const n=DL(e,"dev");p.set({dev:n})}const n=DL(e,"sdkLoggingEnabled"),t=DL(e,"messageLoggingEnabled");d.set({sdkLoggingEnabled:n,messageLoggingEnabled:t}),p.set({features:{...p.get().features,...xL(e)}}),AL(e,p,"gameId","string"),AL(e,p,"locale","string"),AL(e,p,"eventDelay","number"),AL(e,p,"mock","boolean"),AL(e,p,"userId","string"),AL(e,p,"analyticsDebug","boolean"),AL(e,p,"isVerboseLoggingEnabled","boolean"),AL(e,mv,"isMuted","boolean"),AL(e,fb,"storageKey","string"),AL(e,fb,"storagePrefix","string"),AL(e,TL,"isAutoSaving","boolean")})(),((e=500)=>{var n,t;p.get().dev||p.get().isVerboseLoggingEnabled?nL=tL=!0:(nL=!!(null==(n=p.get().console)?void 0:n.enabled),tL=!!(null==(t=p.get().console)?void 0:t.enforce)),sL(),null===iL&&(iL=setInterval(sL,e),window.addEventListener("beforeunload",()=>{iL&&clearInterval(iL)}))})(),Hw();const u=(()=>{var e;if(!p.get().shouldMock)return!1;const n=g.get().name;return p.set({currentMock:n}),null==(e=eL[n])||e.call(eL),!0})();await(async(e=!1)=>{var n,t;if(O.enabled=(null==(n=p.get().famobiTracking)?void 0:n.enabled)??O.enabled,O.isMocked=e,O.debug=(null==(t=p.get().famobiTracking)?void 0:t.debug)??O.debug,O.version=z(),a.log(`${G} initFamobiTracking() - options:`,JSON.stringify(O)),O.enabled)try{await K(),j()}catch(i){a.warn(`${G} Error init:`,i)}else a.warn(`${G} famobiTracking is disabled! init() was skipped.`)})(u),t?await LL():await fS(p.get().files),await(null==(r=(o=g.get()).init)?void 0:r.call(o,e,n,u)),await(async()=>{const e=cC.get(),n=p.get();Object.entries(e.types).forEach(([t])=>{var i,a,o;const r=t;if(null==(i=n.ads[r])?void 0:i.enabled){if("interstitial"===r){let t=(null==(a=n.ads[r])?void 0:a.initialCooldown)||(null==(o=n.ads[r])?void 0:o.cooldown)||0;t=t<1e3?1e3*t:t,t>0&&(e.types[r].lastCalled=Date.now()-XC(r)+t,cC.set(e))}setInterval(()=>{_C(r)},250),IC(r,dC)}}),n.ads.forcePreloadOnOrientationChange&&GC(),OC()})(),await gS(),await(async(e=0)=>{jS()?(nC(),QS||(QS=!0,lC("sdk_init",{files_count:e}))):y("Analytics disabled via famobi.json.")})(e.length),await(async()=>{y("init gameState..."),mv.set({userMutePref:mv.get().isMuted}),document.addEventListener("visibilitychange",()=>{kC("visibilitychange",[{name:"hidden",value:document.hidden}])})})();const l=await _L(e);return y(`${i} preparation completed (`,Date.now()-s,"ms )"),l},PL={},NL=e=>{var n,t,i;if(e in PL)return PL[e];C("hasFeature",e);const{ads:a,features:o}=p.get();return g.get().hasFeature?PL[e]=(null==(t=(n=g.get()).hasFeature)?void 0:t.call(n,e))||!1:PL[e]="rewarded"===e?!!(null==(i=a.rewarded)?void 0:i.enabled):!!o[e]},ML=()=>{var e,n;C("playerReady"),EC("playerReady"),null===kS?(DS||(["mousemove","keydown","click","touchstart"].forEach(e=>{window.addEventListener(e,()=>{ES=Date.now()})}),DS=!0),a.log("[intern] Start playtime tracking..."),kS=setInterval(()=>{const e="visible"===document.visibilityState,n=Date.now()-ES<1e4;!HC()&&!xS&&e&&n&&(TS+=500)},500)):a.log("[intern] Playtime tracking already started!"),lC("player_ready"),mv.set({playerReadyAt:Date.now()}),null==(n=(e=g.get()).playerReady)||n.call(e)},ZL=(e,n=6)=>e.length>n?`'${e.slice(0,n)}...'`:`'${e}'`,JL=e=>{if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(JL);const n=e,t={};
1return Object.keys(n).forEach(e=>{const i=n[e];"function"!=typeof i&&(t[e]=JL(i))}),t},BL=new WeakMap,RL=async(e,n)=>{switch(C("stageEnd",e),e){case"complete":return(async e=>{var n,t;C("stageComplete"),EC("stageEnd",[{name:"reason",value:"complete"}]),lC("stage_end",dL({end_reason:"complete"},e),{includeLevel:!0,includeStage:!0});const i=mv.get().stage,a={stage:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_UPDATE,a),await(null==(t=(n=g.get()).stageComplete)?void 0:t.call(n,e))})(n);case"quit":return(async e=>{var n,t;C("stageQuit"),EC("stageEnd",[{name:"reason",value:"quit"}]),lC("stage_end",dL({end_reason:"quit"},e),{includeLevel:!0,includeStage:!0}),await(null==(t=(n=g.get()).stageQuit)?void 0:t.call(n,e))})(n);default:return(async e=>{var n,t;C("stageOver"),EC("stageEnd",[{name:"reason",value:"fail"}]),lC("stage_end",dL({end_reason:"over"},e),{includeLevel:!0,includeStage:!0}),await(null==(t=(n=g.get()).stageOver)?void 0:t.call(n,e))})(n)}};var FL=["\0","�","�","�","�","�","�","�","\b","\t","\n","\v","\f","\r","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�"," ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~","�",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null," ","!","C/","PS","$?","Y=","|","SS",'"',"(c)","a","<<","!",null,"(r)","-","deg","+-","2","3","'","u","P","*",",","1","o",">>","1/4","1/2","3/4","?","A","A","A","A","A","A","AE","C","E","E","E","E","I","I","I","I","D","N","O","O","O","O","O","x","O","U","U","U","U","U","Th","ss","a","a","a","a","a","a","ae","c","e","e","e","e","i","i","i","i","d","n","o","o","o","o","o","/","o","u","u","u","u","y","th","y"],XL=["a","a","a","a","a","a","a","a","A","A","A","A","A","A","A","A","e","e","e","e","e","e",null,null,"E","E","E","E","E","E",null,null,"e","e","e","e","e","e","e","e","E","E","E","E","E","E","E","E","i","i","i","i","i","i","i","i","I","I","I","I","I","I","I","I","o","o","o","o","o","o",null,null,"O","O","O","O","O","O",null,null,"u","u","u","u","u","u","u","u",null,"U",null,"U",null,"U",null,"U","o","o","o","o","o","o","o","o","O","O","O","O","O","O","O","O","a","a","e","e","e","e","i","i","o","o","u","u","o","o",null,null,"a","a","a","a","a","a","a","a","A","A","A","A","A","A","A","A","e","e","e","e","e","e","e","e","E","E","E","E","E","E","E","E","o","o","o","o","o","o","o","o","O","O","O","O","O","O","O","O","a","a","a","a","a",null,"a","a","A","A","A","A","A","'","i","'","~",'"~',"e","e","e",null,"e","e","E","E","E","E","E","'`","''","'~","i","i","i","i",null,null,"i","i","I","I","I","I",null,"`'","`'","`~","u","u","u","u","R","R","u","u","U","U","U","U","R",'"`',"\"'","`",null,null,"o","o","o",null,"o","o","O","O","O","O","O","'","`"],HL=[" "," "," "," "," "," "," "," "," "," "," "," ",null,null,null,null,"-","-","-","-","--","--","||","_","'","'",",","'",'"','"',",,",'"',"+","++","*","*>",".","..","...",".","\n","\n\n",null,null,null,null,null," ","%0","%00","'","''","'''","`","``","```","^","<",">","*","!!","!?","-","_","-","^","***","--","/","-[","]-",null,"?!","!?","7","PP","(]","[)",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"0",null,null,null,"4","5","6","7","8","9","+","-","=","(",")","n","0","1","2","3","4","5","6","7","8","9","+","-","=","(",")",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ECU","CL","Cr","FF","L","mil","N","Pts","Rs","W","NS","D","EU","K","T","Dr"],GL=["g","gg","n","d","dd","r","m","b","bb","s","ss","","j","jj","c","k","t","p","h"],OL=["a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i"],QL=["","g","gg","gs","n","nj","nh","d","l","lg","lm","lb","ls","lt","lp","lh","m","b","bs","s","ss","ng","j","c","k","t","p","h"],KL=[];KL[0]=FL,KL[1]=["A","a","A","a","A","a","C","c","C","c","C","c","C","c","D","d","D","d","E","e","E","e","E","e","E","e","E","e","G","g","G","g","G","g","G","g","H","h","H","h","I","i","I","i","I","i","I","i","I","i","IJ","ij","J","j","K","k","k","L","l","L","l","L","l","L","l","L","l","N","n","N","n","N","n","'n","NG","ng","O","o","O","o","O","o","OE","oe","R","r","R","r","R","r","S","s","S","s","S","s","S","s","T","t","T","t","T","t","U","u","U","u","U","u","U","u","U","u","U","u","W","w","Y","y","Y","Z","z","Z","z","Z","z","s","b","B","B","b","6","6","O","C","c","D","D","D","d","d","3","@","E","F","f","G","G","hv","I","I","K","k","l","l","W","N","n","O","O","o","OI","oi","P","p","YR","2","2","SH","sh","t","T","t","T","U","u","Y","V","Y","y","Z","z","ZH","ZH","zh","zh","2","5","5","ts","w","|","||","|=","!","DZ","Dz","dz","LJ","Lj","lj","NJ","Nj","nj","A","a","I","i","O","o","U","u","U","u","U","u","U","u","U","u","@","A","a","A","a","AE","ae","G","g","G","g","K","k","O","o","O","o","ZH","zh","j","DZ","D","dz","G","g","HV","W","N","n","A","a","AE","ae","O","o"],KL[2]=["A","a","A","a","E","e","E","e","I","i","I","i","O","o","O","o","R","r","R","r","U","u","U","u","S","s","T","t","Y","y","H","h","N","d","OU","ou","Z","z","A","a","E","e","O","o","O","o","O","o","O","o","Y","y","l","n","t","j","db","qp","A","C","c","L","T","s","z","?","?","B","U","V","E","e","J","j","Q","q","R","r","Y","y","a","a","a","b","o","c","d","d","e","@","@","e","e","e","e","j","g","g","g","g","u","Y","h","h","i","i","I","l","l","l","lZ","W","W","m","n","n","n","o","OE","O","F","R","R","R","R","r","r","R","R","R","s","S","j","S","S","t","t","U","U","v","^","W","Y","Y","z","z","Z","Z","?","?","?","C","@","B","E","G","H","j","k","L","q","?","?","dz","dZ","dz","ts","tS","tC","fN","ls","lz","WW","]]","h","h","k","h","j","r","r","r","r","w","y","'",'"',"`","'","`","`","'","?","?","<",">","^","V","^","V","'","-","/","\\",",","_","\\","/",":",".","`","'","^","V","+","-","V",".","@",",","~",'"',"R","X","G","l","s","x","?",null,null,null,null,null,null,null,"V","=",'"'],KL[3]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'",",",null,null,null,null,null,null,null,null,"?",null,null,null,null,null,null,null,"A",";","E","I","I",null,"O",null,"U","O","I","A","V","G","D","E","Z","I","Th","I","K","L","M","N","X","O","P","R",null,"S","T","Y","F","H","Ps","O","I","Y","a","e","i","i","y","a","v","g","d","e","z","i","th","i","k","l","m","n","x","o","p","r","s","s","t","y","f","h","ps","o","i","y","o","y","o",null,"b","th","U","U","U","ph","p","&",null,null,"St","st","W","w","Q","q","Sp","sp","Sh","sh","F","f","Kh","kh","H","h","G","g","CH","ch","Ti","ti","k","r","c","j"],KL[4]=["Jo","Yo","Dj","Gj","Ie","Dz","I","Yi","J","Lj","Nj","Tsh","Kj","I","U","Dzh","A","B","V","G","D","E","Zh","Z","I","Y","K","L","M","N","O","P","R","S","T","U","F","H","C","Ch","Sh","Shch",null,"Y",null,"E","Yu","Ya","a","b","v","g","d","e","zh","z","i","y","k","l","m","n","o","p","r","s","t","u","f","h","c","ch","sh","shch",null,"y",null,"e","yu","ya","je","yo","dj","gj","ie","dz","i","yi","j","lj","nj","tsh","kj","i","u","dzh","O","o","E","e","Ie","ie","E","e","Ie","ie","O","o","Io","io","Ks","ks","Ps","ps","F","f","Y","y","Y","y","u","u","O","o","O","o","Ot","ot","Q","q","*1000*",null,null,null,null,null,"*100.000*","*1.000.000*",null,null,'"','"',"R'","r'","G'","g'","G'","g'","G'","g'","Zh'","zh'","Z'","z'","K'","k'","K'","k'","K'","k'","K'","k'","N'","n'","Ng","ng","P'","p'","Kh","kh","S'","s'","T'","t'","U","u","U'","u'","Kh'","kh'","Tts","tts","Ch'","ch'","Ch'","ch'","H","h","Ch","ch","Ch'","ch'","`","Zh","zh","K'","k'",null,null,"N'","n'",null,null,"Ch","ch",null,null,null,"a","a","A","a","Ae","ae","Ie","ie","@","@","@","@","Zh","zh","Z","z","Dz","dz","I","i","I","i","O","o","O","o","O","o","E","e","U","u","U","u","U","u","Ch","ch",null,null,"Y","y"],KL[5]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"A","B","G","D","E","Z","E","E","T`","Zh","I","L","Kh","Ts","K","H","Dz","Gh","Ch","M","Y","N","Sh","O","Ch`","P","J","Rh","S","V","T","R","Ts`","W","P`","K`","O","F",null,null,"<","'","/","!",",","?",".",null,"a","b","g","d","e","z","e","e","t`","zh","i","l","kh","ts","k","h","dz","gh","ch","m","y","n","sh","o","ch`","p","j","rh","s","v","t","r","ts`","w","p`","k`","o","f","ew",null,".","-",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"@","e","a","o","i","e","e","a","a","o",null,"u","'",null,null,null,null,null,null,":",null,null,null,null,null,null,null,null,null,null,null,null,null,"b","g","d","h","v","z","kh","t","y","k","k","l","m","m","n","n","s","`","p","p","ts","ts","q","r","sh","t",null,null,null,null,null,"V","oy","i","'",'"'],KL[6]=[null,null,null,null,null,null,null,null,null,null,null,null,",",null,null,null,null,null,null,null,null,null,null,null,null,null,null,";",null,null,null,"?",null,null,"a","'","w'",null,"y'",null,"b","@","t","th","j","H","kh","d","dh","r","z","s","sh","S","D","T","Z","aa","G",null,null,null,null,null,null,"f","q","k","l","m","n","h","w","~","y","an","un","in","a","u","i","W",null,null,"'","'",null,null,null,null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","%",".",",","*",null,null,null,"'","'","'",null,"'","'w","'u","'y","tt","tth","b","t","T","p","th","bh","'h","H","ny","dy","H","ch","cch","dd","D","D","Dt","dh","ddh","d","D","D","rr","R","R","R","R","R","R","j","R","S","S","S","S","S","T","GH","F","F","F","v","f","ph","Q","Q","kh","k","K","K","ng","K","g","G","N","G","G","G","L","L","L","L","N","N","N","N","N","h","Ch","hy","h","H","@","W","oe","oe","u","yu","yu","W","v","y","Y","Y","W",null,null,"y","y'",".","ae",null,null,null,null,null,null,null,"@","#",null,null,null,null,null,null,null,null,null,null,"^",null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","Sh","D","Gh","&","+m"],KL[7]=["//","/",",","!","!","-",",",",",";","?","~","{","}","*",null,null,"'",null,"b","g","g","d","d","h","w","z","H","t","t","y","yh","k","l","m","n","s","s","`","p","p","S","q","r","sh","t",null,null,null,"a","a","a","A","A","A","e","e","e","E","i","i","u","u","u","o",null,"`","'",null,null,"X","Q","@","@","|","+",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"h","sh","n","r","b","L","k","'","v","m","f","dh","th","l","g","ny","s","d","z","t","y","p","j","ch","tt","hh","kh","th","z","sh","s","d","t","z","`","gh","q","w","a","aa","i","ee","u","oo","e","ey","o","oa"],KL[9]=[null,"N","N","H",null,"a","aa","i","ii","u","uu","R","L","eN","e","e","ai","oN","o","o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","nnn","p","ph","b","bh","m","y","r","rr","l","l","lll","v","sh","ss","s","h",null,null,"'","'","aa","i","ii","u","uu","R","RR","eN","e","e","ai","oN","o","o","au",null,null,null,"AUM","'","'","`","'",null,null,null,"q","khh","ghh","z","dddh","rh","f","yy","RR","LL","L","LL"," / "," // ","0","1","2","3","4","5","6","7","8","9",".",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","N","H",null,"a","aa","i","ii","u","uu","R","RR",null,null,"e","ai",null,null,"o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r",null,"l",null,null,null,"sh","ss","s","h",null,null,"'",null,"aa","i","ii","u","uu","R","RR",null,null,"e","ai",null,null,"o","au",null,null,null,null,null,null,null,null,null,null,"+",null,null,null,null,"rr","rh",null,"yy","RR","LL","L","LL",null,null,"0","1","2","3","4","5","6","7","8","9","r'","r`","Rs","Rs","1/","2/","3/","4/"," 1 - 1/","/16"],KL[10]=[null,null,"N",null,null,"a","aa","i","ii","u","uu",null,null,null,null,"ee","ai",null,null,"oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bb","m","y","r",null,"l","ll",null,"v","sh",null,"s","h",null,null,"'",null,"aa","i","ii","u","uu",null,null,null,null,"ee","ai",null,null,"oo","au",null,null,null,null,null,null,null,null,null,null,null,null,"khh","ghh","z","rr",null,"f",null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","N","H",null,null,"G.E.O.",null,null,null,null,null,null,null,null,null,null,null,null,"N","N","H",null,"a","aa","i","ii","u","uu","R",null,"eN",null,"e","ai","oN",null,"o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","ya","r",null,"l","ll",null,"v","sh","ss","s","h",null,null,"'","'","aa","i","ii","u","uu","R","RR","eN",null,"e","ai","oN",null,"o","au",null,null,null,"AUM",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"RR",null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9"],KL[11]=[null,"N","N","H",null,"a","aa","i","ii","u","uu","R","L",null,null,"e","ai",null,null,"o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r",null,"l","ll",null,null,"sh","ss","s","h",null,null,"'","'","aa","i","ii","u","uu","R",null,null,null,"e","ai",null,null,"o","au",null,null,null,null,null,null,null,null,null,"+","+",null,null,null,null,"rr","rh",null,"yy","RR","LL",null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","H",null,"a","aa","i","ii","u","uu",null,null,null,"e","ee","ai",null,"o","oo","au","k",null,null,null,"ng","c",null,"j",null,"ny","tt",null,null,null,"nn","t",null,null,null,"n","nnn","p",null,null,null,"m","y","r","rr","l","ll","lll","v",null,"ss","s","h",null,null,null,null,"aa","i","ii","u","uu",null,null,null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,null,null,"+",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","+10+","+100+","+1000+"],KL[12]=[null,"N","N","H",null,"a","aa","i","ii","u","uu","R","L",null,"e","ee","ai",null,"o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r","rr","l","ll",null,"v","sh","ss","s","h",null,null,null,null,"aa","i","ii","u","uu","R","RR",null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,"+","+",null,null,null,null,null,null,null,null,null,"RR","LL",null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","H",null,"a","aa","i","ii","u","uu","R","L",null,"e","ee","ai",null,"o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r","rr","l","ll",null,"v","sh","ss","s","h",null,null,null,null,"aa","i","ii","u","uu","R","RR",null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,"+","+",null,null,null,null,null,null,null,"lll",null,"RR","LL",null,null,null,null,"0","1","2","3",
1"4","5","6","7","8","9"],KL[13]=[null,null,"N","H",null,"a","aa","i","ii","u","uu","R","L",null,"e","ee","ai",null,"o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r","rr","l","ll","lll","v","sh","ss","s","h",null,null,null,null,"aa","i","ii","u","uu","R",null,null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,null,null,"+",null,null,null,null,null,null,null,null,"RR","LL",null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","H",null,"a","aa","ae","aae","i","ii","u","uu","R","RR","L","LL","e","ee","ai","o","oo","au",null,null,null,"k","kh","g","gh","ng","nng","c","ch","j","jh","ny","jny","nyj","tt","tth","dd","ddh","nn","nndd","t","th","d","dh","n",null,"nd","p","ph","b","bh","m","mb","y","r",null,"l",null,null,"v","sh","ss","s","h","ll","f",null,null,null,null,null,null,null,null,"aa","ae","aae","i","ii","u",null,"uu",null,"R","e","ee","ai","o","oo","au","L",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"RR","LL"," . "],KL[14]=[null,"k","kh","kh","kh","kh","kh","ng","cch","ch","ch","ch","ch","y","d","t","th","th","th","n","d","t","th","th","th","n","b","p","ph","f","ph","f","ph","m","y","r","R","l","L","w","s","s","s","h","l","`","h","~","a","a","aa","am","i","ii","ue","uue","u","uu","'",null,null,null,null,"Bh.","e","ae","o","ai","ai","ao","+",null,null,null,null,null,null,"M",null," * ","0","1","2","3","4","5","6","7","8","9"," // "," /// ",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"k","kh",null,"kh",null,null,"ng","ch",null,"s",null,null,"ny",null,null,null,null,null,null,"d","h","th","th",null,"n","b","p","ph","f","ph","f",null,"m","y","r",null,"l",null,"w",null,null,"s","h",null,"`",null,"~","a",null,"aa","am","i","ii","y","yy","u","uu",null,"o","l","ny",null,null,"e","ei","o","ay","ai",null,"+",null,null,null,null,null,null,"M",null,null,"0","1","2","3","4","5","6","7","8","9",null,null,"hn","hm"],KL[15]=["AUM",null,null,null,null,null,null,null," // "," * ",null,"-"," / "," / "," // "," -/ "," +/ "," X/ "," /XX/ "," /X/ ",",",null,null,null,null,null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9",".5","1.5","2.5","3.5","4.5","5.5","6.5","7.5","8.5","-.5","+","*","^","_",null,"~",null,"]","[[","]]",null,null,"k","kh","g","gh","ng","c","ch","j",null,"ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","ts","tsh","dz","dzh","w","zh","z","'","y","r","l","sh","ssh","s","h","a","kss","r",null,null,null,null,null,null,"aa","i","ii","u","uu","R","RR","L","LL","e","ee","o","oo","M","H","i","ii",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"k","kh","g","gh","ng","c","ch","j",null,"ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","ts","tsh","dz","dzh","w","zh","z","'","y","r","l","sh","ss","s","h","a","kss","w","y","r",null,"X"," :X: "," /O/ "," /o/ "," \\o\\ "," (O) "],KL[16]=["k","kh","g","gh","ng","c","ch","j","jh","ny","nny","tt","tth","dd","ddh","nn","tt","th","d","dh","n","p","ph","b","bh","m","y","r","l","w","s","h","ll","a",null,"i","ii","u","uu","e",null,"o","au",null,"aa","i","ii","u","uu","e","ai",null,null,null,"N","'",":",null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9"," / "," // ","n*","r*","l*","e*","sh","ss","R","RR","L","LL","R","RR","L","LL",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"A","B","G","D","E","V","Z","T`","I","K","L","M","N","O","P","Zh","R","S","T","U","P`","K`","G'","Q","Sh","Ch`","C`","Z'","C","Ch","X","J","H","E","Y","W","Xh","OE",null,null,null,null,null,null,null,null,null,null,"a","b","g","d","e","v","z","t`","i","k","l","m","n","o","p","zh","r","s","t","u","p`","k`","g'","q","sh","ch`","c`","z'","c","ch","x","j","h","e","y","w","xh","oe","f",null,null,null,null," // "],KL[17]=["g","gg","n","d","dd","r","m","b","bb","s","ss",null,"j","jj","c","k","t","p","h","ng","nn","nd","nb","dg","rn","rr","rh","rN","mb","mN","bg","bn",null,"bs","b
1sg","bst","bsb","bss","bsj","bj","bc","bt","bp","bN","bbN","sg","sn","sd","sr","sm","sb","sbg","sss","s","sj","sc","sk","st","sp","sh",null,null,null,null,"Z","g","d","m","b","s","Z",null,"j","c","t","p","N","j",null,null,null,null,"ck","ch",null,null,"pb","pN","hh","Q",null,null,null,null,null,null,null,"a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i","a-o","a-u","ya-o","ya-yo","eo-o","eo-u","eo-eu","yeo-o","yeo-u","o-eo","o-e","o-ye","o-o","o-u","yo-ya","yo-yae","yo-yeo","yo-o","yo-i","u-a","u-ae","u-eo-eu","u-ye","u-u","yu-a","yu-eo","yu-e","yu-yeo","yu-ye","yu-u","yu-i","eu-u","eu-eu","yi-u","i-a","i-ya","i-o","i-u","i-eu","i-U","U","U-eo","U-u","U-i","UU",null,null,null,null,null,"g","gg","gs","n","nj","nh","d","l","lg","lm","lb","ls","lt","lp","lh","m","b","bs","s","ss","ng","j","c","k","t","p","h","gl","gsg","ng","nd","ns","nZ","nt","dg","tl","lgs","ln","ld","lth","ll","lmg","lms","lbs","lbh","rNp","lss","lZ","lk","lQ","mg","ml","mb","ms","mss","mZ","mc","mh","mN","bl","bp","ph","pN","sg","sd","sl","sb","Z","g","ss",null,"kh","N","Ns","NZ","pb","pN","hn","hl","hm","hb","Q"],KL[18]=["ha","hu","hi","haa","hee","he","ho",null,"la","lu","li","laa","lee","le","lo","lwa","hha","hhu","hhi","hhaa","hhee","hhe","hho","hhwa","ma","mu","mi","maa","mee","me","mo","mwa","sza","szu","szi","szaa","szee","sze","szo","szwa","ra","ru","ri","raa","ree","re","ro","rwa","sa","su","si","saa","see","se","so","swa","sha","shu","shi","shaa","shee","she","sho","shwa","qa","qu","qi","qaa","qee","qe","qo",null,"qwa",null,"qwi","qwaa","qwee","qwe",null,null,"qha","qhu","qhi","qhaa","qhee","qhe","qho",null,"qhwa",null,"qhwi","qhwaa","qhwee","qhwe",null,null,"ba","bu","bi","baa","bee","be","bo","bwa","va","vu","vi","vaa","vee","ve","vo","vwa","ta","tu","ti","taa","tee","te","to","twa","ca","cu","ci","caa","cee","ce","co","cwa","xa","xu","xi","xaa","xee","xe","xo",null,"xwa",null,"xwi","xwaa","xwee","xwe",null,null,"na","nu","ni","naa","nee","ne","no","nwa","nya","nyu","nyi","nyaa","nyee","nye","nyo","nywa","'a","'u",null,"'aa","'ee","'e","'o","'wa","ka","ku","ki","kaa","kee","ke","ko",null,"kwa",null,"kwi","kwaa","kwee","kwe",null,null,"kxa","kxu","kxi","kxaa","kxee","kxe","kxo",null,"kxwa",null,"kxwi","kxwaa","kxwee","kxwe",null,null,"wa","wu","wi","waa","wee","we","wo",null,"`a","`u","`i","`aa","`ee","`e","`o",null,"za","zu","zi","zaa","zee","ze","zo","zwa","zha","zhu","zhi","zhaa","zhee","zhe","zho","zhwa","ya","yu","yi","yaa","yee","ye","yo",null,"da","du","di","daa","dee","de","do","dwa","dda","ddu","ddi","ddaa","ddee","dde","ddo","ddwa"],KL[19]=["ja","ju","ji","jaa","jee","je","jo","jwa","ga","gu","gi","gaa","gee","ge","go",null,"gwa",null,"gwi","gwaa","gwee","gwe",null,null,"gga","ggu","ggi","ggaa","ggee","gge","ggo",null,"tha","thu","thi","thaa","thee","the","tho","thwa","cha","chu","chi","chaa","chee","che","cho","chwa","pha","phu","phi","phaa","phee","phe","pho","phwa","tsa","tsu","tsi","tsaa","tsee","tse","tso","tswa","tza","tzu","tzi","tzaa","tzee","tze","tzo",null,"fa","fu","fi","faa","fee","fe","fo","fwa","pa","pu","pi","paa","pee","pe","po","pwa","rya","mya","fya",null,null,null,null,null,null," ",".",",",";",":",":: ","?","//","1","2","3","4","5","6","7","8","9","10+","20+","30+","40+","50+","60+","70+","80+","90+","100+","10,000+",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"a","e","i","o","u","v","ga","ka","ge","gi","go","gu","gv","ha","he","hi","ho","hu","hv","la","le","li","lo","lu","lv","ma","me","mi","mo","mu","na","hna","nah","ne","ni","no","nu","nv","qua","que","qui","quo","quu","quv","sa","s","se","si","so","su","sv","da","ta","de","te","di","ti","do","du","dv","dla","tla","tle","tli","tlo","tlu","tlv","tsa","tse","tsi","tso","tsu","tsv","wa","we","wi","wo","wu","wv","ya","ye","yi","yo","yu","yv"],KL[20]=[null,"ai","aai","i","ii","u","uu","oo","ee","i","a","aa","we","we","wi","wi","wii","wii","wo","wo","woo","woo","woo","wa","wa","waa","waa","waa","ai","w","'","t","k","sh","s","n","w","n",null,"w","c","?","l","en","in","on","an","pai","paai","pi","pii","pu","puu","poo","hee","hi","pa","paa","pwe","pwe","pwi","pwi","pwii","pwii","pwo","pwo","pwoo","pwoo","pwa","pwa","pwaa","pwaa","pwaa","p","p","h","tai","taai","ti","tii","tu","tuu","too","dee","di","ta","taa","twe","t
1we","twi","twi","twii","twii","two","two","twoo","twoo","twa","twa","twaa","twaa","twaa","t","tte","tti","tto","tta","kai","kaai","ki","kii","ku","kuu","koo","ka","kaa","kwe","kwe","kwi","kwi","kwii","kwii","kwo","kwo","kwoo","kwoo","kwa","kwa","kwaa","kwaa","kwaa","k","kw","keh","kih","koh","kah","gai","caai","gi","gii","gu","guu","coo","ga","gaa","cwe","cwe","cwi","cwi","cwii","cwii","cwo","cwo","cwoo","cwoo","cwa","cwa","cwaa","cwaa","cwaa","g","th","mai","maai","mi","mii","mu","muu","moo","ma","maa","mwe","mwe","mwi","mwi","mwii","mwii","mwo","mwo","mwoo","mwoo","mwa","mwa","mwaa","mwaa","mwaa","m","m","mh","m","m","nai","naai","ni","nii","nu","nuu","noo","na","naa","nwe","nwe","nwa","nwa","nwaa","nwaa","nwaa","n","ng","nh","lai","laai","li","lii","lu","luu","loo","la","laa","lwe","lwe","lwi","lwi","lwii","lwii","lwo","lwo","lwoo","lwoo","lwa","lwa","lwaa","lwaa","l","l","l","sai","saai","si","sii","su","suu","soo","sa","saa","swe","swe","swi","swi","swii","swii","swo","swo","swoo","swoo"],KL[21]=["swa","swa","swaa","swaa","swaa","s","s","sw","s","sk","skw","sW","spwa","stwa","skwa","scwa","she","shi","shii","sho","shoo","sha","shaa","shwe","shwe","shwi","shwi","shwii","shwii","shwo","shwo","shwoo","shwoo","shwa","shwa","shwaa","shwaa","sh","jai","yaai","ji","jii","ju","juu","yoo","ja","jaa","ywe","ywe","ywi","ywi","ywii","ywii","ywo","ywo","ywoo","ywoo","ywa","ywa","ywaa","ywaa","ywaa","j","y","y","yi","re","rai","le","raai","ri","rii","ru","ruu","lo","ra","raa","la","rwaa","rwaa","r","r","r","vai","faai","vi","vii","vu","vuu","va","vaa","fwaa","fwaa","v","the","the","thi","thi","thii","thii","tho","thoo","tha","thaa","thwaa","thwaa","th","tthe","tthi","ttho","ttha","tth","tye","tyi","tyo","tya","he","hi","hii","ho","hoo","ha","haa","h","h","hk","qaai","qi","qii","qu","quu","qa","qaa","q","tlhe","tlhi","tlho","tlha","re","ri","ro","ra","ngaai","ngi","ngii","ngu","nguu","nga","ngaa","ng","nng","she","shi","sho","sha","the","thi","tho","tha","th","lhi","lhii","lho","lhoo","lha","lhaa","lh","the","thi","thii","tho","thoo","tha","thaa","th","b","e","i","o","a","we","wi","wo","wa","ne","ni","no","na","ke","ki","ko","ka","he","hi","ho","ha","ghu","gho","ghe","ghee","ghi","gha","ru","ro","re","ree","ri","ra","wu","wo","we","wee","wi","wa","hwu","hwo","hwe","hwee","hwi","hwa","thu","tho","the","thee","thi","tha","ttu","tto","tte","ttee","tti","tta","pu","po","pe","pee","pi","pa","p","gu","go","ge","gee","gi","ga","khu","kho","khe","khee","khi","kha","kku","kko","kke","kkee","kki"],KL[22]=["kka","kk","nu","no","ne","nee","ni","na","mu","mo","me","mee","mi","ma","yu","yo","ye","yee","yi","ya","ju","ju","jo","je","jee","ji","ji","ja","jju","jjo","jje","jjee","jji","jja","lu","lo","le","lee","li","la","dlu","dlo","dle","dlee","dli","dla","lhu","lho","lhe","lhee","lhi","lha","tlhu","tlho","tlhe","tlhee","tlhi","tlha","tlu","tlo","tle","tlee","tli","tla","zu","zo","ze","zee","zi","za","z","z","dzu","dzo","dze","dzee","dzi","dza","su","so","se","see","si","sa","shu","sho","she","shee","shi","sha","sh","tsu","tso","tse","tsee","tsi","tsa","chu","cho","che","chee","chi","cha","ttsu","ttso","ttse","ttsee","ttsi","ttsa","X",".","qai","ngai","nngi","nngii","nngo","nngoo","nnga","nngaa",null,null,null,null,null,null,null,null,null," ","b","l","f","s","n","h","d","t","c","q","m","g","ng","z","r","a","o","u","e","i","ch","th","ph","p","x","p","<",">",null,null,null,"f","v","u","yr","y","w","th","th","a","o","ac","ae","o","o","o","oe","on","r","k","c","k","g","ng","g","g","w","h","h","h","h","n","n","n","i","e","j","g","ae","a","eo","p","z","s","s","s","c","z","t","t","d","b","b","p","p","e","m","m","m","l","l","ng","ng","d","o","ear","ior","qu","qu","qu","s","yr","yr","yr","q","x",".",":","+","17","18","19"],KL[23]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"k","kh","g","gh","ng","c","ch","j","jh","ny","t","tth","d","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","y","r","l","v","sh","ss","s","h","l","q","a","aa","i","ii","u","uk","uu","uuv","ry","ryy","ly","lyy","e","ai","oo","oo","au","a","aa","aa","i","ii","y","yy","u","uu","ua","oe","ya","ie","e","ae","ai","oo","au","M","H","a`",null,null,null,"r",null,"!",null,null,null,null,null,"."," // ",":","+","++"," * "," /// ","KR","'",null,null,null,"0","1","2","3","4","5","6","7","8","9"],KL[24]=[" @ "," ... ",",",". ",": "," // ",null,"-",",",". ",null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,"a","e","i","o","u","O","U","ee","n","ng","b","p","q","g","m","l","s","sh","t","d","ch","j","y","r","w","f","k","kha","ts","z","h","zr","lh","zh","ch","-","e","i","o","u","O","U","ng","b","p","q","g","m","t","d","ch","j","ts","y","w","k","g","h","jy","ny","dz","e","i","iy","U","u","ng","k","g","h","p","sh","t","d","j","f","g","h","ts","z","r","ch","zh","i","k","r","f","zh",null,null,null,null,null,null,null,null,null,"H","X","W","M"," 3 "," 333 ","a","i","k","ng","c","tt","tth","dd","nn","t","d","p","ph","ss","zh","z","a","t","zh","gh","ng","c","jh","tta","ddh","t","dh","ss","cy","zh","z","u","y","bh","'"],KL[30]=["A","a","B","b","B","b","B","b","C","c","D","d","D","d","D","d","D","d","D","d","E","e","E","e","E","e","E","e","E","e","F","f","G","g","H","h","H","h","H","h","H","h","H","h","I","i","I","i","K","k","K","k","K","k","L","l","L","l","L","l","L","l","M","m","M","m","M","m","N","n","N","n","N","n","N","n","O","o","O","o","O","o","O","o","P","p","P","p","R","r","R","r","R","r","R","r","S","s","S","s","S","s","S","s","S","s","T","t","T","t","T","t","T","t","U","u","U","u","U","u","U","u","U","u","V","v","V","v","W","w","W","w","W","w","W","w","W","w","X","x","X","x","Y","y","Z","z","Z","z","Z","z","h","t","w","y","a","S",null,null,null,null,"A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","E","e","E","e","E","e","E","e","E","e","E","e","E","e","E","e","I","i","I","i","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","U","u","U","u","U","u","U","u","U","u","U","u","U","u","Y","y","Y","y","Y","y","Y","y"],KL[31]=XL,KL[32]=HL,KL[33]=[null,null,"C",null,null,null,null,null,null,null,"g","H","H","H","h",null,"I","I","L","l","lb","N","no","(p)","P","P","Q","R","R","R",null,null,"(sm)","(tel)","(tm)",null,"Z",null,null,"mho","Z",null,null,null,"B","C","e","e",null,"F",null,"M","o",null,null,null,null,"i","Q","(fax)","pi",null,null,"Pi",null,"G","L","L","Y","D","d","e","i","j",null,null,"per",null,null,null,null,null,null," 1/3 "," 2/3 "," 1/5 "," 2/5 "," 3/5 "," 4/5 "," 1/6 "," 5/6 "," 1/8 "," 3/8 "," 5/8 "," 7/8 "," 1/","I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","L","C","D","M","i","ii","iii","iv","v","vi","vii","viii","ix","x","xi","xii","l","c","d","m","(D","D)","((|))",")",null,null,null,null,null,null,null,null,null,null,null,null,"-","|","-","|","-","|","\\","/","\\","/","-","-","~","~","-","|","-","|","-","-","-","|","-","|","|","-","-","-","-","-","-","|","|","|","|","|","|","|","^","V","\\","=","V","^","-","-","|","|","-","-","|","|","=","|","=","=","|","=","|","=","=","=","=","=","=","|","=","|","=","|","\\","/","\\","/","=","=","~","~","|","|","-","|","-","|","-","-","-","|","-","|","|","|","|","|","|","|","-","\\","\\","|"],KL[37]=["-","-","|","|","-","-","|","|","-","-","|","|","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","-","-","|","|","-","|","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","/","\\","X","-","|","-","|","-","|","-","|","-","|","-","|","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","-","|",null,null,null,null,null,null,null,null,null,null,"#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","^","^","^","^",">",">",">",">",">",">","V","V","V","V","<","<","<","<","<","<","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","#","#","#","#","#","^","^","^","O","#","#","#","#","#","#","#","#"],KL[40]=[" ","a","1","b","'","k","2","l","@","c","i","f","/","m","s","p",'"',"e","3","h","9","o","6","r","^","d","j","g",">","n","t","q",",","*","5","<","-","u","8","v",".","%","[","$","+","x","!","&",";",":","4","\\","0","z","7","(","_","?","w","]","#","y",")","=","[d7]","[d17]","[d27]","[d127]","[d37]","[d137]","[d237]","[d1237]","[d47]","[d147]","[d247]","[d1247]","[d347]","[d1347]","[d2347]","[d12347]","[d57]","[d157]","[d257]","[d1257]","[d357]","[d1357]","[d2357]","[d12357]","[d457]","[d1457]","[d2457]","[d12457]","[d3457]","[d13457]","[d23457]","[d123457]","[d67]","[d167]","[d267]","[d1267]","[d367]","[d1367]","[d2367]","[d12367]","[d467]","[d1467]","[d2467]","[d12467]","[d3467]","[d13467]","[d23467]","[d123467]","[d567]","[d1567]","[d2567]","[d12567]","[d3567]","[d13567]","[d23567]","[d123567]","[d4567]","[d14567]","[d24567]","[d124567]","[d34567]","[d134567]","[d234567]","[d1234567]","[d8]","[d18]","[d28]","[d128]","[d38]","[d138]","[d238]","[d1238]","[d48]","[d148]","[d248]","[d1248]","[d348]","[d1348]","[d2348]","[d12348]","[d58]","[d158]","[d258]","[d1258]","[d358]","[d1358]","[d2358]","[d12358]","[d458]","[d1458]","[d2458]","[d12458]","[d3458]","[d13458]","[d23458]","[d123458]","[d68]","[d168]","[d268]","[d1268]","[d368]","[d1368]","[d2368]","[d12368]","[d468]","[d1468]","[d2468]","[d12468]","[d3468]","[d13468]","[d23468]","[d123468]","[d568]","[d1568]","[d2568]","[d12568]","[d3568]","[d13568]","[d23568]","[d123568]","[d4568]","[d14568]","[d24568]","[d124568]","[d34568]","[d134568]","[d234568]","[d1234568]","[d78]","[d178]","[d278]","[d1278]","[d378]","[d1378]","[d2378]","[d12378]","[d478]","[d1478]","[d2478]","[d12478]","[d3478]","[d13478]","[d23478]","[d123478]","[d578]","[d1578]","[d2578]","[d12578]","[d3578]","[d13578]","[d23578]","[d123578]","[d4578]","[d14578]","[d24578]","[d124578]","[d34578]","[d134578]","[d234578]","[d1234578]","[d678]","[d1678]","[d2678]","[d12678]","[d3678]","[d13678]","[d23678]","[d123678]","[d4678]","[d14678]","[d24678]","[d124678]","[d34678]","[d134678]","[d234678]","[d1234678]","[d5678]","[d15678]","[d25678]","[d125678]","[d35678]","[d135678]","[d235678]","[d1235678]","[d45678]","[d145678]","[d245678]","[d1245678]","[d345678]","[d1345678]","[d2345678]","[d12345678]"],KL[48]=[" ",",",". ",'"',"[JIS]",'"',"/","0","<","> ","<<",">> ","[","] ","{","} ","[(",")] ","@","X ","[","] ","[[","]] ","((",")) ","[[","]] ","~ ","``","''",",,","@","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,"~","+","+","+","+",null,"@"," // ","+10+","+20+","+30+",null,null,null,null,null,null,"a","a","i","i","u","u","e","e","o","o","ka","ga","ki","gi","ku","gu","ke","ge","ko","go","sa","za","si","zi","su","zu","se","ze","so","zo","ta","da","ti","di","tu","tu","du","te","de","to","do","na","ni","nu","ne","no","ha","ba","pa","hi","bi","pi","hu","bu","pu","he","be","pe","ho","bo","po","ma","mi","mu","me","mo","ya","ya","yu","yu","yo","yo","ra","ri","ru","re","ro","wa","wa","wi","we","wo","n","vu",null,null,null,null,null,null,null,null,'"','"',null,null,"a","a","i","i","u","u","e","e","o","o","ka","ga","ki","gi","ku","gu","ke","ge","ko","go","sa","za","si","zi","su","zu","se","ze","so","zo","ta","da","ti","di","tu","tu","du","te","de","to","do","na","ni","nu","ne","no","ha","ba","pa","hi","bi","pi","hu","bu","pu","he","be","pe","ho","bo","po","ma","mi","mu","me","mo","ya","ya","yu","yu","yo","yo","ra","ri","ru","re","ro","wa","wa","wi","we","wo","n","vu","ka","ke","va","vi","ve","vo",null,null,'"','"'],KL[49]=[null,null,null,null,null,"B","P","M","F","D","T","N","L","G","K","H","J","Q","X","ZH","CH","SH","R","Z","C","S","A","O","E","EH","AI","EI","AU","O
1U","AN","EN","ANG","ENG","ER","I","U","IU","V","NG","GN",null,null,null,null,"g","gg","gs","n","nj","nh","d","dd","r","lg","lm","lb","ls","lt","lp","rh","m","b","bb","bs","s","ss",null,"j","jj","c","k","t","p","h","a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i",null,"nn","nd","ns","nZ","lgs","ld","lbs","lZ","lQ","mb","ms","mZ","mN","bg",null,"bsg","bst","bj","bt","bN","bbN","sg","sn","sd","sb","sj","Z",null,"N","Ns","NZ","pN","hh","Q","yo-ya","yo-yae","yo-i","yu-yeo","yu-ye","yu-i","U","U-i",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"BU","ZI","JI","GU","EE","ENN","OO","ONN","IR","ANN","INN","UNN","IM","NGG","AINN","AUNN","AM","OM","ONG","INNN","P","T","K","H"],KL[50]=["(g)","(n)","(d)","(r)","(m)","(b)","(s)","()","(j)","(c)","(k)","(t)","(p)","(h)","(ga)","(na)","(da)","(ra)","(ma)","(ba)","(sa)","(a)","(ja)","(ca)","(ka)","(ta)","(pa)","(ha)","(ju)",null,null,null,"(1) ","(2) ","(3) ","(4) ","(5) ","(6) ","(7) ","(8) ","(9) ","(10) ","(Yue) ","(Huo) ","(Shui) ","(Mu) ","(Jin) ","(Tu) ","(Ri) ","(Zhu) ","(You) ","(She) ","(Ming) ","(Te) ","(Cai) ","(Zhu) ","(Lao) ","(Dai) ","(Hu) ","(Xue) ","(Jian) ","(Qi) ","(Zi) ","(Xie) ","(Ji) ","(Xiu) ","<<",">>",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"(g)","(n)","(d)","(r)","(m)","(b)","(s)","()","(j)","(c)","(k)","(t)","(p)","(h)","(ga)","(na)","(da)","(ra)","(ma)","(ba)","(sa)","(a)","(ja)","(ca)","(ka)","(ta)","(pa)","(ha)",null,null,null,"KIS ","(1) ","(2) ","(3) ","(4) ","(5) ","(6) ","(7) ","(8) ","(9) ","(10) ","(Yue) ","(Huo) ","(Shui) ","(Mu) ","(Jin) ","(Tu) ","(Ri) ","(Zhu) ","(You) ","(She) ","(Ming) ","(Te) ","(Cai) ","(Zhu) ","(Lao) ","(Mi) ","(Nan) ","(Nu) ","(Shi) ","(You) ","(Yin) ","(Zhu) ","(Xiang) ","(Xiu) ","(Xie) ","(Zheng) ","(Shang) ","(Zhong) ","(Xia) ","(Zuo) ","(You) ","(Yi) ","(Zong) ","(Xue) ","(Jian) ","(Qi) ","(Zi) ","(Xie) ","(Ye) ",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1M","2M","3M","4M","5M","6M","7M","8M","9M","10M","11M","12M",null,null,null,null,"a","i","u","u","o","ka","ki","ku","ke","ko","sa","si","su","se","so","ta","ti","tu","te","to","na","ni","nu","ne","no","ha","hi","hu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","wi","we","wo"],KL[51]=["apartment","alpha","ampere","are","inning","inch","won","escudo","acre","ounce","ohm","kai-ri","carat","calorie","gallon","gamma","giga","guinea","curie","guilder","kilo","kilogram","kilometer","kilowatt","gram","gram ton","cruzeiro","krone","case","koruna","co-op","cycle","centime","shilling","centi","cent","dozen","desi","dollar","ton","nano","knot","heights","percent","parts","barrel","piaster","picul","pico","building","farad","feet","bushel","franc","hectare","peso","pfennig","hertz","pence","page","beta","point","volt","hon","pound","hall","horn","micro","mile","mach","mark","mansion","micron","milli","millibar","mega","megaton","meter","yard","yard","yuan","liter","lira","rupee","ruble","rem","roentgen","watt","0h","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h","13h","14h","15h","16h","17h","18h","19h","20h","21h","22h","23h","24h","HPA","da","AU","bar","oV","pc",null,null,null,null,"Heisei","Syouwa","Taisyou","Meiji","Inc.","pA","nA","microamp","mA","kA","kB","MB","GB","cal","kcal","pF","nF","microFarad","microgram","mg","kg","Hz","kHz","MHz","GHz","THz","microliter","ml","dl","kl","fm","nm","micrometer","mm","cm","km","mm^2","cm^2","m^2","km^2","mm^4","cm^3","m^3","km^3","m/s","m/s^2","Pa","kPa","MPa","GPa","rad","rad/s","rad/s^2","ps","ns","microsecond","ms","pV","nV","microvolt","mV","kV","MV","pW","nW","microwatt","mW","kW","MW","kOhm","MOhm","a.m.","Bq","cc","cd","C/kg","Co.","dB","Gy","ha","HP","in","K.K.","KM","kt","lm","ln","log","lx","mb","mil","mol","pH","p.m.","PPM","PR","sr","Sv","Wb",null,null,"1d","2d","3d","4d","5d","6d","7d","8d","9d","10d","11d","12d","13d","14d","15d","16d","17d","18d","19d","20d","21d","22d","23d","24d","25d","26d","27d","28d","29d","30d","31d"],KL[78]=["Yi","Ding","Kao","Qi","Shang","Xia",null,"Wan","Zhang","San","Shang","Xia","Ji","Bu","Yu","Mian","Gai","Chou","Chou","Zhuan","Qie","Pi","Shi","Shi","Qiu","Bing","Ye","Cong","Dong","Si","Cheng","Diu","Qiu","Liang","Diu","You","Liang","Yan","Bing","Sang","Gun","Jiu","Ge","Ya","Qiang","Zhong","Ji","Jie","Feng","Guan","Chuan","Chan","Lin","Zhuo","Zhu","Ha","Wan","Dan","Wei","Zhu","Jing","Li","Ju","Pie","Fu","Yi","Yi","Nai","Shime","Jiu","Jiu","Zhe","Me","Yi",null,"Zhi","Wu","Zha","Hu","Fa","Le","Zhong","Ping","Pang","Qiao","Hu","Guai","Cheng","Cheng","Yi","Yin",null,"Mie","Jiu","Qi","Ye","Xi","Xiang","Gai","Diu","Hal",null,"Shu","Twul","Shi","Ji","Nang","Jia","Kel","Shi",null,"Ol","Mai","Luan","Cal","Ru","Xue","Yan","Fu","Sha","Na","Gan","Sol","
1El","Cwul",null,"Gan","Chi","Gui","Gan","Luan","Lin","Yi","Jue","Liao","Ma","Yu","Zheng","Shi","Shi","Er","Chu","Yu","Yu","Yu","Yun","Hu","Qi","Wu","Jing","Si","Sui","Gen","Gen","Ya","Xie","Ya","Qi","Ya","Ji","Tou","Wang","Kang","Ta","Jiao","Hai","Yi","Chan","Heng","Mu",null,"Xiang","Jing","Ting","Liang","Xiang","Jing","Ye","Qin","Bo","You","Xie","Dan","Lian","Duo","Wei","Ren","Ren","Ji","La","Wang","Yi","Shi","Ren","Le","Ding","Ze","Jin","Pu","Chou","Ba","Zhang","Jin","Jie","Bing","Reng","Cong","Fo","San","Lun","Sya","Cang","Zi","Shi","Ta","Zhang","Fu","Xian","Xian","Tuo","Hong","Tong","Ren","Qian","Gan","Yi","Di","Dai","Ling","Yi","Chao","Chang","Sa",null,"Yi","Mu","Men","Ren","Jia","Chao","Yang","Qian","Zhong","Pi","Wan","Wu","Jian","Jie","Yao","Feng","Cang","Ren","Wang","Fen","Di","Fang"],KL[79]=["Zhong","Qi","Pei","Yu","Diao","Dun","Wen","Yi","Xin","Kang","Yi","Ji","Ai","Wu","Ji","Fu","Fa","Xiu","Jin","Bei","Dan","Fu","Tang","Zhong","You","Huo","Hui","Yu","Cui","Chuan","San","Wei","Chuan","Che","Ya","Xian","Shang","Chang","Lun","Cang","Xun","Xin","Wei","Zhu",null,"Xuan","Nu","Bo","Gu","Ni","Ni","Xie","Ban","Xu","Ling","Zhou","Shen","Qu","Si","Beng","Si","Jia","Pi","Yi","Si","Ai","Zheng","Dian","Han","Mai","Dan","Zhu","Bu","Qu","Bi","Shao","Ci","Wei","Di","Zhu","Zuo","You","Yang","Ti","Zhan","He","Bi","Tuo","She","Yu","Yi","Fo","Zuo","Kou","Ning","Tong","Ni","Xuan","Qu","Yong","Wa","Qian",null,"Ka",null,"Pei","Huai","He","Lao","Xiang","Ge","Yang","Bai","Fa","Ming","Jia","Er","Bing","Ji","Hen","Huo","Gui","Quan","Tiao","Jiao","Ci","Yi","Shi","Xing","Shen","Tuo","Kan","Zhi","Gai","Lai","Yi","Chi","Kua","Guang","Li","Yin","Shi","Mi","Zhu","Xu","You","An","Lu","Mou","Er","Lun","Tong","Cha","Chi","Xun","Gong","Zhou","Yi","Ru","Jian","Xia","Jia","Zai","Lu","Ko","Jiao","Zhen","Ce","Qiao","Kuai","Chai","Ning","Nong","Jin","Wu","Hou","Jiong","Cheng","Zhen","Zuo","Chou","Qin","Lu","Ju","Shu","Ting","Shen","Tuo","Bo","Nan","Hao","Bian","Tui","Yu","Xi","Cu","E","Qiu","Xu","Kuang","Ku","Wu","Jun","Yi","Fu","Lang","Zu","Qiao","Li","Yong","Hun","Jing","Xian","San","Pai","Su","Fu","Xi","Li","Fu","Ping","Bao","Yu","Si","Xia","Xin","Xiu","Yu","Ti","Che","Chou",null,"Yan","Lia","Li","Lai",null,"Jian","Xiu","Fu","He","Ju","Xiao","Pai","Jian","Biao","Chu","Fei","Feng","Ya","An","Bei","Yu","Xin","Bi","Jian"],KL[80]=["Chang","Chi","Bing","Zan","Yao","Cui","Lia","Wan","Lai","Cang","Zong","Ge","Guan","Bei","Tian","Shu","Shu","Men","Dao","Tan","Jue","Chui","Xing","Peng","Tang","Hou","Yi","Qi","Ti","Gan","Jing","Jie","Sui","Chang","Jie","Fang","Zhi","Kong","Juan","Zong","Ju","Qian","Ni","Lun","Zhuo","Wei","Luo","Song","Leng","Hun","Dong","Zi","Ben","Wu","Ju","Nai","Cai","Jian","Zhai","Ye","Zhi","Sha","Qing",null,"Ying","Cheng","Jian","Yan","Nuan","Zhong","Chun","Jia","Jie","Wei","Yu","Bing","Ruo","Ti","Wei","Pian","Yan","Feng","Tang","Wo","E","Xie","Che","Sheng","Kan","Di","Zuo","Cha","Ting","Bei","Ye","Huang","Yao","Zhan","Chou","Yan","You","Jian","Xu","Zha","Ci","Fu","Bi","Zhi","Zong","Mian","Ji","Yi","Xie","Xun","Si","Duan","Ce","Zhen","Ou","Tou","Tou","Bei","Za","Lu","Jie","Wei","Fen","Chang","Gui","Sou","Zhi","Su","Xia","Fu","Yuan","Rong","Li","Ru","Yun","Gou","Ma","Bang","Dian","Tang","Hao","Jie","Xi","Shan","Qian","Jue","Cang","Chu","San","Bei","Xiao","Yong","Yao","Tan","Suo","Yang","Fa","Bing","Jia","Dai","Zai","Tang",null,"Bin","Chu","Nuo","Can","Lei","Cui","Yong","Zao","Zong","Peng","Song","Ao","Chuan","Yu","Zhai","Cou","Shang","Qiang","Jing","Chi","Sha","Han","Zhang","Qing","Yan","Di","Xi","Lu","Bei","Piao","Jin","Lian","Lu","Man","Qian","Xian","Tan","Ying","Dong","Zhuan","Xiang","Shan","Qiao","Jiong","Tui","Zun","Pu","Xi","Lao","Chang","Guang","Liao","Qi","Deng","Chan","Wei","Ji","Fan","Hui","Chuan","Jian","Dan","Jiao","Jiu","Seng","Fen","Xian","Jue","E","Jiao","Jian","Tong","Lin","Bo","Gu",null,"Su","Xian","Jiang","Min","Ye","Jin","Jia","Qiao","Pi","Feng","Zhou","Ai","Sai"],KL[81]=["Yi","Jun","Nong","Chan","Yi","Dang","Jing","Xuan","Kuai","Jian","Chu","Dan","Jiao","Sha","Zai",null,"Bin","An","Ru","Tai","Chou","Chai","Lan","Ni","Jin","Qian","Meng","Wu","Ning","Qiong","Ni","Chang","Lie","Lei","Lu","Kuang","Bao","Du","Biao","Zan","Zhi","Si","You","Hao","Chen","Chen","Li","Teng","Wei","Long","Chu","Chan","Rang","Shu","Hui","Li","Luo","Zan","Nuo","Tang","Yan","Lei","Nang","Er","Wu","Yun","Zan","Yuan","Xiong","Chong","Zhao","Xiong","Xian","Guang","Dui","Ke","Dui","Mian","Tu","Chang","Er","Dui","Er","Xin","Tu","Si","Yan","Yan","Shi","Shi","Dang","Qian","Dou","Fen","Mao","Shen","Dou","Bai","Jing","Li","Huang","Ru","Wang","Nei","Quan","Liang","Yu","Ba","Gong","Liu","Xi",null,"Lan","Gong","Tian","Guan","Xing","Bing","Qi","Ju","Dian","Zi","Ppwun","Yang","Jian","Shou","Ji","Yi","Ji","Chan","Jiong","Mao","Ran","Nei","Yuan","Mao","Gang","Ran","Ce","Jiong","Ce","Zai","Gua","Jiong","Mao","Zhou","Mou","Gou","Xu","Mian","Mi","Rong","Yin","Xie","Kan","Jun","Nong","Yi","Mi","Shi","Guan","Meng","Zhong","Ju","Yuan","Ming","Kou","Lam","Fu","Xie","Mi","Bing","Dong","Tai","Gang","Feng","Bing","Hu","Chong","Jue","Hu","Kuang","Ye","Leng","Pan","Fu","Min","Dong","Xian","Lie","Xia","Jian","Jing","Shu","Mei","Tu","Qi","Gu","Zhun","Song","Jing","Liang","Qing","Diao","Ling","Dong","Gan","Jian","Yin","Cou","Yi","Li","Cang","Ming","Zhuen","Cui","Si","Duo","Jin","Lin","Lin","Ning","Xi","Du","Ji","Fan","Fan","Fan","Feng","Ju","Chu","Tako","Feng","Mok","Ci","Fu","Feng","Ping","Feng","Kai","Huang","Kai","Gan","Deng","Ping","Qu","Xiong","Kuai","Tu","Ao","Chu","Ji","Dang","Han","Han","Zao"],KL[82]=["Dao","Diao","Dao","Ren","Ren","Chuang","Fen","Qie","Yi","Ji","Kan","Qian","Cun","Chu","Wen","Ji","Dan","Xing","Hua","Wan","Jue","Li","Yue","Lie","Liu","Ze","Gang","Chuang","Fu","Chu","Qu","Ju","Shan","Min","Ling","Zhong","Pan","Bie","Jie","Jie","Bao","Li","Shan","Bie","Chan","Jing","Gua","Gen","Dao","Chuang","Kui","Ku","Duo","Er","Zhi","Shua","Quan","Cha","Ci","Ke","Jie","Gui","Ci","Gui","Kai","Duo","Ji","Ti","Jing","Lou","Gen","Ze","Yuan","Cuo","Xue","Ke","La","Qian","Cha","Chuang","Gua","Jian","Cuo","Li","Ti","Fe
1i","Pou","Chan","Qi","Chuang","Zi","Gang","Wan","Bo","Ji","Duo","Qing","Yan","Zhuo","Jian","Ji","Bo","Yan","Ju","Huo","Sheng","Jian","Duo","Duan","Wu","Gua","Fu","Sheng","Jian","Ge","Zha","Kai","Chuang","Juan","Chan","Tuan","Lu","Li","Fou","Shan","Piao","Kou","Jiao","Gua","Qiao","Jue","Hua","Zha","Zhuo","Lian","Ju","Pi","Liu","Gui","Jiao","Gui","Jian","Jian","Tang","Huo","Ji","Jian","Yi","Jian","Zhi","Chan","Cuan","Mo","Li","Zhu","Li","Ya","Quan","Ban","Gong","Jia","Wu","Mai","Lie","Jin","Keng","Xie","Zhi","Dong","Zhu","Nu","Jie","Qu","Shao","Yi","Zhu","Miao","Li","Jing","Lao","Lao","Juan","Kou","Yang","Wa","Xiao","Mou","Kuang","Jie","Lie","He","Shi","Ke","Jing","Hao","Bo","Min","Chi","Lang","Yong","Yong","Mian","Ke","Xun","Juan","Qing","Lu","Pou","Meng","Lai","Le","Kai","Mian","Dong","Xu","Xu","Kan","Wu","Yi","Xun","Weng","Sheng","Lao","Mu","Lu","Piao","Shi","Ji","Qin","Qiang","Jiao","Quan","Yang","Yi","Jue","Fan","Juan","Tong","Ju","Dan","Xie","Mai","Xun","Xun","Lu","Li","Che","Rang","Quan","Bao","Shao","Yun","Jiu","Bao","Gou","Wu"],KL[83]=["Yun","Mwun","Nay","Gai","Gai","Bao","Cong",null,"Xiong","Peng","Ju","Tao","Ge","Pu","An","Pao","Fu","Gong","Da","Jiu","Qiong","Bi","Hua","Bei","Nao","Chi","Fang","Jiu","Yi","Za","Jiang","Kang","Jiang","Kuang","Hu","Xia","Qu","Bian","Gui","Qie","Zang","Kuang","Fei","Hu","Tou","Gui","Gui","Hui","Dan","Gui","Lian","Lian","Suan","Du","Jiu","Qu","Xi","Pi","Qu","Yi","Qia","Yan","Bian","Ni","Qu","Shi","Xin","Qian","Nian","Sa","Zu","Sheng","Wu","Hui","Ban","Shi","Xi","Wan","Hua","Xie","Wan","Bei","Zu","Zhuo","Xie","Dan","Mai","Nan","Dan","Ji","Bo","Shuai","Bu","Kuang","Bian","Bu","Zhan","Qia","Lu","You","Lu","Xi","Gua","Wo","Xie","Jie","Jie","Wei","Ang","Qiong","Zhi","Mao","Yin","Wei","Shao","Ji","Que","Luan","Shi","Juan","Xie","Xu","Jin","Que","Wu","Ji","E","Qing","Xi",null,"Han","Zhan","E","Ting","Li","Zhe","Han","Li","Ya","Ya","Yan","She","Zhi","Zha","Pang",null,"He","Ya","Zhi","Ce","Pang","Ti","Li","She","Hou","Ting","Zui","Cuo","Fei","Yuan","Ce","Yuan","Xiang","Yan","Li","Jue","Sha","Dian","Chu","Jiu","Qin","Ao","Gui","Yan","Si","Li","Chang","Lan","Li","Yan","Yan","Yuan","Si","Gong","Lin","Qiu","Qu","Qu","Uk","Lei","Du","Xian","Zhuan","San","Can","Can","Can","Can","Ai","Dai","You","Cha","Ji","You","Shuang","Fan","Shou","Guai","Ba","Fa","Ruo","Shi","Shu","Zhuo","Qu","Shou","Bian","Xu","Jia","Pan","Sou","Gao","Wei","Sou","Die","Rui","Cong","Kou","Gu","Ju","Ling","Gua","Tao","Kou","Zhi","Jiao","Zhao","Ba","Ding","Ke","Tai","Chi","Shi","You","Qiu","Po","Ye","Hao","Si","Tan","Chi","Le","Diao","Ji",null,"Hong"],KL[84]=["Mie","Xu","Mang","Chi","Ge","Xuan","Yao","Zi","He","Ji","Diao","Cun","Tong","Ming","Hou","Li","Tu","Xiang","Zha","Xia","Ye","Lu","A","Ma","Ou","Xue","Yi","Jun","Chou","Lin","Tun","Yin","Fei","Bi","Qin","Qin","Jie","Bu","Fou","Ba","Dun","Fen","E","Han","Ting","Hang","Shun","Qi","Hong","Zhi","Shen","Wu","Wu","Chao","Ne","Xue","Xi","Chui","Dou","Wen","Hou","Ou","Wu","Gao","Ya","Jun","Lu","E","Ge","Mei","Ai","Qi","Cheng","Wu","Gao","Fu","Jiao","Hong","Chi","Sheng","Ne","Tun","Fu","Yi","Dai","Ou","Li","Bai","Yuan","Kuai",null,"Qiang","Wu","E","Shi","Quan","Pen","Wen","Ni","M","Ling","Ran","You","Di","Zhou","Shi","Zhou","Tie","Xi","Yi","Qi","Ping","Zi","Gu","Zi","Wei","Xu","He","Nao","Xia","Pei","Yi","Xiao","Shen","Hu","Ming","Da","Qu","Ju","Gem","Za","Tuo","Duo","Pou","Pao","Bi","Fu","Yang","He","Zha","He","Hai","Jiu","Yong","Fu","Que","Zhou","Wa","Ka","Gu","Ka","Zuo","Bu","Long","Dong","Ning","Tha","Si","Xian","Huo","Qi","Er","E","Guang","Zha","Xi","Yi","Lie","Zi","Mie","Mi","Zhi","Yao","Ji","Zhou","Ge","Shuai","Zan","Xiao","Ke","Hui","Kua","Huai","Tao","Xian","E","Xuan","Xiu","Wai","Yan","Lao","Yi","Ai","Pin","Shen","Tong","Hong","Xiong","Chi","Wa","Ha","Zai","Yu","Di","Pai","Xiang","Ai","Hen","Kuang","Ya","Da","Xiao","Bi","Yue",null,"Hua","Sasou","Kuai","Duo",null,"Ji","Nong","Mou","Yo","Hao","Yuan","Long","Pou","Mang","Ge","E","Chi","Shao","Li","Na","Zu","He","Ku","Xiao","Xian","Lao","Bo","Zhe","Zha","Liang","Ba","Mie","Le","Sui","Fou","Bu","Han","Heng","Geng","Shuo","Ge"],KL[85
1]=["You","Yan","Gu","Gu","Bai","Han","Suo","Chun","Yi","Ai","Jia","Tu","Xian","Huan","Li","Xi","Tang","Zuo","Qiu","Che","Wu","Zao","Ya","Dou","Qi","Di","Qin","Ma","Mal","Hong","Dou","Kes","Lao","Liang","Suo","Zao","Huan","Lang","Sha","Ji","Zuo","Wo","Feng","Yin","Hu","Qi","Shou","Wei","Shua","Chang","Er","Li","Qiang","An","Jie","Yo","Nian","Yu","Tian","Lai","Sha","Xi","Tuo","Hu","Ai","Zhou","Nou","Ken","Zhuo","Zhuo","Shang","Di","Heng","Lan","A","Xiao","Xiang","Tun","Wu","Wen","Cui","Sha","Hu","Qi","Qi","Tao","Dan","Dan","Ye","Zi","Bi","Cui","Chuo","He","Ya","Qi","Zhe","Pei","Liang","Xian","Pi","Sha","La","Ze","Qing","Gua","Pa","Zhe","Se","Zhuan","Nie","Guo","Luo","Yan","Di","Quan","Tan","Bo","Ding","Lang","Xiao",null,"Tang","Chi","Ti","An","Jiu","Dan","Ke","Yong","Wei","Nan","Shan","Yu","Zhe","La","Jie","Hou","Han","Die","Zhou","Chai","Wai","Re","Yu","Yin","Zan","Yao","Wo","Mian","Hu","Yun","Chuan","Hui","Huan","Huan","Xi","He","Ji","Kui","Zhong","Wei","Sha","Xu","Huang","Du","Nie","Xuan","Liang","Yu","Sang","Chi","Qiao","Yan","Dan","Pen","Can","Li","Yo","Zha","Wei","Miao","Ying","Pen","Phos","Kui","Xi","Yu","Jie","Lou","Ku","Sao","Huo","Ti","Yao","He","A","Xiu","Qiang","Se","Yong","Su","Hong","Xie","Yi","Suo","Ma","Cha","Hai","Ke","Ta","Sang","Tian","Ru","Sou","Wa","Ji","Pang","Wu","Xian","Shi","Ge","Zi","Jie","Luo","Weng","Wa","Si","Chi","Hao","Suo","Jia","Hai","Suo","Qin","Nie","He","Cis","Sai","Ng","Ge","Na","Dia","Ai",null,"Tong","Bi","Ao","Ao","Lian","Cui","Zhe","Mo","Sou","Sou","Tan"],KL[86]=["Di","Qi","Jiao","Chong","Jiao","Kai","Tan","San","Cao","Jia","Ai","Xiao","Piao","Lou","Ga","Gu","Xiao","Hu","Hui","Guo","Ou","Xian","Ze","Chang","Xu","Po","De","Ma","Ma","Hu","Lei","Du","Ga","Tang","Ye","Beng","Ying","Saai","Jiao","Mi","Xiao","Hua","Mai","Ran","Zuo","Peng","Lao","Xiao","Ji","Zhu","Chao","Kui","Zui","Xiao","Si","Hao","Fu","Liao","Qiao","Xi","Xiu","Tan","Tan","Mo","Xun","E","Zun","Fan","Chi","Hui","Zan","Chuang","Cu","Dan","Yu","Tun","Cheng","Jiao","Ye","Xi","Qi","Hao","Lian","Xu","Deng","Hui","Yin","Pu","Jue","Qin","Xun","Nie","Lu","Si","Yan","Ying","Da","Dan","Yu","Zhou","Jin","Nong","Yue","Hui","Qi","E","Zao","Yi","Shi","Jiao","Yuan","Ai","Yong","Jue","Kuai","Yu","Pen","Dao","Ge","Xin","Dun","Dang","Sin","Sai","Pi","Pi","Yin","Zui","Ning","Di","Lan","Ta","Huo","Ru","Hao","Xia","Ya","Duo","Xi","Chou","Ji","Jin","Hao","Ti","Chang",null,null,"Ca","Ti","Lu","Hui","Bo","You","Nie","Yin","Hu","Mo","Huang","Zhe","Li","Liu","Haai","Nang","Xiao","Mo","Yan","Li","Lu","Long","Fu","Dan","Chen","Pin","Pi","Xiang","Huo","Mo","Xi","Duo","Ku","Yan","Chan","Ying","Rang","Dian","La","Ta","Xiao","Jiao","Chuo","Huan","Huo","Zhuan","Nie","Xiao","Ca","Li","Chan","Chai","Li","Yi","Luo","Nang","Zan","Su","Xi","So","Jian","Za","Zhu","Lan","Nie","Nang",null,null,"Wei","Hui","Yin","Qiu","Si","Nin","Jian","Hui","Xin","Yin","Nan","Tuan","Tuan","Dun","Kang","Yuan","Jiong","Pian","Yun","Cong","Hu","Hui","Yuan","You","Guo","Kun","Cong","Wei","Tu","Wei","Lun","Guo","Qun","Ri","Ling","Gu","Guo","Tai","Guo","Tu","You"],KL[87]=["Guo","Yin","Hun","Pu","Yu","Han","Yuan","Lun","Quan","Yu","Qing","Guo","Chuan","Wei","Yuan","Quan","Ku","Fu","Yuan","Yuan","E","Tu","Tu","Tu","Tuan","Lue","Hui","Yi","Yuan","Luan","Luan","Tu","Ya","Tu","Ting","Sheng","Pu","Lu","Iri","Ya","Zai","Wei","Ge","Yu","Wu","Gui","Pi","Yi","Di","Qian","Qian","Zhen","Zhuo","Dang","Qia","Akutsu","Yama","Kuang","Chang","Qi","Nie","Mo","Ji","Jia","Zhi","Zhi","Ban","Xun","Tou","Qin","Fen","Jun","Keng","Tun","Fang","Fen","Ben","Tan","Kan","Pi","Zuo","Keng","Bi","Xing","Di","Jing","Ji","Kuai","Di","Jing","Jian","Tan","Li","Ba","Wu","Fen","Zhui","Po","Pan","Tang","Kun","Qu","Tan","Zhi","Tuo","Gan","Ping","Dian","Gua","Ni","Tai","Pi","Jiong","Yang","Fo","Ao","Liu","Qiu","Mu","Ke","Gou","Xue","Ba","Chi","Che","Ling","Zhu","Fu","Hu","Zhi","Chui","La","Long","Long","Lu","Ao","Tay","Pao",null,"Xing","Dong","Ji","Ke","Lu","Ci","Chi","Lei","Gai","Yin","Hou","Dui","Zhao","Fu","Guang","Yao","Duo","Duo","Gui","Cha","Yang","Yin","Fa","Gou","Yuan","Die","Xie","Ken","Jiong","Shou","E","Ha","Dian","Hong","Wu","Kua",null,"Tao","Dang","Kai","Gake","N
1ao","An","Xing","Xian","Huan","Bang","Pei","Ba","Yi","Yin","Han","Xu","Chui","Cen","Geng","Ai","Peng","Fang","Que","Yong","Xun","Jia","Di","Mai","Lang","Xuan","Cheng","Yan","Jin","Zhe","Lei","Lie","Bu","Cheng","Gomi","Bu","Shi","Xun","Guo","Jiong","Ye","Nian","Di","Yu","Bu","Ya","Juan","Sui","Pi","Cheng","Wan","Ju","Lun","Zheng","Kong","Chong","Dong","Dai","Tan","An","Cai","Shu","Beng","Kan","Zhi","Duo","Yi","Zhi","Yi","Pei","Ji","Zhun","Qi","Sao","Ju","Ni"],KL[88]=["Ku","Ke","Tang","Kun","Ni","Jian","Dui","Jin","Gang","Yu","E","Peng","Gu","Tu","Leng",null,"Ya","Qian",null,"An",null,"Duo","Nao","Tu","Cheng","Yin","Hun","Bi","Lian","Guo","Die","Zhuan","Hou","Bao","Bao","Yu","Di","Mao","Jie","Ruan","E","Geng","Kan","Zong","Yu","Huang","E","Yao","Yan","Bao","Ji","Mei","Chang","Du","Tuo","Yin","Feng","Zhong","Jie","Zhen","Feng","Gang","Chuan","Jian","Pyeng","Toride","Xiang","Huang","Leng","Duan",null,"Xuan","Ji","Ji","Kuai","Ying","Ta","Cheng","Yong","Kai","Su","Su","Shi","Mi","Ta","Weng","Cheng","Tu","Tang","Que","Zhong","Li","Peng","Bang","Sai","Zang","Dui","Tian","Wu","Cheng","Xun","Ge","Zhen","Ai","Gong","Yan","Kan","Tian","Yuan","Wen","Xie","Liu","Ama","Lang","Chang","Peng","Beng","Chen","Cu","Lu","Ou","Qian","Mei","Mo","Zhuan","Shuang","Shu","Lou","Chi","Man","Biao","Jing","Qi","Shu","Di","Zhang","Kan","Yong","Dian","Chen","Zhi","Xi","Guo","Qiang","Jin","Di","Shang","Mu","Cui","Yan","Ta","Zeng","Qi","Qiang","Liang",null,"Zhui","Qiao","Zeng","Xu","Shan","Shan","Ba","Pu","Kuai","Dong","Fan","Que","Mo","Dun","Dun","Dun","Di","Sheng","Duo","Duo","Tan","Deng","Wu","Fen","Huang","Tan","Da","Ye","Sho","Mama","Yu","Qiang","Ji","Qiao","Ken","Yi","Pi","Bi","Dian","Jiang","Ye","Yong","Bo","Tan","Lan","Ju","Huai","Dang","Rang","Qian","Xun","Lan","Xi","He","Ai","Ya","Dao","Hao","Ruan","Mama","Lei","Kuang","Lu","Yan","Tan","Wei","Huai","Long","Long","Rui","Li","Lin","Rang","Ten","Xun","Yan","Lei","Ba",null,"Shi","Ren",null,"Zhuang","Zhuang","Sheng","Yi","Mai","Ke","Zhu","Zhuang","Hu","Hu","Kun","Yi","Hu","Xu","Kun","Shou","Mang","Zun"],KL[89]=["Shou","Yi","Zhi","Gu","Chu","Jiang","Feng","Bei","Cay","Bian","Sui","Qun","Ling","Fu","Zuo","Xia","Xiong",null,"Nao","Xia","Kui","Xi","Wai","Yuan","Mao","Su","Duo","Duo","Ye","Qing","Uys","Gou","Gou","Qi","Meng","Meng","Yin","Huo","Chen","Da","Ze","Tian","Tai","Fu","Guai","Yao","Yang","Hang","Gao","Shi","Ben","Tai","Tou","Yan","Bi","Yi","Kua","Jia","Duo","Kwu","Kuang","Yun","Jia","Pa","En","Lian","Huan","Di","Yan","Pao","Quan","Qi","Nai","Feng","Xie","Fen","Dian",null,"Kui","Zou","Huan","Qi","Kai","Zha","Ben","Yi","Jiang","Tao","Zang","Ben","Xi","Xiang","Fei","Diao","Xun","Keng","Dian","Ao","She","Weng","Pan","Ao","Wu","Ao","Jiang","Lian","Duo","Yun","Jiang","Shi","Fen","Huo","Bi","Lian","Duo","Nu","Nu","Ding","Nai","Qian","Jian","Ta","Jiu","Nan","Cha","Hao","Xian","Fan","Ji","Shuo","Ru","Fei","Wang","Hong","Zhuang","Fu","Ma","Dan","Ren","Fu","Jing","Yan","Xie","Wen","Zhong","Pa","Du","Ji","Keng","Zhong","Yao","Jin","Yun","Miao","Pei","Shi","Yue","Zhuang","Niu","Yan","Na","Xin","Fen","Bi","Yu","Tuo","Feng","Yuan","Fang","Wu","Yu","Gui","Du","Ba","Ni","Zhou","Zhuo","Zhao","Da","Nai","Yuan","Tou","Xuan","Zhi","E","Mei","Mo","Qi","Bi","Shen","Qie","E","He","Xu","Fa","Zheng","Min","Ban","Mu","Fu","Ling","Zi","Zi","Shi","Ran","Shan","Yang","Man","Jie","Gu","Si","Xing","Wei","Zi","Ju","Shan","Pin","Ren","Yao","Tong","Jiang","Shu","Ji","Gai","Shang","Kuo","Juan","Jiao","Gou","Mu","Jian","Jian","Yi","Nian","Zhi","Ji","Ji","Xian","Heng","Guang","Jun","Kua","Yan","Ming","Lie","Pei","Yan","You","Yan","Cha","Shen","Yin","Chi","Gui","Quan","Zi"],KL[90]=["Song","Wei","Hong","Wa","Lou","Ya","Rao","Jiao","Luan","Ping","Xian","Shao","Li","Cheng","Xiao","Mang","Fu","Suo","Wu","Wei","Ke","Lai","Chuo","Ding","Niang","Xing","Nan","Yu","Nuo","Pei","Nei","Juan","Shen","Zhi","Han","Di","Zhuang","E","Pin","Tui","Han","Mian","Wu","Yan","Wu","Xi","Yan","Yu","Si","Yu","Wa",null,"Xian","Ju","Qu","Shui","Qi","Xian","Zhui","Dong","Chang","Lu","Ai","E","E","Lou","Mian","Cong","Pou","Ju","Po","Cai","Ding","Wan","Biao","Xiao","Shu","Qi","Hui","Fu","E","Wo","Tan","Fei","Wei","Jie","Tian","Ni","Quan","Jing","Hun","Jing","Qian","Dian","Xing","Hu","Wa","Lai","Bi","Yin","Chou","Chuo","Fu","Jing","Lun","Yan","Lan","Kun","Yin","Ya","Ju","Li","Dian","Xian","Hwa","Hua","Ying","Chan","Shen","Ting","Dang","Yao","Wu","Nan","Ruo","Jia","Tou","Xu","Yu","Wei","Ti","Rou","Mei","Dan","Ruan","Qin","Hui","Wu","Qian","Chun","Mao","Fu","Jie","Duan","Xi","Zhong","Mei","Huang","Mian","An","Ying","Xuan","Jie","Wei","Mei","Yuan","Zhen","Qiu","Ti","Xie","Tuo","Lian","Mao","Ran","Si","Pian","Wei","Wa","Jiu","Hu","Ao",null,"Bou","Xu","Tou","Gui","Zou","Yao","Pi","Xi","Yuan","Ying","Rong","Ru","Chi","Liu","Mei","Pan","Ao","Ma","Gou","Kui","Qin","Jia","Sao","Zhen","Yuan","Cha","Yong","Ming","Ying","Ji","Su","Niao","Xian","Tao","Pang","Lang","Nao","Bao","Ai","Pi","Pin","Yi","P
1iao","Yu","Lei","Xuan","Man","Yi","Zhang","Kang","Yong","Ni","Li","Di","Gui","Yan","Jin","Zhuan","Chang","Ce","Han","Nen","Lao","Mo","Zhe","Hu","Hu","Ao","Nen","Qiang","Ma","Pie","Gu","Wu","Jiao","Tuo","Zhan","Mao","Xian","Xian","Mo","Liao","Lian","Hua"],KL[91]=["Gui","Deng","Zhi","Xu","Yi","Hua","Xi","Hui","Rao","Xi","Yan","Chan","Jiao","Mei","Fan","Fan","Xian","Yi","Wei","Jiao","Fu","Shi","Bi","Shan","Sui","Qiang","Lian","Huan","Xin","Niao","Dong","Yi","Can","Ai","Niang","Neng","Ma","Tiao","Chou","Jin","Ci","Yu","Pin","Yong","Xu","Nai","Yan","Tai","Ying","Can","Niao","Wo","Ying","Mian","Kaka","Ma","Shen","Xing","Ni","Du","Liu","Yuan","Lan","Yan","Shuang","Ling","Jiao","Niang","Lan","Xian","Ying","Shuang","Shuai","Quan","Mi","Li","Luan","Yan","Zhu","Lan","Zi","Jie","Jue","Jue","Kong","Yun","Zi","Zi","Cun","Sun","Fu","Bei","Zi","Xiao","Xin","Meng","Si","Tai","Bao","Ji","Gu","Nu","Xue",null,"Zhuan","Hai","Luan","Sun","Huai","Mie","Cong","Qian","Shu","Chan","Ya","Zi","Ni","Fu","Zi","Li","Xue","Bo","Ru","Lai","Nie","Nie","Ying","Luan","Mian","Ning","Rong","Ta","Gui","Zhai","Qiong","Yu","Shou","An","Tu","Song","Wan","Rou","Yao","Hong","Yi","Jing","Zhun","Mi","Zhu","Dang","Hong","Zong","Guan","Zhou","Ding","Wan","Yi","Bao","Shi","Shi","Chong","Shen","Ke","Xuan","Shi","You","Huan","Yi","Tiao","Shi","Xian","Gong","Cheng","Qun","Gong","Xiao","Zai","Zha","Bao","Hai","Yan","Xiao","Jia","Shen","Chen","Rong","Huang","Mi","Kou","Kuan","Bin","Su","Cai","Zan","Ji","Yuan","Ji","Yin","Mi","Kou","Qing","Que","Zhen","Jian","Fu","Ning","Bing","Huan","Mei","Qin","Han","Yu","Shi","Ning","Qin","Ning","Zhi","Yu","Bao","Kuan","Ning","Qin","Mo","Cha","Ju","Gua","Qin","Hu","Wu","Liao","Shi","Zhu","Zhai","Shen","Wei","Xie","Kuan","Hui","Liao","Jun","Huan","Yi","Yi","Bao","Qin","Chong","Bao","Feng","Cun","Dui","Si","Xun","Dao","Lu","Dui","Shou"],KL[92]=["Po","Feng","Zhuan","Fu","She","Ke","Jiang","Jiang","Zhuan","Wei","Zun","Xun","Shu","Dui","Dao","Xiao","Ji","Shao","Er","Er","Er","Ga","Jian","Shu","Chen","Shang","Shang","Mo","Ga","Chang","Liao","Xian","Xian",null,"Wang","Wang","You","Liao","Liao","Yao","Mang","Wang","Wang","Wang","Ga","Yao","Duo","Kui","Zhong","Jiu","Gan","Gu","Gan","Tui","Gan","Gan","Shi","Yin","Chi","Kao","Ni","Jin","Wei","Niao","Ju","Pi","Ceng","Xi","Bi","Ju","Jie","Tian","Qu","Ti","Jie","Wu","Diao","Shi","Shi","Ping","Ji","Xie","Chen","Xi","Ni","Zhan","Xi",null,"Man","E","Lou","Ping","Ti","Fei","Shu","Xie","Tu","Lu","Lu","Xi","Ceng","Lu","Ju","Xie","Ju","Jue","Liao","Jue","Shu","Xi","Che","Tun","Ni","Shan",null,"Xian","Li","Xue","Nata",null,"Long","Yi","Qi","Ren","Wu","Han","Shen","Yu","Chu","Sui","Qi",null,"Yue","Ban","Yao","Ang","Ya","Wu","Jie","E","Ji","Qian","Fen","Yuan","Qi","Cen","Qian","Qi","Cha","Jie","Qu","Gang","Xian","Ao","Lan","Dao","Ba","Zuo","Zuo","Yang","Ju","Gang","Ke","Gou","Xue","Bei","Li","Tiao","Ju","Yan","Fu","Xiu","Jia","Ling","Tuo","Pei","You","Dai","Kuang","Yue","Qu","Hu","Po","Min","An","Tiao","Ling","Chi","Yuri","Dong","Cem","Kui","Xiu","Mao","Tong","Xue","Yi","Kura","He","Ke","Luo","E","Fu","Xun","Die","Lu","An","Er","Gai","Quan","Tong","Yi","Mu","Shi","An","Wei","Hu","Zhi","Mi","Li","Ji","Tong","Wei","You","Sang","Xia","Li","Yao","Jiao","Zheng","Luan","Jiao","E","E","Yu","Ye","Bu","Qiao","Qun","Feng","Feng","Nao","Li","You","Xian","Hong","Dao","Shen","Cheng","Tu","Geng","Jun","Hao","Xia","Yin","Yu"],KL[93]=["Lang","Kan","Lao","Lai","Xian","Que","Kong","Chong","Chong","Ta","Lin","Hua","Ju","Lai","Qi","Min","Kun","Kun","Zu","Gu","Cui","Ya","Ya","Gang","Lun","Lun","Leng","Jue","Duo","Zheng","Guo","Yin","Dong","Han","Zheng","Wei","Yao","Pi","Yan","Song","Jie","Beng","Zu","Jue","Dong","Zhan","Gu","Yin",null,"Ze","Huang","Yu","Wei","Yang","Feng","Qiu","Dun","Ti","Yi","Zhi","Shi","Zai","Yao","E","Zhu","Kan","Lu","Yan","Mei","Gan","Ji","Ji","Huan","Ting","Sheng","Mei","Qian","Wu","Yu","Zong","Lan","Jue","Yan","Yan","Wei","Zong","Cha","Sui","Rong","Yamashina","Qin","Yu","Kewashii","Lou","Tu","Dui","Xi","Weng","Cang","Dang","Hong","Jie","Ai","Liu","Wu","Song","Qiao","Zi","Wei","Beng","Dian","Cuo","Qian","Yong","Nie","Cuo","Ji",null,"Tao","Song","Zong","Jiang","Liao","Kang","Chan","Die","Cen","Ding","Tu","Lou","Zhang","Zhan","Zhan","Ao","Cao","Qu","Qiang","Zui","Zui","Dao","Dao","Xi","Yu","Bo","Long","Xiang","Ceng","Bo","Qin","Jiao","Yan","Lao","Zhan","Lin","Liao","Liao","Jin","Deng","Duo","Zun","Jiao","Gui","Yao","Qiao","Yao","Jue","Zh
1an","Yi","Xue","Nao","Ye","Ye","Yi","E","Xian","Ji","Xie","Ke","Xi","Di","Ao","Zui",null,"Ni","Rong","Dao","Ling","Za","Yu","Yue","Yin",null,"Jie","Li","Sui","Long","Long","Dian","Ying","Xi","Ju","Chan","Ying","Kui","Yan","Wei","Nao","Quan","Chao","Cuan","Luan","Dian","Dian",null,"Yan","Yan","Yan","Nao","Yan","Chuan","Gui","Chuan","Zhou","Huang","Jing","Xun","Chao","Chao","Lie","Gong","Zuo","Qiao","Ju","Gong","Kek","Wu","Pwu","Pwu","Chai","Qiu","Qiu","Ji","Yi","Si","Ba","Zhi","Zhao","Xiang","Yi","Jin","Xun","Juan","Phas","Xun","Jin","Fu"],KL[94]=["Za","Bi","Shi","Bu","Ding","Shuai","Fan","Nie","Shi","Fen","Pa","Zhi","Xi","Hu","Dan","Wei","Zhang","Tang","Dai","Ma","Pei","Pa","Tie","Fu","Lian","Zhi","Zhou","Bo","Zhi","Di","Mo","Yi","Yi","Ping","Qia","Juan","Ru","Shuai","Dai","Zheng","Shui","Qiao","Zhen","Shi","Qun","Xi","Bang","Dai","Gui","Chou","Ping","Zhang","Sha","Wan","Dai","Wei","Chang","Sha","Qi","Ze","Guo","Mao","Du","Hou","Zheng","Xu","Mi","Wei","Wo","Fu","Yi","Bang","Ping","Tazuna","Gong","Pan","Huang","Dao","Mi","Jia","Teng","Hui","Zhong","Shan","Man","Mu","Biao","Guo","Ze","Mu","Bang","Zhang","Jiong","Chan","Fu","Zhi","Hu","Fan","Chuang","Bi","Hei",null,"Mi","Qiao","Chan","Fen","Meng","Bang","Chou","Mie","Chu","Jie","Xian","Lan","Gan","Ping","Nian","Qian","Bing","Bing","Xing","Gan","Yao","Huan","You","You","Ji","Guang","Pi","Ting","Ze","Guang","Zhuang","Mo","Qing","Bi","Qin","Dun","Chuang","Gui","Ya","Bai","Jie","Xu","Lu","Wu",null,"Ku","Ying","Di","Pao","Dian","Ya","Miao","Geng","Ci","Fu","Tong","Pang","Fei","Xiang","Yi","Zhi","Tiao","Zhi","Xiu","Du","Zuo","Xiao","Tu","Gui","Ku","Pang","Ting","You","Bu","Ding","Cheng","Lai","Bei","Ji","An","Shu","Kang","Yong","Tuo","Song","Shu","Qing","Yu","Yu","Miao","Sou","Ce","Xiang","Fei","Jiu","He","Hui","Liu","Sha","Lian","Lang","Sou","Jian","Pou","Qing","Jiu","Jiu","Qin","Ao","Kuo","Lou","Yin","Liao","Dai","Lu","Yi","Chu","Chan","Tu","Si","Xin","Miao","Chang","Wu","Fei","Guang","Koc","Kuai","Bi","Qiang","Xie","Lin","Lin","Liao","Lu",null,"Ying","Xian","Ting","Yong","Li","Ting","Yin","Xun","Yan","Ting","Di","Po","Jian","Hui","Nai","Hui","Gong","Nian"],KL[95]=["Kai","Bian","Yi","Qi","Nong","Fen","Ju","Yan","Yi","Zang","Bi","Yi","Yi","Er","San","Shi","Er","Shi","Shi","Gong","Diao","Yin","Hu","Fu","Hong","Wu","Tui","Chi","Jiang","Ba","Shen","Di","Zhang","Jue","Tao","Fu","Di","Mi","Xian","Hu","Chao","Nu","Jing","Zhen","Yi","Mi","Quan","Wan","Shao","Ruo","Xuan","Jing","Dun","Zhang","Jiang","Qiang","Peng","Dan","Qiang","Bi","Bi","She","Dan","Jian","Gou","Sei","Fa","Bi","Kou","Nagi","Bie","Xiao","Dan","Kuo","Qiang","Hong","Mi","Kuo","Wan","Jue","Ji","Ji","Gui","Dang","Lu","Lu","Tuan","Hui","Zhi","Hui","Hui","Yi","Yi","Yi","Yi","Huo","Huo","Shan","Xing","Wen","Tong","Yan","Yan","Yu","Chi","Cai","Biao","Diao","Bin","Peng","Yong","Piao","Zhang","Ying","Chi","Chi","Zhuo","Tuo","Ji","Pang","Zhong","Yi","Wang","Che","Bi","Chi","Ling","Fu","Wang","Zheng","Cu","Wang","Jing","Dai","Xi","Xun","Hen","Yang","Huai","Lu","Hou","Wa","Cheng","Zhi","Xu","Jing","Tu","Cong",null,"Lai","Cong","De","Pai","Xi",null,"Qi","Chang","Zhi","Cong","Zhou","Lai","Yu","Xie","Jie","Jian","Chi","Jia","Bian","Huang","Fu","Xun","Wei","Pang","Yao","Wei","Xi","Zheng","Piao","Chi","De","Zheng","Zheng","Bie","De","Chong","Che","Jiao","Wei","Jiao","Hui","Mei","Long","Xiang","Bao","Qu","Xin","Shu","Bi","Yi","Le","Ren","Dao","Ding","Gai","Ji","Ren","Ren","Chan","Tan","Te","Te","Gan","Qi","Shi","Cun","Zhi","Wang","Mang","Xi","Fan","Ying","Tian","Min","Min","Zhong","Chong","Wu","Ji","Wu","Xi","Ye","You","Wan","Cong","Zhong","Kuai","Yu","Bian","Zhi","Qi","Cui","Chen","Tai","Tun","Qian","Nian","Hun","Xiong","Niu","Wang","Xian","Xin","Kang","Hu","Kai","Fen"],KL[96]=["Huai","Tai","Song","Wu","Ou","Chang","Chuang","Ju","Yi","Bao","Chao","Min","Pei","Zuo","Zen","Yang","Kou","Ban","Nu","Nao","Zheng","Pa","Bu","Tie","Gu","Hu","Ju","Da","Lian","Si","Chou","Di","Dai","Yi","Tu","You","Fu","Ji","Peng","Xing","Yuan","Ni","Guai","Fu","Xi","Bi","You","Qie","Xuan","Cong","Bing","Huang","Xu","Chu","Pi","Xi","Xi","Tan","Koraeru","Zong","Dui",null,"Ki","Yi","Chi","Ren","Xun","Shi","Xi","Lao","Heng","Kuang","Mu","Zhi","Xie","Lian","Tiao","Huang","Die","Hao","Kong","Gui","Heng","Xi","Xiao","Shu","S","Kua","Qiu","Yang","Hui","Hui","Chi","Jia","Yi","Xiong","Guai","Lin","Hui","Zi","Xu","Chi","Xiang","Nu","Hen","En","Ke","Tong","Tian","Gong","Quan","Xi","Qia","Yue","Peng","Ken","De","Hui","E","Kyuu","Tong","Yan","Kai","Ce","Nao","Yun","Mang","Yong","Yong","Yuan","Pi","Kun","Qiao","Yue","Yu","Yu","Jie","Xi","Zhe","Lin","Ti","Han","Hao","Qie","Ti","Bu","Yi","Qian","Hui","Xi","Bei","Man","Yi","Heng","Song","Quan","Cheng","Hui","Wu","Wu","You","Li","
1Liang","Huan","Cong","Yi","Yue","Li","Nin","Nao","E","Que","Xuan","Qian","Wu","Min","Cong","Fei","Bei","Duo","Cui","Chang","Men","Li","Ji","Guan","Guan","Xing","Dao","Qi","Kong","Tian","Lun","Xi","Kan","Kun","Ni","Qing","Chou","Dun","Guo","Chan","Liang","Wan","Yuan","Jin","Ji","Lin","Yu","Huo","He","Quan","Tan","Ti","Ti","Nie","Wang","Chuo","Bu","Hun","Xi","Tang","Xin","Wei","Hui","E","Rui","Zong","Jian","Yong","Dian","Ju","Can","Cheng","De","Bei","Qie","Can","Dan","Guan","Duo","Nao","Yun","Xiang","Zhui","Die","Huang","Chun","Qiong","Re","Xing","Ce","Bian","Hun","Zong","Ti"],KL[97]=["Qiao","Chou","Bei","Xuan","Wei","Ge","Qian","Wei","Yu","Yu","Bi","Xuan","Huan","Min","Bi","Yi","Mian","Yong","Kai","Dang","Yin","E","Chen","Mou","Ke","Ke","Yu","Ai","Qie","Yan","Nuo","Gan","Yun","Zong","Sai","Leng","Fen",null,"Kui","Kui","Que","Gong","Yun","Su","Su","Qi","Yao","Song","Huang","Ji","Gu","Ju","Chuang","Ni","Xie","Kai","Zheng","Yong","Cao","Sun","Shen","Bo","Kai","Yuan","Xie","Hun","Yong","Yang","Li","Sao","Tao","Yin","Ci","Xu","Qian","Tai","Huang","Yun","Shen","Ming",null,"She","Cong","Piao","Mo","Mu","Guo","Chi","Can","Can","Can","Cui","Min","Te","Zhang","Tong","Ao","Shuang","Man","Guan","Que","Zao","Jiu","Hui","Kai","Lian","Ou","Song","Jin","Yin","Lu","Shang","Wei","Tuan","Man","Qian","She","Yong","Qing","Kang","Di","Zhi","Lou","Juan","Qi","Qi","Yu","Ping","Liao","Cong","You","Chong","Zhi","Tong","Cheng","Qi","Qu","Peng","Bei","Bie","Chun","Jiao","Zeng","Chi","Lian","Ping","Kui","Hui","Qiao","Cheng","Yin","Yin","Xi","Xi","Dan","Tan","Duo","Dui","Dui","Su","Jue","Ce","Xiao","Fan","Fen","Lao","Lao","Chong","Han","Qi","Xian","Min","Jing","Liao","Wu","Can","Jue","Cu","Xian","Tan","Sheng","Pi","Yi","Chu","Xian","Nao","Dan","Tan","Jing","Song","Han","Jiao","Wai","Huan","Dong","Qin","Qin","Qu","Cao","Ken","Xie","Ying","Ao","Mao","Yi","Lin","Se","Jun","Huai","Men","Lan","Ai","Lin","Yan","Gua","Xia","Chi","Yu","Yin","Dai","Meng","Ai","Meng","Dui","Qi","Mo","Lan","Men","Chou","Zhi","Nuo","Nuo","Yan","Yang","Bo","Zhi","Kuang","Kuang","You","Fu","Liu","Mie","Cheng",null,"Chan","Meng","Lan","Huai","Xuan","Rang","Chan","Ji","Ju","Huan","She","Yi"],KL[98]=["Lian","Nan","Mi","Tang","Jue","Gang","Gang","Gang","Ge","Yue","Wu","Jian","Xu","Shu","Rong","Xi","Cheng","Wo","Jie","Ge","Jian","Qiang","Huo","Qiang","Zhan","Dong","Qi","Jia","Die","Zei","Jia","Ji","Shi","Kan","Ji","Kui","Gai","Deng","Zhan","Chuang","Ge","Jian","Jie","Yu","Jian","Yan","Lu","Xi","Zhan","Xi","Xi","Chuo","Dai","Qu","Hu","Hu","Hu","E","Shi","Li","Mao","Hu","Li","Fang","Suo","Bian","Dian","Jiong","Shang","Yi","Yi","Shan","Hu","Fei","Yan","Shou","T","Cai","Zha","Qiu","Le","Bu","Ba","Da","Reng","Fu","Hameru","Zai","Tuo","Zhang","Diao","Kang","Yu","Ku","Han","Shen","Cha","Yi","Gu","Kou","Wu","Tuo","Qian","Zhi","Ren","Kuo","Men","Sao","Yang","Niu","Ban","Che","Rao","Xi","Qian","Ban","Jia","Yu","Fu","Ao","Xi","Pi","Zhi","Zi","E","Dun","Zhao","Cheng","Ji","Yan","Kuang","Bian","Chao","Ju","Wen","Hu","Yue","Jue","Ba","Qin","Zhen","Zheng","Yun","Wan","Nu","Yi","Shu","Zhua","Pou","Tou","Dou","Kang","Zhe","Pou","Fu","Pao","Ba","Ao","Ze","Tuan","Kou","Lun","Qiang",null,"Hu","Bao","Bing","Zhi","Peng","Tan","Pu","Pi","Tai","Yao","Zhen","Zha","Yang","Bao","He","Ni","Yi","Di","Chi","Pi","Za","Mo","Mo","Shen","Ya","Chou","Qu","Min","Chu","Jia","Fu","Zhan","Zhu","Dan","Chai","Mu","Nian","La","Fu","Pao","Ban","Pai","Ling","Na","Guai","Qian","Ju","Tuo","Ba","Tuo","Tuo","Ao","Ju","Zhuo","Pan","Zhao","Bai","Bai","Di","Ni","Ju","Kuo","Long","Jian",null,"Yong","Lan","Ning","Bo","Ze","Qian","Hen","Gua","Shi","Jie","Zheng","Nin","Gong","Gong","Quan","Shuan","Cun","Zan","Kao","Chi","Xie","Ce","Hui","Pin","Zhuai","Shi","Na"],KL[99]=["Bo","Chi","Gua","Zhi","Kuo","Duo","Duo","Zhi","Qie","An","Nong","Zhen","Ge","Jiao","Ku","Dong","Ru","Tiao","Lie","Zha","Lu","Die","Wa","Jue","Mushiru","Ju","Zhi","Luan","Ya","Zhua","Ta","Xie","Nao","Dang","Jiao","Zheng","Ji","Hui","Xun","Ku","Ai","Tuo","Nuo","Cuo","Bo","Geng","Ti","Zhen","Cheng","Suo","Suo","Keng","Mei","Long","Ju","Peng","Jian","Yi","Ting","Shan","Nuo","Wan","Xie","Cha","Feng","Jiao","Wu","Jun","Jiu","Tong","Kun","Huo","Tu","Zhuo","Pou","Le","Ba","Han","Shao","Nie","Juan","Ze","Song","Ye","Jue","Bu","Huan","Bu","Zun","Yi","Zhai","Lu","Sou","Tuo","Lao","Sun","Bang","Jian","Huan","Dao",null,"Wan","Qin","Peng","She","Lie","Min","Men","Fu","Bai","Ju","Dao","Wo","Ai","Juan","Yue","Zong","Chen","Chui","Jie","Tu","Ben","Na","Nian","Nuo","Zu","Wo","Xi","Xian","Cheng","Dian","Sao","Lun","Qing","Gang","Duo","Shou","Diao","Pou","Di","Zhang","Gun","Ji","Tao","Qia","Qi","Pai","Shu","Qian","Ling","Yi","Ya","Jue","Zheng","Liang","Gua","Yi","Huo","Shan","Zheng","Lue","Cai","Tan","Che","Bing","Jie","Ti","Kong","Tui","Yan","Cuo","Zou","Ju","Tian","Qian","Ken","Bai","Shou","Jie","Lu","Guo","Haba",null,"Zhi","Dan","Mang","Xian","Sao","Guan","Peng","Yuan","Nuo","Jian","Zhen","Jiu","Jian","Yu","Yan","Kui","Nan","Hong","Rou","Pi","Wei","Sai","Zou","Xuan","Miao","Ti","Nie","Cha","Shi","Zong","Zhen","Yi","Shun","Heng","Bian","Yang","Huan","Yan","Zuan","An","Xu","Ya","Wo","Ke","Chuai","Ji","Ti","La","La","Cheng","Kai","Jiu","Jiu","Tu","Jie","Hui","Geng","Chong","Shuo","She","Xie","Yuan","Qian","Ye","Cha","Zha","Bei","Yao",null,null,"Lan","Wen","Qin"],KL[100]=["Chan","Ge","Lou","Zong","Geng","Jiao","Gou","Qin","Yong","Que","Chou","Chi","Zhan","Sun","Sun","Bo","Chu","Rong","Beng","Cuo","Sao","Ke","Yao","Dao","Zhi","Nu","Xie","Jian","Sou","Qiu","Gao","Xian","Shuo","Sang","Jin","Mie","E","Chui","Nuo","Shan","Ta","Jie","Tang","Pan","Ban","Da","Li","Tao","Hu","Zhi","Wa","Xia","Qian","Wen","Qiang","Tian","Zhen","E","Xi","Nuo","Quan","Cha","Zha","Ge","Wu","En","She","Kang","She","Shu","Bai","Yao","Bin","Sou","Tan","Sa","Chan","Suo","Liao","Chong","Chuang","Guo","Bing","Feng","Shuai","Di","Qi","Sou","Zhai","Lian","Tang","Chi","Guan","Lu","Luo","Lou","Zong","Gai","Hu","Zha","Chuang","Tang","Hua","Cui","Nai","Mo","Jiang","Gui","Ying","Zhi","Ao","Zhi","Nie","Man","Shan","Kou","Shu","Suo","Tuan","Jiao","Mo","Mo","Zhe","Xian","Keng","Piao","Jiang","Yin","Gou","Qian","Lue","Ji","Ying","Jue","Pie","Pie","Lao","Dun","Xian","Ruan","Kui","Zan","Yi","Xun","Cheng","Cheng","Sa","Nao","Heng","Si","Qian","Huang","Da","Zun","Nian","Lin","Zheng","Hui","Zhuang","Jiao","Ji","Cao","Dan","Dan","Che","Bo","Che","Jue","Xiao","Liao","Ben","Fu","Qiao","Bo","Cuo","Zhuo","Zhuan","Tuo","Pu","Qin","Dun","Nian",null,"Xie","Lu","Jiao","Cuan","Ta","Han","Qiao","Zhua","Jian","Gan","Yong","Lei","Kuo","Lu","Shan","Zhuo","Ze","Pu","Chuo","Ji","Dang","Suo","Cao","Qing","Jing","Huan","Jie","Qin","Kuai","Dan","Xi","Ge","Pi","Bo","Ao","Ju","Ye",null,"Mang","Sou","Mi","Ji","Tai","Zhuo","Dao","Xing","Lan","Ca","Ju","Ye","Ru","Ye","Ye","Ni","Hu","Ji","Bin","Ning","Ge","Zhi","Jie","Kuo","Mo","Jian","Xie","Lie","Tan","Bai","Sou","Lu","Lue","Rao","Zhi"],KL[101]=["Pan","Yang","Lei","Sa","Shu","Zan","Nian","Xian","Jun","Huo","Li","La","Han","Ying","Lu","Long","Qian","Qian","Zan","Qian","Lan","San","Ying","Mei","Rang","Chan",null,"Cuan","Xi","She","Luo","Jun","Mi","Li","Zan","Luan","Tan","Zuan","Li","Dian","Wa","Dang","Jiao","Jue","Lan","Li","Nang","Zhi","Gui","Gui","Qi","Xin","Pu","Sui","Shou","Kao","You","Gai","Yi","Gong","Gan","Ban","Fang","Zheng","Bo","Dian","Kou","Min","Wu","Gu","He","Ce","Xiao","Mi","Chu","Ge","Di","Xu","Jiao","Min","Chen","Jiu","Zhen","Duo","Yu","Chi","Ao","Bai","Xu","Jiao","Duo","Lian","Nie","Bi","Chang","Dian","Duo","Yi","Gan","San","Ke","Yan","Dun","Qi","Dou","Xiao","Duo","Jiao","Jing","Yang","Xia","Min","Shu","Ai","Qiao","Ai","Zheng","Di","Zhen","Fu","Shu","Liao","Qu","Xiong","Xi","Jia
1o","Sen","Jiao","Zhuo","Yi","Lian","Bi","Li","Xiao","Xiao","Wen","Xue","Qi","Qi","Zhai","Bin","Jue","Zhai",null,"Fei","Ban","Ban","Lan","Yu","Lan","Wei","Dou","Sheng","Liao","Jia","Hu","Xie","Jia","Yu","Zhen","Jiao","Wo","Tou","Chu","Jin","Chi","Yin","Fu","Qiang","Zhan","Qu","Zhuo","Zhan","Duan","Zhuo","Si","Xin","Zhuo","Zhuo","Qin","Lin","Zhuo","Chu","Duan","Zhu","Fang","Xie","Hang","Yu","Shi","Pei","You","Mye","Pang","Qi","Zhan","Mao","Lu","Pei","Pi","Liu","Fu","Fang","Xuan","Jing","Jing","Ni","Zu","Zhao","Yi","Liu","Shao","Jian","Es","Yi","Qi","Zhi","Fan","Piao","Fan","Zhan","Guai","Sui","Yu","Wu","Ji","Ji","Ji","Huo","Ri","Dan","Jiu","Zhi","Zao","Xie","Tiao","Xun","Xu","Xu","Xu","Gan","Han","Tai","Di","Xu","Chan","Shi","Kuang","Yang","Shi","Wang","Min","Min","Tun","Chun","Wu"],KL[102]=["Yun","Bei","Ang","Ze","Ban","Jie","Kun","Sheng","Hu","Fang","Hao","Gui","Chang","Xuan","Ming","Hun","Fen","Qin","Hu","Yi","Xi","Xin","Yan","Ze","Fang","Tan","Shen","Ju","Yang","Zan","Bing","Xing","Ying","Xuan","Pei","Zhen","Ling","Chun","Hao","Mei","Zuo","Mo","Bian","Xu","Hun","Zhao","Zong","Shi","Shi","Yu","Fei","Die","Mao","Ni","Chang","Wen","Dong","Ai","Bing","Ang","Zhou","Long","Xian","Kuang","Tiao","Chao","Shi","Huang","Huang","Xuan","Kui","Xu","Jiao","Jin","Zhi","Jin","Shang","Tong","Hong","Yan","Gai","Xiang","Shai","Xiao","Ye","Yun","Hui","Han","Han","Jun","Wan","Xian","Kun","Zhou","Xi","Cheng","Sheng","Bu","Zhe","Zhe","Wu","Han","Hui","Hao","Chen","Wan","Tian","Zhuo","Zui","Zhou","Pu","Jing","Xi","Shan","Yi","Xi","Qing","Qi","Jing","Gui","Zhen","Yi","Zhi","An","Wan","Lin","Liang","Chang","Wang","Xiao","Zan","Hi","Xuan","Xuan","Yi","Xia","Yun","Hui","Fu","Min","Kui","He","Ying","Du","Wei","Shu","Qing","Mao","Nan","Jian","Nuan","An","Yang","Chun","Yao","Suo","Jin","Ming","Jiao","Kai","Gao","Weng","Chang","Qi","Hao","Yan","Li","Ai","Ji","Gui","Men","Zan","Xie","Hao","Mu","Mo","Cong","Ni","Zhang","Hui","Bao","Han","Xuan","Chuan","Liao","Xian","Dan","Jing","Pie","Lin","Tun","Xi","Yi","Ji","Huang","Tai","Ye","Ye","Li","Tan","Tong","Xiao","Fei","Qin","Zhao","Hao","Yi","Xiang","Xing","Sen","Jiao","Bao","Jing","Yian","Ai","Ye","Ru","Shu","Meng","Xun","Yao","Pu","Li","Chen","Kuang","Die",null,"Yan","Huo","Lu","Xi","Rong","Long","Nang","Luo","Luan","Shai","Tang","Yan","Chu","Yue","Yue","Qu","Yi","Geng","Ye","Hu","He","Shu","Cao","Cao","Noboru","Man","Ceng","Ceng","Ti"],KL[103]=["Zui","Can","Xu","Hui","Yin","Qie","Fen","Pi","Yue","You","Ruan","Peng","Ban","Fu","Ling","Fei","Qu",null,"Nu","Tiao","Shuo","Zhen","Lang","Lang","Juan","Ming","Huang","Wang","Tun","Zhao","Ji","Qi","Ying","Zong","Wang","Tong","Lang",null,"Meng","Long","Mu","Deng","Wei","Mo","Ben","Zha","Zhu","Shu",null,"Zhu","Ren","Ba","Po","Duo","Duo","Dao","Li","Qiu","Ji","Jiu","Bi","Xiu","Ting","Ci","Sha","Eburi","Za","Quan","Qian","Yu","Gan","Wu","Cha","Shan","Xun","Fan","Wu","Zi","Li","Xing","Cai","Cun","Ren","Shao","Tuo","Di","Zhang","Mang","Chi","Yi","Gu","Gong","Du","Yi","Qi","Shu","Gang","Tiao","Moku","Soma","Tochi","Lai","Sugi","Mang","Yang","Ma","Miao","Si","Yuan","Hang","Fei","Bei","Jie","Dong","Gao","Yao","Xian","Chu","Qun","Pa","Shu","Hua","Xin","Chou","Zhu","Chou","Song","Ban","Song","Ji","Yue","Jin","Gou","Ji","Mao","Pi","Bi","Wang","Ang","Fang","Fen","Yi","Fu","Nan","Xi","Hu","Ya","Dou","Xun","Zhen","Yao","Lin","Rui","E","Mei","Zhao","Guo","Zhi","Cong","Yun","Waku","Dou","Shu","Zao",null,"Li","Haze","Jian","Cheng","Matsu","Qiang","Feng","Nan","Xiao","Xian","Ku","Ping","Yi","Xi","Zhi","Guai","Xiao","Jia","Jia","Gou","Fu","Mo","Yi","Ye","Ye","Shi","Nie","Bi","Duo","Yi","Ling","Bing","Ni","La","He","Pan","Fan","Zhong","Dai","Ci","Yang","Fu","Bo","Mou","Gan","Qi","Ran","Rou","Mao","Zhao","Song","Zhe","Xia","You","Shen","Ju","Tuo","Zuo","Nan","Ning","Yong","Di","Zhi","Zha","Cha","Dan","Gu","Pu","Jiu","Ao","Fu","Jian","Bo","Duo","Ke","Nai","Zhu","Bi","Liu","Chai","Zha","Si","Zhu","Pei","Shi","Guai","Cha","Yao","Jue","Jiu","Shi"],KL[104]
vendor: 1,591 bytes, line 1
1=["Zhi","Liu","Mei","Hoy","Rong","Zha",null,"Biao","Zhan","Jie","Long","Dong","Lu","Sayng","Li","Lan","Yong","Shu","Xun","Shuan","Qi","Zhen","Qi","Li","Yi","Xiang","Zhen","Li","Su","Gua","Kan","Bing","Ren","Xiao","Bo","Ren","Bing","Zi","Chou","Yi","Jie","Xu","Zhu","Jian","Zui","Er","Er","You","Fa","Gong","Kao","Lao","Zhan","Li","Yin","Yang","He","Gen","Zhi","Chi","Ge","Zai","Luan","Fu","Jie","Hang","Gui","Tao","Guang","Wei","Kuang","Ru","An","An","Juan","Yi","Zhuo","Ku","Zhi","Qiong","Tong","Sang","Sang","Huan","Jie","Jiu","Xue","Duo","Zhui","Yu","Zan","Kasei","Ying","Masu",null,"Zhan","Ya","Nao","Zhen","Dang","Qi","Qiao","Hua","Kuai","Jiang","Zhuang","Xun","Suo","Sha","Zhen","Bei","Ting","Gua","Jing","Bo","Ben","Fu","Rui","Tong","Jue","Xi","Lang","Liu","Feng","Qi","Wen","Jun","Gan","Cu","Liang","Qiu","Ting","You","Mei","Bang","Long","Peng","Zhuang","Di","Xuan","Tu","Zao","Ao","Gu","Bi","Di","Han","Zi","Zhi","Ren","Bei","Geng","Jian","Huan","Wan","Nuo","Jia","Tiao","Ji","Xiao","Lu","Huan","Shao","Cen","Fen","Song","Meng","Wu","Li","Li","Dou","Cen","Ying","Suo","Ju","Ti","Jie","Kun","Zhuo","Shu","Chan","Fan","Wei","Jing","Li","Bing","Fumoto","Shikimi","Tao","Zhi","Lai","Lian","Jian","Zhuo","Ling","Li","Qi","Bing","Zhun","Cong","Qian","Mian","Qi","Qi","Cai","Gun","Chan","Te","Fei","Pai","Bang","Pou","Hun","Zong","Cheng","Zao","Ji","Li","Peng","Yu","Yu","Gu","Hun","Dong","Tang","Gang","Wang","Di","Xi","Fan","Cheng","Zhan","Qi","Yuan","Yan","Yu","Quan","Yi","Sen","Ren","Chui","Leng","Qi","Zhuo","Fu","Ke","Lai","Zou","Zou","Zhuo","Guan","Fen","Fen","Chen","Qiong","Nie"]
1,KL[105]=["Wan","Guo","Lu","Hao","Jie","Yi","Chou","Ju","Ju","Cheng","Zuo","Liang","Qiang","Zhi","Zhui","Ya","Ju","Bei","Jiao","Zhuo","Zi","Bin","Peng","Ding","Chu","Chang","Kunugi","Momiji","Jian","Gui","Xi","Du","Qian","Kunugi","Soko","Shide","Luo","Zhi","Ken","Myeng","Tafu",null,"Peng","Zhan",null,"Tuo","Sen","Duo","Ye","Fou","Wei","Wei","Duan","Jia","Zong","Jian","Yi","Shen","Xi","Yan","Yan","Chuan","Zhan","Chun","Yu","He","Zha","Wo","Pian","Bi","Yao","Huo","Xu","Ruo","Yang","La","Yan","Ben","Hun","Kui","Jie","Kui","Si","Feng","Xie","Tuo","Zhi","Jian","Mu","Mao","Chu","Hu","Hu","Lian","Leng","Ting","Nan","Yu","You","Mei","Song","Xuan","Xuan","Ying","Zhen","Pian","Ye","Ji","Jie","Ye","Chu","Shun","Yu","Cou","Wei","Mei","Di","Ji","Jie","Kai","Qiu","Ying","Rou","Heng","Lou","Le","Hazou","Katsura","Pin","Muro","Gai","Tan","Lan","Yun","Yu","Chen","Lu","Ju","Sakaki",null,"Pi","Xie","Jia","Yi","Zhan","Fu","Nai","Mi","Lang","Rong","Gu","Jian","Ju","Ta","Yao","Zhen","Bang","Sha","Yuan","Zi","Ming","Su","Jia","Yao","Jie","Huang","Gan","Fei","Zha","Qian","Ma","Sun","Yuan","Xie","Rong","Shi","Zhi","Cui","Yun","Ting","Liu","Rong","Tang","Que","Zhai","Si","Sheng","Ta","Ke","Xi","Gu","Qi","Kao","Gao","Sun","Pan","Tao","Ge","Xun","Dian","Nou","Ji","Shuo","Gou","Chui","Qiang","Cha","Qian","Huai","Mei","Xu","Gang","Gao","Zhuo","Tuo","Hashi","Yang","Dian","Jia","Jian","Zui","Kashi","Ori","Bin","Zhu",null,"Xi","Qi","Lian","Hui","Yong","Qian","Guo","Gai","Gai","Tuan","Hua","Cu","Sen","Cui","Beng","You","Hu","Jiang","Hu","Huan","Kui","Yi","Nie","Gao","Kang","Gui","Gui","Cao","Man","Jin"],KL[106]=["Di","Zhuang","Le","Lang","Chen","Cong","Li","Xiu","Qing","Shuang","Fan","Tong","Guan","Ji","Suo","Lei","Lu","Liang","Mi","Lou","Chao","Su","Ke","Shu","Tang","Biao","Lu","Jiu","Shu","Zha","Shu","Zhang","Men","Mo","Niao","Yang","Tiao","Peng","Zhu","Sha","Xi","Quan","Heng","Jian","Cong",null,"Hokuso","Qiang","Tara","Ying","Er","Xin","Zhi","Qiao","Zui","Cong","Pu","Shu","Hua","Kui","Zhen","Zun","Yue","Zhan","Xi","Xun","Dian","Fa","Gan","Mo","Wu","Qiao","Nao","Lin","Liu","Qiao","Xian","Run","Fan","Zhan","Tuo","Lao","Yun","Shun","Tui","Cheng","Tang","Meng","Ju","Cheng","Su","Jue","Jue","Tan","Hui","Ji","Nuo","Xiang","Tuo","Ning","Rui","Zhu","Chuang","Zeng","Fen","Qiong","Ran","Heng","Cen","Gu","Liu","Lao","Gao","Chu","Zusa","Nude","Ca","San","Ji","Dou","Shou","Lu",null,null,"Yuan","Ta","Shu","Jiang","Tan","Lin","Nong","Yin","Xi","Sui","Shan","Zui","Xuan","Cheng","Gan","Ju","Zui","Yi","Qin","Pu","Yan","Lei","Feng","Hui","Dang","Ji","Sui","Bo","Bi","Ding","Chu","Zhua","Kuai","Ji","Jie","Jia","Qing","Zhe","Jian","Qiang","Dao","Yi","Biao","Song","She","Lin","Kunugi","Cha","Meng","Yin","Tao","Tai","Mian","Qi","Toan","Bin","Huo","Ji","Qian","Mi","Ning","Yi","Gao","Jian","Yin","Er","Qing","Yan","Qi","Mi","Zhao","Gui","Chun","Ji","Kui","Po","Deng","Chu",null,"Mian","You","Zhi","Guang","Qian","Lei","Lei","Sa","Lu","Li","Cuan","Lu","Mie","Hui","Ou","Lu","Jie","Gao","Du","Yuan","Li","Fei","Zhuo","Sou","Lian","Tamo","Chu",null,"Zhu","Lu","Yan","Li","Zhu","Chen","Jie","E","Su","Huai","Nie","Yu","Long","Lai",null,"Xian","Kwi","Ju","Xiao","Ling","Ying","Jian","Yin","You","Ying"],KL[107]=["Xiang","Nong","Bo","Chan","Lan","Ju","Shuang","She","Wei","Cong","Quan","Qu","Cang",null,"Yu","Luo","Li","Zan","Luan","Dang","Jue","Em","Lan","Lan","Zhu","Lei","Li","Ba","Nang","Yu","Ling","Tsuki","Qian","Ci","Huan","Xin","Yu","Yu","Qian","Ou","Xu","Chao","Chu","Chi","Kai","Yi","Jue","Xi","Xu","Xia","Yu","Kuai","Lang","Kuan","Shuo","Xi","Ai","Yi","Qi","Hu","Chi","Qin","Kuan","Kan","Kuan","Kan","Chuan","Sha","Gua","Yin","Xin","Xie","Yu","Qian","Xiao","Yi","Ge","Wu","Tan","Jin","Ou","Hu","Ti","Huan","Xu","Pen","Xi","Xiao","Xu","Xi","Sen","Lian","Chu","Yi","Kan","Yu","Chuo","Huan","Zhi","Zheng","Ci","Bu","Wu","Qi","Bu","Bu","Wai","Ju","Qian","Chi","Se","Chi","Se","Zhong","Sui","Sui","Li","Cuo","Yu","Li","Gui","Dai","Dai","Si","Jian","Zhe","Mo","Mo","Yao","Mo","Cu","Yang","Tian","Sheng","Dai","Shang","Xu","Xun","Shu","Can","Jue","Piao","Qia","Qiu","Su","Qing","Yun","Lian","Yi","Fou","Zhi","Ye","Can","Hun","Dan","Ji","Ye","Zhen","Yun","Wen","Chou","Bin","Ti","Jin","Shang","Yin","Diao","Cu","Hui","Cuan","Yi","Dan","Du","Jiang","Lian","Bin","Du","Tsukusu","Jian","Shu","Ou","Duan","Zhu","Yin","Qing","Yi","Sha","Que","Ke","Yao","Jun","Dian","Hui","Hui","Gu","Que","Ji","Yi","Ou","Hui","Duan","Yi","Xiao","Wu","Guan","Mu","Mei","Mei","Ai","Zuo","Du","Yu","Bi","Bi","Bi","Pi","Pi","Bi","Chan","Mao",null,null,"Pu","Mushiru","Jia","Zhan","Sai","Mu","Tuo","Xun","Er","Rong","Xian","Ju","Mu","Hao","Qiu","Dou","Mushiru","Tan","Pei","Ju","Duo","Cui","Bi","San",null,"Mao","Sui","Yu","Yu","Tuo","He","Jian","Ta","San"],KL[108]=["Lu","Mu","Li","Tong","Rong","Chang","Pu","Luo","Zhan","Sao","Zhan","Meng","Luo","Qu","Die","Shi","Di","Min","Jue","Mang","Qi","Pie","Nai","Qi","Dao","Xian","Chuan","Fen","Ri","Nei",null,"Fu","Shen","Dong","Qing","Qi","Yin","Xi","Hai","Yang","An","Ya","Ke","Qing","Ya","Dong","Dan","Lu","Qing","Yang","Yun","Yun","Shui","San","Zheng","Bing","Yong","Dang","Shitamizu","Le","Ni","Tun","Fan","Gui","Ting","Zhi","Qiu","Bin","Ze","Mian","Cuan","Hui","Diao","Han","Cha","Zhuo","Chuan","Wan","Fan","Dai","Xi","Tuo","Mang","Qiu","Qi","Shan","Pai","Han","Qian","Wu","Wu","Xun","Si","Ru","Gong","Jiang","Chi","Wu","Tsuchi",null,"Tang","Zhi","Chi","Qian","Mi","Yu","Wang","Qing","Jing","Rui","Jun","Hong","Tai","Quan","Ji","Bian","Bian","Gan","Wen","Zhong","Fang","Xiong","Jue","Hang","Niou","Qi","Fen","Xu","Xu","Qin","Yi","Wo","Yun","Yuan","Hang","Yan","Shen","Chen","Dan","You","Dun","Hu","Huo","Qie","Mu","Rou","Mei","Ta","Mian","Wu","Chong","Tian","Bi","Sha","Zhi","Pei","Pan","Zhui","Za","Gou","Liu","Mei","Ze","Feng","Ou","Li","
1Lun","Cang","Feng","Wei","Hu","Mo","Mei","Shu","Ju","Zan","Tuo","Tuo","Tuo","He","Li","Mi","Yi","Fa","Fei","You","Tian","Zhi","Zhao","Gu","Zhan","Yan","Si","Kuang","Jiong","Ju","Xie","Qiu","Yi","Jia","Zhong","Quan","Bo","Hui","Mi","Ben","Zhuo","Chu","Le","You","Gu","Hong","Gan","Fa","Mao","Si","Hu","Ping","Ci","Fan","Chi","Su","Ning","Cheng","Ling","Pao","Bo","Qi","Si","Ni","Ju","Yue","Zhu","Sheng","Lei","Xuan","Xue","Fu","Pan","Min","Tai","Yang","Ji","Yong","Guan","Beng","Xue","Long","Lu",null,"Bo","Xie","Po","Ze","Jing","Yin"],KL[109]=["Zhou","Ji","Yi","Hui","Hui","Zui","Cheng","Yin","Wei","Hou","Jian","Yang","Lie","Si","Ji","Er","Xing","Fu","Sa","Suo","Zhi","Yin","Wu","Xi","Kao","Zhu","Jiang","Luo",null,"An","Dong","Yi","Mou","Lei","Yi","Mi","Quan","Jin","Mo","Wei","Xiao","Xie","Hong","Xu","Shuo","Kuang","Tao","Qie","Ju","Er","Zhou","Ru","Ping","Xun","Xiong","Zhi","Guang","Huan","Ming","Huo","Wa","Qia","Pai","Wu","Qu","Liu","Yi","Jia","Jing","Qian","Jiang","Jiao","Cheng","Shi","Zhuo","Ce","Pal","Kuai","Ji","Liu","Chan","Hun","Hu","Nong","Xun","Jin","Lie","Qiu","Wei","Zhe","Jun","Han","Bang","Mang","Zhuo","You","Xi","Bo","Dou","Wan","Hong","Yi","Pu","Ying","Lan","Hao","Lang","Han","Li","Geng","Fu","Wu","Lian","Chun","Feng","Yi","Yu","Tong","Lao","Hai","Jin","Jia","Chong","Weng","Mei","Sui","Cheng","Pei","Xian","Shen","Tu","Kun","Pin","Nie","Han","Jing","Xiao","She","Nian","Tu","Yong","Xiao","Xian","Ting","E","Su","Tun","Juan","Cen","Ti","Li","Shui","Si","Lei","Shui","Tao","Du","Lao","Lai","Lian","Wei","Wo","Yun","Huan","Di",null,"Run","Jian","Zhang","Se","Fu","Guan","Xing","Shou","Shuan","Ya","Chuo","Zhang","Ye","Kong","Wo","Han","Tuo","Dong","He","Wo","Ju","Gan","Liang","Hun","Ta","Zhuo","Dian","Qie","De","Juan","Zi","Xi","Yao","Qi","Gu","Guo","Han","Lin","Tang","Zhou","Peng","Hao","Chang","Shu","Qi","Fang","Chi","Lu","Nao","Ju","Tao","Cong","Lei","Zhi","Peng","Fei","Song","Tian","Pi","Dan","Yu","Ni","Yu","Lu","Gan","Mi","Jing","Ling","Lun","Yin","Cui","Qu","Huai","Yu","Nian","Shen","Piao","Chun","Wa","Yuan","Lai","Hun","Qing","Yan","Qian","Tian","Miao","Zhi","Yin","Mi"],KL[110]=["Ben","Yuan","Wen","Re","Fei","Qing","Yuan","Ke","Ji","She","Yuan","Shibui","Lu","Zi","Du",null,"Jian","Min","Pi","Tani","Yu","Yuan","Shen","Shen","Rou","Huan","Zhu","Jian","Nuan","Yu","Qiu","Ting","Qu","Du","Feng","Zha","Bo","Wo","Wo","Di","Wei","Wen","Ru","Xie","Ce","Wei","Ge","Gang","Yan","Hong","Xuan","Mi","Ke","Mao","Ying","Yan","You","Hong","Miao","Xing","Mei","Zai","Hun","Nai","Kui","Shi","E","Pai","Mei","Lian","Qi","Qi","Mei","Tian","Cou","Wei","Can","Tuan","Mian","Hui","Mo","Xu","Ji","Pen","Jian","Jian","Hu","Feng","Xiang","Yi","Yin","Zhan","Shi","Jie","Cheng","Huang","Tan","Yu","Bi","Min","Shi","Tu","Sheng","Yong","Qu","Zhong","Suei","Jiu","Jiao","Qiou","Yin","Tang","Long","Huo","Yuan","Nan","Ban","You","Quan","Chui","Liang","Chan","Yan","Chun","Nie","Zi","Wan","Shi","Man","Ying","Ratsu","Kui",null,"Jian","Xu","Lu","Gui","Gai",null,null,"Po","Jin","Gui","Tang","Yuan","Suo","Yuan","Lian","Yao","Meng","Zhun","Sheng","Ke","Tai","Da","Wa","Liu","Gou","Sao","Ming","Zha","Shi","Yi","Lun","Ma","Pu","Wei","Li","Cai","Wu","Xi","Wen","Qiang","Ze","Shi","Su","Yi","Zhen","Sou","Yun","Xiu","Yin","Rong","Hun","Su","Su","Ni","Ta","Shi","Ru","Wei","Pan","Chu","Chu","Pang","Weng","Cang","Mie","He","Dian","Hao","Huang","Xi","Zi","Di","Zhi","Ying","Fu","Jie","Hua","Ge","Zi","Tao","Teng","Sui","Bi","Jiao","Hui","Gun","Yin","Gao","Long","Zhi","Yan","She","Man","Ying","Chun","Lu","Lan","Luan",null,"Bin","Tan","Yu","Sou","Hu","Bi","Biao","Zhi","Jiang","Kou","Shen","Shang","Di","Mi","Ao","Lu","Hu","Hu","You","Chan","Fan","Yong","Gun","Man"],KL[111]=["Qing","Yu","Piao","Ji","Ya","Jiao","Qi","Xi","Ji","Lu","Lu","Long","Jin","Guo","Cong","Lou","Zhi","Gai","Qiang","Li","Yan","Cao","Jiao","Cong","Qun","Tuan","Ou","Teng","Ye","Xi","Mi","Tang","Mo","Shang","Han","Lian","Lan","Wa","Li","Qian","Feng","Xuan","Yi","Man","Zi","Mang","Kang","Lei","Peng","Shu","Zhang","Zhang","Chong","Xu","Huan","Kuo","Jian","Yan","Chuang","Liao","Cui","Ti","Yang","Jiang","Cong","Ying","Hong","Xun","Shu","Guan","Ying","Xiao",null,null,"Xu","Lian","Zhi","Wei","Pi","Jue","Jiao","Po","Dang","Hui","Jie","Wu","Pa","Ji","Pan","Gui","Xiao","Qian","Qian","Xi","Lu","Xi","Xuan","Dun","Huang","Min","Run","Su","Liao","Zhen","Zhong","Yi","Di","Wan","Dan","Tan","Chao","Xun","Kui","Yie","Shao","Tu","Zhu","San","Hei","Bi","Shan","Chan","Chan","Shu","Tong","Pu","Lin","Wei","Se","Se","Cheng","Jiong","Cheng","Hua","Jiao","Lao","Che","Gan","Cun","Heng","Si","Shu","Peng","Han","Yun","Liu","Hong","Fu","Hao","He","Xian","Jian","Shan","Xi","Oki",null,"Lan",null,"Yu","Lin","Min","Zao","Dang","Wan","Ze","Xie","Yu","Li","Shi","Xue","Ling","Man","Zi","Yong","Kuai","Can","
1Lian","Dian","Ye","Ao","Huan","Zhen","Chan","Man","Dan","Dan","Yi","Sui","Pi","Ju","Ta","Qin","Ji","Zhuo","Lian","Nong","Guo","Jin","Fen","Se","Ji","Sui","Hui","Chu","Ta","Song","Ding",null,"Zhu","Lai","Bin","Lian","Mi","Shi","Shu","Mi","Ning","Ying","Ying","Meng","Jin","Qi","Pi","Ji","Hao","Ru","Zui","Wo","Tao","Yin","Yin","Dui","Ci","Huo","Jing","Lan","Jun","Ai","Pu","Zhuo","Wei","Bin","Gu","Qian","Xing","Hama","Kuo","Fei",null,"Boku","Jian","Wei","Luo","Zan","Lu","Li"],KL[112]=["You","Yang","Lu","Si","Jie","Ying","Du","Wang","Hui","Xie","Pan","Shen","Biao","Chan","Mo","Liu","Jian","Pu","Se","Cheng","Gu","Bin","Huo","Xian","Lu","Qin","Han","Ying","Yong","Li","Jing","Xiao","Ying","Sui","Wei","Xie","Huai","Hao","Zhu","Long","Lai","Dui","Fan","Hu","Lai",null,null,"Ying","Mi","Ji","Lian","Jian","Ying","Fen","Lin","Yi","Jian","Yue","Chan","Dai","Rang","Jian","Lan","Fan","Shuang","Yuan","Zhuo","Feng","She","Lei","Lan","Cong","Qu","Yong","Qian","Fa","Guan","Que","Yan","Hao","Hyeng","Sa","Zan","Luan","Yan","Li","Mi","Shan","Tan","Dang","Jiao","Chan",null,"Hao","Ba","Zhu","Lan","Lan","Nang","Wan","Luan","Xun","Xian","Yan","Gan","Yan","Yu","Huo","Si","Mie","Guang","Deng","Hui","Xiao","Xiao","Hu","Hong","Ling","Zao","Zhuan","Jiu","Zha","Xie","Chi","Zhuo","Zai","Zai","Can","Yang","Qi","Zhong","Fen","Niu","Jiong","Wen","Po","Yi","Lu","Chui","Pi","Kai","Pan","Yan","Kai","Pang","Mu","Chao","Liao","Gui","Kang","Tun","Guang","Xin","Zhi","Guang","Guang","Wei","Qiang",null,"Da","Xia","Zheng","Zhu","Ke","Zhao","Fu","Ba","Duo","Duo","Ling","Zhuo","Xuan","Ju","Tan","Pao","Jiong","Pao","Tai","Tai","Bing","Yang","Tong","Han","Zhu","Zha","Dian","Wei","Shi","Lian","Chi","Huang",null,"Hu","Shuo","Lan","Jing","Jiao","Xu","Xing","Quan","Lie","Huan","Yang","Xiao","Xiu","Xian","Yin","Wu","Zhou","Yao","Shi","Wei","Tong","Xue","Zai","Kai","Hong","Luo","Xia","Zhu","Xuan","Zheng","Po","Yan","Hui","Guang","Zhe","Hui","Kao",null,"Fan","Shao","Ye","Hui",null,"Tang","Jin","Re",null,"Xi","Fu","Jiong","Che","Pu","Jing","Zhuo","Ting","Wan","Hai","Peng","Lang","Shan","Hu","Feng","Chi","Rong"],KL[113]=["Hu","Xi","Shu","He","Xun","Ku","Jue","Xiao","Xi","Yan","Han","Zhuang","Jun","Di","Xie","Ji","Wu",null,null,"Han","Yan","Huan","Men","Ju","Chou","Bei","Fen","Lin","Kun","Hun","Tun","Xi","Cui","Wu","Hong","Ju","Fu","Wo","Jiao","Cong","Feng","Ping","Qiong","Ruo","Xi","Qiong","Xin","Zhuo","Yan","Yan","Yi","Jue","Yu","Gang","Ran","Pi","Gu",null,"Sheng","Chang","Shao",null,null,null,null,"Chen","He","Kui","Zhong","Duan","Xia","Hui","Feng","Lian","Xuan","Xing","Huang","Jiao","Jian","Bi","Ying","Zhu","Wei","Tuan","Tian","Xi","Nuan","Nuan","Chan","Yan","Jiong","Jiong","Yu","Mei","Sha","Wei","Ye","Xin","Qiong","Rou","Mei","Huan","Xu","Zhao","Wei","Fan","Qiu","Sui","Yang","Lie","Zhu","Jie","Gao","Gua","Bao","Hu","Yun","Xia",null,null,"Bian","Gou","Tui","Tang","Chao","Shan","N","Bo","Huang","Xie","Xi","Wu","Xi","Yun","He","He","Xi","Yun","Xiong","Nai","Shan","Qiong","Yao","Xun","Mi","Lian","Ying","Wen","Rong","Oozutsu",null,"Qiang","Liu","Xi","Bi","Biao","Zong","Lu","Jian","Shou","Yi","Lou","Feng","Sui","Yi","Tong","Jue","Zong","Yun","Hu","Yi","Zhi","Ao","Wei","Liao","Han","Ou","Re","Jiong","Man",null,"Shang","Cuan","Zeng","Jian","Xi","Xi","Xi","Yi","Xiao","Chi","Huang","Chan","Ye","Qian","Ran","Yan","Xian","Qiao","Zun","Deng","Dun","Shen","Jiao","Fen","Si","Liao","Yu","Lin","Tong","Shao","Fen","Fan","Yan","Xun","Lan","Mei","Tang","Yi","Jing","Men",null,null,"Ying","Yu","Yi","Xue","Lan","Tai","Zao","Can","Sui","Xi","Que","Cong","Lian","Hui","Zhu","Xie","Ling","Wei","Yi","Xie","Zhao","Hui","Tatsu","Nung","Lan","Ru","Xian","Kao","Xun","Jin","Chou","Chou","Yao"],KL[114]=["He","Lan","Biao","Rong","Li","Mo","Bao","Ruo","Lu","La","Ao","Xun","Kuang","Shuo",null,"Li","Lu","Jue","Liao","Yan","Xi","Xie","Long","Ye",null,"Rang","Yue","Lan","Cong","Jue","Tong","Guan",null,"Che","Mi","Tang","Lan","Zhu",null,"Ling","Cuan","Yu","Zhua","Tsumekanmuri","Pa","Zheng","Pao","Cheng","Yuan","Ai","Wei",null,"Jue","Jue","Fu","Ye","Ba","Die","Ye","Yao","Zu","Shuang","Er","Qiang","Chuang","Ge","Zang","Die","Qiang","Yong","Qiang","Pian","Ban","Pan","Shao","Jian","Pai","Du","Chuang","Tou","Zha","Bian","Die","Bang","Bo","Chuang","You",null,"Du","Ya","Cheng","Niu","Ushihen","Pin","Jiu","Mou","Tuo","Mu","Lao","Ren","Mang","Fang","Mao","Mu","Gang","Wu","Yan","Ge","Bei","Si","Jian","Gu","You","Ge","Sheng","Mu","Di","Qian","Quan","Quan","Zi","Te","Xi","Mang","Keng","Qian","Wu","Gu","Xi","Li","Li","Pou","Ji","Gang","Zhi","Ben","Quan","Run","Du","Ju","Jia","Jian","Feng","Pian","Ke","Ju","Kao","Chu","Xi","Bei","Luo","Jie","Ma","San","Wei","Li","Dun","Tong",null,"Jiang","Ikenie","Li","Du","Lie","Pi","Piao","Bao","Xi","Chou","Wei","Kui","Chou","Quan","Fan","Ba","Fan","Qiu","Ji","Cai","Chuo","An","Jie","Zhuang","Guang","Ma","You","Kang","Bo","Hou","Ya","Yin","Huan","Zhuang","Yun","Kuang","Niu","Di","Qing","Zhong","Mu","Bei","Pi","Ju","Ni","Sheng","Pao","Xia","Tuo","Hu","Ling","Fei","Pi","Ni","Ao","You","Gou","Yue","Ju","Dan","Po","Gu","Xian","Ning","Huan","Hen","Jiao","He","Zhao","Ji","Xun","Shan","Ta","Rong","Shou","Tong","Lao","Du","Xia","Shi","Hua","Zheng","Yu","Sun","Yu","Bi","Mang","Xi","Juan","Li","Xia","Yin","Suan","Lang","Bei","Zhi","Yan"],KL[115]=["Sha","Li","Han","Xian","Jing","Pai","Fei","Yao","Ba","Qi","Ni","Biao","Yin","Lai","Xi","Jian","Qiang","Kun","Yan","Guo","Zong","Mi","Chang","Yi","Zhi","Zheng","Ya","Meng","Cai","Cu","She","Kari","Cen","Luo","Hu","Zong","Ji","Wei","Feng","Wo","Yuan","Xing","Zhu","Mao","Wei","Yuan","Xian","Tuan","Ya","Nao","Xie","Jia","Hou","Bian","You","You","Mei","Zha","Yao","Sun","Bo","Ming","Hua","Yuan","Sou","Ma","Yuan","Dai","Yu","Shi","Hao",null,"Yi","Zhen","Chuang","Hao","Man","Jing","Jiang","Mu","Zhang","Chan","Ao","Ao","Hao","Cui","Fen","Jue","Bi","Bi","Huang","Pu","Lin","Yu","Tong","Yao","Liao","Shuo","Xiao","Swu","Ton","Xi","Ge","Juan","Du","Hui","Kuai","Xian","Xie","Ta","Xian","Xun","Ning","Pin","Huo","Nou","Meng","Lie","N
1ao","Guang","Shou","Lu","Ta","Xian","Mi","Rang","Huan","Nao","Luo","Xian","Qi","Jue","Xuan","Miao","Zi","Lu","Lu","Yu","Su","Wang","Qiu","Ga","Ding","Le","Ba","Ji","Hong","Di","Quan","Gan","Jiu","Yu","Ji","Yu","Yang","Ma","Gong","Wu","Fu","Wen","Jie","Ya","Fen","Bian","Beng","Yue","Jue","Yun","Jue","Wan","Jian","Mei","Dan","Pi","Wei","Huan","Xian","Qiang","Ling","Dai","Yi","An","Ping","Dian","Fu","Xuan","Xi","Bo","Ci","Gou","Jia","Shao","Po","Ci","Ke","Ran","Sheng","Shen","Yi","Zu","Jia","Min","Shan","Liu","Bi","Zhen","Zhen","Jue","Fa","Long","Jin","Jiao","Jian","Li","Guang","Xian","Zhou","Gong","Yan","Xiu","Yang","Xu","Luo","Su","Zhu","Qin","Ken","Xun","Bao","Er","Xiang","Yao","Xia","Heng","Gui","Chong","Xu","Ban","Pei",null,"Dang","Ei","Hun","Wen","E","Cheng","Ti","Wu","Wu","Cheng","Jun","Mei","Bei","Ting","Xian","Chuo"],KL[116]=["Han","Xuan","Yan","Qiu","Quan","Lang","Li","Xiu","Fu","Liu","Ye","Xi","Ling","Li","Jin","Lian","Suo","Chiisai",null,"Wan","Dian","Pin","Zhan","Cui","Min","Yu","Ju","Chen","Lai","Wen","Sheng","Wei","Dian","Chu","Zhuo","Pei","Cheng","Hu","Qi","E","Kun","Chang","Qi","Beng","Wan","Lu","Cong","Guan","Yan","Diao","Bei","Lin","Qin","Pi","Pa","Que","Zhuo","Qin","Fa",null,"Qiong","Du","Jie","Hun","Yu","Mao","Mei","Chun","Xuan","Ti","Xing","Dai","Rou","Min","Zhen","Wei","Ruan","Huan","Jie","Chuan","Jian","Zhuan","Yang","Lian","Quan","Xia","Duan","Yuan","Ye","Nao","Hu","Ying","Yu","Huang","Rui","Se","Liu","Shi","Rong","Suo","Yao","Wen","Wu","Jin","Jin","Ying","Ma","Tao","Liu","Tang","Li","
1Lang","Gui","Zhen","Qiang","Cuo","Jue","Zhao","Yao","Ai","Bin","Tu","Chang","Kun","Zhuan","Cong","Jin","Yi","Cui","Cong","Qi","Li","Ying","Suo","Qiu","Xuan","Ao","Lian","Man","Zhang","Yin",null,"Ying","Zhi","Lu","Wu","Deng","Xiou","Zeng","Xun","Qu","Dang","Lin","Liao","Qiong","Su","Huang","Gui","Pu","Jing","Fan","Jin","Liu","Ji",null,"Jing","Ai","Bi","Can","Qu","Zao","Dang","Jiao","Gun","Tan","Hui","Huan","Se","Sui","Tian",null,"Yu","Jin","Lu","Bin","Shou","Wen","Zui","Lan","Xi","Ji","Xuan","Ruan","Huo","Gai","Lei","Du","Li","Zhi","Rou","Li","Zan","Qiong","Zhe","Gui","Sui","La","Long","Lu","Li","Zan","Lan","Ying","Mi","Xiang","Xi","Guan","Dao","Zan","Huan","Gua","Bo","Die","Bao","Hu","Zhi","Piao","Ban","Rang","Li","Wa","Dekaguramu","Jiang","Qian","Fan","Pen","Fang","Dan","Weng","Ou","Deshiguramu","Miriguramu","Thon","Hu","Ling","Yi","Ping","Ci","Hekutogura","Juan","Chang","Chi","Sarake","Dang","Meng","Pou"],KL[117]=["Zhui","Ping","Bian","Zhou","Zhen","Senchigura","Ci","Ying","Qi","Xian","Lou","Di","Ou","Meng","Zhuan","Peng","Lin","Zeng","Wu","Pi","Dan","Weng","Ying","Yan","Gan","Dai","Shen","Tian","Tian","Han","Chang","Sheng","Qing","Sheng","Chan","Chan","Rui","Sheng","Su","Sen","Yong","Shuai","Lu","Fu","Yong","Beng","Feng","Ning","Tian","You","Jia","Shen","Zha","Dian","Fu","Nan","Dian","Ping","Ting","Hua","Ting","Quan","Zi","Meng","Bi","Qi","Liu","Xun","Liu","Chang","Mu","Yun","Fan","Fu","Geng","Tian","Jie","Jie","Quan","Wei","Fu","Tian","Mu","Tap","Pan","Jiang","Wa","Da","Nan","Liu","Ben","Zhen","Chu","Mu","Mu","Ce","Cen","Gai","Bi","Da","Zhi","Lue","Qi","Lue","Pan","Kesa","Fan","Hua","Yu","Yu","Mu","Jun","Yi","Liu","Yu","Die","Chou","Hua","Dang","Chuo","Ji","Wan","Jiang","Sheng","Chang","Tuan","Lei","Ji","Cha","Liu","Tatamu","Tuan","Lin","Jiang","Jiang","Chou","Bo","Die","Die","Pi","Nie","Dan","Shu","Shu","Zhi","Yi","Chuang","Nai","Ding","Bi","Jie","Liao","Gong","Ge","Jiu","Zhou","Xia","Shan","Xu","Nue","Li","Yang","Chen","You","Ba","Jie","Jue","Zhi","Xia","Cui","Bi","Yi","Li","Zong","Chuang","Feng","Zhu","Pao","Pi","Gan","Ke","Ci","Xie","Qi","Dan","Zhen","Fa","Zhi","Teng","Ju","Ji","Fei","Qu","Dian","Jia","Xian","Cha","Bing","Ni","Zheng","Yong","Jing","Quan","Chong","Tong","Yi","Kai","Wei","Hui","Duo","Yang","Chi","Zhi","Hen","Ya","Mei","Dou","Jing","Xiao","Tong","Tu","Mang","Pi","Xiao","Suan","Pu","Li","Zhi","Cuo","Duo","Wu","Sha","Lao","Shou","Huan","Xian","Yi","Peng","Zhang","Guan","Tan","Fei","Ma","Lin","Chi","Ji","Dian","An","Chi","Bi","Bei","Min","Gu","Dui","E","Wei"],KL[118]=["Yu","Cui","Ya","Zhu","Cu","Dan","Shen","Zhung","Ji","Yu","Hou","Feng","La","Yang","Shen","Tu","Yu","Gua","Wen","Huan","Ku","Jia","Yin","Yi","Lu","Sao","Jue","Chi","Xi","Guan","Yi","Wen","Ji","Chuang","Ban","Lei","Liu","Chai","Shou","Nue","Dian","Da","Pie","Tan","Zhang","Biao","Shen","Cu","Luo","Yi","Zong","Chou","Zhang","Zhai","Sou","Suo","Que","Diao","Lou","Lu","Mo","Jin","Yin","Ying","Huang","Fu","Liao","Long","Qiao","Liu","Lao","Xian","Fei","Dan","Yin","He","Ai","Ban","Xian","Guan","Guai","Nong","Yu","Wei","Yi","Yong","Pi","Lei","Li","Shu","Dan","Lin","Dian","Lin","Lai","Pie","Ji","Chi","Yang","Xian","Jie","Zheng",null,"Li","Huo","Lai","Shaku","Dian","Xian","Ying","Yin","Qu","Yong","Tan","Dian","Luo","Luan","Luan","Bo",null,"Gui","Po","Fa","Deng","Fa","Bai","Bai","Qie","Bi","Zao","Zao","Mao","De","Pa","Jie","Huang","Gui","Ci","Ling","Gao","Mo","Ji","Jiao","Peng","Gao","Ai","E","Hao","Han","Bi","Wan","Chou","Qian","Xi","Ai","Jiong","Hao","Huang","Hao","Ze","Cui","Hao","Xiao","Ye","Po","Hao","Jiao","Ai","Xing","Huang","Li","Piao","He","Jiao","Pi","Gan","Pao","Zhou","Jun","Qiu","Cun","Que","Zha","Gu","Jun","Jun","Zhou","Zha","Gu","Zhan","Du","Min","Qi","Ying","Yu","Bei","Zhao","Zhong","Pen","He","Ying","He","Yi","Bo","Wan","He","Ang","Zhan","Yan","Jian","He","Yu","Kui","Fan","Gai","Dao","Pan","Fu","Qiu","Sheng","Dao","Lu","Zhan","Meng","Li","Jin","Xu","Jian","Pan","Guan","An","Lu","Shu","Zhou","Dang","An","Gu","Li","Mu","Cheng","Gan","Xu","Mang","Mang","Zhi","Qi","Ruan","Tian","Xiang","Dun","Xin","Xi","Pan","Feng","Dun","Min"],KL[119]=["Ming","Sheng","Shi","Yun","Mian","Pan","Fang","Miao","Dan","Mei","Mao","Kan","Xian","Ou","Shi","Yang","Zheng","Yao","Shen","Huo","Da","Zhen","Kuang","Ju","Shen","Chi","Sheng","Mei","Mo","Zhu","Zhen","Zhen","Mian","Di","Yuan","Die","Yi","Zi","Zi","Chao","Zha","Xuan","Bing","Mi","Long","Sui","Dong","Mi","Die","Yi","Er","Ming","Xuan","Chi","Kuang","Juan","Mou","Zhen","Tiao","Yang","Yan","Mo","Zhong","Mai","Zhao","Zheng","Mei","Jun","Shao","Han","Huan","Di","Cheng","Cuo","Juan","E","Wan","Xian","Xi","Kun","Lai","Jian","Shan","Tian","Hun","Wan","Ling","Shi","Qiong","Lie","Yai","Jing","Zheng","Li","
1Lai","Sui","Juan","Shui","Sui","Du","Bi","Bi","Mu","Hun","Ni","Lu","Yi","Jie","Cai","Zhou","Yu","Hun","Ma","Xia","Xing","Xi","Gun","Cai","Chun","Jian","Mei","Du","Hou","Xuan","Ti","Kui","Gao","Rui","Mou","Xu","Fa","Wen","Miao","Chou","Kui","Mi","Weng","Kou","Dang","Chen","Ke","Sou","Xia","Qiong","Mao","Ming","Man","Shui","Ze","Zhang","Yi","Diao","Ou","Mo","Shun","Cong","Lou","Chi","Man","Piao","Cheng","Ji","Meng",null,"Run","Pie","Xi","Qiao","Pu","Zhu","Deng","Shen","Shun","Liao","Che","Xian","Kan","Ye","Xu","Tong","Mou","Lin","Kui","Xian","Ye","Ai","Hui","Zhan","Jian","Gu","Zhao","Qu","Wei","Chou","Sao","Ning","Xun","Yao","Huo","Meng","Mian","Bin","Mian","Li","Kuang","Jue","Xuan","Mian","Huo","Lu","Meng","Long","Guan","Man","Xi","Chu","Tang","Kan","Zhu","Mao","Jin","Lin","Yu","Shuo","Ce","Jue","Shi","Yi","Shen","Zhi","Hou","Shen","Ying","Ju","Zhou","Jiao","Cuo","Duan","Ai","Jiao","Zeng","Huo","Bai","Shi","Ding","Qi","Ji","Zi","Gan","Wu","Tuo","Ku","Qiang","Xi","Fan","Kuang"],KL[120]=["Dang","Ma","Sha","Dan","Jue","Li","Fu","Min","Nuo","Huo","Kang","Zhi","Qi","Kan","Jie","Fen","E","Ya","Pi","Zhe","Yan","Sui","Zhuan","Che","Dun","Pan","Yan",null,"Feng","Fa","Mo","Zha","Qu","Yu","Luo","Tuo","Tuo","Di","Zhai","Zhen","Ai","Fei","Mu","Zhu","Li","Bian","Nu","Ping","Peng","Ling","Pao","Le","Po","Bo","Po","Shen","Za","Nuo","Li","Long","Tong",null,"Li","Aragane","Chu","Keng","Quan","Zhu","Kuang","Huo","E","Nao","Jia","Lu","Wei","Ai","Luo","Ken","Xing","Yan","Tong","Peng","Xi",null,"Hong","Shuo","Xia","Qiao",null,"Wei","Qiao",null,"Keng","Xiao","Que","Chan","Lang","Hong","Yu","Xiao","Xia","Mang","Long","Iong","Che","Che","E","Liu","Ying","Mang","Que","Yan","Sha","Kun","Yu",null,"Kaki","Lu","Chen","Jian","Nue","Song","Zhuo","Keng","Peng","Yan","Zhui","Kong","Ceng","Qi","Zong","Qing","Lin","Jun","Bo","Ding","Min","Diao","Jian","He","Lu","Ai","Sui","Que","Ling","Bei","Yin","Dui","Wu","Qi","Lun","Wan","Dian","Gang","Pei","Qi","Chen","Ruan","Yan","Die","Ding","Du","Tuo","Jie","Ying","Bian","Ke","Bi","Wei","Shuo","Zhen","Duan","Xia","Dang","Ti","Nao","Peng","Jian","Di","Tan","Cha","Seki","Qi",null,"Feng","Xuan","Que","Que","Ma","Gong","Nian","Su","E","Ci","Liu","Si","Tang","Bang","Hua","Pi","Wei","Sang","Lei","Cuo","Zhen","Xia","Qi","Lian","Pan","Wei","Yun","Dui","Zhe","Ke","La",null,"Qing","Gun","Zhuan","Chan","Qi","Ao","Peng","Lu","Lu","Kan","Qiang","Chen","Yin","Lei","Biao","Qi","Mo","Qi","Cui","Zong","Qing","Chuo",null,"Ji","Shan","Lao","Qu","Zeng","Deng","Jian","Xi","Lin","Ding","Dian","Huang","Pan","Za","Qiao","Di","Li"],KL[121]=["Tani","Jiao",null,"Zhang","Qiao","Dun","Xian","Yu","Zhui","He","Huo","Zhai","Lei","Ke","Chu","Ji","Que","Dang","Yi","Jiang","Pi","Pi","Yu","Pin","Qi","Ai","Kai","Jian","Yu","Ruan","Meng","Pao","Ci",null,null,"Mie","Ca","Xian","Kuang","Lei","Lei","Zhi","Li","Li","Fan","Que","Pao","Ying","Li","Long","Long","Mo","Bo","Shuang","Guan","Lan","Zan","Yan","Shi","Shi","Li","Reng","She","Yue","Si","Qi","Ta","Ma","Xie","Xian","Xian","Zhi","Qi","Zhi","Beng","Dui","Zhong",null,"Yi","Shi","You","Zhi","Tiao","Fu","Fu","Mi","Zu","Zhi","Suan","Mei","Zuo","Qu","Hu","Zhu","Shen","Sui","Ci","Chai","Mi","Lu","Yu","Xiang","Wu","Tiao","Piao","Zhu","Gui","Xia","Zhi","Ji","Gao","Zhen","Gao","Shui","Jin","Chen","Gai","Kun","Di","Dao","Huo","Tao","Qi","Gu","Guan","Zui","Ling","Lu","Bing","Jin","Dao","Zhi","Lu","Shan","Bei","Zhe","Hui","You","Xi","Yin","Zi","Huo","Zhen","Fu","Yuan","Wu","Xian","Yang","Ti","Yi","Mei","Si","Di",null,"Zhuo","Zhen","Yong","Ji","Gao","Tang","Si","Ma","Ta",null,"Xuan","Qi","Yu","Xi","Ji","Si","Chan","Tan","Kuai","Sui","Li","Nong","Ni","Dao","Li","Rang","Yue","Ti","Zan","Lei","Rou","Yu","Yu","Chi","Xie","Qin","He","Tu","Xiu","Si","Ren","Tu","Zi","Cha","Gan","Yi","Xian","Bing","Nian","Qiu","Qiu","Zhong","Fen","Hao","Yun","Ke","Miao","Zhi","Geng","Bi","Zhi","Yu","Mi","Ku","Ban","Pi","Ni","Li","You","Zu","Pi","Ba","Ling","Mo","Cheng","Nian","Qin","Yang","Zuo","Zhi","Zhi","Shu","Ju","Zi","Huo","Ji","Cheng","Tong","Zhi","Huo","He","Yin","Zi","Zhi","Jie","Ren","Du","Yi","Zhu","Hui","Nong","Fu"],KL[122]=["Xi","Kao","Lang","Fu","Ze","Shui","Lu","Kun","Gan","Geng","Ti","Cheng","Tu","Shao","Shui","Ya","Lun","Lu","Gu","Zuo","Ren","Zhun","Bang","Bai","Ji","Zhi","Zhi","Kun","Leng","Peng","Ke","Bing","Chou","Zu","Yu","Su","Lue",null,"Yi","Xi","Bian","Ji","Fu","Bi","Nuo","Jie","Zhong","Zong","Xu","Cheng","Dao","Wen","Lian","Zi","Yu","Ji","Xu","Zhen","Zhi","Dao","Jia","Ji","Gao","Gao","Gu","Rong","Sui","You","Ji","Kang","Mu","Shan","Men","Zhi","Ji","Lu","Su","Ji","Ying","Wen","Qiu","Se",null,"Yi","Huang","Qie","Ji","Sui","Xiao","Pu","Jiao","Zhuo","Tong","Sai","Lu","Sui","Nong","Se","Hui","Rang","Nuo","Yu","Bin","Ji","Tui","Wen","Cheng","Huo","Gong","Lu","Biao",null,"Rang","Zhuo","Li","Zan","Xue","Wa","Jiu","Qiong","Xi","Qiong","Kong","Yu","Sen","Jing","Yao","Chuan","Zhun","Tu","Lao","Qie","Zhai","Yao","Bian","Bao","Yao","Bing","Wa","Zhu","Jiao","Qiao","Diao","Wu","Gui","Yao","Zhi","Chuang","Yao","Tiao","Jiao","Chuang","Jiong","Xiao","Cheng","Kou","Cuan","Wo","Dan","Ku","Ke","Zhui","Xu","Su","Guan","Kui","Dou",null,"Yin","Wo","Wa","Ya","Yu","Ju","Qiong","Yao","Yao","Tiao","Chao","Yu","Tian","Diao","Ju","Liao","Xi","Wu","Kui","Chuang","Zh
1ao",null,"Kuan","Long","Cheng","Cui","Piao","Zao","Cuan","Qiao","Qiong","Dou","Zao","Long","Qie","Li","Chu","Shi","Fou","Qian","Chu","Hong","Qi","Qian","Gong","Shi","Shu","Miao","Ju","Zhan","Zhu","Ling","Long","Bing","Jing","Jing","Zhang","Yi","Si","Jun","Hong","Tong","Song","Jing","Diao","Yi","Shu","Jing","Qu","Jie","Ping","Duan","Shao","Zhuan","Ceng","Deng","Cui","Huai","Jing","Kan","Jing","Zhu","Zhu","Le","Peng","Yu","Chi","Gan"],KL[123]=["Mang","Zhu","Utsubo","Du","Ji","Xiao","Ba","Suan","Ji","Zhen","Zhao","Sun","Ya","Zhui","Yuan","Hu","Gang","Xiao","Cen","Pi","Bi","Jian","Yi","Dong","Shan","Sheng","Xia","Di","Zhu","Na","Chi","Gu","Li","Qie","Min","Bao","Tiao","Si","Fu","Ce","Ben","Pei","Da","Zi","Di","Ling","Ze","Nu","Fu","Gou","Fan","Jia","Ge","Fan","Shi","Mao","Po","Sey","Jian","Qiong","Long","Souke","Bian","Luo","Gui","Qu","Chi","Yin","Yao","Xian","Bi","Qiong","Gua","Deng","Jiao","Jin","Quan","Sun","Ru","Fa","Kuang","Zhu","Tong","Ji","Da","Xing","Ce","Zhong","Kou","Lai","Bi","Shai","Dang","Zheng","Ce","Fu","Yun","Tu","Pa","Li","Lang","Ju","Guan","Jian","Han","Tong","Xia","Zhi","Cheng","Suan","Shi","Zhu","Zuo","Xiao","Shao","Ting","Ce","Yan","Gao","Kuai","Gan","Chou","Kago","Gang","Yun","O","Qian","Xiao","Jian","Pu","Lai","Zou","Bi","Bi","Bi","Ge","Chi","Guai","Yu","Jian","Zhao","Gu","Chi","Zheng","Jing","Sha","Zhou","Lu","Bo","Ji","Lin","Suan","Jun","Fu","Zha","Gu","Kong","Qian","Quan","Jun","Chui","Guan","Yuan","Ce","Ju","Bo","Ze","Qie","Tuo","Luo","Dan","Xiao","Ruo","Jian","Xuan","Bian","Sun","Xiang","Xian","Ping","Zhen","Sheng","Hu","Shi","Zhu","Yue","Chun","Lu","Wu","Dong","Xiao","Ji","Jie","Huang","Xing","Mei","Fan","Chui","Zhuan","Pian","Feng","Zhu","Hong","Qie","Hou","Qiu","Miao","Qian",null,"Kui","Sik","Lou","Yun","He","Tang","Yue","Chou","Gao","Fei","Ruo","Zheng","Gou","Nie","Qian","Xiao","Cuan","Gong","Pang","Du","Li","Bi","Zhuo","Chu","Shai","Chi","Zhu","Qiang","Long","Lan","Jian","Bu","Li","Hui","Bi","Di","Cong","Yan","Peng","Sen","Zhuan","Pai","Piao","Dou","Yu","Mie","Zhuan"],KL[124]=["Ze","Xi","Guo","Yi","Hu","Chan","Kou","Cu","Ping","Chou","Ji","Gui","Su","Lou","Zha","Lu","Nian","Suo","Cuan","Sasara","Suo","Le","Duan","Yana","Xiao","Bo","Mi","Si","Dang","Liao","Dan","Dian","Fu","Jian","Min","Kui","Dai","Qiao","Deng","Huang","Sun","Lao","Zan","Xiao","Du","Shi","Zan",null,"Pai","Hata","Pai","Gan","Ju","Du","Lu","Yan","Bo","Dang","Sai","Ke","Long","Qian","Lian","Bo","Zhou","Lai",null,"Lan","Kui","Yu","Yue","Hao","Zhen","Tai","Ti","Mi","Chou","Ji",null,"Hata","Teng","Zhuan","Zhou","Fan","Sou","Zhou","Kuji","Zhuo","Teng","Lu","Lu","Jian","Tuo","Ying","Yu","Lai","Long","Shinshi","Lian","Lan","Qian","Yue","Zhong","Qu","Lian","Bian","Duan","Zuan","Li","Si","Luo","Ying","Yue","Zhuo","Xu","Mi","Di","Fan","Shen","Zhe","Shen","Nu","Xie","Lei","Xian","Zi","Ni","Cun",null,"Qian","Kume","Bi","Ban","Wu","Sha","Kang","Rou","Fen","Bi","Cui",null,"Li","Chi","Nukamiso","Ro","Ba","Li","Gan","Ju","Po","Mo","Cu","Nian","Zhou","Li","Su","Tiao","Li","Qi","Su","Hong","Tong","Zi","Ce","Yue","Zhou","Lin","Zhuang","Bai",null,"Fen","Ji",null,"Sukumo","Liang","Xian","Fu","Liang","Can","Geng","Li","Yue","Lu","Ju","Qi","Cui","Bai","Zhang","Lin","Zong","Jing","Guo","Kouji","San","San","Tang","Bian","Rou","Mian","Hou","Xu","Zong","Hu","Jian","Zan","Ci","Li","Xie","Fu","Ni","Bei","Gu","Xiu","Gao","Tang","Qiu","Sukumo","Cao","Zhuang","Tang","Mi","San","Fen","Zao","Kang","Jiang","Mo","San","San","Nuo","Xi","Liang","Jiang","Kuai","Bo","Huan",null,"Zong","Xian","Nuo","Tuan","Nie","Li","Zuo","Di","Nie","Tiao","Lan","Mi","Jiao","Jiu","Xi","Gong","Zheng","Jiu","You"],KL[125]=["Ji","Cha","Zhou","Xun","Yue","Hong","Yu","He","Wan","Ren","Wen","Wen","Qiu","Na","Zi","Tou","Niu","Fou","Jie","Shu","Chun","Pi","Yin","Sha","Hong","Zhi","Ji","Fen","Yun","Ren","Dan","Jin","Su","Fang","Suo","Cui","Jiu","Zha","Kinu","Jin","Fu","Zhi","Ci","Zi","Chou","Hong","Zha","Lei","Xi","Fu","Xie","Shen","Bei","Zhu","Qu","Ling","Zhu","Shao","Gan","Yang","Fu","Tuo","Zhen","Dai","Zhuo","Shi","Zhong","Xian","Zu","Jiong","Ban","Ju","Mo","Shu","Zui","Wata","Jing","Ren","Heng","Xie","Jie","Zhu","Chou","Gua","Bai","Jue","Kuang","Hu","Ci","Geng","Geng","Tao","Xie","Ku","Jiao","Quan","Gai","Luo","Xuan","Bing","Xian","Fu","Gei","Tong","Rong","Tiao","Yin","Lei","Xie","Quan","Xu","Lun","Die","Tong","Si","Jiang","Xiang","Hui","Jue","Zhi","Jian","Juan","Chi","Mian","Zhen","Lu","Cheng","Qiu","Shu","Bang","Tong","Xiao","Wan","Qin","Geng","Xiu","Ti","Xiu","Xie","Hong","Xi","Fu","Ting","Sui","Dui","Kun","Fu","Jing","Hu","Zhi","Yan","Jiong","Feng","Ji","Sok","Kase","Zong","Lin","Duo","Li","Lu","Liang","Chou","Quan","Shao","Qi","Qi","Zhun","Qi","Wan","Qian","Xian","Shou","Wei","Qi","Tao","Wan","Gang","Wang","Beng","Zhui","Cai","Guo","Cui","Lun","Liu","Qi","Zhan","Bei","Chuo","Ling","Mian","Qi","Qie","Tan","Zong","Gun","Zou","Yi","Zi","Xing","Liang","Jin","Fei","Rui","Min","Yu","Zong","Fan","Lu","Xu","Yingl","Zh
1ang","Kasuri","Xu","Xiang","Jian","Ke","Xian","Ruan","Mian","Qi","Duan","Zhong","Di","Min","Miao","Yuan","Xie","Bao","Si","Qiu","Bian","Huan","Geng","Cong","Mian","Wei","Fu","Wei","Yu","Gou","Miao","Xie","Lian","Zong","Bian","Yun","Yin","Ti","Gua","Zhi","Yun","Cheng","Chan","Dai"],KL[126]=["Xia","Yuan","Zong","Xu","Nawa","Odoshi","Geng","Sen","Ying","Jin","Yi","Zhui","Ni","Bang","Gu","Pan","Zhou","Jian","Cuo","Quan","Shuang","Yun","Xia","Shuai","Xi","Rong","Tao","Fu","Yun","Zhen","Gao","Ru","Hu","Zai","Teng","Xian","Su","Zhen","Zong","Tao","Horo","Cai","Bi","Feng","Cu","Li","Suo","Yin","Xi","Zong","Lei","Zhuan","Qian","Man","Zhi","Lu","Mo","Piao","Lian","Mi","Xuan","Zong","Ji","Shan","Sui","Fan","Shuai","Beng","Yi","Sao","Mou","Zhou","Qiang","Hun","Sem","Xi","Jung","Xiu","Ran","Xuan","Hui","Qiao","Zeng","Zuo","Zhi","Shan","San","Lin","Yu","Fan","Liao","Chuo","Zun","Jian","Rao","Chan","Rui","Xiu","Hui","Hua","Zuan","Xi","Qiang","Un","Da","Sheng","Hui","Xi","Se","Jian","Jiang","Huan","Zao","Cong","Jie","Jiao","Bo","Chan","Yi","Nao","Sui","Yi","Shai","Xu","Ji","Bin","Qian","Lan","Pu","Xun","Zuan","Qi","Peng","Li","Mo","Lei","Xie","Zuan","Kuang","You","Xu","Lei","Xian","Chan","Kou","Lu","Chan","Ying","Cai","Xiang","Xian","Zui","Zuan","Luo","Xi","Dao","Lan","Lei","Lian","Si","Jiu","Yu","Hong","Zhou","Xian","He","Yue","Ji","Wan","Kuang","Ji","Ren","Wei","Yun","Hong","Chun","Pi","Sha","Gang","Na","Ren","Zong","Lun","Fen","Zhi","Wen","Fang","Zhu","Yin","Niu","Shu","Xian","Gan","Xie","Fu","Lian","Zu","Shen","Xi","Zhi","Zhong","Zhou","Ban","Fu","Zhuo","Shao","Yi","Jing","Dai","Bang","Rong","Jie","Ku","Rao","Die","Heng","Hui","Gei","Xuan","Jiang","Luo","Jue","Jiao","Tong","Geng","Xiao","Juan","Xiu","Xi","Sui","Tao","Ji","Ti","Ji","Xu","Ling",null,"Xu","Qi","Fei","Chuo","Zhang","Gun","Sheng","Wei","Mian","Shou","Beng","Chou","Tao","Liu","Quan","Zong","Zhan","Wan","Lu"],KL[127]=["Zhui","Zi","Ke","Xiang","Jian","Mian","Lan","Ti","Miao","Qi","Yun","Hui","Si","Duo","Duan","Bian","Xian","Gou","Zhui","Huan","Di","Lu","Bian","Min","Yuan","Jin","Fu","Ru","Zhen","Feng","Shuai","Gao","Chan","Li","Yi","Jian","Bin","Piao","Man","Lei","Ying","Suo","Mou","Sao","Xie","Liao","Shan","Zeng","Jiang","Qian","Zao","Huan","Jiao","Zuan","Fou","Xie","Gang","Fou","Que","Fou","Kaakeru","Bo","Ping","Hou",null,"Gang","Ying","Ying","Qing","Xia","Guan","Zun","Tan","Chang","Qi","Weng","Ying","Lei","Tan","Lu","Guan","Wang","Wang","Gang","Wang","Han",null,"Luo","Fu","Mi","Fa","Gu","Zhu","Ju","Mao","Gu","Min","Gang","Ba","Gua","Ti","Juan","Fu","Lin","Yan","Zhao","Zui","Gua","Zhuo","Yu","Zhi","An","Fa","Nan","Shu","Si","Pi","Ma","Liu","Ba","Fa","Li","Chao","Wei","Bi","Ji","Zeng","Tong","Liu","Ji","Juan","Mi","Zhao","Luo","Pi","Ji","Ji","Luan","Yang","Mie","Qiang","Ta","Mei","Yang","You","You","Fen","Ba","Gao","Yang","Gu","Qiang","Zang","Gao","Ling","Yi","Zhu","Di","Xiu","Qian","Yi","Xian","Rong","Qun","Qun","Qian","Huan","Zui","Xian","Yi","Yashinau","Qiang","Xian","Yu","Geng","Jie","Tang","Yuan","Xi","Fan","Shan","Fen","Shan","
1Lian","Lei","Geng","Nou","Qiang","Chan","Yu","Gong","Yi","Chong","Weng","Fen","Hong","Chi","Chi","Cui","Fu","Xia","Pen","Yi","La","Yi","Pi","Ling","Liu","Zhi","Qu","Xi","Xie","Xiang","Xi","Xi","Qi","Qiao","Hui","Hui","Xiao","Se","Hong","Jiang","Di","Cui","Fei","Tao","Sha","Chi","Zhu","Jian","Xuan","Shi","Pian","Zong","Wan","Hui","Hou","He","He","Han","Ao","Piao","Yi","Lian","Qu",null,"Lin","Pen","Qiao","Ao","Fan","Yi","Hui","Xuan","Dao"],KL[128]=["Yao","Lao",null,"Kao","Mao","Zhe","Qi","Gou","Gou","Gou","Die","Die","Er","Shua","Ruan","Er","Nai","Zhuan","Lei","Ting","Zi","Geng","Chao","Hao","Yun","Pa","Pi","Chi","Si","Chu","Jia","Ju","He","Chu","Lao","Lun","Ji","Tang","Ou","Lou","Nou","Gou","Pang","Ze","Lou","Ji","Lao","Huo","You","Mo","Huai","Er","Zhe","Ting","Ye","Da","Song","Qin","Yun","Chi","Dan","Dan","Hong","Geng","Zhi",null,"Nie","Dan","Zhen","Che","Ling","Zheng","You","Wa","Liao","Long","Zhi","Ning","Tiao","Er","Ya","Die","Gua",null,"Lian","Hao","Sheng","Lie","Pin","Jing","Ju","Bi","Di","Guo","Wen","Xu","Ping","Cong","Shikato",null,"Ting","Yu","Cong","Kui","Tsuraneru","Kui","Cong","Lian","Weng","Kui","Lian","Lian","Cong","Ao","Sheng","Song","Ting","Kui","Nie","Zhi","Dan","Ning","Qie","Ji","Ting","Ting","Long","Yu","Yu","Zhao","Si","Su","Yi","Su","Si","Zhao","Zhao","Rou","Yi","Le","Ji","Qiu","Ken","Cao","Ge","Di","Huan","Huang","Yi","Ren","Xiao","Ru","Zhou","Yuan","Du","Gang","Rong","Gan","Cha","Wo","Chang","Gu","Zhi","Han","Fu","Fei","Fen","Pei","Pang","Jian","Fang","Zhun","You","Na","Hang","Ken","Ran","Gong","Yu","Wen","Yao","Jin","Pi","Qian","Xi","Xi","Fei","Ken","Jing","Tai","Shen","Zhong","Zhang","Xie","Shen","Wei","Zhou","Die","Dan","Fei","Ba","Bo","Qu","Tian","Bei","Gua","Tai","Zi","Ku","Zhi","Ni","Ping","Zi","Fu","Pang","Zhen","Xian","Zuo","Pei","Jia","Sheng","Zhi","Bao","Mu","Qu","Hu","Ke","Yi","Yin","Xu","Yang","Long","Dong","Ka","Lu","Jing","Nu","Yan","Pang","Kua","Yi","Guang","Gai","Ge","Dong","Zhi","Xiao","Xiong","Xiong","Er","E","Xing","Pian","Neng","Zi","Gui"],KL[129]=["Cheng","Tiao","Zhi","Cui","Mei","Xie","Cui","Xie","Mo","Mai","Ji","Obiyaakasu",null,"Kuai","Sa","Zang","Qi","Nao","Mi","Nong","Luan","Wan","Bo","Wen","Guan","Qiu","Jiao","Jing","Rou","Heng","Cuo","Lie","Shan","Ting","Mei","Chun","Shen","Xie","De","Zui","Cu","Xiu","Xin","Tuo","Pao","Cheng","Nei","Fu","Dou","Tuo","Niao","Noy","Pi","Gu","Gua","Li","Lian","Zhang","Cui","Jie","Liang","Zhou","Pi","Biao","Lun","Pian","Guo","Kui","Chui","Dan","Tian","Nei","Jing","Jie","La","Yi","An","Ren","Shen","Chuo","Fu","Fu","Ju","Fei","Qiang","Wan","Dong","Pi","Guo","Zong","Ding","Wu","Mei","Ruan","Zhuan","Zhi","Cou","Gua","Ou","Di","An","Xing","Nao","Yu","Chuan","Nan","Yun","Zhong","Rou","E","Sai","Tu","Yao","Jian","Wei","Jiao","Yu","Jia","Duan","Bi","Chang","Fu","Xian","Ni","Mian","Wa","Teng","Tui","Bang","Qian","Lu","Wa","Sou","Tang","Su","Zhui","Ge","Yi","Bo","Liao","Ji","Pi","Xie","Gao","Lu","Bin","Ou","Chang","Lu","Guo","Pang","Chuai","Piao","Jiang","Fu","Tang","Mo","Xi","Zhuan","Lu","Jiao","Ying","Lu","Zhi","Tara","Chun","Lian","Tong","Peng","Ni","Zha","Liao","Cui","Gui","Xiao","Teng","Fan","Zhi","Jia
1o","Shan","Wu","Cui","Run","Xiang","Sui","Fen","Ying","Tan","Zhua","Dan","Kuai","Nong","Tun","Lian","Bi","Yong","Jue","Chu","Yi","Juan","La","Lian","Sao","Tun","Gu","Qi","Cui","Bin","Xun","Ru","Huo","Zang","Xian","Biao","Xing","Kuan","La","Yan","Lu","Huo","Zang","Luo","Qu","Zang","Luan","Ni","Zang","Chen","Qian","Wo","Guang","Zang","Lin","Guang","Zi","Jiao","Nie","Chou","Ji","Gao","Chou","Mian","Nie","Zhi","Zhi","Ge","Jian","Die","Zhi","Xiu","Tai","Zhen","Jiu","Xian","Yu","Cha"],KL[130]=["Yao","Yu","Chong","Xi","Xi","Jiu","Yu","Yu","Xing","Ju","Jiu","Xin","She","She","Yadoru","Jiu","Shi","Tan","Shu","Shi","Tian","Dan","Pu","Pu","Guan","Hua","Tan","Chuan","Shun","Xia","Wu","Zhou","Dao","Gang","Shan","Yi",null,"Pa","Tai","Fan","Ban","Chuan","Hang","Fang","Ban","Que","Hesaki","Zhong","Jian","Cang","Ling","Zhu","Ze","Duo","Bo","Xian","Ge","Chuan","Jia","Lu","Hong","Pang","Xi",null,"Fu","Zao","Feng","Li","Shao","Yu","Lang","Ting",null,"Wei","Bo","Meng","Nian","Ju","Huang","Shou","Zong","Bian","Mao","Die",null,"Bang","Cha","Yi","Sao","Cang","Cao","Lou","Dai","Sori","Yao","Tong","Yofune","Dang","Tan","Lu","Yi","Jie","Jian","Huo","Meng","Qi","Lu","Lu","Chan","Shuang","Gen","Liang","Jian","Jian","Se","Yan","Fu","Ping","Yan","Yan","Cao","Cao","Yi","Le","Ting","Qiu","Ai","Nai","Tiao","Jiao","Jie","Peng","Wan","Yi","Chai","Mian","Mie","Gan","Qian","Yu","Yu","Shuo","Qiong","Tu","Xia","Qi","Mang","Zi","Hui","Sui","Zhi","Xiang","Bi","Fu","Tun","Wei","Wu","Zhi","Qi","Shan","Wen","Qian","Ren","Fou","Kou","Jie","Lu","Xu","Ji","Qin","Qi","Yuan","Fen","Ba","Rui","Xin","Ji","Hua","Hua","Fang","Wu","Jue","Gou","Zhi","Yun","Qin","Ao","Chu","Mao","Ya","Fei","Reng","Hang","Cong","Yin","You","Bian","Yi","Susa","Wei","Li","Pi","E","Xian","Chang","Cang","Meng","Su","Yi","Yuan","Ran","Ling","Tai","Tiao","Di","Miao","Qiong","Li","Yong","Ke","Mu","Pei","Bao","Gou","Min","Yi","Yi","Ju","Pi","Ruo","Ku","Zhu","Ni","Bo","Bing","Shan","Qiu","Yao","Xian","Ben","Hong","Ying","Zha","Dong","Ju","Die","Nie","Gan","Hu","Ping","Mei","Fu","Sheng","Gu","Bi","Wei"],KL[131]=["Fu","Zhuo","Mao","Fan","Qie","Mao","Mao","Ba","Zi","Mo","Zi","Di","Chi","Ji","Jing","Long",null,"Niao",null,"Xue","Ying","Qiong","Ge","Ming","Li","Rong","Yin","Gen","Qian","Chai","Chen","Yu","Xiu","Zi","Lie","Wu","Ji","Kui","Ce","Chong","Ci","Gou","Guang","Mang","Chi","Jiao","Jiao","Fu","Yu","Zhu","Zi","Jiang","Hui","Yin","Cha","Fa","Rong","Ru","Chong","Mang","Tong","Zhong",null,"Zhu","Xun","Huan","Kua","Quan","Gai","Da","Jing","Xing","Quan","Cao","Jing","Er","An","Shou","Chi","Ren","Jian","Ti","Huang","Ping","Li","Jin","Lao","Shu","Zhuang","Da","Jia","Rao","Bi","Ze","Qiao","Hui","Qi","Dang",null,"Rong","Hun","Ying","Luo","Ying","Xun","Jin","Sun","Yin","Mai","Hong","Zhou","Yao","Du","Wei","Chu","Dou","Fu","Ren","Yin","He","Bi","Bu","Yun","Di","Tu","Sui","Sui","Cheng","Chen","Wu","Bie","Xi","Geng","Li","Fu","Zhu","Mo","Li","Zhuang","Ji","Duo","Qiu","Sha","Suo","Chen","Feng","Ju","Mei","Meng","Xing","Jing","Che","Xin","Jun","Yan","Ting","Diao","Cuo","Wan","Han","You","Cuo","Jia","Wang","You","Niu","Shao","Xian","Lang","Fu","E","Mo","Wen","Jie","Nan","Mu","Kan","Lai","
1Lian","Shi","Wo","Usagi","Lian","Huo","You","Ying","Ying","Nuc","Chun","Mang","Mang","Ci","Wan","Jing","Di","Qu","Dong","Jian","Zou","Gu","La","Lu","Ju","Wei","Jun","Nie","Kun","He","Pu","Zi","Gao","Guo","Fu","Lun","Chang","Chou","Song","Chui","Zhan","Men","Cai","Ba","Li","Tu","Bo","Han","Bao","Qin","Juan","Xi","Qin","Di","Jie","Pu","Dang","Jin","Zhao","Tai","Geng","Hua","Gu","Ling","Fei","Jin","An","Wang","Beng","Zhou","Yan","Ju","Jian","Lin","Tan","Shu","Tian","Dao"],KL[132]=["Hu","Qi","He","Cui","Tao","Chun","Bei","Chang","Huan","Fei","Lai","Qi","Meng","Ping","Wei","Dan","Sha","Huan","Yan","Yi","Tiao","Qi","Wan","Ce","Nai","Kutabireru","Tuo","Jiu","Tie","Luo",null,null,"Meng",null,"Yaji",null,"Ying","Ying","Ying","Xiao","Sa","Qiu","Ke","Xiang","Wan","Yu","Yu","Fu","Lian","Xuan","Yuan","Nan","Ze","Wo","Chun","Xiao","Yu","Pian","Mao","An","E","Luo","Ying","Huo","Gua","Jiang","Mian","Zuo","Zuo","Ju","Bao","Rou","Xi","Xie","An","Qu","Jian","Fu","Lu","Jing","Pen","Feng","Hong","Hong","Hou","Yan","Tu","Zhu","Zi","Xiang","Shen","Ge","Jie","Jing","Mi","Huang","Shen","Pu","Gai","Dong","Zhou","Qian","Wei","Bo","Wei","Pa","Ji","Hu","Zang","Jia","Duan","Yao","Jun","Cong","Quan","Wei","Xian","Kui","Ting","Hun","Xi","Shi","Qi","Lan","Zong","Yao","Yuan","Mei","Yun","Shu","Di","Zhuan","Guan","Sukumo","Xue","Chan","Kai","Kui",null,"Jiang","Lou","Wei","Pai",null,"Sou","Yin","Shi","Chun","Shi","Yun","Zhen","Lang","Nu","Meng","He","Que","Suan","Yuan","Li","Ju","Xi","Pang","Chu","Xu","Tu","Liu","Wo","Zhen","Qian","Zu","Po","Cuo","Yuan","Chu","Yu","Kuai","Pan","Pu","Pu","Na","Shuo","Xi","Fen","Yun","Zheng","Jian","Ji","Ruo","Cang","En","Mi","Hao","Sun","Zhen","Ming","Sou","Xu","Liu","Xi","Gu","Lang","Rong","Weng","Gai","Cuo","Shi","Tang","Luo","Ru","Suo","Xian","Bei","Yao","Gui","Bi","Zong","Gun","Za","Xiu","Ce","Hai","Lan",null,"Ji","Li","Can","Lang","Yu",null,"Ying","Mo","Diao","Tiao","Mao","Tong","Zhu","Peng","An","Lian","Cong","Xi","Ping","Qiu","Jin","Chun","Jie","Wei","Tui","Cao","Yu","Yi","Ji","Liao","Bi","Lu","Su"],KL[133]=["Bu","Zhang","Luo","Jiang","Man","Yan","Ling","Ji","Piao","Gun","Han","Di","Su","Lu","She","Shang","Di","Mie","Xun","Man","Bo","Di","Cuo","Zhe","Sen","Xuan","Wei","Hu","Ao","Mi","Lou","Cu","Zhong","Cai","Po","Jiang","Mi","Cong","Niao","Hui","Jun","Yin","Jian","Yan","Shu","Yin","Kui","Chen","Hu","Sha","Kou","Qian","Ma","Zang","Sonoko","Qiang","Dou","Lian","Lin","Kou","Ai","Bi","Li","Wei","Ji","Xun","Sheng","Fan","Meng","Ou","Chan","Dian","Xun","Jiao","Rui","Rui","Lei","Yu","Qiao","Chu","Hua","Jian","Mai","Yun","Bao","You","Qu","Lu","Rao","Hui","E","Teng","Fei","Jue","Zui","Fa","Ru","Fen","Kui","Shun","Rui","Ya","Xu","Fu","Jue","Dang","Wu","Tong","Si","Xiao","Xi","Long","Yun",null,"Qi","Jian","Yun","Sun","Ling","Yu","Xia","Yong","Ji","Hong","Si","Nong","Lei","Xuan","Yun","Yu","Xi","Hao","Bo","Hao","Ai","Wei","Hui","Wei","Ji","Ci","Xiang","Luan","Mie","Yi","Leng","Jiang","Can","Shen","Qiang","Lian","Ke","Yuan","Da","Ti","Tang","Xie","Bi","Zhan","Sun","Lian","Fan","Ding","Jie","Gu","Xie","Shu","Jian","Kao","Hong","Sa","Xin","Xun","Yao","Hie","Sou","Shu","Xun","Dui","Pin","Wei","Neng","Chou","Mai","Ru","Piao","Tai","Qi","Zao","Chen","Zhen","Er","Ni","Ying","Gao","Cong","Xiao","Qi","Fa","Jian","Xu","Kui","Jie","Bian","Diao","Mi","Lan","Jin","Cang","Miao","Qiong","Qie","Xian",null,"Ou","Xian","Su","Lu","Yi","Xu","Xie","Li","Yi","La","Lei","Xiao","Di","Zhi","Bei","Teng","Yao","Mo","Huan","Piao","Fan","Sou","Tan","Tui","Qiong","Qiao","Wei","Liu","Hui",null,"Gao","Yun",null,"Li","Shu","Chu","Ai","Lin","Zao","Xuan","Chen","Lai","Huo"],KL[134]=["Tuo","Wu","Rui","Rui","Qi","Heng","Lu","Su","Tui","Mang","Yun","Pin","Yu","Xun","Ji","Jiong","Xian","Mo","Hagi","Su","Jiong",null,"Nie","Bo","Rang","Yi","Xian","Yu","Ju","Lian","Lian","Yin","Qiang","Ying","Long","Tong","Wei","Yue","Ling","Qu","Yao","Fan","Mi","Lan","Kui","Lan","Ji","Dang","Katsura","Lei","Lei","Hua","Feng","Zhi","Wei","Kui","Zhan","Huai","Li","Ji","Mi","Lei","Huai","Luo","Ji","Kui","Lu","Jian","San",null,"Lei","Quan","Xiao","Yi","Luan","Men","Bie","Hu","Hu","Lu","Nue","Lu","Si","Xiao","Qian","Chu","Hu","Xu","Cuo","Fu","Xu","Xu","Lu","Hu","Yu","Hao","Jiao","Ju","Guo","Bao","Yan","Zhan","Zhan","Kui","Ban","Xi","Shu","Chong","Qiu","Diao","Ji","Qiu","Cheng","Shi",null,"Di","Zhe","She","Yu","Gan","Zi","Hong","Hui","Meng","Ge","Sui","Xia","Chai","Shi","Yi","Ma","Xiang","Fang","E","Pa","Chi","Qian","Wen","Wen","Rui","Bang","Bi","Yue","Yue","Jun","Qi","Ran","Yin","Qi","Tian","Yuan","Jue","Hui","Qin","Qi","Zhong","Ya","Ci","Mu","Wang","Fen","Fen","Hang","Gong","Zao","Fu","Ran","Jie","Fu","Chi","Dou","Piao","Xian","Ni","Te","Qiu","You","Zha","Ping","Chi","You","He","Han","Ju","Li","Fu","Ran","Zha","Gou","Pi","Bo","Xian","Zhu","Diao","Bie","Bing","Gu","Ran","Qu","She","Tie","Ling","Gu","Dan","Gu","Ying","Li","Cheng","Qu","Mou","Ge","Ci","Hui","Hui","Mang","Fu","Yang","Wa","Lie","Zhu","Yi","Xian","Kuo","Jiao","Li","Yi","P
1ing","Ji","Ha","She","Yi","Wang","Mo","Qiong","Qie","Gui","Gong","Zhi","Man","Ebi","Zhi","Jia","Rao","Si","Qi","Xing","Lie","Qiu","Shao","Yong","Jia","Shui","Che","Bai","E","Han"],KL[135]=["Shu","Xuan","Feng","Shen","Zhen","Fu","Xian","Zhe","Wu","Fu","Li","Lang","Bi","Chu","Yuan","You","Jie","Dan","Yan","Ting","Dian","Shui","Hui","Gua","Zhi","Song","Fei","Ju","Mi","Qi","Qi","Yu","Jun","Zha","Meng","Qiang","Si","Xi","Lun","Li","Die","Tiao","Tao","Kun","Gan","Han","Yu","Bang","Fei","Pi","Wei","Dun","Yi","Yuan","Su","Quan","Qian","Rui","Ni","Qing","Wei","Liang","Guo","Wan","Dong","E","Ban","Di","Wang","Can","Yang","Ying","Guo","Chan",null,"La","Ke","Ji","He","Ting","Mai","Xu","Mian","Yu","Jie","Shi","Xuan","Huang","Yan","Bian","Rou","Wei","Fu","Yuan","Mei","Wei","Fu","Ruan","Xie","You","Qiu","Mao","Xia","Ying","Shi","Chong","Tang","Zhu","Zong","Ti","Fu","Yuan","Hui","Meng","La","Du","Hu","Qiu","Die","Li","Gua","Yun","Ju","Nan","Lou","Qun","Rong","Ying","Jiang",null,"Lang","Pang","Si","Xi","Ci","Xi","Yuan","Weng","Lian","Sou","Ban","Rong","Rong","Ji","Wu","Qiu","Han","Qin","Yi","Bi","Hua","Tang","Yi","Du","Nai","He","Hu","Hui","Ma","Ming","Yi","Wen","Ying","Teng","Yu","Cang","So","Ebi","Man",null,"Shang","Zhe","Cao","Chi","Di","Ao","Lu","Wei","Zhi","Tang","Chen","Piao","Qu","Pi","Yu","Jian","Luo","Lou","Qin","Zhong","Yin","Jiang","Shuai","Wen","Jiao","Wan","Zhi","Zhe","Ma","Ma","Guo","Liu","Mao","Xi","Cong","Li","Man","Xiao","Kamakiri","Zhang","Mang","Xiang","Mo","Zui","Si","Qiu","Te","Zhi","Peng","Peng","Jiao","Qu","Bie","Liao","Pan","Gui","Xi","Ji","Zhuan","Huang","Fei","Lao","Jue","Jue","Hui","Yin","Chan","Jiao","Shan","Rao","Xiao","Mou","Chong","Xun","Si",null,"Cheng","Dang","Li","Xie","Shan","Yi","Jing","Da","Chan","Qi"],KL[136]=["Ci","Xiang","She","Luo","Qin","Ying","Chai","Li","Ze","Xuan","Lian","Zhu","Ze","Xie","Mang","Xie","Qi","Rong","Jian","Meng","Hao","Ruan","Huo","Zhuo","Jie","Bin","He","Mie","Fan","Lei","Jie","La","Mi","Li","Chun","Li","Qiu","Nie","Lu","Du","Xiao","Zhu","Long","Li","Long","Feng","Ye","Beng","Shang","Gu","Juan","Ying",null,"Xi","Can","Qu","Quan","Du","Can","Man","Jue","Jie","Zhu","Zha","Xie","Huang","Niu","Pei","Nu","Xin","Zhong","Mo","Er","Ke","Mie","Xi","Xing","Yan","Kan","Yuan",null,"Ling","Xuan","Shu","Xian","Tong","Long","Jie","Xian","Ya","Hu","Wei","Dao","Chong","Wei","Dao","Zhun","Heng","Qu","Yi","Yi","Bu","Gan","Yu","Biao","Cha","Yi","Shan","Chen","Fu","Gun","Fen","Shuai","Jie","Na","Zhong","Dan","Ri","Zhong","Zhong","Xie","Qi","Xie","Ran","Zhi","Ren","Qin","Jin","Jun","Yuan","Mei","Chai","Ao","Niao","Hui","Ran","Jia","Tuo","Ling","Dai","Bao","Pao","Yao","Zuo","Bi","Shao","Tan","Ju","He","Shu","Xiu","Zhen","Yi","Pa","Bo","Di","Wa","Fu","Gun","Zhi","Zhi","Ran","Pan","Yi","Mao","Tuo","Na","Kou","Xian","Chan","Qu","Bei","Gun","Xi","Ne","Bo","Horo","Fu","Yi","Chi","Ku","Ren","Jiang","Jia","Cun","Mo","Jie","Er","Luo","Ru","Zhu","Gui","Yin","Cai","Lie","Kamishimo","Yuki","Zhuang","Dang",null,"Kun","Ken","Niao","Shu","Jia","Kun","Cheng","Li","Juan","Shen","Pou","Ge","Yi","Yu","Zhen","Liu","Qiu","Qun","Ji","Yi","Bu","Zhuang","Shui","Sha","Qun","Li","Lian","Lian","Ku","Jian","Fou","Chan","Bi","Gun","Tao","Yuan","Ling","Chi","Chang","Chou","Duo","Biao","Liang","Chang","Pei","Pei","Fei","Yuan","Luo","Guo","Yan","Du","Xi","Zhi","Ju","Qi"],KL[137]=["Ji","Zhi","Gua","Ken","Che","Ti","Ti","Fu","Chong","Xie","Bian","Die","Kun","Duan","Xiu","Xiu","He","Yuan","Bao","Bao","Fu","Yu","Tuan","Yan","Hui","Bei","Chu","Lu","Ena","Hitoe","Yun","Da","Gou","Da","Huai","Rong","Yuan","Ru","Nai","Jiong","Suo","Ban","Tun","Chi","Sang","Niao","Ying","Jie","Qian","Huai","Ku","Lian","Bao","Li","Zhe","Shi","Lu","Yi","Die","Xie","Xian","Wei","Biao","Cao","Ji","Jiang","Sen","Bao","Xiang","Chihaya","Pu","Jian","Zhuan","Jian","Zui","Ji","Dan","Za","Fan","Bo","Xiang","Xin","Bie","Rao","Man","Lan","Ao","Duo","Gui","Cao","Sui","Nong","Chan","Lian","Bi","Jin","Dang","Shu","Tan","Bi","Lan","Pu","Ru","Zhi",null,"Shu","Wa","Shi","Bai","Xie","Bo","Chen","Lai","Long","Xi","Xian","Lan","Zhe","Dai","Tasuki","Zan","Shi","Jian","Pan","Yi","Ran","Ya","Xi","Xi","Yao","Feng","Tan",null,"Biao","Fu","Ba","He","Ji","Ji","Jian","Guan","Bian","Yan","Gui","Jue","Pian","Mao","Mi","Mi","Mie","Shi","Si","Zhan","Luo","Jue","Mi","Tiao","Lian","Yao","Zhi","Jun","Xi","Shan","Wei","Xi","Tian","Yu","Lan","E","Du","Qin","Pang","Ji","Ming","Ying","Gou","Qu","Zhan","Jin","Guan","Deng","Jian","
1Luo","Qu","Jian","Wei","Jue","Qu","Luo","Lan","Shen","Di","Guan","Jian","Guan","Yan","Gui","Mi","Shi","Zhan","Lan","Jue","Ji","Xi","Di","Tian","Yu","Gou","Jin","Qu","Jiao","Jiu","Jin","Cu","Jue","Zhi","Chao","Ji","Gu","Dan","Zui","Di","Shang","Hua","Quan","Ge","Chi","Jie","Gui","Gong","Chu","Jie","Hun","Qiu","Xing","Su","Ni","Ji","Lu","Zhi","Zha","Bi","Xing","Hu","Shang","Gong","Zhi","Xue","Chu","Xi","Yi","Lu","Jue","Xi","Yan","Xi"],KL[138]=["Yan","Yan","Ding","Fu","Qiu","Qiu","Jiao","Hong","Ji","Fan","Xun","Diao","Hong","Cha","Tao","Xu","Jie","Yi","Ren","Xun","Yin","Shan","Qi","Tuo","Ji","Xun","Yin","E","Fen","Ya","Yao","Song","Shen","Yin","Xin","Jue","Xiao","Ne","Chen","You","Zhi","Xiong","Fang","Xin","Chao","She","Xian","Sha","Tun","Xu","Yi","Yi","Su","Chi","He","Shen","He","Xu","Zhen","Zhu","Zheng","Gou","Zi","Zi","Zhan","Gu","Fu","Quan","Die","Ling","Di","Yang","Li","Nao","Pan","Zhou","Gan","Yi","Ju","Ao","Zha","Tuo","Yi","Qu","Zhao","Ping","Bi","Xiong","Qu","Ba","Da","Zu","Tao","Zhu","Ci","Zhe","Yong","Xu","Xun","Yi","Huang","He","Shi","Cha","Jiao","Shi","Hen","Cha","Gou","Gui","Quan","Hui","Jie","Hua","Gai","Xiang","Wei","Shen","Chou","Tong","Mi","Zhan","Ming","E","Hui","Yan","Xiong","Gua","Er","Beng","Tiao","Chi","Lei","Zhu","Kuang","Kua","Wu","Yu","Teng","Ji","Zhi","Ren","Su","Lang","E","Kuang","E","Shi","Ting","Dan","Bo","Chan","You","Heng","Qiao","Qin","Shua","An","Yu","Xiao","Cheng","Jie","Xian","Wu","Wu","Gao","Song","Pu","Hui","Jing","Shuo","Zhen","Shuo","Du","Yasashi","Chang","Shui","Jie","Ke","Qu","Cong","Xiao","Sui","Wang","Xuan","Fei","Chi","Ta","Yi","Na","Yin","Diao","Pi","Chuo","Chan","Chen","Zhun","Ji","Qi","Tan","Zhui","Wei","Ju","Qing","Jian","Zheng","Ze","Zou","Qian","Zhuo","Liang","Jian","Zhu","Hao","Lun","Shen","Biao","Huai","Pian","Yu","Die","Xu","Pian","Shi","Xuan","Shi","Hun","Hua","E","Zhong","Di","Xie","Fu","Pu","Ting","Jian","Qi","Yu","Zi","Chuan","Xi","Hui","Yin","An","Xian","Nan","Chen","Feng","Zhu","Yang","Yan","Heng","Xuan","Ge","Nuo","Qi"],KL[139]=["Mou","Ye","Wei",null,"Teng","Zou","Shan","Jian","Bo","Ku","Huang","Huo","Ge","Ying","Mi","Xiao","Mi","Xi","Qiang","Chen","Nue","Ti","Su","Bang","Chi","Qian","Shi","Jiang","Yuan","Xie","Xue","Tao","Yao","Yao",null,"Yu","Biao","Cong","Qing","Li","Mo","Mo","Shang","Zhe","Miu","Jian","Ze","Jie","Lian","Lou","Can","Ou","Guan","Xi","Zhuo","Ao","Ao","Jin","Zhe","Yi","Hu","Jiang","Man","Chao","Han","Hua","Chan","Xu","Zeng","Se","Xi","She","Dui","Zheng","Nao","Lan","E","Ying","Jue","Ji","Zun","Jiao","Bo","Hui","Zhuan","Mu","Zen","Zha","Shi","Qiao","Tan","Zen","Pu","Sheng","Xuan","Zao","Tan","Dang","Sui","Qian","Ji","Jiao","Jing","Lian","Nou","Yi","Ai","Zhan","Pi","Hui","Hua","Yi","Yi","Shan","Rang","Nou","Qian","Zhui","Ta","Hu","Zhou","Hao","Ye","Ying","Jian","Yu","Jian","Hui","Du","Zhe","Xuan","Zan","Lei","Shen","Wei","Chan","Li","Yi","Bian","Zhe","Yan","E","Chou","Wei","Chou","Yao","Chan","Rang","Yin","Lan","Chen","Huo","Zhe","Huan","Zan","Yi","Dang","Zhan","Yan","Du","Yan","Ji","Ding","Fu","Ren","Ji","Jie","Hong","Tao","Rang","Shan","Qi","Tuo","Xun","Yi","Xun","Ji","Ren","Jiang","Hui","Ou","Ju","Ya","Ne","Xu","
1E","Lun","Xiong","Song","Feng","She","Fang","Jue","Zheng","Gu","He","Ping","Zu","Shi","Xiong","Zha","Su","Zhen","Di","Zou","Ci","Qu","Zhao","Bi","Yi","Yi","Kuang","Lei","Shi","Gua","Shi","Jie","Hui","Cheng","Zhu","Shen","Hua","Dan","Gou","Quan","Gui","Xun","Yi","Zheng","Gai","Xiang","Cha","Hun","Xu","Zhou","Jie","Wu","Yu","Qiao","Wu","Gao","You","Hui","Kuang","Shuo","Song","Ai","Qing","Zhu","Zou","Nuo","Du","Zhuo","Fei","Ke","Wei"],KL[140]=["Yu","Shui","Shen","Diao","Chan","Liang","Zhun","Sui","Tan","Shen","Yi","Mou","Chen","Die","Huang","Jian","Xie","Nue","Ye","Wei","E","Yu","Xuan","Chan","Zi","An","Yan","Di","Mi","Pian","Xu","Mo","Dang","Su","Xie","Yao","Bang","Shi","Qian","Mi","Jin","Man","Zhe","Jian","Miu","Tan","Zen","Qiao","Lan","Pu","Jue","Yan","Qian","Zhan","Chen","Gu","Qian","Hong","Xia","Jue","Hong","Han","Hong","Xi","Xi","Huo","Liao","Han","Du","Long","Dou","Jiang","Qi","Shi","Li","Deng","Wan","Bi","Shu","Xian","Feng","Zhi","Zhi","Yan","Yan","Shi","Chu","Hui","Tun","Yi","Tun","Yi","Jian","Ba","Hou","E","Cu","Xiang","Huan","Jian","Ken","Gai","Qu","Fu","Xi","Bin","Hao","Yu","Zhu","Jia",null,"Xi","Bo","Wen","Huan","Bin","Di","Zong","Fen","Yi","Zhi","Bao","Chai","Han","Pi","Na","Pi","Gou","Na","You","Diao","Mo","Si","Xiu","Huan","Kun","He","He","Mo","Han","Mao","Li","Ni","Bi","Yu","Jia","Tuan","Mao","Pi","Xi","E","Ju","Mo","Chu","Tan","Huan","Jue","Bei","Zhen","Yuan","Fu","Cai","Gong","Te","Yi","Hang","Wan","Pin","Huo","Fan","Tan","Guan","Ze","Zhi","Er","Zhu","Shi","Bi","Zi","Er","Gui","Pian","Bian","Mai","Dai","Sheng","Kuang","Fei","Tie","Yi","Chi","Mao","He","Bi","Lu","Ren","Hui","Gai","Pian","Zi","Jia","Xu","Zei","Jiao","Gai","Zang","Jian","Ying","Xun","Zhen","She","Bin","Bin","Qiu","She","Chuan","Zang","Zhou","Lai","Zan","Si","Chen","Shang","Tian","Pei","Geng","Xian","Mai","Jian","Sui","Fu","Tan","Cong","Cong","Zhi","Ji","Zhang","Du","Jin","Xiong","Shun","Yun","Bao","Zai","Lai","Feng","Cang","Ji","Sheng","Ai","Zhuan","Fu","Gou","Sai","Ze","Liao"],KL[141]=["Wei","Bai","Chen","Zhuan","Zhi","Zhui","Biao","Yun","Zeng","Tan","Zan","Yan",null,"Shan","Wan","Ying","Jin","Gan","Xian","Zang","Bi","Du","Shu","Yan",null,"Xuan","Long","Gan","Zang","Bei","Zhen","Fu","Yuan","Gong","Cai","Ze","Xian","Bai","Zhang","Huo","Zhi","Fan","Tan","Pin","Bian","Gou","Zhu","Guan","Er","Jian","Bi","Shi","Tie","Gui","Kuang","Dai","Mao","Fei","He","Yi","Zei","Zhi","Jia","Hui","Zi","Ren","Lu","Zang","Zi","Gai","Jin","Qiu","Zhen","Lai","She","Fu","Du","Ji","Shu","Shang","Si","Bi","Zhou","Geng","Pei","Tan","Lai","Feng","Zhui","Fu","Zhuan","Sai","Ze","Yan","Zan","Yun","Zeng","Shan","Ying","Gan","Chi","Xi","She","Nan","Xiong","Xi","Cheng","He","Cheng","Zhe","Xia","Tang","Zou","Zou","Li","Jiu","Fu","Zhao","Gan","Qi","Shan","Qiong","Qin","Xian","Ci","Jue","Qin","Chi","Ci","Chen","Chen","Die","Ju","Chao","Di","Se","Zhan","Zhu","Yue","Qu","Jie","Chi","Chu","Gua","Xue","Ci","Tiao","Duo","Lie","Gan","Suo","Cu","Xi","Zhao","Su","Yin","Ju","Jian","Que","Tang","Chuo","Cui","Lu","Qu","Dang","Qiu","Zi","Ti","Qu","Chi","Huang","Qiao","Qiao","Yao","Zao","Ti",null,"Zan","Zan","Zu","Pa","Bao","Ku","Ke","Dun","Jue","Fu","Chen","Jian","Fang","Zhi","Sa","Yue","Pa","Qi","Yue","Qiang","Tuo","Tai","Yi","Nian","Ling","Mei","Ba","Die","Ku","Tuo","Jia","Ci","Pao","Qia","Zhu","Ju","Die","Zhi","Fu","Pan","Ju","Shan","Bo","Ni","Ju","Li","Gen","Yi","Ji","Dai","Xian","Jiao","Duo","Zhu","Zhuan","Kua","Zhuai","Gui","Qiong","Kui","Xiang","Chi","Lu","Beng","Zhi","Jia","Tiao","Cai","Jian","Ta","Qiao","Bi","Xian","Duo","Ji","Ju","Ji","Shu","Tu"],KL[142]=["Chu","Jing","Nie","Xiao","Bo","Chi","Qun","Mou","Shu","Lang","Yong","Jiao","Chou","Qiao",null,"Ta","Jian","Qi","Wo","Wei","Zhuo","Jie","Ji","Nie","Ju","Ju","Lun","Lu","Leng","Huai","Ju","Chi","Wan","Quan","Ti","Bo","Zu","Qie","Ji","Cu","Zong","Cai","Zong","Peng","Zhi","Zheng","Dian","Zhi","Yu","Duo","Dun","Chun","Yong","Zhong","Di","Zhe","Chen","Chuai","Jian","Gua","Tang","Ju","Fu","Zu","Die","Pian","Rou","Nuo","Ti","Cha","Tui","Jian","Dao","Cuo","Xi","Ta","Qiang","Zhan","Dian","Ti","Ji","Nie","Man","Liu","Zhan","Bi","Chong","Lu","Liao","Cu","Tang","Dai","Suo","Xi","Kui","Ji","Zhi","Qiang","Di","Man","Zong","Lian","Beng","Zao","Nian","Bie","Tui","Ju","Deng","Ceng","Xian","Fan","Chu","Zhong","Dun","Bo","Cu","Zu","Jue","Jue","Lin","Ta","Qiao","Qiao","Pu","Liao","Dun","Cuan","Kuang","Zao","Ta","Bi","Bi","Zhu","Ju","Chu","Qiao","Dun","Chou","Ji","Wu","Yue","Nian","Lin","Lie","Zhi","Li","Zhi","Chan","Chu","Duan","Wei","Long","Lin","Xian","Wei","Zuan","Lan","Xie","Rang","Xie","Nie","Ta","Qu","Jie","Cuan","Zuan","Xi","Kui","Jue","Lin","Shen","Gong","Dan","Segare","Qu","Ti","Duo","Duo","Gong","Lang","Nerau","Luo","Ai","Ji","Ju","Tang","Utsuke",null,"Yan","Shitsuke","Kang","Qu","Lou","Lao","Tuo","Zhi","Yagate","Ti","Dao","Yagate","Yu","Che","Ya","Gui","Jun","Wei","Yue","Xin","Di","Xuan","Fan","Ren","Shan","Qiang","Shu","Tun","Chen","Dai","E","Na","Qi","Mao","Ruan","Ren","Fan","Zhuan","Hong","Hu","Qu","Huang","Di","Ling","Dai","Ao","Zhen","Fan","Kuang","Ang","Peng","Bei","Gu","Ku","Pao","Zhu","Rong","E","Ba","Zhou","Zhi","Yao","Ke","Yi","Qing","Shi","Ping"],KL[143]=["Er","Qiong","Ju","Jiao","Guang","Lu","Kai","Quan","Zhou","Zai","Zhi","She","Liang","Yu","Shao","You","Huan","Yun","Zhe","Wan","Fu","Qing","Zhou","Ni","Ling","Zhe","Zhan","Liang","Zi","Hui","Wang","Chuo","Guo","Kan","Yi","Peng","Qian","Gun","Nian","Pian","Guan","Bei","Lun","Pai","Liang","Ruan","Rou","Ji","Yang","Xian","Chuan","Cou","Qun","Ge","You","Hong","Shu","Fu","Zi","Fu","Wen","Ben","Zhan","Yu","Wen","Tao","Gu","Zhen","Xia","Yuan","Lu","Jiu","Chao","Zhuan","Wei","Hun","Sori","Che","Jiao","Zhan","Pu","Lao","Fen","Fan","Lin","Ge","Se","Kan","Huan","Yi","Ji","Dui","Er","Yu","Xian","Hong","Lei","Pei","Li","Li","Lu","Lin","Che","Ya","Gui","Xuan","Di","Ren","Zhuan","E","Lun","Ruan","Hong","Ku","Ke","Lu","Zhou","Zhi","Yi","Hu","Zhen","Li","Yao","Qing","Shi","Zai","Zhi","Jia
1o","Zhou","Quan","Lu","Jiao","Zhe","Fu","Liang","Nian","Bei","Hui","Gun","Wang","Liang","Chuo","Zi","Cou","Fu","Ji","Wen","Shu","Pei","Yuan","Xia","Zhan","Lu","Che","Lin","Xin","Gu","Ci","Ci","Pi","Zui","Bian","La","La","Ci","Xue","Ban","Bian","Bian","Bian",null,"Bian","Ban","Ci","Bian","Bian","Chen","Ru","Nong","Nong","Zhen","Chuo","Chuo","Suberu","Reng","Bian","Bian","Sip","Ip","Liao","Da","Chan","Gan","Qian","Yu","Yu","Qi","Xun","Yi","Guo","Mai","Qi","Za","Wang","Jia","Zhun","Ying","Ti","Yun","Jin","Hang","Ya","Fan","Wu","Da","E","Huan","Zhe","Totemo","Jin","Yuan","Wei","Lian","Chi","Che","Ni","Tiao","Zhi","Yi","Jiong","Jia","Chen","Dai","Er","Di","Po","Wang","Die","Ze","Tao","Shu","Tuo","Kep","Jing","Hui","Tong","You","Mi","Beng","Ji","Nai","Yi","Jie","Zhui","Lie","Xun"],KL[144]=["Tui","Song","Gua","Tao","Pang","Hou","Ni","Dun","Jiong","Xuan","Xun","Bu","You","Xiao","Qiu","Tou","Zhu","Qiu","Di","Di","Tu","Jing","Ti","Dou","Yi","Zhe","Tong","Guang","Wu","Shi","Cheng","Su","Zao","Qun","Feng","Lian","Suo","Hui","Li","Sako","Lai","Ben","Cuo","Jue","Beng","Huan","Dai","Lu","You","Zhou","Jin","Yu","Chuo","Kui","Wei","Ti","Yi","Da","Yuan","Luo","Bi","Nuo","Yu","Dang","Sui","Dun","Sui","Yan","Chuan","Chi","Ti","Yu","Shi","Zhen","You","Yun","E","Bian","Guo","E","Xia","Huang","Qiu","Dao","Da","Wei","Appare","Yi","Gou","Yao","Chu","Liu","Xun","Ta","Di","Chi","Yuan","Su","Ta","Qian",null,"Yao","Guan","Zhang","Ao","Shi","Ce","Chi","Su","Zao","Zhe","Dun","Di","Lou","Chi","Cuo","Lin","Zun","Rao","Qian","Xuan","Yu","Yi","Wu","Liao","Ju","Shi","Bi","Yao","Mai","Xie","Sui","Huan","Zhan","Teng","Er","Miao","Bian","Bian","La","Li","Yuan","Yao","Luo","Li","Yi","Ting","Deng","Qi","Yong","Shan","Han","Yu","Mang","Ru","Qiong",null,"Kuang","Fu","Kang","Bin","Fang","Xing","Na","Xin","Shen","Bang","Yuan","Cun","Huo","Xie","Bang","Wu","Ju","You","Han","Tai","Qiu","Bi","Pei","Bing","Shao","Bei","Wa","Di","Zou","Ye","Lin","Kuang","Gui","Zhu","Shi","Ku","Yu","Gai","Ge","Xi","Zhi","Ji","Xun","Hou","Xing","Jiao","Xi","Gui","Nuo","Lang","Jia","Kuai","Zheng","Otoko","Yun","Yan","Cheng","Dou","Chi","Lu","Fu","Wu","Fu","Gao","Hao","Lang","Jia","Geng","Jun","Ying","Bo","Xi","Bei","Li","Yun","Bu","Xiao","Qi","Pi","Qing","Guo","Zhou","Tan","Zou","Ping","Lai","Ni","Chen","You","Bu","Xiang","Dan","Ju","Yong","Qiao","Yi","Du","Yan","Mei"],KL[145]=["Ruo","Bei","E","Yu","Juan","Yu","Yun","Hou","Kui","Xiang","Xiang","Sou","Tang","Ming","Xi","Ru","Chu","Zi","Zou","Ju","Wu","Xiang","Yun","Hao","Yong","Bi","Mo","Chao","Fu","Liao","Yin","Zhuan","Hu","Qiao","Yan","Zhang","Fan","Qiao","Xu","Deng","Bi","Xin","Bi","Ceng","Wei","Zheng","Mao","Shan","
1Lin","Po","Dan","Meng","Ye","Cao","Kuai","Feng","Meng","Zou","Kuang","Lian","Zan","Chan","You","Qi","Yan","Chan","Zan","Ling","Huan","Xi","Feng","Zan","Li","You","Ding","Qiu","Zhuo","Pei","Zhou","Yi","Hang","Yu","Jiu","Yan","Zui","Mao","Dan","Xu","Tou","Zhen","Fen","Sakenomoto",null,"Yun","Tai","Tian","Qia","Tuo","Zuo","Han","Gu","Su","Po","Chou","Zai","Ming","Luo","Chuo","Chou","You","Tong","Zhi","Xian","Jiang","Cheng","Yin","Tu","Xiao","Mei","Ku","Suan","Lei","Pu","Zui","Hai","Yan","Xi","Niang","Wei","Lu","Lan","Yan","Tao","Pei","Zhan","Chun","Tan","Zui","Chuo","Cu","Kun","Ti","Mian","Du","Hu","Xu","Xing","Tan","Jiu","Chun","Yun","Po","Ke","Sou","Mi","Quan","Chou","Cuo","Yun","Yong","Ang","Zha","Hai","Tang","Jiang","Piao","Shan","Yu","Li","Zao","Lao","Yi","Jiang","Pu","Jiao","Xi","Tan","Po","Nong","Yi","Li","Ju","Jiao","Yi","Niang","Ru","Xun","Chou","Yan","Ling","Mi","Mi","Niang","Xin","Jiao","Xi","Mi","Yan","Bian","Cai","Shi","You","Shi","Shi","Li","Chong","Ye","Liang","Li","Jin","Jin","Qiu","Yi","Diao","Dao","Zhao","Ding","Po","Qiu","He","Fu","Zhen","Zhi","Ba","Luan","Fu","Nai","Diao","Shan","Qiao","Kou","Chuan","Zi","Fan","Yu","Hua","Han","Gong","Qi","Mang","Ri","Di","Si","Xi","Yi","Chai","Shi","Tu","Xi","Nu","Qian","Ishiyumi","Jian","Pi","Ye","Yin"],KL[146]=["Ba","Fang","Chen","Xing","Tou","Yue","Yan","Fu","Pi","Na","Xin","E","Jue","Dun","Gou","Yin","Qian","Ban","Ji","Ren","Chao","Niu","Fen","Yun","Ji","Qin","Pi","Guo","Hong","Yin","Jun","Shi","Yi","Zhong","Nie","Gai","Ri","Huo","Tai","Kang","Habaki","Irori","Ngaak",null,"Duo","Zi","Ni","Tu","Shi","Min","Gu","E","Ling","Bing","Yi","Gu","Ba","Pi","Yu","Si","Zuo","Bu","You","Dian","Jia","Zhen","Shi","Shi","Tie","Ju","Zhan","Shi","She","Xuan","Zhao","Bao","He","Bi","Sheng","Chu","Shi","Bo","Zhu","Chi","Za","Po","Tong","Qian","Fu","Zhai","Liu","Qian","Fu","Li","Yue","Pi","Yang","Ban","Bo","Jie","Gou","Shu","Zheng","Mu","Ni","Nie","Di","Jia","Mu","Dan","Shen","Yi","Si","Kuang","Ka","Bei","Jian","Tong","Xing","Hong","Jiao","Chi","Er","Ge","Bing","Shi","Mou","Jia","Yin","Jun","Zhou","Chong","Shang","Tong","Mo","Lei","Ji","Yu","Xu","Ren","Zun","Zhi","Qiong","Shan","Chi","Xian","Xing","Quan","Pi","Tie","Zhu","Hou","Ming","Kua","Yao","Xian","Xian","Xiu","Jun","Cha","Lao","Ji","Pi","Ru","Mi","Yi","Yin","Guang","An","Diou","You","Se","Kao","Qian","Luan","Kasugai","Ai","Diao","Han","Rui","Shi","Keng","Qiu","Xiao","Zhe","Xiu","Zang","Ti","Cuo","Gua","Gong","Zhong","Dou","Lu","Mei","Lang","Wan","Xin","Yun","Bei","Wu","Su","Yu","Chan","Ting","Bo","Han","Jia","Hong","Cuan","Feng","Chan","Wan","Zhi","Si","Xuan","Wu","Wu","Tiao","Gong","Zhuo","Lue","Xing","Qian","Shen","Han","Lue","Xie","Chu","Zheng","Ju","Xian","Tie","Mang","Pu","Li","Pan","Rui","Cheng","Gao","Li","Te","Pyeng","Zhu",null,"Tu","Liu","Zui","Ju","Chang","Yuan","Jian","Gang","Diao","Tao","Chang"],KL[147]=["Lun","Kua","Ling","Bei","Lu","Li","Qiang","Pou","Juan","Min","Zui","Peng","An","Pi","Xian","Ya","Zhui","Lei","A","Kong","Ta","Kun","Du","Wei","Chui","Zi","Zheng","Ben","Nie","Cong","Qun","Tan","Ding","Qi","Qian","Zhuo","Qi","Yu","Jin","Guan","Mao","Chang","Tian","Xi","Lian","Tao","Gu","Cuo","Shu","Zhen","Lu","Meng","Lu","Hua","Biao","Ga","Lai","Ken","Kazari","Bu","Nai","Wan","Zan",null,"De","Xian",null,"Huo","Liang",null,"Men","Kai","Ying","Di","Lian","Guo","Xian","Du","Tu","Wei","Cong","Fu","Rou","Ji","E","Rou","Chen","Ti","Zha","Hong","Yang","Duan","Xia","Yu","Keng","Xing","Huang","Wei","Fu","Zhao","Cha","Qie","She","Hong","Kui","Tian","Mou","Qiao","Qiao","Hou","Tou","Cong","Huan","Ye","Min","Jian","Duan","Jian","Song","Kui","Hu","Xuan","Duo","Jie","Zhen","Bian","Zhong","Zi","Xiu","Ye","Mei","Pai","Ai","Jie",null,"Mei","Chuo","Ta","Bang","Xia","Lian","Suo","Xi","Liu","Zu","Ye","Nou","Weng","Rong","Tang","Suo","Qiang","Ge","Shuo","Chui","Bo","Pan","Sa","Bi","Sang","Gang","Zi","Wu","Ying","Huang","Tiao","Liu","Kai","Sun","Sha","Sou","Wan","Hao","Zhen","Zhen","Luo","Yi","Yuan","Tang","Nie","Xi","Jia","Ge","Ma","Juan","Kasugai","Habaki","Suo",null,null,null,"Na","Lu","Suo","Ou","Zu","Tuan","Xiu","Guan","Xuan","Lian","Shou","Ao","Man","Mo","Luo","Bi","Wei","Liu","Di","Qiao","Cong","Yi","Lu","Ao","Keng","Qiang","Cui","Qi","Chang","Tang","Man","Yong","Chan","Feng","Jing","Biao","Shu","Lou","Xiu","Cong","Long","Zan","Jian","Cao","Li","Xia","Xi","Kang",null,"Beng",null,null,"Zheng","Lu","Hua","Ji","Pu","Hui","Qiang","Po","Lin","Suo","Xiu","San","Cheng"],KL[148]=["Kui","Si","Liu","Nao","Heng","Pie","Sui","Fan","Qiao","Quan","Yang","Tang","Xiang","Jue","Jiao","Zun","Liao","Jie","Lao","Dui","Tan","Zan","Ji","Jian","Zhong","Deng","Ya","Ying","Dui","Jue","Nou","Ti","Pu","Tie",null,null,"Ding","Shan","Kai","Jian","Fei","Sui","Lu","Juan","Hui","Yu","Lian","Zhuo","Qiao","Qian","Zhuo","Lei","Bi","Tie","Huan","Ye","Duo","Guo","Dang","Ju","Fen","Da","Bei","Yi","Ai","Zong","Xun","Diao","Zhu","Heng","Zhui","Ji","Nie","Ta","Huo","Qing","Bin","Ying","Kui","Ning","Xu","Jian","Jian","Yari","Cha","Zhi","Mie","Li","
1Lei","Ji","Zuan","Kuang","Shang","Peng","La","Du","Shuo","Chuo","Lu","Biao","Bao","Lu",null,null,"Long","E","Lu","Xin","Jian","Lan","Bo","Jian","Yao","Chan","Xiang","Jian","Xi","Guan","Cang","Nie","Lei","Cuan","Qu","Pan","Luo","Zuan","Luan","Zao","Nie","Jue","Tang","Shu","Lan","Jin","Qiu","Yi","Zhen","Ding","Zhao","Po","Diao","Tu","Qian","Chuan","Shan","Ji","Fan","Diao","Men","Nu","Xi","Chai","Xing","Gai","Bu","Tai","Ju","Dun","Chao","Zhong","Na","Bei","Gang","Ban","Qian","Yao","Qin","Jun","Wu","Gou","Kang","Fang","Huo","Tou","Niu","Ba","Yu","Qian","Zheng","Qian","Gu","Bo","E","Po","Bu","Ba","Yue","Zuan","Mu","Dan","Jia","Dian","You","Tie","Bo","Ling","Shuo","Qian","Liu","Bao","Shi","Xuan","She","Bi","Ni","Pi","Duo","Xing","Kao","Lao","Er","Mang","Ya","You","Cheng","Jia","Ye","Nao","Zhi","Dang","Tong","Lu","Diao","Yin","Kai","Zha","Zhu","Xian","Ting","Diu","Xian","Hua","Quan","Sha","Jia","Yao","Ge","Ming","Zheng","Se","Jiao","Yi","Chan","Chong","Tang","An","Yin","Ru","Zhu","Lao","Pu","Wu","Lai","Te","Lian","Keng"],KL[149]=["Xiao","Suo","Li","Zheng","Chu","Guo","Gao","Tie","Xiu","Cuo","Lue","Feng","Xin","Liu","Kai","Jian","Rui","Ti","Lang","Qian","Ju","A","Qiang","Duo","Tian","Cuo","Mao","Ben","Qi","De","Kua","Kun","Chang","Xi","Gu","Luo","Chui","Zhui","Jin","Zhi","Xian","Juan","Huo","Pou","Tan","Ding","Jian","Ju","Meng","Zi","Qie","Ying","Kai","Qiang","Song","E","Cha","Qiao","Zhong","Duan","Sou","Huang","Huan","Ai","Du","Mei","Lou","Zi","Fei","Mei","Mo","Zhen","Bo","Ge","Nie","Tang","Juan","Nie","Na","Liu","Hao","Bang","Yi","Jia","Bin","Rong","Biao","Tang","Man","Luo","Beng","Yong","Jing","Di","Zu","Xuan","Liu","Tan","Jue","Liao","Pu","Lu","Dui","Lan","Pu","Cuan","Qiang","Deng","Huo","Lei","Huan","Zhuo","Lian","Yi","Cha","Biao","La","Chan","Xiang","Chang","Chang","Jiu","Ao","Die","Qu","Liao","Mi","Chang","Men","Ma","Shuan","Shan","Huo","Men","Yan","Bi","Han","Bi","San","Kai","Kang","Beng","Hong","Run","San","Xian","Xian","Jian","Min","Xia","Yuru","Dou","Zha","Nao","Jian","Peng","Xia","Ling","Bian","Bi","Run","He","Guan","Ge","Ge","Fa","Chu","Hong","Gui","Min","Se","Kun","Lang","Lu","Ting","Sha","Ju","Yue","Yue","Chan","Qu","Lin","Chang","Shai","Kun","Yan","Min","Yan","E","Hun","Yu","Wen","Xiang","Bao","Xiang","Qu","Yao","Wen","Ban","An","Wei","Yin","Kuo","Que","Lan","Du",null,"Phwung","Tian","Nie","Ta","Kai","He","Que","Chuang","Guan","Dou","Qi","Kui","Tang","Guan","Piao","Kan","Xi","Hui","Chan","Pi","Dang","Huan","Ta","Wen",null,"Men","Shuan","Shan","Yan","Han","Bi","Wen","Chuang","Run","Wei","Xian","Hong","Jian","Min","Kang","Men","Zha","Nao","Gui","Wen","Ta","Min","Lu","Kai"],KL[150]=["Fa","Ge","He","Kun","Jiu","Yue","Lang","Du","Yu","Yan","Chang","Xi","Wen","Hun","Yan","E","Chan","Lan","Qu","Hui","Kuo","Que","Ge","Tian","Ta","Que","Kan","Huan","Fu","Fu","Le","Dui","Xin","Qian","Wu","Yi","Tuo","Yin","Yang","Dou","E","Sheng","Ban","Pei","Keng","Yun","Ruan","Zhi","Pi","Jing","Fang","Yang","Yin","Zhen","Jie","Cheng","E","Qu","Di","Zu","Zuo","Dian","Ling","A","Tuo","Tuo","Po","Bing","Fu","Ji","Lu","Long","Chen","Xing","Duo","Lou","Mo","Jiang","Shu","Duo","Xian","Er","Gui","Yu","Gai","Shan","Xun","Qiao","Xing","Chun","Fu","Bi","Xia","Shan","Sheng","Zhi","Pu","Dou","Yuan","Zhen","Chu","Xian","Tou","Nie","Yun","Xian","Pei","Pei","Zou","Yi","Dui","Lun","Yin","Ju","Chui","Chen","Pi","Ling","Tao","Xian","Lu","Sheng","Xian","Yin","Zhu","Yang","Reng","Shan","Chong","Yan","Yin","Yu","Ti","Yu","Long","Wei","Wei","Nie","Dui","Sui","An","Huang","Jie","Sui","Yin","Gai","Yan","Hui","Ge","Yun","Wu","Wei","Ai","Xi","Tang","Ji","Zhang","Dao","Ao","Xi","Yin",null,"Rao","Lin","Tui","Deng","Pi","Sui","Sui","Yu","Xian","Fen","Ni","Er","Ji","Dao","Xi","Yin","E","Hui","Long","Xi","Li","Li","Li","Zhui","He","Zhi","Zhun","Jun","Nan","Yi","Que","Yan","Qian","Ya","Xiong","Ya","Ji","Gu","Huan","Zhi","Gou","Jun","Ci","Yong","Ju","Chu","Hu","Za","Luo","Yu","Chou","Diao","Sui","Han","Huo","Shuang","Guan","Chu","Za","Yong","Ji","Xi","Chou","Liu","Li","Nan","Xue","Za","Ji","Ji","Yu","Yu","Xue","Na","Fou","Se","Mu","Wen","Fen","Pang","Yun","Li","Li","Ang","Ling","Lei","An","Bao","Meng","Dian","Dang","Xing","Wu","Zhao"],KL[151]=["Xu","Ji","Mu","Chen","Xiao","Zha","Ting","Zhen","Pei","Mei","Ling","Qi","Chou","Huo","Sha","Fei","Weng","Zhan","Yin","Ni","Chou","Tun","Lin",null,"Dong","Ying","Wu","Ling","Shuang","Ling","Xia","Hong","Yin","Mo","Mai","Yun","Liu","Meng","Bin","Wu","Wei","Huo","Yin","Xi","Yi","Ai","Dan","Deng","Xian","Yu","Lu","Long","Dai","Ji","Pang","Yang","Ba","P
1i","Wei",null,"Xi","Ji","Mai","Meng","Meng","Lei","Li","Huo","Ai","Fei","Dai","Long","Ling","Ai","Feng","Li","Bao",null,"He","He","Bing","Qing","Qing","Jing","Tian","Zhen","Jing","Cheng","Qing","Jing","Jing","Dian","Jing","Tian","Fei","Fei","Kao","Mi","Mian","Mian","Pao","Ye","Tian","Hui","Ye","Ge","Ding","Cha","Jian","Ren","Di","Du","Wu","Ren","Qin","Jin","Xue","Niu","Ba","Yin","Sa","Na","Mo","Zu","Da","Ban","Yi","Yao","Tao","Tuo","Jia","Hong","Pao","Yang","Tomo","Yin","Jia","Tao","Ji","Xie","An","An","Hen","Gong","Kohaze","Da","Qiao","Ting","Wan","Ying","Sui","Tiao","Qiao","Xuan","Kong","Beng","Ta","Zhang","Bing","Kuo","Ju","La","Xie","Rou","Bang","Yi","Qiu","Qiu","He","Xiao","Mu","Ju","Jian","Bian","Di","Jian","On","Tao","Gou","Ta","Bei","Xie","Pan","Ge","Bi","Kuo","Tang","Lou","Gui","Qiao","Xue","Ji","Jian","Jiang","Chan","Da","Huo","Xian","Qian","Du","Wa","Jian","Lan","Wei","Ren","Fu","Mei","Juan","Ge","Wei","Qiao","Han","Chang",null,"Rou","Xun","She","Wei","Ge","Bei","Tao","Gou","Yun",null,"Bi","Wei","Hui","Du","Wa","Du","Wei","Ren","Fu","Han","Wei","Yun","Tao","Jiu","Jiu","Xian","Xie","Xian","Ji","Yin","Za","Yun","Shao","Le","Peng","Heng","Ying","Yun","Peng","Yin","Yin","Xiang"],KL[152]=["Hu","Ye","Ding","Qing","Pan","Xiang","Shun","Han","Xu","Yi","Xu","Gu","Song","Kui","Qi","Hang","Yu","Wan","Ban","Dun","Di","Dan","Pan","Po","Ling","Ce","Jing","Lei","He","Qiao","E","E","Wei","Jie","Gua","Shen","Yi","Shen","Hai","Dui","Pian","Ping","Lei","Fu","Jia","Tou","Hui","Kui","Jia","Le","Tian","Cheng","Ying","Jun","Hu","Han","Jing","Tui","Tui","Pin","Lai","Tui","Zi","Zi","Chui","Ding","Lai","Yan","Han","Jian","Ke","Cui","Jiong","Qin","Yi","Sai","Ti","E","E","Yan","Hun","Kan","Yong","Zhuan","Yan","Xian","Xin","Yi","Yuan","Sang","Dian","Dian","Jiang","Ku","Lei","Liao","Piao","Yi","Man","Qi","Rao","Hao","Qiao","Gu","Xun","Qian","Hui","Zhan","Ru","Hong","Bin","Xian","Pin","Lu","Lan","Nie","Quan","Ye","Ding","Qing","Han","Xiang","Shun","Xu","Xu","Wan","Gu","Dun","Qi","Ban","Song","Hang","Yu","Lu","Ling","Po","Jing","Jie","Jia","Tian","Han","Ying","Jiong","Hai","Yi","Pin","Hui","Tui","Han","Ying","Ying","Ke","Ti","Yong","E","Zhuan","Yan","E","Nie","Man","Dian","Sang","Hao","Lei","Zhan","Ru","Pin","Quan","Feng","Biao","Oroshi","Fu","Xia","Zhan","Biao","Sa","Ba","Tai","Lie","Gua","Xuan","Shao","Ju","Bi","Si","Wei","Yang","Yao","Sou","Kai","Sao","Fan","Liu","Xi","Liao","Piao","Piao","Liu","Biao","Biao","Biao","Liao",null,"Se","Feng","Biao","Feng","Yang","Zhan","Biao","Sa","Ju","Si","Sou","Yao","Liu","Piao","Biao","Biao","Fei","Fan","Fei","Fei","Shi","Shi","Can","Ji","Ding","Si","Tuo","Zhan","Sun","Xiang","Tun","Ren","Yu","Juan","Chi","Yin","Fan","Fan","Sun","Yin","Zhu","Yi","Zhai","Bi","Jie","Tao","Liu","Ci","Tie","Si","Bao","Shi","Duo"],KL[153]=["Hai","Ren","Tian","Jiao","Jia","Bing","Yao","Tong","Ci","Xiang","Yang","Yang","Er","Yan","Le","Yi","Can","Bo","Nei","E","Bu","Jun","Dou","Su","Yu","Shi","Yao","Hun","Guo","Shi","Jian","Zhui","Bing","Xian","Bu","Ye","Tan","Fei","Zhang","Wei","Guan","E","Nuan","Hun","Hu","Huang","Tie","Hui","Jian","Hou","He","Xing","Fen","Wei","Gu","Cha","Song","Tang","Bo","Gao","Xi","Kui","Liu","Sou","Tao","Ye","Yun","Mo","Tang","Man","Bi","Yu","Xiu","Jin","San","Kui","Zhuan","Shan","Chi","Dan","Yi","Ji","Rao","Cheng","Yong","Tao","Hui","Xiang","Zhan","Fen","Hai","Meng","Yan","Mo","Chan","Xiang","Luo","Zuan","Nang","Shi","Ding","Ji","Tuo","Xing","Tun","Xi","Ren","Yu","Chi","Fan","Yin","Jian","Shi","Bao","Si","Duo","Yi","Er","Rao","Xiang","Jia","Le","Jiao","Yi","Bing","Bo","Dou","E","Yu","Nei","Jun","Guo","Hun","Xian","Guan","Cha","Kui","Gu","Sou","Chan","Ye","Mo","Bo","Liu","Xiu","Jin","Man","San","Zhuan","Nang","Shou","Kui","Guo","Xiang","Fen","Ba","Ni","Bi","Bo","Tu","Han","Fei","Jian","An","Ai","Fu","Xian","Wen","Xin","Fen","Bin","Xing","Ma","Yu","Feng","Han","Di","Tuo","Tuo","Chi","Xun","Zhu","Zhi","Pei","Xin","Ri","Sa","Yin","Wen","Zhi","Dan","Lu","You","Bo","Bao","Kuai","Tuo","Yi","Qu",null,"Qu","Jiong","Bo","Zhao","Yuan","Peng","Zhou","Ju","Zhu","Nu","Ju","Pi","Zang","Jia","Ling","Zhen","Tai","Fu","Yang","Shi","Bi","Tuo","Tuo","Si","Liu","Ma","P
1ian","Tao","Zhi","Rong","Teng","Dong","Xun","Quan","Shen","Jiong","Er","Hai","Bo","Zhu","Yin","Luo","Shuu","Dan","Xie","Liu","Ju","Song","Qin","Mang","Liang","Han","Tu","Xuan","Tui","Jun"],KL[154]=["E","Cheng","Xin","Ai","Lu","Zhui","Zhou","She","Pian","Kun","Tao","Lai","Zong","Ke","Qi","Qi","Yan","Fei","Sao","Yan","Jie","Yao","Wu","Pian","Cong","Pian","Qian","Fei","Huang","Jian","Huo","Yu","Ti","Quan","Xia","Zong","Kui","Rou","Si","Gua","Tuo","Kui","Sou","Qian","Cheng","Zhi","Liu","Pang","Teng","Xi","Cao","Du","Yan","Yuan","Zou","Sao","Shan","Li","Zhi","Shuang","Lu","Xi","Luo","Zhang","Mo","Ao","Can","Piao","Cong","Qu","Bi","Zhi","Yu","Xu","Hua","Bo","Su","Xiao","Lin","Chan","Dun","Liu","Tuo","Zeng","Tan","Jiao","Tie","Yan","Luo","Zhan","Jing","Yi","Ye","Tuo","Bin","Zou","Yan","Peng","Lu","Teng","Xiang","Ji","Shuang","Ju","Xi","Huan","Li","Biao","Ma","Yu","Tuo","Xun","Chi","Qu","Ri","Bo","Lu","Zang","Shi","Si","Fu","Ju","Zou","Zhu","Tuo","Nu","Jia","Yi","Tai","Xiao","Ma","Yin","Jiao","Hua","Luo","Hai","Pian","Biao","Li","Cheng","Yan","Xin","Qin","Jun","Qi","Qi","Ke","Zhui","Zong","Su","Can","Pian","Zhi","Kui","Sao","Wu","Ao","Liu","Qian","Shan","Piao","Luo","Cong","Chan","Zou","Ji","Shuang","Xiang","Gu","Wei","Wei","Wei","Yu","Gan","Yi","Ang","Tou","Xie","Bao","Bi","Chi","Ti","Di","Ku","Hai","Qiao","Gou","Kua","Ge","Tui","Geng","Pian","Bi","Ke","Ka","Yu","Sui","Lou","Bo","Xiao","Pang","Bo","Ci","Kuan","Bin","Mo","Liao","Lou","Nao","Du","Zang","Sui","Ti","Bin","Kuan","Lu","Gao","Gao","Qiao","Kao","Qiao","Lao","Zao","Biao","Kun","Kun","Ti","Fang","Xiu","Ran","Mao","Dan","Kun","Bin","Fa","Tiao","Peng","Zi","Fa","Ran","Ti","Pao","Pi","Mao","Fu","Er","Rong","Qu","Gong","Xiu","Gua","Ji","Peng","Zhua","Shao","Sha"],KL[155]=["Ti","Li","Bin","Zong","Ti","Peng","Song","Zheng","Quan","Zong","Shun","Jian","Duo","Hu","La","Jiu","Qi","Lian","Zhen","Bin","Peng","Mo","San","Man","Man","Seng","Xu","Lie","Qian","Qian","Nong","Huan","Kuai","Ning","Bin","Lie","Rang","Dou","Dou","Nao","Hong","Xi","Dou","Han","Dou","Dou","Jiu","Chang","Yu","Yu","Li","Juan","Fu","Qian","Gui","Zong","Liu","Gui","Shang","Yu","Gui","Mei","Ji","Qi","Jie","Kui","Hun","Ba","Po","Mei","Xu","Yan","Xiao","Liang","Yu","Tui","Qi","Wang","Liang","Wei","Jian","Chi","Piao","Bi","Mo","Ji","Xu","Chou","Yan","Zhan","Yu","Dao","Ren","Ji","Eri","Gong","Tuo","Diao","Ji","Xu","E","E","Sha","Hang","Tun","Mo","Jie","Shen","Fan","Yuan","Bi","Lu","Wen","Hu","Lu","Za","Fang","Fen","Na","You","Namazu","Todo","He","Xia","Qu","Han","Pi","Ling","Tuo","Bo","Qiu","Ping","Fu","Bi","Ji","Wei","Ju","Diao","Bo","You","Gun","Pi","Nian","Xing","Tai","Bao","Fu","Zha","Ju","Gu","Kajika","Tong",null,"Ta","Jie","Shu","Hou","Xiang","Er","An","Wei","Tiao","Zhu","Yin","Lie","Luo","Tong","Yi","Qi","Bing","Wei","Jiao","Bu","Gui","Xian","Ge","Hui","Bora","Mate","Kao","Gori","Duo","Jun","Ti","Man","Xiao","Za","Sha","Qin","Yu","Nei","Zhe","Gun","Geng","Su","Wu","Qiu","Ting","Fu","Wan","You","Li","Sha","Sha","Gao","Meng","Ugui","Asari","Subashiri","Kazunoko","Yong","Ni","Zi","Qi","Qing","Xiang","Nei","Chun","Ji","Diao","Qie","Gu","Zhou","Dong","Lai","Fei","Ni","Yi","Kun","Lu","Jiu","Chang","Jing","Lun","Ling","Zou","Li","Meng","Zong","Zhi","Nian","Shachi","Dojou","Sukesou","Shi","Shen","Hun","Shi","Hou","Xing","Zhu","La","Zong","Ji","Bian","Bian"],KL[156]=["Huan","Quan","Ze","Wei","Wei","Yu","Qun","Rou","Die","Huang","Lian","Yan","Qiu","Qiu","Jian","Bi","E","Yang","Fu","Sai","Jian","Xia","Tuo","Hu","Muroaji","Ruo","Haraka","Wen","Jian","Hao","Wu","Fang","Sao","Liu","Ma","Shi","Shi","Yin","Z","Teng","Ta","Yao","Ge","Rong","Qian","Qi","Wen","Ruo","Hatahata","Lian","Ao","Le","Hui","Min","Ji","Tiao","Qu","Jian","Sao","Man","Xi","Qiu","Biao","Ji","Ji","Zhu","Jiang","Qiu","Zhuan","Yong","Zhang","Kang","Xue","Bie","Jue","Qu","Xiang","Bo","Jiao","Xun","Su","Huang","Zun","Shan","Shan","Fan","Jue","Lin","Xun","Miao","Xi","Eso","Kyou","Fen","Guan","Hou","Kuai","Zei","Sao","Zhan","Gan","Gui","Sheng","Li","Chang","Hatahata","Shiira","Mutsu","Ru","Ji","Xu","Huo","Shiira","Li","Lie","Li","Mie","Zhen","Xiang","E","Lu","Guan","Li","Xian","Yu","Dao","Ji","You","Tun","Lu","Fang","Ba","He","Bo","P
1ing","Nian","Lu","You","Zha","Fu","Bo","Bao","Hou","Pi","Tai","Gui","Jie","Kao","Wei","Er","Tong","Ze","Hou","Kuai","Ji","Jiao","Xian","Za","Xiang","Xun","Geng","Li","Lian","Jian","Li","Shi","Tiao","Gun","Sha","Wan","Jun","Ji","Yong","Qing","Ling","Qi","Zou","Fei","Kun","Chang","Gu","Ni","Nian","Diao","Jing","Shen","Shi","Zi","Fen","Die","Bi","Chang","Shi","Wen","Wei","Sai","E","Qiu","Fu","Huang","Quan","Jiang","Bian","Sao","Ao","Qi","Ta","Yin","Yao","Fang","Jian","Le","Biao","Xue","Bie","Man","Min","Yong","Wei","Xi","Jue","Shan","Lin","Zun","Huo","Gan","Li","Zhan","Guan","Niao","Yi","Fu","Li","Jiu","Bu","Yan","Fu","Diao","Ji","Feng","Nio","Gan","Shi","Feng","Ming","Bao","Yuan","Zhi","Hu","Qin","Fu","Fen","Wen","Jian","Shi","Yu"],KL[157]=["Fou","Yiao","Jue","Jue","Pi","Huan","Zhen","Bao","Yan","Ya","Zheng","Fang","Feng","Wen","Ou","Te","Jia","Nu","Ling","Mie","Fu","Tuo","Wen","Li","Bian","Zhi","Ge","Yuan","Zi","Qu","Xiao","Zhi","Dan","Ju","You","Gu","Zhong","Yu","Yang","Rong","Ya","Tie","Yu","Shigi","Ying","Zhui","Wu","Er","Gua","Ai","Zhi","Yan","Heng","Jiao","Ji","Lie","Zhu","Ren","Yi","Hong","Luo","Ru","Mou","Ge","Ren","Jiao","Xiu","Zhou","Zhi","Luo","Chidori","Toki","Ten","Luan","Jia","Ji","Yu","Huan","Tuo","Bu","Wu","Juan","Yu","Bo","Xun","Xun","Bi","Xi","Jun","Ju","Tu","Jing","Ti","E","E","Kuang","Hu","Wu","Shen","Lai","Ikaruga","Kakesu","Lu","Ping","Shu","Fu","An","Zhao","Peng","Qin","Qian","Bei","Diao","Lu","Que","Jian","Ju","Tu","Ya","Yuan","Qi","Li","Ye","Zhui","Kong","Zhui","Kun","Sheng","Qi","Jing","Yi","Yi","Jing","Zi","Lai","Dong","Qi","Chun","Geng","Ju","Qu","Isuka","Kikuitadaki","Ji","Shu",null,"Chi","Miao","Rou","An","Qiu","Ti","Hu","Ti","E","Jie","Mao","Fu","Chun","Tu","Yan","He","Yuan","Pian","Yun","Mei","Hu","Ying","Dun","Mu","Ju","Tsugumi","Cang","Fang","Gu","Ying","Yuan","Xuan","Weng","Shi","He","Chu","Tang","Xia","Ruo","Liu","Ji","Gu","Jian","Zhun","Han","Zi","Zi","Ni","Yao","Yan","Ji","Li","Tian","Kou","Ti","Ti","Ni","Tu","Ma","Jiao","Gao","Tian","Chen","Li","Zhuan","Zhe","Ao","Yao","Yi","Ou","Chi","Zhi","Liao","Rong","Lou","Bi","Shuang","Zhuo","Yu","Wu","Jue","Yin","Quan","Si","Jia
1o","Yi","Hua","Bi","Ying","Su","Huang","Fan","Jiao","Liao","Yan","Kao","Jiu","Xian","Xian","Tu","Mai","Zun","Yu","Ying","Lu","Tuan","Xian","Xue","Yi","Pi"],KL[158]=["Shu","Luo","Qi","Yi","Ji","Zhe","Yu","Zhan","Ye","Yang","Pi","Ning","Huo","Mi","Ying","Meng","Di","Yue","Yu","Lei","Bao","Lu","He","Long","Shuang","Yue","Ying","Guan","Qu","Li","Luan","Niao","Jiu","Ji","Yuan","Ming","Shi","Ou","Ya","Cang","Bao","Zhen","Gu","Dong","Lu","Ya","Xiao","Yang","Ling","Zhi","Qu","Yuan","Xue","Tuo","Si","Zhi","Er","Gua","Xiu","Heng","Zhou","Ge","Luan","Hong","Wu","Bo","Li","Juan","Hu","E","Yu","Xian","Ti","Wu","Que","Miao","An","Kun","Bei","Peng","Qian","Chun","Geng","Yuan","Su","Hu","He","E","Gu","Qiu","Zi","Mei","Mu","Ni","Yao","Weng","Liu","Ji","Ni","Jian","He","Yi","Ying","Zhe","Liao","Liao","Jiao","Jiu","Yu","Lu","Xuan","Zhan","Ying","Huo","Meng","Guan","Shuang","Lu","Jin","Ling","Jian","Xian","Cuo","Jian","Jian","Yan","Cuo","Lu","You","Cu","Ji","Biao","Cu","Biao","Zhu","Jun","Zhu","Jian","Mi","Mi","Wu","Liu","Chen","Jun","Lin","Ni","Qi","Lu","Jiu","Jun","Jing","Li","Xiang","Yan","Jia","Mi","Li","She","Zhang","Lin","Jing","Ji","Ling","Yan","Cu","Mai","Mai","Ge","Chao","Fu","Mian","Mian","Fu","Pao","Qu","Qu","Mou","Fu","Xian","Lai","Qu","Mian",null,"Feng","Fu","Qu","Mian","Ma","Mo","Mo","Hui","Ma","Zou","Nen","Fen","Huang","Huang","Jin","Guang","Tian","Tou","Heng","Xi","Kuang","Heng","Shu","Li","Nian","Chi","Hei","Hei","Yi","Qian","Dan","Xi","Tuan","Mo","Mo","Qian","Dai","Chu","You","Dian","Yi","Xia","Yan","Qu","Mei","Yan","Jing","Yu","Li","Dang","Du","Can","Yin","An","Yan","Tan","An","Zhen","Dai","Can","Yi","Mei","Dan","Yan","Du","Lu","Zhi","Fen","Fu","Fu","Min","Min","Yuan"],KL[159]=["Cu","Qu","Chao","Wa","Zhu","Zhi","Mang","Ao","Bie","Tuo","Bi","Yuan","Chao","Tuo","Ding","Mi","Nai","Ding","Zi","Gu","Gu","Dong","Fen","Tao","Yuan","Pi","Chang","Gao","Qi","Yuan","Tang","Teng","Shu","Shu","Fen","Fei","Wen","Ba","Diao","Tuo","Tong","Qu","Sheng","Shi","You","Shi","Ting","Wu","Nian","Jing","Hun","Ju","Yan","Tu","Ti","Xi","Xian","Yan","Lei","Bi","Yao","Qiu","Han","Wu","Wu","Hou","Xi","Ge","Zha","Xiu","Weng","Zha","Nong","Nang","Qi","Zhai","Ji","Zi","Ji","Ji","Qi","Ji","Chi","Chen","Chen","He","Ya","Ken","Xie","Pao","Cuo","Shi","Zi","Chi","Nian","Ju","Tiao","Ling","Ling","Chu","Quan","Xie","Ken","Nie","Jiu","Yao","Chuo","Kun","Yu","Chu","Yi","Ni","Cuo","Zou","Qu","Nen","Xian","Ou","E","Wo","Yi","Chuo","Zou","Dian","Chu","Jin","Ya","Chi","Chen","He","Ken","Ju","Ling","Pao","Tiao","Zi","Ken","Yu","Chuo","Qu","Wo","Long","Pang","Gong","Pang","Yan","Long","Long","Gong","Kan","Ta","Ling","Ta","Long","Gong","Kan","Gui","Qiu","Bie","Gui","Yue","Chui","He","Jue","Xie","Yu"],KL[160]=["it","ix","i","ip","iet","iex","ie","iep","at","ax","a","ap","uox","uo","uop","ot","ox","o","op","ex","e","wu","bit","bix","bi","bip","biet","biex","bie","biep","bat","bax","ba","bap","buox","buo","buop","bot","box","bo","bop","bex","be","bep","but","bux","bu","bup","burx","bur","byt","byx","by","byp","byrx","byr","pit","pix","pi","pip","piex","pie","piep","pat","pax","pa","pap","puox","puo","puop","pot","pox","po","pop","put","pux","pu","pup","purx","pur","pyt","pyx","py","pyp","pyrx","pyr","bbit","bbix","bbi","bbip","bbiet","bbiex","bbie","bbiep","bbat","bbax","bba","bbap","bbuox","bbuo","bbuop","bbot","bbox","bbo","bbop","bbex","bbe","bbep","bbut","bbux","bbu","bbup","bburx","bbur","bbyt","bbyx","bby","bbyp","nbit","nbix","nbi","nbip","nbiex","nbie","nbiep","nbat","nbax","nba","nbap","nbot","nbox","nbo","nbop","nbut","nbux","nbu","nbup","nburx","nbur","nbyt","nbyx","nby","nbyp","nbyrx","nbyr","hmit","hmix","hmi","hmip","hmiex","hmie","hmiep","hmat","hmax","hma","hmap","hmuox","hmuo","hmuop","hmot","hmox","hmo","hmop","hmut","hmux","hmu","hmup","hmurx","hmur","hmyx","hmy","hmyp","hmyrx","hmyr","mit","mix","mi","mip","miex","mie","miep","mat","max","ma","map","muot","muox","muo","muop","mot","mox","mo","mop","mex","me","mut","mux","mu","mup","murx","mur","myt","myx","my","myp","fit","fix","fi","fip","fat","fax","fa","fap","fox","fo","fop","fut","fux","fu","fup","furx","fur","fyt","fyx","fy","fyp","vit","vix","vi","vip","viet","viex","vie","viep","vat","vax","va","vap","vot","vox","vo","vop","vex","vep","vut","vux","vu","vup","vurx","vur","vyt","vyx","vy","vyp","vyrx","vyr"],KL[161]=["dit","dix","di","dip","diex","die","diep","dat","dax","da","dap","duox","duo","dot","dox","do","dop","dex","de","dep","dut","dux","du","dup","durx","dur","tit","tix","ti","tip","tiex","tie","tiep","tat","tax","ta","tap","tuot","tuox","tuo","tuop","tot","tox","to","top","tex","te","tep","tut","tux","tu","tup","turx","tur","ddit","ddix","ddi","ddip","ddiex","ddie","ddiep","ddat","ddax","dda","ddap","dduox","dduo","dduop","ddot","ddox","ddo","ddop","ddex","dde","ddep","ddut","ddux","ddu","ddup","ddurx","ddur","ndit","ndix","ndi","ndip","ndiex","ndie","ndat","ndax","nda","ndap","ndot","ndox","ndo","ndop","ndex","nde","ndep","ndut","ndux","ndu","n
1dup","ndurx","ndur","hnit","hnix","hni","hnip","hniet","hniex","hnie","hniep","hnat","hnax","hna","hnap","hnuox","hnuo","hnot","hnox","hnop","hnex","hne","hnep","hnut","nit","nix","ni","nip","niex","nie","niep","nax","na","nap","nuox","nuo","nuop","not","nox","no","nop","nex","ne","nep","nut","nux","nu","nup","nurx","nur","hlit","hlix","hli","hlip","hliex","hlie","hliep","hlat","hlax","hla","hlap","hluox","hluo","hluop","hlox","hlo","hlop","hlex","hle","hlep","hlut","hlux","hlu","hlup","hlurx","hlur","hlyt","hlyx","hly","hlyp","hlyrx","hlyr","lit","lix","li","lip","liet","liex","lie","liep","lat","lax","la","lap","luot","luox","luo","luop","lot","lox","lo","lop","lex","le","lep","lut","lux","lu","lup","lurx","lur","lyt","lyx","ly","lyp","lyrx","lyr","git","gix","gi","gip","giet","giex","gie","giep","gat","gax","ga","gap","guot","guox","guo","guop","got","gox","go","gop","get","gex","ge","gep","gut","gux","gu","gup","gurx","gur","kit","kix","ki","kip","kiex","kie","kiep","kat"],KL[162]=["kax","ka","kap","kuox","kuo","kuop","kot","kox","ko","kop","ket","kex","ke","kep","kut","kux","ku","kup","kurx","kur","ggit","ggix","ggi","ggiex","ggie","ggiep","ggat","ggax","gga","ggap","gguot","gguox","gguo","gguop","ggot","ggox","ggo","ggop","gget","ggex","gge","ggep","ggut","ggux","ggu","ggup","ggurx","ggur","mgiex","mgie","mgat","mgax","mga","mgap","mguox","mguo","mguop","mgot","mgox","mgo","mgop","mgex","mge","mgep","mgut","mgux","mgu","mgup","mgurx","mgur","hxit","hxix","hxi","hxip","hxiet","hxiex","hxie","hxiep","hxat","hxax","hxa","hxap","hxuot","hxuox","hxuo","hxuop","hxot","hxox","hxo","hxop","hxex","hxe","hxep","ngiex","ngie","ngiep","ngat","ngax","nga","ngap","nguot","nguox","nguo","ngot","ngox","ngo","ngop","ngex","nge","ngep","hit","hiex","hie","hat","hax","ha","hap","huot","huox","huo","huop","hot","hox","ho","hop","hex","he","hep","wat","wax","wa","wap","wuox","wuo","wuop","wox","wo","wop","wex","we","wep","zit","zix","zi","zip","ziex","zie","ziep","zat","zax","za","zap","zuox","zuo","zuop","zot","zox","zo","zop","zex","ze","zep","zut","zux","zu","zup","zurx","zur","zyt","zyx","zy","zyp","zyrx","zyr","cit","cix","ci","cip","ciet","ciex","cie","ciep","cat","cax","ca","cap","cuox","cuo","cuop","cot","cox","co","cop","cex","ce","cep","cut","cux","cu","cup","curx","cur","cyt","cyx","cy","cyp","cyrx","cyr","zzit","zzix","zzi","zzip","zziet","zziex","zzie","zziep","zzat","zzax","zza","zzap","zzox","zzo","zzop","zzex","zze","zzep","zzux","zzu","zzup","zzurx","zzur","zzyt","zzyx","zzy","zzyp","zzyrx","zzyr","nzit","nzix","nzi","nzip","nziex","nzie","nziep","nzat","nzax","nza","nzap","nzuox","nzuo","nzox","nzop","nzex","nze","nzux","nzu"],KL[163]=["nzup","nzurx","nzur","nzyt","nzyx","nzy","nzyp","nzyrx","nzyr","sit","six","si","sip","siex","sie","siep","sat","sax","sa","sap","suox","suo","suop","sot","sox","so","sop","sex","se","sep","sut","sux","su","sup","surx","sur","syt","syx","sy","syp","syrx","syr","ssit","ssix","ssi","ssip","ssiex","ssie","ssiep","ssat","ssax","ssa","ssap","ssot","ssox","sso","ssop","ssex","sse","ssep","ssut","ssux","ssu","ssup","ssyt","ssyx","ssy","ssyp","ssyrx","ssyr","zhat","zhax","zha","zhap","zhuox","zhuo","zhuop","zhot","zhox","zho","zhop","zhet","zhex","zhe","zhep","zhut","zhux","zhu","zhup","zhurx","zhur","zhyt","zhyx","zhy","zhyp","zhyrx","zhyr","chat","chax","cha","chap","chuot","chuox","chuo","chuop","chot","chox","cho","chop","chet","chex","che","chep","chux","chu","chup","churx","chur","chyt","chyx","chy","chyp","chyrx","chyr","rrax","rra","rruox","rruo","rrot","rrox","rro","rrop","rret","rrex","rre","rrep","rrut","rrux","rru","rrup","rrurx","rrur","rryt","rryx","rry","rryp","rryrx","rryr","nrat","nrax","nra","nrap","nrox","nro","nrop","nret","nrex","nre","nrep","nrut","nrux","nru","nrup","nrurx","nrur","nryt","nryx","nry","nryp","nryrx","nryr","shat","shax","sha","shap","shuox","shuo","shuop","shot","shox","sho","shop","shet","shex","she","shep","shut","shux","shu","shup","shurx","shur","shyt","shyx","shy","shyp","shyrx","shyr","rat","rax","ra","rap","ruox","ruo","ruop","rot","rox","ro","rop","rex","re","rep","rut","rux","ru","rup","rurx","rur","ryt","ryx","ry","ryp","ryrx","ryr","jit","jix","ji","jip","jiet","jiex","jie","jiep","juot","juox","juo","juop","jot","jox","jo","jop","jut","jux","ju","jup","jurx","jur","jyt","jyx","jy","jyp","jyrx","jyr","qit","qix","qi","qip"],KL[164]=["qiet","qiex","qie","qiep","quot","quox","quo","quop","qot","qox","qo","qop","qut","qux","qu","qup","qurx","qur","qyt","qyx","qy","qyp","qyrx","qyr","jjit","jjix","jji","jjip","jjiet","jjiex","jjie","jjiep","jjuox","jjuo","jjuop","jjot","jjox","jjo","jjop","jjut","jjux","jju","jjup","jjurx","jjur","jjyt","jjyx","jjy","jjyp","njit","njix","nji","njip","njiet","njiex","njie","njiep","njuox","njuo","njot","njox","njo","njop","njux","nju","njup","njurx","njur","njyt","njyx","njy","njyp","njyrx","njyr","nyit","nyix","nyi","nyip","nyiet","nyiex","nyie","nyiep","nyuox","nyuo","nyuop","nyot","nyox","nyo","nyop","nyut","nyux","nyu","nyup","xit","xix","xi","xip","xiet","xiex","xie","xiep","xuox","xuo","xot","xox","xo","xop","xyt","xyx","xy","xyp","xyrx","xyr","yit","yix","yi","yip","yiet","yiex","yie","yiep","yuot","yuox","yuo","yuop","yot","yox","yo","yop","yut","yux","yu","yup","yurx","yur","yyt","yyx","yy","yyp","yyrx","yyr",null,null,null,"Qot","Li","Kit","Nyip","Cyp","Ssi","Ggop","Gep","Mi","Hxit","Lyr","Bbut","Mop","Yo","Put","Hxuo","Tat","Ga",null,null,"Ddur","Bur","Gguo","Nyop","Tu","Op","Jjut","Zot","Pyt","Hmo","Yit","Vur","Shy","Vep","Za","Jo",null,"Jjy","Got","Jjie","Wo","Du","Shur","Lie","Cy","Cuop","Cip","Hxop","Shat",null,"Shop","Che","Zziet",null,"Ke"],KL[167]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"A","a","A","a","HENG","heng","TZ","tz","3","3","4","4","4","4","F","S","AA","aa","AO","ao","AU","au","AV","av","AV-","av-","AY","ay","C","c","K","k","K","k","K","k","L","l","L","l","O","o","O","o","OO","oo","P","p","P","p","P","p","Q","q","Q","q","R","r","R","r","V","v","VY","vy","Z","z","TH","th","TH","th","Y","y","ET","et","IS","is","CON","con","US","us","dum","lum","num","rum","RUM","tum","um","D","d","F","f","G","G","g","L","l","R","r","S","s","T","t","^",":","=","'","'","H","l",".","N","n","C","c","c","h","B","b","F","f","AE","ae","OE","oe","UE","ue","G","g","K","k","N","n","R","r","S","s","H","E","G","L","I","Q","K","T","J","CHI","B","b","O","o","U","u",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"I","H","oe","M","F","P","M","I","M1"],KL[249]=["Kay","Kayng","Ke","Ko","Kol","Koc","Kwi","Kwi","Kyun","Kul","Kum","Na","Na","Na","La","Na","Na","Na","Na","Na","Nak","Nak","Nak","Nak","Nak","Nak","Nak","Nan","Nan","Nan","Nan","Nan","Nan","Nam","Nam","Nam","Nam","Nap","Nap","Nap","Nang","Nang","Nang","Nang","Nang","Nay","Nayng","No","No","No","No","No","No","No","No","No","No","No","No","Nok","Nok","Nok","Nok","Nok","Nok","Non","Nong","Nong","Nong","Nong","Noy","Noy","Noy","Noy","Nwu","Nwu","Nwu","Nwu","Nwu","Nwu","Nwu","Nwu","Nuk","Nuk","Num","Nung","Nung","Nung","Nung","Nung","Twu","La","Lak","Lak","Lan","Lyeng","Lo","Lyul","Li","Pey","Pen","Pyen","Pwu","Pwul","Pi","S
1ak","Sak","Sam","Sayk","Sayng","Sep","Sey","Sway","Sin","Sim","Sip","Ya","Yak","Yak","Yang","Yang","Yang","Yang","Yang","Yang","Yang","Yang","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Yek","Yek","Yek","Yek","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yel","Yel","Yel","Yel","Yel","Yel","Yem","Yem","Yem","Yem","Yem","Yep","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yey","Yey","Yey","Yey","O","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yong","Wun","Wen","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yuk","Yuk","Yuk","Yun","Yun","Yun","Yun","Yul","Yul","Yul","Yul","Yung","I","I","I","I","I","I","I","I","I","I","I","I","I","I","Ik","Ik","In","In","In","In","In","In","In","Im","Im","Im","Ip","Ip","Ip","Cang","Cek","Ci","Cip","Cha","Chek"],KL[250]=["Chey","Thak","Thak","Thang","Thayk","Thong","Pho","Phok","Hang","Hang","Hyen","Hwak","Wu","Huo",null,null,"Zhong",null,"Qing",null,null,"Xi","Zhu","Yi","Li","Shen","Xiang","Fu","Jing","Jing","Yu",null,"Hagi",null,"Zhu",null,null,"Yi","Du",null,null,null,"Fan","Si","Guan"],KL[251]=["ff","fi","fl","ffi","ffl","st","st",null,null,null,null,null,null,null,null,null,null,null,null,"mn","me","mi","vn","mkh",null,null,null,null,null,"yi",null,"ay","`",null,"d","h","k","l","m","m","t","+","sh","s","sh","s","a","a",null,"b","g","d","h","v","z",null,"t","y","k","k","l",null,"l",null,"n","n",null,"p","p",null,"ts","ts","r","sh","t","vo","b","k","p","l"],KL[254]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"~",null,null,null,null,null,null,null,null,null,null,null,null,"..","--","-","_","_","(",") ","{","} ","[","] ","[(",")] ","<<",">> ","<","> ","[","] ","{","}",null,null,null,null,null,null,null,null,null,null,null,",",",",".",null,";",":","?","!","-","(",")","{","}","{","}","#","&","*","+","-","<",">","=",null,"\\","$","%","@"],KL[255]=[null,"!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~",null,null,".","[","]",",","*","wo","a","i","u","e","o","ya","yu","yo","tu","+","a","i","u","e","o","ka","ki","ku","ke","ko","sa","si","su","se","so","ta","ti","tu","te","to","na","ni","nu","ne","no","ha","hi","hu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","n",":",";",null,"g","gg","gs","n","nj","nh","d","dd","r","lg","lm","lb","ls","lt","lp","rh","m","b","bb","bs","s","ss",null,"j","jj","c","k","t","p","h",null,null,null,"a","ae","ya","yae","eo","e",null,null,"yeo","ye","o","wa","wae","oe",null,null,"yo","u","weo","we","wi","yu",null,null,"eu","yi","i",null,null,null,"/C","PS","!","-","|","Y=","W=",null,"|","-","|","-","|","#","O",null,null,null,null,null,null,null,null,null,null,"{","|","}"];var jL={};for(let ET=0;ET<KL.length;ET++){let e=KL[ET];if(e)for(let n=0;n<e.length;n++){let t=e[n];t&&(jL[String.fromCharCode((ET<<8)+n)]=t)}}for(let ET=44032;ET<=55203;ET++){let e=ET-44032;jL[String.fromCharCode(ET)]=GL[e/588|0]+OL[e%588/28|0]+QL[e%28]}var WL=/[-[\]/{}()*+?.\\^$|]/g,UL=/[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/,zL=/[\s!-#%-*,-/:;?@[-\]_{}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,$L=-1,VL=0,qL=1;function eT(e){return(e||"").replace(WL,"\\$&")}function nT(e){return UL.test(e)}function tT(e){return zL.test(e)}function iT(e){if(Array.isArray(e))return e.map(e=>iT(e));if(e instanceof Date)return new Date(e.valueOf());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(null!==e&&"object"==typeof e){let n={};for(let t in e)Object.hasOwn(e,t)&&(n[t]=iT(e[t]));return n}return e}function aT(e,n){return e<n[0]?$L:e>n[1]?qL:VL}function oT(e,n){if(0===n.length)return!1;let t=0,i=n.length-1;for(;t<=i;){let a=t+i>>>1,o=aT(e,n[a]);if(o===VL)return!0;o===$L?i=a-1:t=a+1}return!1}function rT(e,n,t,i=[]){let a=i.length?new RegExp(i.map(eT).join("|"),"g"):null,o=new RegExp(n.source,`${n.flags.replace("g","")}g`),r="",s=0;for(;;){let n=o.exec(e),i="",u=0;if(!n){r+=e.substring(s,e.length);break}for(;;){let e=null==a?void 0:a.exec(n[0]);if(!e||!a){i+=n[0].length>u?t:"";break}i+=e.index>
1u?t:"",i+=e[0],u=a.lastIndex}r+=e.substring(s,n.index)+i,s=o.lastIndex}return r}var sT=/[\uD800-\uDBFF]/,uT=/[\uDC00-\uDFFF]/,lT=/[^\s\S]/,cT={ignore:[],replace:[],replaceAfter:[],trim:!1,unknown:"",fixChineseSpacing:!0},hT=class{get options(){return iT({...cT,...this.confOptions})}constructor(e=iT(cT),n=jL){this.confOptions=e,this.defaultMap=n,this.map=n}config(e,n=!1){return n&&(this.confOptions={}),e&&"object"==typeof e&&(this.confOptions=iT(e)),this.confOptions}codeMapReplace(e,n,t=[]){let i=0,a="",o=n.fixChineseSpacing&&nT(e),r=!1;for(let s=0;s<e.length;s++){let u,l=sT.test(e[s])&&uT.test(e[s+1])?e[s]+e[s+1]:e[s],c=!1;oT(i,t)||2===l.length&&oT(i+1,t)?(u=l,t.find(e=>e[1]>=i&&e[0]===i)||(c=!0)):u=this.map[l]||n.unknown||"",o&&(r&&!c&&!tT(u)&&(u=` ${u}`),r=!!u&&nT(l)),a+=u,i+=l.length,s+=l.length-1}return a}formatReplaceOption(e){if(Array.isArray(e))return iT(e);let n=[];for(let t in e)Object.hasOwn(e,t)&&n.push([t,e[t]]);return n}replaceString(e,n,t=[]){let i=iT(n),a=e;for(let o of i){switch(!0){case o[0]instanceof RegExp:o[0]=new RegExp(o[0].source,`${o[0].flags.replace("g","")}g`);break;case"string"==typeof o[0]&&o[0].length>0:o[0]=new RegExp(eT(o[0]),"g");break;default:o[0]=lT}a=rT(a,o[0],o[1],t)}return a}setData(e,n=!1){if(n&&(this.map=iT(this.defaultMap)),e&&"object"==typeof e&&Object.keys(e).length){this.map=iT(this.map);for(let n in e)Object.hasOwn(e,n)&&n.length<3&&n<="􏿿"&&(this.map[n]=e[n])}return this.map}transliterate(e,n){let t="object"==typeof n?n:{},i=iT({...this.options,...t}),a="string"==typeof e?e:String(e),o=this.formatReplaceOption(i.replace);o.length&&(a=this.replaceString(a,o,i.ignore));let r=i.ignore&&i.ignore.length>0?function(e,n){let t=[];for(let o of n){let n=e.indexOf(o);for(;n>-1;)t.push([n,n+o.length-1]),n=e.indexOf(o,n+1)}let i,a=t.sort((e,n)=>e[0]-n[0]||e[1]-n[1]);t=[];for(let o of a)!i||o[0]>i[1]+1?(i=o,t.push(i)):o[1]>i[1]&&(i[1]=o[1]);return t}(a,i.ignore):[];a=this.codeMapReplace(a,i,r),i.trim&&(a=a.trim());let s=this.formatReplaceOption(i.replaceAfter);return s.length&&(a=this.replaceString(a,s)),a}},dT={...iT(cT),allowedChars:"a-zA-Z0-9-_.~",lowercase:!0,separator:"-",uppercase:!1,fixChineseSpacing:!0},gT=new hT,pT=gT.transliterate.bind(gT);pT.config=gT.config.bind(gT),pT.setData=gT.setData.bind(gT);var mT=new class extends hT{get options(){return iT({...dT,...this.confOptions})}config(e,n=!1){return n&&(this.confOptions={}),e&&"object"==typeof e&&(this.confOptions=iT(e)),this.confOptions}slugify(e,n){let t="object"==typeof n?n:{},i=iT({...this.options,...t}),a=i.separator?eT(i.separator):"",o=this.transliterate(e,i);return o=rT(o,new RegExp(`[^${i.allowedChars}]+`,"g"),i.separator??"-",i.ignore??[]),a&&(o=o.replace(new RegExp(`${a}+`,"g"),i.separator),o=o.replace(new RegExp(`^${a}+|${a}+$`,"g"),"")),i.lowercase&&(o=o.toLowerCase()),i.uppercase&&(o=o.toUpperCase()),o}},fT=mT.slugify.bind(mT);fT.config=mT.config.bind(mT),fT.setData=mT.setData.bind(mT);const vT={init:async(e=[],n={},t=!1)=>{const i=Date.now(),a=await IL({gameFiles:e,params:n,isFamobiLegacy:t,logLabel:"init"});await fS(a),y("Init completed (",Date.now()-i,"ms )")},prepareGame:async(e=[],n={},t=!1)=>{(e=>{QC.pendingGameFiles=e,QC.bootPromise=void 0})(await IL({gameFiles:e,params:n,isFamobiLegacy:t,logLabel:"prepareGame"}))},bootPreparedGame:async()=>{const e=Date.now();await KC(),y("Prepared game boot completed (",Date.now()-e,"ms )")},sendPreloadProgress:e=>{var n,t;C("sendPreloadProgress",e),lC("progress_updated",{progress:e,progress_kind:"preload"}),null==(t=(n=g.get()).sendPreloadProgress)||t.call(n,e)},gameReady:(e=!0)=>{var n,t;C("gameReady"),EC("gameReady"),lC("game_ready"),mv.set({gameReadyAt:Date.now()}),ly(),null==(t=(n=g.get()).gameReady)||t.call(n),NL("visibilitychange")||void 0===window.cr_setSuspended||(a.log("[intern] overwriting cr_setSuspended..."),window.cr_setSuspended=()=>{a.warn("[intern] suspending is disabled!")}),!0===e&&ML()},playerReady:ML,gameStart:async(e,n)=>{var t,i;Array.isArray(e)&&(e=e.length?e[0]:void 0),C("gameStart",e||"endless"),EC("gameStart",[{name:"level",value:e}]),mv.set({level:e}),YS();const a={};"number"==typeof e&&(a.level=e),lC("game_start",dL(a,n));const o={level:"number"==typeof(null==a?void 0:a.level)&&Number.isInteger(a.level)?a.level:void 0},r=gL(null==n?void 0:n.metrics);r&&(o.data=r),ee(I.LEVEL_START,o),hy(),await(null==(i=(t=g.get()).gameStart)?void 0:i.call(t,e,n))},sendProgress:e=>{var n,t;C("sendProgress",e),lC("progress_updated",{progress:e,progress_kind:"gameplay"},{includeLevel:!0}),null==(t=(n=g.get()).sendProgress)||t.call(n,e)},sendScore:(e,n)=>{var t,i;if(C("sendScore",e,n||{}),!Number.isInteger(e))return;mv.set({score:e}),(n=n||{}).type=n.type||"live";const a={score:e};(null==n?void 0:n.type)&&(a.score_type=n.type),lC("score_updated",a,{includeLevel:!0,level:(null==n?void 0:n.level)??null}),null==(i=(t=g.get()).sendScore)||i.call(t,e,n)},gameComplete:fL,gameOver:vL,gameQuit:async e=>mL("quit",e),gamePause:async e=>{var n,t;C("gamePause"),EC("gamePause"),xS=!0,a.log("[intern] Playtime tracking paused!"),lC("game_pause",dL({pause_reason:"user"},e),{includeLevel:!0}),cy(),await(null==(t=(n=g.get()).gamePause)?void 0:t.call(n,e))},gameResume:async e=>{var n,t;C("gameResume"),EC("gameResume"),YS(),lC("game_resume",dL({pause_reason:"user"},e),{includeLevel:!0}),hy(),await(null==(t=(n=g.get()).gameResume)?void 0:t.call(n,e))},gameMuted:(e=!0,n="user")=>{var t,i;C("gameMuted",e),lC("audio_mute_changed",{is_muted:e,mute_trigger:n}),null==(i=(t=g.get()).gameMuted)||i.call(t,e)},showInterstitialAd:AC,showRewardedAd:async e=>{C("showRewardedAd",e);return{isRewardGranted:!!(await MC("rewarded",e,"reward")).isRewardGranted}},onGoToHome:e=>{var n,t;C("onGoToHome"),null==(t=(n=g.get()).onGoToHome)||t.call(n,e),CC("onGoToHome",e)},onGoToNextLevel:e=>{var n,t;C("onGoToNextLevel"),null==(t=(n=g.get()).onGoToNextLevel)||t.call(n,e),CC("onGoToNextLevel",e)},onGoToLevel:e=>{var n,t;C("onGoToLevel"),null==(t=(n=g.get()).onGoToLevel)||t.call(n,e),CC("onGoToLevel",e)},onRestartGame:e=>{var n,t;C("onRestartGame"),null==(t=(n=g.get()).onRestartGame)||t.call(n,e),CC("onRestartGame",e)},onQuitGame:e=>{var n,t;C("onQuitGame"),null==(t=(n=g.get()).onQuitGame)||t.call(n,e),CC("onQuitGame",e)},onGameOver:e=>{var n,t;C("onGameOver"),null==(t=(n=g.get()).onGameOver)||t.call(n,e),CC("onGameOver",e)},onAudioStateChange:e=>{var n,t;C("onAudioStateChange"),null==(t=(n=g.get()).onAudioStateChange)||t.call(n,e),CC("onAudioStateChange",e)},onMuteStateChange:e=>{var n,t;C("onMuteStateChange"),null==(t=(n=g.get()).onMuteStateChange)||t.call(n,e),CC("onMuteStateChange",e)},onPauseStateChange:e=>{var n,t;C("onPauseStateChange"),null==(t=(n=g.get()).onPauseStateChange)||t.call(n,e),CC("onPauseStateChange",e)},onRewardedAdAvailabilityChange:async e=>{var n,t;C("onRewardedAdAvailabilityChange"),null==(t=(n=g.get()).onRewardedAdAvailabilityChange)||t.call(n,e),(e=>{cC.set({callbacks:{onRewardedAdAvailabilityChange:e}}),_C("rewarded",!0)})(e)},onInterstitialAdAvailabilityChange:async e=>{var n,t;C("onInterstitialAdAvailabilityChange"),null==(t=(n=g.get()).onInterstitialAdAvailabilityChange)||t.call(n,e),(e=>{cC.set({callbacks:{onInterstitialAdAvailabilityChange:e}}),_C("interstitial",!0)})(e)},onOffsetChange:async e=>{var n,t;C("onOffsetChange"),null==(t=(n=g.get()).onOffsetChange)||t.call(n,e),cC.set({callbacks:{onOffsetChange:e}}),null==e||e(cC.get().offsets)},isMuted:()=>{var e,n;return C("isMuted"),(null==(n=(e=g.get()).isMuted)?void 0:n.call(e))??mv.get().isMuted},isPaused:()=>{var e,n;return C("isPaused"),(null==(n=(e=g.get()).isPaused)?void 0:n.call(e))||mv.get().isPaused},hasFeature:NL,hasRewardedAd:async e=>{var n,t;
1const i=JC("rewarded",e),a=await(null==(t=(n=g.get()).hasRewardedAd)?void 0:t.call(n,e))??!0,o=i&&a;return C(`hasRewardedAd('${e}') -> ${o}`),o},isInterstitialAdAvailable:DC,isRewardedAdAvailable:e=>{var n,t;const i=JC("rewarded",e),a=(null==(t=(n=g.get()).isRewardedAdAvailable)?void 0:t.call(n,e))??!0,o=i&&a;return S(`isRewardedAdAvailable('${e}') -> ${o}`),o},getOffsets:()=>{var e,n;return(null==(n=(e=g.get()).getOffsets)?void 0:n.call(e))||cC.get().offsets},getCurrentLanguage:()=>{var e,n,t;C("getCurrentLanguage");const i=(null==(n=(e=g.get()).getCurrentLanguage)?void 0:n.call(e))||p.get().locale||navigator.language||"en";return(null==(t=null==i?void 0:i.trim().match(/^([a-zA-Z]{2,3})/))?void 0:t[1].toLowerCase())||"en"},getCopyrightLogoURL:(e="xlarge",n="dark")=>{C("getCopyrightLogoURL",e,n);const t=n+"_"+e,i={dark_small:wL("copyright-dark-64.png"),dark_medium:wL("copyright-dark-128.png"),dark_large:wL("copyright-dark-256.png"),dark_xlarge:wL("copyright-dark-512.png"),light_small:wL("copyright-light-64.png"),light_medium:wL("copyright-light-128.png"),light_large:wL("copyright-light-256.png"),light_xlarge:wL("copyright-light-512.png"),default:wL("copyright-light-1024.png")};return i[t]??i.default},storage:{getItem:e=>{C("getItem",e);const n=(e=>{const{storagePrefix:n="famobi",isLegacyMode:t,savegame:i}=fb.get();if(y(`${t?"[legacy]":""} storage.getItem: ${e}`),t){const t=`${n}:${e}`;try{return window.localStorage.getItem(t)}catch{return null}}if(!e)return i;const a=i[e];return void 0===a?null:a})(e);return"test"===g.get().name&&("string"==typeof n?a.force(`[storage] getItem('${e}') [data.length: ${n.length}]`):a.force(`[storage] getItem('${e}') -> null`)),n},setItem:(e,n)=>{C("setItem",e,n),"test"===g.get().name&&("string"==typeof n?a.force(`[storage] setItem('${e}', ${ZL(n)}}) [data.length: ${n.length}]`):a.force(`[storage] setItem('${e}')`)),((e,n)=>{const{storagePrefix:t="famobi",isLegacyMode:i,savegame:a}=fb.get();if(y(`${i?"[legacy]":""} storage.setItem: ${e}`),i){const i=`${t}:${e}`;try{window.localStorage.setItem(i,String(n))}catch{}return}if(a[e]!==n){const t=Bb(),i={...a,[e]:n};Fb({data:i,updatedAt:Date.now(),version:1,level:t},{persist:!0}),y(`make dirty and setItem: ${e}`,i)}})(e,n)},removeItem:e=>{C("removeItem",e),"test"===g.get().name&&a.force(`[storage] removeItem('${e}')`),(e=>{const{storagePrefix:n="famobi",isLegacyMode:t,savegame:i}=fb.get();if(y(`${t?"[legacy]":""} storage.removeItem: ${e}`),t){const t=`${n}:${e}`;try{window.localStorage.removeItem(t)}catch{}return}if(Object.prototype.hasOwnProperty.call(i,e)){const n=Bb(),t={...i};delete t[e],Fb({data:t,updatedAt:Date.now(),version:1,level:n},{persist:!0}),y(`make dirty and removeItem: ${e}`)}})(e)},clear:()=>{C("clear"),"test"===g.get().name&&a.force("[storage] clear()"),(()=>{const{storagePrefix:e="famobi",isLegacyMode:n}=fb.get();if(y((n?"[legacy]":"")+" storage.clear"),n){const n=`${e}:`;for(const e in window.localStorage)if(e.startsWith(n))try{window.localStorage.removeItem(e)}catch{}return}Fb({data:{},updatedAt:Date.now(),version:1,level:null},{persist:!0}),y("make dirty and clear")})()},redeemCode:async(e,n)=>{var t,i;C("storage.redeemCode",e,JSON.stringify(n||{})),await(null==(i=null==(t=g.get().storage)?void 0:t.redeemCode)?void 0:i.call(t,e,n))}},iap:{getProducts:async()=>{var e,n;C("iap.getProducts");let t=[];return(null==NL?void 0:NL("iap"))?(t=await(null==(n=null==(e=g.get().iap)?void 0:e.getProducts)?void 0:n.call(e))||t,t):t},buyProduct:async(e,n)=>{var t,i;(null==NL?void 0:NL("iap"))&&await(null==(i=null==(t=g.get().iap)?void 0:t.buyProduct)?void 0:i.call(t,e,n))},consumeProduct:async e=>{var n,t;(null==NL?void 0:NL("iap"))&&await(null==(t=null==(n=g.get().iap)?void 0:n.consumeProduct)?void 0:t.call(n,e))},onEvent:e=>{var n,t;if(!(null==NL?void 0:NL("iap")))return;let i=BL.get(e);i||(i=n=>{var t,i,a;const o="PURCHASE_SUCCESS_EVENT"===n.type?"success":"fail",r=(null==(t=n.detail)?void 0:t.sku)||(null==(a=null==(i=n.detail)?void 0:i.purchase)?void 0:a.sku),s={iap_result:o};r&&(s.sku=r),lC("iap_purchase_result",s);const u=e(n);"PURCHASE_SUCCESS_EVENT"===n.type&&Promise.resolve(u).finally(()=>{(async()=>{await zw("iap")})()})},BL.set(e,i),null==(t=null==(n=g.get().iap)?void 0:n.onEvent)||t.call(n,i)),mv.set({callbacks:{...mv.get().callbacks,onIAPEvent:i}})}},auth:{getState:()=>(C("auth.getState"),Tw()),onStateChange:e=>
1(C("auth.onStateChange"),xw(e)),signIn:async(e="google")=>{C("auth.signIn",e);const n=!0===Tw().isAnonymous;n&&Ow();const t=await jw(e);return n&&!0===t.isAnonymous&&Qw(),t},signOut:async()=>(C("auth.signOut"),Ww()),showOverlay:async e=>{C("auth.showOverlay");const n=!0===Tw().isAnonymous&&"manage"!==(null==e?void 0:e.mode),t=e?{mode:e.mode,title:e.title,message:e.message}:void 0;n&&Ow(),await Uw(t),n&&!0===Tw().isAnonymous&&Qw()},hideOverlay:()=>{C("auth.hideOverlay"),gw(),kw(!1)},restoreSave:async()=>(C("auth.restoreSave"),dS())},track:xC,log:(...e)=>((...e)=>{d.get().loggingEnabled&&w("log",...e)})(...e),enableLogging:(e={loggingEnabled:!d.get().loggingEnabled})=>{((e=!0,n=!0)=>{nL=!!e,tL=!!n,sL(!0)})(!0),d.set({...e})},getInfo:(e="all")=>{const n=Date.now(),t=cC.get(),i=p.get(),a=Object.fromEntries(Object.keys(t.types).map(e=>{var a,o;if("banner"===e||"preroll"===e)return[];const r=t.types[e],s=(null==(o=null==(a=i.ads)?void 0:a[e])?void 0:o.cooldown)??0,u=r.lastCalled??0;return[e,{...r,isReady:JC(e,""),cooledDown:BC(e,!0),passiveCooledDown:RC(e,!0),cooldownRemaining:Math.max(0,(s<1e3?1e3*s:s)-(n-u))}]})),o=Object.fromEntries(Object.keys(i.features).map(e=>[e,NL(e)])),r={settings:JL(p.get()),sdk:JL(g.get()),ads:JL({...t,types:a}),auth:JL(Cw.get()),game:JL(mv.get()),console:JL(d.get()),scoring:JL(TL.get()),storage:JL(fb.get()),portal:JL(mS.get()),features:o};return"all"!==e&&e?r[e]:r},getCloudUserData:async()=>(C("getCloudUserData"),ey()),getConfig:e=>{var n,t;return C("getConfig",e),null==(t=(n=g.get()).getConfig)?void 0:t.call(n,e)},getVersionInfo:()=>{const{version:e,semanticVersion:n,sequentialVersion:t,exportedAt:i,label:a}=p.get();return{version:e,semanticVersion:n,sequentialVersion:t,exportedAt:i,label:a}},getSDKName:YL,addEventListener:(e,n)=>(C(`addEventListener('${e}')`),UC(e,n)),removeEventListener:(e,n)=>{C(`removeEventListener('${e}')`),zC(e,n)},clearEventListener:e=>{C(`clearEventListener('${e}')`),(e=>{a.log(`[events] clearEventListener(${e?`'${e}'`:""})`),void 0!==e?delete jC[e]:jC={}})(e)},sendEvent:async(e,n)=>{var t,i;return C("sendEvent"),await(null==(i=(t=g.get()).sendEvent)?void 0:i.call(t,e,n))??await $C(e,n)},stageStart:async(e,n)=>{var t,i;C(`stageStart(${e})`),EC("stageStart",[{name:"stage",value:e}]),mv.set({stage:e});const a={};Number.isFinite(e)&&Number.isInteger(e)&&(a.stage=e),lC("stage_start",dL(a,n),{includeLevel:!0}),await(null==(i=(t=g.get()).stageStart)?void 0:i.call(t,e,n))},stageComplete:async e=>
1RL("complete",e),stageOver:async e=>RL("fail",e),stageQuit:async e=>RL("quit",e),player:{getDisplayName:e=>{var n,t;C("player.getDisplayName");let i=null==(t=null==(n=g.get().player)?void 0:n.getDisplayName)?void 0:t.call(n,e);return"string"==typeof i&&(i=pT(i)),i},isLoggedIn:()=>{var e,n;return C("player.isLoggedIn"),(null==(n=null==(e=g.get().player)?void 0:e.isLoggedIn)?void 0:n.call(e))??!1},onLoginStateChange:e=>{var n,t,i,a;C("onLoginStateChange"),null==(t=null==(n=g.get().player)?void 0:n.onLoginStateChange)||t.call(n,e),null==e||e((null==(a=null==(i=g.get().player)?void 0:i.isLoggedIn)?void 0:a.call(i))??!1)},openLoginDialog:async()=>{var e,n;C("openLoginDialog"),await(null==(n=null==(e=g.get().player)?void 0:e.openLoginDialog)?void 0:n.call(e))}},gameEnd:mL,gameFail:async e=>mL("fail",e),stageEnd:RL,stageFail:async e=>RL("fail",e),gameFinished:async e=>{var n,t;C("gameFinished"),EC("gameFinished"),lC("game_finished",dL({},e)),await(null==(t=(n=g.get()).gameFinished)?void 0:t.call(n,e))}},wT=(e,n={})=>{const t=(()=>{if("undefined"==typeof window)return;const e=window.SitePlayBootstrap;return"function"==typeof(null==e?void 0:e.track)?e:void 0})();if(t)try{t.track("event",e,n)}catch(i){y(`[Microsite][GA4] ${e} failed`,i)}else y(`[Microsite][GA4] ${e} skipped: SitePlayBootstrap is unavailable`)},yT=(e,n)=>{var t;(null==(t=p.get().famobiTracking)?void 0:t.enabled)&&("rewarded"!==e||n)&&ee(I.AD,{adType:e,fill:n,blocked:void 0===window.googletag})},bT=()=>{const{level:e,score:n}=mv.get();return{..."number"==typeof e?{level:e}:{},..."number"==typeof n?{score_total:n}:{}}},ST=e=>{wT("game_end",{end_reason:e,...bT()})},CT=({adType:e,eventId:n,placementType:t,result:i,rewardGranted:a,durationMs:o,errorCode:r})=>{const s={ad_type:e,ad_event_key:n,ad_placement_type:t};"failed"!==i&&wT("ad_impression",{...s,...void 0===o?{}:{ad_duration_ms:Math.round(o)}}),wT("ad_result",{...s,ad_result:i,...void 0===a?{}:{reward_granted:a},...void 0===r?{}:{error_code:r}}),"interstitial"===e?yT("interstitial","failed"!==i):a&&yT("rewarded",!0)},LT={name:"microsite",init:async(e,n,t)=>{const i=(e=>{var n,t,i,a,o,r,s,u,l,c,h,d,g,p;const m=mS.get().microsite;return{googleAdClient:(null==(n=null==e?void 0:e.microsite)?void 0:n.googleAdClient)||(null==m?void 0:m.googleAdClient),testAdsEnabled:(null==(t=null==e?void 0:e.microsite)?void 0:t.testAdsEnabled)??(null==m?void 0:m.testAdsEnabled)??!1,gam:{parentNetworkCode:(null==(a=null==(i=null==e?void 0:e.microsite)?void 0:i.gam)?void 0:a.parentNetworkCode)||(null==(o=null==m?void 0:m.gam)?void 0:o.parentNetworkCode),childNetworkCode:(null==(s=null==(r=null==e?void 0:e.microsite)?void 0:r.gam)?void 0:s.childNetworkCode)||(null==(u=null==m?void 0:m.gam)?void 0:u.childNetworkCode),interstitialUnit:(null==(c=null==(l=null==e?void 0:e.microsite)?void 0:l.gam)?void 0:c.interstitialUnit)||(null==(h=null==m?void 0:m.gam)?void 0:h.interstitialUnit),rewardedUnit:(null==(g=null==(d=null==e?void 0:e.microsite)?void 0:d.gam)?void 0:g.rewardedUnit)||(null==(p=null==m?void 0:m.gam)?void 0:p.rewardedUnit)}}})(n);if(!(()=>{var e,n;const t=p.get().ads;return Boolean((null==(e=t.interstitial)?void 0:e.enabled)||(null==(n=t.rewarded)?void 0:n.enabled))})())return void y("[Microsite] ads disabled in settings, skip Google ads init");const a=i.gam.parentNetworkCode||k,o=i.gam.interstitialUnit||D,r=i.gam.rewardedUnit||x,s={childNetworkCode:i.gam.childNetworkCode,testMode:i.testAdsEnabled||!0===t};_(a,o,r,s)},gameReady:()=>{wT("game_ready")},gameStart:async e=>{wT("game_start","number"==typeof e?{level:e}:{})},gameComplete:async()=>{ST("complete")},gameOver:async()=>{ST("over")},gameQuit:async()=>{ST("quit")},async preloadAd(e){switch(e){case"interstitial":case"rewarded":return Y(e).catch(n=>(y(`[Microsite] ${e} preload failed ${n}`),!1));default:return Promise.reject()}},async showInterstitialAd(e,n){y(`[Microsite] showInterstitialAd (${e}, ${n})`);const t=vC(e,n),i=Date.now();wT("ad_request",{ad_type:"interstitial",ad_event_key:e,ad_placement_type:t});try{if(!(await(async()=>{if(!E.isReady)return y("[GAM] Interstitial request failed: GAM not ready."),!1;const e=E.ads.interstitial;return"function"==typeof e.showAdCallback?(y("[GAM] Showing Interstitial..."),new Promise(n=>{const t=setTimeout(()=>{b("[GAM] Interstitial cancelled, Timeout reached"),e.resolveShow=null,e.showAdCallback=null,e.preloadPromise=null,n(!1)},12e4);e.resolveShow=e=>{clearTimeout(t),n(e)},e.showAdCallback()})):(y("[GAM] Interstitial not ready yet."),!1)})()))throw CT({adType:"interstitial",eventId:e,placementType:t,result:"failed",errorCode:"show_failed"}),new Error("[Microsite] Interstitial ad did not display");CT({adType:"interstitial",eventId:e,placementType:t,result:"closed",durationMs:Date.now()-i})}catch(a){if(a instanceof Error&&"[Microsite] Interstitial ad did not display"===a.message)throw a;throw CT({adType:"interstitial",eventId:e,placementType:t,result:"failed",errorCode:"show_failed"}),a}}
1,async showRewardedAd(e){y(`[Microsite] showRewardedAd (${e})`);const n="reward",t=Date.now();wT("ad_request",{ad_type:"rewarded",ad_event_key:e,ad_placement_type:n});try{const i=await(async()=>{if(!E.isReady)return y("[GAM] Rewarded request failed: GAM not ready."),{isRewardGranted:!1,wasShown:!1};const e=E.ads.rewarded;return"function"==typeof e.showAdCallback?(y("[GAM] Showing Rewarded Ad..."),e.isRewardGranted=!1,new Promise(n=>{const t=setTimeout(()=>{b("[GAM] Rewarded cancelled, Timeout reached"),e.resolveShow=null,e.showAdCallback=null,e.preloadPromise=null,n({isRewardGranted:!1,wasShown:!1})},18e4);e.resolveShow=e=>{clearTimeout(t),n({isRewardGranted:e,wasShown:!0})},e.showAdCallback()})):(y("[GAM] Rewarded Ad not ready yet."),{isRewardGranted:!1,wasShown:!1})})();if(!i.wasShown)throw CT({adType:"rewarded",eventId:e,placementType:n,result:"failed",rewardGranted:!1,errorCode:"show_failed"}),new Error("[Microsite] Rewarded ad did not display");return CT({adType:"rewarded",eventId:e,placementType:n,result:i.isRewardGranted?"completed":"closed",rewardGranted:i.isRewardGranted,durationMs:Date.now()-t}),{isRewardGranted:i.isRewardGranted}}catch(i){if(i instanceof Error&&"[Microsite] Rewarded ad did not display"===i.message)throw i;throw CT({adType:"rewarded",eventId:e,placementType:n,result:"failed",rewardGranted:!1,errorCode:"show_failed"}),i}},hasRewardedAd:async()=>E.isReady&&"function"==typeof E.ads.rewarded.showAdCallback,iap:{getProducts:async()=>(a.log("[microsite][iap] getProducts()"),await(async()=>ae()?(await Ny()).map(e=>({sku:e.sku,displayPrice:e.price.amount+" "+e.price.currency,currencyImageURI:void 0})):[])().catch(e=>{a.warn("[microsite][iap]",e)})||[]),buyProduct:async(e,n)=>(a.log(`[microsite][iap] buyProduct('${e}')`,n),mb(e).catch(e=>{a.warn("[microsite][iap]",e)})),onEvent(e){a.log("[microsite][iap] onEvent()"),(e=>{ae()?"function"==typeof e&&(a.log("[iap][xsolla] onEvent handler set"),db(),lb(e)):a.log("[iap][xsolla] onEvent registration skipped because IAP feature is disabled")})(e)},consumeProduct:async e=>(a.log("[microsite][iap] consumeProduct()",JSON.stringify(e)),vb(e).catch(e=>{a.warn("[microsite][iap]",e)}))},storage:{redeemCode:async(e,n)=>(a.log(`[microsite][storage] redeemCode('${e}')`),pS(e,n).catch(e=>{a.warn("[microsite][storage]",e)}))}};var TT;TT=LT,g.set({...TT}),window.gameInterface={...TT,...vT},window.gameInterface&&(window.GameInterface=window.gameInterface)}();

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.