delete window.$;let wpRequire=webpackChunkdiscord_app.push([[Symbol()],{},e=>e]);webpackChunkdiscord_app.pop();let ApplicationStreamingStore=Object.values(wpRequire.c).find((e=>e?.exports?.Z?.__proto__?.getStreamerActiveStreamMetadata)).exports.Z,RunningGameStore=Object.values(wpRequire.c).find((e=>e?.exports?.ZP?.getRunningGames)).exports.ZP,QuestsStore=Object.values(wpRequire.c).find((e=>e?.exports?.Z?.__proto__?.getQuest)).exports.Z,ChannelStore=Object.values(wpRequire.c).find((e=>e?.exports?.Z?.__proto__?.getAllThreadsForParent)).exports.Z,GuildChannelStore=Object.values(wpRequire.c).find((e=>e?.exports?.ZP?.getSFWDefaultChannel)).exports.ZP,FluxDispatcher=Object.values(wpRequire.c).find((e=>e?.exports?.Z?.__proto__?.flushWaitQueue)).exports.Z,api=Object.values(wpRequire.c).find((e=>e?.exports?.tn?.get)).exports.tn,quest=[...QuestsStore.quests.values()].find((e=>"1248385850622869556"!==e.id&&e.userStatus?.enrolledAt&&!e.userStatus?.completedAt&&new Date(e.config.expiresAt).getTime()>Date.now())),isApp="undefined"!=typeof DiscordNative;if(quest){const e=Math.floor(3e4*Math.random())+1e3,t=quest.config.application.id,o=quest.config.application.name,s=quest.config.messages.questName,a=quest.config.taskConfig??quest.config.taskConfigV2,n=["WATCH_VIDEO","PLAY_ON_DESKTOP","STREAM_ON_DESKTOP","PLAY_ACTIVITY","WATCH_VIDEO_ON_MOBILE"].find((e=>null!=a.tasks[e])),r=a.tasks[n].target;let i=quest.userStatus?.progress?.[n]?.value??0;if("WATCH_VIDEO"===n||"WATCH_VIDEO_ON_MOBILE"===n){const e=10,t=7,o=1,a=new Date(quest.userStatus.enrolledAt).getTime();let n=!1;(async()=>{for(;;){const s=Math.floor((Date.now()-a)/1e3)+e,l=i+t;if(s-i>=t){const e=await api.post({url:`/quests/${quest.id}/video-progress`,body:{timestamp:Math.min(r,l+Math.random())}});n=null!=e.body.completed_at,i=Math.min(r,l)}if(l>=r)break;await new Promise((e=>setTimeout(e,1e3*o)))}n||await api.post({url:`/quests/${quest.id}/video-progress`,body:{timestamp:r}}),console.log("Quest completed!")})(),console.log(`Spoofing video for ${s}.`)}else if("PLAY_ON_DESKTOP"===n)isApp?api.get({url:`/applications/public?application_ids=${t}`}).then((s=>{const a=s.body[0],n=a.executables.find((e=>"win32"===e.os)).name.replace(">",""),l={cmdLine:`C:\\Program Files\\${a.name}\\${n}`,exeName:n,exePath:`c:/program files/${a.name.toLowerCase()}/${n}`,hidden:!1,isLauncher:!1,id:t,name:a.name,pid:e,pidPath:[e],processName:a.name,start:Date.now()},u=RunningGameStore.getRunningGames(),p=[l],c=RunningGameStore.getRunningGames,d=RunningGameStore.getGameForPID;RunningGameStore.getRunningGames=()=>p,RunningGameStore.getGameForPID=e=>p.find((t=>t.pid===e)),FluxDispatcher.dispatch({type:"RUNNING_GAMES_CHANGE",removed:u,added:[l],games:p});let g=e=>{let t=1===quest.config.configVersion?e.userStatus.streamProgressSeconds:Math.floor(e.userStatus.progress.PLAY_ON_DESKTOP.value);console.log(`Quest progress: ${t}/${r}`),t>=r&&(console.log("Quest completed!"),RunningGameStore.getRunningGames=c,RunningGameStore.getGameForPID=d,FluxDispatcher.dispatch({type:"RUNNING_GAMES_CHANGE",removed:[l],added:[],games:[]}),FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",g))};FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",g),console.log(`Spoofed your game to ${o}. Wait for ${Math.ceil((r-i)/60)} more minutes.`)})):console.log("This no longer works in browser for non-video quests. Use the discord desktop app to complete the",s,"quest!");else if("STREAM_ON_DESKTOP"===n)if(isApp){let s=ApplicationStreamingStore.getStreamerActiveStreamMetadata;ApplicationStreamingStore.getStreamerActiveStreamMetadata=()=>({id:t,pid:e,sourceName:null});let a=e=>{let t=1===quest.config.configVersion?e.userStatus.streamProgressSeconds:Math.floor(e.userStatus.progress.STREAM_ON_DESKTOP.value);console.log(`Quest progress: ${t}/${r}`),t>=r&&(console.log("Quest completed!"),ApplicationStreamingStore.getStreamerActiveStreamMetadata=s,FluxDispatcher.unsubscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",a))};FluxDispatcher.subscribe("QUESTS_SEND_HEARTBEAT_SUCCESS",a),console.log(`Spoofed your stream to ${o}. Stream any window in vc for ${Math.ceil((r-i)/60)} more minutes.`),console.log("Remember that you need at least 1 other person to be in the vc!")}else console.log("This no longer works in browser for non-video quests. Use the discord desktop app to complete the",s,"quest!");else if("PLAY_ACTIVITY"===n){const e=`call:${ChannelStore.getSortedPrivateChannels()[0]?.id??Object.values(GuildChannelStore.getAllGuilds()).find((e=>null!=e&&e.VOCAL.length>0)).VOCAL[0].channel.id}:1`;(async()=>{for(console.log("Completing quest",s,"-",quest.config.messages.questName);;){const t=(await api.post({url:`/quests/${quest.id}/heartbeat`,body:{stream_key:e,terminal:!1}})).body.progress.PLAY_ACTIVITY.value;if(console.log(`Quest progress: ${t}/${r}`),await new Promise((e=>setTimeout(e,2e4))),t>=r){await api.post({url:`/quests/${quest.id}/heartbeat`,body:{stream_key:e,terminal:!0}});break}}console.log("Quest completed!")})()}}else console.log("You don't have any uncompleted quests!");