From 02a3eef5e7668b61e5cc31d238fef563ccdbbe19 Mon Sep 17 00:00:00 2001 From: Ryder Date: Tue, 5 May 2026 01:08:26 +0100 Subject: [PATCH] upload --- .../headwaiter/connection/kickstart.aspx.js | 4 +- .../headwaiter/connection/login.aspx.js | 32 - .../ServiceVault/msntv2/passport/RST.srf.js | 444 +++++++ .../passport/ppsecure/clientpost.srf.js | 13 + .../ServiceVault/msntv2/sg1/Home/Home.aspx.js | 18 +- .../Shared/Anduril/HTC/en-us/ScrollingDIV.htc | 1095 +++++++++++++++++ .../Media/Assets/PanelPlayerControlFF.png | Bin 0 -> 1878 bytes .../Media/Assets/PanelPlayerControlMute.png | Bin 0 -> 2023 bytes .../Media/Assets/PanelPlayerControlNext.png | Bin 0 -> 2030 bytes .../Media/Assets/PanelPlayerControlPause.png | Bin 0 -> 2089 bytes .../Media/Assets/PanelPlayerControlPlay.png | Bin 0 -> 2014 bytes .../Media/Assets/PanelPlayerControlPrev.png | Bin 0 -> 2036 bytes .../Media/Assets/PanelPlayerControlRew.png | Bin 0 -> 2054 bytes .../Media/Assets/PanelPlayerControlStop.png | Bin 0 -> 2034 bytes .../Media/Assets/PanelPlayerControlUnmute.png | Bin 0 -> 2037 bytes .../Panels/Images/PanelPlayerLargeBG.jpg | Bin 0 -> 1583 bytes .../Images/PanelPlayerSmallLeftSide.jpg | Bin 0 -> 771 bytes .../Images/PanelPlayerSmallMiddleStretch.jpg | Bin 0 -> 685 bytes .../Images/PanelPlayerSmallRightSide.jpg | Bin 0 -> 806 bytes .../_debug/Shared/Images/BulletCustom.gif | Bin 0 -> 175 bytes .../Shared/Images/Icon_Help_RelatedLink.png | Bin 0 -> 1642 bytes .../Images/ScrollIndicatorLeftGlobal.png | Bin 0 -> 383 bytes .../Images/ScrollIndicatorRightGlobal.png | Bin 0 -> 403 bytes .../HTCTransforms/en-us/LoopingDIV.htc | 1 + .../sg1/Register/Established-Account.aspx.js | 37 +- .../sg1/Register/Promotion-code.aspx.js | 4 +- .../sg1/Register/Register-MSN-email.aspx.js | 2 +- .../sg1/connection/.GatePage.aspx.js.kate-swp | Bin 0 -> 66 bytes .../msntv2/sg1/connection/GatePage.aspx.js | 706 +++++++++++ .../connection/boxcheck.html.js | 88 +- .../msntv2/sg1/connection/usercheck.aspx.js | 193 +++ 31 files changed, 2540 insertions(+), 97 deletions(-) delete mode 100644 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/login.aspx.js create mode 100644 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/RST.srf.js create mode 100644 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/ppsecure/clientpost.srf.js create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/HTC/en-us/ScrollingDIV.htc create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlFF.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlMute.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlNext.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPause.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPlay.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPrev.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlRew.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlStop.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlUnmute.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerLargeBG.jpg create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallLeftSide.jpg create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallMiddleStretch.jpg create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallRightSide.jpg create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/BulletCustom.gif create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/Icon_Help_RelatedLink.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/ScrollIndicatorLeftGlobal.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/ScrollIndicatorRightGlobal.png create mode 100755 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/BaseClient/HTCTransforms/en-us/LoopingDIV.htc create mode 100644 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/.GatePage.aspx.js.kate-swp create mode 100644 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/GatePage.aspx.js rename zefie_wtvp_minisrv/includes/ServiceVault/msntv2/{headwaiter => sg1}/connection/boxcheck.html.js (77%) create mode 100644 zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/usercheck.aspx.js diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/kickstart.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/kickstart.aspx.js index a3c9f53f..f5d04e71 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/kickstart.aspx.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/kickstart.aspx.js @@ -27,7 +27,7 @@ data = ` } } function GotoBoxCheck() { - var url = 'https://headwaiter.trusted.msntv.msn.com/connection/boxcheck.html'; + var url = 'https://sg1.trusted.msntv.msn.com/connection/GatePage.aspx?phase=BoxCheck&purpose=Authorize'; var parms=''; parms += 'BoxId=' + tvShell.SystemInfo.BoxIDService + '&'; parms += 'WANProvider=' + tvShell.ConnectionManager.WANProvider + '&'; @@ -73,4 +73,4 @@ data = ` -`; \ No newline at end of file +`; diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/login.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/login.aspx.js deleted file mode 100644 index 811b7ede..00000000 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/login.aspx.js +++ /dev/null @@ -1,32 +0,0 @@ -const minisrv_service_file = true; - -// Todo: auth if not guest - -headers = `Content-type: text/html`; - - data = ` - - - - - - - -`; \ No newline at end of file diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/RST.srf.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/RST.srf.js new file mode 100644 index 00000000..18c2ba57 --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/RST.srf.js @@ -0,0 +1,444 @@ +const minisrv_service_file = true; +const crypto = require('crypto'); + +// Sorry Zef :kek +// https://git.computernewb.com/yellows111/msnp-wiki/src/branch/master/docs/services/rst.md +// the RST_ cookie stuff was code that was temp until we had proper token authentication +const NS = { + SOAP: "http://schemas.xmlsoap.org/soap/envelope/", + WSSE: "http://schemas.xmlsoap.org/ws/2003/06/secext", + WSP: "http://schemas.xmlsoap.org/ws/2002/12/policy", + WSU: "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd", + WSA: "http://schemas.xmlsoap.org/ws/2004/03/addressing", + WST: "http://schemas.xmlsoap.org/ws/2004/04/trust", + PSF: "http://schemas.microsoft.com/Passport/SoapServices/SOAPFault", + ENC: "http://www.w3.org/2001/04/xmlenc#", + DS: "http://www.w3.org/2000/09/xmldsig#" +}; + +function getCookie(cookieString, name) { + if (!cookieString) return null; + const match = cookieString.match(new RegExp(`(?:^|;\\s*)${name}=([^;]*)`)); + return match ? decodeURIComponent(match[1]) : null; +} + +function setCookie(name, value, options = {}) { + const cookie = `${name}=${encodeURIComponent(value)}`; + const path = options.path || '/'; + const expires = options.expires || ''; + return `${cookie}; path=${path}${expires ? `; expires=${expires}` : ''}`; +} + +function formatDateTime(dt) { + return dt.toISOString().replace(/\.\d{3}Z$/, 'Z'); +} + +function getClientIP() { + const forwarded = request_headers['x-forwarded-for']; + if (forwarded) { + const ips = forwarded.split(','); + return ips[0].trim(); + } + return request_headers['x-real-ip'] || '127.0.0.1'; +} + +function generateRandomToken(userId, appliesTo, isLegacy = false) { + const timestamp = Date.now(); + const randomPart = crypto.randomBytes(32).toString('hex'); + + if (isLegacy) { + const tokenData = `${userId}|${appliesTo}|${timestamp}|${randomPart}`; + return crypto.createHash('sha256').update(tokenData).digest('hex'); + } else { + const tokenData = { + uid: userId, + app: appliesTo, + ts: timestamp, + rand: randomPart, + ver: '1.0' + }; + return Buffer.from(JSON.stringify(tokenData)).toString('base64'); + } +} + +function extractXmlValue(xml, elementName) { + if (!xml) return null; + + const patterns = [ + new RegExp(`<${elementName}>([\\s\\S]*?)`, 'i'), + new RegExp(`([\\s\\S]*?)`, 'i'), + new RegExp(`([\\s\\S]*?)`, 'i'), + new RegExp(`([\\s\\S]*?)`, 'i') + ]; + + for (const regex of patterns) { + const match = xml.match(regex); + if (match && match[1]) { + let value = match[1].trim(); + value = value.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); + return value; + } + } + return null; +} + +function extractTokenFromCipherValue(xml) { + if (!xml) return null; + + const cipherRegex = /([\s\S]*?)<\/CipherValue>/gi; + let match; + let token = null; + + while ((match = cipherRegex.exec(xml)) !== null) { + let cipherValue = match[1].trim(); + if (cipherValue && cipherValue.length > 0) { + token = cipherValue; + console.log("Found CipherValue token:", token.substring(0, 50) + "..."); + break; + } + } + + return token; +} + +function validateTokenAndGetUser(token) { + try { + let userId = null; + let email = null; + + if (request_headers.cookie) { + userId = getCookie(request_headers.cookie, 'RST_Auth'); + email = getCookie(request_headers.cookie, 'RST_Email'); + if (!email) email = getCookie(request_headers.cookie, 'rst_email'); + if (!email) email = getCookie(request_headers.cookie, 'rst_username'); + } + + if (!userId) { + userId = crypto.createHash('md5').update(token).digest('hex'); + email = `user_${userId.substring(0, 8)}@example.com`; + } + + console.log(`Token validated - UserId: ${userId}, Email: ${email}`); + return { success: true, userId, email }; + } catch (error) { + console.error("Token validation error:", error); + return { success: false, userId: null, email: null }; + } +} + +function generateErrorResponse(errorCode, errorText) { + const now = formatDateTime(new Date()); + headers = `Status: 200 OK + Content-type: text/xml; charset=utf-8`; + + return ` + + + + 1 + 0x80048800 + ${errorCode} + + NOBELLIUM 16.0.30846.6 + + + + + + + + + S:Sender + + wst:FailedAuthentication + + + + Authentication Failure + + + + ${errorCode} + + 0x80041012 + ${errorText} + + + + + + `; +} + +function generateSuccessResponse(requestBody, userId, email, firstName, lastName) { + const now = new Date(); + const tomorrow = new Date(now.getTime() + 24 * 60 * 60 * 1000); + + const createdTime = formatDateTime(now); + const expiresTime = formatDateTime(tomorrow); + + const puid = crypto.randomBytes(16).toString('hex').toUpperCase(); + const cid = crypto.randomBytes(8).toString('hex').toUpperCase(); + + const safeFirstName = firstName || email.split('@')[0] || "User"; + const safeLastName = lastName || "User"; + const clientIp = getClientIP(); + + const rstRegex = //gi; + const responses = []; + let match; + let foundRst = false; + let rstIndex = 0; + + while ((match = rstRegex.exec(requestBody)) !== null) { + foundRst = true; + const rstBlock = match[0]; + + const addressMatch = rstBlock.match(/(.*?)<\/wsa:Address>/i); + let appliesTo = addressMatch ? addressMatch[1] : "urn:passport:compact"; + + const policyMatch = rstBlock.match(/ + + + + http://Passport.NET/STS + + + ${token} + + + `; + } else { + let tokenValue = `t=${token}`; + if (needsProofToken) { + tokenValue += `&p=profile`; + } + requestedSecurityToken = ` + + ${tokenValue} + `; + } + + let responseXml = ` + + ${tokenType} + + + ${appliesTo} + + + + ${createdTime} + ${expiresTime} + + ${requestedSecurityToken} + + + + `; + + if (needsProofToken || isLegacy) { + responseXml += ` + + ${binarySecret} + `; + } + + responseXml += ` + `; + + responses.push(responseXml); + rstIndex++; + } + + if (!foundRst) { + const defaultToken = generateRandomToken(userId, "urn:passport:compact", false); + responses.push(` + + urn:passport:compact + + t=${defaultToken} + + + ${createdTime} + ${expiresTime} + + `); + } + + headers = `Status: 200 OK + Content-type: text/xml; charset=utf-8 + Set-Cookie: RST_Auth=${userId}; path=/; HttpOnly + Set-Cookie: RST_Email=${email}; path=/`; + + return ` + + + + 1 + ${puid} + 16.000.26889.00 + 3.100.2179.0 + 16.000.26208.0 + 0x48803 + 0x0 + + NOBELLIUM 16.0.30846.6 + + + + MSFT; path=/; domain=.msn.com; expires=Wed, 30-Dec-2037 16:00:00 GMT + MSFT; path=/; domain=.live.com; expires=Wed, 30-Dec-2037 16:00:00 GMT + + + MSFT + true + ${cid} + ${email} + US + 1033 + ${safeFirstName} + ${safeLastName} + 40100643 + ${clientIp} + + + ${cid} + + + + + + + ${responses.join('\n ')} + + + `; +} + + +function rstHandler() { + try { + + // Get POST data + let requestBody = ''; + if (request_headers.post_data) { + if (Buffer.isBuffer(request_headers.post_data)) { + requestBody = request_headers.post_data.toString('utf8'); + } else if (typeof request_headers.post_data === 'string') { + requestBody = request_headers.post_data; + } else if (typeof request_headers.post_data === 'object') { + requestBody = JSON.stringify(request_headers.post_data); + } + } else { + console.log("No post_data found. Available keys:", Object.keys(request_headers)); + return generateErrorResponse("0x80048820", "No POST data received"); + } + + if (!requestBody || requestBody.trim() === '') { + console.log("Empty request body"); + return generateErrorResponse("0x80048820", "Empty request body"); + } + + // Authentication + let email = extractXmlValue(requestBody, 'Username'); + let password = extractXmlValue(requestBody, 'Password'); + + let userId = null; + let userEmail = null; + let firstName = "User"; + let lastName = "User"; + + if ((!email || !password) && requestBody.includes('CipherValue')) { + console.log("No username/password found, trying token authentication..."); + const token = extractTokenFromCipherValue(requestBody); + + if (token) { + const tokenValidation = validateTokenAndGetUser(token); + if (tokenValidation.success) { + userId = tokenValidation.userId; + userEmail = tokenValidation.email; + console.log(`Token authentication successful for: ${userEmail} (${userId})`); + + if (request_headers.cookie) { + const cookieEmail = getCookie(request_headers.cookie, 'RST_Email'); + const cookieUsername = getCookie(request_headers.cookie, 'rst_username'); + if (cookieEmail) userEmail = cookieEmail; + if (cookieUsername) firstName = cookieUsername; + } + } else { + console.log("Token validation failed"); + return generateErrorResponse("0x80048821", "Invalid token"); + } + } else { + console.log("No token found in CipherValue"); + return generateErrorResponse("0x80048820", "Missing credentials/token"); + } + } + else if (email && password) { + console.log(`Extracted - Email: ${email}, Password: ${password ? '***' : 'empty'}`); + + if (email && email.indexOf('@') < 0) { + const domain = (minisrv_config && minisrv_config.config && minisrv_config.config.domain_name) || 'wtv.zefie.com'; + email = `${email}@${domain}`; + } + + userEmail = email; + firstName = email.split('@')[0]; + userId = crypto.createHash('md5').update(email).digest('hex'); + console.log(`Authentication successful for: ${userEmail} (${userId})`); + } + else { + console.log("Missing both credentials and token"); + return generateErrorResponse("0x80048820", "Missing credentials/token"); + } + + if (!userId || !userEmail) { + console.log("Failed to get user identity"); + return generateErrorResponse("0x80048821", "User identity not found"); + } + + const cookieHeaders = [ + setCookie('rst_email', userEmail, { path: '/' }), + setCookie('rst_username', firstName, { path: '/' }), + setCookie('rst_authenticated', 'true', { path: '/', expires: 'Wed, 30-Dec-2037 16:00:00 GMT' }) + ]; + + const response = generateSuccessResponse(requestBody, userId, userEmail, firstName, lastName); + + for (const cookie of cookieHeaders) { + headers += `\nSet-Cookie: ${cookie}`; + } + + return response; + + } catch (error) { + console.error("RST Handler Error:", error); + console.error("Error stack:", error.stack); + return generateErrorResponse("0x80048820", `Internal error: ${error.message}`); + } +} + +let result = rstHandler(); +if (result) { + data = result; +} diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/ppsecure/clientpost.srf.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/ppsecure/clientpost.srf.js new file mode 100644 index 00000000..904d1e36 --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/passport/ppsecure/clientpost.srf.js @@ -0,0 +1,13 @@ +const minisrv_service_file = true; + +// Wrong email return: +// Wrong Password return: + +// Example Client request: example@example.comexamplefalse11 + +data = `t=Disabled&p=Disabled`; // T and P cant be nulled they have to have some content in it + +headers = `200 OK +Content-Type: text/xml`; + +console.log(request_headers.query); diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Home.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Home.aspx.js index 50e4443a..9775e21c 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Home.aspx.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Home.aspx.js @@ -4,15 +4,15 @@ const minisrv_service_file = true; const WeatherCity = 'Your City'; const WeatherTemp = '72'; const WeatherDescription = 'Sunny'; -const WeatherIcon = '/Pages/Home/Weather/26.gif'; +const WeatherIcon = '/Home/Weather/26.gif'; // News headlines -const NewsLink1 = 'http://sg1.trusted.msntv.msn.com/Pages/Tricks/he.mp3'; -const NewsLink2 = 'http://sg1.trusted.msntv.msn.com/Pages/Tricks/pokemon-black-2.mp3'; -const NewsLink3 = 'http://sg1.trusted.msntv.msn.com/Pages/Tricks/he.mp3'; -const NewsTitle1 = 'Ryder Smells'; -const NewsTitle2 = 'Ryder Smells'; -const NewsTitle3 = 'Ryder Smells'; +const NewsLink1 = ''; +const NewsLink2 = ''; +const NewsLink3 = ''; +const NewsTitle1 = '...'; +const NewsTitle2 = '...'; +const NewsTitle3 = '...'; headers = `200 OK Content-type: text/html`; @@ -22,7 +22,7 @@ data = ` Home - + @@ -187,7 +187,7 @@ data = `
- Promotional Image + Promotional Image
diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/HTC/en-us/ScrollingDIV.htc b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/HTC/en-us/ScrollingDIV.htc new file mode 100755 index 00000000..80b8e5be --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/HTC/en-us/ScrollingDIV.htc @@ -0,0 +1,1095 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlFF.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlFF.png new file mode 100755 index 0000000000000000000000000000000000000000..d1ce0a84908439a48f57d538ddd2477fa8282ba4 GIT binary patch literal 1878 zcmZWqX;f3!7QW$T00JZ+Xi`zaP!J6=DEUz$=v3^-oY5dYIp<(p&OcabIeE#P zRDjN8rKD0qzer9`jZRHwo?<^p^#uT|Iy8_TlRuHN3B$DhBn*I(%U#M*5MZ1+h(eFH zRxXStZa#F_WkWA_DorDn~xcV7Z;LEI+>qeBI;;N5O#N;6STC9 zI{W+gbwY#Mx#?-yT31m~vBNxD%7xe7 zXjWdF?o5;x>DE@R(I|sGV(~+9cb6PBoP=%ovMvtyA);%PMm^hRuj{_(f@m6kfT3cP<8l;d;h;l3iWJ%QD8s$5iU(XK^7RhINmibt&Mqj^>aQ&Xi!i zd)$Z!ljIhM{{lPSk<}!|5$3w~aQM7-e}FjV(u-`m#%!&WdU;UR>-~No8TL7hiN* zsidyOLwfZF9vdE)M?rl`z?|hBiKIkSQet<&N-AUd`|D_pjS1ZP`nsrYiMamqLzR@9 zs9W1uo@=IY69s}1#h9$Drb2_m;}^NYox)>6GNlJf6Aam#a{yGJf;}k+5M=sJPI4t) z-Y_RSdlR(R!O&r;8#E&{{b6+S7rS?`l&d1?U|8?u?fO!-etS7egVJE?QEqsqy&@~1 z3c)3)0%$f7zwmeHA12jg1WD%9kH2169sk~CxJ&4lyE^N^bQcca#{qifNdttT zb(x2*_7%ZpP^*1kZ94w3!Wx^>?1Rc7*@E5R?51MT%Utpqc z++8EgLN|6{rk*&AgqI%l?k0uo2q8!wl{SEGTbTQ-kwzw34;FG?&pudOmL1yMxV1dg zVyJ!Jsj7r^0haps+wKk{k*Un2zzR+sDa0v+5aO&b62?>9D;!G@nJ|oByor;P|y`_m0@8fw*0fr8gN6=4D>e6h13JT(JJ8#v)^@yCO_D zUSf$OLScbkOVi^$=_=F{gXb4-vBv!i*X6G*l+(PnerY9a9cy5St++Q!&!m3^eML{> zA)*ScoI$F?P-xN9gD*y!X-ai9`|YU zMAv_r2?@(83H$hgQK%Qm`-5^~!mSY2HLbZ@saOoP_{z-^ZorYBThz=#e9q)l|LJ(1 z$(_QL`Qbk)J>>?TL_nX?+MsEg(1v`O5iJ0j;`M!M!L27^W7{37O(3k%t3%Yi>wY8PnWgvI7wOz4N zJ_EO-sr@AWLCj1sj?f35oS#V_xzvO+Oe`x?Iz%^U5Rr0lxQQ`SY)U-kTQG&4(axcZ z3c*qnq7*$HJSvB`nv2?Uvk@w48l&v(f;peKIz%5`+kQk=R65-}n`?|9V7n0bAI8Pf zEAa0_LoB>*8V6puvOkEIPaqyI2S2azn^mHS5Y;@t11w*ryGkC1L5)n{!%f*Hm9k_< zZ?r?aVxM6|y5prTF2ma3Z~C5&68nj`tGDC-dVC>h(J#Y33E~*}v(Et#5Vauj^ZMo4 v&dfG%9`MoF38ZJSHxU74Fm4?J^o)RdZ&1%h7n+9*Mj-THMBtABNrL|YrdCe+ literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlMute.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlMute.png new file mode 100755 index 0000000000000000000000000000000000000000..59b4eccb051fc47734623eff6178a251d630d687 GIT binary patch literal 2023 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 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPause.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPause.png new file mode 100755 index 0000000000000000000000000000000000000000..856ac233236512d9cdc38987233237fa63779651 GIT binary patch literal 2089 zcmZWqX*`?R9)7dgLXr_hN-I=RqJ+A(mIOm|(L{CAMQqW!Tx(UQ9a(Ilp;3%*xuR&z zw6}uZX*(T)QhP0>)fpYFt(KN5ib(R_*XQ|g&i|Y*&+q)7=Q;l;i|*&6rLj{3001pt znwLLR&7rklO$FNTKL8X^K}JxIQ30T~(-DUoUDv@*g2`5OjaeL;ovtB*VWSacJif zeFCA_WKU%P3W+*;EjjtXlWWOUPNSnJO1yiDLjGl~rzj$*>BiIL4~ooJJw-Opv`7z? zd7)SeK)&t&l504%@d0UY~0+MYAGFx z>4}N3shNox*~-WD+L&=EDBoPs>x}E=@pw@tcTD!5KR;$kXLwm;##eNcL^+-T~;KKQ%0jXtW7erZES-W&%rEG9>b#CQjW^Ir( zMY*|h&z;!OP*>MeS1)OU^)XdSu87X4ZX=QzbF))bCN?%kn(?B7g5j&*eU}%ct*w2K zq8eFWSFeE>k$Bp_VVjw;l7dg^V*D_e*QaZP+yR$QMpjl<7B1;2N*O`(z=AXV5MvHU zdiTYop-3c=V{SsSLnU+xP*isH@5UdzL3UilUt4~;aQ?RmsM`2^8*0$ zswoZC(<_qP77D{YPU>y+b##E4`S}Yr_V^XH*wf9#O1`ze)Z@+u8@-kd@vpGDy01av zAz~xZp2FhxB8!h%OaX8{{ZTwxL;aWK*aYyy#FV_JrDYi_+5i#O3K{liO?dk>B!HA` z#~IW7kZQ`cY~p0=3wH}I3JJsp3X9ikrt?4ODHc;txN}GNIc1-XY}3Ke(D2RvR=B2v zcSaDXRBUOSK>9@qG}+vTGQ?!+90)eqks-uY&ML1DC_&lb=be5Bh#WQN-27WbMR-vS znCihH@Tpk_+3d>d>rm3*c|7@B`MqX9KD&X5&)_KxJ`y;l;j3jWuzU zv^#6-_fOY0fwHxm>S@%q8FwL~f{~#eKQQYVhcCbmAs!}F%y6~|>x_eX?Ti~QKX~n{ z%vGWdDnGm0*LZ-61;!c;m*!s0fa)@_mkrGGVE zUw;9)qL5SQv`}Otj?Y~&GBB{R=&&n2bS1^|H{ZezQ-e_6~Wc)o=10q+BtwWk`Qi$~WW0E%B6&OXto6 z!YdaX@se~{WWNGdC~uw_V4Kw-K-jKt2Kr_0DRL$}ebkl7hn+M3WPbcVfb*hdCrMoY zxb4wl$b+I&>YbVEF=J2ac3mR=`KC7LWK?u?aT6PSDKEaYU^8i2$x`V#4(_~G4%kZ5LpS4(p<1*^~d)ZN`JeZuWa zjLJpab%NBD_kFH}#FPlW=Lihr6*GSL>~fm^%TVI714%~y`;b;K3|muNuc6+rc!WL>mIagOGcqzcdS;_J1B2nD+m>qKn1EU&;pPjcx7ASA1HRw;c|G)C^8OF|z^#}7 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPlay.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPlay.png new file mode 100755 index 0000000000000000000000000000000000000000..4f079ea0ec5c21c06871ff9e738172cfbda62b15 GIT binary patch literal 2014 zcmZWqdo+~m9{%QT3}f7l#`d{{GD2t@6`xB&(xgdhD`Sk&#ZE3oYR`P*P83n59m{B| zrYl3WPo14%r)COW?M*v1TL{S+_Xcx0(>ZIMf6gE8@3P*t-u1rE^ZcH-gdVloP~Tb~ z006`Au#jk7cGj&mdRSe&aT8GM5;{3>YajqL$-c*wj_Z1I=BC)p9jTnmtc3I=AdsEP zN&>@wOh`_OPD)@OPkWlQ0RV7E!b1WX*?+NAT5Z51CI&!sc6t;eAi(gT6oGyzJVyEd zl0=~WY(*wtuy^={fk9&;k7s9l|KoUeqi=sd21*a$s#R0-T{X$^Z71(f52}mabk(^3 z(~x>wQ<-Q40iI{0pYtgr3R}?G&0*4QmE8e5`_<1LJ$^i2R9>gHB@hVx!T_GeL$kD4 zHU93`RBGxziDpLic-C}V{f74s(uN8*H~N`?aBSEStBmaI{Bt*J<0@KO&gKe*FWvq9 z+nOM$dgS9r_VA~VpO$7vzc!`HC0fi?L^P*<72~(_U`Vs2I+$8>fS74+0(2;#a`cERhYoCusDI z+s8>DT#Tn3!(cExpPfErPfxL;oxZ%1N>%+38y2Q7cn&Q|0JkM{x|Pfw+>GqtMMV)4 zgw7uTn+5Wi6@3qTNxfz3C-w4I4dheBSFX1^g+LY;&_y&~-!X(uGP*RBWI_5{i|YKX zEV7J8)@XT$n3qxwckmW^7vDo$sgPw$E~WGNlV@E$J@bQ#c&5|h{A}MDgG3Wfa|CsJ`w$tm&9VRfpNq*<|4wIz;^OH zjnV^yP7e(ajf|k3K5K;}CYD9tllxI_02*wmr{mVP+w4DE*mxe%XvxOPs1+B$Ry>Ue z!g?byF(G$6?O&CN$hdMWZKij+b%*gxnF|NJSZ)NMNgbEaf_eS{mHUt_^Yrqv!qy=I z8JuoV`X~ydU^9He++_w8yFss#RrxxiDu%d{ocYhoI?46J0z4yCgQAhfuyjVksn>6u zUo`j{FtYOI;E6aP88rCc!yCN6s-IRlH%U;g(+YW;SKjJ5xrFPbSzbP4Ov_0iuFsfJ zF+#Bny=cN~)N8_86x%`;$ltpiDU>* ziJgjie3@*vM~GCeZ=S-eYl!v#X-THlBEQFL(R#ak~RJ1ZL0zv&!6mh_iIYM z|4*z%{ggE5^jLvz7{4f z8wgvs|53D^ab@z+BfgXOe{Qcp9exi59U;O@Mam_-WKFm9>k6}+FZnqNCxcKdsBW<#jQwbKrM~CIV9nV-Vqq2ew(Ezeo z#PJh}@dwW!#Os=$4l|idAW7K|tj|2Y=nse15D&@dzACvA!NhPm)6os7`mj(%5@ig4wk4 znhga8SdPin_@|Wv^zIVIE={3Db9{r+`TpKu-43NYmq79A&<^83j@4uz* zAw4Euf&5Ij!%rgSHNq4@oHKDU0-}^QZYCAKdD#u{)4?{}&7_z_FEj{G6;Na|L{Ttg zQOBRD967>I7oD`e8EEK(+ig_FGpe!s2K$`{NHLzY3vx4e6z(H^zVHX#`bwMWXVB8o zs5^)dZU&H`#U_fU^gF}O8$#@T6Z#GGUDbEixALp6EkKKP`BbbP$hvf{GGA0w zV3NZL&%3f)fFkP^SnKHq`SM6D!KBdKvbCaco0T}k?G*sRE=LCrJJ#x#-`>6dV2s1L l6OITNupo~8d{b1&?I33EzX8jZc{l(7 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPrev.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlPrev.png new file mode 100755 index 0000000000000000000000000000000000000000..c316e7cb6c02369659b436d7a91a9a081d1580d7 GIT binary patch literal 2036 zcmZWqeLU0c9{$bV+Qy8~2pd8%Hl&dFk(j5Yk$Tco*}T{3#HNEfv=?vVP(0-nk`0}F z%8AkI(^FF>PE;z@$VqKW)|9 z0RS+IW=6!p)g4~m%P{bMsSPl|1(hDQH4FgS``4q(b@1Kx@aA2Iw`Zmu&gJq`fv}X! zq*QA3pSkI&ajD#tBfNj51_J=LBswB2K5sN>5rRT{IA{Q&R5Bz85HLH?hd>QUbL{_k zBoPAZ$hNk%&MwXIXcU@tBrk96jU#z20V)+5e8_XR%Z|L=OqM z(+>6--l^3o+6nc9e&+pLd*-+TTAZI*(a#$ci^T_>o1DG(>>2X_Z+{e~*&~C#(&afO zC=x+VBoJ}(9dU8xJ7afPTUuKiylJ%AE%EUcd-t&73mY2to+&FUbFj)%2%z~{-OT&a z_C&=o`)>eaxis&IkOA9gy<8io7A>A)9Dmb{+Uy!hI1_}suL|O zErUVqflhfR9{Iduliy2$n_F5Acc%?8hDdzzV|!vK5cG-S>FK#TsQ8#sZ)>{tV<3BD ztd2w#N^pTWXf#^jzr)|w$45TZ&0cV&(H4K&#bn~oJOcF!z)O$fll$q^D3iN_m>42g z>i!yV_}zAr%-)@%H*DEDVOW?mg8nB(-#0k@4PhcFX14|g1WY0v(oyA+BpcEj2&w$F zf>j}?WX<}6A0C|xQeY=L1r^jjAKy-LyvoG%BEdMwo}IB$7{7 z&e7VSu%qD7ur%SINiEK|p52c?k(~N?1U&BIbXGR>R;^texO;cn{LFXA&)28GfGzuh z0bsgc3LvAv@A}%~T;Y8$moXmg|6!^$fQdw^5$d)`DjPmi7{yR>a_ao!dnTs-ktK-` zOrX5w%Zc+>_XiDfAsP7~Vz~>FY0jjpOr;4_zcL=&^%i`4cM6^E&WMGu#eg5F&~m*M zRI;YC!}p=M)H$v-?3ow2a8^7BEd4)aof8}vn7G`zsm!9RWSaVBc)Dx*ljh}NeoeZ~ z{wpcKGOE}*l<^UopP8d;D4gR93sV%AG4$%Y$ir{Sy0%w)-h-HYs_9dLFEYiZpOu8? z3IS*Bjq&zlx z-gsm1k#G799hQ*s^9H}xaLDj+y+)yc$ki^(0xv#38yspKs09!FPxWY)lPT=n0ZDuA z)a%v443EYXRECzN}V1$yN-Yn58q(xa$=oTkggP$3~r63p~kQo7%? z>c2|kZ#II9-{Fv6aCLRv>)_C!8rd~s6ghvJYE)EI*MB$rl7e3|LS zAs~m(Eg(JSMGs{Vi;XoRgFdZicnB81-$mi&x!ok>wHVd5bHNDy*p8|MFg3Gme+`W2 z^H0kv^QrM0yyOi-;5GQ&i>lF4-vY?kFz-hh&ty-^o39oL!gt@3PNozP4v)R8-tIhx57H!K`-+oXsb3^e8663I)+w12m5w#vXO8M%U>jbpYZ-xHXbT1 zN+#DO}4AM#7iKOK;=Jf&ao+;)wTJrH#u08+nk@P3MV6B^JF`5 z{XX98M7!qmwkukOf(d5PTJ}h#Re8tIPiX%c$6;RA*Cl`=`_q_SYR^-7gorTgyS&8| zF|ewEDZ39mUvT`;y0NIq3I(fErSa&{GRP`q4YHVxU0dK3rE#Pk<-~eQPQ_-K2!W=^ z!0UE)VsB=Wn3?3AaiCI`bO~n*$7?uijF!QyNsi9GRsGbFc7@yfm==y%67mq-Vq_qD XJ9VJCH+mW#+d%Z@n25{a9PxhuO1FY& literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlRew.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlRew.png new file mode 100755 index 0000000000000000000000000000000000000000..c6d64fb0650fd94d64f08b9d0e32a52206adad25 GIT binary patch literal 2054 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 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlUnmute.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Media/Assets/PanelPlayerControlUnmute.png new file mode 100755 index 0000000000000000000000000000000000000000..eef07d6a895a7c95427e92523e9ba2948b3a67b2 GIT binary patch literal 2037 zcmZuyeK^x=AOCIG%4VC8De)WSB|O+fliEuv9F^o0MP@d;@+gt#l!|Rej5td25*fM< zNnYY~bcO8^rjSL-DdlwLC=ht;T*Yo`GJb&Ex_rCwQzt{Kk`F`&2M;vhI zfPwxdeET`~6x#0|#9m;~)b7>U%u&GAH4?S;D^Hgrl)h2^S*b zxd4L`%jSZFMhECtkeh){=Pf?#_`BJ$gJXS)=}IskeX^-hSor+(%9N zP;Y_r69dOO=z1ic4!GV3d?7UdW7ZP1b+VpuvL~G;S#5v*w5w|=J-bw6iNRn-Bs4zc z0!6q;9eEf^gx^Ll?t_2HnsjZHVEz&TX2zcvX#csDBrxJVrS$A%mE zd6>Xs#{vn)#%o=2`SRw^Ez;1?l53-(qoI6A4K2;6mdoJONNUdNP}Sku*)eJ4$ySaK zsvnc$uV|q&u8NXMIvTR-J|qCxq}LJuB#|EZ`T4!vUQ@%YsHhlAOG`@@XJ$5LWr?F3 znwl^aSJy@n^2_opt!z&c1cRP>GXUpbtZHkb7Ut(Kc{pJ1+v=cghl-AV!WnLkhq-0? z2YGr@@AdTdqDAI5+qNx*d3%o+q^9cP6~f|}+S(5Kj%h{TQkhs>6jqp@Cdw0uhPyuu zn%K$zQZ2{smy`%fA1HaJED$CV;*m)LD9CvBU|L^aABwJtCbQXWny~yU=5xzf2a_2n zOF+$!no9Q73s=(Guh&V0jdes9V{M8#Y7pz^u7xy_we@FC;mJCjjXnNsCJq!7u1hNx zi9{9(x^;kCN`nB#_^*a zvKCe(PlfjXs2vFoftnhCz1i1=tRs@jN|kxxgcRB9j>@&jJ=I`FZ=y#rx1^f_x&)Fu zZhme)9+{P*l`wCaWiTG&Q^kNZBAP+GYsx|W8?+ffpr=;ko0Pc93Jt|J(>pmksxKYs z??wa23>I}6(x_lrKwS00GTz#S*AYXi7~jto{RgH54a0o7rW(F~e2lMI>(cFzTrvuZ zG7PydtF*j}4*kUJM-;6m-_A9I#CT-e{Ho?YsYgI;f0*-%56;owM8e3S4ovvj~qs+rl=#FgN{c)2v`J z)yaMb2}S%~TOanMrkVBe%7NXxHF#}#9rf}Wa#RSq`gm%3S4;*yBN7+BI&JR3=7xY2 zaU48X3^QMs(bX&J)rG3Dq>D%8&!3}epYj`pgNjG}yLj3aNF>hAo}p1Fl#%SJoU&5X zp=xQeXmF!-^{f^B`+0gKEJHI27YT=e>Vm|uB%tlozN_wHZCV>Wqx(x z)4SHz*5Yf}80;CREmPrb$z7%uJhrz#kHBR#Im(FHCxRr%pM-Q`@9}L|5fe~3ogGVONSi?qP`yw4d6;}eY?Qq^_@RT#FnofseGfIv7mtX%#6#7 z-|As}-fB2sTCO*J+z#?R`vx97MDzlI2z$ey7PSB45Pk*-$KiZIkloF9;(bZfV)G2? zri@wAJzvrMEU73B=Xt#^Mc5>J8-;%e(^5WuOroTRwZ0FiBX9hUSMl?CMlqw5$Ju*f z?^OBVoB5Z*EWbv@x(Z zekv(HaIgVw4}K~C4yj9Mui$Ka<+>#x`|`PJij7Q;{zBqfU}0AzU<@}6Dafcxiv@d) zv?0|e7+w|(w4b5`oAscn=LSr0^)@V~ZFuLngQTnX>{iU+OD9t9#9(g4h)Ku>P@w3g p#t-FyZpJSHZvetS%=Iln8E|vJBD~f_;0XIR;JfdTcO8?J@-JC;qO|}3 literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerLargeBG.jpg b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerLargeBG.jpg new file mode 100755 index 0000000000000000000000000000000000000000..1cda96c0f97bc2c18ec7a0fbdf8b49e843828f24 GIT binary patch literal 1583 zcmbu8du&s66vuz}*{&;HOZVHxw!|p!8#O79F^!1gQ_yX}ez>u@Ow0t)p01W_m0hfk>Zl$Zjxe2(safOKY zgF3*{G|kW~!>|b~z7y3ft4`EvG>ICGRc{(fxnbNR1q*?sW%>COw+fB2nyevNhO9^pOrxzBI>_y=A%i76QduYp!m)Ejs` z28x!6nL<2PE@B6N(m~ z%6eFFRkGbP@qZPd)*`s`v=DGf{BaX%DL{^TXxSip(PoKHk%})m#Y6{c_Hn&cs3|Ju z_lo(F75_LmJ;^`7ratm9v(r;6cvaA@W9&MvBa8be3)(ZtR!ph5H%WNl=$n|iM%K~1=a`rqiF;o{=v;^GnD0RsUZK7IjyJ|1CV5fNcw z8EI*08F@HhWM^mR<>8eO5Ri}(6%>_%OAyQWe}F-dgTa=8pP5mRfk}{&S&;Gn5ynM8 z2eLDQ0FVI&EUe5-Y>W)-9GqO-j0{Xn%*e7p0cI9fHn5}s0}~@NGZPCF8#^}6lk&l!iw}*(l0K*uHGNcdHVK}zXj5|WAyXIi z$%{9eiHD?=9KQ63L#>&UOG2_`imTg_En$~KHKaa0{(R)hlP{^Ity7n7J$m)&*R-;> zY0I`9yY}pxxqEnedHeL`+mBy={@ubOBBP>X#)=&$ZoK%RY3Ui6S=l*r<<65gU;fmx z@`}o;>YBA`*Qr~tegQqs1au`UE6@)t9L&tQK>r9bvw&R88VGbTTVdlwqlFtkh#b85 zP}xZ|D5>b9v5JXvlh~wS)kVph4zU+sGJWLIEFLl$7&;P?YG$rd>M13m=ARaCKCGd6 z`SItLDNDAXI@v7@;b@$0#^dDww-|Vs!Oj$9uxEHC7xC%(e7!H+*4@#pX3I>!%uCtY zvnlwY^0h}tf)}3T5GiEI{B(alGppIOJDm$eH~ic2LG%%4|BOA)ODkN=CW*GXvdeBb z<>M0ZaNmC26KAfn?e%lJ88pXBvr%h`#Hu;5hM`}NhCF)NwSJw}Cc7D{-h`&4=Y-a2 OEtmHJlK&b0-vj_Rs{`5q literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallMiddleStretch.jpg b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallMiddleStretch.jpg new file mode 100755 index 0000000000000000000000000000000000000000..fbbe0cce5835f2fab1b4182401dc02d158308b73 GIT binary patch literal 685 zcmex=iF;o{=v;^GnD0RsUZK7IjyJ|1CV5fNcw z8EI*08F@HhWM^mR<>8eO5Ri}(6%>_%OAyQWe}F-dgTa=8k(p7Dfk}{&S&;Gn5ynM8 z2eLDQ0FVI&EUe5-Y>W)-9GqO-j0{Xn%*e7p0cI9fHn5}s0}~@NGZPCF8#^}6lk&l!iw}*(l0K*uHGNcdHVK}zXj5|WAyXIi z$%{9eiHD?=9KQ63L#>&UOG2_`imTg_En$~KHKaa0{(R)hlP{^Ity7n7J$m)&*R-;> zY0I`9yY}pxxqEnedHeL`+mBy={@ubOBBP>X#)=&$ZoK%RY3Ui6S=l*r<<65gU;fmx z@`}o;>YBA`*Qr~tegQqs1au`UE6@)t9L&tQK>r9bvw&R88VGbTTVdlwqlFtkh#b85 zP}xZ|D5>b9v5JXvlh~wS)kVph4zU+sGJWLIEFLl$7&;P?YG$rd>M13m=ARaCKCGd6 z`SItLDNDAXI@v7@;b@$0#^dDww-|Vs!Oj$9uxEH4zrg0>e+Hdx_iNj~o-CMB$g=!( d`2F|SexKv^)mw02-O<>t-J)e$Z$kgy1OO=>-1h(g literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallRightSide.jpg b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Panels/Images/PanelPlayerSmallRightSide.jpg new file mode 100755 index 0000000000000000000000000000000000000000..ef74cbf5750a311e2f4bc6038268e5b2b78facd4 GIT binary patch literal 806 zcmex=iF;o{=v;^GnD0RsUZK7IjyJ|1CV5fNcw z8EI*08F@HhWM^mR<>8eO5Ri}(6%>_%OAyQWe}F-dgTa=8pP5mRfk}{&S&;Gn5ynM8 z2eLDQ0FVI&EUe5-Y>W)-9GqO-j0{Xn%*e7p0cI9fHn5}s0}~@NGZPCF8#^}6lk&l!iw}*(l0K*uHGNcdHVK}zXj5|WAyXIi z$%{9eiHD?=9KQ63L#>&UOG2_`imTg_En$~KHKaa0{(R)hlP{^Ity7n7J$m)&*R-;> zY0I`9yY}pxxqEnedHeL`+mBy={@ubOBBP>X#)=&$ZoK%RY3Ui6S=l*r<<65gU;fmx z@`}o;>YBA`*Qr~tegQqs1au`UE6@)t9L&tQK>r9bvw&R88VGbTTVdlwqlFtkh#b85 zP}xZ|D5>b9v5JXvlh~wS)kVph4zU+sGJWLIEFLl$7&;P?YG$rd>M13m=ARaCKCGd6 z`SItLDNDAXI@v7@;b@$0#^dDww-|Vs!Oj$9uxEIF@n`n=O;W0JcgxS4|F1zmSz@koi~byceKgQr)Y#(THoKRl%+wou9v^p(TN%?Qv|C%RMs4&E2es29WiPisa0s#8x B8TSAH literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/BulletCustom.gif b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/BulletCustom.gif new file mode 100755 index 0000000000000000000000000000000000000000..129cb43514321a5873415005ce13e8bbe4836d57 GIT binary patch literal 175 zcmZ?wbhEHbWM|-GIKsfdWT+mxJuYrndiBZXsGUg>+hb#QB_`}i%07@+dbFbaSY^uo z)U*R>`A70APgMHX`&S;Xs5@2Dc&4H0Ohf1S_E|S({{R1<0XICMAjY5rQUbD* zfmLULYM&Uxgr~)Q4of#p`7$k-d9T9}oenOGcBX^N4Oj{|5AqnySQ@4zoR!7N$Y2cs D4wgEz literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/Icon_Help_RelatedLink.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/Icon_Help_RelatedLink.png new file mode 100755 index 0000000000000000000000000000000000000000..076be34b1e180e30e2afafc1a658225c6f925f85 GIT binary patch literal 1642 zcmV-w29^1VP)Z|NQ;S092Ix``7PmQv+SYU=Jq-TPs5b1z9PeI3vTG zcV8K{?>@}1an~+}ljpCTXJciV3e+~2nVA`G20#G84FtM^{nwvAEfOLkCAEd=45@K0 zVDYyf7#NaAu&~rHGBW-IsRsxk z7MNH6{{7pcuBceDYEBn}rkV)Dt^0o&_8tAs@ZjNFhR+{gFns&^nc>5yPYf)~{~3JU zwHe|fd>Qn0bQp^2>q~Clf6M@MWhuz(00G3zCa4TDFj+)Epkw`lNetQ=A`F{$ePY;t z@H>NqC=)}VCl5n(usnmGrxJs)fi%O1k3SifuRg_a@4*`eX9p7oV{ILVBd3m8eg69W z3DCgv00G3zDxf6v>(}oo4MjPU{$2(Q%hx?&*mLj=gRu@bLu{}BgCIXEIHLXnv6wIi zgSoK`(3KnvtJWQ7c=Pr%gNK_L1Iz!v42RF0kz-_JS`82YQ2?(00|X8rSSuzYXpVz) z0MFCx0HmwY00#yD0AN@g01XTU0Mgd*0Dy?e0KmcJ03;(401FHT022`t0L{1~xWUhJ6Rl1A~l}!9dfH;UCZ}fB*nd z0IvT8|Nj0rGAk+o-r?{7($m%e2L=lO?dt*nb9%D?3knAS`uhR^|Ni{|I5r#rG%*(d z@$vrv=IHkT;^gZ9{{H*`;pF82-{R~5ARZ?G{s8_r0*D2e?v#av1sEPbe#7wj%V&l^ z?Ee^k{Q)NM|4a<8Uo$fN`t^^&)6;+*%F4*_^XDIi zcke$l2=GdR5{xoH0I>j*6vNLSzZrf4UGn?qZw3~|U*Ocl$jHL*^Vfd{5fL7Sq-axy z_wW7zeer`~*~+sFr_NqwU}I-z_y-K9e}9=6{`>(&8aM?q00a;dBNNlz`;Q&~y~hRg z+JB%Szksg##qj(0Z-!q$3;1|A8NPpGVEFu%fnm|o(+md=Uu0loWdm9WH1HoYFxzo5 zaI*6-ynp`=m<|~30t65!7Xow96$U;o4hC^CQHC#Hz5)&V1IB-VE_nCuJHw7W_Zapb zxX*Cs-g98g^MDOuVBiFXFDrwPkT`>&pb*20SC4=OGMxknAYfW#+H>a8b)Z4-7@X{_ z8Giiu0SuQP48Q;U0V?><@ch*WhO5`_GF-a!fZ_A!pTJn=1{%l*G*AHOLOup73qv5A znc?=s^Poav4?qAhvkNLedh`CH8y^Rwq^+eB!>3O_7_MEv#lXtK#_;v~F9tg+J%++; zcLrlaMPL~I1?KC&z~myz@ckz@gPxuwgM+mi!~F+W7*=jscoA6eQ~?AK$iVNwg5l4z zH!uB^Wh5Ca&FvVzfB(a9>-Jq>SpH?;LTo1sL3& zWEsAE{Kc?%Lkq);*KcZo@o@|wfWUbf2+n``_Jil)<9k-J64DIzw$2Qa5|ThKeg?Yg zCBvyRcNmTye*_HpzYMZ662Lqx%3xz5!0_qAFNRfHyBJPiJlDg-#M}vtVFrKzLMgt0 zDZNEfRJg?3(VxM>!~>XTxftGj_y}~}M_~A{F$e+EtB?RUFl?C_Zrr}aux{H7hU<53 z0*fzJc<}`gKqv()&_IyE$-v0SG0@UA&`~#HP?XhW5EPJMU}j-v`1tuf!;|N?8E)P= z&2aSW(Tl%-|C$Ue$59GcfB-@<5NH^TDFig!|KI oUM41%jX=3~pppo=3IGT&07zz5DR&a{J^%m!07*qoM6N<$f=){He*gdg literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/ScrollIndicatorLeftGlobal.png b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/Anduril/Images/en-us/_debug/Shared/Images/ScrollIndicatorLeftGlobal.png new file mode 100755 index 0000000000000000000000000000000000000000..58c72d562e7491d63697b77f10aa157f59dc5cf0 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|mUKs7M+S!VC(K#9UIO`&C9V-A z!TD(=<%vb942~)JNvR5+xryniL8*x;m4zo$Z5S9B1wCCHLn>}1{rUgjo>?zp)#)$u zCkh_2D}5=i%q+(s;NWva!ik50LqW}{O=jnhZpQw_4;d61W^hP4=>SE=V%lWv{&V`& z-&0_oemIrGgWrK+>dkpdyWwUe&9|CIYnD=|* z&NGYOiQZ7E(PQFJ=-I}1{rUgjp4l#8*>RRI zhM=-vpX}XYUNJCrbT)b%;4nE9GM#hzS_Vd!3knmw`(pmMUNC52P`c&X!o$p=;1(R~ z=5+ALhQ*#ejph$H5C5;Xm&oD$DY2nd(t*M7V9vqT#0Q_*B-z~5_~z&V)ofE#QXbdlM6PBG)S`vIQa0SFihayxnqY! zne2at?`jSV6H^5?B^odYIHX9kFq!?zDOeBG%-vD= zo;~60i;0bS938v@4m$t;Pkttw)7HS?z_9Vb>5B>tb6ylkGBGhQ9&zgOPFQz5&C-EE u@Jxn+c;h8bJ7)(5g$9qVx|)Lw0tpOk6Y72i&sPBjKZB>MpUXO@geCx(gpKR~ literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/BaseClient/HTCTransforms/en-us/LoopingDIV.htc b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/BaseClient/HTCTransforms/en-us/LoopingDIV.htc new file mode 100755 index 00000000..d069c583 --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Home/Shared/BaseClient/HTCTransforms/en-us/LoopingDIV.htc @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Established-Account.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Established-Account.aspx.js index d7f53da5..35c1db93 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Established-Account.aspx.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Established-Account.aspx.js @@ -75,29 +75,42 @@ data = ` @@ -116,7 +129,7 @@ data = `
- +
@@ -139,9 +152,9 @@ data = `

`; -} \ No newline at end of file +} diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Promotion-code.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Promotion-code.aspx.js index 85c424b3..2edea3e9 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Promotion-code.aspx.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Promotion-code.aspx.js @@ -15,7 +15,7 @@ if (!password && request_headers.cookie) { if (pm) password = decodeURIComponent(pm[1]); } -if (email && email.indexOf('@') < 0) email += "@"+minisrv_config.config.service_name; +if (email && email.indexOf('@') < 0) email += "@"+minisrv_config.config.domain_name; let userAvail = false; if (email) { @@ -83,4 +83,4 @@ data = ` `; -} \ No newline at end of file +} diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Register-MSN-email.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Register-MSN-email.aspx.js index c93dd449..2dc2ae6c 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Register-MSN-email.aspx.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/Register/Register-MSN-email.aspx.js @@ -51,7 +51,7 @@ data = `

Type your minisrv username:

-

@${minisrv_config.config.service_name}

+

@${minisrv_config.config.domain_name}


Next, enter a password:

diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/.GatePage.aspx.js.kate-swp b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/.GatePage.aspx.js.kate-swp new file mode 100644 index 0000000000000000000000000000000000000000..3e7a17de4a4d5e7897a0c92a88b64137a152faca GIT binary patch literal 66 zcmZQzU=Z?7EJ;-eE>A2_aLdd|RWQ;sU|?Vn`P;L%%fIr{0f8B|%g;tmUV7xD!k6G6 S1_s7sKv@v54h3?Ky8-~YW)yV* literal 0 HcmV?d00001 diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/GatePage.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/GatePage.aspx.js new file mode 100644 index 00000000..fd8cbd8a --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/GatePage.aspx.js @@ -0,0 +1,706 @@ +const minisrv_service_file = true; + +// Get the phase parameter from the query string +let phase = request_headers.query.phase; +if (Array.isArray(phase)) phase = phase[0]; + +let BoxId = request_headers.query.BoxId; +if (Array.isArray(BoxId)) BoxId = BoxId[0]; +let clientIp = socket.remoteAddress; +let banned = false; +let sessionId = null; +ServiceDomain = minisrv_config.config.domain_name; + +// Use the shared MSNTV2 helper injected by WTV-MSNTV2 VM context. +if (BoxId) { + if (!BoxId || BoxId.length != 20 || !/^\d+$/.test(BoxId)) + { + console.warn("Invalid BoxId format "+BoxId+" from "+clientIp); + banned = true; + } else { + sessionId = encodeSessionID(BoxId); + } +} else if (request_headers.cookie && request_headers.cookie.SessionID) { + BoxID = decodeSessionID(request_headers.cookie.SessionID); + sessionId = request_headers.cookie.SessionID; +} else { + console.warn("No BoxId provided by client "+clientIp); + banned = true; +} + +if (!sessionId && !banned) { + banned = true; +} + +if (!session_data && BoxId) { + console.log("Missing session_data for BoxId %s", BoxId); +} + +let registered = false; +let username = ''; +let Profile_Picture +if (session_data) { + registered = session_data.isRegistered(); + if (registered) { + username = session_data.getSessionData("subscriber_username") || ''; + Profile_Picture = session_data.getSessionData('ProfilePicture') || ''; + } +} + +// Current UTC time +const now = new Date(); + +const timeData = { + hh: now.getUTCHours(), + mm: now.getUTCMinutes(), + ss: now.getUTCSeconds(), + mo: now.getUTCMonth() + 1, + dd: now.getUTCDate(), + yyyy: now.getUTCFullYear() +}; + +const timezoneMap = { + "UTC": { + standardName: "UTC", + standardOffset: 0, + daylightName: "UTC", + daylightOffset: 0 + } +}; + +const { + standardName, + standardOffset, + daylightName, + daylightOffset +} = timezoneMap["UTC"]; + +// Set session cookie on the client +if (sessionId) { + setCookie('SessionID', sessionId, { path: '/' }); +} + +// Handle different phases +switch (phase) { + case "Bootstrap": + headers = `200 OK + Content-type: text/html`; + + data = ` + + + + + + + + `; + break; + + case "BoxCheck": + + headers = `200 OK + Content-type: text/html`; + + data = ` + + + + + + + + + + + `; + break; + + case "UserCheck": + headers = `Content-type: text/html`; + + // Check if the msntv.msn.com token is correct TODO + + data = ` + + + + + + + +`; +break; + +default: +headers = `200 OK +Content-type: text/html`; + +data = ` + + + +`; +break; +} diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/boxcheck.html.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/boxcheck.html.js similarity index 77% rename from zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/boxcheck.html.js rename to zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/boxcheck.html.js index 1b201544..b1c91681 100644 --- a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/headwaiter/connection/boxcheck.html.js +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/boxcheck.html.js @@ -37,6 +37,8 @@ if (session_data) { registered = session_data.isRegistered(); if (registered) { username = session_data.getSessionData("subscriber_username") || ''; + Profile_Picture = session_data.getSessionData('ProfilePicture') || ''; + } } @@ -103,23 +105,23 @@ data = ` var email = TVShell.UserManager.EMail; var wanProvider = TVShell.ConnectionManager.WANProvider; - var banned = ${banned}; // JavaScript boolean value - var registered = ${registered}; // JavaScript boolean value - var username = "${username}"; // JavaScript string value + var banned = ${banned}; + var registered = ${registered}; + var username = "${username}"; + var picture = "${Profile_Picture}"; - InitializeGuestMode(); - RemoveGuestUsers(); + InitializeGuestMode(); + RemoveGuestUsers(); if (!banned) { - TVShell.AddSecretCode(10000); // sync shit - TVShell.AddSecretCode(10001); // sync shit - TVShell.AddSecretCode(10002); // sync shit - TVShell.AddSecretCode(93288); // Service Select - TVShell.AddSecretCode(77437); // Spooky Options - TVShell.AddSecretCode(6145539); // Force Crash - var entry = TVShell.ServiceList.Add("connection::login"); - entry.URL = "https://headwaiter.trusted.msntv.msn.com/connection/login.aspx?BoxId=${BoxId}"; - TVShell.ServiceList.Save(); + // DEBUG ONLY! USE WITH CAUTION! + TVShell.AddSecretCode(10000); // Power-on for nightly update + TVShell.AddSecretCode(10001); // Power-on for nightly email check at anchor time + TVShell.AddSecretCode(10002); // Power-on for nightly email check at non-anchor time + TVShell.AddSecretCode(77437); // spooky dialing options + TVShell.AddSecretCode(93288); // Service Selection Page + TVShell.AddSecretCode(6145539); // crash the system + TVShell.AddSecretCode(3932397); // update loop test } function CheckForUser(usernameToCheck) { @@ -129,11 +131,11 @@ data = ` if (user == usernameToCheck) { return true; } - } + } return false; } - function DoLogin() { + function DoLogin() { var currentUser = TVShell.UserManager.CurrentUser; if (currentUser == null) { if (banned === true) { @@ -146,15 +148,30 @@ data = ` var user = TVShell.UserManager.AddNew(username); if (user) { user.IsPersistent = true; + user.setAttribute("GuestUser", false); + var dt = new Date(); + + TVShell.UserManager.LastLoginTime = dt.getTime() / 1000 + dt.getTimezoneOffset() * 60; + + TVShell.UserManager.OfflineAppMaxAccessDays = 20; + TVShell.UserManager.OfflineAppMaxAccessTimes = 20; + TVShell.UserManager.CurrentUser = user; + user.LargeIcon = "msntv:/SignInPics/big/"+ picture + ".png"; + user.SmallIcon = "msntv:/SignInPics/small/"+ picture + ".gif"; + TVShell.UserManager.Save(); + entry = TVShell.ServiceList.Add('connection::login'); + entry.URL = 'https://headwaiter.trusted.msntv.msn.com/connection/GatePage.aspx?phase=Bootstrap&purpose=Authorize'; + entry.Description = '${minisrv_config.config.service_name}/sg1 [${minisrv_config.config.hide_minisrv_version ? "beta" : minisrv_version_string.replace("zefie's wtv minisrv ","")}]'; + TVShell.ServiceList.Save(); } } } - SetProgress('Welcome, New User!', 100); var myPanel = TVShell.PanelManager.Item('main') if (registered === true) { var signon = TVShell.BuiltinServiceList.Item("SignOn"); var panel = TVShell.PanelManager.FocusedPanel; var atLogin = false; + TVShell.ConnectionManager.ServiceState = 'ReSignIn'; if ( signon && panel && panel.Name == "main" ) { if ( IsMainPanelOnPage( signon.URL ) ) atLogin = true; @@ -165,7 +182,7 @@ data = ` GotoSignOn(); } } else { - if (myPanel) myPanel.GotoURL('https://sg1.trusted.msntv.msn.com/register/Establish-your-MSN-TV-Account.html'); + if (myPanel) myPanel.GotoURL('https://sg1.trusted.msntv.msn.com/Register/Establish-your-MSN-TV-Account.html'); } if (myPanel) { myPanel.ClearTravelLog(); @@ -180,27 +197,23 @@ data = ` } } - if (currentUser != null) { + if (currentUser != null) { var serviceArgs = new Array(); - var ProductionArgs = new Array("msntv.msn.com", "MBI", 0, 0, + var ProductionArgs = new Array("msntv.msn.com", "MBI", 0, 0, "mail.services.live.com", "MBI", 0, 0, "livefilestore.com", "MBI", 0, 0, "messenger.msn.com", "?id=507", 0, 0, "spaces.live.com", "MBI", 0, 0 ); - var PPEArgs = new Array(); - var INTArgs = new Array(); serviceArgs[0] = ProductionArgs; - serviceArgs[1] = PPEArgs; - serviceArgs[2] = INTArgs; try { TVShell.LoginManager.IDCRLInitialize(0); TVShell.LoginManager.IDCRLLogonAndAuthToServices(serviceArgs[0]); } catch (e) { if (window.console) console.log("IDCRL error: " + e.message); } - - GoToUserCheck(); + + GoToUserCheck(); } } @@ -236,20 +249,18 @@ data = ` return null; } - function CheckBoxID() { - SetProgress("${minisrv_config.config.service_name} [${minisrv_config.config.hide_minisrv_version ? "beta" : minisrv_version_string.replace("zefie's wtv minisrv ","")}] Welcome, ${username != '' ? username : 'Guest'}!", 20); - } - function GoToUserCheck() { if (banned === true) { - var url = 'https://headwaiter.trusted.msntv.msn.com/connection/banned.html'; + var url = 'https://sg1.trusted.msntv.msn.com/connection/banned.html'; var myPanel = TVShell.PanelManager.Item('service'); if (myPanel) myPanel.GotoURL(url); } else if (registered) { - GotoSignOn(); + var url = 'https://sg1.trusted.msntv.msn.com/connection/usercheck.html'; + var myPanel = tvShell.PanelManager.Item('service'); + if (myPanel) myPanel.GotoURL(url); } } - + function SetProgress(text, percent) { if (progressPanel) { progressPanel.Document.SetProgressText(text); @@ -278,7 +289,6 @@ data = ` if (!IsServicePanel()) { DontContinue(); } else { - CheckBoxID(); DoPoptimization(); DoLogin(); @@ -287,21 +297,21 @@ data = ` } catch (e) { if (window.console) console.log("SetTimeZone error: " + e.message); } - + try { TVShell.DeviceControl.SetClock(${timeData.hh}, ${timeData.mm}, ${timeData.ss}, ${timeData.mo}, ${timeData.dd}, ${timeData.yyyy}); TVShell.DeviceControl.ClockSet = true; } catch (e) { if (window.console) console.log("SetClock error: " + e.message); } - + } } catch (e) { if (window.console) console.log("Error in boxcheck: " + e.message); - + var myPanel = TVShell ? TVShell.PanelManager.Item('main') : null; - if (myPanel) myPanel.GotoURL('https://headwaiter.trusted.msntv.msn.com/connection/error.html'); + if (myPanel) myPanel.GotoURL('https://sg1.trusted.msntv.msn.com/connection/error.html'); } -`; \ No newline at end of file +`; diff --git a/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/usercheck.aspx.js b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/usercheck.aspx.js new file mode 100644 index 00000000..067660d7 --- /dev/null +++ b/zefie_wtvp_minisrv/includes/ServiceVault/msntv2/sg1/connection/usercheck.aspx.js @@ -0,0 +1,193 @@ +const minisrv_service_file = true; + +headers = `Content-type: text/html`; + +data = ` + + + + + + + +`;