diff --git a/dashboard/public/200.html b/dashboard/public/200.html index 3f60aed..1364828 100644 --- a/dashboard/public/200.html +++ b/dashboard/public/200.html @@ -1 +1 @@ -
0&&!1===this.singleStacks&&(i.points[s][0]=i.points[this.index+`,`+t+`,0`][0]));let w=i.total||0;l===`percent`?(a=r?v:y,w=b&&S[a]?.[t]?(a=S[a][t]).total=Math.max(a.total||0,w)+Math.abs(m):Ac(w+Math.abs(m))):l===`group`?Pc(p)&&w++:w=Ac(w+m),l===`group`?i.cumulative=(w||1)-1:i.cumulative=Ac(Ic(i.cumulative,g)+m),i.total=w,p!==null&&(i.points[s].push(i.cumulative),f[c]=i.cumulative,i.hasValidPoints=!0)}l===`percent`&&(x.usePercentage=!0),l!==`group`&&(this.stackedYData=f),x.oldStacks={}}class Gc{constructor(e){this.oldStacks={},this.stacks={},this.stacksTouched=0,this.axis=e}buildStacks(){let e,t,n=this.axis,r=n.series,i=n.coll===`xAxis`,a=n.options.reversedStacks,o=r.length;for(this.resetStacks(),this.usePercentage=!1,t=o;t--;)e=r[a?t:o-t-1],i&&e.setGroupedPoints(n),e.setStackedPoints(n);if(!i)for(t=0;t 0&&(p[3]=p[2]-2*s),ru(this,`afterGetCenter`,{positions:p}),p},e.getStartAndEndRadians=function(e,t){let n=iu(e)?e:0,r=iu(t)&&t>n&&t-n<360?t:n+360;return{start:nu*(n+-90),end:nu*(r+-90)}}})(g||={});let su=g,{setAnimation:cu}=L,{addEvent:lu,defined:uu,extend:du,isNumber:fu,pick:pu,relativeLength:mu}=M;class hu extends Ga{getConnectorPath(e){let t=e.dataLabelPosition,n=e.options||{},r=n.connectorShape,i=this.connectorShapes[r]||r;return t&&i.call(this,{...t.computed,alignment:t.alignment},t.connectorPosition,n)||[]}getTranslate(){return this.sliced&&this.slicedTranslation||{translateX:0,translateY:0}}haloPath(e){let t=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(t.x,t.y,t.r+e,t.r+e,{innerR:t.r-1,start:t.start,end:t.end,borderRadius:t.borderRadius})}constructor(e,t,n){super(e,t,n),this.half=0,this.name??=e.chart.options.lang.pieSliceName;let r=e=>{this.slice(e.type===`select`)};lu(this,`select`,r),lu(this,`unselect`,r)}isValid(){return fu(this.y)&&this.y>=0}setVisible(e,t=!0){e!==this.visible&&this.update({visible:e??!this.visible},t,void 0,!1)}slice(e,t,n){let r=this.series;cu(n,r.chart),t=pu(t,!0),this.sliced=this.options.sliced=e=uu(e)?e:!this.sliced,r.options.data[r.data.indexOf(this)]=this.options,this.graphic&&this.graphic.animate(this.getTranslate())}}du(hu.prototype,{connectorShapes:{fixedOffset:function(e,t,n){let r=t.breakAt,i=t.touchingSliceAt,a=n.softConnector?[`C`,e.x+(e.alignment===`left`?-5:5),e.y,2*r.x-i.x,2*r.y-i.y,r.x,r.y]:[`L`,r.x,r.y];return[[`M`,e.x,e.y],a,[`L`,i.x,i.y]]},straight:function(e,t){let n=t.touchingSliceAt;return[[`M`,e.x,e.y],[`L`,n.x,n.y]]},crookedLine:function(e,t,n){let{angle:r=this.angle||0,breakAt:i,touchingSliceAt:a}=t,{series:o}=this,[s,c,l]=o.center,u=l/2,{plotLeft:d,plotWidth:f}=o.chart,p=e.alignment===`left`,{x:m,y:h}=e,g=i.x;if(n.crookDistance){let e=mu(n.crookDistance,1);g=p?s+u+(f+d-s-u)*(1-e):d+(s-u)*e}else g=s+(c-h)*Math.tan(r-Math.PI/2);let _=[[`M`,m,h]];return(p?g<=m&&g>=i.x:g>=m&&g<=i.x)&&_.push([`L`,g,h]),_.push([`L`,i.x,i.y],[`L`,a.x,a.y]),_}}});let{getStartAndEndRadians:gu}=su,{noop:_u}=S,{clamp:vu,extend:yu,fireEvent:bu,merge:xu,pick:Su}=M;class Cu extends Z{animate(e){let t=this,n=t.points,r=t.startAngleRad;e||n.forEach(function(e){let n=e.graphic,i=e.shapeArgs;n&&i&&(n.attr({r:Su(e.startR,t.center&&t.center[3]/2),start:r,end:r}),n.animate({r:i.r,start:i.start,end:i.end},t.options.animation))})}drawEmpty(){let e,t,n=this.startAngleRad,r=this.endAngleRad,i=this.options;this.total===0&&this.center?(e=this.center[0],t=this.center[1],this.graph||=this.chart.renderer.arc(e,t,this.center[1]/2,0,n,r).addClass(`highcharts-empty-series`).add(this.group),this.graph.attr({d:Rn.arc(e,t,this.center[2]/2,0,{start:n,end:r,innerR:this.center[3]/2})}),this.chart.styledMode||this.graph.attr({"stroke-width":i.borderWidth,fill:i.fillColor||`none`,stroke:i.color||`#cccccc`})):this.graph&&=this.graph.destroy()}drawPoints(){let e=this.chart.renderer;this.points.forEach(function(t){t.graphic&&t.hasNewShapeType()&&(t.graphic=t.graphic.destroy()),t.graphic||(t.graphic=e[t.shapeType](t.shapeArgs).add(t.series.group),t.delayedRendering=!0)})}generatePoints(){super.generatePoints(),this.updateTotals()}getX(e,t,n,r){let i=this.center,a=this.radii?this.radii[n.index]||0:i[2]/2,o=r.dataLabelPosition?.distance||0,s=Math.asin(vu((e-i[1])/(a+o),-1,1));return i[0]+Math.cos(s)*(a+o)*(t?-1:1)+(o>0?(t?-1:1)*(r.padding||0):0)}hasData(){return this.points.some(e=>e.visible)}redrawPoints(){let e,t,n,r,i=this,a=i.chart;this.drawEmpty(),i.group&&!a.styledMode&&i.group.shadow(i.options.shadow),i.points.forEach(function(o){let s={};t=o.graphic,!o.isNull&&t?(r=o.shapeArgs,e=o.getTranslate(),a.styledMode||(n=i.pointAttribs(o,o.selected&&`select`)),o.delayedRendering?(t.setRadialReference(i.center).attr(r).attr(e),a.styledMode||t.attr(n).attr({"stroke-linejoin":`round`}),o.delayedRendering=!1):(t.setRadialReference(i.center),a.styledMode||xu(!0,s,n),xu(!0,s,r,e),t.animate(s)),t.attr({visibility:o.visible?`inherit`:`hidden`}),t.addClass(o.getClassName(),!0)):t&&(o.graphic=t.destroy())})}sortByAngle(e,t){e.sort(function(e,n){return e.angle!==void 0&&(n.angle-e.angle)*t})}translate(e){bu(this,`translate`),this.generatePoints();let t=this.options,n=t.slicedOffset,r=gu(t.startAngle,t.endAngle),i=this.startAngleRad=r.start,a=(this.endAngleRad=r.end)-i,o=this.points,s=t.ignoreHiddenPoint,c=o.length,l,u,d,f,p,m,h,g=0;for(e||(this.center=e=this.getCenter()),m=0;m 0,g<=h.r||!h.r){g<=1&&m>0&&(h=f[m-1]);var _=d[h.l];s&&(g=s(``+g)),l=typeof _==`string`?_.replace(`%d`,g):_(g,r,h.l,u);break}}if(r)return l;var v=u?d.future:d.past;return typeof v==`function`?v(l):v.replace(`%s`,l)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var o=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(o(this),e)},r.fromNow=function(e){return this.from(o(this),e)}}}))})),s=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(i()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_zh_cn=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`zh-cn`,weekdays:`星期日_星期一_星期二_星期三_星期四_星期五_星期六`.split(`_`),weekdaysShort:`周日_周一_周二_周三_周四_周五_周六`.split(`_`),weekdaysMin:`日_一_二_三_四_五_六`.split(`_`),months:`一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月`.split(`_`),monthsShort:`1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月`.split(`_`),ordinal:function(e,t){return t===`W`?e+`周`:e+`日`},weekStart:1,yearStart:4,formats:{LT:`HH:mm`,LTS:`HH:mm:ss`,L:`YYYY/MM/DD`,LL:`YYYY年M月D日`,LLL:`YYYY年M月D日Ah点mm分`,LLLL:`YYYY年M月D日ddddAh点mm分`,l:`YYYY/M/D`,ll:`YYYY年M月D日`,lll:`YYYY年M月D日 HH:mm`,llll:`YYYY年M月D日dddd HH:mm`},relativeTime:{future:`%s内`,past:`%s前`,s:`几秒`,m:`1 分钟`,mm:`%d 分钟`,h:`1 小时`,hh:`%d 小时`,d:`1 天`,dd:`%d 天`,M:`1 个月`,MM:`%d 个月`,y:`1 年`,yy:`%d 年`},meridiem:function(e,t){var n=100*e+t;return n<600?`凌晨`:n<900?`早上`:n<1100?`上午`:n<1300?`中午`:n<1800?`下午`:`晚上`}};return n.default.locale(r,null,!0),r}))})),c=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(i()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ru=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r=`января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря`.split(`_`),i=`январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь`.split(`_`),a=`янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.`.split(`_`),o=`янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.`.split(`_`),s=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function c(e,t,n){var r,i;return n===`m`?t?`минута`:`минуту`:e+` `+(r=+e,i={mm:t?`минута_минуты_минут`:`минуту_минуты_минут`,hh:`час_часа_часов`,dd:`день_дня_дней`,MM:`месяц_месяца_месяцев`,yy:`год_года_лет`}[n].split(`_`),r%10==1&&r%100!=11?i[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?i[1]:i[2])}var l=function(e,t){return s.test(t)?r[e.month()]:i[e.month()]};l.s=i,l.f=r;var u=function(e,t){return s.test(t)?a[e.month()]:o[e.month()]};u.s=o,u.f=a;var d={name:`ru`,weekdays:`воскресенье_понедельник_вторник_среда_четверг_пятница_суббота`.split(`_`),weekdaysShort:`вск_пнд_втр_срд_чтв_птн_сбт`.split(`_`),weekdaysMin:`вс_пн_вт_ср_чт_пт_сб`.split(`_`),months:l,monthsShort:u,weekStart:1,yearStart:4,formats:{LT:`H:mm`,LTS:`H:mm:ss`,L:`DD.MM.YYYY`,LL:`D MMMM YYYY г.`,LLL:`D MMMM YYYY г., H:mm`,LLLL:`dddd, D MMMM YYYY г., H:mm`},relativeTime:{future:`через %s`,past:`%s назад`,s:`несколько секунд`,m:c,mm:c,h:`час`,hh:c,d:`день`,dd:c,M:`месяц`,MM:c,y:`год`,yy:c},ordinal:function(e){return e},meridiem:function(e){return e<4?`ночи`:e<12?`утра`:e<17?`дня`:`вечера`}};return n.default.locale(d,null,!0),d}))})),l=t(i(),1),u=t(a(),1),d=t(o(),1);s(),c(),l.default.extend(d.default),l.default.extend(u.default);function f(e){return/^https?:\/\//.test(e)?e:`${window.location.protocol}//${e}`}function p(e){return/:{1,2}/.test(e)?`[${e}]`:e}function m(e,t=`en`){let n=t===`zh`?`zh-cn`:t===`ru`?`ru`:`en`;return(0,l.default)(e).locale(n).fromNow()}function h(e,t){let n=t-e,r=l.default.duration(n),i=Math.floor(r.asDays()),a=r.hours(),o=r.minutes(),s=r.seconds(),c=[];return i>0&&c.push(`${i}d`),a>0&&c.push(`${a}h`),o>0&&c.push(`${o}m`),s>0&&i===0&&c.push(`${s}s`),c.length>0?c.join(` `):`0s`}function g(e,t,n=`en`){let r=n===`zh`?`zh-cn`:n===`ru`?`ru`:`en`,i=(0,l.default)(e),a=(0,l.default)(t);return i.isSame(a,`day`)?`${i.locale(r).format(`MMM D, YYYY HH:mm`)} - ${a.locale(r).format(`HH:mm`)}`:`${i.locale(r).format(`MMM D, HH:mm`)} - ${a.locale(r).format(`MMM D, HH:mm`)}`}function _(e=``,t){let n=e.toLowerCase(),r=new Map([[`shadowsocks`,`SS`],[`shadowsocksr`,`SSR`],[`hysteria`,`HY`],[`hysteria2`,`HY2`],[`wireguard`,`WG`],[`selector`,t(`selector`)],[`urltest`,t(`urltest`)],[`fallback`,t(`fallback`)],[`loadbalance`,t(`loadbalance`)],[`direct`,t(`direct`)],[`reject`,t(`reject`)],[`rejectdrop`,t(`rejectdrop`)],[`relay`,t(`relay`)],[`pass`,t(`pass`)]]);return r.has(n)?r.get(n):n}function v(e,t){return e>t.HIGH?`text-red-500`:e>t.MEDIUM?`text-yellow-500`:e===t.NOT_CONNECTED?`text-gray`:`text-green-600`}function y(e=``){return![`selector`,`direct`,`reject`,`urltest`,`loadbalance`,`fallback`,`relay`].includes(e.toLowerCase())}function b({proxyNames:e,orderingType:t,testUrl:n,getLatencyByName:i,latencyQualityMap:a,urlForLatencyTest:o}){if(t===r.NATURAL)return e;let s=n||o;return[...e].sort((e,n)=>{let o=i(e,s),c=i(n,s);switch(t){case r.LATENCY_ASC:return o===a.NOT_CONNECTED?1:c===a.NOT_CONNECTED?-1:o-c;case r.LATENCY_DESC:return o===a.NOT_CONNECTED?1:c===a.NOT_CONNECTED?-1:c-o;case r.NAME_ASC:return e.localeCompare(n);case r.NAME_DESC:return n.localeCompare(e);default:return 0}})}function x({proxyNames:e,enabled:t,testUrl:n,getLatencyByName:r,isProxyGroup:i,latencyQualityMap:a,urlForLatencyTest:o}){let s=n||o;return t?e.filter(e=>i(e)||r(e,s)!==a.NOT_CONNECTED):e}function S(){let e=n({}),t=(t,n)=>{e.value={...e.value,[t]:n}};return{map:e,set:t,setWithCallback:async(e,n)=>{t(e,!0);try{await n()}catch{}t(e,!1)}}}function C(e){return typeof document>`u`?``:getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function w(){return{baseContent:C(`--color-base-content`)||`oklch(0.746 0 0)`,base100:C(`--color-base-100`)||`oklch(0.253 0 0)`,base200:C(`--color-base-200`)||`oklch(0.232 0 0)`,base300:C(`--color-base-300`)||`oklch(0.211 0 0)`,primary:C(`--color-primary`)||`oklch(0.65 0.15 240)`,primaryContent:C(`--color-primary-content`)||`oklch(0.98 0 0)`,secondary:C(`--color-secondary`)||`oklch(0.65 0.15 300)`,secondaryContent:C(`--color-secondary-content`)||`oklch(0.98 0 0)`,accent:C(`--color-accent`)||`oklch(0.65 0.15 180)`,accentContent:C(`--color-accent-content`)||`oklch(0.98 0 0)`,neutral:C(`--color-neutral`)||`oklch(0.3 0 0)`,neutralContent:C(`--color-neutral-content`)||`oklch(0.98 0 0)`,info:C(`--color-info`)||`oklch(0.65 0.15 220)`,success:C(`--color-success`)||`oklch(0.65 0.15 140)`,warning:C(`--color-warning`)||`oklch(0.8 0.15 80)`,error:C(`--color-error`)||`oklch(0.65 0.2 25)`}}function T(){let e=w();return{textColor:e.baseContent,textColorHover:e.primaryContent,gridLineColor:e.base300,lineColor:e.base300,tickColor:e.base300,seriesColors:[e.info,e.success,e.warning,e.error],backgroundColor:e.base200}}function E(e){return e.replace(`/g,`%3E`)}export{h as a,m as c,w as d,b as f,i as h,g as i,T as l,S as m,x as n,p as o,f as p,y as r,_ as s,E as t,v as u};
\ No newline at end of file
+import{At as e,Mt as t,yt as n}from"./DOvCTup-.js";import{f as r}from"./_v7-ePgP.js";var i=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(function(){var e=1e3,t=6e4,n=36e5,r=`millisecond`,i=`second`,a=`minute`,o=`hour`,s=`day`,c=`week`,l=`month`,u=`quarter`,d=`year`,f=`date`,p=`Invalid Date`,m=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,h=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,g={name:`en`,weekdays:`Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday`.split(`_`),months:`January_February_March_April_May_June_July_August_September_October_November_December`.split(`_`),ordinal:function(e){var t=[`th`,`st`,`nd`,`rd`],n=e%100;return`[`+e+(t[(n-20)%10]||t[n]||t[0])+`]`}},_=function(e,t,n){var r=String(e);return!r||r.length>=t?e:``+Array(t+1-r.length).join(n)+e},v={s:_,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),i=n%60;return(t<=0?`+`:`-`)+_(r,2,`0`)+`:`+_(i,2,`0`)},m:function e(t,n){if(t.date() 0,g<=h.r||!h.r){g<=1&&m>0&&(h=f[m-1]);var _=d[h.l];s&&(g=s(``+g)),l=typeof _==`string`?_.replace(`%d`,g):_(g,r,h.l,u);break}}if(r)return l;var v=u?d.future:d.past;return typeof v==`function`?v(l):v.replace(`%s`,l)},r.to=function(e,t){return a(e,t,this,!0)},r.from=function(e,t){return a(e,t,this)};var o=function(e){return e.$u?n.utc():n()};r.toNow=function(e){return this.to(o(this),e)},r.fromNow=function(e){return this.from(o(this),e)}}}))})),s=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(i()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_zh_cn=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r={name:`zh-cn`,weekdays:`星期日_星期一_星期二_星期三_星期四_星期五_星期六`.split(`_`),weekdaysShort:`周日_周一_周二_周三_周四_周五_周六`.split(`_`),weekdaysMin:`日_一_二_三_四_五_六`.split(`_`),months:`一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月`.split(`_`),monthsShort:`1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月`.split(`_`),ordinal:function(e,t){return t===`W`?e+`周`:e+`日`},weekStart:1,yearStart:4,formats:{LT:`HH:mm`,LTS:`HH:mm:ss`,L:`YYYY/MM/DD`,LL:`YYYY年M月D日`,LLL:`YYYY年M月D日Ah点mm分`,LLLL:`YYYY年M月D日ddddAh点mm分`,l:`YYYY/M/D`,ll:`YYYY年M月D日`,lll:`YYYY年M月D日 HH:mm`,llll:`YYYY年M月D日dddd HH:mm`},relativeTime:{future:`%s内`,past:`%s前`,s:`几秒`,m:`1 分钟`,mm:`%d 分钟`,h:`1 小时`,hh:`%d 小时`,d:`1 天`,dd:`%d 天`,M:`1 个月`,MM:`%d 个月`,y:`1 年`,yy:`%d 年`},meridiem:function(e,t){var n=100*e+t;return n<600?`凌晨`:n<900?`早上`:n<1100?`上午`:n<1300?`中午`:n<1800?`下午`:`晚上`}};return n.default.locale(r,null,!0),r}))})),c=e(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r(i()):typeof define==`function`&&define.amd?define([`dayjs`],r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_locale_ru=r(n.dayjs)})(e,(function(e){function t(e){return e&&typeof e==`object`&&`default`in e?e:{default:e}}var n=t(e),r=`января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря`.split(`_`),i=`январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь`.split(`_`),a=`янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.`.split(`_`),o=`янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.`.split(`_`),s=/D[oD]?(\[[^[\]]*\]|\s)+MMMM?/;function c(e,t,n){var r,i;return n===`m`?t?`минута`:`минуту`:e+` `+(r=+e,i={mm:t?`минута_минуты_минут`:`минуту_минуты_минут`,hh:`час_часа_часов`,dd:`день_дня_дней`,MM:`месяц_месяца_месяцев`,yy:`год_года_лет`}[n].split(`_`),r%10==1&&r%100!=11?i[0]:r%10>=2&&r%10<=4&&(r%100<10||r%100>=20)?i[1]:i[2])}var l=function(e,t){return s.test(t)?r[e.month()]:i[e.month()]};l.s=i,l.f=r;var u=function(e,t){return s.test(t)?a[e.month()]:o[e.month()]};u.s=o,u.f=a;var d={name:`ru`,weekdays:`воскресенье_понедельник_вторник_среда_четверг_пятница_суббота`.split(`_`),weekdaysShort:`вск_пнд_втр_срд_чтв_птн_сбт`.split(`_`),weekdaysMin:`вс_пн_вт_ср_чт_пт_сб`.split(`_`),months:l,monthsShort:u,weekStart:1,yearStart:4,formats:{LT:`H:mm`,LTS:`H:mm:ss`,L:`DD.MM.YYYY`,LL:`D MMMM YYYY г.`,LLL:`D MMMM YYYY г., H:mm`,LLLL:`dddd, D MMMM YYYY г., H:mm`},relativeTime:{future:`через %s`,past:`%s назад`,s:`несколько секунд`,m:c,mm:c,h:`час`,hh:c,d:`день`,dd:c,M:`месяц`,MM:c,y:`год`,yy:c},ordinal:function(e){return e},meridiem:function(e){return e<4?`ночи`:e<12?`утра`:e<17?`дня`:`вечера`}};return n.default.locale(d,null,!0),d}))})),l=t(i(),1),u=t(a(),1),d=t(o(),1);s(),c(),l.default.extend(d.default),l.default.extend(u.default);function f(e){return/^https?:\/\//.test(e)?e:`${window.location.protocol}//${e}`}function p(e){return/:{1,2}/.test(e)?`[${e}]`:e}function m(e,t=`en`){let n=t===`zh`?`zh-cn`:t===`ru`?`ru`:`en`;return(0,l.default)(e).locale(n).fromNow()}function h(e,t){let n=t-e,r=l.default.duration(n),i=Math.floor(r.asDays()),a=r.hours(),o=r.minutes(),s=r.seconds(),c=[];return i>0&&c.push(`${i}d`),a>0&&c.push(`${a}h`),o>0&&c.push(`${o}m`),s>0&&i===0&&c.push(`${s}s`),c.length>0?c.join(` `):`0s`}function g(e,t,n=`en`){let r=n===`zh`?`zh-cn`:n===`ru`?`ru`:`en`,i=(0,l.default)(e),a=(0,l.default)(t);return i.isSame(a,`day`)?`${i.locale(r).format(`MMM D, YYYY HH:mm`)} - ${a.locale(r).format(`HH:mm`)}`:`${i.locale(r).format(`MMM D, HH:mm`)} - ${a.locale(r).format(`MMM D, HH:mm`)}`}function _(e=``,t){let n=e.toLowerCase(),r=new Map([[`shadowsocks`,`SS`],[`shadowsocksr`,`SSR`],[`hysteria`,`HY`],[`hysteria2`,`HY2`],[`wireguard`,`WG`],[`selector`,t(`selector`)],[`urltest`,t(`urltest`)],[`fallback`,t(`fallback`)],[`loadbalance`,t(`loadbalance`)],[`direct`,t(`direct`)],[`reject`,t(`reject`)],[`rejectdrop`,t(`rejectdrop`)],[`relay`,t(`relay`)],[`pass`,t(`pass`)]]);return r.has(n)?r.get(n):n}function v(e,t){return e>t.HIGH?`text-red-500`:e>t.MEDIUM?`text-yellow-500`:e===t.NOT_CONNECTED?`text-gray`:`text-green-600`}function y(e=``){return![`selector`,`direct`,`reject`,`urltest`,`loadbalance`,`fallback`,`relay`].includes(e.toLowerCase())}function b({proxyNames:e,orderingType:t,testUrl:n,getLatencyByName:i,latencyQualityMap:a,urlForLatencyTest:o}){if(t===r.NATURAL)return e;let s=n||o;return[...e].sort((e,n)=>{let o=i(e,s),c=i(n,s);switch(t){case r.LATENCY_ASC:return o===a.NOT_CONNECTED?1:c===a.NOT_CONNECTED?-1:o-c;case r.LATENCY_DESC:return o===a.NOT_CONNECTED?1:c===a.NOT_CONNECTED?-1:c-o;case r.NAME_ASC:return e.localeCompare(n);case r.NAME_DESC:return n.localeCompare(e);default:return 0}})}function x({proxyNames:e,enabled:t,testUrl:n,getLatencyByName:r,isProxyGroup:i,latencyQualityMap:a,urlForLatencyTest:o}){let s=n||o;return t?e.filter(e=>i(e)||r(e,s)!==a.NOT_CONNECTED):e}function S(){let e=n({}),t=(t,n)=>{e.value={...e.value,[t]:n}};return{map:e,set:t,setWithCallback:async(e,n)=>{t(e,!0);try{await n()}catch{}t(e,!1)}}}function C(e){return typeof document>`u`?``:getComputedStyle(document.documentElement).getPropertyValue(e).trim()}function w(){return{baseContent:C(`--color-base-content`)||`oklch(0.746 0 0)`,base100:C(`--color-base-100`)||`oklch(0.253 0 0)`,base200:C(`--color-base-200`)||`oklch(0.232 0 0)`,base300:C(`--color-base-300`)||`oklch(0.211 0 0)`,primary:C(`--color-primary`)||`oklch(0.65 0.15 240)`,primaryContent:C(`--color-primary-content`)||`oklch(0.98 0 0)`,secondary:C(`--color-secondary`)||`oklch(0.65 0.15 300)`,secondaryContent:C(`--color-secondary-content`)||`oklch(0.98 0 0)`,accent:C(`--color-accent`)||`oklch(0.65 0.15 180)`,accentContent:C(`--color-accent-content`)||`oklch(0.98 0 0)`,neutral:C(`--color-neutral`)||`oklch(0.3 0 0)`,neutralContent:C(`--color-neutral-content`)||`oklch(0.98 0 0)`,info:C(`--color-info`)||`oklch(0.65 0.15 220)`,success:C(`--color-success`)||`oklch(0.65 0.15 140)`,warning:C(`--color-warning`)||`oklch(0.8 0.15 80)`,error:C(`--color-error`)||`oklch(0.65 0.2 25)`}}function T(){let e=w();return{textColor:e.baseContent,textColorHover:e.primaryContent,gridLineColor:e.base300,lineColor:e.base300,tickColor:e.base300,seriesColors:[e.info,e.success,e.warning,e.error],backgroundColor:e.base200}}function E(e){return e.replace(`/g,`%3E`)}export{h as a,m as c,w as d,b as f,i as h,g as i,T as l,S as m,x as n,p as o,f as p,y as r,_ as s,E as t,v as u};
\ No newline at end of file
diff --git a/dashboard/public/_nuxt/Wo8RWyMo.js b/dashboard/public/_nuxt/BrGTwNTv.js
similarity index 99%
rename from dashboard/public/_nuxt/Wo8RWyMo.js
rename to dashboard/public/_nuxt/BrGTwNTv.js
index 1779c05..857a792 100644
--- a/dashboard/public/_nuxt/Wo8RWyMo.js
+++ b/dashboard/public/_nuxt/BrGTwNTv.js
@@ -1 +1 @@
-import{$ as e,A as t,Dt as n,E as r,Et as i,G as a,H as o,J as s,K as c,Mt as l,Q as u,R as d,T as f,V as p,W as m,Z as h,ct as g,dt as _,et as v,ft as y,ht as ee,j as b,k as x,kt as S,pt as te,q as C,rt as w,st as T,ut as E,w as D,wt as O,x as k,yt as A,z as ne}from"./DB3QyUG1.js";import{i as j,n as M,r as re}from"./_v7-ePgP.js";import{t as ie}from"./BGrMhtLn.js";import"./Ds3PMqWb.js";import{M as ae,N as oe,P as se,c as ce,g as le,h as ue,i as de,j as fe,l as pe,n as me,t as he,u as ge,v as _e,w as ve}from"./CdfRVy8H.js";import{i as ye,r as be}from"./A1BmUOM0.js";import{i as xe,n as Se,r as Ce,t as we}from"./RfkGMhKY.js";import{c as Te,h as Ee,o as De}from"./CAhuthQu.js";import{t as Oe}from"./5MMMtqqF.js";import{t as ke}from"./Ca1zbqff.js";import{t as Ae}from"./6QyW-nVe.js";function je(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var Me=je,Ne=`[object AsyncFunction]`,Pe=`[object Function]`,Fe=`[object GeneratorFunction]`,Ie=`[object Proxy]`;function Le(e){if(!Me(e))return!1;var t=Ce(e);return t==Pe||t==Fe||t==Ne||t==Ie}var Re=Le,ze=xe[`__core-js_shared__`],Be=function(){var e=/[^.]+$/.exec(ze&&ze.keys&&ze.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function Ve(e){return!!Be&&Be in e}var He=Ve,Ue=Function.prototype.toString;function We(e){if(e!=null){try{return Ue.call(e)}catch{}try{return e+``}catch{}}return``}var Ge=We,Ke=/[\\^$.*+?()[\]{}|]/g,qe=/^\[object .+?Constructor\]$/,Je=Function.prototype,Ye=Object.prototype,Xe=Je.toString,Ze=Ye.hasOwnProperty,Qe=RegExp(`^`+Xe.call(Ze).replace(Ke,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function $e(e){return!Me(e)||He(e)?!1:(Re(e)?Qe:qe).test(Ge(e))}var et=$e;function tt(e,t){return e?.[t]}var nt=tt;function rt(e,t){var n=nt(e,t);return et(n)?n:void 0}var it=rt;function at(){}var ot=at;function st(e,t,n,r){for(var i=e.length,a=n+(r?1:-1);r?a--:++a-1}var gt=ht;function _t(e,t){return e===t||e!==e&&t!==t}var vt=_t,yt=it(Object,`create`);function bt(){this.__data__=yt?yt(null):{},this.size=0}var xt=bt;function St(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}var Ct=St,wt=`__lodash_hash_undefined__`,Tt=Object.prototype.hasOwnProperty;function Et(e){var t=this.__data__;if(yt){var n=t[e];return n===wt?void 0:n}return Tt.call(t,e)?t[e]:void 0}var Dt=Et,Ot=Object.prototype.hasOwnProperty;function kt(e){var t=this.__data__;return yt?t[e]!==void 0:Ot.call(t,e)}var At=kt,jt=`__lodash_hash_undefined__`;function Mt(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=yt&&t===void 0?jt:t,this}var Nt=Mt;function Pt(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t {let{slotScopeIds:u}=t;u&&(i=i?i.concat(u):u);let d=o(e),f=p(a(e),t,d,n,r,i,s);return f&&di(f)&&f.data===`]`?a(t.anchor=f):(si(),c(t.anchor=l(`]`),d,f),f)},g=(e,t,r,i,c,l)=>{if(hi(e.parentElement,1)||si(),t.el=null,l){let t=_(e);for(;;){let n=a(e);if(n&&n!==t)s(n);else break}}let u=a(e),d=o(e);return s(e),n(null,t,d,u,r,i,ui(d),c),r&&(r.vnode.el=t.el,go(r,t.el)),u},_=(e,t=`[`,n=`]`)=>{let r=0;for(;e;)if(e=a(e),e&&di(e)&&(e.data===t&&r++,e.data===n)){if(r===0)return a(e);r--}return e},v=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},y=e=>e.nodeType===1&&e.tagName===`TEMPLATE`;return[u,d]}var pi=`data-allow-mismatch`,mi={0:`text`,1:`children`,2:`class`,3:`style`,4:`attribute`};function hi(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(pi);)e=e.parentElement;let n=e&&e.getAttribute(pi);if(n==null)return!1;if(n===``)return!0;{let e=n.split(`,`);return t===0&&e.includes(`children`)?!0:e.includes(mi[t])}}var gi=ve().requestIdleCallback||(e=>setTimeout(e,1)),_i=ve().cancelIdleCallback||(e=>clearTimeout(e)),vi=(e=1e4)=>t=>{let n=gi(t,{timeout:e});return()=>_i(n)};function yi(e){let{top:t,left:n,bottom:r,right:i}=e.getBoundingClientRect(),{innerHeight:a,innerWidth:o}=window;return(t>0&&t0&&r0&&ne?.enabled)}function n(e,t,n,r,i){let{chart:a,enabledDataSorting:o}=this,s=this.isCartesian&&a.inverted,c=e.plotX,l=e.plotY,u=n.rotation||0,d=Al(c)&&Al(l)&&a.isInsidePlot(c,Math.round(l),{inverted:s,paneCoordinates:!0,series:this}),f=u===0&&Rl(n.overflow,o?`none`:`justify`)===`justify`,p=this.visible&&!1!==e.visible&&Al(c)&&(e.series.forceDL||o&&!f||d||Rl(n.inside,!!this.options.stacking)&&r&&a.isInsidePlot(c,s?r.x+1:r.y+r.height-1,{inverted:s,paneCoordinates:!0,series:this})),m=e.pos();if(p&&m){var h;let c=t.getBBox(),l=t.getBBox(void 0,0);if(r=jl({x:m[0],y:Math.round(m[1]),width:0,height:0},r||{}),n.alignTo===`plotEdges`&&this.isCartesian&&(r[s?`x`:`y`]=0,r[s?`width`:`height`]=this.yAxis?.len||0),jl(n,{width:c.width,height:c.height}),h=r,o&&this.xAxis&&!f&&this.setDataLabelStartPos(e,t,i,d,h),t.align(Il(n,{width:l.width,height:l.height}),!1,r,!1),t.alignAttr.x+=Nl(n.align)*(l.width-c.width),t.alignAttr.y+=Nl(n.verticalAlign)*(l.height-c.height),t[t.placed?`animate`:`attr`]({"text-align":t.alignAttr[`text-align`]||`center`,x:t.alignAttr.x+(c.width-l.width)/2,y:t.alignAttr.y+(c.height-l.height)/2,rotationOriginX:(t.width||0)/2,rotationOriginY:(t.height||0)/2}),f&&r.height>=0)this.justifyDataLabel(t,n,t.alignAttr,c,r,i);else if(Rl(n.crop,!0)){let{x:e,y:n}=t.alignAttr;p=a.isInsidePlot(e,n,{paneCoordinates:!0,series:this})&&a.isInsidePlot(e+c.width-1,n+c.height-1,{paneCoordinates:!0,series:this})}n.shape&&!u&&t[i?`attr`:`animate`]({anchorX:m[0],anchorY:m[1]})}i&&o&&(t.placed=!1),p||o&&!f?(t.show(),t.placed=!0):(t.hide(),t.placed=!1)}function r(){return this.plotGroup(`dataLabelsGroup`,`data-labels`,this.hasRendered?`inherit`:`hidden`,this.options.dataLabels.zIndex||6,this.chart.dataLabelsGroup)}function i(e){let t=this.hasRendered||0,n=this.initDataLabelsGroup().attr({opacity:+t});return!t&&n&&(this.visible&&n.show(),this.options.animation?n.animate({opacity:1},e):n.attr({opacity:1})),n}function a(e){let t;e||=this.points;let n=this,r=n.chart,i=n.options,a=r.renderer,{backgroundColor:o,plotBackgroundColor:l}=r.options.chart,u=a.getContrast(Fl(l)&&l||Fl(o)&&o||`#000000`),d=c(n),{animation:f,defer:p}=d[0],m=p?Ol(r,f,n):{defer:0,duration:0};Ml(this,`drawDataLabels`),n.hasDataLabels?.()&&(t=this.initDataLabels(m),e.forEach(e=>{let o=e.dataLabels||[],c=e.color||n.color;Bl(s(d,e.dlOptions||e.options?.dataLabels)).forEach((s,l)=>{let d=s.enabled&&(e.visible||e.dataLabelOnHidden)&&(!e.isNull||e.dataLabelOnNull)&&function(e,t){let n=t.filter;if(n){let t=n.operator,r=e[n.property],i=n.value;return t===`>`&&r>i||t===`<`&&r=`&&r>=i||t===`<=`&&r<=i||t===`==`&&r==i||t===`===`&&r===i||t===`!=`&&r!=i||t===`!==`&&r!==i||!1}return!0}(e,s),{backgroundColor:f,borderColor:p,distance:m,style:h={}}=s,g,_,v,y={},b=o[l],x=!b,S;d&&(_=Al(g=Rl(s[e.formatPrefix+`Format`],s.format))?kl(g,e,r):(s[e.formatPrefix+`Formatter`]||s.formatter).call(e,s),v=s.rotation,!r.styledMode&&(h.color=Rl(s.color,h.color,Fl(n.color)?n.color:void 0,`#000000`),h.color===`contrast`?(f!==`none`&&(S=f),e.contrastColor=a.getContrast(S!==`auto`&&Fl(S)&&S||(Fl(c)?c:``)),h.color=S||!Al(m)&&s.inside||0>zl(m||0)||i.stacking?e.contrastColor:u):delete e.contrastColor,i.cursor&&(h.cursor=i.cursor)),y={r:s.borderRadius||0,rotation:v,padding:s.padding,zIndex:1},r.styledMode||(y.fill=f===`auto`?e.color:f,y.stroke=p===`auto`?e.color:p,y[`stroke-width`]=s.borderWidth),Ll(y,(e,t)=>{e===void 0&&delete y[t]})),!b||d&&Al(_)&&!!(b.div||b.text?.foreignObject)==!!s.useHTML&&(b.rotation&&s.rotation||b.rotation===s.rotation)||(b=void 0,x=!0),d&&Al(_)&&_!==``&&(b?y.text=_:(b=a.label(_,0,0,s.shape,void 0,void 0,s.useHTML,void 0,`data-label`)).addClass(` highcharts-data-label-color-`+e.colorIndex+` `+(s.className||``)+(s.useHTML?` highcharts-tracker`:``)),b&&(b.options=s,b.attr(y),r.styledMode?h.width&&b.css({width:h.width,textOverflow:h.textOverflow,whiteSpace:h.whiteSpace}):b.css(h).shadow(s.shadow),Ml(b,`beforeAddingDataLabel`,{labelOptions:s,point:e}),b.added||b.add(t),n.alignDataLabel(e,b,s,void 0,x),b.isActive=!0,o[l]&&o[l]!==b&&o[l].destroy(),o[l]=b))});let l=o.length;for(;l--;)o[l]?.isActive?o[l].isActive=!1:(o[l]?.destroy(),o.splice(l,1));e.dataLabel=o[0],e.dataLabels=o})),Ml(this,`afterDrawDataLabels`)}function o(e,t,n,r,i,a){let o=this.chart,s=t.align,c=t.verticalAlign,l=e.box?0:e.padding||0,u=o.inverted?this.yAxis:this.xAxis,d=u?u.left-o.plotLeft:0,f=o.inverted?this.xAxis:this.yAxis,p=f?f.top-o.plotTop:0,{x:m=0,y:h=0}=t,g,_;return(g=(n.x||0)+l+d)<0&&(s===`right`&&m>=0?(t.align=`left`,t.inside=!0):m-=g,_=!0),(g=(n.x||0)+r.width-l+d)>o.plotWidth&&(s===`left`&&m<=0?(t.align=`right`,t.inside=!0):m+=o.plotWidth-g,_=!0),(g=n.y+l+p)<0&&(c===`bottom`&&h>=0?(t.verticalAlign=`top`,t.inside=!0):h-=g,_=!0),(g=(n.y||0)+r.height-l+p)>o.plotHeight&&(c===`top`&&h<=0?(t.verticalAlign=`bottom`,t.inside=!0):h+=o.plotHeight-g,_=!0),_&&(t.x=m,t.y=h,e.placed=!a,e.align(t,void 0,i)),_}function s(e,t){let n=[],r;if(Pl(e)&&!Pl(t))n=e.map(function(e){return Il(e,t)});else if(Pl(t)&&!Pl(e))n=t.map(function(t){return Il(e,t)});else if(Pl(e)||Pl(t)){if(Pl(e)&&Pl(t))for(r=Math.max(e.length,t.length);r--;)n[r]=Il(e[r],t[r])}else n=Il(e,t);return n}function c(e){let t=e.chart.options.plotOptions;return Bl(s(s(t?.series?.dataLabels,t?.[e.type]?.dataLabels),e.options.dataLabels))}function l(e,t,n,r,i){let a=this.chart,o=a.inverted,s=this.xAxis,c=s.reversed,l=((o?t.height:t.width)||0)/2,u=e.pointWidth,d=u?u/2:0;t.startXPos=o?i.x:c?-l-d:s.width-l+d,t.startYPos=o?c?this.yAxis.height-l+d:-l-d:i.y,r?t.visibility===`hidden`&&(t.show(),t.attr({opacity:0}).animate({opacity:1})):t.attr({opacity:1}).animate({opacity:0},void 0,t.hide),a.hasRendered&&(n&&t.attr({x:t.startXPos,y:t.startYPos}),t.placed=!0)}e.compose=function(e){let c=e.prototype;c.initDataLabels||(c.initDataLabels=i,c.initDataLabelsGroup=r,c.alignDataLabel=n,c.drawDataLabels=a,c.justifyDataLabel=o,c.mergeArrays=s,c.setDataLabelStartPos=l,c.hasDataLabels=t)}})(m||={});let Vl=m,{composed:Hl}=S,{series:Ul}=K,{merge:Wl,pushUnique:Gl}=M;(function(e){function t(e,t,n,r,i){let{chart:a,options:o}=this,s=a.inverted,c=this.xAxis?.len||a.plotSizeX||0,l=this.yAxis?.len||a.plotSizeY||0,u=e.dlBox||e.shapeArgs,d=e.below??(e.plotY||0)>(this.translatedThreshold??l),f=n.inside??!!o.stacking;if(u){if(r=Wl(u),n.overflow!==`allow`||!1!==n.crop||!1!==o.clip){r.y<0&&(r.height+=r.y,r.y=0);let e=r.y+r.height-l;e>0&&e
`,pointFormat:`x: {point.x}
y: {point.y}
`}}),$l(tu.prototype,{drawTracker:Xl.prototype.drawTracker,sorted:!1,requireSorting:!1,noSharedTooltip:!0,trackerGroups:[`group`,`markerGroup`,`dataLabelsGroup`]}),Ql(tu,`afterTranslate`,function(){this.applyJitter()}),K.registerSeriesType(`scatter`,tu);let{deg2rad:nu}=S,{fireEvent:ru,isNumber:iu,pick:au,relativeLength:ou}=M;(function(e){e.getCenter=function(){let e=this.options,t=this.chart,n=2*(e.slicedOffset||0),r=t.plotWidth-2*n,i=t.plotHeight-2*n,a=e.center,o=Math.min(r,i),s=e.thickness,c,l=e.size,u=e.innerSize||0,d,f;typeof l==`string`&&(l=parseFloat(l)),typeof u==`string`&&(u=parseFloat(u));let p=[au(a?.[0],`50%`),au(a?.[1],`50%`),au(l&&l<0?void 0:e.size,`100%`),au(u&&u<0?void 0:e.innerSize||0,`0%`)];for(!t.angular||this instanceof Z||(p[3]=0),d=0;d<4;++d)f=p[d],c=d<2||d===2&&/%$/.test(f),p[d]=ou(f,[r,i,o,p[2]][d])+(c?n:0);return p[3]>p[2]&&(p[3]=p[2]),iu(s)&&2*s
`;return this.points?.forEach(e=>{t+=`\u25CF ${e.series.name}: ${c(e.y,!0)}
`}),t}},plotOptions:{areaspline:{fillOpacity:.3,marker:{enabled:!1},lineWidth:2,states:{hover:{lineWidth:3}},threshold:null}},series:i.seriesConfig.map((t,n)=>({type:`areaspline`,name:t.name,color:t.color||e.seriesColors[n]||Ee.default.getOptions().colors?.[n]||`hsl(${n*120}, 70%, 50%)`,data:i.initialData?.[n]||[]}))}}let p={addPoint:(e,t,n)=>{if(u?.series[e]){let r=u.series[e].data.length>=10;u.series[e].addPoint([t,n],!0,r,{duration:800,easing:`linear`})}},addPoints:e=>{if(!u)return;let t=new Map;e.forEach(e=>{t.has(e.seriesIndex)||t.set(e.seriesIndex,[]),t.get(e.seriesIndex).push({time:e.time,value:e.value})}),t.forEach((e,t)=>{let n=u?.series[t];n&&e.forEach(e=>{let t=n.data.length>=10;n.addPoint([e.time,e.value],!1,t)})}),u.redraw({duration:800,easing:`linear`})},setSeriesData:(e,t)=>{u?.series[e]&&u.series[e].setData(t,!0,!1,!1)}};return t({chartRef:p}),g(()=>{if(!l.value)return;u=Ee.default.chart(l.value,f()),o(`chartReady`,p);let e=new ResizeObserver(()=>{u&&l.value&&u.setSize(l.value.clientWidth,l.value.clientHeight,!0)});e.observe(l.value),w(()=>{e.disconnect(),u?.destroy()})}),v(()=>i.title,e=>{u&&u.setTitle({text:e})}),v(()=>i.seriesConfig,e=>{u&&(e.forEach((e,t)=>{u.series[t]&&u.series[t].update({type:`areaspline`,name:e.name,color:e.color},!1)}),u.redraw())},{deep:!0}),v(()=>d.curTheme,()=>{requestAnimationFrame(()=>{if(u){let e=be();u.update({chart:{backgroundColor:e.backgroundColor},title:{style:{color:e.textColor}},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{labels:{style:{color:e.textColor}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{labels:{style:{color:e.textColor}},gridLineColor:e.gridLineColor}},!0,!1,!1)}})}),(t,r)=>(D(),s(`div`,De,[e.isLoading?(D(),s(`div`,Oe,[...r[0]||=[a(`span`,{class:`loading loading-lg loading-dots`},null,-1)]])):T(``,!0),a(`div`,{ref_key:`containerRef`,ref:l,class:n([`h-full w-full`,{"opacity-0":e.isLoading}])},null,2)]))}}),Ae=Object.assign(ke,{__name:`RealtimeLineChart`}),je=u(ge(),1),Me={class:`relative h-full w-full`},Ne={key:0,class:`absolute inset-0 flex items-center justify-center`},Pe=e({__name:`HighchartsAutoSize`,props:{options:{},isLoading:{type:Boolean,default:!1}},setup(e){let t=e,r=A(),i,o=M();function c(){let e=be();return{chart:{animation:{duration:300},backgroundColor:e.backgroundColor},credits:{enabled:!1},accessibility:{enabled:!1},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},title:{style:{color:e.textColor}}}}return g(()=>{if(!r.value)return;let e=c(),n={...e,...t.options,chart:{...e.chart,...t.options.chart}};i=je.default.chart(r.value,n);let a=r.value.clientWidth,o=r.value.clientHeight,s=new ResizeObserver(()=>{if(i&&r.value){let e=r.value.clientWidth,t=r.value.clientHeight;(e!==a||t!==o)&&(a=e,o=t,i.setSize(e,t,!1))}});s.observe(r.value),w(()=>{s.disconnect(),i?.destroy()})}),v(()=>t.options,e=>{i&&i.update(e,!0,!1,!1)},{deep:!0}),v(()=>o.curTheme,()=>{requestAnimationFrame(()=>{if(i){let e=be();i.update({chart:{backgroundColor:e.backgroundColor},title:{style:{color:e.textColor}},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{labels:{style:{color:e.textColor}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{labels:{style:{color:e.textColor}},gridLineColor:e.gridLineColor}},!0,!1,!1)}})}),(t,i)=>(D(),s(`div`,Me,[e.isLoading?(D(),s(`div`,Ne,[...i[0]||=[a(`span`,{class:`loading loading-lg loading-dots`},null,-1)]])):T(``,!0),a(`div`,{ref_key:`containerRef`,ref:r,class:n([`h-full w-full`,{"opacity-0":e.isLoading}])},null,2)]))}}),Fe=Object.assign(Pe,{__name:`HighchartsAutoSize`}),Ie={"ip.sb":`https://api.ip.sb/geoip`,"ipwho.is":`https://ipwho.is/`,"ipapi.is":`https://api.ipapi.is/`};function Le(e){return{ip:e.ip,country:e.country,city:e.city,asn:e.asn,org:e.asn_organization}}function Re(e){return{ip:e.ip,country:e.country,countryCode:e.country_code,city:e.city,region:e.region,asn:e.connection?.asn,org:e.connection?.org,isp:e.connection?.isp,latitude:e.latitude,longitude:e.longitude,timezone:e.timezone?.id}}function ze(e){return{ip:e.ip,country:e.location?.country,countryCode:e.location?.country_code,city:e.location?.city,region:e.location?.state,asn:e.asn?.asn,org:e.asn?.org,isProxy:e.is_proxy,isVPN:e.is_vpn,latitude:e.location?.latitude,longitude:e.location?.longitude,timezone:e.location?.timezone}}async function Be(e){let t=Ie[e],n=await me.get(t,{timeout:1e4}).json();switch(e){case`ip.sb`:return Le(n);case`ipwho.is`:return Re(n);case`ipapi.is`:return ze(n);default:throw Error(`Unknown IP provider: ${e}`)}}function Ve(){let e=A(`ip.sb`),t=A(null),n=A(!1),r=A(null);async function i(i){let a=i??e.value;n.value=!0,r.value=null;try{t.value=await Be(a),e.value=a}catch(e){r.value=e instanceof Error?e.message:`Failed to fetch IP info`,t.value=null}finally{n.value=!1}}return{currentProvider:e,ipInfo:t,isLoading:n,error:r,fetchIP:i}}var He={class:`card bg-base-200 p-4 shadow-sm`},Ue={class:`mb-3 flex items-center justify-between`},We={class:`flex items-center gap-2`},Ge={class:`font-semibold`},Ke={class:`flex items-center gap-2`},qe=[`value`],Je=[`value`],Ye=[`disabled`],Xe={key:0,class:`flex justify-center py-4`},Ze={key:1,class:`alert alert-error`},Qe={key:2,class:`space-y-2`},$e={class:`flex items-center justify-between gap-2`},et={class:`shrink-0 text-base-content/60`},tt=[`title`],nt={key:0,class:`flex items-center justify-between gap-2`},rt={class:`shrink-0 text-base-content/60`},it={class:`truncate`},at={key:1,class:`flex items-center justify-between gap-2`},ot={class:`shrink-0 text-base-content/60`},st={class:`truncate`},ct={key:2,class:`flex items-center justify-between gap-2`},lt={class:`shrink-0 text-base-content/60`},ut=[`title`],dt={key:3,class:`flex items-center justify-between gap-2`},ft={class:`truncate font-mono`},pt={key:4,class:`flex items-center justify-between gap-2`},mt=[`title`],ht={key:5,class:`flex items-center justify-between`},gt={class:`text-base-content/60`},_t={class:`flex gap-1`},vt={key:0,class:`badge badge-sm badge-warning`},yt={key:1,class:`badge badge-sm badge-warning`},bt={key:2,class:`badge badge-sm badge-success`},xt={key:3,class:`py-4 text-center text-base-content/60`},St=e({__name:`IPInfoCard`,setup(e){let{t}=k(),{currentProvider:r,ipInfo:c,isLoading:l,error:u,fetchIP:d}=Ve(),p=[{value:`ip.sb`,label:`IP.SB`},{value:`ipwho.is`,label:`ipwho.is`},{value:`ipapi.is`,label:`ipapi.is`}];g(()=>{d()});function m(e){let t=e.target;d(t.value)}return(e,h)=>(D(),s(`div`,He,[a(`div`,Ue,[a(`div`,We,[f(i(ie),{class:`h-5 w-5 text-primary`}),a(`h3`,Ge,S(i(t)(`currentIP`)),1)]),a(`div`,Ke,[a(`select`,{value:i(r),class:`select-bordered select select-sm`,onChange:m},[(D(),s(o,null,_(p,e=>a(`option`,{key:e.value,value:e.value},S(e.label),9,Je)),64))],40,qe),a(`button`,{class:n([`btn btn-circle btn-ghost btn-sm`,{"animate-spin":i(l)}]),disabled:i(l),onClick:h[0]||=e=>i(d)()},[f(i(ce),{class:`h-4 w-4`})],10,Ye)])]),i(l)?(D(),s(`div`,Xe,[...h[1]||=[a(`span`,{class:`loading loading-md loading-spinner`},null,-1)]])):i(u)?(D(),s(`div`,Ze,[a(`span`,null,S(i(u)),1)])):i(c)?(D(),s(`div`,Qe,[a(`div`,$e,[a(`span`,et,S(i(t)(`ipAddress`)),1),a(`span`,{class:`truncate font-mono font-semibold`,title:i(c).ip},S(i(c).ip),9,tt)]),i(c).country?(D(),s(`div`,nt,[a(`span`,rt,S(i(t)(`country`)),1),a(`span`,it,S(i(c).country),1)])):T(``,!0),i(c).city?(D(),s(`div`,at,[a(`span`,ot,S(i(t)(`city`)),1),a(`span`,st,S(i(c).city),1)])):T(``,!0),i(c).org?(D(),s(`div`,ct,[a(`span`,lt,S(i(t)(`organization`)),1),a(`span`,{class:`truncate text-right`,title:i(c).org},S(i(c).org),9,ut)])):T(``,!0),i(c).asn?(D(),s(`div`,dt,[h[2]||=a(`span`,{class:`shrink-0 text-base-content/60`},`ASN`,-1),a(`span`,ft,`AS`+S(i(c).asn),1)])):T(``,!0),i(c).isp?(D(),s(`div`,pt,[h[3]||=a(`span`,{class:`shrink-0 text-base-content/60`},`ISP`,-1),a(`span`,{class:`truncate text-right`,title:i(c).isp},S(i(c).isp),9,mt)])):T(``,!0),i(c).isProxy!==void 0||i(c).isVPN!==void 0?(D(),s(`div`,ht,[a(`span`,gt,S(i(t)(`proxyDetection`)),1),a(`div`,_t,[i(c).isProxy?(D(),s(`span`,vt,` Proxy `)):T(``,!0),i(c).isVPN?(D(),s(`span`,yt,` VPN `)):T(``,!0),!i(c).isProxy&&!i(c).isVPN?(D(),s(`span`,bt,S(i(t)(`clean`)),1)):T(``,!0)])])):T(``,!0)])):(D(),s(`div`,xt,S(i(t)(`noData`)),1))]))}}),Ct=Object.assign(St,{__name:`IPInfoCard`}),wt=[{name:`Google`,url:`https://www.google.com/generate_204`},{name:`Cloudflare`,url:`https://www.cloudflare.com/cdn-cgi/trace`},{name:`GitHub`,url:`https://github.com`}];async function Tt(e){try{let t=performance.now();await fetch(e,{method:`HEAD`,mode:`no-cors`,cache:`no-store`});let n=performance.now();return Math.round(n-t)}catch{return null}}function Et(){let e=A(new Map),t=A(!1),n=A(wt);async function r(t,n){e.value.set(n,{url:n,latency:null,status:`pending`,timestamp:Date.now()});let r=await Tt(n);return e.value.set(n,{url:n,latency:r,status:r===null?`error`:`success`,timestamp:Date.now()}),r}async function i(){t.value=!0;let e=n.value.map(e=>r(e.name,e.url));await Promise.all(e),t.value=!1}function a(t){return e.value.get(t)}return{results:e,isTestingAll:t,targets:n,testLatency:r,testAllLatencies:i,getResult:a,allResults:m(()=>n.value.map(t=>({name:t.name,url:t.url,result:e.value.get(t.url)}))),averageLatency:m(()=>{let t=Array.from(e.value.values()).filter(e=>e.status===`success`&&e.latency!==null);if(t.length===0)return null;let n=t.reduce((e,t)=>e+(t.latency??0),0);return Math.round(n/t.length)})}}var Dt={class:`card bg-base-200 p-4 shadow-sm`},Ot={class:`mb-3 flex items-center justify-between`},kt={class:`flex items-center gap-2`},At={class:`font-semibold`},jt={class:`flex items-center gap-2`},Mt=[`disabled`],Nt={class:`space-y-3`},Pt={class:`w-20 shrink-0 truncate text-sm`},Ft={class:`relative h-4 flex-1 overflow-hidden rounded-full bg-base-300`},It={class:`w-16 shrink-0 text-right font-mono text-sm`},Lt={key:0,class:`loading loading-xs loading-spinner`},Rt={key:1},zt={key:2,class:`text-error`},Bt={key:3,class:`text-base-content/40`},Vt=e({__name:`LatencyCard`,setup(e){let{t}=k(),{allResults:r,isTestingAll:c,testAllLatencies:l,averageLatency:u}=Et();g(()=>{l()});function p(e){return e==null?`badge-ghost`:e<100?`badge-success`:e<300?`badge-warning`:`badge-error`}function m(e){return e==null?`0%`:`${Math.min(e/500*100,100)}%`}function h(e){return e==null?`bg-base-300`:e<100?`bg-success`:e<300?`bg-warning`:`bg-error`}return(e,g)=>(D(),s(`div`,Dt,[a(`div`,Ot,[a(`div`,kt,[f(i(te),{class:`h-5 w-5 text-primary`}),a(`h3`,At,S(i(t)(`networkLatency`)),1)]),a(`div`,jt,[i(u)===null?T(``,!0):(D(),s(`span`,{key:0,class:n([`badge`,p(i(u))])},S(i(t)(`average`))+`: `+S(i(u))+`ms `,3)),a(`button`,{class:n([`btn btn-circle btn-ghost btn-sm`,{"animate-spin":i(c)}]),disabled:i(c),onClick:g[0]||=(...e)=>i(l)&&i(l)(...e)},[f(i(ce),{class:`h-4 w-4`})],10,Mt)])]),a(`div`,Nt,[(D(!0),s(o,null,_(i(r),e=>(D(),s(`div`,{key:e.url,class:`flex items-center gap-3`},[a(`span`,Pt,S(e.name),1),a(`div`,Ft,[a(`div`,{class:n([`absolute inset-y-0 left-0 rounded-full transition-all duration-500`,h(e.result?.latency)]),style:d({width:m(e.result?.latency)})},null,6)]),a(`span`,It,[e.result?.status===`pending`?(D(),s(`span`,Lt)):e.result?.status===`success`?(D(),s(`span`,Rt,S(e.result.latency)+`ms `,1)):e.result?.status===`error`?(D(),s(`span`,zt,S(i(t)(`timeout`)),1)):(D(),s(`span`,Bt,`-`))])]))),128))])]))}}),Ht=Object.assign(Vt,{__name:`LatencyCard`}),Ut={value:()=>{}};function Wt(){for(var e=0,t=arguments.length,n={},r;e=0&&(e=e.slice(0,t)),!e||e===`start`})}function Za(e,t,n){var r,i,a=Xa(t)?_a:X;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Qa(e,t){var n=this._id;return arguments.length<2?Z(this.node(),n).on.on(e):this.each(Za(n,e,t))}function $a(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function eo(){return this.on(`end.remove`,$a(this._id))}function to(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=nn(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o=0;)t+=n[r].value;e.value=t}function Fo(){return this.eachAfter(Po)}function Io(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function Lo(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function Ro(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o=0;)n+=r[i].value;t.value=n})}function Vo(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function Ho(e){for(var t=this,n=Uo(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function Uo(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function Wo(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function Go(){return Array.from(this)}function Ko(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function qo(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*Jo(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i=0;--s)i.push(a=o[s]=new ts(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(es)}function Xo(){return Yo(this).eachBefore($o)}function Zo(e){return e.children}function Qo(e){return Array.isArray(e)?e[1]:null}function $o(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function es(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function ts(e){this.data=e,this.depth=this.height=0,this.parent=null}ts.prototype=Yo.prototype={constructor:ts,count:Fo,each:Io,eachAfter:Ro,eachBefore:Lo,find:zo,sum:Bo,sort:Vo,path:Ho,ancestors:Wo,descendants:Go,leaves:Ko,links:qo,copy:Xo,[Symbol.iterator]:Jo};function ns(e,t){return e.parent===t.parent?1:2}function rs(e){var t=e.children;return t?t[0]:e.t}function is(e){var t=e.children;return t?t[t.length-1]:e.t}function as(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function os(e){for(var t=0,n=0,r=e.children,i=r.length,a;--i>=0;)a=r[i],a.z+=t,a.m+=t,t+=a.s+(n+=a.c)}function ss(e,t,n){return e.a.parent===t.parent?e.a:n}function cs(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}cs.prototype=Object.create(ts.prototype);function ls(e){for(var t=new cs(e,0),n,r=[t],i,a,o,s;n=r.pop();)if(a=n._.children)for(n.children=Array(s=a.length),o=s-1;o>=0;--o)r.push(i=n.children[o]=new cs(a[o],o)),i.parent=n;return(t.parent=new cs(null,0)).children=[t],t}function us(){var e=ns,t=1,n=1,r=null;function i(i){var s=ls(i);if(s.eachAfter(a),s.parent.m=-s.z,s.eachBefore(o),r)i.eachBefore(c);else{var l=i,u=i,d=i;i.eachBefore(function(e){e.x
${z(e).toString()} (${t.toFixed(1)}%)`}},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,animation:!1}},legend:{itemStyle:{color:g.value.textColor},itemHoverStyle:{color:g.value.textColorHover}},series:[{type:`pie`,name:r(`flow`),data:[{name:r(`downloadTotal`),y:l.latestConnectionMsg?.downloadTotal||0,color:g.value.seriesColors[0]},{name:r(`uploadTotal`),y:l.latestConnectionMsg?.uploadTotal||0,color:g.value.seriesColors[1]}]}]})),ne=m(()=>{let e=l.activeConnections,t=0,n=0,i=0;return e.forEach(e=>{let r=e.metadata.network?.toLowerCase()||``;r===`tcp`?t++:r===`udp`?n++:i++}),{chart:{type:`pie`,backgroundColor:g.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:r(`networkTypes`),style:{color:g.value.textColor}},tooltip:{pointFormatter(){let e=this.y||0,t=this.percentage||0;return`${this.name}: ${e} (${t.toFixed(1)}%)`}},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,animation:!1}},legend:{itemStyle:{color:g.value.textColor},itemHoverStyle:{color:g.value.textColorHover}},series:[{type:`pie`,name:r(`networkTypes`),data:[{name:r(`tcp`),y:t,color:g.value.seriesColors[0]},{name:r(`udp`),y:n,color:g.value.seriesColors[1]},...i>0?[{name:r(`other`),y:i,color:g.value.seriesColors[2]}]:[]]}]}}),re=m(()=>{let e=l.speedGroupByName,t=Object.entries(e).sort(([,e],[,t])=>t-e).slice(0,5),n=t.map(([e])=>e),i=t.map(([,e])=>e);return{chart:{type:`bar`,backgroundColor:g.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:r(`topProxies`),style:{color:g.value.textColor}},xAxis:{categories:n,labels:{style:{color:g.value.textColor}},lineColor:g.value.lineColor},yAxis:{title:{text:void 0},labels:{style:{color:g.value.textColor},formatter(){return`${z(this.value).toString()}/s`}},gridLineColor:g.value.gridLineColor,min:0},tooltip:{formatter(){return`${n[this.x]||this.x}
${z(this.y).toString()}/s`}},legend:{enabled:!1},plotOptions:{bar:{dataLabels:{enabled:!1},animation:!1}},series:[{type:`bar`,name:r(`traffic`),data:i,color:g.value.seriesColors[0]}]}}),I=o.trafficChartHistory.download.at(-1)?.[0]??0,ie=o.memoryChartHistory.at(-1)?.[0]??0,ae=o.connectionCountHistory.at(-1)?.[0]??0;return v(()=>o.latestTraffic,e=>{if(e&&_.value?.chartRef){let t=Date.now();t>I&&(_.value.chartRef.addPoints([{seriesIndex:0,time:t,value:e.down},{seriesIndex:1,time:t,value:e.up}]),I=t)}}),v(()=>o.latestMemory?.inuse,e=>{if(e&&b.value?.chartRef){let t=Date.now();t>ie&&(b.value.chartRef.addPoint(0,t,e),ie=t)}}),v(()=>l.latestConnectionMsg?.connections?.length,e=>{if(e!==void 0&&C.value?.chartRef){let t=Date.now();t>ae&&(C.value.chartRef.addPoint(0,t,e),ae=t)}}),(e,t)=>{let m=Te,g=Ae,v=Fe,x=Ct,k=Ht,A=Es,M=nl;return D(),s(`div`,rl,[a(`div`,il,[f(m,{label:i(r)(`upload`)},{default:y(()=>[h(S(p(i(o).latestTraffic?.up||0))+`/s `,1)]),_:1},8,[`label`]),f(m,{label:i(r)(`download`)},{default:y(()=>[h(S(p(i(o).latestTraffic?.down||0))+`/s `,1)]),_:1},8,[`label`]),f(m,{label:i(r)(`uploadTotal`)},{default:y(()=>[h(S(p(i(l).latestConnectionMsg?.uploadTotal||0)),1)]),_:1},8,[`label`]),f(m,{label:i(r)(`downloadTotal`)},{default:y(()=>[h(S(p(i(l).latestConnectionMsg?.downloadTotal||0)),1)]),_:1},8,[`label`]),f(m,{label:i(r)(`activeConnections`)},{default:y(()=>[h(S(i(l).latestConnectionMsg?.connections?.length||0),1)]),_:1},8,[`label`]),f(m,{label:i(r)(`memoryUsage`)},{default:y(()=>[h(S(p(i(o).latestMemory?.inuse||0)),1)]),_:1},8,[`label`])]),i(u).currentEndpoint?.url?(D(),s(`div`,al,[a(`span`,ol,S(i(r)(`connectedTo`))+`:`,1),a(`span`,sl,S(i(u).currentEndpoint?.url),1)])):T(``,!0),a(`div`,cl,[a(`div`,ll,[f(g,{ref_key:`trafficChartRef`,ref:_,title:i(r)(`traffic`),"series-config":i(w),"initial-data":i(ee),"is-loading":!i(o).latestTraffic},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),a(`div`,ul,[f(v,{options:i(P),"is-loading":!i(l).latestConnectionMsg?.connections?.length},null,8,[`options`,`is-loading`])]),a(`div`,dl,[f(g,{ref_key:`memoryChartRef`,ref:b,title:i(r)(`memory`),"series-config":i(E),"initial-data":i(O),"is-loading":!i(o).latestMemory},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),a(`div`,fl,[f(g,{ref_key:`connectionsChartRef`,ref:C,title:i(r)(`connectionsChart`),"series-config":i(j),"initial-data":i(te),"is-loading":!i(l).latestConnectionMsg?.connections?.length,"value-mode":`number`},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),a(`div`,pl,[f(v,{options:i(ne),"is-loading":!i(l).latestConnectionMsg?.connections?.length},null,8,[`options`,`is-loading`])]),a(`div`,ml,[f(v,{options:i(re),"is-loading":Object.keys(i(l).speedGroupByName).length===0},null,8,[`options`,`is-loading`])])]),a(`div`,hl,[f(x),f(k)]),a(`div`,gl,[a(`div`,{class:`flex cursor-pointer items-center justify-between`,onClick:t[0]||=e=>i(d).showNetworkTopology=!i(d).showNetworkTopology},[a(`h3`,_l,S(i(r)(`networkTopology`)),1),a(`button`,vl,[f(i(F),{class:n([`h-5 w-5 transition-transform`,{"rotate-180":i(d).showNetworkTopology}])},null,8,[`class`])])]),i(d).showNetworkTopology?(D(),c(A,{key:0,class:`mt-4`})):T(``,!0)]),f(M)])}}});export{yl as default};
\ No newline at end of file
+import{$ as e,C as t,Dt as n,E as r,Et as i,G as a,H as o,J as s,K as c,L as l,Mt as u,Ot as d,Q as f,V as p,W as m,Z as h,at as g,ct as _,dt as v,ft as y,ht as b,j as x,kt as S,lt as C,ot as w,pt as ee,q as T,rt as E,st as D,ut as O,x as k,yt as A}from"./DOvCTup-.js";import{t as j}from"./_v7-ePgP.js";import{t as M}from"./DaqTEuJW.js";import{t as N}from"./4rydX2E6.js";import{B as te,C as P,E as ne,F,O as re,R as I,a as ie,d as ae,g as oe,h as se,k as L,m as ce,n as le,o as ue,t as de,v as fe,x as pe,z as R}from"./DkKkiaBA.js";import{t as me}from"./CDMImveV.js";import{n as he,t as z}from"./BlP2MkkZ.js";import{t as ge}from"./BLyUHixQ.js";import{a as _e,d as ve,i as ye,l as be}from"./BpDbz5Be.js";var xe={class:`stat place-items-center px-2 py-3`},Se={class:`stat-title text-xs text-primary-content sm:text-sm`},Ce={class:`stat-value text-center text-lg whitespace-nowrap text-primary-content sm:text-xl lg:text-2xl`},we=e({__name:`TrafficWidget`,props:{label:{}},setup(e){return(t,n)=>(D(),s(`div`,xe,[a(`div`,Se,S(e.label),1),a(`div`,Ce,[C(t.$slots,`default`)])]))}}),Te=Object.assign(we,{__name:`TrafficWidget`}),Ee=u(ge(),1),De={class:`relative h-full w-full`},Oe={key:0,class:`absolute inset-0 flex items-center justify-center`},ke=e({__name:`RealtimeLineChart`,props:{title:{},seriesConfig:{},isLoading:{type:Boolean,default:!1},initialData:{default:()=>[]},valueMode:{default:`bytes`}},emits:[`chartReady`],setup(e,{expose:t,emit:r}){let i=e,o=r,c=(e,t=!1)=>i.valueMode===`number`?String(e):t?`${z(e).toString()}/s`:z(e).toString(),l=A(),u,d=M();function f(){let e=be();return{chart:{type:`areaspline`,animation:{duration:800,easing:`linear`},backgroundColor:e.backgroundColor},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:i.title,style:{color:e.textColor}},legend:{enabled:!0,itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{type:`datetime`,tickPixelInterval:100,labels:{style:{color:e.textColor},formatter(){let e=new Date(this.value);return`${e.getMinutes().toString().padStart(2,`0`)}:${e.getSeconds().toString().padStart(2,`0`)}`}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{title:{text:void 0},labels:{style:{color:e.textColor},formatter(){return c(this.value)}},gridLineColor:e.gridLineColor,min:0},tooltip:{shared:!0,formatter(){let e=new Date(this.x),t=`${`${e.getMinutes().toString().padStart(2,`0`)}:${e.getSeconds().toString().padStart(2,`0`)}`}
`;return this.points?.forEach(e=>{t+=`\u25CF ${e.series.name}: ${c(e.y,!0)}
`}),t}},plotOptions:{areaspline:{fillOpacity:.3,marker:{enabled:!1},lineWidth:2,states:{hover:{lineWidth:3}},threshold:null}},series:i.seriesConfig.map((t,n)=>({type:`areaspline`,name:t.name,color:t.color||e.seriesColors[n]||Ee.default.getOptions().colors?.[n]||`hsl(${n*120}, 70%, 50%)`,data:i.initialData?.[n]||[]}))}}let p={addPoint:(e,t,n)=>{if(u?.series[e]){let r=u.series[e].data.length>=10;u.series[e].addPoint([t,n],!0,r,{duration:800,easing:`linear`})}},addPoints:e=>{if(!u)return;let t=new Map;e.forEach(e=>{t.has(e.seriesIndex)||t.set(e.seriesIndex,[]),t.get(e.seriesIndex).push({time:e.time,value:e.value})}),t.forEach((e,t)=>{let n=u?.series[t];n&&e.forEach(e=>{let t=n.data.length>=10;n.addPoint([e.time,e.value],!1,t)})}),u.redraw({duration:800,easing:`linear`})},setSeriesData:(e,t)=>{u?.series[e]&&u.series[e].setData(t,!0,!1,!1)}};return t({chartRef:p}),g(()=>{if(!l.value)return;u=Ee.default.chart(l.value,f()),o(`chartReady`,p);let e=new ResizeObserver(()=>{u&&l.value&&u.setSize(l.value.clientWidth,l.value.clientHeight,!0)});e.observe(l.value),w(()=>{e.disconnect(),u?.destroy()})}),v(()=>i.title,e=>{u&&u.setTitle({text:e})}),v(()=>i.seriesConfig,e=>{u&&(e.forEach((e,t)=>{u.series[t]&&u.series[t].update({type:`areaspline`,name:e.name,color:e.color},!1)}),u.redraw())},{deep:!0}),v(()=>d.curTheme,()=>{requestAnimationFrame(()=>{if(u){let e=be();u.update({chart:{backgroundColor:e.backgroundColor},title:{style:{color:e.textColor}},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{labels:{style:{color:e.textColor}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{labels:{style:{color:e.textColor}},gridLineColor:e.gridLineColor}},!0,!1,!1)}})}),(t,r)=>(D(),s(`div`,De,[e.isLoading?(D(),s(`div`,Oe,[...r[0]||=[a(`span`,{class:`loading loading-lg loading-dots`},null,-1)]])):T(``,!0),a(`div`,{ref_key:`containerRef`,ref:l,class:n([`h-full w-full`,{"opacity-0":e.isLoading}])},null,2)]))}}),Ae=Object.assign(ke,{__name:`RealtimeLineChart`}),je=u(ge(),1),Me={class:`relative h-full w-full`},Ne={key:0,class:`absolute inset-0 flex items-center justify-center`},Pe=e({__name:`HighchartsAutoSize`,props:{options:{},isLoading:{type:Boolean,default:!1}},setup(e){let t=e,r=A(),i,o=M();function c(){let e=be();return{chart:{animation:{duration:300},backgroundColor:e.backgroundColor},credits:{enabled:!1},accessibility:{enabled:!1},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},title:{style:{color:e.textColor}}}}return g(()=>{if(!r.value)return;let e=c(),n={...e,...t.options,chart:{...e.chart,...t.options.chart}};i=je.default.chart(r.value,n);let a=r.value.clientWidth,o=r.value.clientHeight,s=new ResizeObserver(()=>{if(i&&r.value){let e=r.value.clientWidth,t=r.value.clientHeight;(e!==a||t!==o)&&(a=e,o=t,i.setSize(e,t,!1))}});s.observe(r.value),w(()=>{s.disconnect(),i?.destroy()})}),v(()=>t.options,e=>{i&&i.update(e,!0,!1,!1)},{deep:!0}),v(()=>o.curTheme,()=>{requestAnimationFrame(()=>{if(i){let e=be();i.update({chart:{backgroundColor:e.backgroundColor},title:{style:{color:e.textColor}},legend:{itemStyle:{color:e.textColor},itemHoverStyle:{color:e.textColorHover}},xAxis:{labels:{style:{color:e.textColor}},lineColor:e.lineColor,tickColor:e.tickColor},yAxis:{labels:{style:{color:e.textColor}},gridLineColor:e.gridLineColor}},!0,!1,!1)}})}),(t,i)=>(D(),s(`div`,Me,[e.isLoading?(D(),s(`div`,Ne,[...i[0]||=[a(`span`,{class:`loading loading-lg loading-dots`},null,-1)]])):T(``,!0),a(`div`,{ref_key:`containerRef`,ref:r,class:n([`h-full w-full`,{"opacity-0":e.isLoading}])},null,2)]))}}),Fe=Object.assign(Pe,{__name:`HighchartsAutoSize`}),Ie={"ip.sb":`https://api.ip.sb/geoip`,"ipwho.is":`https://ipwho.is/`,"ipapi.is":`https://api.ipapi.is/`};function Le(e){return{ip:e.ip,country:e.country,city:e.city,asn:e.asn,org:e.asn_organization}}function Re(e){return{ip:e.ip,country:e.country,countryCode:e.country_code,city:e.city,region:e.region,asn:e.connection?.asn,org:e.connection?.org,isp:e.connection?.isp,latitude:e.latitude,longitude:e.longitude,timezone:e.timezone?.id}}function ze(e){return{ip:e.ip,country:e.location?.country,countryCode:e.location?.country_code,city:e.location?.city,region:e.location?.state,asn:e.asn?.asn,org:e.asn?.org,isProxy:e.is_proxy,isVPN:e.is_vpn,latitude:e.location?.latitude,longitude:e.location?.longitude,timezone:e.location?.timezone}}async function Be(e){let t=Ie[e],n=await me.get(t,{timeout:1e4}).json();switch(e){case`ip.sb`:return Le(n);case`ipwho.is`:return Re(n);case`ipapi.is`:return ze(n);default:throw Error(`Unknown IP provider: ${e}`)}}function Ve(){let e=A(`ip.sb`),t=A(null),n=A(!1),r=A(null);async function i(i){let a=i??e.value;n.value=!0,r.value=null;try{t.value=await Be(a),e.value=a}catch(e){r.value=e instanceof Error?e.message:`Failed to fetch IP info`,t.value=null}finally{n.value=!1}}return{currentProvider:e,ipInfo:t,isLoading:n,error:r,fetchIP:i}}var He={class:`card bg-base-200 p-4 shadow-sm`},Ue={class:`mb-3 flex items-center justify-between`},We={class:`flex items-center gap-2`},Ge={class:`font-semibold`},Ke={class:`flex items-center gap-2`},qe=[`value`],Je=[`value`],Ye=[`disabled`],Xe={key:0,class:`flex justify-center py-4`},Ze={key:1,class:`alert alert-error`},Qe={key:2,class:`space-y-2`},$e={class:`flex items-center justify-between gap-2`},et={class:`shrink-0 text-base-content/60`},tt=[`title`],nt={key:0,class:`flex items-center justify-between gap-2`},rt={class:`shrink-0 text-base-content/60`},it={class:`truncate`},at={key:1,class:`flex items-center justify-between gap-2`},ot={class:`shrink-0 text-base-content/60`},st={class:`truncate`},ct={key:2,class:`flex items-center justify-between gap-2`},lt={class:`shrink-0 text-base-content/60`},ut=[`title`],dt={key:3,class:`flex items-center justify-between gap-2`},ft={class:`truncate font-mono`},pt={key:4,class:`flex items-center justify-between gap-2`},mt=[`title`],ht={key:5,class:`flex items-center justify-between`},gt={class:`text-base-content/60`},_t={class:`flex gap-1`},vt={key:0,class:`badge badge-sm badge-warning`},yt={key:1,class:`badge badge-sm badge-warning`},bt={key:2,class:`badge badge-sm badge-success`},xt={key:3,class:`py-4 text-center text-base-content/60`},St=e({__name:`IPInfoCard`,setup(e){let{t}=k(),{currentProvider:r,ipInfo:c,isLoading:l,error:u,fetchIP:d}=Ve(),p=[{value:`ip.sb`,label:`IP.SB`},{value:`ipwho.is`,label:`ipwho.is`},{value:`ipapi.is`,label:`ipapi.is`}];g(()=>{d()});function m(e){let t=e.target;d(t.value)}return(e,h)=>(D(),s(`div`,He,[a(`div`,Ue,[a(`div`,We,[f(i(ie),{class:`h-5 w-5 text-primary`}),a(`h3`,Ge,S(i(t)(`currentIP`)),1)]),a(`div`,Ke,[a(`select`,{value:i(r),class:`select-bordered select select-sm`,onChange:m},[(D(),s(o,null,_(p,e=>a(`option`,{key:e.value,value:e.value},S(e.label),9,Je)),64))],40,qe),a(`button`,{class:n([`btn btn-circle btn-ghost btn-sm`,{"animate-spin":i(l)}]),disabled:i(l),onClick:h[0]||=e=>i(d)()},[f(i(ce),{class:`h-4 w-4`})],10,Ye)])]),i(l)?(D(),s(`div`,Xe,[...h[1]||=[a(`span`,{class:`loading loading-md loading-spinner`},null,-1)]])):i(u)?(D(),s(`div`,Ze,[a(`span`,null,S(i(u)),1)])):i(c)?(D(),s(`div`,Qe,[a(`div`,$e,[a(`span`,et,S(i(t)(`ipAddress`)),1),a(`span`,{class:`truncate font-mono font-semibold`,title:i(c).ip},S(i(c).ip),9,tt)]),i(c).country?(D(),s(`div`,nt,[a(`span`,rt,S(i(t)(`country`)),1),a(`span`,it,S(i(c).country),1)])):T(``,!0),i(c).city?(D(),s(`div`,at,[a(`span`,ot,S(i(t)(`city`)),1),a(`span`,st,S(i(c).city),1)])):T(``,!0),i(c).org?(D(),s(`div`,ct,[a(`span`,lt,S(i(t)(`organization`)),1),a(`span`,{class:`truncate text-right`,title:i(c).org},S(i(c).org),9,ut)])):T(``,!0),i(c).asn?(D(),s(`div`,dt,[h[2]||=a(`span`,{class:`shrink-0 text-base-content/60`},`ASN`,-1),a(`span`,ft,`AS`+S(i(c).asn),1)])):T(``,!0),i(c).isp?(D(),s(`div`,pt,[h[3]||=a(`span`,{class:`shrink-0 text-base-content/60`},`ISP`,-1),a(`span`,{class:`truncate text-right`,title:i(c).isp},S(i(c).isp),9,mt)])):T(``,!0),i(c).isProxy!==void 0||i(c).isVPN!==void 0?(D(),s(`div`,ht,[a(`span`,gt,S(i(t)(`proxyDetection`)),1),a(`div`,_t,[i(c).isProxy?(D(),s(`span`,vt,` Proxy `)):T(``,!0),i(c).isVPN?(D(),s(`span`,yt,` VPN `)):T(``,!0),!i(c).isProxy&&!i(c).isVPN?(D(),s(`span`,bt,S(i(t)(`clean`)),1)):T(``,!0)])])):T(``,!0)])):(D(),s(`div`,xt,S(i(t)(`noData`)),1))]))}}),Ct=Object.assign(St,{__name:`IPInfoCard`}),wt=[{name:`Google`,url:`https://www.google.com/generate_204`},{name:`Cloudflare`,url:`https://www.cloudflare.com/cdn-cgi/trace`},{name:`GitHub`,url:`https://github.com`}];async function Tt(e){try{let t=performance.now();await fetch(e,{method:`HEAD`,mode:`no-cors`,cache:`no-store`});let n=performance.now();return Math.round(n-t)}catch{return null}}function Et(){let e=A(new Map),t=A(!1),n=A(wt);async function r(t,n){e.value.set(n,{url:n,latency:null,status:`pending`,timestamp:Date.now()});let r=await Tt(n);return e.value.set(n,{url:n,latency:r,status:r===null?`error`:`success`,timestamp:Date.now()}),r}async function i(){t.value=!0;let e=n.value.map(e=>r(e.name,e.url));await Promise.all(e),t.value=!1}function a(t){return e.value.get(t)}return{results:e,isTestingAll:t,targets:n,testLatency:r,testAllLatencies:i,getResult:a,allResults:m(()=>n.value.map(t=>({name:t.name,url:t.url,result:e.value.get(t.url)}))),averageLatency:m(()=>{let t=Array.from(e.value.values()).filter(e=>e.status===`success`&&e.latency!==null);if(t.length===0)return null;let n=t.reduce((e,t)=>e+(t.latency??0),0);return Math.round(n/t.length)})}}var Dt={class:`card bg-base-200 p-4 shadow-sm`},Ot={class:`mb-3 flex items-center justify-between`},kt={class:`flex items-center gap-2`},At={class:`font-semibold`},jt={class:`flex items-center gap-2`},Mt=[`disabled`],Nt={class:`space-y-3`},Pt={class:`w-20 shrink-0 truncate text-sm`},Ft={class:`relative h-4 flex-1 overflow-hidden rounded-full bg-base-300`},It={class:`w-16 shrink-0 text-right font-mono text-sm`},Lt={key:0,class:`loading loading-xs loading-spinner`},Rt={key:1},zt={key:2,class:`text-error`},Bt={key:3,class:`text-base-content/40`},Vt=e({__name:`LatencyCard`,setup(e){let{t}=k(),{allResults:r,isTestingAll:c,testAllLatencies:l,averageLatency:u}=Et();g(()=>{l()});function p(e){return e==null?`badge-ghost`:e<100?`badge-success`:e<300?`badge-warning`:`badge-error`}function m(e){return e==null?`0%`:`${Math.min(e/500*100,100)}%`}function h(e){return e==null?`bg-base-300`:e<100?`bg-success`:e<300?`bg-warning`:`bg-error`}return(e,g)=>(D(),s(`div`,Dt,[a(`div`,Ot,[a(`div`,kt,[f(i(te),{class:`h-5 w-5 text-primary`}),a(`h3`,At,S(i(t)(`networkLatency`)),1)]),a(`div`,jt,[i(u)===null?T(``,!0):(D(),s(`span`,{key:0,class:n([`badge`,p(i(u))])},S(i(t)(`average`))+`: `+S(i(u))+`ms `,3)),a(`button`,{class:n([`btn btn-circle btn-ghost btn-sm`,{"animate-spin":i(c)}]),disabled:i(c),onClick:g[0]||=(...e)=>i(l)&&i(l)(...e)},[f(i(ce),{class:`h-4 w-4`})],10,Mt)])]),a(`div`,Nt,[(D(!0),s(o,null,_(i(r),e=>(D(),s(`div`,{key:e.url,class:`flex items-center gap-3`},[a(`span`,Pt,S(e.name),1),a(`div`,Ft,[a(`div`,{class:n([`absolute inset-y-0 left-0 rounded-full transition-all duration-500`,h(e.result?.latency)]),style:d({width:m(e.result?.latency)})},null,6)]),a(`span`,It,[e.result?.status===`pending`?(D(),s(`span`,Lt)):e.result?.status===`success`?(D(),s(`span`,Rt,S(e.result.latency)+`ms `,1)):e.result?.status===`error`?(D(),s(`span`,zt,S(i(t)(`timeout`)),1)):(D(),s(`span`,Bt,`-`))])]))),128))])]))}}),Ht=Object.assign(Vt,{__name:`LatencyCard`}),Ut={value:()=>{}};function Wt(){for(var e=0,t=arguments.length,n={},r;e=0&&(e=e.slice(0,t)),!e||e===`start`})}function Za(e,t,n){var r,i,a=Xa(t)?_a:X;return function(){var o=a(this,e),s=o.on;s!==r&&(i=(r=s).copy()).on(t,n),o.on=i}}function Qa(e,t){var n=this._id;return arguments.length<2?Z(this.node(),n).on.on(e):this.each(Za(n,e,t))}function $a(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function eo(){return this.on(`end.remove`,$a(this._id))}function to(e){var t=this._name,n=this._id;typeof e!=`function`&&(e=nn(e));for(var r=this._groups,i=r.length,a=Array(i),o=0;o=0;)t+=n[r].value;e.value=t}function Fo(){return this.eachAfter(Po)}function Io(e,t){let n=-1;for(let r of this)e.call(t,r,++n,this);return this}function Lo(e,t){for(var n=this,r=[n],i,a,o=-1;n=r.pop();)if(e.call(t,n,++o,this),i=n.children)for(a=i.length-1;a>=0;--a)r.push(i[a]);return this}function Ro(e,t){for(var n=this,r=[n],i=[],a,o,s,c=-1;n=r.pop();)if(i.push(n),a=n.children)for(o=0,s=a.length;o=0;)n+=r[i].value;t.value=n})}function Vo(e){return this.eachBefore(function(t){t.children&&t.children.sort(e)})}function Ho(e){for(var t=this,n=Uo(t,e),r=[t];t!==n;)t=t.parent,r.push(t);for(var i=r.length;e!==n;)r.splice(i,0,e),e=e.parent;return r}function Uo(e,t){if(e===t)return e;var n=e.ancestors(),r=t.ancestors(),i=null;for(e=n.pop(),t=r.pop();e===t;)i=e,e=n.pop(),t=r.pop();return i}function Wo(){for(var e=this,t=[e];e=e.parent;)t.push(e);return t}function Go(){return Array.from(this)}function Ko(){var e=[];return this.eachBefore(function(t){t.children||e.push(t)}),e}function qo(){var e=this,t=[];return e.each(function(n){n!==e&&t.push({source:n.parent,target:n})}),t}function*Jo(){var e=this,t,n=[e],r,i,a;do for(t=n.reverse(),n=[];e=t.pop();)if(yield e,r=e.children)for(i=0,a=r.length;i=0;--s)i.push(a=o[s]=new ts(o[s])),a.parent=r,a.depth=r.depth+1;return n.eachBefore(es)}function Xo(){return Yo(this).eachBefore($o)}function Zo(e){return e.children}function Qo(e){return Array.isArray(e)?e[1]:null}function $o(e){e.data.value!==void 0&&(e.value=e.data.value),e.data=e.data.data}function es(e){var t=0;do e.height=t;while((e=e.parent)&&e.height<++t)}function ts(e){this.data=e,this.depth=this.height=0,this.parent=null}ts.prototype=Yo.prototype={constructor:ts,count:Fo,each:Io,eachAfter:Ro,eachBefore:Lo,find:zo,sum:Bo,sort:Vo,path:Ho,ancestors:Wo,descendants:Go,leaves:Ko,links:qo,copy:Xo,[Symbol.iterator]:Jo};function ns(e,t){return e.parent===t.parent?1:2}function rs(e){var t=e.children;return t?t[0]:e.t}function is(e){var t=e.children;return t?t[t.length-1]:e.t}function as(e,t,n){var r=n/(t.i-e.i);t.c-=r,t.s+=n,e.c+=r,t.z+=n,t.m+=n}function os(e){for(var t=0,n=0,r=e.children,i=r.length,a;--i>=0;)a=r[i],a.z+=t,a.m+=t,t+=a.s+(n+=a.c)}function ss(e,t,n){return e.a.parent===t.parent?e.a:n}function cs(e,t){this._=e,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=t}cs.prototype=Object.create(ts.prototype);function ls(e){for(var t=new cs(e,0),n,r=[t],i,a,o,s;n=r.pop();)if(a=n._.children)for(n.children=Array(s=a.length),o=s-1;o>=0;--o)r.push(i=n.children[o]=new cs(a[o],o)),i.parent=n;return(t.parent=new cs(null,0)).children=[t],t}function us(){var e=ns,t=1,n=1,r=null;function i(i){var s=ls(i);if(s.eachAfter(a),s.parent.m=-s.z,s.eachBefore(o),r)i.eachBefore(c);else{var l=i,u=i,d=i;i.eachBefore(function(e){e.x
${z(e).toString()} (${t.toFixed(1)}%)`}},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,animation:!1}},legend:{itemStyle:{color:g.value.textColor},itemHoverStyle:{color:g.value.textColorHover}},series:[{type:`pie`,name:r(`flow`),data:[{name:r(`downloadTotal`),y:l.latestConnectionMsg?.downloadTotal||0,color:g.value.seriesColors[0]},{name:r(`uploadTotal`),y:l.latestConnectionMsg?.uploadTotal||0,color:g.value.seriesColors[1]}]}]})),ne=m(()=>{let e=l.activeConnections,t=0,n=0,i=0;return e.forEach(e=>{let r=e.metadata.network?.toLowerCase()||``;r===`tcp`?t++:r===`udp`?n++:i++}),{chart:{type:`pie`,backgroundColor:g.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:r(`networkTypes`),style:{color:g.value.textColor}},tooltip:{pointFormatter(){let e=this.y||0,t=this.percentage||0;return`${this.name}: ${e} (${t.toFixed(1)}%)`}},plotOptions:{pie:{allowPointSelect:!0,cursor:`pointer`,dataLabels:{enabled:!1},showInLegend:!0,animation:!1}},legend:{itemStyle:{color:g.value.textColor},itemHoverStyle:{color:g.value.textColorHover}},series:[{type:`pie`,name:r(`networkTypes`),data:[{name:r(`tcp`),y:t,color:g.value.seriesColors[0]},{name:r(`udp`),y:n,color:g.value.seriesColors[1]},...i>0?[{name:r(`other`),y:i,color:g.value.seriesColors[2]}]:[]]}]}}),re=m(()=>{let e=l.speedGroupByName,t=Object.entries(e).sort(([,e],[,t])=>t-e).slice(0,5),n=t.map(([e])=>e),i=t.map(([,e])=>e);return{chart:{type:`bar`,backgroundColor:g.value.backgroundColor,animation:!1},credits:{enabled:!1},accessibility:{enabled:!1},title:{text:r(`topProxies`),style:{color:g.value.textColor}},xAxis:{categories:n,labels:{style:{color:g.value.textColor}},lineColor:g.value.lineColor},yAxis:{title:{text:void 0},labels:{style:{color:g.value.textColor},formatter(){return`${z(this.value).toString()}/s`}},gridLineColor:g.value.gridLineColor,min:0},tooltip:{formatter(){return`${n[this.x]||this.x}
${z(this.y).toString()}/s`}},legend:{enabled:!1},plotOptions:{bar:{dataLabels:{enabled:!1},animation:!1}},series:[{type:`bar`,name:r(`traffic`),data:i,color:g.value.seriesColors[0]}]}}),I=o.trafficChartHistory.download.at(-1)?.[0]??0,ie=o.memoryChartHistory.at(-1)?.[0]??0,ae=o.connectionCountHistory.at(-1)?.[0]??0;return v(()=>o.latestTraffic,e=>{if(e&&_.value?.chartRef){let t=Date.now();t>I&&(_.value.chartRef.addPoints([{seriesIndex:0,time:t,value:e.down},{seriesIndex:1,time:t,value:e.up}]),I=t)}}),v(()=>o.latestMemory?.inuse,e=>{if(e&&b.value?.chartRef){let t=Date.now();t>ie&&(b.value.chartRef.addPoint(0,t,e),ie=t)}}),v(()=>l.latestConnectionMsg?.connections?.length,e=>{if(e!==void 0&&C.value?.chartRef){let t=Date.now();t>ae&&(C.value.chartRef.addPoint(0,t,e),ae=t)}}),(e,t)=>{let m=Te,g=Ae,v=Fe,x=Ct,k=Ht,A=Es,M=nl;return D(),s(`div`,rl,[a(`div`,il,[f(m,{label:i(r)(`upload`)},{default:y(()=>[h(S(p(i(o).latestTraffic?.up||0))+`/s `,1)]),_:1},8,[`label`]),f(m,{label:i(r)(`download`)},{default:y(()=>[h(S(p(i(o).latestTraffic?.down||0))+`/s `,1)]),_:1},8,[`label`]),f(m,{label:i(r)(`uploadTotal`)},{default:y(()=>[h(S(p(i(l).latestConnectionMsg?.uploadTotal||0)),1)]),_:1},8,[`label`]),f(m,{label:i(r)(`downloadTotal`)},{default:y(()=>[h(S(p(i(l).latestConnectionMsg?.downloadTotal||0)),1)]),_:1},8,[`label`]),f(m,{label:i(r)(`activeConnections`)},{default:y(()=>[h(S(i(l).latestConnectionMsg?.connections?.length||0),1)]),_:1},8,[`label`]),f(m,{label:i(r)(`memoryUsage`)},{default:y(()=>[h(S(p(i(o).latestMemory?.inuse||0)),1)]),_:1},8,[`label`])]),i(u).currentEndpoint?.url?(D(),s(`div`,al,[a(`span`,ol,S(i(r)(`connectedTo`))+`:`,1),a(`span`,sl,S(i(u).currentEndpoint?.url),1)])):T(``,!0),a(`div`,cl,[a(`div`,ll,[f(g,{ref_key:`trafficChartRef`,ref:_,title:i(r)(`traffic`),"series-config":i(w),"initial-data":i(ee),"is-loading":!i(o).latestTraffic},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),a(`div`,ul,[f(v,{options:i(P),"is-loading":!i(l).latestConnectionMsg?.connections?.length},null,8,[`options`,`is-loading`])]),a(`div`,dl,[f(g,{ref_key:`memoryChartRef`,ref:b,title:i(r)(`memory`),"series-config":i(E),"initial-data":i(O),"is-loading":!i(o).latestMemory},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),a(`div`,fl,[f(g,{ref_key:`connectionsChartRef`,ref:C,title:i(r)(`connectionsChart`),"series-config":i(j),"initial-data":i(te),"is-loading":!i(l).latestConnectionMsg?.connections?.length,"value-mode":`number`},null,8,[`title`,`series-config`,`initial-data`,`is-loading`])]),a(`div`,pl,[f(v,{options:i(ne),"is-loading":!i(l).latestConnectionMsg?.connections?.length},null,8,[`options`,`is-loading`])]),a(`div`,ml,[f(v,{options:i(re),"is-loading":Object.keys(i(l).speedGroupByName).length===0},null,8,[`options`,`is-loading`])])]),a(`div`,hl,[f(x),f(k)]),a(`div`,gl,[a(`div`,{class:`flex cursor-pointer items-center justify-between`,onClick:t[0]||=e=>i(d).showNetworkTopology=!i(d).showNetworkTopology},[a(`h3`,_l,S(i(r)(`networkTopology`)),1),a(`button`,vl,[f(i(F),{class:n([`h-5 w-5 transition-transform`,{"rotate-180":i(d).showNetworkTopology}])},null,8,[`class`])])]),i(d).showNetworkTopology?(D(),c(A,{key:0,class:`mt-4`})):T(``,!0)]),f(M)])}}});export{yl as default};
\ No newline at end of file
diff --git a/dashboard/public/_nuxt/BtSopSH8.js b/dashboard/public/_nuxt/CAfhdv_2.js
similarity index 98%
rename from dashboard/public/_nuxt/BtSopSH8.js
rename to dashboard/public/_nuxt/CAfhdv_2.js
index dbf01e0..2df0e35 100644
--- a/dashboard/public/_nuxt/BtSopSH8.js
+++ b/dashboard/public/_nuxt/CAfhdv_2.js
@@ -1,4 +1,4 @@
-import{a as e,n as t,r as n}from"./Bk2nYVL8.js";import{$ as r,At as i,Dt as a,Et as o,G as s,H as c,J as l,K as u,Mt as d,Ot as f,Q as p,St as m,Tt as h,W as g,ct as _,dt as v,ft as y,gt as b,ht as ee,j as te,kt as x,pt as S,q as C,st as w,x as T,yt as E,z as ne}from"./DB3QyUG1.js";import"./_v7-ePgP.js";import{t as re}from"./BGrMhtLn.js";import{p as D}from"./CdfRVy8H.js";import"./A1BmUOM0.js";import{c as ie,m as ae}from"./CAhuthQu.js";import{t as oe}from"./Ca1zbqff.js";function O(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o;n.key&&n.debug?.call(n)&&(o=Date.now());let s=e();if(!(s.length!==r.length||s.some((e,t)=>r[t]!==e)))return i;r=s;let c;if(n.key&&n.debug?.call(n)&&(c=Date.now()),i=t(...s),n.key&&n.debug?.call(n)){let e=Math.round((Date.now()-o)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,i=(e,t)=>{for(e=String(e);e.length1){s=a;let e=l[s],r=e===void 0?void 0:c[e];u=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?c[i-1]:this.getFurthestMeasurement(c,i);u=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&this.laneAssignments.set(i,s)}let d=o.get(e),f=typeof d==`number`?d:this.options.estimateSize(i),p=u+f;c[i]={index:i,start:u,size:f,end:p,key:e,lane:s},l[s]=i}return this.measurementsCache=c,c},{key:!1,debug:()=>this.options.debug}),this.calculateRange=O(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>this.range=e.length>0&&t>0?U({measurements:e,outerSize:t,scrollOffset:n,lanes:r}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=O(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;let i=r.key,a=this.elementsCache.get(i);a!==e&&(a&&this.observer.unobserve(a),this.observer.observe(e),this.elementsCache.set(i,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);r!==0&&((this.shouldAdjustScrollPositionOnItemSizeChange===void 0?n.start32))return a;if(r===41){if(o===0)break;o--}i++}return t===i||o!==0?a:(a.str=F(e.slice(t,i)),a.pos=i,a.ok=!0,a)}function vt(e,t,n,r){let i,a=t,o={ok:!1,can_continue:!1,pos:0,str:``,marker:0};if(r)o.str=r.str,o.marker=r.marker;else{if(a>=n)return o;let r=e.charCodeAt(a);if(r!==34&&r!==39&&r!==40)return o;t++,a++,r===40&&(r=41),o.marker=r}for(;a`+I(a.content)+``},V.code_block=function(e,t,n,r,i){let a=e[t];return`
`},V.fence=function(e,t,n,r,i){let a=e[t],o=a.info?F(a.info).trim():``,s=``,c=``;if(o){let e=o.split(/(\s+)/g);s=e[0],c=e.slice(2).join(``)}let l;if(l=n.highlight&&n.highlight(a.content,s,c)||I(a.content),l.indexOf(``+I(e[t].content)+`
\n`}return`${l}
\n`},V.image=function(e,t,n,r,i){let a=e[t];return a.attrs[a.attrIndex(`alt`)][1]=i.renderInlineAsText(a.children,n,r),i.renderToken(e,t,n)},V.hardbreak=function(e,t,n){return n.xhtmlOut?`${l}
diff --git a/dashboard/public/_nuxt/DB3QyUG1.js b/dashboard/public/_nuxt/DOvCTup-.js
similarity index 99%
rename from dashboard/public/_nuxt/DB3QyUG1.js
rename to dashboard/public/_nuxt/DOvCTup-.js
index 337bd75..ab6dd48 100644
--- a/dashboard/public/_nuxt/DB3QyUG1.js
+++ b/dashboard/public/_nuxt/DOvCTup-.js
@@ -1,6 +1,6 @@
-const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./BDrZyX6e.js","./Ca1zbqff.js","./5MMMtqqF.js","./6QyW-nVe.js","./CdfRVy8H.js","./_v7-ePgP.js","./BGrMhtLn.js","./B_eM63Cy.js","./BtSopSH8.js","./A1BmUOM0.js","./CDMImveV.js","./Bk2nYVL8.js","./CAhuthQu.js","./D5cPuKwi.js","./DfiEaVJo.js","./BgICMvmn.js","./CEumzr83.js","./DAS1YOZ7.js","./RfkGMhKY.js","./Ds3PMqWb.js","./DZEHn5jx.js","./DVG4eZ5B.js","./Wo8RWyMo.js","./BWQ9TmQI.js","./CDkZXm8O.js","./0fYsCwSZ.js","./4Us7Cdat.js","./error-404.ajhBH0J0.css","./CryS42-p.js","./error-500.CkMssXr1.css"])))=>i.map(i=>d[i]);
+const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./Cbl-HvWy.js","./NIr0cT37.js","./DdPOBIP_.js","./CJ3kh3xA.js","./DkKkiaBA.js","./_v7-ePgP.js","./DaqTEuJW.js","./BrukVZU9.js","./CAfhdv_2.js","./CZdbW3fS.js","./CDMImveV.js","./B7D9IcDw.js","./BpDbz5Be.js","./CNeVT8bc.js","./B0oclHwM.js","./DGEvsBiX.js","./Cqvf2RiX.js","./C_E54F3Z.js","./BlP2MkkZ.js","./4rydX2E6.js","./C0BTvwsH.js","./BLyUHixQ.js","./BrGTwNTv.js","./CryL-Vnb.js","./BeSoyRdk.js","./1oRWw4hi.js","./4Us7Cdat.js","./error-404.ajhBH0J0.css","./Do-mkOlF.js","./error-500.CkMssXr1.css"])))=>i.map(i=>d[i]);
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n&&t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();function u(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var d={},f=[],p=()=>{},m=()=>!1,h=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),g=e=>e.startsWith(`onUpdate:`),_=Object.assign,v=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},y=Object.prototype.hasOwnProperty,b=(e,t)=>y.call(e,t),x=Array.isArray,S=e=>ne(e)===`[object Map]`,C=e=>ne(e)===`[object Set]`,w=e=>ne(e)===`[object Date]`,T=e=>ne(e)===`[object RegExp]`,E=e=>typeof e==`function`,D=e=>typeof e==`string`,O=e=>typeof e==`symbol`,k=e=>typeof e==`object`&&!!e,ee=e=>(k(e)||E(e))&&E(e.then)&&E(e.catch),te=Object.prototype.toString,ne=e=>te.call(e),re=e=>ne(e).slice(8,-1),ie=e=>ne(e)===`[object Object]`,ae=e=>D(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,oe=u(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),se=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ce=/-\w/g,A=se(e=>e.replace(ce,e=>e.slice(1).toUpperCase())),le=/\B([A-Z])/g,j=se(e=>e.replace(le,`-$1`).toLowerCase()),ue=se(e=>e.charAt(0).toUpperCase()+e.slice(1)),de=se(e=>e?`on${ue(e)}`:``),fe=(e,t)=>!Object.is(e,t),pe=(e,...t)=>{for(let n=0;n