1function initGeneralCountdown(){displayRemainingTime();generalCountdownTimer||(generalCountdownTimer=setInterval(displayRemainingTime,1e3))}function displayRemainingTime(){$(document).find("[countdown-general]").each(function(){var t=$(this),n,i,r,u,f;const e=t.data("countdown-divided"),o=t.data("countdown-boxes");let s=t.data("countdown-utc"),h=Math.max(0,s-(new Date).getTime());n=Math.floor(h/1e3);i=Math.floor(n/86400);n-=i*86400;r=Math.floor(n/3600);n-=r*3600;u=Math.floor(n/60);n-=u*60;f=n;o?t.html(` 2 <span class="unit">${i}d</span><span class="sep">:</span> 3 <span class="unit">${String(r).padStart(2,"0")}h</span><span class="sep">:</span> 4 <span class="unit">${String(u).padStart(2,"0")}m</span><span class="sep">:</span> 5 <span class="unit">${String(f).padStart(2,"0")}s</span> 6 `):e?t.html(` 7 <div class="timespan"> 8 <div class="timespan-inner"> 9 <span class="value">${i}</span> 10 </div> 11 <span class="title">${keyLocalizer("--loc-site-753","days")}</span> 12 </div> 13 14 <div class="timespan"> 15 <div class="timespan-inner"> 16 <span class="value">${r}</span> 17 </div> 18 <span class="title">${keyLocalizer("--loc-site-754","hours")}</span> 19 </div> 20 21 <div class="timespan"> 22 <div class="timespan-inner"> 23 <span class="value">${u}</span> 24 </div> 25 <span class="title">${keyLocalizer("--loc-site-755","minutes")}</span> 26 </div> 27 `):t.html(`${i}d ${r}h ${u}m`)})}function showNotify(n,t="info"){window.notyf.open({type:t,message:n,duration:5e3,position:{y:"bottom"},dismissible:!0})}function showError(n){showNotify(n,"danger")}function showSuccess(n){showNotify(n,"success")}async function invokeAjax(n,t,i,r=undefined,u=undefined){let e,o=new Promise(n=>{e=n}),f=undefined;return r==undefined&&(r={}),r._source="js",$.ajax({type:i,url:n,data:t,contentType:u,headers:r!=undefined?r:undefined,success:n=>{f=n.data===undefined?{success:!0,result:n}:{success:!0,result:n.data},e()},error:function(n){var i=!1,t=undefined;if(n.responseText&&n.responseText.length>0)try{t=JSON.parse(n.responseText)}catch{try{t=JSON.parse(n.responseText.substring(1))}catch{}}t!=undefined&&t.success==!1&&(f={success:!1,error:{status:t.statusCode,message:localizer(t.message)},result:undefined},i=!0);i||(f={success:!1,error:{status:n.status,message:(n.status!=400?n.status+": ":"")+(n.responseText?n.responseText:n.statusText)},result:undefined});console.log(n);e()}}),await o,f}async function callGet(n,t){return invokeAjax(n,t,"GET")}async function callPost(n,t){return invokeAjax(n,t,"POST")}function generateUUID(){let n=(new Date).getTime(),t=performance&&performance.now&&performance.now()*1e3||0;return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,i=>{let r=Math.random()*16;return n>0?(r=(n+r)%16|0,n=Math.floor(n/16)):(r=(t+r)%16|0,t=Math.floor(t/16)),(i=="x"?r:r&7|8).toString(16)})}function localizer(n,t){if(window.SharedResources&&SharedResources[n]&&(n=SharedResources[n]),window.Resources&&window.Resources[n]&&(n=window.Resources[n]),t)for(var i in t)n=n.replaceAll(`{${i}}`,t[i]);return n}function keyLocalizer(n,t,i){if(n=window.SharedResources&&SharedResources[n]?SharedResources[n]:window.Resources&&window.Resources[n]?window.Resources[n]:t,i)for(var r in i)n=n.replaceAll(`{${r}}`,i[r]);return n}function showModalLoading(n,t=undefined){n?$("#modal-loading").show({duration:0,complete:t}):$("#modal-loading").hide({duration:0,complete:t})}function getCurrencyCode(n){var t="USD";switch(n){case 1001:t="EUR";break;case 1002:t="USD"}return t}function getCurrencyFormatter(n){var t="USD";switch(n){case 1001:t="EUR";break;case 1002:t="USD"}return new Intl.NumberFormat("en-US",{style:"currency",currency:t})}function setCookie(n,t,i){const r=new Date;r.setTime(r.getTime()+i*864e5);let u="expires="+r.toUTCString();document.cookie=n+"="+t+";"+u+";path=/"}function getCookie(n){var i="; "+document.cookie,t=i.split("; "+n+"=");if(t.length==2)return t.pop().split(";").shift()}function deleteCookie(n){document.cookie=n+"=;"}function setTimezoneCookie(){var n="timezoneoffset",t,i,r,u;getCookie(n)?(r=parseInt(getCookie(n)),u=(new Date).getTimezoneOffset(),c
27onsole.log("Stored offset",r,u),r!==u&&(setCookie(n,(new Date).getTimezoneOffset(),30),location.reload())):(t=new Date,i=t.getTimezoneOffset(),console.log("Browser offset",i,t),$.get(`/cookie/time/${i}`,function(){getCookie(n)&&location.reload()}))}function setAffiliateCookie(){var n=new URLSearchParams(window.location.search).get("affiliate");n&&setCookie("aff",n,365)}function getCurrentLanguage(){return window.currentUserLang!=undefined?currentUserLang:(navigator.language||navigator.userLanguage).split("-")[0]}function getDatatableLanguageObj(){return undefined}function showModalPrompt(n,t,i,r,u,f=undefined){var e=generateUUID(),o=` 28 <div class="modal fade" id="mdl-${e}" tabindex="-1" role="dialog" aria-hidden="true"> 29 <div class="modal-dialog modal-dialog-centered" role="document"> 30 <div class="modal-content"> 31 <div class="modal-header"> 32 <h5 class="modal-title">${n}</h5> 33 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 34 </div> 35 <div class="modal-body m-2"> 36 <p class="mb-0">${t}</p> 37 <input id="inpTxt" class="form-control" type="text" value='${f??""}' autofocus/> 38 </div> 39 <div class="modal-footer"> 40 <button id="btnCancel" type="button" class="btn btn-secondary">${keyLocalizer("--loc-site-1","Cancel")}</button> 41 <button id="btnConfirm" type="button" class="btn btn-${i}">${keyLocalizer("--loc-site-2","Confirm")}</button> 42 </div> 43 </div> 44 </div> 45 </div> 46 `;$("#cntModals").append(o);$(`#cntModals #mdl-${e}`).on("hidden.bs.modal",function(){$(`#cntModals #mdl-${e}`).remove()});$(`#cntModals #mdl-${e} #btnCancel`).on("click",function(){$(`#cntModals #mdl-${e}`).modal("hide");u!=undefined&&u()});$(`#cntModals #mdl-${e} #btnConfirm`).on("click",function(){var n=$(`#cntModals #mdl-${e} #inpTxt`).val();n.length>0&&($(`#cntModals #mdl-${e}`).modal("hide"),r!=undefined&&r(n))});showModalForeground(`#cntModals #mdl-${e}`);$(`#cntModals #mdl-${e} #inpTxt`).focus()}function showModalConfirm(n,t,i,r,u){var f=generateUUID(),e=` 47 <div class="modal fade" id="mdl-${f}" tabindex="-1" role="dialog" aria-hidden="true"> 48 <div class="modal-dialog modal-dialog-centered" role="document"> 49 <div class="modal-content"> 50 <div class="modal-header"> 51 <h5 class="modal-title">${n}</h5> 52 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> 53 </div> 54 <div class="modal-body m-2"> 55 <p class="mb-0 text-center">${t}</p> 56 </div> 57 <div class="modal-footer"> 58 <button id="btnCancel" type="button" class="btn btn-secondary">${keyLocalizer("--loc-site-3","Cancel")}</button> 59 <button id="btnConfirm" type="button" class="btn btn-${i}">${keyLocalizer("--loc-site-4","Confirm")}</button> 60 </div> 61 </div> 62 </div> 63 </div> 64 `;$("#cntModals").append(e);$(`#cntModals #mdl-${f}`).on("hidden.bs.modal",function(){$(`#cntModals #mdl-${f}`).remove()});$(`#cntModals #mdl-${f} #btnCancel`).on("click",function(){$(`#cntModals #mdl-${f}`).modal("hide");u!=undefined&&u()});$(`#cntModals #mdl-${f} #btnConfirm`).on("click",function(){$(`#cntModals #mdl-${f}`).modal("hide");r!=undefined&&r()});showModalForeground(`#cntModals #mdl-${f}`)}function showModalForeground(n){var i=$(n),r=$(".modal-backdrop").length,t;$(".modal-backdrop:not(.init)").addClass("init");i.modal("toggle");t=$(".modal-backdrop:not(.init)");t.addClass("init");t.css("z-index",1e3+r*1e3+20);i.css("z-index",1e3+r*1e3+70)}function bitwiseCheckChanged(n,t){var i=$("#"+t).val(),r;r=i==null||i==""||i==undefined?0:parseInt(i);$(n).prop("checked")?r|=parseInt($(n).attr("data-bit-value")):r^=parseInt($(n).attr("data-bit-value"));$("#"+t).val(r)}async function showSelectionAccountModal(){var t=await callGet("/User/GetSelectionAccountsModal",{accountId:window.accId}),n;if(t.success){$("#cntModals").append(t.result);n=$("#cntModals #mdlUserAccs");n.on("hidden.bs.modal",function(){$(this).remove()});n.modal("toggle")}else showError(keyLocalizer("--loc-site-5","Error"))}function renameAccountUserDescription(n){showModalPrompt(keyLocalizer("--loc-site-6","Account description"),keyLocalizer("--loc-site-7","Description"),"success",async function(t){showModalLoading(!0);var i=await callPost("/User/ChangeAccountDescription",{accountId:n,newDescription:t});i.success?$(`span[data-account-desc="${n}"]`).html(t):showError(i.error.message);await updateAccountsDropdown();showModalLoading(!1)},undefined,$(`span[data-account-desc="${n}"]`).html())}async function updateAccountsDropdown(){var n=await callGet("/User/GetAccountsDropdown");n.success&&$("#drpSelectedAccount").replaceWith(n.result)}async function showAccountUpgradeModal(n,t){var r=await callGet(`/Modal/AccountUpgrade/${n}`,{redirectUrl:t}),i;if(r.success){$("#cntModals").append(r.result);i=$("#cntModals #mdlAccountUpgrade");i.on("hidden.bs.modal",function(){$(this).remove()});showModalForeground(i)}
64else showError(keyLocalizer("--loc-site-8","Error"))}async function showAccountPayoutModal(n,t){var i=await callGet(`/Modal/AccountPayout/${n}`,{redirectUrl:t}),r;if(i.success){$("#cntModals").append(i.result);r=$("#cntModals #mdlAccountPayout");r.on("hidden.bs.modal",function(){$(this).remove()});showModalForeground(r)}else showError(i.error.message)}function openLink(n){window.open(n)}function numDigits(n){return(Math.log10((n^n>>31)-(n>>31))|0)+1}function toStringFixed(n,t,i){return parseFloat(n).toLocaleString(undefined,{minimumFractionDigits:t,maximumFractionDigits:i})}function numDecimals(n){function i(n){return Math.abs(Math.round(n)-n)>1e-10}let t=0;while(i(n*10**t)&&isFinite(10**t))t++;return t}function changeUserTheme(n,t){window.location.href=`/user/changethemeenum?returnUrl=${n}&newTheme=${t}`}function listenForCollapseGroup(n){n.find(`div[data-bs-toggle="collapse"][data-bs-parent]`).on("click",function(){let n=event.currentTarget;$(n).hasClass("collapsed")||$(`[data-bs-toggle="collapse"][data-bs-parent]:not(.collapsed)`).each(function(){this.isEqualNode(n)||$($(this).attr("data-bs-target")).collapse("hide")})})}function toggleSidebar(){$("#sidebar").toggleClass("hide-sidebar");$("#sidebar-collapse").toggleClass("hide-sidebar-collapse");$("#sidebar").hasClass("hide-sidebar")?($("#sidebar-toggle-icon").attr("class","icon-svg icon-chevron-right"),$("#mainContent").addClass("restricted")):($("#sidebar-toggle-icon").attr("class","icon-svg icon-sidebar-collapse"),$("#mainContent").removeClass("restricted"))}function switchReportTab(n){var i={summary:$("#tabSummary"),symbols:$("#tabSymbols"),time:$("#tabTime"),daily:$("#tabDaily")},t={summary:$("#secSummary"),symbols:$("#secSymbols"),time:$("#secTime"),daily:$("#secDaily")},r={summary:"Summary",symbols:"Symbols",time:"Daily Analysis"};$.each(i,function(i,u){i===n?(u.addClass("selected"),t[i].removeClass("d-none")):(u.removeClass("selected"),t[i].addClass("d-none"));$("#secTitle").text(r[n]);n=="summary"?$("#secContainer").addClass("radius-tl-0"):$("#secContainer").removeClass("radius-tl-0")})}async function switchTradeListTab(n){var i={trades:$("#tabTrades"),fills:$("#tabFills"),orders:$("#tabOrders")},t={trades:$("#secTrades"),fills:$("#secFills"),orders:$("#secOrders")};$.each(i,function(i,r){i===n?(r.addClass("selected"),t[i].removeClass("d-none")):(r.removeClass("selected"),t[i].addClass("d-none"));n=="trades"?$("#secContainer").addClass("radius-tl-0"):$("#secContainer").removeClass("radius-tl-0")});n!=="trades"||hasLoadedTrades?n!=="fills"||hasLoadedFills?n!=="orders"||hasLoadedOrders||(await getAndBuildOrdersList(!1),hasLoadedOrders=!0):(await getAndBuildFillsList(!1),hasLoadedFills=!0):(await getAndBuildTradeList(!1),hasLoadedTrades=!0)}function copyToClipboard(n){if(window.clipboardData&&window.clipboardData.setData)window.clipboardData.setData("Text",n),showNotify("Copied!");else if(document.queryCommandSupported&&document.queryCommandSupported("copy")){var t=document.createElement("textarea");t.textContent=n;t.style.position="fixed";document.body.appendChild(t);t.select();try{document.execCommand("copy")&&showNotify(keyLocalizer("--loc-site-10","Text copied to the clipboard"),"success")}catch(i){return console.warn("Copy to clipboard failed.",i),prompt("Copy to clipboard: Ctrl+C, Enter",n)}finally{document.body.removeChild(t)}}}function copyText(n){n&&navigator.clipboard.writeText(n).then(function(){showNotify(keyLocalizer("--loc-site-10","Text copied to the clipboard"),"success")})}function changeTheme(n,t,i,r){var u=$(n).hasClass("active");$(n).toggleClass("active");setTimeout(function(){window.location.href=`/user/changeTheme?returnUrl=${r}&newTheme=${u?i:t}`},150)}async function showNotificationDropdown(n){const t=$(n).hasClass("show");if(!t){var i=await callGet(`/User/GetNotificationsDropdown`);i.success&&$("#notificationContainer").html(i.result)}$("#notificationContainer").toggleClass("show",!t);$(n).toggleClass("show",!t);notificationCount-=10;notificationCount<0&&(notificationCount=0);adjustNotificationBadge();$(document).off("click").on("click",function(t){$(t.target).closest("#notificationContainer").length||($("#notificationContainer").removeClass("show"),$(n).removeClass("show"))})}function adjustNotificationBadge(){var n=currentAppTheme!=="crm_v7";notificationCount==0?($("#notification-badge").addClass("d-none"),$("#notification-counter").css("margin-right","0px")):notificationCount>9?($("#notification-badge").removeClass("d-none"),$("#notification-badge").text("9+"),n&&$("#notification-counter").css("margin-right","20px")):($("#notification-badge").removeClass("d-none"),$("#notification-badge").text(notificationCount),n&&$("#notification-counter").css("margin-right","8px"))}async function addNotification(){await callPost("/User/AddNotification")}function addOrSubtractDaysFromCurrentDate(n){let t=new Date;return t.setHours(0,0,0,0),new Date(t.getTime()+864e5*n)}function switchTabNew(n){var t=$(n).data("target");$(".tab-selector").removeClass("selected");$("[data-section]").addClass("d-none");$(n).addClass("selected");$('[data-section="'+t+'"]').removeClass("d-none")}function showPromotion(){var n,t;if($("#promotion-banner-container").length>0){n=$("#promotion-banner-container").data("delay");n=n?n*1e3:100;t=$("#promotion-banner-container .promotion-banner-close");t.on("click",()=>{var n=t.data("href");$("#promotion-banner-container").remove();callGet(n)});setTimeout(()=>{$("#promotion-banner-container").fadeIn(200)},n)}}async function showDiscordVerificationModal(){var n=await callGet("/User/DiscordVerificationModal"),t;if(n.success){$("#cntModals").append(n.result);t=$("#cntModals #mdlDiscordVerify");t.on("hidden.bs.modal",function(){$(this).remove()});showModalForeground(t)}else showError(n.error&&n.error.message?n.error.message:"Error while loading Discord verification modal")}function initCompetitionCountdown(){setInterval(updateCompetitionCountdown,1e3);updateCompetitionCountdown()}function updateCompetitionCountdown(){$("[data-countdown]").each((n,t)=>
64{$(t).html(getCountdown($(t).data("countdown")*1e3,!1))});$("[data-countdown-seconds]").each((n,t)=>{var i=$(t).attr("data-ref"),r=$(t).attr("data-next"),u=counters[i+r]??$(t).attr("data-countdown-seconds");$(`#${i}`).html(getCountdownSeconds(u));counters[i+r]=u-1})}function getCountdown(n,t){const e=new Date,o=new Date(n),i=o-e;if(i<=0)return keyLocalizer("--loc-site-756","0");var r=[];const u=Math.floor(i/864e5);u>0&&r.push(`${u}d`);const f=Math.floor(i%864e5/36e5);if((f>0||!t)&&r.push(`${f}h`),t){const n=Math.floor(i%36e5/6e4);r.push(`${n}m`);const t=Math.floor(i%6e4/1e3);r.push(`${t}s`)}return r.join(" ")}function getCountdownSeconds(n){if(n<=0)return keyLocalizer("--loc-site-756","0");var t=[];const i=Math.floor(n/86400);i>0&&t.push(`${i}d`);const r=Math.floor(n%86400/3600);r>0&&t.push(`${r}h`);const u=Math.floor(n%3600/60);t.push(`${u}m`);const f=Math.floor(n%60);return t.push(`${f}s`),t.join(" ")}function showModal(n){$(`#${n}`).modal("show")}function showModalStacked(n){const t=document.getElementById(n);t&&!t.classList.contains("show")&&(t.parentElement!==document.body&&document.body.appendChild(t),document.querySelector(".modal.show")?showModalForeground(`#${n}`):$(`#${n}`).modal("show"))}function hideModal(n){$(`#${n}`).modal("hide")}function isViewportBelow(n){return window.matchMedia(`(max-width: ${n-.02}px)`).matches}function reloadIframesOnModalHide(n){const t=document.getElementById(n);if(t&&!t.dataset.iframeReload){t.dataset.iframeReload="true";$(t).on("hidden.bs.modal",()=>t.querySelectorAll("iframe").forEach(n=>n.src=n.src))}}async function preloadImages(n){await Promise.all(n.map(n=>new Promise(t=>{const i=new Image;i.onload=t;i.onerror=t;i.src=n})))}function emergencyCancelAndFlat(){showModalConfirm(localizer("Emergency Cancel & Flat"),localizer("Are you sure you want to cancel all open orders and flatten all positions of ALL your accounts?"),"danger",async function(){var n=await callPost("/User/EmergencyCancelAndFlat");n.success?showSuccess(localizer("Emergency action requested, please ensure all your orders & positions have been closed")):showError(localizer("Service is not available, please retry later."))})}var downloadedFiles,counters;const camelToFlat=n=>(n=n.replace(/[A-Z]/g," $&"),n[0].toUpperCase()+n.slice(1));downloadedFiles=undefined;window.notyf=new Notyf({types:[{type:"error",background:getComputedStyle(document.body).getPropertyValue("--color-toast-error-fill"),icon:{className:"icon-svg toast-icon icon-error",tagName:"div"},className:"toast-error"},{type:"danger",background:getComputedStyle(document.body).getPropertyValue("--color-toast-error-fill"),icon:{className:"icon-svg toast-icon icon-error",tagName:"div"},className:"toast-error"},{type:"warning",background:getComputedStyle(document.body).getPropertyValue("--color-toast-warning-fill"),icon:{className:"icon-svg toast-icon icon-warning",tagName:"div"},className:"toast-warning"},{type:"success",background:getComputedStyle(document.body).getPropertyValue("--color-toast-success-fill"),icon:{className:"icon-svg toast-icon icon-check-circle",tagName:"div"},className:"toast-success"},{type:"info",background:getComputedStyle(document.body).getPropertyValue("--color-toast-detail-fill"),icon:{className:"icon-svg toast-icon icon-info",tagName:"div"},className:"toast-detail"},{type:"detail",background:getComputedStyle(document.body).getPropertyValue("--color-toast-detail-fill"),icon:{className:"icon-svg toast-icon icon-info",tagName:"div"},className:"toast-detail"}]});$(document).ready(function(){if(setTimezoneCookie(),$("#notification-badge").length>0&&adjustNotificationBadge(),$("a[download]").length>0){downloadedFiles=new Set;$("a[download]").on("click",function(n){let t=$(this).attr("download");if(downloadedFiles.has(t))return n.preventDefault(),!1;downloadedFiles.add(t)})}if($("select[select2]").length>0&&$("select[select2]").select2(),$("a[data-loading]").length>0)$("a[data-loading]").on("click",function(){showModalLoading(!0)});const n=document.querySelectorAll('[data-bs-toggle="tooltip"]'),t=[...n].map(n=>new bootstrap.Tooltip(n));$("[countdown-general]").length>0&&initGeneralCountdown();showPromotion()});let generalCountdownTimer=null;window.blazorPayoutModal={attach:function(n,t){if(n){var r=Array.prototype.slice.call(document.querySelectorAll(".modal-backdrop")).filter(function(n){return n!==t}),i=1e3+r.length*1e3;t&&(document.body.appendChild(t),t.style.zIndex=i+20);document.body.appendChild(n);n.style.zIndex=i+70;n.classList.add("d-block");document.body.classList.add("modal-open");void n.offsetWidth;t&&t.classList.add("show");n.classList.add("show");n.focus()}},detach:function(n,t){n&&n.classList.remove("show");t&&t.classList.remove("show");var i=Array.prototype.slice.call(document.querySelectorAll(".modal.show")).filter(function(t){return t!==n});i.length===0&&document.body.classList.remove("modal-open")}};counters={}
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.