vendor: 4,802 bytes, lines 1-9
1var Rh=Object.defineProperty;var fu=e=>{throw TypeError(e)};var Ch=(e,t,n)=>t in e?Rh(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Lr=(e,t,n)=>Ch(e,typeof t!="symbol"?t+"":t,n),ji=(e,t,n)=>t.has(e)||fu("Cannot "+n);var _=(e,t,n)=>(ji(e,t,"read from private field"),n?n.call(e):t.get(e)),D=(e,t,n)=>t.has(e)?fu("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),L=(e,t,n,a)=>(ji(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n),xe=(e,t,n)=>(ji(e,t,"access private method"),n);var Fa=(e,t,n,a)=>({set _(s){L(e,t,s,n)},get _(){return _(e,t,a)}});function hd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var fd={exports:{}},Js={},gd={exports:{}},q={};/** 2 * @license React 3 * react.production.min.js 4 * 5 * Copyright (c) Facebook, Inc. and its affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var Sa=Symbol.for("react.element"),Ih=Symbol.for("react.portal"),Fh=Symbol.for("react.fragment"),Lh=Symbol.for("react.strict_mode"),Mh=Symbol.for("react.profiler"),Ah=Symbol.for("react.provider"),qh=Symbol.for("react.context"),Dh=Symbol.for("react.forward_ref"),Oh=Symbol.for("react.suspense"),Hh=Symbol.for("react.memo"),Uh=Symbol.for("react.lazy"),gu=Symbol.iterator;function Vh(e){return e===null||typeof e!="object"?null:(e=gu&&e[gu]||e["@@iterator"],typeof e=="function"?e:null)}var xd={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},vd=Object.assign,bd={};function wn(e,t,n){this.props=e,this.context=t,this.refs=bd,this.updater=n||xd}wn.prototype.isReactComponent={};wn.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};wn.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function yd(){}yd.prototype=wn.prototype;function io(e,t,n){this.props=e,this.context=t,this.refs=bd,this.updater=n||xd}var lo=io.prototype=new yd;lo.constructor=io;vd(lo,wn.prototype);lo.isPureReactComponent=!0;var xu=Array.isArray,jd=Object.prototype.hasOwnProperty,oo={current:null},wd={key:!0,ref:!0,__self:!0,__source:!0};function Sd(e,t,n){var a,s={},i=null,l=null;if(t!=null)for(a in t.ref!==void 0&&(l=t.ref),t.key!==void 0&&(i=""+t.key),t)jd.call(t,a)&&!wd.hasOwnProperty(a)&&(s[a]=t[a]);var o=arguments.length-2;if(o===1)s.children=n;else if(1<o){for(var u=Array(o),c=0;c<o;c++)u[c]=arguments[c+2];s.children=u}if(e&&e.defaultProps)for(a in o=e.defaultProps,o)s[a]===void 0&&(s[a]=o[a]);return{$$typeof:Sa,type:e,key:i,ref:l,props:s,_owner:oo.current}}function Bh(e,t){return{$$typeof:Sa,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function uo(e){return typeof e=="object"&&e!==null&&e.$$typeof===Sa}function Wh(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var vu=/\/+/g;function wi(e,t){return typeof e=="object"&&e!==null&&e.key!=null?Wh(""+e.key):t.toString(36)}function is(e,t,n,a,s){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var l=!1;if(e===null)l=!0;else switch(i){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case Sa:case Ih:l=!0}}if(l)return l=e,s=s(l),e=a===""?"."+wi(l,0):a,xu(s)?(n="",e!=null&&(n=e.replace(vu,"$&/")+"/"),is(s,t,n,"",function(c){return c})):s!=null&&(uo(s)&&(s=Bh(s,n+(!s.key||l&&l.key===s.key?"":(""+s.key).replace(vu,"$&/")+"/")+e)),t.push(s)),1;if(l=0,a=a===""?".":a+":",xu(e))for(var o=0;o<e.length;o++){i=e[o];var u=a+wi(i,o);l+=is(i,t,n,u,s)}else if(u=Vh(e),typeof u=="function")for(e=u.call(e),o=0;!(i=e.next()).done;)i=i.value,u=a+wi(i,o++),l+=is(i,t,n,u,s);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function La(e,t,n){if(e==null)return e;var a=[],s=0;return is(e,a,"","",function(i){return t.call(n,i,s++)}),a}function $h(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ke={current:null},ls={transition:null},Kh={ReactCurrentDispatcher:ke,ReactCurrentBatchConfig:ls,ReactCurrentOwner:oo};function _d(){throw Error("act(...) is not supported in production builds of React.")}
vendor: 13,409 bytes, lines 9-33
9q.Children={map:La,forEach:function(e,t,n){La(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return La(e,function(){t++}),t},toArray:function(e){return La(e,function(t){return t})||[]},only:function(e){if(!uo(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};q.Component=wn;q.Fragment=Fh;q.Profiler=Mh;q.PureComponent=io;q.StrictMode=Lh;q.Suspense=Oh;q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Kh;q.act=_d;q.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=vd({},e.props),s=e.key,i=e.ref,l=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,l=oo.current),t.key!==void 0&&(s=""+t.key),e.type&&e.type.defaultProps)var o=e.type.defaultProps;for(u in t)jd.call(t,u)&&!wd.hasOwnProperty(u)&&(a[u]=t[u]===void 0&&o!==void 0?o[u]:t[u])}var u=arguments.length-2;if(u===1)a.children=n;else if(1<u){o=Array(u);for(var c=0;c<u;c++)o[c]=arguments[c+2];a.children=o}return{$$typeof:Sa,type:e.type,key:s,ref:i,props:a,_owner:l}};q.createContext=function(e){return e={$$typeof:qh,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Ah,_context:e},e.Consumer=e};q.createElement=Sd;q.createFactory=function(e){var t=Sd.bind(null,e);return t.type=e,t};q.createRef=function(){return{current:null}};q.forwardRef=function(e){return{$$typeof:Dh,render:e}};q.isValidElement=uo;q.lazy=function(e){return{$$typeof:Uh,_payload:{_status:-1,_result:e},_init:$h}};q.memo=function(e,t){return{$$typeof:Hh,type:e,compare:t===void 0?null:t}};q.startTransition=function(e){var t=ls.transition;ls.transition={};try{e()}finally{ls.transition=t}};q.unstable_act=_d;q.useCallback=function(e,t){return ke.current.useCallback(e,t)};q.useContext=function(e){return ke.current.useContext(e)};q.useDebugValue=function(){};q.useDeferredValue=function(e){return ke.current.useDeferredValue(e)};q.useEffect=function(e,t){return ke.current.useEffect(e,t)};q.useId=function(){return ke.current.useId()};q.useImperativeHandle=function(e,t,n){return ke.current.useImperativeHandle(e,t,n)};q.useInsertionEffect=function(e,t){return ke.current.useInsertionEffect(e,t)};q.useLayoutEffect=function(e,t){return ke.current.useLayoutEffect(e,t)};q.useMemo=function(e,t){return ke.current.useMemo(e,t)};q.useReducer=function(e,t,n){return ke.current.useReducer(e,t,n)};q.useRef=function(e){return ke.current.useRef(e)};q.useState=function(e){return ke.current.useState(e)};q.useSyncExternalStore=function(e,t,n){return ke.current.useSyncExternalStore(e,t,n)};q.useTransition=function(){return ke.current.useTransition()};q.version="18.3.1";gd.exports=q;var x=gd.exports;const Pd=hd(x);/** 10 * @license React 11 * react-jsx-runtime.production.min.js 12 * 13 * Copyright (c) Facebook, Inc. and its affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var Gh=x,Yh=Symbol.for("react.element"),Qh=Symbol.for("react.fragment"),Zh=Object.prototype.hasOwnProperty,Xh=Gh.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Jh={key:!0,ref:!0,__self:!0,__source:!0};function kd(e,t,n){var a,s={},i=null,l=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(l=t.ref);for(a in t)Zh.call(t,a)&&!Jh.hasOwnProperty(a)&&(s[a]=t[a]);if(e&&e.defaultProps)for(a in t=e.defaultProps,t)s[a]===void 0&&(s[a]=t[a]);return{$$typeof:Yh,type:e,key:i,ref:l,props:s,_owner:Xh.current}}Js.Fragment=Qh;Js.jsx=kd;Js.jsxs=kd;fd.exports=Js;var r=fd.exports,Nd={exports:{}},Oe={},Td={exports:{}},Ed={};/** 18 * @license React 19 * scheduler.production.min.js 20 * 21 * Copyright (c) Facebook, Inc. and its affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */(function(e){function t(E,F){var M=E.length;E.push(F);e:for(;0<M;){var K=M-1>>>1,ne=E[K];if(0<s(ne,F))E[K]=F,E[M]=ne,M=K;else break e}}function n(E){return E.length===0?null:E[0]}function a(E){if(E.length===0)return null;var F=E[0],M=E.pop();if(M!==F){E[0]=M;e:for(var K=0,ne=E.length,Ca=ne>>>1;K<Ca;){var mr=2*(K+1)-1,yi=E[mr],pr=mr+1,Ia=E[pr];if(0>s(yi,M))pr<ne&&0>s(Ia,yi)?(E[K]=Ia,E[pr]=M,K=pr):(E[K]=yi,E[mr]=M,K=mr);else if(pr<ne&&0>s(Ia,M))E[K]=Ia,E[pr]=M,K=pr;else break e}}return F}function s(E,F){var M=E.sortIndex-F.sortIndex;return M!==0?M:E.id-F.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var l=Date,o=l.now();e.unstable_now=function(){return l.now()-o}}var u=[],c=[],p=1,m=null,h=3,v=!1,j=!1,b=!1,S=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,d=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function g(E){for(var F=n(c);F!==null;){if(F.callback===null)a(c);else if(F.startTime<=E)a(c),F.sortIndex=F.expirationTime,t(u,F);else break;F=n(c)}}function y(E){if(b=!1,g(E),!j)if(n(u)!==null)j=!0,Q(w);else{var F=n(c);F!==null&&dr(y,F.startTime-E)}}function w(E,F){j=!1,b&&(b=!1,f(z),z=-1),v=!0;var M=h;try{for(g(F),m=n(u);m!==null&&(!(m.expirationTime>F)||E&&!A());){var K=m.callback;if(typeof K=="function"){m.callback=null,h=m.priorityLevel;var ne=K(m.expirationTime<=F);F=e.unstable_now(),typeof ne=="function"?m.callback=ne:m===n(u)&&a(u),g(F)}else a(u);m=n(u)}if(m!==null)var Ca=!0;else{var mr=n(c);mr!==null&&dr(y,mr.startTime-F),Ca=!1}return Ca}finally{m=null,h=M,v=!1}}var P=!1,T=null,z=-1,C=5,N=-1;function A(){return!(e.unstable_now()-N<C)}function Y(){if(T!==null){var E=e.unstable_now();N=E;var F=!0;try{F=T(!0,E)}finally{F?re():(P=!1,T=null)}}else P=!1}var re;if(typeof d=="function")re=function(){d(Y)};else if(typeof MessageChannel<"u"){var Ze=new MessageChannel,ie=Ze.port2;Ze.port1.onmessage=Y,re=function(){ie.postMessage(null)}}else re=function(){S(Y,0)};function Q(E){T=E,P||(P=!0,re())}function dr(E,F){z=S(function(){E(e.unstable_now())},F)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(E){E.callback=null},e.unstable_continueExecution=function(){j||v||(j=!0,Q(w))},e.unstable_forceFrameRate=function(E){0>E||125<E?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):C=0<E?Math.floor(1e3/E):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function(E){switch(h){case 1:case 2:case 3:var F=3;break;default:F=h}var M=h;h=F;try{return E()}finally{h=M}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(E,F){switch(E){case 1:case 2:case 3:case 4:case 5:break;default:E=3}var M=h;h=E;try{return F()}finally{h=M}},e.unstable_scheduleCallback=function(E,F,M){var K=e.unstable_now();switch(typeof M=="object"&&M!==null?(M=M.delay,M=typeof M=="number"&&0<M?K+M:K):M=K,E){case 1:var ne=-1;break;case 2:ne=250;break;case 5:ne=1073741823;break;case 4:ne=1e4;break;default:ne=5e3}return ne=M+ne,E={id:p++,callback:F,priorityLevel:E,startTime:M,expirationTime:ne,sortIndex:-1},M>K?(E.sortIndex=M,t(c,E),n(u)===null&&E===n(c)&&(b?(f(z),z=-1):b=!0,dr(y,M-K))):(E.sortIndex=ne,t(u,E),j||v||(j=!0,Q(w))),E},e.unstable_shouldYield=A,e.unstable_wrapCallback=function(E){var F=h;return function(){var M=h;h=F;try{return E.apply(this,arguments)}finally{h=M}}}})(Ed);Td.exports=Ed;var ef=Td.exports;/** 26 * @license React 27 * react-dom.production.min.js 28 * 29 * Copyright (c) Facebook, Inc. and its affiliates. 30 * 31 * This source code is licensed under the MIT license found in the 32 * LICENSE file in the root directory of this source tree. 33 */var tf=x,De=ef;function k(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var zd=new Set,ra={};function Ir(e,t){dn(e,t),dn(e+"Capture",t)}function dn(e,t){for(ra[e]=t,e=0;e<t.length;e++)zd.add(t[e])}var Et=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),sl=Object.prototype.hasOwnProperty,rf=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,bu={},yu={};function nf(e){return sl.call(yu,e)?!0:sl.call(bu,e)?!1:rf.test(e)?yu[e]=!0:(bu[e]=!0,!1)}function af(e,t,n,a){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return a?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function sf(e,t,n,a){if(t===null||typeof t>"u"||af(e,t,n,a))return!0;if(a)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function Ne(e,t,n,a,s,i,l){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=a,this.attributeNamespace=s,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=l}var ge={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){ge[e]=new Ne(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];ge[t]=new Ne(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){ge[e]=new Ne(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){ge[e]=new Ne(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){ge[e]=new Ne(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){ge[e]=new Ne(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){ge[e]=new Ne(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){ge[e]=new Ne(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){ge[e]=new Ne(e,5,!1,e.toLowerCase(),null,!1,!1)});var co=/[\-:]([a-z])/g;function mo(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(co,mo);ge[t]=new Ne(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(co,mo);ge[t]=new Ne(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(co,mo);ge[t]=new Ne(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){ge[e]=new Ne(e,1,!1,e.toLowerCase(),null,!1,!1)});ge.xlinkHref=new Ne("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){ge[e]=new Ne(e,1,!1,e.toLowerCase(),null,!0,!0)});function po(e,t,n,a){var s=ge.hasOwnProperty(t)?ge[t]:null;(s!==null?s.type!==0:a||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(sf(t,n,s,a)&&(n=null),a||s===null?nf(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):s.mustUseProperty?e[s.propertyName]=n===null?s.type===3?!1:"":n:(t=s.attributeName,a=s.attributeNamespace,n===null?e.removeAttribute(t):(s=s.type,n=s===3||s===4&&n===!0?"":""+n,a?e.setAttributeNS(a,t,n):e.setAttribute(t,n))))}
vendor: 5,027 bytes, lines 33-37
33var Lt=tf.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ma=Symbol.for("react.element"),Ar=Symbol.for("react.portal"),qr=Symbol.for("react.fragment"),ho=Symbol.for("react.strict_mode"),il=Symbol.for("react.profiler"),Rd=Symbol.for("react.provider"),Cd=Symbol.for("react.context"),fo=Symbol.for("react.forward_ref"),ll=Symbol.for("react.suspense"),ol=Symbol.for("react.suspense_list"),go=Symbol.for("react.memo"),Dt=Symbol.for("react.lazy"),Id=Symbol.for("react.offscreen"),ju=Symbol.iterator;function Nn(e){return e===null||typeof e!="object"?null:(e=ju&&e[ju]||e["@@iterator"],typeof e=="function"?e:null)}var te=Object.assign,Si;function On(e){if(Si===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Si=t&&t[1]||""}return` 34`+Si+e}var _i=!1;function Pi(e,t){if(!e||_i)return"";_i=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var a=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){a=c}e.call(t.prototype)}else{try{throw Error()}catch(c){a=c}e()}}catch(c){if(c&&a&&typeof c.stack=="string"){for(var s=c.stack.split(` 35`),i=a.stack.split(` 36`),l=s.length-1,o=i.length-1;1<=l&&0<=o&&s[l]!==i[o];)o--;for(;1<=l&&0<=o;l--,o--)if(s[l]!==i[o]){if(l!==1||o!==1)do if(l--,o--,0>o||s[l]!==i[o]){var u=` 37`+s[l].replace(" at new "," at ");return e.displayName&&u.includes("<anonymous>")&&(u=u.replace("<anonymous>",e.displayName)),u}while(1<=l&&0<=o);break}}}finally{_i=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?On(e):""}function lf(e){switch(e.tag){case 5:return On(e.type);case 16:return On("Lazy");case 13:return On("Suspense");case 19:return On("SuspenseList");case 0:case 2:case 15:return e=Pi(e.type,!1),e;case 11:return e=Pi(e.type.render,!1),e;case 1:return e=Pi(e.type,!0),e;default:return""}}function ul(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case qr:return"Fragment";case Ar:return"Portal";case il:return"Profiler";case ho:return"StrictMode";case ll:return"Suspense";case ol:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Cd:return(e.displayName||"Context")+".Consumer";case Rd:return(e._context.displayName||"Context")+".Provider";case fo:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case go:return t=e.displayName||null,t!==null?t:ul(e.type)||"Memo";case Dt:t=e._payload,e=e._init;try{return ul(e(t))}catch{}}return null}function of(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return ul(t);case 8:return t===ho?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function ir(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Fd(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function uf(e){var t=Fd(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),a=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var s=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return s.call(this)},set:function(l){a=""+l,i.call(this,l)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return a},setValue:function(l){a=""+l},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Aa(e){e._valueTracker||(e._valueTracker=uf(e))}function Ld(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),a="";return e&&(a=Fd(e)?e.checked?"true":"false":e.value),e=a,e!==n?(t.setValue(e),!0):!1}function _s(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function cl(e,t){var n=t.checked;return te({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function wu(e,t){var n=t.defaultValue==null?"":t.defaultValue,a=t.checked!=null?t.checked:t.defaultChecked;n=ir(t.value!=null?t.value:n),e._wrapperState={initialChecked:a,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}
vendor: 4,651 bytes, line 37
37function Md(e,t){t=t.checked,t!=null&&po(e,"checked",t,!1)}function dl(e,t){Md(e,t);var n=ir(t.value),a=t.type;if(n!=null)a==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(a==="submit"||a==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?ml(e,t.type,n):t.hasOwnProperty("defaultValue")&&ml(e,t.type,ir(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Su(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var a=t.type;if(!(a!=="submit"&&a!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function ml(e,t,n){(t!=="number"||_s(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var Hn=Array.isArray;function Yr(e,t,n,a){if(e=e.options,t){t={};for(var s=0;s<n.length;s++)t["$"+n[s]]=!0;for(n=0;n<e.length;n++)s=t.hasOwnProperty("$"+e[n].value),e[n].selected!==s&&(e[n].selected=s),s&&a&&(e[n].defaultSelected=!0)}else{for(n=""+ir(n),t=null,s=0;s<e.length;s++){if(e[s].value===n){e[s].selected=!0,a&&(e[s].defaultSelected=!0);return}t!==null||e[s].disabled||(t=e[s])}t!==null&&(t.selected=!0)}}function pl(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(k(91));return te({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function _u(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(k(92));if(Hn(n)){if(1<n.length)throw Error(k(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:ir(n)}}function Ad(e,t){var n=ir(t.value),a=ir(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),a!=null&&(e.defaultValue=""+a)}function Pu(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function qd(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function hl(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?qd(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var qa,Dd=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,a,s){MSApp.execUnsafeLocalFunction(function(){return e(t,n,a,s)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(qa=qa||document.createElement("div"),qa.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=qa.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function na(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Wn={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},cf=["Webkit","ms","Moz","O"];Object.keys(Wn).forEach(function(e){cf.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Wn[t]=Wn[e]})});function Od(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||Wn.hasOwnProperty(e)&&Wn[e]?(""+t).trim():t+"px"}function Hd(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var a=n.indexOf("--")===0,s=Od(n,t[n],a);n==="float"&&(n="cssFloat"),a?e.setProperty(n,s):e[n]=s}}var df=te({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function fl(e,t){if(t){if(df[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(k(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(k(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(k(61))}if(t.style!=null&&typeof t.style!="object")throw Error(k(62))}}function gl(e,t){if(e.indexOf("-")===-1)return typeof t.is=="str
37ing";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var xl=null;function xo(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var vl=null,Qr=null,Zr=null;function ku(e){if(e=ka(e)){if(typeof vl!="function")throw Error(k(280));var t=e.stateNode;t&&(t=ai(t),vl(e.stateNode,e.type,t))}}function Ud(e){Qr?Zr?Zr.push(e):Zr=[e]:Qr=e}function Vd(){if(Qr){var e=Qr,t=Zr;if(Zr=Qr=null,ku(e),t)for(e=0;e<t.length;e++)ku(t[e])}}function Bd(e,t){return e(t)}function Wd(){}var ki=!1;function $d(e,t,n){if(ki)return e(t,n);ki=!0;try{return Bd(e,t,n)}finally{ki=!1,(Qr!==null||Zr!==null)&&(Wd(),Vd())}}function aa(e,t){var n=e.stateNode;if(n===null)return null;var a=ai(n);if(a===null)return null;n=a[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(a=!a.disabled)||(e=e.type,a=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!a;break e;default:e=!1}if(e)return null;if(n&&typeof n!="function")throw Error(k(231,t,typeof n));return n}var bl=!1;if(Et)try{var Tn={};Object.defineProperty(Tn,"passive",{get:function(){bl=!0}}),window.addEventListener("test",Tn,Tn),window.removeEventListener("test",Tn,Tn)}catch{bl=!1}function mf(e,t,n,a,s,i,l,o,u){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(p){this.onError(p)}}var $n=!1,Ps=null,ks=!1,yl=null,pf={onError:function(e){$n=!0,Ps=e}};function hf(e,t,n,a,s,i,l,o,u){$n=!1,Ps=null,mf.apply(pf,arguments)}function ff(e,t,n,a,s,i,l,o,u){if(hf.apply(this,arguments),$n){if($n){var c=Ps;$n=!1,Ps=null}else throw Error(k(198));ks||(ks=!0,yl=c)}}function Fr(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function Kd(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Nu(e){if(Fr(e)!==e)throw Error(k(188))}function gf(e){var t=e.alternate;if(!t){if(t=Fr(e),t===null)throw Error(k(188));return t!==e?null:e}for(var n=e,a=t;;){var s=n.return;if(s===null)break;var i=s.alternate;if(i===null){if(a=s.return,a!==null){n=a;continue}break}if(s.child===i.child){for(i=s.child;i;){if(i===n)return Nu(s),e;if(i===a)return Nu(s),t;i=i.sibling}throw Error(k(188))}if(n.return!==a.return)n=s,a=i;else{for(var l=!1,o=s.child;o;){if(o===n){l=!0,n=s,a=i;break}if(o===a){l=!0,a=s,n=i;break}o=o.sibling}if(!l){for(o=i.child;o;){if(o===n){l=!0,n=i,a=s;break}if(o===a){l=!0,a=i,n=s;break}o=o.sibling}if(!l)throw Error(k(189))}}if(n.alternate!==a)throw Error(k(190))}if(n.tag!==3)throw Error(k(188));return n.stateNode.current===n?e:t}function Gd(e){return e=gf(e),e!==null?Yd(e):null}function Yd(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=Yd(e);if(t!==null)return t;e=e.sibling}return null}var Qd=De.unstable_scheduleCallback,Tu=De.unstable_cancelCallback,xf=De.unstable_shouldYield,vf=De.unstable_requestPaint,se=De.unstable_now,bf=De.unstable_getCurrentPriorityLevel,vo=De.unstable_ImmediatePriority,Zd=De.unstable_UserBlockingPriority,Ns=De.unstable_NormalPriority,yf=De.unstable_LowPriority,Xd=De.unstable_IdlePriority,ei=null,ht=null;function jf(e){if(ht&&typeof ht.onCommitFiberRoot=="function")try{ht.onCommitFiberRoot(ei,e,void 0,(e.current.flags&128)===128)}catch{}}var at=Math.clz32?Math.clz32:_f,wf=Math.log,Sf=Math.LN2;function _f(e){return e>>>=0,e===0?32:31-(wf(e)/Sf|0)|0}var Da=64,Oa=4194304;function Un(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Ts(e,t){var n=e.pendingLanes;if(n===0)return 0;var a=0,s=e.suspendedLanes,i=e.pingedLanes,l=n&268435455;if(l!==0){var o=l&~s;o!==0?a=Un(o):(i&=l,i!==0&&(a=Un(i)))}else l=n&~s,l!==0?a=Un(l):i!==0&&(a=Un(i));if(a===0)return 0;if(t!==0&&t!==a&&!(t&s)&&(s=a&-a,i=t&-t,s>=i||s===16&&(i&4194240)!==0))return t;if(a&4&&(a|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=a;0<t;)n=31-at(t),s=1<<n,a|=e[n],t&=~s;return a}function Pf(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function kf(e,t){for(var n=e.suspendedLanes,a=e.pingedLanes,s=e.expirationTimes,i=e.pendingLanes;0<i;){var l=31-at(i),o=1<<l,u=s[l];u===-1?(!(o&n)||o&a)&&(s[l]=Pf(o,t)):u<=t&&(e.expiredLanes|=o),i&=~o}}function jl(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function Jd(){var e=Da;return Da<<=1,!(Da&4194240)&&(Da=64),e}function Ni(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function _a(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-at(t),e[t]=n}function Nf(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var a=e.eventTimes;for(e=e.expirationTimes;0<n;){var s=31-at(n),i=1<<s;t[s]=0,a[s]=-1,e[s]=-1,n&=~i}}function bo(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var a=31-at(n),s=1<<a;s&t|e[a]&t&&(e[a]|=t),n&=~s}}var U=0;function em(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var tm,yo,rm,nm,am,wl=!1,Ha=[],Xt=null,Jt=null,er=null,sa=new Map,ia=new Map,Ht=[],Tf="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Eu(e,t){switch(e){case"focusin":case"focusout":Xt=null;break;case"dragenter":case"dragleave":Jt=null;break;case"mouseover":case"mouseout":er=null;break;case"pointerover":case"pointerout":sa.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":ia.delete(t.pointerId)}}function En(e,t,n,a,s,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:a,nativeEvent:i,targetContainers:[s]},t!==null&&(t=ka(t),t!==null&&yo(t)),e):(e.eventSystemFlags|=a,t=e.targetContainers,s!==null&&t.indexOf(s)===-1&&t.push(s),e)}function Ef(e,t,n,a,s){switch(t){case"focusin":return Xt=En(Xt,e,t,n,a,s),!0;case"dragenter":return Jt=En(Jt,e,t,n,a,s),!0;case"mouseover":return er=En(er,e,t,n,a,s),!0;case"pointerover":var i=s.pointerId;return sa.set(i,En(sa.get(i)||null,e,t,n,a,s)),!0;case"gotpointercapture":return i=s.pointerId,ia.set(i,En(ia.get(i)||null,e,t,n,a,s)),!0}return!1}function sm(e){var t=xr(e.target);if(t!==null){var n=Fr(t);if(n!==null){if(t=n.tag,t===13){if(t=Kd(n),t!==null){e.blockedOn=t,am(e.priority,function(){rm(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function os(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Sl(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var a=new n.constructor(n.type,n);xl=a,n.target.dispatchEvent(a),xl=null}else return t=ka(n),t!==null&&yo(t),e.blockedOn=n,!1;t.shift()}return!0}function zu(e,t,n){os(e)&&n.delete(t)}function zf(){wl=!1,Xt!==null&&os(Xt)&&(Xt=null),Jt!==null&&os(Jt)&&(Jt=null),er!==null&&os(er)&&(er=null),sa.forEac
vendor: 9,285 bytes, line 37
37h(zu),ia.forEach(zu)}function zn(e,t){e.blockedOn===t&&(e.blockedOn=null,wl||(wl=!0,De.unstable_scheduleCallback(De.unstable_NormalPriority,zf)))}function la(e){function t(s){return zn(s,e)}if(0<Ha.length){zn(Ha[0],e);for(var n=1;n<Ha.length;n++){var a=Ha[n];a.blockedOn===e&&(a.blockedOn=null)}}for(Xt!==null&&zn(Xt,e),Jt!==null&&zn(Jt,e),er!==null&&zn(er,e),sa.forEach(t),ia.forEach(t),n=0;n<Ht.length;n++)a=Ht[n],a.blockedOn===e&&(a.blockedOn=null);for(;0<Ht.length&&(n=Ht[0],n.blockedOn===null);)sm(n),n.blockedOn===null&&Ht.shift()}var Xr=Lt.ReactCurrentBatchConfig,Es=!0;function Rf(e,t,n,a){var s=U,i=Xr.transition;Xr.transition=null;try{U=1,jo(e,t,n,a)}finally{U=s,Xr.transition=i}}function Cf(e,t,n,a){var s=U,i=Xr.transition;Xr.transition=null;try{U=4,jo(e,t,n,a)}finally{U=s,Xr.transition=i}}function jo(e,t,n,a){if(Es){var s=Sl(e,t,n,a);if(s===null)Ai(e,t,a,zs,n),Eu(e,a);else if(Ef(s,e,t,n,a))a.stopPropagation();else if(Eu(e,a),t&4&&-1<Tf.indexOf(e)){for(;s!==null;){var i=ka(s);if(i!==null&&tm(i),i=Sl(e,t,n,a),i===null&&Ai(e,t,a,zs,n),i===s)break;s=i}s!==null&&a.stopPropagation()}else Ai(e,t,a,null,n)}}var zs=null;function Sl(e,t,n,a){if(zs=null,e=xo(a),e=xr(e),e!==null)if(t=Fr(e),t===null)e=null;else if(n=t.tag,n===13){if(e=Kd(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return zs=e,null}function im(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(bf()){case vo:return 1;case Zd:return 4;case Ns:case yf:return 16;case Xd:return 536870912;default:return 16}default:return 16}}var Qt=null,wo=null,us=null;function lm(){if(us)return us;var e,t=wo,n=t.length,a,s="value"in Qt?Qt.value:Qt.textContent,i=s.length;for(e=0;e<n&&t[e]===s[e];e++);var l=n-e;for(a=1;a<=l&&t[n-a]===s[i-a];a++);return us=s.slice(e,1<a?1-a:void 0)}function cs(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Ua(){return!0}function Ru(){return!1}function He(e){function t(n,a,s,i,l){this._reactName=n,this._targetInst=s,this.type=a,this.nativeEvent=i,this.target=l,this.currentTarget=null;for(var o in e)e.hasOwnProperty(o)&&(n=e[o],this[o]=n?n(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Ua:Ru,this.isPropagationStopped=Ru,this}return te(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Ua)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Ua)},persist:function(){},isPersistent:Ua}),t}var Sn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},So=He(Sn),Pa=te({},Sn,{view:0,detail:0}),If=He(Pa),Ti,Ei,Rn,ti=te({},Pa,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_o,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==Rn&&(Rn&&e.type==="mousemove"?(Ti=e.screenX-Rn.screenX,Ei=e.screenY-Rn.screenY):Ei=Ti=0,Rn=e),Ti)},movementY:function(e){return"movementY"in e?e.movementY:Ei}}),Cu=He(ti),Ff=te({},ti,{dataTransfer:0}),Lf=He(Ff),Mf=te({},Pa,{relatedTarget:0}),zi=He(Mf),Af=te({},Sn,{animationName:0,elapsedTime:0,pseudoElement:0}),qf=He(Af),Df=te({},Sn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Of=He(Df),Hf=te({},Sn,{data:0}),Iu=He(Hf),Uf={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Vf={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Bf={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Wf(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Bf[e])?!!t[e]:!1}function _o(){return Wf}var $f=te({},Pa,{key:function(e){if(e.key){var t=Uf[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=cs(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Vf[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_o,charCode:function(e){return e.type==="keypress"?cs(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?cs(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),Kf=He($f),Gf=te({},ti,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Fu=He(Gf),Yf=te({},Pa,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_o}),Qf=He(Yf),Zf=te({},Sn,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xf=He(Zf),Jf=te({},ti,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),eg=He(Jf),tg=[9,13,27,32],Po=Et&&"CompositionEvent"in window,Kn=null;Et&&"documentMode"in document&&(Kn=document.documentMode);var rg=Et&&"TextEvent"in window&&!Kn,om=Et&&(!Po||Kn&&8<Kn&&11>=Kn),Lu=" ",Mu=!1;function um(e,t){switch(e){case"keyup":return tg.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function cm(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Dr=!1;function ng(e,t){switch(e){case"compositionend":return cm(t);case"keypress":return t.which!==32?null:(Mu=!0,Lu);case"textInput":return e=t.data,e===Lu&&Mu?null:e;default:return null}}function ag(e,t){if(Dr)return e==="compositionend"||!Po&&um(e,t)?(e=lm(),us=wo=Qt=null,Dr=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return om&&t.locale!=="ko"?null:t.data;default:return null}}var sg={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Au(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!sg[e.type]:t==="textarea"}function dm(e,t,n,a){Ud(a),t=Rs(t,"onChange"),0<t.length&&(n=new So("onChange","change",null,n,a),e.push({event:n,listeners:t}))}var Gn=null,oa=null;function ig(e){wm(e,0)}function ri(e){var t=Ur(e);if(Ld(t))return e}function lg(e,t){if(e==="change")return t}var mm=!1;if(Et){var Ri;if(Et){var Ci="oninput"in document;if(!Ci){var qu=document.createElement("div");qu.setAttribute("oninput","return;"),Ci=typeof qu.oninput=="function"}Ri=Ci}else Ri=!1;mm=Ri&&(!document.documentMode||9<document.documentMode)}function Du(){Gn&&(Gn.detachEvent("onpropertychange",pm),oa=Gn=null)}function pm(e){if(e.propertyName==="value"&&ri(oa)){var t=[];dm(t,oa,e,xo(e)),$d(ig,t)}}function og(e,t,n){e==="focusin"?(Du(),Gn=t,oa=n,Gn.attachEvent("onpropertychange",pm)):e==="focusout"&&Du()}function ug(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ri(oa)}function cg(e,t){if(e==="click")return ri(t)}function dg(e,t){if(e==="input"||e==="change")return ri(t)}function mg(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var lt=typeof Object.is=="function"?Object.is:mg;function ua(e,t){if(lt(e,t))return!0;
vendor: 4,808 bytes, line 37
37if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(a=0;a<n.length;a++){var s=n[a];if(!sl.call(t,s)||!lt(e[s],t[s]))return!1}return!0}function Ou(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Hu(e,t){var n=Ou(e);e=0;for(var a;n;){if(n.nodeType===3){if(a=e+n.textContent.length,e<=t&&a>=t)return{node:n,offset:t-e};e=a}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Ou(n)}}function hm(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?hm(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function fm(){for(var e=window,t=_s();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=_s(e.document)}return t}function ko(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function pg(e){var t=fm(),n=e.focusedElem,a=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&hm(n.ownerDocument.documentElement,n)){if(a!==null&&ko(n)){if(t=a.start,e=a.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var s=n.textContent.length,i=Math.min(a.start,s);a=a.end===void 0?i:Math.min(a.end,s),!e.extend&&i>a&&(s=a,a=i,i=s),s=Hu(n,i);var l=Hu(n,a);s&&l&&(e.rangeCount!==1||e.anchorNode!==s.node||e.anchorOffset!==s.offset||e.focusNode!==l.node||e.focusOffset!==l.offset)&&(t=t.createRange(),t.setStart(s.node,s.offset),e.removeAllRanges(),i>a?(e.addRange(t),e.extend(l.node,l.offset)):(t.setEnd(l.node,l.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hg=Et&&"documentMode"in document&&11>=document.documentMode,Or=null,_l=null,Yn=null,Pl=!1;function Uu(e,t,n){var a=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Pl||Or==null||Or!==_s(a)||(a=Or,"selectionStart"in a&&ko(a)?a={start:a.selectionStart,end:a.selectionEnd}:(a=(a.ownerDocument&&a.ownerDocument.defaultView||window).getSelection(),a={anchorNode:a.anchorNode,anchorOffset:a.anchorOffset,focusNode:a.focusNode,focusOffset:a.focusOffset}),Yn&&ua(Yn,a)||(Yn=a,a=Rs(_l,"onSelect"),0<a.length&&(t=new So("onSelect","select",null,t,n),e.push({event:t,listeners:a}),t.target=Or)))}function Va(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Hr={animationend:Va("Animation","AnimationEnd"),animationiteration:Va("Animation","AnimationIteration"),animationstart:Va("Animation","AnimationStart"),transitionend:Va("Transition","TransitionEnd")},Ii={},gm={};Et&&(gm=document.createElement("div").style,"AnimationEvent"in window||(delete Hr.animationend.animation,delete Hr.animationiteration.animation,delete Hr.animationstart.animation),"TransitionEvent"in window||delete Hr.transitionend.transition);function ni(e){if(Ii[e])return Ii[e];if(!Hr[e])return e;var t=Hr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in gm)return Ii[e]=t[n];return e}var xm=ni("animationend"),vm=ni("animationiteration"),bm=ni("animationstart"),ym=ni("transitionend"),jm=new Map,Vu="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function or(e,t){jm.set(e,t),Ir(t,[e])}for(var Fi=0;Fi<Vu.length;Fi++){var Li=Vu[Fi],fg=Li.toLowerCase(),gg=Li[0].toUpperCase()+Li.slice(1);or(fg,"on"+gg)}or(xm,"onAnimationEnd");or(vm,"onAnimationIteration");or(bm,"onAnimationStart");or("dblclick","onDoubleClick");or("focusin","onFocus");or("focusout","onBlur");or(ym,"onTransitionEnd");dn("onMouseEnter",["mouseout","mouseover"]);dn("onMouseLeave",["mouseout","mouseover"]);dn("onPointerEnter",["pointerout","pointerover"]);dn("onPointerLeave",["pointerout","pointerover"]);Ir("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));
vendor: 4,769 bytes, line 37
37Ir("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Ir("onBeforeInput",["compositionend","keypress","textInput","paste"]);Ir("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Ir("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Ir("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Vn="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),xg=new Set("cancel close invalid load scroll toggle".split(" ").concat(Vn));function Bu(e,t,n){var a=e.type||"unknown-event";e.currentTarget=n,ff(a,t,void 0,e),e.currentTarget=null}function wm(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var a=e[n],s=a.event;a=a.listeners;e:{var i=void 0;if(t)for(var l=a.length-1;0<=l;l--){var o=a[l],u=o.instance,c=o.currentTarget;if(o=o.listener,u!==i&&s.isPropagationStopped())break e;Bu(s,o,c),i=u}else for(l=0;l<a.length;l++){if(o=a[l],u=o.instance,c=o.currentTarget,o=o.listener,u!==i&&s.isPropagationStopped())break e;Bu(s,o,c),i=u}}}if(ks)throw e=yl,ks=!1,yl=null,e}function W(e,t){var n=t[zl];n===void 0&&(n=t[zl]=new Set);var a=e+"__bubble";n.has(a)||(Sm(t,e,2,!1),n.add(a))}function Mi(e,t,n){var a=0;t&&(a|=4),Sm(n,e,a,t)}var Ba="_reactListening"+Math.random().toString(36).slice(2);function ca(e){if(!e[Ba]){e[Ba]=!0,zd.forEach(function(n){n!=="selectionchange"&&(xg.has(n)||Mi(n,!1,e),Mi(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Ba]||(t[Ba]=!0,Mi("selectionchange",!1,t))}}function Sm(e,t,n,a){switch(im(t)){case 1:var s=Rf;break;case 4:s=Cf;break;default:s=jo}n=s.bind(null,t,n,e),s=void 0,!bl||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(s=!0),a?s!==void 0?e.addEventListener(t,n,{capture:!0,passive:s}):e.addEventListener(t,n,!0):s!==void 0?e.addEventListener(t,n,{passive:s}):e.addEventListener(t,n,!1)}function Ai(e,t,n,a,s){var i=a;if(!(t&1)&&!(t&2)&&a!==null)e:for(;;){if(a===null)return;var l=a.tag;if(l===3||l===4){var o=a.stateNode.containerInfo;if(o===s||o.nodeType===8&&o.parentNode===s)break;if(l===4)for(l=a.return;l!==null;){var u=l.tag;if((u===3||u===4)&&(u=l.stateNode.containerInfo,u===s||u.nodeType===8&&u.parentNode===s))return;l=l.return}for(;o!==null;){if(l=xr(o),l===null)return;if(u=l.tag,u===5||u===6){a=i=l;continue e}o=o.parentNode}}a=a.return}$d(function(){var c=i,p=xo(n),m=[];e:{var h=jm.get(e);if(h!==void 0){var v=So,j=e;switch(e){case"keypress":if(cs(n)===0)break e;case"keydown":case"keyup":v=Kf;break;case"focusin":j="focus",v=zi;break;case"focusout":j="blur",v=zi;break;case"beforeblur":case"afterblur":v=zi;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":v=Cu;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":v=Lf;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":v=Qf;break;case xm:case vm:case bm:v=qf;break;case ym:v=Xf;break;case"scroll":v=If;break;case"wheel":v=eg;break;case"copy":case"cut":case"paste":v=Of;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":v=Fu}var b=(t&4)!==0,S=!b&&e==="scroll",f=b?h!==null?h+"Capture":null:h;b=[];for(var d=c,g;d!==null;){g=d;var y=g.stateNode;if(g.tag===5&&y!==null&&(g=y,f!==null&&(y=aa(d,f),y!=null&&b.push(da(d,y,g)))),S)break;d=d.return}0<b.length&&(h=new v(h,j,null,n,p),m.push({event:h,listeners:b}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",v=e==="mouseout"||e==="pointerout",h&&n!==xl&&(j=n.relatedTarget||n.fromElement)&&(xr(j)||j[zt]))break e;if((v||h)&&(h=p.window===p?p:(h=p.ownerDocument)?h.defaultView||h.parentWindow:window,v?(j=n.relatedTarget||n.toElement,v=c,j=j?xr(j):null,j!==null&&(S=Fr(j),j!==S||j.tag!==5&&j.tag!==6)&&(j=null)):(v=null,j=c),v!==j)){if(b=Cu,y="onMouseLeave",f="onMouseEnter",d="mouse",(e==="pointerout"||e==="pointerover")&&(b=Fu,y="onPointerLeave",f="onPointerEnter",d="pointer"),S=v==null?h:Ur(v),g=j==null?h:Ur(j),h=new b(y,d+"leave",v,n,p),h.target=S,h.relatedTarget=g,y=null,xr(p)===c&&(b=new b(f,d+"enter",j,n,p),b.target=g,b.relatedTarget=S,y=b),S=y,v&&j)t:{for(b=v,f=j,d=0,g=b;g;g=Mr(g))d++;for(g=0,y=f;y;y=Mr(y))g++;for(;0<d-g;)b=Mr(b),d--;for(;0<g-d;)f=Mr(f),g--;for(;d--;){if(b===f||f!==null&&b===f.alternate)break t;b=Mr(b),f=Mr(f)}b=null}else b=null;v!==null&&Wu(m,h,v,b,!1),j!==null&&S!==null&&Wu(m,S,j,b,!0)}}
vendor: 4,211 bytes, lines 37-38
37e:{if(h=c?Ur(c):window,v=h.nodeName&&h.nodeName.toLowerCase(),v==="select"||v==="input"&&h.type==="file")var w=lg;else if(Au(h))if(mm)w=dg;else{w=ug;var P=og}else(v=h.nodeName)&&v.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(w=cg);if(w&&(w=w(e,c))){dm(m,w,n,p);break e}P&&P(e,h,c),e==="focusout"&&(P=h._wrapperState)&&P.controlled&&h.type==="number"&&ml(h,"number",h.value)}switch(P=c?Ur(c):window,e){case"focusin":(Au(P)||P.contentEditable==="true")&&(Or=P,_l=c,Yn=null);break;case"focusout":Yn=_l=Or=null;break;case"mousedown":Pl=!0;break;case"contextmenu":case"mouseup":case"dragend":Pl=!1,Uu(m,n,p);break;case"selectionchange":if(hg)break;case"keydown":case"keyup":Uu(m,n,p)}var T;if(Po)e:{switch(e){case"compositionstart":var z="onCompositionStart";break e;case"compositionend":z="onCompositionEnd";break e;case"compositionupdate":z="onCompositionUpdate";break e}z=void 0}else Dr?um(e,n)&&(z="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(z="onCompositionStart");z&&(om&&n.locale!=="ko"&&(Dr||z!=="onCompositionStart"?z==="onCompositionEnd"&&Dr&&(T=lm()):(Qt=p,wo="value"in Qt?Qt.value:Qt.textContent,Dr=!0)),P=Rs(c,z),0<P.length&&(z=new Iu(z,e,null,n,p),m.push({event:z,listeners:P}),T?z.data=T:(T=cm(n),T!==null&&(z.data=T)))),(T=rg?ng(e,n):ag(e,n))&&(c=Rs(c,"onBeforeInput"),0<c.length&&(p=new Iu("onBeforeInput","beforeinput",null,n,p),m.push({event:p,listeners:c}),p.data=T))}wm(m,t)})}function da(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Rs(e,t){for(var n=t+"Capture",a=[];e!==null;){var s=e,i=s.stateNode;s.tag===5&&i!==null&&(s=i,i=aa(e,n),i!=null&&a.unshift(da(e,i,s)),i=aa(e,t),i!=null&&a.push(da(e,i,s))),e=e.return}return a}function Mr(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Wu(e,t,n,a,s){for(var i=t._reactName,l=[];n!==null&&n!==a;){var o=n,u=o.alternate,c=o.stateNode;if(u!==null&&u===a)break;o.tag===5&&c!==null&&(o=c,s?(u=aa(n,i),u!=null&&l.unshift(da(n,u,o))):s||(u=aa(n,i),u!=null&&l.push(da(n,u,o)))),n=n.return}l.length!==0&&e.push({event:t,listeners:l})}var vg=/\r\n?/g,bg=/\u0000|\uFFFD/g;function $u(e){return(typeof e=="string"?e:""+e).replace(vg,` 38`).replace(bg,"")}function Wa(e,t,n){if(t=$u(t),$u(e)!==t&&n)throw Error(k(425))}function Cs(){}var kl=null,Nl=null;function Tl(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var El=typeof setTimeout=="function"?setTimeout:void 0,yg=typeof clearTimeout=="function"?clearTimeout:void 0,Ku=typeof Promise=="function"?Promise:void 0,jg=typeof queueMicrotask=="function"?queueMicrotask:typeof Ku<"u"?function(e){return Ku.resolve(null).then(e).catch(wg)}:El;function wg(e){setTimeout(function(){throw e})}function qi(e,t){var n=t,a=0;do{var s=n.nextSibling;if(e.removeChild(n),s&&s.nodeType===8)if(n=s.data,n==="/$"){if(a===0){e.removeChild(s),la(t);return}a--}else n!=="$"&&n!=="$?"&&n!=="$!"||a++;n=s}while(n);la(t)}function tr(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Gu(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var _n=Math.random().toString(36).slice(2),pt="__reactFiber$"+_n,ma="__reactProps$"+_n,zt="__reactContainer$"+_n,zl="__reactEvents$"+_n,Sg="__reactListeners$"+_n,_g="__reactHandles$"+_n;function xr(e){var t=e[pt];if(t)return t;for(var n=e.parentNode;n;){if(t=n[zt]||n[pt]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Gu(e);e!==null;){if(n=e[pt])return n;e=Gu(e)}return t}e=n,n=e.parentNode}return null}function ka(e){return e=e[pt]||e[zt],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Ur(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(k(33))}function ai(e){return e[ma]||null}var Rl=[],Vr=-1;function ur(e){return{current:e}}function $(e){0>Vr||(e.current=Rl[Vr],Rl[Vr]=null,Vr--)}function B(e,t){Vr++,Rl[Vr]=e.current,e.current=t}var lr={}
vendor: 4,615 bytes, line 38
38,we=ur(lr),ze=ur(!1),Tr=lr;function mn(e,t){var n=e.type.contextTypes;if(!n)return lr;var a=e.stateNode;if(a&&a.__reactInternalMemoizedUnmaskedChildContext===t)return a.__reactInternalMemoizedMaskedChildContext;var s={},i;for(i in n)s[i]=t[i];return a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=s),s}function Re(e){return e=e.childContextTypes,e!=null}function Is(){$(ze),$(we)}function Yu(e,t,n){if(we.current!==lr)throw Error(k(168));B(we,t),B(ze,n)}function _m(e,t,n){var a=e.stateNode;if(t=t.childContextTypes,typeof a.getChildContext!="function")return n;a=a.getChildContext();for(var s in a)if(!(s in t))throw Error(k(108,of(e)||"Unknown",s));return te({},n,a)}function Fs(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||lr,Tr=we.current,B(we,e),B(ze,ze.current),!0}function Qu(e,t,n){var a=e.stateNode;if(!a)throw Error(k(169));n?(e=_m(e,t,Tr),a.__reactInternalMemoizedMergedChildContext=e,$(ze),$(we),B(we,e)):$(ze),B(ze,n)}var _t=null,si=!1,Di=!1;function Pm(e){_t===null?_t=[e]:_t.push(e)}function Pg(e){si=!0,Pm(e)}function cr(){if(!Di&&_t!==null){Di=!0;var e=0,t=U;try{var n=_t;for(U=1;e<n.length;e++){var a=n[e];do a=a(!0);while(a!==null)}_t=null,si=!1}catch(s){throw _t!==null&&(_t=_t.slice(e+1)),Qd(vo,cr),s}finally{U=t,Di=!1}}return null}var Br=[],Wr=0,Ls=null,Ms=0,Be=[],We=0,Er=null,kt=1,Nt="";function fr(e,t){Br[Wr++]=Ms,Br[Wr++]=Ls,Ls=e,Ms=t}function km(e,t,n){Be[We++]=kt,Be[We++]=Nt,Be[We++]=Er,Er=e;var a=kt;e=Nt;var s=32-at(a)-1;a&=~(1<<s),n+=1;var i=32-at(t)+s;if(30<i){var l=s-s%5;i=(a&(1<<l)-1).toString(32),a>>=l,s-=l,kt=1<<32-at(t)+s|n<<s|a,Nt=i+e}else kt=1<<i|n<<s|a,Nt=e}function No(e){e.return!==null&&(fr(e,1),km(e,1,0))}function To(e){for(;e===Ls;)Ls=Br[--Wr],Br[Wr]=null,Ms=Br[--Wr],Br[Wr]=null;for(;e===Er;)Er=Be[--We],Be[We]=null,Nt=Be[--We],Be[We]=null,kt=Be[--We],Be[We]=null}var Ae=null,Me=null,G=!1,nt=null;function Nm(e,t){var n=$e(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Zu(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,Ae=e,Me=tr(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,Ae=e,Me=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=Er!==null?{id:kt,overflow:Nt}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=$e(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Ae=e,Me=null,!0):!1;default:return!1}}function Cl(e){return(e.mode&1)!==0&&(e.flags&128)===0}function Il(e){if(G){var t=Me;if(t){var n=t;if(!Zu(e,t)){if(Cl(e))throw Error(k(418));t=tr(n.nextSibling);var a=Ae;t&&Zu(e,t)?Nm(a,n):(e.flags=e.flags&-4097|2,G=!1,Ae=e)}}else{if(Cl(e))throw Error(k(418));e.flags=e.flags&-4097|2,G=!1,Ae=e}}}function Xu(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Ae=e}function $a(e){if(e!==Ae)return!1;if(!G)return Xu(e),G=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!Tl(e.type,e.memoizedProps)),t&&(t=Me)){if(Cl(e))throw Tm(),Error(k(418));for(;t;)Nm(e,t),t=tr(t.nextSibling)}if(Xu(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(k(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){Me=tr(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}Me=null}}else Me=Ae?tr(e.stateNode.nextSibling):null;return!0}function Tm(){for(var e=Me;e;)e=tr(e.nextSibling)}function pn(){Me=Ae=null,G=!1}function Eo(e){nt===null?nt=[e]:nt.push(e)}var kg=Lt.ReactCurrentBatchConfig;function Cn(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(k(309));var a=n.stateNode}if(!a)throw Error(k(147,e));var s=a,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(l){var o=s.refs;l===null?delete o[i]:o[i]=l},t._stringRef=i,t)}if(typeof e!="string")throw Error(k(284));if(!n._owner)throw Error(k(290,e))}return e}function Ka(e,t){throw e=Object.prototype.toString.call(t),Error(k(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ju(e){var t=e._init;return t(e._payload)}function Em(e){function t(f,d){if(e){var g=f.deletions;g===null?(f.deletions=[d],f.flags|=16):g.push(d)}}function n(f,d){if(!e)return null;for(;d!==null;)t(f,d),d=d.sibling;return null}function a(f,d){for(f=new Map;d!==null;
vendor: 1,832 bytes, line 38
38)d.key!==null?f.set(d.key,d):f.set(d.index,d),d=d.sibling;return f}function s(f,d){return f=sr(f,d),f.index=0,f.sibling=null,f}function i(f,d,g){return f.index=g,e?(g=f.alternate,g!==null?(g=g.index,g<d?(f.flags|=2,d):g):(f.flags|=2,d)):(f.flags|=1048576,d)}function l(f){return e&&f.alternate===null&&(f.flags|=2),f}function o(f,d,g,y){return d===null||d.tag!==6?(d=$i(g,f.mode,y),d.return=f,d):(d=s(d,g),d.return=f,d)}function u(f,d,g,y){var w=g.type;return w===qr?p(f,d,g.props.children,y,g.key):d!==null&&(d.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Dt&&Ju(w)===d.type)?(y=s(d,g.props),y.ref=Cn(f,d,g),y.return=f,y):(y=xs(g.type,g.key,g.props,null,f.mode,y),y.ref=Cn(f,d,g),y.return=f,y)}function c(f,d,g,y){return d===null||d.tag!==4||d.stateNode.containerInfo!==g.containerInfo||d.stateNode.implementation!==g.implementation?(d=Ki(g,f.mode,y),d.return=f,d):(d=s(d,g.children||[]),d.return=f,d)}function p(f,d,g,y,w){return d===null||d.tag!==7?(d=Nr(g,f.mode,y,w),d.return=f,d):(d=s(d,g),d.return=f,d)}function m(f,d,g){if(typeof d=="string"&&d!==""||typeof d=="number")return d=$i(""+d,f.mode,g),d.return=f,d;if(typeof d=="object"&&d!==null){switch(d.$$typeof){case Ma:return g=xs(d.type,d.key,d.props,null,f.mode,g),g.ref=Cn(f,null,d),g.return=f,g;case Ar:return d=Ki(d,f.mode,g),d.return=f,d;case Dt:var y=d._init;return m(f,y(d._payload),g)}if(Hn(d)||Nn(d))return d=Nr(d,f.mode,g,null),d.return=f,d;Ka(f,d)}return null}function h(f,d,g,y){var w=d!==null?d.key:null;if(typeof g=="string"&&g!==""||typeof g=="number")return w!==null?null:o(f,d,""+g,y);if(typeof g=="object"&&g!==null){switch(g.$$typeof){case Ma:return g.key===w?u(f,d,g,y):null;case Ar:return g.key===w?c(f,d,g,y):null;case Dt:return w=g._init,h(f,d,w(g._payload),y)}if(Hn(g)||Nn(g))return w!==null?null:p(f,d,g,y,null);Ka(f,g)}return null}
vendor: 21,137 bytes, lines 38-40
38function v(f,d,g,y,w){if(typeof y=="string"&&y!==""||typeof y=="number")return f=f.get(g)||null,o(d,f,""+y,w);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case Ma:return f=f.get(y.key===null?g:y.key)||null,u(d,f,y,w);case Ar:return f=f.get(y.key===null?g:y.key)||null,c(d,f,y,w);case Dt:var P=y._init;return v(f,d,g,P(y._payload),w)}if(Hn(y)||Nn(y))return f=f.get(g)||null,p(d,f,y,w,null);Ka(d,y)}return null}function j(f,d,g,y){for(var w=null,P=null,T=d,z=d=0,C=null;T!==null&&z<g.length;z++){T.index>z?(C=T,T=null):C=T.sibling;var N=h(f,T,g[z],y);if(N===null){T===null&&(T=C);break}e&&T&&N.alternate===null&&t(f,T),d=i(N,d,z),P===null?w=N:P.sibling=N,P=N,T=C}if(z===g.length)return n(f,T),G&&fr(f,z),w;if(T===null){for(;z<g.length;z++)T=m(f,g[z],y),T!==null&&(d=i(T,d,z),P===null?w=T:P.sibling=T,P=T);return G&&fr(f,z),w}for(T=a(f,T);z<g.length;z++)C=v(T,f,z,g[z],y),C!==null&&(e&&C.alternate!==null&&T.delete(C.key===null?z:C.key),d=i(C,d,z),P===null?w=C:P.sibling=C,P=C);return e&&T.forEach(function(A){return t(f,A)}),G&&fr(f,z),w}function b(f,d,g,y){var w=Nn(g);if(typeof w!="function")throw Error(k(150));if(g=w.call(g),g==null)throw Error(k(151));for(var P=w=null,T=d,z=d=0,C=null,N=g.next();T!==null&&!N.done;z++,N=g.next()){T.index>z?(C=T,T=null):C=T.sibling;var A=h(f,T,N.value,y);if(A===null){T===null&&(T=C);break}e&&T&&A.alternate===null&&t(f,T),d=i(A,d,z),P===null?w=A:P.sibling=A,P=A,T=C}if(N.done)return n(f,T),G&&fr(f,z),w;if(T===null){for(;!N.done;z++,N=g.next())N=m(f,N.value,y),N!==null&&(d=i(N,d,z),P===null?w=N:P.sibling=N,P=N);return G&&fr(f,z),w}for(T=a(f,T);!N.done;z++,N=g.next())N=v(T,f,z,N.value,y),N!==null&&(e&&N.alternate!==null&&T.delete(N.key===null?z:N.key),d=i(N,d,z),P===null?w=N:P.sibling=N,P=N);return e&&T.forEach(function(Y){return t(f,Y)}),G&&fr(f,z),w}function S(f,d,g,y){if(typeof g=="object"&&g!==null&&g.type===qr&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case Ma:e:{for(var w=g.key,P=d;P!==null;){if(P.key===w){if(w=g.type,w===qr){if(P.tag===7){n(f,P.sibling),d=s(P,g.props.children),d.return=f,f=d;break e}}else if(P.elementType===w||typeof w=="object"&&w!==null&&w.$$typeof===Dt&&Ju(w)===P.type){n(f,P.sibling),d=s(P,g.props),d.ref=Cn(f,P,g),d.return=f,f=d;break e}n(f,P);break}else t(f,P);P=P.sibling}g.type===qr?(d=Nr(g.props.children,f.mode,y,g.key),d.return=f,f=d):(y=xs(g.type,g.key,g.props,null,f.mode,y),y.ref=Cn(f,d,g),y.return=f,f=y)}return l(f);case Ar:e:{for(P=g.key;d!==null;){if(d.key===P)if(d.tag===4&&d.stateNode.containerInfo===g.containerInfo&&d.stateNode.implementation===g.implementation){n(f,d.sibling),d=s(d,g.children||[]),d.return=f,f=d;break e}else{n(f,d);break}else t(f,d);d=d.sibling}d=Ki(g,f.mode,y),d.return=f,f=d}return l(f);case Dt:return P=g._init,S(f,d,P(g._payload),y)}if(Hn(g))return j(f,d,g,y);if(Nn(g))return b(f,d,g,y);Ka(f,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,d!==null&&d.tag===6?(n(f,d.sibling),d=s(d,g),d.return=f,f=d):(n(f,d),d=$i(g,f.mode,y),d.return=f,f=d),l(f)):n(f,d)}return S}var hn=Em(!0),zm=Em(!1),As=ur(null),qs=null,$r=null,zo=null;function Ro(){zo=$r=qs=null}function Co(e){var t=As.current;$(As),e._currentValue=t}function Fl(e,t,n){for(;e!==null;){var a=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,a!==null&&(a.childLanes|=t)):a!==null&&(a.childLanes&t)!==t&&(a.childLanes|=t),e===n)break;e=e.return}}function Jr(e,t){qs=e,zo=$r=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(Ee=!0),e.firstContext=null)}function Ge(e){var t=e._currentValue;if(zo!==e)if(e={context:e,memoizedValue:t,next:null},$r===null){if(qs===null)throw Error(k(308));$r=e,qs.dependencies={lanes:0,firstContext:e}}else $r=$r.next=e;return t}var vr=null;function Io(e){vr===null?vr=[e]:vr.push(e)}function Rm(e,t,n,a){var s=t.interleaved;return s===null?(n.next=n,Io(t)):(n.next=s.next,s.next=n),t.interleaved=n,Rt(e,a)}function Rt(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var Ot=!1;function Fo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Cm(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Tt(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function rr(e,t,n){var a=e.updateQueue;if(a===null)return null;if(a=a.shared,O&2){var s=a.pending;return s===null?t.next=t:(t.next=s.next,s.next=t),a.pending=t,Rt(e,n)}return s=a.interleaved,s===null?(t.next=t,Io(a)):(t.next=s.next,s.next=t),a.interleaved=t,Rt(e,n)}function ds(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,bo(e,n)}}function ec(e,t){var n=e.updateQueue,a=e.alternate;if(a!==null&&(a=a.updateQueue,n===a)){var s=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var l={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?s=i=l:i=i.next=l,n=n.next}while(n!==null);i===null?s=i=t:i=i.next=t}else s=i=t;n={baseState:a.baseState,firstBaseUpdate:s,lastBaseUpdate:i,shared:a.shared,effects:a.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Ds(e,t,n,a){var s=e.updateQueue;Ot=!1;var i=s.firstBaseUpdate,l=s.lastBaseUpdate,o=s.shared.pending;if(o!==null){s.shared.pending=null;var u=o,c=u.next;u.next=null,l===null?i=c:l.next=c,l=u;var p=e.alternate;p!==null&&(p=p.updateQueue,o=p.lastBaseUpdate,o!==l&&(o===null?p.firstBaseUpdate=c:o.next=c,p.lastBaseUpdate=u))}if(i!==null){var m=s.baseState;l=0,p=c=u=null,o=i;do{var h=o.lane,v=o.eventTime;if((a&h)===h){p!==null&&(p=p.next={eventTime:v,lane:0,tag:o.tag,payload:o.payload,callback:o.callback,next:null});e:{var j=e,b=o;switch(h=t,v=n,b.tag){case 1:if(j=b.payload,typeof j=="function"){m=j.call(v,m,h);break e}m=j;break e;case 3:j.flags=j.flags&-65537|128;case 0:if(j=b.payload,h=typeof j=="function"?j.call(v,m,h):j,h==null)break e;m=te({},m,h);break e;case 2:Ot=!0}}o.callback!==null&&o.lane!==0&&(e.flags|=64,h=s.effects,h===null?s.effects=[o]:h.push(o))}else v={eventTime:v,lane:h,tag:o.tag,payload:o.payload,callback:o.callback,next:null},p===null?(c=p=v,u=m):p=p.next=v,l|=h;if(o=o.next,o===null){if(o=s.shared.pending,o===null)break;h=o,o=h.next,h.next=null,s.lastBaseUpdate=h,s.shared.pending=null}}while(!0);if(p===null&&(u=m),s.baseState=u,s.firstBaseUpdate=c,s.lastBaseUpdate=p,t=s.shared.interleaved,t!==null){s=t;do l|=s.lane,s=s.next;while(s!==t)}else i===null&&(s.shared.lanes=0);Rr|=l,e.lanes=l,e.memoizedState=m}}function tc(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var a=e[t],s=a.callback;if(s!==null){if(a.callback=null,a=n,typeof s!="function")throw Error(k(191,s));s.call(a)}}}var Na={},ft=ur(Na),pa=ur(Na),ha=ur(Na);function br(e){if(e===Na)throw Error(k(174));return e}function Lo(e,t){switch(B(ha,t),B(pa,e),B(ft,Na),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:hl(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=hl(t,e)}$(ft),B(ft,t)}function fn(){$(ft),$(pa),$(ha)}function Im(e){br(ha.current);var t=br(ft.current),n=hl(t,e.type);t!==n&&(B(pa,e),B(ft,n))}function Mo(e){pa.current===e&&($(ft),$(pa))}var X=ur(0);function Os(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Oi=[];function Ao(){for(var e=0;e<Oi.length;e++)Oi[e]._workInProgressVersionPrimary=null;Oi.length=0}var ms=Lt.ReactCurrentDispatcher,Hi=Lt.ReactCurrentBatchConfig,zr=0,J=null,ce=null,me=null,Hs=!1,Qn=!1,fa=0,Ng=0;function ve(){throw Error(k(321))}function qo(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!lt(e[n],t[n]))return!1;return!0}function Do(e,t,n,a,s,i){if(zr=i,J=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ms.current=e===null||e.memoizedState===null?Rg:Cg,e=n(a,s),Qn){i=0;do{if(Qn=!1,fa=0,25<=i)throw Error(k(301));i+=1,me=ce=null,t.updateQueue=null,ms.current=Ig,e=n(a,s)}while(Qn)}if(ms.current=Us,t=ce!==null&&ce.next!==null,zr=0,me=ce=J=null,Hs=!1,t)throw Error(k(300));return e}function Oo(){var e=fa!==0;return fa=0,e}function ut(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return me===null?J.memoizedState=me=e:me=me.next=e,me}function Ye(){if(ce===null){var e=J.alternate;e=e!==null?e.memoizedState:null}else e=ce.next;var t=me===null?J.memoizedState:me.next;if(t!==null)me=t,ce=e;else{if(e===null)throw Error(k(310));ce=e,e={memoizedState:ce.memoizedState,baseState:ce.baseState,baseQueue:ce.baseQueue,queue:ce.queue,next:null},me===null?J.memoizedState=me=e:me=me.next=e}return me}function ga(e,t){return typeof t=="function"?t(e):t}function Ui(e){var t=Ye(),n=t.queue;if(n===null)throw Error(k(311));n.lastRenderedReducer=e;var a=ce,s=a.baseQueue,i=n.pending;if(i!==null){if(s!==null){var l=s.next;s.next=i.next,i.next=l}a.baseQueue=s=i,n.pending=null}if(s!==null){i=s.next,a=a.baseState;var o=l=null,u=null,c=i;do{var p=c.lane;if((zr&p)===p)u!==null&&(u=u.next={lane:0,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null}),a=c.hasEagerState?c.eagerState:e(a,c.action);else{var m={lane:p,action:c.action,hasEagerState:c.hasEagerState,eagerState:c.eagerState,next:null};u===null?(o=u=m,l=a):u=u.next=m,J.lanes|=p,Rr|=p}c=c.next}while(c!==null&&c!==i);u===null?l=a:u.next=o,lt(a,t.memoizedState)||(Ee=!0),t.memoizedState=a,t.baseState=l,t.baseQueue=u,n.lastRenderedState=a}if(e=n.interleaved,e!==null){s=e;do i=s.lane,J.lanes|=i,Rr|=i,s=s.next;while(s!==e)}else s===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Vi(e){var t=Ye(),n=t.queue;if(n===null)throw Error(k(311));n.lastRenderedReducer=e;var a=n.dispatch,s=n.pending,i=t.memoizedState;if(s!==null){n.pending=null;var l=s=s.next;do i=e(i,l.action),l=l.next;while(l!==s);lt(i,t.memoizedState)||(Ee=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,a]}function Fm(){}function Lm(e,t){var n=J,a=Ye(),s=t(),i=!lt(a.memoizedState,s);if(i&&(a.memoizedState=s,Ee=!0),a=a.queue,Ho(qm.bind(null,n,a,e),[e]),a.getSnapshot!==t||i||me!==null&&me.memoizedState.tag&1){if(n.flags|=2048,xa(9,Am.bind(null,n,a,s,t),void 0,null),pe===null)throw Error(k(349));zr&30||Mm(n,t,s)}return s}function Mm(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=J.updateQueue,t===null?(t={lastEffect:null,stores:null},J.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Am(e,t,n,a){t.value=n,t.getSnapshot=a,Dm(t)&&Om(e)}function qm(e,t,n){return n(function(){Dm(t)&&Om(e)})}function Dm(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!lt(e,n)}catch{return!0}}function Om(e){var t=Rt(e,1);t!==null&&st(t,e,1,-1)}function rc(e){var t=ut();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ga,lastRenderedState:e},t.queue=e,e=e.dispatch=zg.bind(null,J,e),[t.memoizedState,e]}function xa(e,t,n,a){return e={tag:e,create:t,destroy:n,deps:a,next:null},t=J.updateQueue,t===null?(t={lastEffect:null,stores:null},J.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(a=n.next,n.next=e,e.next=a,t.lastEffect=e)),e}function Hm(){return Ye().memoizedState}function ps(e,t,n,a){var s=ut();J.flags|=e,s.memoizedState=xa(1|t,n,void 0,a===void 0?null:a)}function ii(e,t,n,a){var s=Ye();a=a===void 0?null:a;var i=void 0;if(ce!==null){var l=ce.memoizedState;if(i=l.destroy,a!==null&&qo(a,l.deps)){s.memoizedState=xa(t,n,i,a);return}}J.flags|=e,s.memoizedState=xa(1|t,n,i,a)}function nc(e,t){return ps(8390656,8,e,t)}function Ho(e,t){return ii(2048,8,e,t)}function Um(e,t){return ii(4,2,e,t)}function Vm(e,t){return ii(4,4,e,t)}function Bm(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Wm(e,t,n){return n=n!=null?n.concat([e]):null,ii(4,4,Bm.bind(null,t,e),n)}function Uo(){}function $m(e,t){var n=Ye();t=t===void 0?null:t;var a=n.memoizedState;return a!==null&&t!==null&&qo(t,a[1])?a[0]:(n.memoizedState=[e,t],e)}function Km(e,t){var n=Ye();t=t===void 0?null:t;var a=n.memoizedState;return a!==null&&t!==null&&qo(t,a[1])?a[0]:(e=e(),n.memoizedState=[e,t],e)}function Gm(e,t,n){return zr&21?(lt(n,t)||(n=Jd(),J.lanes|=n,Rr|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Ee=!0),e.memoizedState=n)}function Tg(e,t){var n=U;U=n!==0&&4>n?n:4,e(!0);var a=Hi.transition;Hi.transition={};try{e(!1),t()}finally{U=n,Hi.transition=a}}function Ym(){return Ye().memoizedState}function Eg(e,t,n){var a=ar(e);if(n={lane:a,action:n,hasEagerState:!1,eagerState:null,next:null},Qm(e))Zm(t,n);else if(n=Rm(e,t,n,a),n!==null){var s=Pe();st(n,e,a,s),Xm(n,t,a)}}function zg(e,t,n){var a=ar(e),s={lane:a,action:n,hasEagerState:!1,eagerState:null,next:null};if(Qm(e))Zm(t,s);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var l=t.lastRenderedState,o=i(l,n);if(s.hasEagerState=!0,s.eagerState=o,lt(o,l)){var u=t.interleaved;u===null?(s.next=s,Io(t)):(s.next=u.next,u.next=s),t.interleaved=s;return}}catch{}finally{}n=Rm(e,t,s,a),n!==null&&(s=Pe(),st(n,e,a,s),Xm(n,t,a))}}function Qm(e){var t=e.alternate;return e===J||t!==null&&t===J}function Zm(e,t){Qn=Hs=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Xm(e,t,n){if(n&4194240){var a=t.lanes;a&=e.pendingLanes,n|=a,t.lanes=n,bo(e,n)}}var Us={readContext:Ge,useCallback:ve,useContext:ve,useEffect:ve,useImperativeHandle:ve,useInsertionEffect:ve,useLayoutEffect:ve,useMemo:ve,useReducer:ve,useRef:ve,useState:ve,useDebugValue:ve,useDeferredValue:ve,useTransition:ve,useMutableSource:ve,useSyncExternalStore:ve,useId:ve,unstable_isNewReconciler:!1},Rg={readContext:Ge,useCallback:function(e,t){return ut().memoizedState=[e,t===void 0?null:t],e},useContext:Ge,useEffect:nc,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ps(4194308,4,Bm.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ps(4194308,4,e,t)},useInsertionEffect:function(e,t){return ps(4,2,e,t)},useMemo:function(e,t){var n=ut();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var a=ut();return t=n!==void 0?n(t):t,a.memoizedState=a.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},a.queue=e,e=e.dispatch=Eg.bind(null,J,e),[a.memoizedState,e]},useRef:function(e){var t=ut();return e={current:e},t.memoizedState=e},useState:rc,useDebugValue:Uo,useDeferredValue:function(e){return ut().memoizedState=e},useTransition:function(){var e=rc(!1),t=e[0];return e=Tg.bind(null,e[1]),ut().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var a=J,s=ut();if(G){if(n===void 0)throw Error(k(407));n=n()}else{if(n=t(),pe===null)throw Error(k(349));zr&30||Mm(a,t,n)}s.memoizedState=n;var i={value:n,getSnapshot:t};return s.queue=i,nc(qm.bind(null,a,i,e),[e]),a.flags|=2048,xa(9,Am.bind(null,a,i,n,t),void 0,null),n},useId:function(){var e=ut(),t=pe.identifierPrefix;if(G){var n=Nt,a=kt;n=(a&~(1<<32-at(a)-1)).toString(32)+n,t=":"+t+"R"+n,n=fa++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=Ng++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},Cg={readContext:Ge,useCallback:$m,useContext:Ge,useEffect:Ho,useImperativeHandle:Wm,useInsertionEffect:Um,useLayoutEffect:Vm,useMemo:Km,useReducer:Ui,useRef:Hm,useState:function(){return Ui(ga)},useDebugValue:Uo,useDeferredValue:function(e){var t=Ye();return Gm(t,ce.memoizedState,e)},useTransition:function(){var e=Ui(ga)[0],t=Ye().memoizedState;return[e,t]},useMutableSource:Fm,useSyncExternalStore:Lm,useId:Ym,unstable_isNewReconciler:!1},Ig={readContext:Ge,useCallback:$m,useContext:Ge,useEffect:Ho,useImperativeHandle:Wm,useInsertionEffect:Um,useLayoutEffect:Vm,useMemo:Km,useReducer:Vi,useRef:Hm,useState:function(){return Vi(ga)},useDebugValue:Uo,useDeferredValue:function(e){var t=Ye();return ce===null?t.memoizedState=e:Gm(t,ce.memoizedState,e)},useTransition:function(){var e=Vi(ga)[0],t=Ye().memoizedState;return[e,t]},useMutableSource:Fm,useSyncExternalStore:Lm,useId:Ym,unstable_isNewReconciler:!1};function Je(e,t){if(e&&e.defaultProps){t=te({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Ll(e,t,n,a){t=e.memoizedState,n=n(a,t),n=n==null?t:te({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var li={isMounted:function(e){return(e=e._reactInternals)?Fr(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var a=Pe(),s=ar(e),i=Tt(a,s);i.payload=t,n!=null&&(i.callback=n),t=rr(e,i,s),t!==null&&(st(t,e,s,a),ds(t,e,s))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var a=Pe(),s=ar(e),i=Tt(a,s);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=rr(e,i,s),t!==null&&(st(t,e,s,a),ds(t,e,s))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Pe(),a=ar(e),s=Tt(n,a);s.tag=2,t!=null&&(s.callback=t),t=rr(e,s,a),t!==null&&(st(t,e,a,n),ds(t,e,a))}};function ac(e,t,n,a,s,i,l){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(a,i,l):t.prototype&&t.prototype.isPureReactComponent?!ua(n,a)||!ua(s,i):!0}function Jm(e,t,n){var a=!1,s=lr,i=t.contextType;return typeof i=="object"&&i!==null?i=Ge(i):(s=Re(t)?Tr:we.current,a=t.contextTypes,i=(a=a!=null)?mn(e,s):lr),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=li,e.stateNode=t,t._reactInternals=e,a&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=s,e.__reactInternalMemoizedMaskedChildContext=i),t}function sc(e,t,n,a){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,a),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,a),t.state!==e&&li.enqueueReplaceState(t,t.state,null)}function Ml(e,t,n,a){var s=e.stateNode;s.props=n,s.state=e.memoizedState,s.refs={},Fo(e);var i=t.contextType;typeof i=="object"&&i!==null?s.context=Ge(i):(i=Re(t)?Tr:we.current,s.context=mn(e,i)),s.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(Ll(e,t,i,n),s.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof s.getSnapshotBeforeUpdate=="function"||typeof s.UNSAFE_componentWillMount!="function"&&typeof s.componentWillMount!="function"||(t=s.state,typeof s.componentWillMount=="function"&&s.componentWillMount(),typeof s.UNSAFE_componentWillMount=="function"&&s.UNSAFE_componentWillMount(),t!==s.state&&li.enqueueReplaceState(s,s.state,null),Ds(e,n,s,a),s.state=e.memoizedState),typeof s.componentDidMount=="function"&&(e.flags|=4194308)}function gn(e,t){try{var n="",a=t;do n+=lf(a),a=a.return;while(a);var s=n}catch(i){s=` 39Error generating stack: `+i.message+` 40`+i.stack}return{value:e,source:t,stack:s,digest:null}}function Bi(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Al(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var Fg=typeof WeakMap=="function"?WeakMap:Map;function ep(e,t,n){n=Tt(-1,n),n.tag=3,n.payload={element:null};var a=t.value;return n.callback=function(){Bs||(Bs=!0,Kl=a),Al(e,t)},n}function tp(e,t,n){n=Tt(-1,n),n.tag=3;var a=e.type.getDerivedStateFromError;if(typeof a=="function"){var s=t.value;n.payload=function(){return a(s)},n.callback=function(){Al(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){Al(e,t),typeof a!="function"&&(nr===null?nr=new Set([this]):nr.add(this));var l=t.stack;this.componentDidCatch(t.value,{componentStack:l!==null?l:""})}),n}function ic(e,t,n){var a=e.pingCache;if(a===null){a=e.pingCache=new Fg;var s=new Set;a.set(t,s)}else s=a.get(t),s===void 0&&(s=new Set,a.set(t,s));s.has(n)||(s.add(n),e=Gg.bind(null,e,t,n),t.then(e,e))}function lc(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function oc(e,t,n,a,s){return e.mode&1?(e.flags|=65536,e.lanes=s,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Tt(-1,1),t.tag=2,rr(n,t,1))),n.lanes|=1),e)}var Lg=Lt.ReactCurrentOwner,Ee=!1;function Se(e,t,n,a){t.child=e===null?zm(t,null,n,a):hn(t,e.child,n,a)}function uc(e,t,n,a,s){n=n.render;var i=t.ref;return Jr(t,s),a=Do(e,t,n,a,i,s),n=Oo(),e!==null&&!Ee?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,Ct(e,t,s)):(G&&n&&No(t),t.flags|=1,Se(e,t,a,s),t.child)}
vendor: 9,508 bytes, line 40
40function cc(e,t,n,a,s){if(e===null){var i=n.type;return typeof i=="function"&&!Qo(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,rp(e,t,i,a,s)):(e=xs(n.type,null,a,t,t.mode,s),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&s)){var l=i.memoizedProps;if(n=n.compare,n=n!==null?n:ua,n(l,a)&&e.ref===t.ref)return Ct(e,t,s)}return t.flags|=1,e=sr(i,a),e.ref=t.ref,e.return=t,t.child=e}function rp(e,t,n,a,s){if(e!==null){var i=e.memoizedProps;if(ua(i,a)&&e.ref===t.ref)if(Ee=!1,t.pendingProps=a=i,(e.lanes&s)!==0)e.flags&131072&&(Ee=!0);else return t.lanes=e.lanes,Ct(e,t,s)}return ql(e,t,n,a,s)}function np(e,t,n){var a=t.pendingProps,s=a.children,i=e!==null?e.memoizedState:null;if(a.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},B(Gr,Le),Le|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,B(Gr,Le),Le|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},a=i!==null?i.baseLanes:n,B(Gr,Le),Le|=a}else i!==null?(a=i.baseLanes|n,t.memoizedState=null):a=n,B(Gr,Le),Le|=a;return Se(e,t,s,n),t.child}function ap(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function ql(e,t,n,a,s){var i=Re(n)?Tr:we.current;return i=mn(t,i),Jr(t,s),n=Do(e,t,n,a,i,s),a=Oo(),e!==null&&!Ee?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~s,Ct(e,t,s)):(G&&a&&No(t),t.flags|=1,Se(e,t,n,s),t.child)}function dc(e,t,n,a,s){if(Re(n)){var i=!0;Fs(t)}else i=!1;if(Jr(t,s),t.stateNode===null)hs(e,t),Jm(t,n,a),Ml(t,n,a,s),a=!0;else if(e===null){var l=t.stateNode,o=t.memoizedProps;l.props=o;var u=l.context,c=n.contextType;typeof c=="object"&&c!==null?c=Ge(c):(c=Re(n)?Tr:we.current,c=mn(t,c));var p=n.getDerivedStateFromProps,m=typeof p=="function"||typeof l.getSnapshotBeforeUpdate=="function";m||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(o!==a||u!==c)&&sc(t,l,a,c),Ot=!1;var h=t.memoizedState;l.state=h,Ds(t,a,l,s),u=t.memoizedState,o!==a||h!==u||ze.current||Ot?(typeof p=="function"&&(Ll(t,n,p,a),u=t.memoizedState),(o=Ot||ac(t,n,o,a,h,u,c))?(m||typeof l.UNSAFE_componentWillMount!="function"&&typeof l.componentWillMount!="function"||(typeof l.componentWillMount=="function"&&l.componentWillMount(),typeof l.UNSAFE_componentWillMount=="function"&&l.UNSAFE_componentWillMount()),typeof l.componentDidMount=="function"&&(t.flags|=4194308)):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=a,t.memoizedState=u),l.props=a,l.state=u,l.context=c,a=o):(typeof l.componentDidMount=="function"&&(t.flags|=4194308),a=!1)}else{l=t.stateNode,Cm(e,t),o=t.memoizedProps,c=t.type===t.elementType?o:Je(t.type,o),l.props=c,m=t.pendingProps,h=l.context,u=n.contextType,typeof u=="object"&&u!==null?u=Ge(u):(u=Re(n)?Tr:we.current,u=mn(t,u));var v=n.getDerivedStateFromProps;(p=typeof v=="function"||typeof l.getSnapshotBeforeUpdate=="function")||typeof l.UNSAFE_componentWillReceiveProps!="function"&&typeof l.componentWillReceiveProps!="function"||(o!==m||h!==u)&&sc(t,l,a,u),Ot=!1,h=t.memoizedState,l.state=h,Ds(t,a,l,s);var j=t.memoizedState;o!==m||h!==j||ze.current||Ot?(typeof v=="function"&&(Ll(t,n,v,a),j=t.memoizedState),(c=Ot||ac(t,n,c,a,h,j,u)||!1)?(p||typeof l.UNSAFE_componentWillUpdate!="function"&&typeof l.componentWillUpdate!="function"||(typeof l.componentWillUpdate=="function"&&l.componentWillUpdate(a,j,u),typeof l.UNSAFE_componentWillUpdate=="function"&&l.UNSAFE_componentWillUpdate(a,j,u)),typeof l.componentDidUpdate=="function"&&(t.flags|=4),typeof l.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof l.componentDidUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=a,t.memoizedState=j),l.props=a,l.state=j,l.context=u,a=c):(typeof l.componentDidUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof l.getSnapshotBeforeUpdate!="function"||o===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),a=!1)}return Dl(e,t,n,a,i,s)}function Dl(e,t,n,a,s,i){ap(e,t);var l=(t.flags&128)!==0;if(!a&&!l)return s&&Qu(t,n,!1),Ct(e,t,i);a=t.stateNode,Lg.current=t;var o=l&&typeof n.getDerivedStateFromError!="function"?null:a.render();return t.flags|=1,e!==null&&l?(t.child=hn(t,e.child,null,i),t.child=hn(t,null,o,i)):Se(e,t,o,i),t.memoizedState=a.state,s&&Qu(t,n,!0),t.child}function sp(e){var t=e.stateNode;t.pendingContext?Yu(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Yu(e,t.context,!1),Lo(e,t.containerInfo)}function mc(e,t,n,a,s){return pn(),Eo(s),t.flags|=256,Se(e,t,n,a),t.child}var Ol={dehydrated:null,treeContext:null,retryLane:0};function Hl(e){return{baseLanes:e,cachePool:null,transitions:null}}function ip(e,t,n){var a=t.pendingProps,s=X.current,i=!1,l=(t.flags&128)!==0,o;if((o=l)||(o=e!==null&&e.memoizedState===null?!1:(s&2)!==0),o?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(s|=1),B(X,s&1),e===null)return Il(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(l=a.children,e=a.fallback,i?(a=t.mode,i=t.child,l={mode:"hidden",children:l},!(a&1)&&i!==null?(i.childLanes=0,i.pendingProps=l):i=ci(l,a,0,null),e=Nr(e,a,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Hl(n),t.memoizedState=Ol,e):Vo(t,l));if(s=e.memoizedState,s!==null&&(o=s.dehydrated,o!==null))return Mg(e,t,l,a,o,s,n);if(i){i=a.fallback,l=t.mode,s=e.child,o=s.sibling;var u={mode:"hidden",children:a.children};return!(l&1)&&t.child!==s?(a=t.child,a.childLanes=0,a.pendingProps=u,t.deletions=null):(a=sr(s,u),a.subtreeFlags=s.subtreeFlags&14680064),o!==null?i=sr(o,i):(i=Nr(i,l,n,null),i.flags|=2),i.return=t,a.return=t,a.sibling=i,t.child=a,a=i,i=t.child,l=e.child.memoizedState,l=l===null?Hl(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},i.memoizedState=l,i.childLanes=e.childLanes&~n,t.memoizedState=Ol,a}return i=e.child,e=i.sibling,a=sr(i,{mode:"visible",children:a.children}),!(t.mode&1)&&(a.lanes=n),a.return=t,a.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Vo(e,t){return t=ci({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Ga(e,t,n,a){return a!==null&&Eo(a),hn(t,e.child,null,n),e=Vo(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function Mg(e,t,n,a,s,i,l){if(n)return t.flags&256?(t.flags&=-257,a=Bi(Error(k(422))),Ga(e,t,l,a)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=a.fallback,s=t.mode,a=ci({mode:"visible",children:a.children},s,0,null),i=Nr(i,s,l,null),i.flags|=2,a.return=t,i.return=t,a.sibling=i,t.child=a,t.mode&1&&hn(t,e.child,null,l),t.child.memoizedState=Hl(l),t.memoizedState=Ol,i);if(!(t.mode&1))return Ga(e,t,l,null);if(s.data==="$!"){if(a=s.nextSibling&&s.nextSibling.dataset,a)var o=a.dgst;return a=o,i=Error(k(419)),a=Bi(i,a,void 0),Ga(e,t,l,a)}if(o=(l&e.childLanes)!==0,Ee||o){if(a=pe,a!==null){switch(l&-l){case 4:s=2;break;case 16:s=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:s=32;break;case 536870912:s=268435456;break;default:s=0}s=s&(a.suspendedLanes|l)?0:s,s!==0&&s!==i.retryLane&&(i.retryLane=s,Rt(e,s),st(a,e,s,-1))}return Yo(),a=Bi(Error(k(421))),Ga(e,t,l,a)}return s.data==="$?"?(t.flags|=128,t.child=e.child,t=Yg.bind(null,e),s._reactRetry=t,null):(e=i.treeContext,Me=tr(s.nextSibling),Ae=t,G=!0,nt=null,e!==null&&(Be[We++]=kt,Be[We++]=Nt,Be[We++]=Er,kt=e.id,Nt=e.overflow,Er=t),t=Vo(t,a.children),t.flags|=4096,t)}function pc(e,t,n){e.lanes|=t;var a=e.alternate;a!==null&&(a.lanes|=t),Fl(e.return,t,n)}function Wi(e,t,n,a,s){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:a,tail:n,tailMode:s}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=a,i.tail=n,i.tailMode=s)}function lp(e,t,n){var a=t.pendingProps,s=a.revealOrder,i=a.tail;if(Se(e,t,a.children,n),a=X.current,a&2)a=a&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&pc(e,n,t);else if(e.tag===19)pc(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}a&=1}if(B(X,a),!(t.mode&1))t.memoizedState=null;else switch(s){case"forwards":for(n=t.child,s=null;n!==null;)e=n.alternate,e!==null&&Os(e)===null&&(s=n),n=n.sibling;n=s,n===null?(s=t.child,t.child=null):(s=n.sibling,n.sibling=null),Wi(t,!1,s,n,i);break;case"backwards":for(n=null,s=t.child,t.child=null;s!==null;){if(e=s.alternate,e!==null&&Os(e)===null){t.child=s;break}e=s.sibling,s.sibling=n,n=s,s=e}Wi(t,!0,n,null,i);break;case"together":Wi(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function hs(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Ct(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),Rr|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(k(153));
vendor: 3,156 bytes, line 40
40if(t.child!==null){for(e=t.child,n=sr(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=sr(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function Ag(e,t,n){switch(t.tag){case 3:sp(t),pn();break;case 5:Im(t);break;case 1:Re(t.type)&&Fs(t);break;case 4:Lo(t,t.stateNode.containerInfo);break;case 10:var a=t.type._context,s=t.memoizedProps.value;B(As,a._currentValue),a._currentValue=s;break;case 13:if(a=t.memoizedState,a!==null)return a.dehydrated!==null?(B(X,X.current&1),t.flags|=128,null):n&t.child.childLanes?ip(e,t,n):(B(X,X.current&1),e=Ct(e,t,n),e!==null?e.sibling:null);B(X,X.current&1);break;case 19:if(a=(n&t.childLanes)!==0,e.flags&128){if(a)return lp(e,t,n);t.flags|=128}if(s=t.memoizedState,s!==null&&(s.rendering=null,s.tail=null,s.lastEffect=null),B(X,X.current),a)break;return null;case 22:case 23:return t.lanes=0,np(e,t,n)}return Ct(e,t,n)}var op,Ul,up,cp;op=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Ul=function(){};up=function(e,t,n,a){var s=e.memoizedProps;if(s!==a){e=t.stateNode,br(ft.current);var i=null;switch(n){case"input":s=cl(e,s),a=cl(e,a),i=[];break;case"select":s=te({},s,{value:void 0}),a=te({},a,{value:void 0}),i=[];break;case"textarea":s=pl(e,s),a=pl(e,a),i=[];break;default:typeof s.onClick!="function"&&typeof a.onClick=="function"&&(e.onclick=Cs)}fl(n,a);var l;n=null;for(c in s)if(!a.hasOwnProperty(c)&&s.hasOwnProperty(c)&&s[c]!=null)if(c==="style"){var o=s[c];for(l in o)o.hasOwnProperty(l)&&(n||(n={}),n[l]="")}else c!=="dangerouslySetInnerHTML"&&c!=="children"&&c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&c!=="autoFocus"&&(ra.hasOwnProperty(c)?i||(i=[]):(i=i||[]).push(c,null));for(c in a){var u=a[c];if(o=s!=null?s[c]:void 0,a.hasOwnProperty(c)&&u!==o&&(u!=null||o!=null))if(c==="style")if(o){for(l in o)!o.hasOwnProperty(l)||u&&u.hasOwnProperty(l)||(n||(n={}),n[l]="");for(l in u)u.hasOwnProperty(l)&&o[l]!==u[l]&&(n||(n={}),n[l]=u[l])}else n||(i||(i=[]),i.push(c,n)),n=u;else c==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,o=o?o.__html:void 0,u!=null&&o!==u&&(i=i||[]).push(c,u)):c==="children"?typeof u!="string"&&typeof u!="number"||(i=i||[]).push(c,""+u):c!=="suppressContentEditableWarning"&&c!=="suppressHydrationWarning"&&(ra.hasOwnProperty(c)?(u!=null&&c==="onScroll"&&W("scroll",e),i||o===u||(i=[])):(i=i||[]).push(c,u))}n&&(i=i||[]).push("style",n);var c=i;(t.updateQueue=c)&&(t.flags|=4)}};cp=function(e,t,n,a){n!==a&&(t.flags|=4)};function In(e,t){if(!G)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:a.sibling=null}}function be(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,a=0;if(t)for(var s=e.child;s!==null;
vendor: 33,907 bytes, line 40
40)n|=s.lanes|s.childLanes,a|=s.subtreeFlags&14680064,a|=s.flags&14680064,s.return=e,s=s.sibling;else for(s=e.child;s!==null;)n|=s.lanes|s.childLanes,a|=s.subtreeFlags,a|=s.flags,s.return=e,s=s.sibling;return e.subtreeFlags|=a,e.childLanes=n,t}function qg(e,t,n){var a=t.pendingProps;switch(To(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return be(t),null;case 1:return Re(t.type)&&Is(),be(t),null;case 3:return a=t.stateNode,fn(),$(ze),$(we),Ao(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&($a(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,nt!==null&&(Ql(nt),nt=null))),Ul(e,t),be(t),null;case 5:Mo(t);var s=br(ha.current);if(n=t.type,e!==null&&t.stateNode!=null)up(e,t,n,a,s),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!a){if(t.stateNode===null)throw Error(k(166));return be(t),null}if(e=br(ft.current),$a(t)){a=t.stateNode,n=t.type;var i=t.memoizedProps;switch(a[pt]=t,a[ma]=i,e=(t.mode&1)!==0,n){case"dialog":W("cancel",a),W("close",a);break;case"iframe":case"object":case"embed":W("load",a);break;case"video":case"audio":for(s=0;s<Vn.length;s++)W(Vn[s],a);break;case"source":W("error",a);break;case"img":case"image":case"link":W("error",a),W("load",a);break;case"details":W("toggle",a);break;case"input":wu(a,i),W("invalid",a);break;case"select":a._wrapperState={wasMultiple:!!i.multiple},W("invalid",a);break;case"textarea":_u(a,i),W("invalid",a)}fl(n,i),s=null;for(var l in i)if(i.hasOwnProperty(l)){var o=i[l];l==="children"?typeof o=="string"?a.textContent!==o&&(i.suppressHydrationWarning!==!0&&Wa(a.textContent,o,e),s=["children",o]):typeof o=="number"&&a.textContent!==""+o&&(i.suppressHydrationWarning!==!0&&Wa(a.textContent,o,e),s=["children",""+o]):ra.hasOwnProperty(l)&&o!=null&&l==="onScroll"&&W("scroll",a)}switch(n){case"input":Aa(a),Su(a,i,!0);break;case"textarea":Aa(a),Pu(a);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(a.onclick=Cs)}a=s,t.updateQueue=a,a!==null&&(t.flags|=4)}else{l=s.nodeType===9?s:s.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=qd(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=l.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof a.is=="string"?e=l.createElement(n,{is:a.is}):(e=l.createElement(n),n==="select"&&(l=e,a.multiple?l.multiple=!0:a.size&&(l.size=a.size))):e=l.createElementNS(e,n),e[pt]=t,e[ma]=a,op(e,t,!1,!1),t.stateNode=e;e:{switch(l=gl(n,a),n){case"dialog":W("cancel",e),W("close",e),s=a;break;case"iframe":case"object":case"embed":W("load",e),s=a;break;case"video":case"audio":for(s=0;s<Vn.length;s++)W(Vn[s],e);s=a;break;case"source":W("error",e),s=a;break;case"img":case"image":case"link":W("error",e),W("load",e),s=a;break;case"details":W("toggle",e),s=a;break;case"input":wu(e,a),s=cl(e,a),W("invalid",e);break;case"option":s=a;break;case"select":e._wrapperState={wasMultiple:!!a.multiple},s=te({},a,{value:void 0}),W("invalid",e);break;case"textarea":_u(e,a),s=pl(e,a),W("invalid",e);break;default:s=a}fl(n,s),o=s;for(i in o)if(o.hasOwnProperty(i)){var u=o[i];i==="style"?Hd(e,u):i==="dangerouslySetInnerHTML"?(u=u?u.__html:void 0,u!=null&&Dd(e,u)):i==="children"?typeof u=="string"?(n!=="textarea"||u!=="")&&na(e,u):typeof u=="number"&&na(e,""+u):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(ra.hasOwnProperty(i)?u!=null&&i==="onScroll"&&W("scroll",e):u!=null&&po(e,i,u,l))}switch(n){case"input":Aa(e),Su(e,a,!1);break;case"textarea":Aa(e),Pu(e);break;case"option":a.value!=null&&e.setAttribute("value",""+ir(a.value));break;case"select":e.multiple=!!a.multiple,i=a.value,i!=null?Yr(e,!!a.multiple,i,!1):a.defaultValue!=null&&Yr(e,!!a.multiple,a.defaultValue,!0);break;default:typeof s.onClick=="function"&&(e.onclick=Cs)}switch(n){case"button":case"input":case"select":case"textarea":a=!!a.autoFocus;break e;case"img":a=!0;break e;default:a=!1}}a&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return be(t),null;case 6:if(e&&t.stateNode!=null)cp(e,t,e.memoizedProps,a);else{if(typeof a!="string"&&t.stateNode===null)throw Error(k(166));if(n=br(ha.current),br(ft.current),$a(t)){if(a=t.stateNode,n=t.memoizedProps,a[pt]=t,(i=a.nodeValue!==n)&&(e=Ae,e!==null))switch(e.tag){case 3:Wa(a.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Wa(a.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else a=(n.nodeType===9?n:n.ownerDocument).createTextNode(a),a[pt]=t,t.stateNode=a}return be(t),null;case 13:if($(X),a=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(G&&Me!==null&&t.mode&1&&!(t.flags&128))Tm(),pn(),t.flags|=98560,i=!1;else if(i=$a(t),a!==null&&a.dehydrated!==null){if(e===null){if(!i)throw Error(k(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(k(317));i[pt]=t}else pn(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;be(t),i=!1}else nt!==null&&(Ql(nt),nt=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(a=a!==null,a!==(e!==null&&e.memoizedState!==null)&&a&&(t.child.flags|=8192,t.mode&1&&(e===null||X.current&1?de===0&&(de=3):Yo())),t.updateQueue!==null&&(t.flags|=4),be(t),null);case 4:return fn(),Ul(e,t),e===null&&ca(t.stateNode.containerInfo),be(t),null;case 10:return Co(t.type._context),be(t),null;case 17:return Re(t.type)&&Is(),be(t),null;case 19:if($(X),i=t.memoizedState,i===null)return be(t),null;if(a=(t.flags&128)!==0,l=i.rendering,l===null)if(a)In(i,!1);else{if(de!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(l=Os(e),l!==null){for(t.flags|=128,In(i,!1),a=l.updateQueue,a!==null&&(t.updateQueue=a,t.flags|=4),t.subtreeFlags=0,a=n,n=t.child;n!==null;)i=n,e=a,i.flags&=14680066,l=i.alternate,l===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return B(X,X.current&1|2),t.child}e=e.sibling}i.tail!==null&&se()>xn&&(t.flags|=128,a=!0,In(i,!1),t.lanes=4194304)}else{if(!a)if(e=Os(l),e!==null){if(t.flags|=128,a=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),In(i,!0),i.tail===null&&i.tailMode==="hidden"&&!l.alternate&&!G)return be(t),null}else 2*se()-i.renderingStartTime>xn&&n!==1073741824&&(t.flags|=128,a=!0,In(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(n=i.last,n!==null?n.sibling=l:t.child=l,i.last=l)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=se(),t.sibling=null,n=X.current,B(X,a?n&1|2:n&1),t):(be(t),null);case 22:case 23:return Go(),a=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==a&&(t.flags|=8192),a&&t.mode&1?Le&1073741824&&(be(t),t.subtreeFlags&6&&(t.flags|=8192)):be(t),null;case 24:return null;case 25:return null}throw Error(k(156,t.tag))}function Dg(e,t){switch(To(t),t.tag){case 1:return Re(t.type)&&Is(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return fn(),$(ze),$(we),Ao(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return Mo(t),null;case 13:if($(X),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(k(340));pn()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return $(X),null;case 4:return fn(),null;case 10:return Co(t.type._context),null;case 22:case 23:return Go(),null;case 24:return null;default:return null}}var Ya=!1,je=!1,Og=typeof WeakSet=="function"?WeakSet:Set,R=null;function Kr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(a){ae(e,t,a)}else n.current=null}function Vl(e,t,n){try{n()}catch(a){ae(e,t,a)}}var hc=!1;function Hg(e,t){if(kl=Es,e=fm(),ko(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var a=n.getSelection&&n.getSelection();if(a&&a.rangeCount!==0){n=a.anchorNode;var s=a.anchorOffset,i=a.focusNode;a=a.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var l=0,o=-1,u=-1,c=0,p=0,m=e,h=null;t:for(;;){for(var v;m!==n||s!==0&&m.nodeType!==3||(o=l+s),m!==i||a!==0&&m.nodeType!==3||(u=l+a),m.nodeType===3&&(l+=m.nodeValue.length),(v=m.firstChild)!==null;)h=m,m=v;for(;;){if(m===e)break t;if(h===n&&++c===s&&(o=l),h===i&&++p===a&&(u=l),(v=m.nextSibling)!==null)break;m=h,h=m.parentNode}m=v}n=o===-1||u===-1?null:{start:o,end:u}}else n=null}n=n||{start:0,end:0}}else n=null;for(Nl={focusedElem:e,selectionRange:n},Es=!1,R=t;R!==null;)if(t=R,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,R=e;else for(;R!==null;){t=R;try{var j=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(j!==null){var b=j.memoizedProps,S=j.memoizedState,f=t.stateNode,d=f.getSnapshotBeforeUpdate(t.elementType===t.type?b:Je(t.type,b),S);f.__reactInternalSnapshotBeforeUpdate=d}break;case 3:var g=t.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(k(163))}}catch(y){ae(t,t.return,y)}if(e=t.sibling,e!==null){e.return=t.return,R=e;break}R=t.return}return j=hc,hc=!1,j}function Zn(e,t,n){var a=t.updateQueue;if(a=a!==null?a.lastEffect:null,a!==null){var s=a=a.next;do{if((s.tag&e)===e){var i=s.destroy;s.destroy=void 0,i!==void 0&&Vl(t,n,i)}s=s.next}while(s!==a)}}function oi(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var a=n.create;n.destroy=a()}n=n.next}while(n!==t)}}function Bl(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function dp(e){var t=e.alternate;t!==null&&(e.alternate=null,dp(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[pt],delete t[ma],delete t[zl],delete t[Sg],delete t[_g])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function mp(e){return e.tag===5||e.tag===3||e.tag===4}function fc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||mp(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Wl(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Cs));else if(a!==4&&(e=e.child,e!==null))for(Wl(e,t,n),e=e.sibling;e!==null;)Wl(e,t,n),e=e.sibling}function $l(e,t,n){var a=e.tag;if(a===5||a===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(a!==4&&(e=e.child,e!==null))for($l(e,t,n),e=e.sibling;e!==null;)$l(e,t,n),e=e.sibling}var he=null,rt=!1;function At(e,t,n){for(n=n.child;n!==null;)pp(e,t,n),n=n.sibling}function pp(e,t,n){if(ht&&typeof ht.onCommitFiberUnmount=="function")try{ht.onCommitFiberUnmount(ei,n)}catch{}switch(n.tag){case 5:je||Kr(n,t);case 6:var a=he,s=rt;he=null,At(e,t,n),he=a,rt=s,he!==null&&(rt?(e=he,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):he.removeChild(n.stateNode));break;case 18:he!==null&&(rt?(e=he,n=n.stateNode,e.nodeType===8?qi(e.parentNode,n):e.nodeType===1&&qi(e,n),la(e)):qi(he,n.stateNode));break;case 4:a=he,s=rt,he=n.stateNode.containerInfo,rt=!0,At(e,t,n),he=a,rt=s;break;case 0:case 11:case 14:case 15:if(!je&&(a=n.updateQueue,a!==null&&(a=a.lastEffect,a!==null))){s=a=a.next;do{var i=s,l=i.destroy;i=i.tag,l!==void 0&&(i&2||i&4)&&Vl(n,t,l),s=s.next}while(s!==a)}At(e,t,n);break;case 1:if(!je&&(Kr(n,t),a=n.stateNode,typeof a.componentWillUnmount=="function"))try{a.props=n.memoizedProps,a.state=n.memoizedState,a.componentWillUnmount()}catch(o){ae(n,t,o)}At(e,t,n);break;case 21:At(e,t,n);break;case 22:n.mode&1?(je=(a=je)||n.memoizedState!==null,At(e,t,n),je=a):At(e,t,n);break;default:At(e,t,n)}}function gc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new Og),t.forEach(function(a){var s=Qg.bind(null,e,a);n.has(a)||(n.add(a),a.then(s,s))})}}function Xe(e,t){var n=t.deletions;if(n!==null)for(var a=0;a<n.length;a++){var s=n[a];try{var i=e,l=t,o=l;e:for(;o!==null;){switch(o.tag){case 5:he=o.stateNode,rt=!1;break e;case 3:he=o.stateNode.containerInfo,rt=!0;break e;case 4:he=o.stateNode.containerInfo,rt=!0;break e}o=o.return}if(he===null)throw Error(k(160));pp(i,l,s),he=null,rt=!1;var u=s.alternate;u!==null&&(u.return=null),s.return=null}catch(c){ae(s,t,c)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)hp(t,e),t=t.sibling}function hp(e,t){var n=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Xe(t,e),ot(e),a&4){try{Zn(3,e,e.return),oi(3,e)}catch(b){ae(e,e.return,b)}try{Zn(5,e,e.return)}catch(b){ae(e,e.return,b)}}break;case 1:Xe(t,e),ot(e),a&512&&n!==null&&Kr(n,n.return);break;case 5:if(Xe(t,e),ot(e),a&512&&n!==null&&Kr(n,n.return),e.flags&32){var s=e.stateNode;try{na(s,"")}catch(b){ae(e,e.return,b)}}if(a&4&&(s=e.stateNode,s!=null)){var i=e.memoizedProps,l=n!==null?n.memoizedProps:i,o=e.type,u=e.updateQueue;if(e.updateQueue=null,u!==null)try{o==="input"&&i.type==="radio"&&i.name!=null&&Md(s,i),gl(o,l);var c=gl(o,i);for(l=0;l<u.length;l+=2){var p=u[l],m=u[l+1];p==="style"?Hd(s,m):p==="dangerouslySetInnerHTML"?Dd(s,m):p==="children"?na(s,m):po(s,p,m,c)}switch(o){case"input":dl(s,i);break;case"textarea":Ad(s,i);break;case"select":var h=s._wrapperState.wasMultiple;s._wrapperState.wasMultiple=!!i.multiple;var v=i.value;v!=null?Yr(s,!!i.multiple,v,!1):h!==!!i.multiple&&(i.defaultValue!=null?Yr(s,!!i.multiple,i.defaultValue,!0):Yr(s,!!i.multiple,i.multiple?[]:"",!1))}s[ma]=i}catch(b){ae(e,e.return,b)}}break;case 6:if(Xe(t,e),ot(e),a&4){if(e.stateNode===null)throw Error(k(162));s=e.stateNode,i=e.memoizedProps;try{s.nodeValue=i}catch(b){ae(e,e.return,b)}}break;case 3:if(Xe(t,e),ot(e),a&4&&n!==null&&n.memoizedState.isDehydrated)try{la(t.containerInfo)}catch(b){ae(e,e.return,b)}break;case 4:Xe(t,e),ot(e);break;case 13:Xe(t,e),ot(e),s=e.child,s.flags&8192&&(i=s.memoizedState!==null,s.stateNode.isHidden=i,!i||s.alternate!==null&&s.alternate.memoizedState!==null||($o=se())),a&4&&gc(e);break;case 22:if(p=n!==null&&n.memoizedState!==null,e.mode&1?(je=(c=je)||p,Xe(t,e),je=c):Xe(t,e),ot(e),a&8192){if(c=e.memoizedState!==null,(e.stateNode.isHidden=c)&&!p&&e.mode&1)for(R=e,p=e.child;p!==null;){for(m=R=p;R!==null;){switch(h=R,v=h.child,h.tag){case 0:case 11:case 14:case 15:Zn(4,h,h.return);break;case 1:Kr(h,h.return);var j=h.stateNode;if(typeof j.componentWillUnmount=="function"){a=h,n=h.return;try{t=a,j.props=t.memoizedProps,j.state=t.memoizedState,j.componentWillUnmount()}catch(b){ae(a,n,b)}}break;case 5:Kr(h,h.return);break;case 22:if(h.memoizedState!==null){vc(m);continue}}v!==null?(v.return=h,R=v):vc(m)}p=p.sibling}e:for(p=null,m=e;;){if(m.tag===5){if(p===null){p=m;try{s=m.stateNode,c?(i=s.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(o=m.stateNode,u=m.memoizedProps.style,l=u!=null&&u.hasOwnProperty("display")?u.display:null,o.style.display=Od("display",l))}catch(b){ae(e,e.return,b)}}}else if(m.tag===6){if(p===null)try{m.stateNode.nodeValue=c?"":m.memoizedProps}catch(b){ae(e,e.return,b)}}else if((m.tag!==22&&m.tag!==23||m.memoizedState===null||m===e)&&m.child!==null){m.child.return=m,m=m.child;continue}if(m===e)break e;for(;m.sibling===null;){if(m.return===null||m.return===e)break e;p===m&&(p=null),m=m.return}p===m&&(p=null),m.sibling.return=m.return,m=m.sibling}}break;case 19:Xe(t,e),ot(e),a&4&&gc(e);break;case 21:break;default:Xe(t,e),ot(e)}}function ot(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(mp(n)){var a=n;break e}n=n.return}throw Error(k(160))}switch(a.tag){case 5:var s=a.stateNode;a.flags&32&&(na(s,""),a.flags&=-33);var i=fc(e);$l(e,i,s);break;case 3:case 4:var l=a.stateNode.containerInfo,o=fc(e);Wl(e,o,l);break;default:throw Error(k(161))}}catch(u){ae(e,e.return,u)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Ug(e,t,n){R=e,fp(e)}function fp(e,t,n){for(var a=(e.mode&1)!==0;R!==null;){var s=R,i=s.child;if(s.tag===22&&a){var l=s.memoizedState!==null||Ya;if(!l){var o=s.alternate,u=o!==null&&o.memoizedState!==null||je;o=Ya;var c=je;if(Ya=l,(je=u)&&!c)for(R=s;R!==null;)l=R,u=l.child,l.tag===22&&l.memoizedState!==null?bc(s):u!==null?(u.return=l,R=u):bc(s);for(;i!==null;)R=i,fp(i),i=i.sibling;R=s,Ya=o,je=c}xc(e)}else s.subtreeFlags&8772&&i!==null?(i.return=s,R=i):xc(e)}}function xc(e){for(;R!==null;){var t=R;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:je||oi(5,t);break;case 1:var a=t.stateNode;if(t.flags&4&&!je)if(n===null)a.componentDidMount();else{var s=t.elementType===t.type?n.memoizedProps:Je(t.type,n.memoizedProps);a.componentDidUpdate(s,n.memoizedState,a.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&tc(t,i,a);break;case 3:var l=t.updateQueue;if(l!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}tc(t,l,n)}break;case 5:var o=t.stateNode;if(n===null&&t.flags&4){n=o;var u=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":u.autoFocus&&n.focus();break;case"img":u.src&&(n.src=u.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var c=t.alternate;if(c!==null){var p=c.memoizedState;if(p!==null){var m=p.dehydrated;m!==null&&la(m)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(k(163))}je||t.flags&512&&Bl(t)}catch(h){ae(t,t.return,h)}}if(t===e){R=null;break}if(n=t.sibling,n!==null){n.return=t.return,R=n;break}R=t.return}}function vc(e){for(;R!==null;){var t=R;if(t===e){R=null;break}var n=t.sibling;if(n!==null){n.return=t.return,R=n;break}R=t.return}}function bc(e){for(;R!==null;){var t=R;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{oi(4,t)}catch(u){ae(t,n,u)}break;case 1:var a=t.stateNode;if(typeof a.componentDidMount=="function"){var s=t.return;try{a.componentDidMount()}catch(u){ae(t,s,u)}}var i=t.return;try{Bl(t)}catch(u){ae(t,i,u)}break;case 5:var l=t.return;try{Bl(t)}catch(u){ae(t,l,u)}}}catch(u){ae(t,t.return,u)}if(t===e){R=null;break}var o=t.sibling;if(o!==null){o.return=t.return,R=o;break}R=t.return}}var Vg=Math.ceil,Vs=Lt.ReactCurrentDispatcher,Bo=Lt.ReactCurrentOwner,Ke=Lt.ReactCurrentBatchConfig,O=0,pe=null,oe=null,fe=0,Le=0,Gr=ur(0),de=0,va=null,Rr=0,ui=0,Wo=0,Xn=null,Te=null,$o=0,xn=1/0,St=null,Bs=!1,Kl=null,nr=null,Qa=!1,Zt=null,Ws=0,Jn=0,Gl=null,fs=-1,gs=0;function Pe(){return O&6?se():fs!==-1?fs:fs=se()}function ar(e){return e.mode&1?O&2&&fe!==0?fe&-fe:kg.transition!==null?(gs===0&&(gs=Jd()),gs):(e=U,e!==0||(e=window.event,e=e===void 0?16:im(e.type)),e):1}function st(e,t,n,a){if(50<Jn)throw Jn=0,Gl=null,Error(k(185));_a(e,n,a),(!(O&2)||e!==pe)&&(e===pe&&(!(O&2)&&(ui|=n),de===4&&Ut(e,fe)),Ce(e,a),n===1&&O===0&&!(t.mode&1)&&(xn=se()+500,si&&cr()))}function Ce(e,t){var n=e.callbackNode;kf(e,t);var a=Ts(e,e===pe?fe:0);if(a===0)n!==null&&Tu(n),e.callbackNode=null,e.callbackPriority=0;else if(t=a&-a,e.callbackPriority!==t){if(n!=null&&Tu(n),t===1)e.tag===0?Pg(yc.bind(null,e)):Pm(yc.bind(null,e)),jg(function(){!(O&6)&&cr()}),n=null;else{switch(em(a)){case 1:n=vo;break;case 4:n=Zd;break;case 16:n=Ns;break;case 536870912:n=Xd;break;default:n=Ns}n=Sp(n,gp.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function gp(e,t){if(fs=-1,gs=0,O&6)throw Error(k(327));var n=e.callbackNode;if(en()&&e.callbackNode!==n)return null;var a=Ts(e,e===pe?fe:0);if(a===0)return null;if(a&30||a&e.expiredLanes||t)t=$s(e,a);else{t=a;var s=O;O|=2;var i=vp();(pe!==e||fe!==t)&&(St=null,xn=se()+500,kr(e,t));do try{$g();break}catch(o){xp(e,o)}while(!0);Ro(),Vs.current=i,O=s,oe!==null?t=0:(pe=null,fe=0,t=de)}if(t!==0){if(t===2&&(s=jl(e),s!==0&&(a=s,t=Yl(e,s))),t===1)throw n=va,kr(e,0),Ut(e,a),Ce(e,se()),n;if(t===6)Ut(e,a);else{if(s=e.current.alternate,!(a&30)&&!Bg(s)&&(t=$s(e,a),t===2&&(i=jl(e),i!==0&&(a=i,t=Yl(e,i))),t===1))throw n=va,kr(e,0),Ut(e,a),Ce(e,se()),n;switch(e.finishedWork=s,e.finishedLanes=a,t){case 0:case 1:throw Error(k(345));case 2:gr(e,Te,St);break;case 3:if(Ut(e,a),(a&130023424)===a&&(t=$o+500-se(),10<t)){if(Ts(e,0)!==0)break;if(s=e.suspendedLanes,(s&a)!==a){Pe(),e.pingedLanes|=e.suspendedLanes&s;break}e.timeoutHandle=El(gr.bind(null,e,Te,St),t);break}gr(e,Te,St);break;case 4:if(Ut(e,a),(a&4194240)===a)break;for(t=e.eventTimes,s=-1;0<a;){var l=31-at(a);i=1<<l,l=t[l],l>s&&(s=l),a&=~i}if(a=s,a=se()-a,a=(120>a?120:480>a?480:1080>a?1080:1920>a?1920:3e3>a?3e3:4320>a?4320:1960*Vg(a/1960))-a,10<a){e.timeoutHandle=El(gr.bind(null,e,Te,St),a);break}gr(e,Te,St);break;case 5:gr(e,Te,St);break;default:throw Error(k(329))}}}return Ce(e,se()),e.callbackNode===n?gp.bind(null,e):null}function Yl(e,t){var n=Xn;return e.current.memoizedState.isDehydrated&&(kr(e,t).flags|=256),e=$s(e,t),e!==2&&(t=Te,Te=n,t!==null&&Ql(t)),e}function Ql(e){Te===null?Te=e:Te.push.apply(Te,e)}function Bg(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var a=0;a<n.length;a++){var s=n[a],i=s.getSnapshot;s=s.value;try{if(!lt(i(),s))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Ut(e,t){for(t&=~Wo,t&=~ui,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-at(t),a=1<<n;e[n]=-1,t&=~a}}function yc(e){if(O&6)throw Error(k(327));en();var t=Ts(e,0);if(!(t&1))return Ce(e,se()),null;var n=$s(e,t);if(e.tag!==0&&n===2){var a=jl(e);a!==0&&(t=a,n=Yl(e,a))}if(n===1)throw n=va,kr(e,0),Ut(e,t),Ce(e,se()),n;if(n===6)throw Error(k(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,gr(e,Te,St),Ce(e,se()),null}function Ko(e,t){var n=O;O|=1;try{return e(t)}finally{O=n,O===0&&(xn=se()+500,si&&cr())}}function Cr(e){Zt!==null&&Zt.tag===0&&!(O&6)&&en();var t=O;O|=1;var n=Ke.transition,a=U;try{if(Ke.transition=null,U=1,e)return e()}finally{U=a,Ke.transition=n,O=t,!(O&6)&&cr()}}function Go(){Le=Gr.current,$(Gr)}function kr(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,yg(n)),oe!==null)for(n=oe.return;n!==null;){var a=n;switch(To(a),a.tag){case 1:a=a.type.childContextTypes,a!=null&&Is();break;case 3:fn(),$(ze),$(we),Ao();break;case 5:Mo(a);break;case 4:fn();break;case 13:$(X);break;case 19:$(X);break;case 10:Co(a.type._context);break;case 22:case 23:Go()}n=n.return}if(pe=e,oe=e=sr(e.current,null),fe=Le=t,de=0,va=null,Wo=ui=Rr=0,Te=Xn=null,vr!==null){for(t=0;t<vr.length;t++)if(n=vr[t],a=n.interleaved,a!==null){n.interleaved=null;var s=a.next,i=n.pending;if(i!==null){var l=i.next;i.next=s,a.next=l}n.pending=a}vr=null}return e}function xp(e,t){do{var n=oe;try{if(Ro(),ms.current=Us,Hs){for(var a=J.memoizedState;a!==null;){var s=a.queue;s!==null&&(s.pending=null),a=a.next}Hs=!1}if(zr=0,me=ce=J=null,Qn=!1,fa=0,Bo.current=null,n===null||n.return===null){de=1,va=t,oe=null;break}e:{var i=e,l=n.return,o=n,u=t;if(t=fe,o.flags|=32768,u!==null&&typeof u=="object"&&typeof u.then=="function"){var c=u,p=o,m=p.tag;if(!(p.mode&1)&&(m===0||m===11||m===15)){var h=p.alternate;h?(p.updateQueue=h.updateQueue,p.memoizedState=h.memoizedState,p.lanes=h.lanes):(p.updateQueue=null,p.memoizedState=null)}var v=lc(l);if(v!==null){v.flags&=-257,oc(v,l,o,i,t),v.mode&1&&ic(i,c,t),t=v,u=c;var j=t.updateQueue;if(j===null){var b=new Set;b.add(u),t.updateQueue=b}else j.add(u);break e}else{if(!(t&1)){ic(i,c,t),Yo();break e}u=Error(k(426))}}else if(G&&o.mode&1){var S=lc(l);if(S!==null){!(S.flags&65536)&&(S.flags|=256),oc(S,l,o,i,t),Eo(gn(u,o));break e}}i=u=gn(u,o),de!==4&&(de=2),Xn===null?Xn=[i]:Xn.push(i),i=l;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var f=ep(i,u,t);ec(i,f);break e;case 1:o=u;var d=i.type,g=i.stateNode;if(!(i.flags&128)&&(typeof d.getDerivedStateFromError=="function"||g!==null&&typeof g.componentDidCatch=="function"&&(nr===null||!nr.has(g)))){i.flags|=65536,t&=-t,i.lanes|=t;var y=tp(i,o,t);ec(i,y);break e}}i=i.return}while(i!==null)}yp(n)}catch(w){t=w,oe===n&&n!==null&&(oe=n=n.return);continue}break}while(!0)}function vp(){var e=Vs.current;return Vs.current=Us,e===null?Us:e}function Yo(){(de===0||de===3||de===2)&&(de=4),pe===null||!(Rr&268435455)&&!(ui&268435455)||Ut(pe,fe)}function $s(e,t){var n=O;O|=2;var a=vp();(pe!==e||fe!==t)&&(St=null,kr(e,t));do try{Wg();break}catch(s){xp(e,s)}while(!0);if(Ro(),O=n,Vs.current=a,oe!==null)throw Error(k(261));return pe=null,fe=0,de}function Wg(){for(;oe!==null;)bp(oe)}function $g(){for(;oe!==null&&!xf();)bp(oe)}function bp(e){var t=wp(e.alternate,e,Le);e.memoizedProps=e.pendingProps,t===null?yp(e):oe=t,Bo.current=null}function yp(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=Dg(n,t),n!==null){n.flags&=32767,oe=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{de=6,oe=null;return}}else if(n=qg(n,t,Le),n!==null){oe=n;return}if(t=t.sibling,t!==null){oe=t;return}oe=t=e}while(t!==null);de===0&&(de=5)}function gr(e,t,n){var a=U,s=Ke.transition;try{Ke.transition=null,U=1,Kg(e,t,n,a)}finally{Ke.transition=s,U=a}return null}function Kg(e,t,n,a){do en();while(Zt!==null);if(O&6)throw Error(k(327));n=e.finishedWork;var s=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(k(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(Nf(e,i),e===pe&&(oe=pe=null,fe=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Qa||(Qa=!0,Sp(Ns,function(){return en(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=Ke.transition,Ke.transition=null;var l=U;U=1;var o=O;O|=4,Bo.current=null,Hg(e,n),hp(n,e),pg(Nl),Es=!!kl,Nl=kl=null,e.current=n,Ug(n),vf(),O=o,U=l,Ke.transition=i}else e.current=n;if(Qa&&(Qa=!1,Zt=e,Ws=s),i=e.pendingLanes,i===0&&(nr=null),jf(n.stateNode),Ce(e,se()),t!==null)for(a=e.onRecoverableError,n=0;n<t.length;n++)s=t[n],a(s.value,{componentStack:s.stack,digest:s.digest});if(Bs)throw Bs=!1,e=Kl,Kl=null,e;return Ws&1&&e.tag!==0&&en(),i=e.pendingLanes,i&1?e===Gl?Jn++:(Jn=0,Gl=e):Jn=0,cr(),null}function en(){if(Zt!==null){var e=em(Ws),t=Ke.transition,n=U;try{if(Ke.transition=null,U=16>e?16:e,Zt===null)var a=!1;else{if(e=Zt,Zt=null,Ws=0,O&6)throw Error(k(331));var s=O;for(O|=4,R=e.current;R!==null;){var i=R,l=i.child;if(R.flags&16){var o=i.deletions;if(o!==null){for(var u=0;u<o.length;u++){var c=o[u];for(R=c;R!==null;){var p=R;switch(p.tag){case 0:case 11:case 15:Zn(8,p,i)}var m=p.child;if(m!==null)m.return=p,R=m;else for(;R!==null;){p=R;var h=p.sibling,v=p.return;if(dp(p),p===c){R=null;break}if(h!==null){h.return=v,R=h;break}R=v}}}var j=i.alternate;if(j!==null){var b=j.child;if(b!==null){j.child=null;do{var S=b.sibling;b.sibling=null,b=S}while(b!==null)}}R=i}}if(i.subtreeFlags&2064&&l!==null)l.return=i,R=l;else e:for(;R!==null;){if(i=R,i.flags&2048)switch(i.tag){case 0:case 11:case 15:Zn(9,i,i.return)}var f=i.sibling;if(f!==null){f.return=i.return,R=f;break e}R=i.return}}var d=e.current;for(R=d;R!==null;){l=R;var g=l.child;if(l.subtreeFlags&2064&&g!==null)g.return=l,R=g;else e:for(l=d;R!==null;){if(o=R,o.flags&2048)try{switch(o.tag){case 0:case 11:case 15:oi(9,o)}}catch(w){ae(o,o.return,w)}if(o===l){R=null;break e}var y=o.sibling;if(y!==null){y.return=o.return,R=y;break e}R=o.return}}if(O=s,cr(),ht&&typeof ht.onPostCommitFiberRoot=="function")try{ht.onPostCommitFiberRoot(ei,e)}catch{}a=!0}return a}finally{U=n,Ke.transition=t}}return!1}function jc(e,t,n){t=gn(n,t),t=ep(e,t,1),e=rr(e,t,1),t=Pe(),e!==null&&(_a(e,1,t),Ce(e,t))}function ae(e,t,n){if(e.tag===3)jc(e,e,n);else for(;t!==null;){if(t.tag===3){jc(t,e,n);break}else if(t.tag===1){var a=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof a.componentDidCatch=="function"&&(nr===null||!nr.has(a))){e=gn(n,e),e=tp(t,e,1),t=rr(t,e,1),e=Pe(),t!==null&&(_a(t,1,e),Ce(t,e));break}}t=t.return}}function Gg(e,t,n){var a=e.pingCache;a!==null&&a.delete(t),t=Pe(),e.pingedLanes|=e.suspendedLanes&n,pe===e&&(fe&n)===n&&(de===4||de===3&&(fe&130023424)===fe&&500>se()-$o?kr(e,0):Wo|=n),Ce(e,t)}function jp(e,t){t===0&&(e.mode&1?(t=Oa,Oa<<=1,!(Oa&130023424)&&(Oa=4194304)):t=1);var n=Pe();e=Rt(e,t),e!==null&&(_a(e,t,n),Ce(e,n))}function Yg(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),jp(e,n)}function Qg(e,t){var n=0;switch(e.tag){case 13:var a=e.stateNode,s=e.memoizedState;s!==null&&(n=s.retryLane);break;case 19:a=e.stateNode;break;default:throw Error(k(314))}a!==null&&a.delete(t),jp(e,n)}var wp;wp=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||ze.current)Ee=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return Ee=!1,Ag(e,t,n);Ee=!!(e.flags&131072)}else Ee=!1,G&&t.flags&1048576&&km(t,Ms,t.index);switch(t.lanes=0,t.tag){case 2:var a=t.type;hs(e,t),e=t.pendingProps;var s=mn(t,we.current);Jr(t,n),s=Do(null,t,a,e,s,n);var i=Oo();return t.flags|=1,typeof s=="object"&&s!==null&&typeof s.render=="function"&&s.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Re(a)?(i=!0,Fs(t)):i=!1,t.memoizedState=s.state!==null&&s.state!==void 0?s.state:null,Fo(t),s.updater=li,t.stateNode=s,s._reactInternals=t,Ml(t,a,e,n),t=Dl(null,t,a,!0,i,n)):(t.tag=0,G&&i&&No(t),Se(null,t,s,n),t=t.child),t;case 16:a=t.elementType;e:{switch(hs(e,t),e=t.pendingProps,s=a._init,a=s(a._payload),t.type=a,s=t.tag=Xg(a),e=Je(a,e),s){case 0:t=ql(null,t,a,e,n);break e;case 1:t=dc(null,t,a,e,n);break e;case 11:t=uc(null,t,a,e,n);break e;case 14:t=cc(null,t,a,Je(a.type,e),n);break e}throw Error(k(306,a,""))}return t;case 0:return a=t.type,s=t.pendingProps,s=t.elementType===a?s:Je(a,s),ql(e,t,a,s,n);case 1:return a=t.type,s=t.pendingProps,s=t.elementType===a?s:Je(a,s),dc(e,t,a,s,n);case 3:e:{if(sp(t),e===null)throw Error(k(387));a=t.pendingProps,i=t.memoizedState,s=i.element,Cm(e,t),Ds(t,a,null,n);var l=t.memoizedState;if(a=l.element,i.isDehydrated)if(i={element:a,isDehydrated:!1,cache:l.cache,pendingSuspenseBoundaries:l.pendingSuspenseBoundaries,transitions:l.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){s=gn(Error(k(423)),t),t=mc(e,t,a,n,s);break e}else if(a!==s){s=gn(Error(k(424)),t),t=mc(e,t,a,n,s);break e}else for(Me=tr(t.stateNode.containerInfo.firstChild),Ae=t,G=!0,nt=null,n=zm(t,null,a,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(pn(),a===s){t=Ct(e,t,n);break e}Se(e,t,a,n)}t=t.child}return t;case 5:return Im(t),e===null&&Il(t),a=t.type,s=t.pendingProps,i=e!==null?e.memoizedProps:null,l=s.children,Tl(a,s)?l=null:i!==null&&Tl(a,i)&&(t.flags|=32),ap(e,t),Se(e,t,l,n),t.child;case 6:return e===null&&Il(t),null;case 13:return ip(e,t,n);case 4:return Lo(t,t.stateNode.containerInfo),a=t.pendingProps,e===null?t.child=hn(t,null,a,n):Se(e,t,a,n),t.child;case 11:return a=t.type,s=t.pendingProps,s=t.elementType===a?s:Je(a,s),uc(e,t,a,s,n);case 7:return Se(e,t,t.pendingProps,n),t.child;case 8:return Se(e,t,t.pendingProps.children,n),t.child;case 12:return Se(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(a=t.type._context,s=t.pendingProps,i=t.memoizedProps,l=s.value,B(As,a._currentValue),a._currentValue=l,i!==null)if(lt(i.value,l)){if(i.children===s.children&&!ze.current){t=Ct(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var o=i.dependencies;if(o!==null){l=i.child;for(var u=o.firstContext;u!==null;){if(u.context===a){if(i.tag===1){u=Tt(-1,n&-n),u.tag=2;var c=i.updateQueue;if(c!==null){c=c.shared;var p=c.pending;p===null?u.next=u:(u.next=p.next,p.next=u),c.pending=u}}i.lanes|=n,u=i.alternate,u!==null&&(u.lanes|=n),Fl(i.return,n,t),o.lanes|=n;break}u=u.next}}else if(i.tag===10)l=i.type===t.type?null:i.child;else if(i.tag===18){if(l=i.return,l===null)throw Error(k(341));l.lanes|=n,o=l.alternate,o!==null&&(o.lanes|=n),Fl(l,n,t),l=i.sibling}else l=i.child;if(l!==null)l.return=i;else for(l=i;l!==null;){if(l===t){l=null;break}if(i=l.sibling,i!==null){i.return=l.return,l=i;break}l=l.return}i=l}Se(e,t,s.children,n),t=t.child}return t;case 9:return s=t.type,a=t.pendingProps.children,Jr(t,n),s=Ge(s),a=a(s),t.flags|=1,Se(e,t,a,n),t.child;case 14:return a=t.type,s=Je(a,t.pendingProps),s=Je(a.type,s),cc(e,t,a,s,n);case 15:return rp(e,t,t.type,t.pendingProps,n);case 17:return a=t.type,s=t.pendingProps,s=t.elementType===a?s:Je(a,s),hs(e,t),t.tag=1,Re(a)?(e=!0,Fs(t)):e=!1,Jr(t,n),Jm(t,a,s),Ml(t,a,s,n),Dl(null,t,a,!0,e,n);case 19:return lp(e,t,n);case 22:return np(e,t,n)}throw Error(k(156,t.tag))};function Sp(e,t){return Qd(e,t)}function Zg(e,t,n,a){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=a,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function $e(e,t,n,a){return new Zg(e,t,n,a)}function Qo(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Xg(e){if(typeof e=="function")return Qo(e)?1:0;if(e!=null){if(e=e.$$typeof,e===fo)return 11;if(e===go)return 14}return 2}function sr(e,t){var n=e.alternate;return n===null?(n=$e(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deleti
vendor: 4,322 bytes, line 40
40ons=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function xs(e,t,n,a,s,i){var l=2;if(a=e,typeof e=="function")Qo(e)&&(l=1);else if(typeof e=="string")l=5;else e:switch(e){case qr:return Nr(n.children,s,i,t);case ho:l=8,s|=8;break;case il:return e=$e(12,n,t,s|2),e.elementType=il,e.lanes=i,e;case ll:return e=$e(13,n,t,s),e.elementType=ll,e.lanes=i,e;case ol:return e=$e(19,n,t,s),e.elementType=ol,e.lanes=i,e;case Id:return ci(n,s,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Rd:l=10;break e;case Cd:l=9;break e;case fo:l=11;break e;case go:l=14;break e;case Dt:l=16,a=null;break e}throw Error(k(130,e==null?e:typeof e,""))}return t=$e(l,n,t,s),t.elementType=e,t.type=a,t.lanes=i,t}function Nr(e,t,n,a){return e=$e(7,e,a,t),e.lanes=n,e}function ci(e,t,n,a){return e=$e(22,e,a,t),e.elementType=Id,e.lanes=n,e.stateNode={isHidden:!1},e}function $i(e,t,n){return e=$e(6,e,null,t),e.lanes=n,e}function Ki(e,t,n){return t=$e(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Jg(e,t,n,a,s){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Ni(0),this.expirationTimes=Ni(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Ni(0),this.identifierPrefix=a,this.onRecoverableError=s,this.mutableSourceEagerHydrationData=null}function Zo(e,t,n,a,s,i,l,o,u){return e=new Jg(e,t,n,o,u),t===1?(t=1,i===!0&&(t|=8)):t=0,i=$e(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:a,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Fo(i),e}function ex(e,t,n){var a=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Ar,key:a==null?null:""+a,children:e,containerInfo:t,implementation:n}}function _p(e){if(!e)return lr;e=e._reactInternals;e:{if(Fr(e)!==e||e.tag!==1)throw Error(k(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Re(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(k(171))}if(e.tag===1){var n=e.type;if(Re(n))return _m(e,n,t)}return t}function Pp(e,t,n,a,s,i,l,o,u){return e=Zo(n,a,!0,e,s,i,l,o,u),e.context=_p(null),n=e.current,a=Pe(),s=ar(n),i=Tt(a,s),i.callback=t??null,rr(n,i,s),e.current.lanes=s,_a(e,s,a),Ce(e,a),e}function di(e,t,n,a){var s=t.current,i=Pe(),l=ar(s);return n=_p(n),t.context===null?t.context=n:t.pendingContext=n,t=Tt(i,l),t.payload={element:e},a=a===void 0?null:a,a!==null&&(t.callback=a),e=rr(s,t,l),e!==null&&(st(e,s,l,i),ds(e,s,l)),l}function Ks(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function wc(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function Xo(e,t){wc(e,t),(e=e.alternate)&&wc(e,t)}function tx(){return null}var kp=typeof reportError=="function"?reportError:function(e){console.error(e)};function Jo(e){this._internalRoot=e}mi.prototype.render=Jo.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(k(409));di(e,t,null,null)};mi.prototype.unmount=Jo.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Cr(function(){di(null,e,null,null)}),t[zt]=null}};function mi(e){this._internalRoot=e}mi.prototype.unstable_scheduleHydration=function(e){if(e){var t=nm();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ht.length&&t!==0&&t<Ht[n].priority;n++);Ht.splice(n,0,e),n===0&&sm(e)}};function eu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function pi(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function Sc(){}
40function rx(e,t,n,a,s){if(s){if(typeof a=="function"){var i=a;a=function(){var c=Ks(l);i.call(c)}}var l=Pp(t,a,e,0,null,!1,!1,"",Sc);return e._reactRootContainer=l,e[zt]=l.current,ca(e.nodeType===8?e.parentNode:e),Cr(),l}for(;s=e.lastChild;)e.removeChild(s);if(typeof a=="function"){var o=a;a=function(){var c=Ks(u);o.call(c)}}var u=Zo(e,0,!1,null,null,!1,!1,"",Sc);return e._reactRootContainer=u,e[zt]=u.current,ca(e.nodeType===8?e.parentNode:e),Cr(function(){di(t,u,n,a)}),u}function hi(e,t,n,a,s){var i=n._reactRootContainer;if(i){var l=i;if(typeof s=="function"){var o=s;s=function(){var u=Ks(l);o.call(u)}}di(t,l,e,s)}else l=rx(n,t,e,s,a);return Ks(l)}tm=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Un(t.pendingLanes);n!==0&&(bo(t,n|1),Ce(t,se()),!(O&6)&&(xn=se()+500,cr()))}break;case 13:Cr(function(){var a=Rt(e,1);if(a!==null){var s=Pe();st(a,e,1,s)}}),Xo(e,1)}};yo=function(e){if(e.tag===13){var t=Rt(e,134217728);if(t!==null){var n=Pe();st(t,e,134217728,n)}Xo(e,134217728)}};rm=function(e){if(e.tag===13){var t=ar(e),n=Rt(e,t);if(n!==null){var a=Pe();st(n,e,t,a)}Xo(e,t)}};nm=function(){return U};am=function(e,t){var n=U;try{return U=e,t()}finally{U=n}};vl=function(e,t,n){switch(t){case"input":if(dl(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var a=n[t];if(a!==e&&a.form===e.form){var s=ai(a);if(!s)throw Error(k(90));Ld(a),dl(a,s)}}}break;case"textarea":Ad(e,n);break;case"select":t=n.value,t!=null&&Yr(e,!!n.multiple,t,!1)}};Bd=Ko;Wd=Cr;var nx={usingClientEntryPoint:!1,Events:[ka,Ur,ai,Ud,Vd,Ko]},Fn={findFiberByHostInstance:xr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},ax={bundleType:Fn.bundleType,version:Fn.version,rendererPackageName:Fn.rendererPackageName,rendererConfig:Fn.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Lt.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=Gd(e),e===null?null:e.stateNode},findFiberByHostInstance:Fn.findFiberByHostInstance||tx,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Za=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Za.isDisabled&&Za.supportsFiber)try{ei=Za.inject(ax),ht=Za}catch{}}Oe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=nx;Oe.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!eu(t))throw Error(k(200));return ex(e,t,null,n)};Oe.createRoot=function(e,t){if(!eu(e))throw Error(k(299));var n=!1,a="",s=kp;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(a=t.identifierPrefix),t.onRecoverableError!==void 0&&(s=t.onRecoverableError)),t=Zo(e,1,!1,null,null,n,!1,a,s),e[zt]=t.current,ca(e.nodeType===8?e.parentNode:e),new Jo(t)};Oe.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(k(188)):(e=Object.keys(e).join(","),Error(k(268,e)));return e=Gd(t),e=e===null?null:e.stateNode,e};Oe.flushSync=function(e){return Cr(e)};Oe.hydrate=function(e,t,n){if(!pi(t))throw Error(k(200));return hi(null,e,t,!0,n)};Oe.hydrateRoot=function(e,t,n){if(!eu(e))throw Error(k(405));var a=n!=null&&n.hydratedSources||null,s=!1,i="",l=kp;if(n!=null&&(n.unstable_strictMode===!0&&(s=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(l=n.onRecoverableError)),t=Pp(t,null,e,1,n??null,s,!1,i,l),e[zt]=t.current,ca(e),a)for(e=0;e<a.length;e++)n=a[e],s=n._getVersion,s=s(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,s]:t.mutableSourceEagerHydrationData.push(n,s);return new mi(t)};Oe.render=function(e,t,n){if(!pi(t))throw Error(k(200));return hi(null,e,t,!1,n)};Oe.unmountComponentAtNode=function(e){if(!pi(e))throw Error(k(40));return e._reactRootContainer?(Cr(function(){hi(null,null,e,!1,function(){e._reactRootContainer=null,e[zt]=null})}),!0):!1};Oe.unstable_batchedUpdates=Ko;Oe.unstable_renderSubtreeIntoContainer=function(e,t,n,a){if(!pi(n))throw Error(k(200));if(e==null||e._reactInternals===void 0)throw Error(k(38));return hi(e,t,n,!1,a)};Oe.version="18.3.1-next-f1338f8080-20240426";function Np(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Np)}catch(e){console.error(e)}}Np(),Nd.exports=Oe;var sx=Nd.exports,Tp,Ep,_c=sx;Ep=_c.createRoot,Tp=_c.hydrateRoot;/** 41 * react-router v7.18.4 42 * 43 * Copyright (c) Remix Software Inc. 44 * 45 * This source code is licensed under the MIT license found in the 46 * LICENSE.md file in the root directory of this source tree. 47 * 48 * @license MIT 49 */var tu=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,zp=/^[\\/]{2}/;function ix(e,t){return t+e.replace(/\\/g,"/")}var Pc="popstate";function kc(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function lx(e={}){function t(a,s){var c;let i=(c=s.state)==null?void 0:c.masked,{pathname:l,search:o,hash:u}=i||a.location;return Zl("",{pathname:l,search:o,hash:u},s.state&&s.state.usr||null,s.state&&s.state.key||"default",i?{pathname:a.location.pathname,search:a.location.search,hash:a.location.hash}:void 0)}function n(a,s){return typeof s=="string"?s:vn(s)}return ux(t,n,null,e)}function ee(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function gt(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function ox(){return Math.random().toString(36).substring(2,10)}function Nc(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Zl(e,t,n=null,a,s){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?Pn(t):t,state:n,key:t&&t.key||a||ox(),mask:s}}function vn({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function Pn(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function ux(e,t,n,a={}){let{window:s=document.defaultView,v5Compat:i=!1}=a,l=s.history,o="POP",u=null,c=p();c==null&&(c=0,l.replaceState({...l.state,idx:c},""));function p(){return(l.state||{idx:null}).idx}function m(){o="POP";let S=p(),f=S==null?null:S-c;c=S,u&&u({action:o,location:b.location,delta:f})}function h(S,f){o="PUSH";
49let d=kc(S)?S:Zl(b.location,S,f);c=p()+1;let g=Nc(d,c),y=b.createHref(d.mask||d);try{l.pushState(g,"",y)}catch(w){if(w instanceof DOMException&&w.name==="DataCloneError")throw w;s.location.assign(y)}i&&u&&u({action:o,location:b.location,delta:1})}function v(S,f){o="REPLACE";let d=kc(S)?S:Zl(b.location,S,f);c=p();let g=Nc(d,c),y=b.createHref(d.mask||d);l.replaceState(g,"",y),i&&u&&u({action:o,location:b.location,delta:0})}function j(S){return cx(s,S)}let b={get action(){return o},get location(){return e(s,l)},listen(S){if(u)throw new Error("A history only accepts one active listener");return s.addEventListener(Pc,m),u=S,()=>{s.removeEventListener(Pc,m),u=null}},createHref(S){return t(s,S)},createURL:j,encodeLocation(S){let f=j(S);return{pathname:f.pathname,search:f.search,hash:f.hash}},push:h,replace:v,go(S){return l.go(S)}};return b}function cx(e,t,n=!1){let a="http://localhost";e&&(a=e.location.origin!=="null"?e.location.origin:e.location.href),ee(a,"No window.location.(origin|href) available to create URL");let s=typeof t=="string"?t:vn(t);return s=s.replace(/ $/,"%20"),!n&&zp.test(s)&&(s=a+s),new URL(s,a)}function Rp(e,t,n="/"){return dx(e,t,n,!1)}function dx(e,t,n,a,s){let i=typeof t=="string"?Pn(t):t,l=It(i.pathname||"/",n);if(l==null)return null;let o=mx(e),u=null,c=Sx(l);for(let p=0;u==null&&p<o.length;++p)u=wx(o[p],c,a);return u}function mx(e){let t=Cp(e);return px(t),t}function Cp(e,t=[],n=[],a="",s=!1){let i=(l,o,u=s,c)=>{let p={relativePath:c===void 0?l.path||"":c,caseSensitive:l.caseSensitive===!0,childrenIndex:o,route:l};if(p.relativePath.startsWith("/")){if(!p.relativePath.startsWith(a)&&u)return;ee(p.relativePath.startsWith(a),`Absolute route path "${p.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),p.relativePath=p.relativePath.slice(a.length)}let m=it([a,p.relativePath]),h=n.concat(p);l.children&&l.children.length>0&&(ee(l.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),Cp(l.children,t,h,m,u)),!(l.path==null&&!l.index)&&t.push({path:m,score:yx(m,l.index),routesMeta:h.map((v,j)=>{let[b,S]=Lp(v.relativePath,v.caseSensitive,j===h.length-1);return{...v,matcher:b,compiledParams:S}})})};return e.forEach((l,o)=>{var u;if(l.path===""||!((u=l.path)!=null&&u.includes("?")))i(l,o);else for(let c of Ip(l.path))i(l,o,!0,c)}),t}function Ip(e){let t=e.split("/");if(t.length===0)return[];let[n,...a]=t,s=n.endsWith("?"),i=n.replace(/\?$/,"");if(a.length===0)return s?[i,""]:[i];let l=Ip(a.join("/")),o=[];return o.push(...l.map(u=>u===""?i:[i,u].join("/"))),s&&o.push(...l),o.map(u=>e.startsWith("/")&&u===""?"/":u)}function px(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:jx(t.routesMeta.map(a=>a.childrenIndex),n.routesMeta.map(a=>a.childrenIndex)))}var hx=/^:[\w-]+$/,fx=3,gx=2,xx=1,vx=10,bx=-2,Tc=e=>e==="*";function yx(e,t){let n=e.split("/"),a=n.length;return n.some(Tc)&&(a+=bx),t&&(a+=gx),n.filter(s=>!Tc(s)).reduce((s,i)=>s+(hx.test(i)?fx:i===""?xx:vx),a)}function jx(e,t){return e.length===t.length&&e.slice(0,-1).every((a,s)=>a===t[s])?e[e.length-1]-t[t.length-1]:0}function wx(e,t,n=!1){let{routesMeta:a}=e,s={},i="/",l=[];for(let o=0;o<a.length;++o){let u=a[o],c=o===a.length-1,p=i==="/"?t:t.slice(i.length)||"/",m={path:u.relativePath,caseSensitive:u.caseSensitive,end:c},h=u.matcher&&u.compiledParams?Fp(m,p,u.matcher,u.compiledParams):Gs(m,p),v=u.route;if(!h&&c&&n&&!a[a.length-1].route.index&&(h=Gs({path:u.relativePath,caseSensitive:u.caseSensitive,end:!1},p)),!h)return null;
49Object.assign(s,h.params),l.push({params:s,pathname:it([i,h.pathname]),pathnameBase:kx(it([i,h.pathnameBase])),route:v}),h.pathnameBase!=="/"&&(i=it([i,h.pathnameBase]))}return l}function Gs(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=Lp(e.path,e.caseSensitive,e.end);return Fp(e,t,n,a)}function Fp(e,t,n,a){let s=t.match(n);if(!s)return null;let i=s[0],l=bn(i,1),o=s.slice(1);return{params:a.reduce((c,{paramName:p,isOptional:m},h)=>{if(p==="*"){let j=o[h]||"";l=bn(i.slice(0,i.length-j.length),1)}const v=o[h];return m&&!v?c[p]=void 0:c[p]=(v||"").replace(/%2F/g,"/"),c},{}),pathname:i,pathnameBase:l,pattern:e}}function Lp(e,t=!1,n=!0){gt(e==="*"||!e.endsWith("*")||e.endsWith("/*"),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,"/*")}".`);let a=[],s="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(l,o,u,c,p)=>{if(a.push({paramName:o,isOptional:u!=null}),u){let m=p.charAt(c+l.length);return m&&m!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),s+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?s+="\\/*$":e!==""&&e!=="/"&&(s+="(?:(?=\\/|$))"),[new RegExp(s,t?void 0:"i"),a]}function Sx(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return gt(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function It(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,a=e.charAt(n);return a&&a!=="/"?null:e.slice(n)||"/"}function _x(e,t="/"){let{pathname:n,search:a="",hash:s=""}=typeof e=="string"?Pn(e):e,i;return n?(n=Ap(n),n.startsWith("/")||n.startsWith("\\")?i=Ec(n.substring(1),"/"):i=Ec(n,t)):i=t,{pathname:i,search:Nx(a),hash:Tx(s)}}function Ec(e,t){let n=bn(t).split("/");return e.split("/").forEach(s=>{s===".."?n.length>1&&n.pop():s!=="."&&n.push(s)}),n.length>1?n.join("/"):"/"}function Gi(e,t,n,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Px(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function Mp(e){let t=Px(e);return t.map((n,a)=>a===t.length-1?n.pathname:n.pathnameBase)}function ru(e,t,n,a=!1){let s;typeof e=="string"?s=Pn(e):(s={...e},ee(!s.pathname||!s.pathname.includes("?"),Gi("?","pathname","search",s)),ee(!s.pathname||!s.pathname.includes("#"),Gi("#","pathname","hash",s)),ee(!s.search||!s.search.includes("#"),Gi("#","search","hash",s)));let i=e===""||s.pathname==="",l=i?"/":s.pathname,o;if(l==null)o=n;else{let m=t.length-1;if(!a&&l.startsWith("..")){let h=l.split("/");for(;h[0]==="..";)h.shift(),m-=1;s.pathname=h.join("/")}o=m>=0?t[m]:"/"}let u=_x(s,o),c=l&&l!=="/"&&l.endsWith("/"),p=(i||l===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(c||p)&&(u.pathname+="/"),u}var Ap=e=>e.replace(/[\\/]{2,}/g,"/"),it=e=>Ap(e.join("/"));function bn(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var kx=e=>bn(e).replace(/^\/*/,"/"),Nx=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,Tx=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,Ex=class{constructor(e,t,n,a=!1){this.status=e,this.statusText=t||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function zx(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function Rx(e){let t=e.map(n=>n.route.path).filter(Boolean);return it(t)||"/"}var qp=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Dp(e,t){let n=e;
49if(typeof n!="string"||!tu.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let a=n,s=!1;if(qp)try{let i=new URL(window.location.href),l=zp.test(n)?new URL(ix(n,i.protocol)):new URL(n),o=It(l.pathname,t);l.origin===i.origin&&o!=null?n=o+l.search+l.hash:s=!0}catch{gt(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:s,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var zc=new URL("http://localhost");function Op(e){if(e.createURL)return e.createURL("/");try{return new URL(e.createHref("/"),zc)}catch{return zc}}function Yi(e,t){return e.origin===t.origin&&(e.origin!=="null"||e.protocol===t.protocol&&e.host===t.host)}function Cx(e,t){if(e.startsWith("//"))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===""||e.slice(n.length).startsWith("//"):!1}function Hp(e,t,n,a){let s=null;try{s=e==null?null:new URL(e,n)}catch{}let i=new URL(t,n),l=s!=null&&!Yi(s,n),o=!Yi(i,n);if(a==="reject"){if(l||o)throw new Error("External navigation is not allowed")}else if(o&&(s==null||!Cx(e,s)||!Yi(s,i)))throw new Error("External navigation is not allowed")}var Up=["POST","PUT","PATCH","DELETE"];new Set(Up);var Ix=["GET",...Up];new Set(Ix);var Fx=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];function Lx(e){try{return Fx.includes(new URL(e).protocol)}catch{return!1}}var kn=x.createContext(null);kn.displayName="DataRouter";var fi=x.createContext(null);fi.displayName="DataRouterState";var Vp=x.createContext(!1);function Mx(){return x.useContext(Vp)}var Bp=x.createContext({isTransitioning:!1});Bp.displayName="ViewTransition";var Ax=x.createContext(new Map);Ax.displayName="Fetchers";var qx=x.createContext(null);qx.displayName="Await";var Qe=x.createContext(null);Qe.displayName="Navigation";var Ta=x.createContext(null);Ta.displayName="Location";var xt=x.createContext({outlet:null,matches:[],isDataRoute:!1});xt.displayName="Route";var nu=x.createContext(null);nu.displayName="RouteError";var Wp="REACT_ROUTER_ERROR",Dx="REDIRECT",Ox="ROUTE_ERROR_RESPONSE";function Hx(e){if(e.startsWith(`${Wp}:${Dx}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function Ux(e){if(e.startsWith(`${Wp}:${Ox}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new Ex(t.status,t.statusText,t.data)}catch{}}function Vx(e,{relative:t}={}){ee(Ea(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:a}=x.useContext(Qe),{hash:s,pathname:i,search:l}=za(e,{relative:t}),o=i;return n!=="/"&&(o=i==="/"?n:it([n,i])),a.createHref({pathname:o,search:l,hash:s})}function Ea(){return x.useContext(Ta)!=null}function Mt(){return ee(Ea(),"useLocation() may be used only in the context of a <Router> component."),x.useContext(Ta).location}var $p="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Kp(e){x.useContext(Qe).static||x.useLayoutEffect(e)}function Bx(){let{isDataRoute:e}=x.useContext(xt);return e?av():Wx()}function Wx(){ee(Ea(),"useNavigate() may be used only in the context of a <Router> component.");let e=x.useContext(kn),{basename:t,navigator:n}=x.useContext(Qe),{matches:a}=x.useContext(xt),{pathname:s}=Mt(),i=JSON.stringify(Mp(a)),l=x.useRef(!1);return Kp(()=>{l.current=!0}),x.useCallback((u,c={})=>{if(gt(l.current,$p),!l.current)return;if(typeof u=="number"){n.go(u);return}let p=ru(u,JSON.parse(i),s,c.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:it([t,p.pathname])),Hp(typeof u=="string"?u:vn(u),n.createHref(p),Op(n),"reject"),(c.replace?n.replace:n.push)(p,c.state,c)},[t,n,i,s,e])}x.createContext(null);function $x(){let{matches:e}=x.useContext(xt),t=e[e.length-1];return(t==null?void 0:t.params)??{}}function za(e,{relative:t}={}){let{matches:n}=x.useContext(xt),{pathname:a}=Mt(),s=JSON.stringify(Mp(n));return x.useMemo(()=>ru(e,JSON.parse(s),a,t==="path"),[e,s,a,t])}function Kx(e,t){return Gp(e,t)}function Gp(e,t,n){var S;ee(Ea(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:a}=x.useContext(Qe),{matches:s}=x.useContext(xt),i=s[s.length-1],l=i?i.params:{},o=i?i.pathname:"/",u=i?i.pathnameBase:"/",c=i&&i.route;{let f=c&&c.path||"";Qp(o,!c||f.endsWith("*")||f.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${o}" (under <Route path="${f}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. 50 51Please change the parent <Route path="${f}"> to <Route path="${f==="/"?"*":`${f}/*`}">.`)}let p=Mt(),m;if(t){let f=typeof t=="string"?Pn(t):t;ee(u==="/"||((S=f.pathname)==null?void 0:S.startsWith(u)),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${u}" but pathname "${f.pathname}" was given in the \`location\` prop.`),m=f}else m=p;let h=m.pathname||"/",v=h;if(u!=="/"){let f=u.replace(/^\//,"").split("/");v="/"+h.replace(/^\//,"").split("/").slice(f.length).join("/")}let j=n&&n.state.matches.length?n.state.matches.map(f=>Object.assign(f,{route:n.manifest[f.route.id]||f.route})):Rp(e,{pathname:v});gt(c||j!=null,`No routes matched location "${m.pathname}${m.search}${m.hash}" `),gt(j==null||j[j.length-1].route.element!==void 0||j[j.length-1].route.Component!==void 0||j[j.length-1].route.lazy!==void 0,`Matched leaf route at location "${m.pathname}${m.search}${m.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let b=Xx(j&&j.map(f=>Object.assign({},f,{params:Object.assign({},l,f.params),pathname:it([u,a.encodeLocation?a.encodeLocation(f.pathname.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:f.pathname]),pathnameBase:f.pathnameBase==="/"?u:it([u,a.encodeLocation?a.encodeLocation(f.pathnameBase.replace(/%/g,"%25").replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:f.pathnameBase])})),s,n);return t&&b?x.createElement(Ta.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",mask:void 0,...m},navigationType:"POP"}},b):b}function Gx(){let e=nv(),t=zx(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",s={padding:"0.5rem",backgroundColor:a},i={padding:"2px 4px",backgroundColor:a},l=null;return console.error("Error handled by React Router default ErrorBoundary:",e),l=x.createElement(x.Fragment,null,x.createElement("p",null,"ð¿ Hey developer ð"),x.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",x.createElement("code",{style:i},"ErrorBoundary")," or"," ",x.createElement("code",{style:i},"errorElement")," prop on your route.")),x.createElement(x.Fragment,null,x.createElement("h2",null,"Unexpected Application
51Error!"),x.createElement("h3",{style:{fontStyle:"italic"}},t),n?x.createElement("pre",{style:s},n):null,l)}var Yx=x.createElement(Gx,null),Yp=class extends x.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=Ux(e.digest);n&&(e=n)}let t=e!==void 0?x.createElement(xt.Provider,{value:this.props.routeContext},x.createElement(nu.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?x.createElement(Qx,{error:e},t):t}};Yp.contextType=Vp;var Qi=new WeakMap;function Qx({children:e,error:t}){let{basename:n,navigator:a}=x.useContext(Qe);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let s=Hx(t.digest);if(s){let i=Qi.get(t);if(i)throw i;let l=Dp(s.location,n),o=l.absoluteURL||l.to;if(Hp(s.location,o,Op(a),"allow-explicit"),Lx(o))throw new Error("Invalid redirect location");if(qp&&!Qi.get(t))if(l.isExternal||s.reloadDocument)window.location.href=o;else{const u=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(l.to,{replace:s.replace}));throw Qi.set(t,u),u}return x.createElement("meta",{httpEquiv:"refresh",content:`0;url=${o}`})}}return e}function Zx({routeContext:e,match:t,children:n}){let a=x.useContext(kn);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),x.createElement(xt.Provider,{value:e},n)}function Xx(e,t=[],n){let a=n==null?void 0:n.state;if(e==null){if(!a)return null;if(a.errors)e=a.matches;else if(t.length===0&&!a.initialized&&a.matches.length>0)e=a.matches;else return null}let s=e,i=a==null?void 0:a.errors;if(i!=null){let p=s.findIndex(m=>m.route.id&&(i==null?void 0:i[m.route.id])!==void 0);ee(p>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),s=s.slice(0,Math.min(s.length,p+1))}let l=!1,o=-1;if(n&&a){l=a.renderFallback;for(let p=0;p<s.length;p++){let m=s[p];if((m.route.HydrateFallback||m.route.hydrateFallbackElement)&&(o=p),m.route.id){let{loaderData:h,errors:v}=a,j=m.route.loader&&!h.hasOwnProperty(m.route.id)&&(!v||v[m.route.id]===void 0);if(m.route.lazy||j){n.isStatic&&(l=!0),o>=0?s=s.slice(0,o+1):s=[s[0]];break}}}}let u=n==null?void 0:n.onError,c=a&&u?(p,m)=>{var h,v;u(p,{location:a.location,params:((v=(h=a.matches)==null?void 0:h[0])==null?void 0:v.params)??{},pattern:Rx(a.matches),errorInfo:m})}:void 0;return s.reduceRight((p,m,h)=>{let v,j=!1,b=null,S=null;a&&(v=i&&m.route.id?i[m.route.id]:void 0,b=m.route.errorElement||Yx,l&&(o<0&&h===0?(Qp("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),j=!0,S=null):o===h&&(j=!0,S=m.route.hydrateFallbackElement||null)));let f=t.concat(s.slice(0,h+1)),d=()=>{let g;return v?g=b:j?g=S:m.route.Component?g=x.createElement(m.route.Component,null):m.route.element?g=m.route.element:g=p,x.createElement(Zx,{match:m,routeContext:{outlet:p,matches:f,isDataRoute:a!=null},children:g})};return a&&(m.route.ErrorBoundary||m.route.errorElement||h===0)?x.createElement(Yp,{location:a.location,revalidation:a.revalidation,component:b,error:v,children:d(),routeContext:{outlet:null,matches:f,isDataRoute:!0},onError:c}):d()},null)}function au(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Jx(e){let t=x.useContext(kn);return ee(t,au(e)),t}function ev(e){let t=x.useContext(fi);return ee(t,au(e)),t}function tv(e){let t=x.useContext(xt);return ee(t,au(e)),t}function su(e){let t=tv(e),n=t.matches[t.matches.length-1];return ee(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function rv(){return su("useRouteId")}function nv(){var a;let e=x.useContext(nu),t=ev("useRouteError"),n=su("useRouteError");return e!==void 0?e:(a=t.errors)==null?void 0:a[n]}function av(){let{router:e}=Jx("useNavigate"),t=su("useNavigate"),n=x.useRef(!1);return Kp(()=>{n.current=!0}),x.useCallback(async(s,i={})=>{gt(n.current,$p),n.current&&(typeof s=="number"?await e.navigate(s):await e.navigate(s,{fromRouteId:t,...i}))},[e,t])}var Rc={};function Qp(e,t,n){!t&&!Rc[e]&&(Rc[e]=!0,gt(!1,n))}
51x.memo(sv);function sv({routes:e,manifest:t,future:n,state:a,isStatic:s,onError:i}){return Gp(e,void 0,{manifest:t,state:a,isStatic:s,onError:i})}function Zp(e){ee(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function iv({basename:e="/",children:t=null,location:n,navigationType:a="POP",navigator:s,static:i=!1,useTransitions:l}){ee(!Ea(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let o=e.replace(/^\/*/,"/"),u=x.useMemo(()=>({basename:o,navigator:s,static:i,useTransitions:l,future:{}}),[o,s,i,l]);typeof n=="string"&&(n=Pn(n));let{pathname:c="/",search:p="",hash:m="",state:h=null,key:v="default",mask:j}=n,b=x.useMemo(()=>{let S=It(c,o);return S==null?null:{location:{pathname:S,search:p,hash:m,state:h,key:v,mask:j},navigationType:a}},[o,c,p,m,h,v,a,j]);return gt(b!=null,`<Router basename="${o}"> is not able to match the URL "${c}${p}${m}" because it does not start with the basename, so the <Router> won't render anything.`),b==null?null:x.createElement(Qe.Provider,{value:u},x.createElement(Ta.Provider,{children:t,value:b}))}function lv({children:e,location:t}){return Kx(Xl(e),t)}function Xl(e,t=[]){let n=[];return x.Children.forEach(e,(a,s)=>{if(!x.isValidElement(a))return;let i=[...t,s];if(a.type===x.Fragment){n.push.apply(n,Xl(a.props.children,i));return}ee(a.type===Zp,`[${typeof a.type=="string"?a.type:a.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),ee(!a.props.index||!a.props.children,"An index route cannot have child routes.");let l={id:a.props.id||i.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,middleware:a.props.middleware,loader:a.props.loader,action:a.props.action,hydrateFallbackElement:a.props.hydrateFallbackElement,HydrateFallback:a.props.HydrateFallback,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.hasErrorBoundary===!0||a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(l.children=Xl(a.props.children,i)),n.push(l)}),n}var vs="get",bs="application/x-www-form-urlencoded";function gi(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function ov(e){return gi(e)&&e.tagName.toLowerCase()==="button"}function uv(e){return gi(e)&&e.tagName.toLowerCase()==="form"}function cv(e){return gi(e)&&e.tagName.toLowerCase()==="input"}function dv(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function mv(e,t){return e.button===0&&(!t||t==="_self")&&!dv(e)}var Xa=null;function pv(){if(Xa===null)try{new FormData(document.createElement("form"),0),Xa=!1}catch{Xa=!0}return Xa}var hv=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Zi(e){return e!=null&&!hv.has(e)?(gt(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${bs}"`),null):e}function fv(e,t){let n,a,s,i,l;if(uv(e)){let o=e.getAttribute("action");a=o?It(o,t):null,n=e.getAttribute("method")||vs,s=Zi(e.getAttribute("enctype"))||bs,i=new FormData(e)}else if(ov(e)||cv(e)&&(e.type==="submit"||e.type==="image")){let o=e.form;if(o==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let u=e.getAttribute("formaction")||o.getAttribute("action");if(a=u?It(u,t):null,n=e.getAttribute("formmethod")||o.getAttribute("method")||vs,s=Zi(e.getAttribute("formenctype"))||Zi(o.getAttribute("enctype"))||bs,i=new FormData(o,e),!pv()){let{name:c,type:p,value:m}=e;if(p==="image"){let h=c?`${c}.`:"";i.append(`${h}x`,"0"),i.append(`${h}y`,"0")}else c&&i.append(c,m)}}else{if(gi(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=vs,a=null,s=bs,l=e}return i&&s==="text/plain"&&(l=i,i=void 0),{action:a,method:n.toLowerCase(),encType:s,formData:i,body:l}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function iu(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function Xp(e,t,n,a){let s=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n?s.pathname.endsWith("/")?s.pathname=`${s.pathname}_.${a}`:s.pathname=`${s.pathname}.${a}`:s.pathname==="/"?s.pathname=`_root.${a}`:t&&It(s.pathname,t)==="/"?s.pathname=`${bn(t)}/_root.${a}`:s.pathname=`${bn(s.pathname)}.${a}`,s}
51async function gv(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(n){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function xv(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function vv(e,t,n){let a=await Promise.all(e.map(async s=>{let i=t.routes[s.route.id];if(i){let l=await gv(i,n);return l.links?l.links():[]}return[]}));return wv(a.flat(1).filter(xv).filter(s=>s.rel==="stylesheet"||s.rel==="preload").map(s=>s.rel==="stylesheet"?{...s,rel:"prefetch",as:"style"}:{...s,rel:"prefetch"}))}function Cc(e,t,n,a,s,i){let l=(u,c)=>n[c]?u.route.id!==n[c].route.id:!0,o=(u,c)=>{var p;return n[c].pathname!==u.pathname||((p=n[c].route.path)==null?void 0:p.endsWith("*"))&&n[c].params["*"]!==u.params["*"]};return i==="assets"?t.filter((u,c)=>l(u,c)||o(u,c)):i==="data"?t.filter((u,c)=>{var m;let p=a.routes[u.route.id];if(!p||!p.hasLoader)return!1;if(l(u,c)||o(u,c))return!0;if(u.route.shouldRevalidate){let h=u.route.shouldRevalidate({currentUrl:new URL(s.pathname+s.search+s.hash,window.origin),currentParams:((m=n[0])==null?void 0:m.params)||{},nextUrl:new URL(e,window.origin),nextParams:u.params,defaultShouldRevalidate:!0});if(typeof h=="boolean")return h}return!0}):[]}function bv(e,t,{includeHydrateFallback:n}={}){return yv(e.map(a=>{let s=t.routes[a.route.id];if(!s)return[];let i=[s.module];return s.clientActionModule&&(i=i.concat(s.clientActionModule)),s.clientLoaderModule&&(i=i.concat(s.clientLoaderModule)),n&&s.hydrateFallbackModule&&(i=i.concat(s.hydrateFallbackModule)),s.imports&&(i=i.concat(s.imports)),i}).flat(1))}function yv(e){return[...new Set(e)]}function jv(e){let t={},n=Object.keys(e).sort();for(let a of n)t[a]=e[a];return t}function wv(e,t){let n=new Set;return new Set(t),e.reduce((a,s)=>{let i=JSON.stringify(jv(s));return n.has(i)||(n.add(i),a.push({key:i,link:s})),a},[])}function lu(){let e=x.useContext(kn);return iu(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function Sv(){let e=x.useContext(fi);return iu(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var ou=x.createContext(void 0);ou.displayName="FrameworkContext";function xi(){let e=x.useContext(ou);return iu(e,"You must render this element inside a <HydratedRouter> element"),e}function _v(e,t){let n=x.useContext(ou),[a,s]=x.useState(!1),[i,l]=x.useState(!1),{onFocus:o,onBlur:u,onMouseEnter:c,onMouseLeave:p,onTouchStart:m}=t,h=x.useRef(null);x.useEffect(()=>{if(e==="render"&&l(!0),e==="viewport"){let b=f=>{f.forEach(d=>{l(d.isIntersecting)})},S=new IntersectionObserver(b,{threshold:.5});return h.current&&S.observe(h.current),()=>{S.disconnect()}}},[e]),x.useEffect(()=>{if(a){let b=setTimeout(()=>{l(!0)},100);return()=>{clearTimeout(b)}}},[a]);let v=()=>{s(!0)},j=()=>{s(!1),l(!1)};return n?e!=="intent"?[i,h,{}]:[i,h,{onFocus:Ln(o,v),onBlur:Ln(u,j),onMouseEnter:Ln(c,v),onMouseLeave:Ln(p,j),onTouchStart:Ln(m,v)}]:[!1,h,{}]}function Ln(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Pv({page:e,...t}){let n=Mx(),{nonce:a}=xi(),{router:s}=lu(),i=x.useMemo(()=>Rp(s.routes,e,s.basename),[s.routes,e,s.basename]);return i?(t.nonce==null&&a&&(t={...t,nonce:a}),n?x.createElement(Nv,{page:e,matches:i,...t}):x.createElement(Tv,{page:e,matches:i,...t})):null}function kv(e){let{manifest:t,routeModules:n}=xi(),[a,s]=x.useState([]);return x.useEffect(()=>{let i=!1;return vv(e,t,n).then(l=>{i||s(l)}),()=>{i=!0}},[e,t,n]),a}function Nv({page:e,matches:t,...n}){let a=Mt(),{future:s}=xi(),{basename:i}=lu(),l=x.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let o=Xp(e,i,s.v8_trailingSlashAwareDataRequests,"rsc"),u=!1,c=[];for(let p of t)typeof p.route.shouldRevalidate=="function"?u=!0:c.push(p.route.id);return u&&c.length>0&&o.searchParams.set("_routes",c.join(",")),[o.pathname+o.search]},[i,s.v8_trailingSlashAwareDataRequests,e,a,t]);return x.createElement(x.Fragment,null,l.map(o=>x.createElement("link",{key:o,rel:"prefetch",as:"fetch",href:o,...n})))}function Tv({page:e,matches:t,...n}){let a=Mt(),{future:s,manifest:i,routeModules:l}=xi(),{basename:o}=lu(),{loaderData:u,matches:c}=Sv(),p=x.useMemo(()=>Cc(e,t,c,i,a,"data"),[e,t,c,i,a]),m=x.useMemo(()=>Cc(e,t,c,i,a,"assets"),[e,t,c,i,a]),h=x.useMemo(()=>
51{if(e===a.pathname+a.search+a.hash)return[];let b=new Set,S=!1;if(t.forEach(d=>{var y;let g=i.routes[d.route.id];!g||!g.hasLoader||(!p.some(w=>w.route.id===d.route.id)&&d.route.id in u&&((y=l[d.route.id])!=null&&y.shouldRevalidate)||g.hasClientLoader?S=!0:b.add(d.route.id))}),b.size===0)return[];let f=Xp(e,o,s.v8_trailingSlashAwareDataRequests,"data");return S&&b.size>0&&f.searchParams.set("_routes",t.filter(d=>b.has(d.route.id)).map(d=>d.route.id).join(",")),[f.pathname+f.search]},[o,s.v8_trailingSlashAwareDataRequests,u,a,i,p,t,e,l]),v=x.useMemo(()=>bv(m,i),[m,i]),j=kv(m);return x.createElement(x.Fragment,null,h.map(b=>x.createElement("link",{key:b,rel:"prefetch",as:"fetch",href:b,...n})),v.map(b=>x.createElement("link",{key:b,rel:"modulepreload",href:b,...n})),j.map(({key:b,link:S})=>x.createElement("link",{key:b,nonce:n.nonce,...S,crossOrigin:S.crossOrigin??n.crossOrigin})))}function Ev(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var zv=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{zv&&(window.__reactRouterVersion="7.18.4")}catch{}function Rv({basename:e,children:t,useTransitions:n,window:a}){let s=x.useRef();s.current==null&&(s.current=lx({window:a,v5Compat:!0}));let i=s.current,[l,o]=x.useState({action:i.action,location:i.location}),u=x.useCallback(c=>{n===!1?o(c):x.startTransition(()=>o(c))},[n]);return x.useLayoutEffect(()=>i.listen(u),[i,u]),x.createElement(iv,{basename:e,children:t,location:l.location,navigationType:l.action,navigator:i,useTransitions:n})}var Jp=x.forwardRef(function({onClick:t,discover:n="render",prefetch:a="none",relative:s,reloadDocument:i,replace:l,mask:o,state:u,target:c,to:p,preventScrollReset:m,viewTransition:h,defaultShouldRevalidate:v,...j},b){let{basename:S,navigator:f,useTransitions:d}=x.useContext(Qe),g=typeof p=="string"&&tu.test(p),y=Dp(p,S);p=y.to;let w=Vx(p,{relative:s}),P=Mt(),T=null;if(o){let ie=ru(o,[],P.mask?P.mask.pathname:"/",!0);S!=="/"&&(ie.pathname=ie.pathname==="/"?S:it([S,ie.pathname])),T=f.createHref(ie)}let[z,C,N]=_v(a,j),A=Lv(p,{replace:l,mask:o,state:u,target:c,preventScrollReset:m,relative:s,viewTransition:h,defaultShouldRevalidate:v,useTransitions:d});function Y(ie){t&&t(ie),ie.defaultPrevented||A(ie)}let re=!(y.isExternal||i),Ze=x.createElement("a",{...j,...N,href:(re?T:void 0)||y.absoluteURL||w,onClick:re?Y:t,ref:Ev(b,C),target:c,"data-discover":!g&&n==="render"?"true":void 0});return z&&!g?x.createElement(x.Fragment,null,Ze,x.createElement(Pv,{page:w})):Ze});Jp.displayName="Link";var Cv=x.forwardRef(function({"aria-current":t="page",caseSensitive:n=!1,className:a="",end:s=!1,style:i,to:l,viewTransition:o,children:u,...c},p){let m=za(l,{relative:c.relative}),h=Mt(),v=x.useContext(fi),{navigator:j,basename:b}=x.useContext(Qe),S=v!=null&&Ov(m)&&o===!0,f=j.encodeLocation?j.encodeLocation(m).pathname:m.pathname,d=h.pathname,g=v&&v.navigation&&v.navigation.location?v.navigation.location.pathname:null;n||(d=d.toLowerCase(),g=g?g.toLowerCase():null,f=f.toLowerCase()),g&&b&&(g=It(g,b)||g);const y=f!=="/"&&f.endsWith("/")?f.length-1:f.length;let w=d===f||!s&&d.startsWith(f)&&d.charAt(y)==="/",P=g!=null&&(g===f||!s&&g.startsWith(f)&&g.charAt(f.length)==="/"),T={isActive:w,isPending:P,isTransitioning:S},z=w?t:void 0,C;typeof a=="function"?C=a(T):C=[a,w?"active":null,P?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let N=typeof i=="function"?i(T):i;return x.createElement(Jp,{...c,"aria-current":z,className:C,ref:p,style:N,to:l,viewTransition:o},typeof u=="function"?u(T):u)});Cv.displayName="NavLink";var Iv=x.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:a,replace:s,state:i,method:l=vs,action:o,onSubmit:u,relative:c,preventScrollReset:p,viewTransition:m,defaultShouldRevalidate:h,...v},j)=>{let{useTransitions:b}=x.useContext(Qe),S=qv(),f=Dv(o,{relative:c}
51),d=l.toLowerCase()==="get"?"get":"post",g=typeof o=="string"&&tu.test(o),y=w=>{if(u&&u(w),w.defaultPrevented)return;w.preventDefault();let P=w.nativeEvent.submitter,T=(P==null?void 0:P.getAttribute("formmethod"))||l,z=()=>S(P||w.currentTarget,{fetcherKey:t,method:T,navigate:n,replace:s,state:i,relative:c,preventScrollReset:p,viewTransition:m,defaultShouldRevalidate:h});b&&n!==!1?x.startTransition(()=>z()):z()};return x.createElement("form",{ref:j,method:d,action:f,onSubmit:a?u:y,...v,"data-discover":!g&&e==="render"?"true":void 0})});Iv.displayName="Form";function Fv(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function eh(e){let t=x.useContext(kn);return ee(t,Fv(e)),t}function Lv(e,{target:t,replace:n,mask:a,state:s,preventScrollReset:i,relative:l,viewTransition:o,defaultShouldRevalidate:u,useTransitions:c}={}){let p=Bx(),m=Mt(),h=za(e,{relative:l});return x.useCallback(v=>{if(mv(v,t)){v.preventDefault();let j=n!==void 0?n:vn(m)===vn(h),b=()=>p(e,{replace:j,mask:a,state:s,preventScrollReset:i,relative:l,viewTransition:o,defaultShouldRevalidate:u});c?x.startTransition(()=>b()):b()}},[m,p,h,n,a,s,t,e,i,l,o,u,c])}var Mv=0,Av=()=>`__${String(++Mv)}__`;function qv(){let{router:e}=eh("useSubmit"),{basename:t}=x.useContext(Qe),n=rv(),a=e.fetch,s=e.navigate;return x.useCallback(async(i,l={})=>{let{action:o,method:u,encType:c,formData:p,body:m}=fv(i,t);if(l.navigate===!1){let h=l.fetcherKey||Av();await a(h,n,l.action||o,{defaultShouldRevalidate:l.defaultShouldRevalidate,preventScrollReset:l.preventScrollReset,formData:p,body:m,formMethod:l.method||u,formEncType:l.encType||c,flushSync:l.flushSync})}else await s(l.action||o,{defaultShouldRevalidate:l.defaultShouldRevalidate,preventScrollReset:l.preventScrollReset,formData:p,body:m,formMethod:l.method||u,formEncType:l.encType||c,replace:l.replace,state:l.state,fromRouteId:n,flushSync:l.flushSync,viewTransition:l.viewTransition})},[a,s,t,n])}function Dv(e,{relative:t}={}){let{basename:n}=x.useContext(Qe),a=x.useContext(xt);ee(a,"useFormAction must be used inside a RouteContext");let[s]=a.matches.slice(-1),i={...za(e||".",{relative:t})},l=Mt();if(e==null){i.search=l.search;let o=new URLSearchParams(i.search),u=o.getAll("index");if(u.some(p=>p==="")){o.delete("index"),u.filter(m=>m).forEach(m=>o.append("index",m));let p=o.toString();i.search=p?`?${p}`:""}}return(!e||e===".")&&s.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(i.pathname=i.pathname==="/"?n:it([n,i.pathname])),vn(i)}function Ov(e,{relative:t}={}){let n=x.useContext(Bp);ee(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=eh("useViewTransitionState"),s=za(e,{relative:t});if(!n.isTransitioning)return!1;let i=It(n.currentLocation.pathname,a)||n.currentLocation.pathname,l=It(n.nextLocation.pathname,a)||n.nextLocation.pathname;return Gs(s.pathname,l)!=null||Gs(s.pathname,i)!=null}const Ic=typeof document<"u",Ie={set:(e,t,n={})=>{if(!Ic)return;const{expires:a,maxAge:s,path:i="/",secure:l=window.location.protocol==="https:",sameSite:o="lax"}=n;let u=`${encodeURIComponent(e)}=${encodeURIComponent(t)}`;a&&(u+=`; expires=${a.toUTCString()}`),s&&(u+=`; max-age=${s}`),i&&(u+=`; path=${i}`),l&&(u+="; secure"),o&&(u+=`; samesite=${o}`),document.cookie=u},get:e=>{if(!Ic)return null;const t=`${encodeURIComponent(e)}=`,n=document.cookie.split(";");for(let a=0;a<n.length;a++){let s=n[a];for(;s.charAt(0)===" ";)s=s.substring(1,s.length);if(s.indexOf(t)===0)return decodeURIComponent(s.substring(t.length,s.length))}return null},remove:(e,t={})=>{const{path:n="/",domain:a}=t;Ie.set(e,"",{expires:new Date(0),path:n,domain:a})},exists:e=>Ie.get(e)!==null},Hv=["en","ru","de","pr","fr","es","it","tr","zh"],Fc={pt:"pr"},Uv="en",th="lang",Ys=e=>typeof e=="string"&&Hv.includes(e),Vv=e=>e==="pt"?"pr":Ys(e)?e:null,rh=e=>e==="pr"?"pt":e,Bv=()=>{var t;const e=Ie.get(th);if(Ys(e))return e;if(typeof navigator<"u"){const n=(t=navigator.language)==null?void 0:t.slice(0,2).toLowerCase();if(n&&Fc[n])return Fc[n];if(Ys(n))return n}return Uv},Wv=e=>{Ie.set(th,e,{path:"/",maxAge:31536e3,sameSite:"lax"})},uu=(e,t)=>
51{const n=t.startsWith("/")?t:`/${t}`;return`/${rh(e)}${n}`},$v=()=>{const{lang:e}=$x();return Vv(e)??Bv()},nh=x.createContext(null),Kv=({children:e})=>{const t=$v(),[n,a]=x.useState(null),[s,i]=x.useState(null),[l,o]=x.useState(!1),u=x.useCallback(j=>{o(!1),a(j)},[]),c=x.useCallback(()=>a(null),[]),p=x.useCallback((j,b)=>{i({rtspUrl:j,node:b}),o(!1),a("popup-check")},[]),m=x.useCallback(()=>o(j=>!j),[]),h=x.useCallback(()=>o(!1),[]);x.useEffect(()=>{const j=n!==null||l;return document.body.classList.toggle("disabled",j),document.body.classList.toggle("lock",j),()=>{document.body.classList.remove("disabled","lock")}},[n,l]);const v=x.useMemo(()=>({lang:t,activePopup:n,openPopup:u,closePopup:c,checkTarget:s,openCheck:p,menuOpen:l,toggleMenu:m,closeMenu:h}),[t,n,u,c,s,p,l,m,h]);return r.jsx(nh.Provider,{value:v,children:e})},V=()=>{const e=x.useContext(nh);if(!e)throw new Error("useLanding must be used within LandingProvider");return e},ah=e=>e==="ru"?"ru-RU":"en-US",Gv=(e,t)=>e.toLocaleString(ah(t)),cu=e=>e==="ru"?"rtsp.ru":"rtsp.me",Yv={},Lc=e=>{let t;const n=new Set,a=(p,m)=>{const h=typeof p=="function"?p(t):p;if(!Object.is(h,t)){const v=t;t=m??(typeof h!="object"||h===null)?h:Object.assign({},t,h),n.forEach(j=>j(t,v))}},s=()=>t,u={setState:a,getState:s,getInitialState:()=>c,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(Yv?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},c=t=e(a,s,u);return u},Qv=e=>e?Lc(e):Lc;var sh={exports:{}},ih={},lh={exports:{}},oh={};/** 52 * @license React 53 * use-sync-external-store-shim.production.js 54 * 55 * Copyright (c) Meta Platforms, Inc. and affiliates. 56 * 57 * This source code is licensed under the MIT license found in the 58 * LICENSE file in the root directory of this source tree. 59 */var yn=x;function Zv(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var Xv=typeof Object.is=="function"?Object.is:Zv,Jv=yn.useState,eb=yn.useEffect,tb=yn.useLayoutEffect,rb=yn.useDebugValue;function nb(e,t){var n=t(),a=Jv({inst:{value:n,getSnapshot:t}}),s=a[0].inst,i=a[1];return tb(function(){s.value=n,s.getSnapshot=t,Xi(s)&&i({inst:s})},[e,n,t]),eb(function(){return Xi(s)&&i({inst:s}),e(function(){Xi(s)&&i({inst:s})})},[e]),rb(n),n}function Xi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Xv(e,n)}catch{return!0}}function ab(e,t){return t()}var sb=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?ab:nb;oh.useSyncExternalStore=yn.useSyncExternalStore!==void 0?yn.useSyncExternalStore:sb;lh.exports=oh;var ib=lh.exports;/** 60 * @license React 61 * use-sync-external-store-shim/with-selector.production.js 62 * 63 * Copyright (c) Meta Platforms, Inc. and affiliates. 64 * 65 * This source code is licensed under the MIT license found in the 66 * LICENSE file in the root directory of this source tree. 67 */var vi=x,lb=ib;function ob(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var ub=typeof Object.is=="function"?Object.is:ob,cb=lb.useSyncExternalStore,db=vi.useRef,mb=vi.useEffect,pb=vi.useMemo,hb=vi.useDebugValue;ih.useSyncExternalStoreWithSelector=function(e,t,n,a,s){var i=db(null);if(i.current===null){var l={hasValue:!1,value:null};i.current=l}else l=i.current;i=pb(function(){function u(v){if(!c){if(c=!0,p=v,v=a(v),s!==void 0&&l.hasValue){var j=l.value;if(s(j,v))return m=j}return m=v}if(j=m,ub(p,v))return j;var b=a(v);return s!==void 0&&s(j,b)?(p=v,j):(p=v,m=b)}var c=!1,p,m,h=n===void 0?null:n;return[function(){return u(t())},h===null?void 0:function(){return u(h())}]},[t,n,a,s]);var o=cb(e,i[0],i[1]);return mb(function(){l.hasValue=!0,l.value=o},[o]),hb(o),o};sh.exports=ih;var fb=sh.exports;const gb=hd(fb),uh={},{useDebugValue:xb}=Pd,{useSyncExternalStoreWithSelector:vb}=gb;let Mc=!1;const bb=e=>e;function yb(e,t=bb,n){(uh?"production":void 0)!=="production"&&n&&!Mc&&(console.warn("[DEPRECATED] Use `createWithEqualityFn` instead of `create` or use `useStoreWithEqualityFn` instead of `useStore`. They can be imported from 'zustand/traditional'. https://github.com/pmndrs/zustand/discussions/1937"),Mc=!0);const a=vb(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return xb(a),a}const Ac=e=>{(uh?"production":void 0)!=="production"&&typeof e!="function"&&console.warn("[DEPRECATED] Passing a vanilla store will be unsupported in a future version. Instead use `import { use
67Store } from 'zustand'`.");const t=typeof e=="function"?Qv(e):e,n=(a,s)=>yb(t,a,s);return Object.assign(n,t),n},jb=e=>e?Ac(e):Ac,wb="modulepreload",Sb=function(e){return"/"+e},qc={},ch=function(t,n,a){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),o=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));s=Promise.allSettled(n.map(u=>{if(u=Sb(u),u in qc)return;qc[u]=!0;const c=u.endsWith(".css"),p=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${p}`))return;const m=document.createElement("link");if(m.rel=c?"stylesheet":wb,c||(m.as="script"),m.crossOrigin="",m.href=u,o&&m.setAttribute("nonce",o),document.head.appendChild(m),c)return new Promise((h,v)=>{m.addEventListener("load",h),m.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(l){const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=l,window.dispatchEvent(o),!o.defaultPrevented)throw l}return s.then(l=>{for(const o of l||[])o.status==="rejected"&&i(o.reason);return t().catch(i)})},_b=()=>typeof window<"u"?`${window.location.origin}/api`:"/api",Pb=15e3,kb=e=>{const t=Number(e);return Number.isFinite(t)&&t>=0?t:Pb},Nb=()=>({apiUrl:_b(),ticketsPollMs:kb("15000")}),Ra=Nb(),dh=()=>({secure:typeof window<"u"&&window.location.protocol==="https:",sameSite:"lax"}),du="rtsp_access",mu="rtsp_refresh",Qs="rtsp_user",Tb=30*24*60*60,mh=30*24*60*60,Eb=()=>Ie.get(du),Mn=()=>Ie.get(mu),zb=()=>{try{const e=Ie.get(Qs);return e?JSON.parse(e):null}catch{return null}},An=e=>{const{secure:t,sameSite:n}=dh(),a={path:"/",secure:t,sameSite:n};Ie.set(du,e.accessToken,{...a,maxAge:Tb}),Ie.set(mu,e.refreshToken,{...a,maxAge:mh})},hr=e=>{const{secure:t,sameSite:n}=dh(),a={path:"/",secure:t,sameSite:n,maxAge:mh};e?Ie.set(Qs,JSON.stringify(e),a):Ie.remove(Qs,{path:"/"})},Rb=()=>{Ie.remove(du,{path:"/"}),Ie.remove(mu,{path:"/"}),Ie.remove(Qs,{path:"/"})};class qe extends Error{constructor(n,a,s,i,l,o){super(s);Lr(this,"status");Lr(this,"code");Lr(this,"details");Lr(this,"data");Lr(this,"retryAfterSec");this.name="ApiError",this.status=n,this.code=a,this.details=i,this.data=l,this.retryAfterSec=o??null}getFieldErrors(){const n={},a=this.details;if(a&&typeof a=="object"&&a.fieldErrors){for(const[s,i]of Object.entries(a.fieldErrors))if(Array.isArray(i)){const l=i.find(o=>typeof o=="string");typeof l=="string"&&(n[s]=l)}}return n}getValidationMessages(){const n=[],a=this.details;if(a&&typeof a=="object"){if(Array.isArray(a.formErrors))for(const s of a.formErrors)typeof s=="string"&&n.push(s);if(a.fieldErrors&&typeof a.fieldErrors=="object"){for(const s of Object.values(a.fieldErrors))if(Array.isArray(s))for(const i of s)typeof i=="string"&&n.push(i)}}return n}}const Dc=e=>{const t=Eb();return{...typeof FormData<"u"&&(e==null?void 0:e.body)instanceof FormData?{}:{"Content-Type":"application/json"},...t?{Authorization:`Bearer ${t}`}:{},...(e==null?void 0:e.headers)??{}}},qn=async e=>{const t=e.headers.get("content-type");if(e.status===204)return;if(t&&t.includes("application/json"))try{return await e.json()}catch{return}return await e.text()||void 0},Cb=(e,t)=>{if(t&&typeof t=="object"){const a=t.retryAfterSec;if(typeof a=="number"&&Number.isFinite(a))return a}const n=e.headers.get("Retry-After");if(n){const a=Number(n);if(Number.isFinite(a))return a}return null},Ji=(e,t)=>{const n=e.status,a=n===429?Cb(e,t):null;if(t&&typeof t=="object"){const s=t,i=typeof s.error=="string"?s.error:null,l=typeof s.message=="string"&&s.message||i||`Request failed (${n})`;return new qe(n,i,l,s.details,t,a)}return new qe(n,null,`Request failed (${n})`,void 0,t,a)},Ib=new Set(["/auth/refresh","/auth/login"]);let Ja=null;const Fb=async()=>(Ja||(Ja=(async()=>{try{const{useAuthStore:e}=await ch(async()=>{const{useAuthStore:t}=await Promise.resolve().then(()=>yh);return{useAuthStore:t}},[]);return await e.getState().refresh(),!0}catch{return!1}finally{Ja=null}})()),Ja),Dn=async(e,t)=>{const n=`${Ra.apiUrl}${e}`,a=await fetch(n,{...t,headers:Dc(t)});if(a.ok)return await qn(a);
67if(a.status===401&&!Ib.has(e)){if(await Fb()){const l=await fetch(n,{...t,headers:Dc(t)});if(l.ok)return await qn(l);throw Ji(l,await qn(l))}const{useAuthStore:i}=await ch(async()=>{const{useAuthStore:l}=await Promise.resolve().then(()=>yh);return{useAuthStore:l}},void 0);throw i.getState().clearSession(),Ji(a,await qn(a))}throw Ji(a,await qn(a))},H={get:(e,t)=>Dn(e,{...t,method:"GET"}),post:(e,t,n)=>Dn(e,{...n,method:"POST",body:t!==void 0?JSON.stringify(t):void 0}),patch:(e,t,n)=>Dn(e,{...n,method:"PATCH",body:t!==void 0?JSON.stringify(t):void 0}),put:(e,t,n)=>Dn(e,{...n,method:"PUT",body:t!==void 0?JSON.stringify(t):void 0}),delete:(e,t,n)=>Dn(e,{...n,method:"DELETE",body:t!==void 0?JSON.stringify(t):void 0})},Fe={register:(e,t,n)=>H.post("/auth/register",{email:e,password:t,lang:n}),verifyEmail:(e,t)=>H.post("/auth/verify-email",{token:e},{signal:t}),login:(e,t)=>H.post("/auth/login",{email:e,password:t}),requestPasswordReset:(e,t)=>H.post("/auth/request-password-reset",{email:e,lang:t}),resetPassword:(e,t)=>H.post("/auth/reset-password",{token:e,password:t}),refresh:e=>H.post("/auth/refresh",{refreshToken:e}),logout:e=>H.post("/auth/logout",{refreshToken:e}),me:()=>H.get("/auth/me"),updateLanguage:e=>H.patch("/auth/me",{lng:e}),updateProfile:e=>H.patch("/auth/me",e),changePassword:(e,t)=>H.patch("/auth/me/password",{currentPassword:e,newPassword:t}),requestAccountDeletion:()=>H.delete("/auth/me"),confirmAccountDeletion:e=>H.post("/auth/confirm-account-deletion",{token:e})},Lb={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)};var Bt,so,sd,Mb=(sd=class{constructor(){D(this,Bt,Lb);D(this,so,!1)}setTimeoutProvider(e){L(this,Bt,e)}setTimeout(e,t){return _(this,Bt).setTimeout(e,t)}clearTimeout(e){_(this,Bt).clearTimeout(e)}setInterval(e,t){return _(this,Bt).setInterval(e,t)}clearInterval(e){_(this,Bt).clearInterval(e)}},Bt=new WeakMap,so=new WeakMap,sd);const Jl=new Mb;function Ab(e){setTimeout(e,0)}const qb=typeof window>"u"||"Deno"in globalThis;function Ve(){}function Db(e,t){return typeof e=="function"?e(t):e}function Ob(e){return typeof e=="number"&&e>=0&&e!==1/0}function Hb(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ea(e,t){return typeof e=="function"?e(t):e}function Oc(e,t){const{type:n="all",exact:a,fetchStatus:s,predicate:i,queryKey:l,stale:o}=e;if(l){if(a){if(t.queryHash!==pu(l,t.options))return!1}else if(!jn(t.queryKey,l))return!1}if(n!=="all"){const u=t.isActive();if(n==="active"&&!u||n==="inactive"&&u)return!1}return!(typeof o=="boolean"&&t.isStale()!==o||s&&s!==t.state.fetchStatus||i&&!i(t))}function Hc(e,t){const{exact:n,status:a,predicate:s,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(n){if(ba(t.options.mutationKey)!==ba(i))return!1}else if(!jn(t.options.mutationKey,i))return!1}return!(a&&t.state.status!==a||s&&!s(t))}function pu(e,t){return((t==null?void 0:t.queryKeyHashFn)||ba)(e)}function ba(e){return JSON.stringify(e,(t,n)=>eo(n)?Object.keys(n).sort().reduce((a,s)=>(a[s]=n[s],a),{}):n)}function jn(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(Array.isArray(e)&&Array.isArray(t)){if(t.length>e.length)return!1;for(let a=0;a<t.length;a++)if(!jn(e[a],t[a]))return!1;return!0}const n=Object.keys(t);for(const a of n)if(!jn(e[a],t[a]))return!1;return!0}return!1}const Ub=Object.prototype.hasOwnProperty;function ph(e,t,n=0){if(e===t)return e;if(n>500)return t;const a=Uc(e)&&Uc(t);if(!a&&!(eo(e)&&eo(t)))return t;const s=(a?e:Object.keys(e)).length,i=a?t:Object.keys(t),l=i.length,o=a?new Array(l):{};let u=0;for(let c=0;c<l;c++){const p=a?c:i[c],m=e[p],h=t[p];if(m===h){o[p]=m,(a?c<s:Ub.call(e,p))&&u++;continue}if(m===null||h===null||typeof m!="object"||typeof h!="object"){o[p]=h;continue}const v=ph(m,h,n+1);o[p]=v,v===m&&u++}return s===l&&u===s?e:o}function Uc(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function eo(e){if(!Vc(e))return!1;const t=Object.getPrototypeOf(e),n=t==null?void 0:t.constructor;if(n===void 0)return!0;if(typeof n!="function")return!1;const a=n.prototype;return!(!Vc(a)||!a.hasOwnProperty("isPrototypeOf")||t!==Object.prototype)}function Vc(e){return Object.prototype.toString.call(e)==="[object Object]"}function Vb(e){return new Promise(t=>{Jl.setTimeout(t,e)})}function Bb(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?ph(e,t):t}function Wb(e,t,n=0){const a=[...e,t];return n&&a.length>n?a.slice(1):a}function $b(e,t,n=0){const a=[t,...e];return n&&a.length>n?a.slice(0,-1):a}const hu=Symbol();function hh(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===hu?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function Kb(e,t,n){let a=!1,s;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(s??(s=t()),a||(a=!0,s.aborted?n():s.addEventListener("abort",n,{once:!0})),s)}),e}let Gb=()=>qb;const fh=()=>Gb();var bi=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},yr,Wt,tn,id,Yb=(id=class extends bi{constructor(){super();D(this,yr);D(this,Wt);D(this,tn);L(this,tn,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){_(this,Wt)||this.setEventListener(_(this,tn))}onUnsubscribe(){var t;this.hasListeners()||((t=_(this,Wt))==null||t.call(this),L(this,Wt,void 0))}setEventListener(t){var n;L(this,tn,t),(n=_(this,Wt))==null||n.call(this),L(this,Wt,t(a=>{typeof a=="boolean"?this.setFocused(a):this.onFocus()}))}setFocused(t){_(this,yr)!==t&&(L(this,yr,t),this.onFocus())}onFocus(){const t=this.isFocused();
67this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof _(this,yr)=="boolean"?_(this,yr):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},yr=new WeakMap,Wt=new WeakMap,tn=new WeakMap,id);const gh=new Yb,Qb=Ab;function Zb(){let e=[],t=0,n=o=>{o()},a=o=>{o()},s=Qb;const i=o=>{t?e.push(o):s(()=>{n(o)})},l=()=>{const o=e;e=[],o.length&&s(()=>{a(()=>{o.forEach(u=>{n(u)})})})};return{batch:o=>{let u;t++;try{u=o()}finally{t--,t||l()}return u},batchCalls:o=>(...u)=>{i(()=>{o(...u)})},schedule:i,setNotifyFunction:o=>{n=o},setBatchNotifyFunction:o=>{a=o},setScheduler:o=>{s=o}}}const _e=Zb();var rn,$t,nn,ld,Xb=(ld=class extends bi{constructor(){super();D(this,rn,!0);D(this,$t);D(this,nn);L(this,nn,t=>{if(typeof window<"u"&&window.addEventListener){const n=()=>t(!0),a=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",a,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",a)}}})}onSubscribe(){_(this,$t)||this.setEventListener(_(this,nn))}onUnsubscribe(){var t;this.hasListeners()||((t=_(this,$t))==null||t.call(this),L(this,$t,void 0))}setEventListener(t){var n;L(this,nn,t),(n=_(this,$t))==null||n.call(this),L(this,$t,t(this.setOnline.bind(this)))}setOnline(t){_(this,rn)!==t&&(L(this,rn,t),this.listeners.forEach(n=>{n(t)}))}isOnline(){return _(this,rn)}},rn=new WeakMap,$t=new WeakMap,nn=new WeakMap,ld);const Zs=new Xb;function Jb(e){return Math.min(1e3*2**e,3e4)}function xh(e){return(e??"online")==="online"?Zs.isOnline():!0}var to=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function vh(e){let t=!1,n=0,a,s="pending",i,l;const o=new Promise((d,g)=>{i=d,l=g});o.catch(Ve);const u=()=>s!=="pending",c=d=>{var g;if(!u()){const y=new to(d);b(y),(g=e.onCancel)==null||g.call(e,y)}},p=()=>{t=!0},m=()=>{t=!1},h=()=>gh.isFocused()&&(e.networkMode==="always"||Zs.isOnline())&&e.canRun(),v=()=>xh(e.networkMode)&&e.canRun(),j=d=>{u()||(a==null||a(),s="resolved",i(d))},b=d=>{u()||(a==null||a(),s="rejected",l(d))},S=()=>new Promise(d=>{var g;a=y=>{(u()||h())&&d(y)},(g=e.onPause)==null||g.call(e)}).then(()=>{var d;a=void 0,u()||(d=e.onContinue)==null||d.call(e)}),f=()=>{if(u())return;let d;const g=n===0?e.initialPromise:void 0;try{d=g??e.fn()}catch(y){d=Promise.reject(y)}Promise.resolve(d).then(j).catch(y=>{var C;if(u())return;const w=e.retry??(fh()?0:3),P=e.retryDelay??Jb,T=typeof P=="function"?P(n,y):P,z=w===!0||typeof w=="number"&&n<w||typeof w=="function"&&w(n,y);if(t||!z){b(y);return}n++,(C=e.onFail)==null||C.call(e,n,y),Vb(T).then(()=>h()?void 0:S()).then(()=>{t?b(y):f()})})};return{promise:o,status:()=>s,cancel:c,continue:()=>(a==null||a(),o),cancelRetry:p,continueRetry:m,canStart:v,start:()=>(v()?f():S().then(f),o)}}var jr,od,bh=(od=class{constructor(){D(this,jr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),Ob(this.gcTime)&&L(this,jr,Jl.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(fh()?1/0:3e5))}clearGcTimeout(){_(this,jr)!==void 0&&(Jl.clearTimeout(_(this,jr)),L(this,jr,void 0))}},jr=new WeakMap,od);function ey(e){return{onFetch:(t,n)=>{var p,m,h,v,j;const a=t.options,s=(h=(m=(p=t.fetchOptions)==null?void 0:p.meta)==null?void 0:m.fetchMore)==null?void 0:h.direction,i=((v=t.state.data)==null?void 0:v.pages)||[],l=((j=t.state.data)==null?void 0:j.pageParams)||[];let o={pages:[],pageParams:[]},u=0;const c=async()=>{let b=!1;const S=g=>{Kb(g,()=>t.signal,()=>b=!0)},f=hh(t.options,t.fetchOptions),d=async(g,y,w)=>{if(b)return Promise.reject(t.signal.reason);if(y==null&&g.pages.length)return Promise.resolve(g);const T=(()=>{const A={client:t.client,queryKey:t.queryKey,pageParam:y,direction:w?"backward":"forward",meta:t.options.meta};return S(A),A})(),z=await f(T),{maxPages:C}=t.options,N=w?$b:Wb;return{pages:N(g.pages,z,C),pageParams:N(g.pageParams,y,C)}};if(s&&i.length){const g=s==="backward",y=g?ty:Bc,w={pages:i,pageParams:l};o=await d(w,y(a,w),g)}else{const g=e??i.length;do{const y=u===0?l[0]??a.initialPageParam:Bc(a,o);if(u>0&&y==null)break;o=await d(o,y),u++}while(u<g)}return o};t.options.persister?t.fetchFn=()=>{var b,S;return(S=(b=t.options).persister)==null?void 0:S.call(b,c,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=c}}}function Bc(e,{pages:t,pageParams:n}){const a=t.length-1;return t.length>0?e.getNextPageParam(t[a],t,n[a],n):void 0}function ty(e,{pages:t,pageParams:n}){var a;return t.length>0?(a=e.getPreviousPageParam)==null?void 0:a.call(e,t[0],t,n[0],n):void 0}var an,wr,sn,Ue,Sr,ue,ya,_r,et,jt,ud,ry=(ud=class extends bh{constructor(t){super();D(this,et);D(this,an);D(this,wr);D(this,sn);D(this,Ue);D(this,Sr);D(this,ue);D(this,ya);D(this,_r);
67L(this,_r,!1),L(this,ya,t.defaultOptions),this.setOptions(t.options),this.observers=[],L(this,Sr,t.client),L(this,Ue,_(this,Sr).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,L(this,wr,$c(this.options)),this.state=t.state??_(this,wr),this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return _(this,an)}get promise(){var t;return(t=_(this,ue))==null?void 0:t.promise}setOptions(t){if(this.options={..._(this,ya),...t},t!=null&&t._type&&L(this,an,t._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){const n=$c(this.options);n.data!==void 0&&(this.setState(Wc(n.data,n.dataUpdatedAt)),L(this,wr,n))}}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&_(this,Ue).remove(this)}setData(t,n){const a=Bb(this.state.data,t,this.options);return xe(this,et,jt).call(this,{data:a,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),a}setState(t){xe(this,et,jt).call(this,{type:"setState",state:t})}cancel(t){var a,s;const n=(a=_(this,ue))==null?void 0:a.promise;return(s=_(this,ue))==null||s.cancel(t),n?n.then(Ve).catch(Ve):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return _(this,wr)}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(t=>ea(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===hu||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdateCount>0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>ea(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!Hb(this.state.dataUpdatedAt,t)}onFocus(){var t,n;(t=this.observers.find(a=>a.shouldFetchOnWindowFocus()))==null||t.refetch({cancelRefetch:!1}),(n=_(this,ue))==null||n.continue()}onOnline(){var t,n;(t=this.observers.find(a=>a.shouldFetchOnReconnect()))==null||t.refetch({cancelRefetch:!1}),(n=_(this,ue))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),_(this,Ue).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){const n=this.observers.indexOf(t);n!==-1&&(this.observers.splice(n,1),this.observers.length||(_(this,ue)&&(_(this,_r)||this.state.fetchStatus==="paused"&&this.state.status==="pending"?_(this,ue).cancel({revert:!0}):_(this,ue).cancelRetry()),this.scheduleGc()),_(this,Ue).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||xe(this,et,jt).call(this,{type:"invalidate"})}async fetch(t,n){var c,p,m,h,v,j,b,S,f,d,g,y;if(this.state.fetchStatus!=="idle"&&((c=_(this,ue))==null?void 0:c.status())!=="rejected"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(_(this,ue))return _(this,ue).continueRetry(),_(this,ue).promise}if(t&&this.setOptions(t),!this.options.queryFn){const w=this.observers.find(P=>P.options.queryFn);w&&this.setOptions(w.options)}const a=new AbortController,s=w=>{Object.defineProperty(w,"signal",{enumerable:!0,get:()=>(L(this,_r,!0),a.signal)})},i=()=>{const w=hh(this.options,n),T=(()=>{const z={client:_(this,Sr),queryKey:this.queryKey,meta:this.meta};return s(z),z})();return L(this,_r,!1),this.options.persister?this.options.persister(w,T,this):w(T)},o=(()=>{const w={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:_(this,Sr),state:this.state,fetchFn:i};return s(w),w})();(p=_(this,an)==="infinite"?ey(this.options.pages):this.options.behavior)==null||p.onFetch(o,this),L(this,sn,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((m=o.fetchOptions)==null?void 0:m.meta))&&xe(this,et,jt).call(this,{type:"fetch",meta:(h=o.fetchOptions)==null?void 0:h.meta});const u=L(this,ue,vh({initialPromise:n==null?void 0:n.initialPromise,fn:o.fetchFn,onCancel:w=>{w instanceof to&&w.revert&&this.setState({..._(this,sn),fetchStatus:"idle"}),a.abort()},onFail:(w,P)=>{xe(this,et,jt).call(this,{type:"failed",failureCount:w,error:P})},onPause:()=>{xe(this,et,jt).call(this,{type:"pause"})},onContinue:()=>{xe(this,et,jt).call(this,{type:"continue"})},retry:o.options.retry,retryDelay:o.options.retryDelay,networkMode:o.options.networkMode,canRun:()=>!0}));try{const w=await u.start();if(w===void 0)throw new Error(`${this.queryHash} data is undefined`);return this.setData(w),(j=(v=_(this,Ue).config).onSuccess)==null||j.call(v,w,this),(S=(b=_(this,Ue).config).onSettled)==null||S.call(b,w,this.state.error,this),w}catch(w){if(w instanceof to){if(w.silent)return _(this,ue).promise;if(w.revert){if(this.state.data===void 0)throw w;return this.state.data}}throw xe(this,et,jt).call(this,{type:"error",error:w}),(d=(f=_(this,Ue).config).onError)==null||d.call(f,w,this),(y=(g=_(this,Ue).config).onSettled)==null||y.call(g,this.state.data,w,this),w}finally{_(this,ue)===u&&L(this,ue,void 0),this.scheduleGc()}}},an=new WeakMap,wr=new WeakMap,sn=new WeakMap,Ue=new WeakMap,Sr=new WeakMap,ue=new WeakMap,ya=new WeakMap,_r=new WeakMap,et=new WeakSet,jt=function(t){const n=a=>{switch(t.type){case"failed":return{...a,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...a,fetchStatus:"paused"};case"continue":return{...a,fetchStatus:"fetching"};case"fetch":return{...a,...ny(a.data,this.options),fetchMeta:t.meta??null};case"success":const s={...a,...Wc(t.data,t.dataUpdatedAt),dataUpdateCount:a.dataUpdateCount+1,...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};return L(this,sn,t.manual?s:void 0),s;case"error":const i=t.error;
67return{...a,error:i,errorUpdateCount:a.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:a.fetchFailureCount+1,fetchFailureReason:i,fetchStatus:"idle",status:"error",isInvalidated:!0};case"invalidate":return{...a,isInvalidated:!0};case"setState":return{...a,...t.state}}};this.state=n(this.state),_e.batch(()=>{this.observers.slice().forEach(a=>{a.onQueryUpdate()}),_(this,Ue).notify({query:this,type:"updated",action:t})})},ud);function ny(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:xh(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function Wc(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:"success"}}function $c(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,a=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?a??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var ja,ct,ye,Pr,dt,qt,cd,ay=(cd=class extends bh{constructor(t){super();D(this,dt);D(this,ja);D(this,ct);D(this,ye);D(this,Pr);L(this,ja,t.client),this.mutationId=t.mutationId,L(this,ye,t.mutationCache),L(this,ct,[]),this.state=t.state||sy(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){_(this,ct).includes(t)||(_(this,ct).push(t),this.clearGcTimeout(),_(this,ye).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){L(this,ct,_(this,ct).filter(n=>n!==t)),this.scheduleGc(),_(this,ye).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){_(this,ct).length||(this.state.status==="pending"?this.scheduleGc():_(this,ye).remove(this))}continue(){var t;return((t=_(this,Pr))==null?void 0:t.continue())??(this.state.status==="pending"?this.execute(this.state.variables):Promise.resolve())}async execute(t){var o,u,c,p,m,h,v,j,b,S,f,d,g,y,w,P,T,z;const n=()=>{xe(this,dt,qt).call(this,{type:"continue"})},a={client:_(this,ja),meta:this.options.meta,mutationKey:this.options.mutationKey},s=L(this,Pr,vh({fn:()=>this.options.mutationFn?this.options.mutationFn(t,a):Promise.reject(new Error("No mutationFn found")),onFail:(C,N)=>{xe(this,dt,qt).call(this,{type:"failed",failureCount:C,error:N})},onPause:()=>{xe(this,dt,qt).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>_(this,ye).canRun(this)})),i=this.state.status==="pending",l=!s.canStart();try{if(i)n();else{xe(this,dt,qt).call(this,{type:"pending",variables:t,isPaused:l}),_(this,ye).config.onMutate&&await _(this,ye).config.onMutate(t,this,a);const N=await((u=(o=this.options).onMutate)==null?void 0:u.call(o,t,a));N!==this.state.context&&xe(this,dt,qt).call(this,{type:"pending",context:N,variables:t,isPaused:l})}const C=await s.start();return await((p=(c=_(this,ye).config).onSuccess)==null?void 0:p.call(c,C,t,this.state.context,this,a)),await((h=(m=this.options).onSuccess)==null?void 0:h.call(m,C,t,this.state.context,a)),await((j=(v=_(this,ye).config).onSettled)==null?void 0:j.call(v,C,null,this.state.variables,this.state.context,this,a)),await((S=(b=this.options).onSettled)==null?void 0:S.call(b,C,null,t,this.state.context,a)),xe(this,dt,qt).call(this,{type:"success",data:C}),C}catch(C){try{await((d=(f=_(this,ye).config).onError)==null?void 0:d.call(f,C,t,this.state.context,this,a))}catch(N){Promise.reject(N)}try{await((y=(g=this.options).onError)==null?void 0:y.call(g,C,t,this.state.context,a))}catch(N){Promise.reject(N)}try{await((P=(w=_(this,ye).config).onSettled)==null?void 0:P.call(w,void 0,C,this.state.variables,this.state.context,this,a))}catch(N){Promise.reject(N)}try{await((z=(T=this.options).onSettled)==null?void 0:z.call(T,void 0,C,t,this.state.context,a))}catch(N){Promise.reject(N)}throw xe(this,dt,qt).call(this,{type:"error",error:C}),C}finally{_(this,Pr)===s&&L(this,Pr,void 0),_(this,ye).runNext(this)}}},ja=new WeakMap,ct=new WeakMap,ye=new WeakMap,Pr=new WeakMap,dt=new WeakSet,qt=function(t){const n=a=>{switch(t.type){case"failed":return{...a,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...a,isPaused:!0};case"continue":return{...a,isPaused:!1};
67case"pending":return{...a,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...a,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...a,data:void 0,error:t.error,failureCount:a.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),_e.batch(()=>{_(this,ct).forEach(a=>{a.onMutationUpdate(t)}),_(this,ye).notify({mutation:this,type:"updated",action:t})})},cd);function sy(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Pt,tt,wa,dd,iy=(dd=class extends bi{constructor(t={}){super();D(this,Pt);D(this,tt);D(this,wa);this.config=t,L(this,Pt,new Set),L(this,tt,new Map),L(this,wa,0)}build(t,n,a){const s=new ay({client:t,mutationCache:this,mutationId:++Fa(this,wa)._,options:t.defaultMutationOptions(n),state:a});return this.add(s),s}add(t){_(this,Pt).add(t);const n=es(t);if(typeof n=="string"){const a=_(this,tt).get(n);a?a.push(t):_(this,tt).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if(_(this,Pt).delete(t)){const n=es(t);if(typeof n=="string"){const a=_(this,tt).get(n);if(a)if(a.length>1){const s=a.indexOf(t);s!==-1&&a.splice(s,1)}else a[0]===t&&_(this,tt).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){var a;const n=es(t);if(typeof n=="string"){const s=(a=_(this,tt).get(n))==null?void 0:a.find(i=>i.state.status==="pending");return!s||s===t}else return!0}runNext(t){var a,s;const n=es(t);return typeof n=="string"?((s=(a=_(this,tt).get(n))==null?void 0:a.find(i=>i!==t&&i.state.isPaused))==null?void 0:s.continue())??Promise.resolve():Promise.resolve()}clear(){_e.batch(()=>{_(this,Pt).forEach(t=>{this.notify({type:"removed",mutation:t})}),_(this,Pt).clear(),_(this,tt).clear()})}getAll(){return Array.from(_(this,Pt))}find(t){const n={exact:!0,...t};return this.getAll().find(a=>Hc(n,a))}findAll(t={}){return this.getAll().filter(n=>Hc(t,n))}notify(t){_e.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return _e.batch(()=>Promise.all(t.map(n=>n.continue().catch(Ve))))}},Pt=new WeakMap,tt=new WeakMap,wa=new WeakMap,dd);function es(e){var t;return(t=e.options.scope)==null?void 0:t.id}var mt,md,ly=(md=class extends bi{constructor(t={}){super();D(this,mt);this.config=t,L(this,mt,new Map)}build(t,n,a){const s=n.queryKey,i=n.queryHash??pu(s,n);let l=this.get(i);return l||(l=new ry({client:t,queryKey:s,queryHash:i,options:t.defaultQueryOptions(n),state:a,defaultOptions:t.getQueryDefaults(s)}),this.add(l)),l}add(t){_(this,mt).has(t.queryHash)||(_(this,mt).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){_(this,mt).get(t.queryHash)===t&&(t.destroy(),_(this,mt).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){_e.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return _(this,mt).get(t)}getAll(){return[..._(this,mt).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(a=>Oc(n,a))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(a=>Oc(t,a)):n}notify(t){_e.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){_e.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){_e.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},mt=new WeakMap,md),Z,Kt,Gt,ln,on,Yt,un,cn,pd,oy=(pd=class{constructor(e={}){D(this,Z);D(this,Kt);D(this,Gt);D(this,ln);D(this,on);D(this,Yt);D(this,un);D(this,cn);L(this,Z,e.queryCache||new ly),L(this,Kt,e.mutationCache||new iy),L(this,Gt,e.defaultOptions||{}),L(this,ln,new Map),L(this,on,new Map),L(this,Yt,0)}mount(){Fa(this,Yt)._++,_(this,Yt)===1&&(L(this,un,gh.subscribe(async e=>{e&&(await this.resumePausedMutations(),_(this,Z).onFocus())})),L(this,cn,Zs.subscribe(async e=>{e&&(await this.resumePausedMutations(),_(this,Z).onOnline())})))}unmount(){var e,t;Fa(this,Yt)._--,_(this,Yt)===0&&((e=_(this,un))==null||e.call(this),L(this,un,void 0),(t=_(this,cn))==null||t.call(this),L(this,cn,void 0))}isFetching(e){return _(this,Z).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return _(this,Kt).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=_(this,Z).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=_(this,Z).build(this,t),a=n.state.data;return a===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ea(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(a))}getQueriesData(e){return _(this,Z).findAll(e).map(({queryKey:t,state:n})=>[t,n.data])}setQueryData(e,t,n){var l;const a=this.defaultQueryOptions({queryKey:e}),s=(l=_(this,Z).get(a.queryHash))==null?void 0:l.state.data,i=Db(t,s);if(i!==void 0)return _(this,Z).build(this,a).setData(i,{...n,manual:!0})}
67setQueriesData(e,t,n){return _e.batch(()=>_(this,Z).findAll(e).map(({queryKey:a})=>[a,this.setQueryData(a,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=_(this,Z).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=_(this,Z);_e.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=_(this,Z);return _e.batch(()=>{const a=n.findAll(e),s=new Set(a);return a.forEach(i=>{i.reset()}),this.refetchQueries({type:"active",predicate:i=>s.has(i)},t)})}cancelQueries(e,t={}){const n={revert:!0,...t},a=_e.batch(()=>_(this,Z).findAll(e).map(s=>s.cancel(n)));return Promise.all(a).then(Ve).catch(Ve)}invalidateQueries(e,t={}){return _e.batch(()=>(_(this,Z).findAll(e).forEach(n=>{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},a=_e.batch(()=>_(this,Z).findAll(e).filter(s=>!s.isDisabled()&&!s.isStatic()).map(s=>{let i=s.fetch(void 0,n);return n.throwOnError||(i=i.catch(Ve)),s.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(a).then(Ve)}async query(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=_(this,Z).build(this,t),a=n.isStaleByTime(ea(t.staleTime,n))?await n.fetch(t):n.state.data,s=t.select;return s?s(a):a}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=_(this,Z).build(this,t);return n.isStaleByTime(ea(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Ve).catch(Ve)}infiniteQuery(e){return e._type="infinite",this.query(e)}fetchInfiniteQuery(e){return e._type="infinite",this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Ve).catch(Ve)}ensureInfiniteQueryData(e){return e._type="infinite",this.ensureQueryData(e)}resumePausedMutations(){return Zs.isOnline()?_(this,Kt).resumePausedMutations():Promise.resolve()}getQueryCache(){return _(this,Z)}getMutationCache(){return _(this,Kt)}getDefaultOptions(){return _(this,Gt)}setDefaultOptions(e){L(this,Gt,e)}setQueryDefaults(e,t){_(this,ln).set(ba(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[..._(this,ln).values()],n={};return t.forEach(a=>{jn(e,a.queryKey)&&Object.assign(n,a.defaultOptions)}),n}setMutationDefaults(e,t){_(this,on).set(ba(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[..._(this,on).values()],n={};return t.forEach(a=>{jn(e,a.mutationKey)&&Object.assign(n,a.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={..._(this,Gt).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=pu(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===hu&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{..._(this,Gt).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){_(this,Z).clear(),_(this,Kt).clear()}},Z=new WeakMap,Kt=new WeakMap,Gt=new WeakMap,ln=new WeakMap,on=new WeakMap,Yt=new WeakMap,un=new WeakMap,cn=new WeakMap,pd);const uy=new oy({defaultOptions:{queries:{staleTime:3e4,retry:(e,t)=>{const n=t instanceof qe?t.status:0;return n>=400&&n<500?!1:e<2}}}}),Ft=jb((e,t)=>{const n=zb(),a=!!Mn();let s=null;return{user:n,isAuthenticated:!!(n&&a),isLoading:!1,isChecking:a,login:async(i,l)=>{e({isLoading:!0});try{const{user:o,tokens:u}=await Fe.login(i,l);An(u),hr(o),e({user:o,isAuthenticated:!0})}finally{e({isLoading:!1})}},register:async(i,l,o)=>{e({isLoading:!0});try{await Fe.register(i,l,o)}finally{e({isLoading:!1})}},verifyEmail:async(i,l)=>{e({isLoading:!0});try{const{user:o,tokens:u}=await Fe.verifyEmail(i,l);An(u),hr(o),e({user:o,isAuthenticated:!0})}finally{e({isLoading:!1})}},requestPasswordReset:async(i,l)=>{e({isLoading:!0});try{await Fe.requestPasswordReset(i,l)}finally{e({isLoading:!1})}},resetPassword:async(i,l)=>{e({isLoading:!0});try{const{user:o,tokens:u}=await Fe.resetPassword(i,l);An(u),hr(o),e({user:o,isAuthenticated:!0})}finally{e({isLoading:!1})}},refresh:async()=>s||(s=(async()=>{const i=Mn();if(!i)throw t().clearSession(),new Error("No refresh token");try{const l=await Fe.refresh(i);An(l)}catch(l){throw t().clearSession(),l}finally{s=null}})(),s),checkAuth:async()=>
67{if(!Mn()){e({isChecking:!1,isAuthenticated:!1,user:null});return}e({isChecking:!0});try{const i=await Fe.me();hr(i),Ys(i.lng)&&Wv(i.lng),e({user:i,isAuthenticated:!0})}catch{t().clearSession()}finally{e({isChecking:!1})}},autoLogin:async()=>{if(!Mn()){e({isChecking:!1,isAuthenticated:!1});return}await t().checkAuth()},logout:async()=>{const i=Mn();try{i&&await Fe.logout(i)}catch{}finally{t().clearSession()}},requestAccountDeletion:async()=>{e({isLoading:!0});try{await Fe.requestAccountDeletion()}finally{e({isLoading:!1})}},confirmAccountDeletion:async i=>{e({isLoading:!0});try{await Fe.confirmAccountDeletion(i),t().clearSession()}finally{e({isLoading:!1})}},setLanguage:async i=>{const l=t().user;if(l){const o={...l,lng:i};hr(o),e({user:o})}try{await Fe.updateLanguage(i)}catch{}},updateProfile:async i=>{e({isLoading:!0});try{const l=await Fe.updateProfile(i);hr(l),e({user:l})}finally{e({isLoading:!1})}},changePassword:async(i,l)=>{e({isLoading:!0});try{const{user:o,tokens:u}=await Fe.changePassword(i,l);An(u);const c=t().user,p=c?{...c,...o}:o;hr(p),e({user:p,isAuthenticated:!0})}finally{e({isLoading:!1})}},clearSession:()=>{Rb(),e({user:null,isAuthenticated:!1,isLoading:!1,isChecking:!1}),uy.clear()}}}),yh=Object.freeze(Object.defineProperty({__proto__:null,useAuthStore:Ft},Symbol.toStringTag,{value:"Module"})),cy={en:[{href:"#service",label:"Creating Live Broadcasts"},{href:"#cloud",label:"Cloud Video Surveillance"},{href:"#monetization",label:"Monetization"},{href:"#tariffs",label:"Tariffs"},{href:"#products",label:"Products"},{href:"#callback",label:"Contacts"}],ru:[{href:"#service",label:"ЧÑо Ð¼Ñ Ð´ÐµÐ»Ð°ÐµÐ¼"},{href:"#cloud",label:"ÐблаÑное видеонаблÑдение"},{href:"#monetization",label:"ÐонеÑизаÑиÑ"},{href:"#tariffs",label:"ТаÑиÑÑ"},{href:"#products",label:"ÐÑодÑкÑÑ"},{href:"#callback",label:"ÐонÑакÑÑ"}
67],de:[{href:"#service",label:"Erstellung von Live-Ãbertragungen"},{href:"#cloud",label:"Cloud-Videoüberwachung"},{href:"#monetization",label:"Monetarisierung"},{href:"#tariffs",label:"Tarife"},{href:"#products",label:"Produkte"},{href:"#callback",label:"Kontakt"}],pr:[{href:"#service",label:"Criação de transmissões ao vivo"},{href:"#cloud",label:"Videovigilância na nuvem"},{href:"#monetization",label:"Monetização"},{href:"#tariffs",label:"Planos"},{href:"#products",label:"Produtos"},{href:"#callback",label:"Contatos"}],fr:[{href:"#service",label:"Création de diffusions en direct"},{href:"#cloud",label:"Vidéosurveillance cloud"},{href:"#monetization",label:"Monétisation"},{href:"#tariffs",label:"Tarifs"},{href:"#products",label:"Produits"},{href:"#callback",label:"Contacts"}],es:[{href:"#service",label:"Creación de transmisiones en vivo"},{href:"#cloud",label:"Videovigilancia en la nube"},{href:"#monetization",label:"Monetización"},{href:"#tariffs",label:"Tarifas"},{href:"#products",label:"Productos"},{href:"#callback",label:"Contactos"}],it:[{href:"#service",label:"Creazione di trasmissioni in diretta"},{href:"#cloud",label:"Videosorveglianza cloud"},{href:"#monetization",label:"Monetizzazione"},{href:"#tariffs",label:"Tariffe"},{href:"#products",label:"Prodotti"},{href:"#callback",label:"Contatti"}],tr:[{href:"#service",label:"Canlı Yayın OluÅturma"},{href:"#cloud",label:"Bulut video gözetimi"},{href:"#monetization",label:"Gelir elde etme"},{href:"#tariffs",label:"Tarifeler"},{href:"#products",label:"Ãrünler"},{href:"#callback",label:"İletiÅim"}],zh:[{href:"#service",label:"åå»ºå®æ¶ç´æ"},{href:"#cloud",label:"äºè§é¢çæ§"},{href:"#monetization",label:"åç°"},{href:"#tariffs",label:"èµè´¹"},{href:"#products",label:"产å"},{href:"#callback",label:"èç³»æä»¬"}]},dy={en:"Log In",ru:"ÐойÑи",de:"Anmelden",pr:"Entrar",fr:"Connexion",es:"Iniciar sesión",it:"Accedi",tr:"GiriÅ Yap",zh:"ç»å½"},my={en:"My broadcasts",ru:"Ðои ÑÑанÑлÑÑии",de:"Meine Ãbertragungen",pr:"Minhas transmissões",fr:"Mes diffusions",es:"Mis transmisiones",it:"Le mie trasmissioni",tr:"Yayınlarım",zh:"æçç´æ"},jh=[{code:"en",label:"English",flag:"en.svg"},{code:"ru",label:"Ð ÑÑÑкий",flag:"ru.svg"},{code:"de",label:"Deutsch",flag:"germany.svg"},{code:"pr",label:"Português",flag:"portugal.svg"},{code:"fr",label:"Français",flag:"france.svg"},{code:"es",label:"Español",flag:"spain.svg"},{code:"it",label:"Italiano",flag:"italy.svg"},{code:"tr",label:"Türkçe",flag:"turkey.svg"},{code:"zh",label:"䏿",flag:"china.svg"}],py=e=>{var t;return((t=jh.find(n=>n.code===e))==null?void 0:t.flag)??"en.svg"},hy=e=>`https://${cu(e)}/${rh(e)}/`,fy=()=>{const{lang:e,menuOpen:t,toggleMenu:n,closeMenu:a,openPopup:s}=V(),[i,l]=x.useState(!1),o=e==="ru"?".RU":".ME",u=Ft(h=>h.isAuthenticated),[c,p]=x.useState(!1);x.useEffect(()=>p(!0),[]);const m=c&&u;return r.jsx("header",{className:"header lock-padding",children:r.jsx("div",{className:"container",children:r.jsxs("div",{className:"header__inner",children:[r.jsx("div",{className:"header__left",children:r.jsxs("a",{className:"header__logo",href:"#hero",onClick:a,children:["RTSP",r.jsx("span",{children:o})]})}),r.jsx("div",{className:`header__wrap${t?" active":""}`,children:r.jsxs("nav",{className:"header__nav nav",children:[r.jsx("ul",{className:"nav__list list-reset",children:cy[e].map(h=>r.jsx("li",{children:r.jsx("a",{href:h.href,onClick:a,children:h.label})},h.href))}),r.jsxs("div",{className:"header__right",children:[r.jsxs("div",{className:"header__block",children:[r.jsx("button",{className:"header__lang btn-reset",onClick:()=>l(h=>!h),children:r.jsx("img",{loading:"lazy",src:`/landing/img/svg/${py(e)}`,width:24,height:24,alt:"Language"})}),r.jsx("div",{className:"header__dropdown",style:{maxHeight:i?400:0},children:r.jsx("ul",{className:"header__list list-reset",children:jh.filter(h=>h.code!==e).map(h=>r.jsx("li",{className:"header__item",children:r.jsxs("a",{className:"header__link",href:hy(h.code),onClick:()=>l(!1),children:[r.jsx("img",{loading:"lazy",src:`/landing/img/svg/${h.flag}`,width:24,height:24,alt:"Language"}),r.jsx("span",{children:h.label})]})},h.code))})})]}),r.jsx("div",{className:"header__box",children:m?r.jsx("a",{className:"header__login",href:uu(e,"/cameras"),children:r.jsx("span",{children:my[e]})}):r.jsx("button",{className:"header__login popup-link btn-reset",onClick:()=>
67s("popup-login"),children:r.jsx("span",{children:dy[e]})})})]})]})}),r.jsxs("button",{className:`burger btn-reset${t?" active":""}`,onClick:n,"aria-label":"Menu",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})]})})})},gy=async()=>{try{const e=await fetch(`${Ra.apiUrl}/site-stats`);if(!e.ok)return null;const n=await e.json()??{},a=u=>typeof u=="number"&&Number.isFinite(u)?u:null,s=a(n.users),i=a(n.cameras),l=a(n.views);if(s===null||i===null||l===null)return null;const o=typeof n.promo_video_url=="string"&&n.promo_video_url?n.promo_video_url:null;return{users:s,cameras:i,views:l,promoVideoUrl:o}}catch{return null}};let ts=null;const wh=()=>(ts||(ts=gy().then(e=>(e===null&&(ts=null),e))),ts),ys=e=>e==="ru"?"msk":"lon",ro=[{region:"Asia",items:[{value:"hkg",label:"Hong Kong"},{value:"in",label:"India / Bangalore"},{value:"jpn",label:"Japan / Tokyo"},{value:"sn",label:"Singapore"},{value:"tr",label:"Turkey / Istanbul"},{value:"nsk",label:"РоÑÑÐ¸Ñ / ÐовоÑибиÑÑк"},{value:"vld",label:"РоÑÑÐ¸Ñ / ÐладивоÑÑок"},{value:"krk",label:"РоÑÑÐ¸Ñ / ÐÑаÑноÑÑÑк"},{value:"aa",label:"ÒазаÒÑÑан / ÐÑÑана"}]},{region:"Australia",items:[{value:"sdn",label:"Australia / Sydney"}]},{region:"Europe",items:[{value:"frn",label:"Germany / Frankfurt"},{value:"itl",label:"Italy / Palermo"},{value:"lon",label:"UK / London"},{value:"ekb",label:"РоÑÑÐ¸Ñ / ÐкаÑеÑинбÑÑг"},{value:"msk",label:"РоÑÑÐ¸Ñ / ÐоÑква"},{value:"spb",label:"РоÑÑÐ¸Ñ / СанкÑ-ÐеÑеÑбÑÑг"},{value:"kv",label:"УкÑаÑна / ÐиÑв"}]},{region:"North America",items:[{value:"tor",label:"Canada / Toronto"},{value:"mia",label:"USA / Miami"},{value:"sfr",label:"USA / San Francisco"}]}],xy=ro.flatMap(e=>e.items),vy=e=>{var t;return((t=xy.find(n=>n.value===e))==null?void 0:t.label)??e};let rs=null;const Sh=()=>(rs||(rs=(async()=>{const e=await fetch(`${Ra.apiUrl}/regions`);if(!e.ok)throw new Error(`regions ${e.status}`);const t=await e.json(),n=t,a=Array.isArray(t)?t:(n==null?void 0:n.items)??(n==null?void 0:n.regions)??(n==null?void 0:n.data),s=[];if(Array.isArray(a)){for(const i of a)if(i&&typeof i=="object"){const l=i;s.push({code:String(l.code??""),current:String(l.current??"")})}}return s})().catch(e=>{throw rs=null,e})),rs),by=async()=>{const e=await Sh(),t=new Set(e.map(n=>n.code));return{available:t,working:new Set(t)}},Kc=async e=>{var n;return((n=(await Sh()).find(a=>a.code===e))==null?void 0:n.current)??""},yy={en:r.jsxs(r.Fragment,{children:["Choose ",r.jsx("br",{})," data center"]}),ru:r.jsxs(r.Fragment,{children:["ÐÑбеÑиÑе ",r.jsx("br",{})," даÑа ÑенÑÑ"]}),de:r.jsxs(r.Fragment,{children:["Rechenzentrum ",r.jsx("br",{})," auswählen"]}),pr:r.jsxs(r.Fragment,{children:["Escolher ",r.jsx("br",{})," data center"]}),fr:r.jsxs(r.Fragment,{children:["Choisir ",r.jsx("br",{})," un centre de données"]}),es:r.jsxs(r.Fragment,{children:["Elige ",r.jsx("br",{})," centro de datos"]}),it:r.jsxs(r.Fragment,{children:["Scegli ",r.jsx("br",{})," un data center"]}),tr:r.jsxs(r.Fragment,{children:["Veri merkezi ",r.jsx("br",{})," seçin"]}),zh:r.jsxs(r.Fragment,{children:["éæ© ",r.jsx("br",{})," æ°æ®ä¸å¿"]})},jy={en:"Coming soon",ru:"СкоÑо",de:"Demnächst",pr:"Em breve",fr:"Bientôt disponible",es:"Próximamente",it:"Prossimamente",tr:"Yakında",zh:"å³å°ä¸çº¿"},_h=({value:e,onChange:t,name:n="location",inputClassName:a})=>{const{lang:s}=V(),[i,l]=x.useState(!1),[o,u]=x.useState(!1),c=x.useRef(null),p=x.useRef(null),[m,h]=x.useState(null);x.useEffect(()=>{let d=!0;return by().then(({available:g,working:y})=>{if(!d)return;const w=new Set(y);g.has(ys(s))&&w.add(ys(s)),s!=="ru"&&w.delete("msk"),h({available:g,working:w})}).catch(()=>d&&h({available:new Set(ro.flatMap(g=>g.items).map(g=>g.value)),working:new Set([e])})),()=>{d=!1}},[e,s]),x.useEffect(()=>{if(m&&m.working.size>0&&(!m.working.has(e)||!m.available.has(e))){const d=ys(s);t(m.working.has(d)&&m.available.has(d)?d:[...m.working][0])}},[m,e,s,t]),x.useEffect(()=>{const d=p.current;d&&(d.style.maxHeight=i?`${d.scrollHeight}px`:"")},[i,m,s]);const v=d=>(d!=="msk"||s==="ru")&&(!m||m.available.has(d)),j=d=>!m||m.working.has(d),b=()=>{l(d=>{const g=!d,y=c.current,w=p.current;if(g&&y&&w){const P=y.getBoundingClientRect();u(window.innerHeight-P.bottom<w.scrollHeight)}return g})},S=d=>{j(d)&&(t(d),l(!1))},f=`select__dropdown${i?" active":""}${o?" open-up":""}`;return r.jsxs("div",{className:"select",children:[r.jsx("input",{className:a??"select__input",type:"hidden",name:n,value:e,readOnly:!0}),r.jsx("button",{ref:c,className:`select__btn btn-reset${i?" active":""}`,type:"button",onClick:b,children:vy(e)}),r.jsx("div",{ref:p,className:f,children:r.jsxs("div",{className:"select__content",children:[r.jsxs("div",{className:"select__header",children:[r.jsx("h3",{className:"select__h3 h3 anim",children:yy[s]}),r.jsx("button",{className:"select__close btn-reset",type:"button",onClick:()=>l(!1),children:r.jsx("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M21 21L3 3M21.0001 3L3 21.0001",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),r.jsx("div",{className:"select__body simplebar",children:ro.map(d=>{const g=d.items.filter(y=>v(y.value));return g.length===0?null:r.jsxs("div",{className:"select__block",children:[r.jsx("h4",{className:"select__h4",children:d.region}),r.jsx("ul",{className:"select__list list-reset",children:g.map(y=>{const w=j(y.value);return r.jsx("li",{className:"select__item","data-value":y.value,onClick:()=>S(y.value),"aria-disabled":!w,title:w?void 0:jy[s],style:w?void 0:{opacity:.35,cursor:"not-allowed"},children:y.label},y.value)})})]},d.region)})})]})}),r.jsx("div",{className:`select__overlay${i?" active":""}`,onClick:()=>l(!1)})]})},Vt=e=>typeof e=="object"&&e!==null,vt=e=>{const t=typeof e=="string"?Number(e):e;return Number.isFinite(t)?t:0},wy=e=>{var a,s;const t=new URLSearchParams;e.page&&t.set("page",String(e.page)),e.limit&&t.set("limit",String(e.limit)),(a=e.search)!=null&&a.trim()&&t.set("search",e.search.trim()),e.lang&&t.set("lang",e.lang),(s=e.tag)!=null&&s.trim()&&t.set("tag",e.tag.trim()),e.hasLcContainer!=null&&t.set("hasLcContainer",String(e.hasLcContainer));const n=t.toString();return n?`?${n}`:""},ns=(()=>{try{return new URL(Ra.apiUrl).origin}catch{return""}})(),el=e=>e,Sy=e=>{if(!(typeof e!="string"||!e)){if(!ns)return e;if(e.startsWith("/"))return el(`${ns}${e}`);try{const t=new URL(e);return t.pathname.includes("/posters/")&&t.origin!==ns?el(`${ns}${t.pathname}${t.search}`):el(e)}catch{return e}}},ta=e=>({...e,poster:Sy(e.poster)}),_y=e=>{if(Array.isArray(e))return{items:e.map(ta),total:null,pages:null};if(typeof e=="object"&&e!==null){const t=e,n=t.items??t.data??t.cameras,a=t.total??t.count??t.totalCount,s=t.pages??t.totalPages;return{items:Array.isArray(n)?n.map(ta):[],total:typeof a=="number"?a:null,pages:typeof s=="number"?s:null}}return{items:[],total:null,pages:null}},Py=e=>(Array.isArray(e)?e:Vt(e)&&Array.isArray(e.tags)?e.tags:[]).filter(n=>typeof n=="string"&&n!==""),Gc={list:async e=>{const t=await H.get(`/cameras${wy(e)}`);return _y(t)},get:e=>H.get(`/cameras/${e}`).then(ta),create:e=>H.post("/cameras",e).then(ta),update:(e,t)=>
67H.patch(`/cameras/${e}`,t).then(ta),remove:e=>H.delete(`/cameras/${e}`),tags:async()=>Py(await H.get("/cameras/tags")),setTag:(e,t)=>H.post(`/cameras/${e}/tag`,{tag:t}),removeTag:e=>H.delete(`/cameras/${e}/tag`),setRtmp:(e,t)=>H.post(`/cameras/${e}/rtmp`,{enabled:t}),payAnnual:e=>H.post(`/cameras/${e}/annual-payment`,{}),quickAdd:e=>H.post("/cameras/quick-add",e)},Ph=e=>e instanceof qe&&(e.status===409||e.code==="email_taken"||e.code==="email_exists"||e.code==="user_exists"),Xs=e=>e instanceof qe&&(e.status===429||e.code==="too_many_requests"),ky={cam_name:"",rtsp_link:"",rtsp_link_hd:"",access:0,auto_play:0,play_time:600,volume:0,time_start:"00:00",time_end:"23:59",day_of_week:"1,2,3,4,5,6,0",location:"msk",traffic:0,ratio:0,logo:1,domen:"",h265:0,password_access:null,monitoring:null,domain_access:null,black_list_ip:null,hide_camera_name:!1,tag:""},kh={en:{submit:"Create broadcasting",submitting:"Creatingâ¦",fillAll:"Fill in all fields",invalidRtsp:"The link must start with rtsp://",invalidEmail:"Enter a valid email",success:"Almost there! To create your broadcast, confirm it via the link we've sent to your email â your account password is in the same message.",pending:"A previous request for this email is still being processed â check your inbox.",emailExists:"This email is already registered â ",emailExistsLogin:"log in",emailExistsTail:" to add a broadcast.",generic:"Something went wrong. Please try again.",tooManyRequests:"Too many requests. Please try again in {sec}s.",tooManyRequestsNoSec:"Too many requests. Please try again later.",newBroadcast:"New broadcast",test:"Test"},ru:{submit:"CоздаÑÑ ÑÑанÑлÑÑиÑ",submitting:"Созданиеâ¦",fillAll:"ÐаполниÑе вÑе полÑ",invalidRtsp:"СÑÑлка должна наÑинаÑÑÑÑ Ñ rtsp://",invalidEmail:"ÐведиÑе коÑÑекÑнÑй email",success:"ÐоÑÑи гоÑово! ЧÑÐ¾Ð±Ñ ÑоздаÑÑ ÑÑанÑлÑÑиÑ, подÑвеÑдиÑе ÐµÑ Ð¿Ð¾ ÑÑÑлке из пиÑÑма, коÑоÑое Ð¼Ñ Ð¾ÑпÑавили на ваÑÑ Ð¿Ð¾ÑÑÑ â Ñам же паÑÐ¾Ð»Ñ Ð¾Ñ Ð»Ð¸Ñного кабинеÑа.",pending:"ÐÑедÑдÑÑÐ°Ñ Ð·Ð°Ñвка Ð´Ð»Ñ ÑÑого email еÑÑ Ð¾Ð±ÑабаÑÑваеÑÑÑ â пÑовеÑÑÑе поÑÑÑ.",emailExists:"ÐÑÐ¾Ñ email Ñже заÑегиÑÑÑиÑован â ",emailExistsLogin:"войдиÑе",emailExistsTail:", ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑÑанÑлÑÑиÑ.",generic:"ЧÑо-Ñо поÑло не Ñак. ÐопÑобÑйÑе еÑÑ Ñаз.",tooManyRequests:"СлиÑком много запÑоÑов. ÐопÑобÑйÑе ÑеÑез {sec} Ñек.",tooManyRequestsNoSec:"СлиÑком много запÑоÑов. ÐопÑобÑйÑе позже.",newBroadcast:"ÐÐ¾Ð²Ð°Ñ ÑÑанÑлÑÑиÑ",test:"ТеÑÑ"},de:{submit:"Streaming erstellen",submitting:"Wird erstelltâ¦",fillAll:"Füllen Sie alle Felder aus",invalidRtsp:"Der Link muss mit rtsp:// beginnen",invalidEmail:"Geben Sie eine gültige E-Mail-Adresse ein",success:"Fast fertig! Um Ihre Ãbertragung zu erstellen, bestätigen Sie sie über den Link in der E-Mail, die wir Ihnen gesendet haben â dort finden Sie auch das Passwort für Ihr Konto.",pending:"Eine frühere Anfrage für diese E-Mail wird noch bearbeitet â prüfen Sie Ihren Posteingang.",emailExists:"Diese E-Mail ist bereits registriert â ",emailExistsLogin:"melden Sie sich an",emailExistsTail:", um eine Ãbertragung hinzuzufügen.",generic:"Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut.",tooManyRequests:"Zu viele Anfragen. Bitte versuchen Sie es in {sec} Sek. erneut.",tooManyRequestsNoSec:"Zu viele Anfragen. Bitte versuchen Sie es später erneut.",newBroadcast:"Neue Ãbertragung",test:"Test"},pr:{submit:"Criar transmissão",submitting:"Criandoâ¦",fillAll:"Preencha todos os campos",invalidRtsp:"O link deve começar com rtsp://",invalidEmail:"Insira um e-mail válido",success:"Quase lá! Para criar sua transmissão, confirme-a pelo link do e-mail que enviamos â a senha da sua conta pessoal está na mesma mensagem.",pending:"Uma solicitação anterior para este e-mail ainda está sendo processada â verifique sua caixa de entrada.",emailExists:"Este e-mail já está cadastrado â ",emailExistsLogin:"entre",emailExistsTail:" para adicionar uma transmissão.",generic:"Algo deu errado. Tente novamente.",tooManyRequests:"Muitas solicitações. Tente novamente em {sec}s.",tooManyRequestsNoSec:"Muitas solicitações. Tente novamente mais tarde.",newBroadcast:"Nova transmissão",test:"Testar"},fr:{submit:"Créer une diffusion",submitting:"Créationâ¦",fillAll:"Remplissez tous les champs",invali
67dRtsp:"Le lien doit commencer par rtsp://",invalidEmail:"Saisissez une adresse e-mail valide",success:"Presque terminé ! Pour créer votre diffusion, confirmez-la via le lien envoyé par e-mail â le mot de passe de votre espace personnel s'y trouve aussi.",pending:"Une demande précédente pour cet e-mail est encore en cours de traitement â vérifiez votre boîte de réception.",emailExists:"Cet e-mail est déjà enregistré â ",emailExistsLogin:"connectez-vous",emailExistsTail:" pour ajouter une diffusion.",generic:"Une erreur s'est produite. Veuillez réessayer.",tooManyRequests:"Trop de requêtes. Réessayez dans {sec} s.",tooManyRequestsNoSec:"Trop de requêtes. Réessayez plus tard.",newBroadcast:"Nouvelle diffusion",test:"Tester"},es:{submit:"Crear transmisión",submitting:"Creandoâ¦",fillAll:"Rellena todos los campos",invalidRtsp:"El enlace debe empezar por rtsp://",invalidEmail:"Introduce un correo electrónico válido",success:"¡Casi listo! Para crear tu transmisión, confÃrmala con el enlace que te hemos enviado por correo â la contraseña de tu cuenta personal está en el mismo mensaje.",pending:"Una solicitud anterior para este correo aún se está procesando â revisa tu bandeja de entrada.",emailExists:"Este correo ya está registrado â ",emailExistsLogin:"inicia sesión",emailExistsTail:" para añadir una transmisión.",generic:"Algo salió mal. Inténtalo de nuevo.",tooManyRequests:"Demasiadas solicitudes. Inténtalo de nuevo en {sec} s.",tooManyRequestsNoSec:"Demasiadas solicitudes. Inténtalo de nuevo más tarde.",newBroadcast:"Nueva transmisión",test:"Probar"},it:{submit:"Crea trasmissione",submitting:"Creazioneâ¦",fillAll:"Compila tutti i campi",invalidRtsp:"Il link deve iniziare con rtsp://",invalidEmail:"Inserisci un'email valida",success:"Ci siamo quasi! Per creare la tua trasmissione, confermala tramite il link inviato via email â nella stessa email trovi anche la password del tuo account.",pending:"Una richiesta precedente per questa email è ancora in elaborazione â controlla la tua casella di posta.",emailExists:"Questa email è già registrata â ",emailExistsLogin:"accedi",emailExistsTail:" per aggiungere una trasmissione.",generic:"Qualcosa è andato storto. Riprova.",tooManyRequests:"Troppe richieste. Riprova tra {sec} s.",tooManyRequestsNoSec:"Troppe richieste. Riprova più tardi.",newBroadcast:"Nuova trasmissione",test:"Prova"},tr:{submit:"Yayın OluÅtur",submitting:"OluÅturuluyorâ¦",fillAll:"Tüm alanları doldurun",invalidRtsp:"BaÄlantı rtsp:// ile baÅlamalıdır",invalidEmail:"Geçerli bir e-posta adresi girin",success:"Neredeyse tamam! Yayınınızı oluÅturmak için, e-posta ile gönderdiÄimiz baÄlantıdan onaylayın â hesap Åifreniz de aynı e-postada.",pending:"Bu e-posta için önceki bir talep hâlâ iÅleniyor â gelen kutunuzu kontrol edin.",emailExists:"Bu e-posta zaten kayıtlı â ",emailExistsLogin:"giriÅ yapın",emailExistsTail:" ve bir yayın ekleyin.",generic:"Bir Åeyler ters gitti. Lütfen tekrar deneyin.",tooManyRequests:"Ãok fazla istek. Lütfen {sec} sn. sonra tekrar deneyin.",tooManyRequestsNoSec:"Ãok fazla istek. Lütfen daha sonra tekrar deneyin.",newBroadcast:"Yeni yayın",test:"Test"},zh:{submit:"åå»ºç´æ",submitting:"å建ä¸â¦",fillAll:"è¯·å¡«åææåæ®µ",invalidRtsp:"龿¥å¿
须以 rtsp:// å¼å¤´",invalidEmail:"请è¾å
¥ææççµåé®ç®±",success:"å°±å¿«å®æäºï¼è¦åå»ºç´æï¼è¯·éè¿æä»¬åéå°ä½ é®ç®±ç龿¥è¿è¡ç¡®è®¤ â è´¦æ·å¯ç ä¹å¨åä¸å°é®ä»¶ä¸ã",pending:"该é®ç®±ä¹åç请æ±ä»å¨å¤çä¸ â è¯·æ¥æ¶ä½ çé®ç®±ã",emailExists:"该é®ç®±å·²æ³¨å â ",emailExistsLogin:"ç»å½",emailExistsTail:" 以添å ç´æã",generic:"åºäºç¹é®é¢ï¼è¯·éè¯ã",tooManyRequests:"请æ±è¿äºé¢ç¹ï¼è¯·å¨ {sec} ç§åéè¯ã",tooManyRequestsNoSec:"请æ±è¿äºé¢ç¹ï¼è¯·ç¨åéè¯ã",newBroadcast:"æ°ç´æ",test:"æµè¯"}},Yc=e=>/^rtsps?:\/\/[^\s/]+/i.test(e.trim()),Ny=e=>/^\S+@\S+\.\S+$/.test(e),Qc=(e,t)=>t.retryAfterSec&&t.retryAfterSec>0?e.tooManyRequests.replace("{sec}",String(t.retryAfterSec)):e.tooManyRequestsNoSec,Nh=()=>{const{lang:e,openCheck:t}=V(),n=kh[e],[a,s]=x.useState(()=>ys(e)),[i,l]=x.useState(""),[o,u]=x.useState(""),[c,p]=x.useState(!1),[m,h]=x.useState(null);return{m:n,dc:a,setDc:s,rtspLink:i,setRtspLink:l,email:o,setEmail:u,submitting:c,notice:m,handleSubmit:async b=>{b.preventDefault(),h(null);const S=i.trim();if(!S){h({kind:"error",text:n.fillAll});return}if(!Yc(S)){h({kind:"error",text:n.invalidRtsp});return}if(Ft.getState().isAuthenticated){p(!0);try{const d=await Gc.create({...ky,cam_name:n.newBroadcast,rtsp_link:S,location:a});window.location.assign(uu(e,`/cameras/${d.uniq_id}/edit`));return}catch(d){h({kind:"error",text:Xs(d)?Qc(n,d):d instanceof qe&&d.code==="validation_error"?d.getValidationMessages()[0]??n.generic:n.generic}),p(!1)}return}const f=o.trim();if(!f){h({kind:"error",text:n.fillAll});return}if(!Ny(f)){h({kind:"error",text:n.invalidEmail});return}p(!0);try{const d=await Gc.quickAdd({email:f,location:a,rtsp_link:S,lng:e});h({kind:"success",text:d!=null&&d.pending?n.pending:n.success});try{const g=await Kc(a);g&&t(S,g)}catch{}}catch(d){Ph(d)?h({kind:"error",text:n.emailExists,login:!0}):Xs(d)?h({kind:"error",text:Qc(n,d)}):d instanceof qe&&d.code==="validation_error"?h({kind:"error",text:d.getValidationMessages()[0]??n.generic}):h({kind:"error",text:n.generic})}finally{p(!1)}},handleTest:async()=>{h(null);const b=i.trim();if(!b){h({kind:"error",text:n.fillAll});return}if(!Yc(b)){h({kind:"error",text:n.invalidRtsp});return}try{const S=await Kc(a);S?t(b,S):h({kind:"error",text:n.generic})}catch{h({kind:"error",text:n.generic})}}}},Th=({notice:e})=>{const{lang:t,openPopup:n}=V(),a=kh[t];return e?e.kind==="error"?r.jsxs("p",{className:"form__error",children:[e.text,e.login&&r.jsxs(r.Fragment,{children:[r.jsx("a",{className:"popup-link",onClick:()=>
67n("popup-login"),children:a.emailExistsLogin}),a.emailExistsTail]})]}):r.jsx("p",{className:"form__error",style:{color:"var(--success)"},children:e.text}):null},Ty={en:{h1:r.jsxs(r.Fragment,{children:["Stream Your IP Camera ",r.jsx("br",{})," to Your Website in One Click"]}),rtspLabel:"YOUR RTSP LINK (H.264/H.265) ",emailLabel:"ENTER YOUR EMAIL",dcLabel:"Nearest data center"},ru:{h1:r.jsxs(r.Fragment,{children:["ТÑанÑлÑÑÐ¸Ñ Ñ IP-камеÑÑ ",r.jsx("br",{})," на ÑÐ°Ð¹Ñ Ð² один клик"]}),rtspLabel:"ÐÐШРRTSP-ССЫÐÐÐ (H.264/H.265) ",emailLabel:"ÐÐÐÐÐТРÐÐШ EMAIL",dcLabel:"ÐлижайÑий даÑа ÑенÑÑ"},de:{h1:r.jsxs(r.Fragment,{children:["Service zur Erstellung von ",r.jsx("br",{})," RTSP-Streams auf einer Website mit nur einem Klick"]}),rtspLabel:"IHRE RTSP-URL (H.264/H.265) ",emailLabel:"GEBEN SIE IHRE E-MAIL EIN",dcLabel:"Nächstgelegenes Rechenzentrum"},pr:{h1:r.jsxs(r.Fragment,{children:["Serviço para criar ",r.jsx("br",{})," transmissão RTSP em seu site com um clique"]}),rtspLabel:"SEU LINK RTSP (H.264/H.265) ",emailLabel:"INSIRA SEU E-MAIL",dcLabel:"Data center mais próximo"},fr:{h1:r.jsxs(r.Fragment,{children:["Service de création ",r.jsx("br",{})," dâun flux RTSP sur un site en un clic"]}),rtspLabel:"VOTRE LIEN RTSP (H.264/H.265) ",emailLabel:"ENTREZ VOTRE EMAIL",dcLabel:"Centre de données le plus proche"},es:{h1:r.jsxs(r.Fragment,{children:["Servicio para crear ",r.jsx("br",{})," transmisión RTSP en tu sitio con un solo clic"]}),rtspLabel:"TU ENLACE RTSP (H.264/H.265) ",emailLabel:"INGRESA TU CORREO ELECTRÃNICO",dcLabel:"Centro de datos más cercano"},it:{h1:r.jsxs(r.Fragment,{children:["Servizio per creare ",r.jsx("br",{})," trasmissioni RTSP sul tuo sito con un clic"]}),rtspLabel:"IL TUO LINK RTSP (H.264/H.265) ",emailLabel:"INSERISCI LA TUA EMAIL",dcLabel:"Data center più vicino"},tr:{h1:r.jsxs(r.Fragment,{children:["Tek tıklamayla ",r.jsx("br",{})," sitenize RTSP yayını oluÅturma hizmeti"]}),rtspLabel:"RTSP LİNKİNİZ (H.264/H.265) ",emailLabel:"E-POSTA ADRESİNİZİ GİRİN",dcLabel:"En yakın veri merkezi"},zh:{h1:r.jsxs(r.Fragment,{children:["ä¸é®å¨ç½ç«ä¸ ",r.jsx("br",{})," å建RTSPç´æçæå¡"]}),rtspLabel:"è¾å
¥RTSP龿¥ï¼H.264/H.265ï¼ ",emailLabel:"è¾å
¥çµåé®ç®±",dcLabel:"æè¿çæ°æ®ä¸å¿"}},Ey=()=>r.jsx("a",{href:"#faq-what_my_rtsp_link",style:{display:"inline-block",verticalAlign:"middle"},children:r.jsxs("svg",{width:"1em",height:"1em",viewBox:"0 0 16 16",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",style:{display:"inline-block",verticalAlign:"middle"},children:[r.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8 14C11.3137 14 14 11.3137 14 8C14 4.68629 11.3137 2 8 2C4.68629 2 2 4.68629 2 8C2 11.3137 4.68629 14 8 14ZM15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8Z"}),r.jsx("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M7.13895 4.17127C7.41326 4.05765 7.70593 4 7.99998 4C8.14666 4 8.29369 4.01434 8.43894 4.04323C8.87539 4.13005 9.2763 4.34434 9.59097 4.65901C9.90564 4.97368 10.1199 5.37459 10.2067 5.81105C10.2936 6.24751 10.249 6.6999 10.0787 7.11104C9.90841 7.52217 9.62003 7.87357 9.25002 8.12081C9.02062 8.27408 8.76624 8.38306 8.49998 8.44374L8.5 8.5C8.5 8.77614 8.27614 9 8 9C7.72386 9 7.5 8.77614 7.5 8.5L7.49998 8C7.49998 7.86739 7.55266 7.74022 7.64643 7.64645C7.7402 7.55268 7.86737 7.5 7.99998 7.5C8.24721 7.5 8.48888 7.42669 8.69445 7.28934C8.90001 7.15199 9.06022 6.95676 9.15483 6.72836C9.24944 6.49995 9.2742 6.24861 9.22596 6.00614C9.17773 5.76366 9.05868 5.54093 8.88387 5.36612C8.70905 5.1913 8.48632 5.07225 8.24385 5.02402C8.16314 5.00797 8.08147 5 7.99999 5C7.83661 5 7.67402 5.03203 7.52163 5.09515C7.29322 5.18976 7.098 5.34998 6.96065 5.55554C6.82329 5.7611 6.74998 6.00277 6.74998 6.25C6.74998 6.52614 6.52613 6.75 6.24998 6.75C5.97384 6.75 5.74998 6.52614 5.74998 6.25C5.74998 5.80499 5.88194 5.36998 6.12918 4.99997C6.37641 4.62996 6.72781 4.34157 7.13895 4.17127Z"}),r.jsx("path",{d:"M8 12C8.41421 12 8.75 11.6642 8.75 11.25C8.75 10.8358 8.41421 10.5 8 10.5C7.58579 10.5 7.25 10.8358 7.25 11.25C7.25 11.6642 7.58579 12 8 12Z"})]})}),zy=()=>r.jsx("svg",{width:"26",height:"26",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:r.jsx("path",{d:"M5 12.5l4.5 4.5L19 6.5"})}),Ry=()=>{const{lang:e}=V(),t=Ty[e],{m:n,dc:a,setDc:s,rtspLink:i,setRtspLink:l,email:o,setEmail:u,submitting:c,notice:p,handleSubmit:m,handleTest:h}=Nh(),[v,j]=x.useState(!1),[b,S]=x.useState(!1),[f,d]=x.useState(!1);x.useEffect(()=>{const P=window.matchMedia("(min-width: 1280px)"),T=()=>j(P.matches);return T(),P.addEventListener("change",T),()=>P.removeEventListener("change",T)},[]);const g=v&&(b||f),[y,w]=x.useState(null);return x.useEffect(()=>{let P=!0;return wh().then(T=>{P&&(T!=null&&T.promoVideoUrl)&&w(T.promoVideoUrl)}),()=>{P=!1}},[]),r.jsxs("section",{className:"hero section",id:"hero",children:[r.jsx("div",{className:"container",children:r.jsxs("div",{className:"hero__inner",children:[r.jsx("h1",{className:"hero__h1 anim",children:t.h1}),r.jsxs("form",{className:`hero__form form${g?" hero__form--focus":""}`,onSubmit:m,children:[r.jsxs("div",{className:"form__groups",children:[r.jsxs("div",{className:"form__group",children:[r.jsxs("label",{className:"form__label",children:[t.rtspLabel,r.jsx(Ey,{})]}),r.jsxs("div",{style:{display:"flex",gap:8,alignItems:"stretch"},children:[r.jsx("input",{className:"form__input input-reset input-link",style:{flex:1,minWidth:0},type:"text",name:"rtspLink",placeholder:"rtsp://admin:[email protected]:554/main",value:i,onChange:P=>l(P.currentTarget.value),onMouseEnter:()=>S(!0),onMouseLeave:()=>S(!1),onFocus:()=>d(!0),onBlur:()=>d(!1)}),r.jsx("button",{className:"btn btn-reset",type:"button",style:{flex:"0 0 auto",width:"auto",padding:"0 22px",whiteSpace:"nowrap",border:"1px solid var(--accent)",background:"transparent",color:"var(--accent)"},onClick:h,children:n.test})]})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:t.emailLabel}),r.jsx("input",{className:"form__input input-reset input-email",type:"email",name:"rtspEmail",placeholder:"[email protected]",value:o,onChange:P=>u(P.currentTarget.value),autoComplete:"email"})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:t.dcLabel}),r.jsx(_h,{value:a,onChange:s,inputClassName:"select__input location-data-center-value"})]})]}),r.jsx("button",{className:"form__btn btn btn--red btn-reset",id:"createTranslation",type:"submit",disabled:c,title:n.submit,"aria-label":n.submit,children:g&&!c?r.jsx(zy,{}):r.jsx("span",{className:"form__btn-text",children:c?n.submitting:n.submit})}),p&&r.jsx("div",{style:{gridColumn:"1 / -1"},children:r.jsx(Th,{notice:p})})]})]})}
67),y&&r.jsx("video",{className:"hero__video",playsInline:!0,autoPlay:!0,muted:!0,loop:!0,children:r.jsx("source",{src:y,type:"video/mp4"})},y)]})},le=({webp:e,fallback:t,width:n,height:a,alt:s="Image",className:i,imgClassName:l="img",style:o,imgStyle:u})=>r.jsxs("picture",{className:i,style:o,children:[r.jsx("source",{srcSet:e,type:"image/webp"}),r.jsx("img",{className:l,src:t??e,width:n,height:a,alt:s,loading:"lazy",style:u})]}),Cy={en:{suptitle:"Service",h2:r.jsxs(r.Fragment,{children:["How we create online ",r.jsx("br",{})," streaming on the webpage"]}),item1:{h3:r.jsxs(r.Fragment,{children:["Your IP camera ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["We obtain the video stream from your IP camera or recorder via the RTSP protocol. A direct RTSP camera connection requires a public IP address and port mapping setup.",r.jsx("br",{}),"No public IP? Use"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),", the"," ",r.jsx("a",{href:"streaming-agent.html",children:"software agent"})," or"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"RTSP to HLS and WebRTC Media Server"}),text:r.jsxs(r.Fragment,{children:["We convert the ",r.jsx("a",{href:"what-is-rtsp.html",children:"RTSP stream"})," from your IP camera into a format viewable in browsers and on mobile devices (Android, iOS). We provide a ready-to-use HTML5 player with HTTPS support for embedding the stream on your website. The player supports HLS (M3U8) and ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," for low-latency viewing. If needed, you can enable a"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"cloud video archive"})," with continuous or motion-triggered recording â even for just one day."]})},item3:{h3:r.jsx(r.Fragment,{children:"RTSP Restreaming"}),text:r.jsx(r.Fragment,{children:"We receive a single RTSP stream from your IP camera and relay it to all viewers through our media servers. No matter how many viewers are watching, the camera sends only one video stream â the RTSP.ME infrastructure handles the scaling. We support up to 1 million simultaneous viewers."})}},ru:{suptitle:"УÑлÑга",h2:r.jsxs(r.Fragment,{children:["Ðак Ð¼Ñ Ñоздаем онлайн ",r.jsx("br",{})," ÑÑанcлÑÑÐ¸Ñ Ð½Ð° ÑайÑе"]}),item1:{h3:r.jsxs(r.Fragment,{children:["ÐаÑа IP-камеÑа ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["ÐолÑÑаем видеопоÑок Ñ Ð²Ð°Ñей IP-камеÑÑ Ð¸Ð»Ð¸ видеоÑегиÑÑÑаÑоÑа ÑеÑез RTSP-пÑоÑокол. ÐÐ»Ñ Ð¿ÑÑмого подклÑÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¼ÐµÑÑ Ð¿Ð¾ RTSP поÑÑебÑеÑÑÑ"," ",r.jsx("a",{href:"#faq-what_my_static_ip",children:"пÑблиÑнÑй IP-адÑеÑ"})," и"," ",r.jsx("a",{href:"#faq-how_set_pot_mapping",children:"наÑÑÑойка Port Mapping"}),".",r.jsx("br",{}),"ÐÐµÑ Ð¿ÑблиÑного IP? ÐÑполÑзÑйÑе"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),","," ",r.jsx("a",{href:"streaming-agent.html",children:"пÑогÑаммнÑй агенÑ"})," или"," ",r.jsx("a",{href:"#products",children:"ÐÐ¸Ð½Ð¸Ñ Bridge POE"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"ÐедиаÑеÑÐ²ÐµÑ RTSP â HLS и WebRTC"}),text:r.jsxs(r.Fragment,{children:["ÐÑеобÑазÑем ",r.jsx("a",{href:"what-is-rtsp.html",children:"RTSP-поÑок"})," ваÑей IP-камеÑÑ Ð² ÑоÑÐ¼Ð°Ñ Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа в бÑаÑзеÑаÑ
и на мобилÑнÑÑ
ÑÑÑÑойÑÑваÑ
(Android, iOS). ÐÑедоÑÑавлÑем гоÑовÑй HTML5-Ð¿Ð»ÐµÐµÑ Ñ Ð¿Ð¾Ð´Ð´ÐµÑжкой HTTPS Ð´Ð»Ñ ÑазмеÑÐµÐ½Ð¸Ñ ÑÑанÑлÑÑии на ваÑем ÑайÑе. ÐÐ»ÐµÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ HLS (M3U8) и ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа Ñ Ð½Ð¸Ð·ÐºÐ¾Ð¹ задеÑжкой. ÐÑи необÑ
одимоÑÑи можно подклÑÑиÑÑ"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"облаÑнÑй видеоаÑÑ
ив"})," Ñ Ð½ÐµÐ¿ÑеÑÑвной запиÑÑÑ Ð¸Ð»Ð¸ запиÑÑÑ Ð¿Ð¾ деÑекÑии â даже вÑего на один денÑ."]})},item3:{h3:r.jsx(r.Fragment,{children:"RTSP-ÑеÑÑанÑлÑÑоÑ"}),text:r.jsx(r.Fragment,{children:"ÐолÑÑаем один RTSP-поÑок Ñ Ð²Ð°Ñей IP-камеÑÑ Ð¸ ÑеÑÑанÑлиÑÑем его вÑем зÑиÑелÑм ÑеÑез наÑи медиаÑеÑвеÑÑ. ÐезавиÑимо Ð¾Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва зÑиÑелей камеÑа пеÑÐµÐ´Ð°ÐµÑ ÑолÑко один видеопоÑок, а маÑÑÑабиÑование ÑÑанÑлÑÑии беÑÐµÑ Ð½Ð° ÑÐµÐ±Ñ Ð¸Ð½ÑÑаÑÑÑÑкÑÑÑа RTSP.RU. ÐоддеÑживаем до 1 млн одновÑеменнÑÑ
зÑиÑелей."})}},de:{suptitle:"Service",h2:r.jsxs(r.Fragment,{children:["Wie wir Online- ",r.jsx("br",{})," Streaming auf einer Webseite erstellen"]}
67),item1:{h3:r.jsxs(r.Fragment,{children:["Ihre IP-Kamera ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["Wir erhalten den Videostream Ihrer IP-Kamera oder Ihres Rekorders über das RTSP-Protokoll. Für die direkte Kameraanbindung per RTSP benötigen Sie eine öffentliche IP-Adresse und ein konfiguriertes Port-Mapping.",r.jsx("br",{}),"Keine öffentliche IP? Nutzen Sie"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),", den"," ",r.jsx("a",{href:"streaming-agent.html",children:"Software-Agenten"})," oder"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"Medienserver für RTSP zu HLS und WebRTC"}),text:r.jsxs(r.Fragment,{children:["Wir wandeln den ",r.jsx("a",{href:"what-is-rtsp.html",children:"RTSP-Stream"})," Ihrer IP-Kamera in ein Format um, das in Browsern und auf Mobilgeräten (Android, iOS) abgespielt werden kann. Wir stellen einen fertigen HTML5-Player mit HTTPS-Unterstützung zur Einbettung der Ãbertragung auf Ihrer Website bereit. Der Player unterstützt HLS (M3U8) sowie"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," für die Wiedergabe mit geringer Latenz. Bei Bedarf können Sie ein"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"Cloud-Videoarchiv"})," mit kontinuierlicher oder detektionsbasierter Aufzeichnung zuschalten â sogar für nur einen Tag."]})},item3:{h3:r.jsx(r.Fragment,{children:"RTSP-Weiterleitung"}),text:r.jsx(r.Fragment,{children:"Wir empfangen einen einzigen RTSP-Stream von Ihrer IP-Kamera und verteilen ihn über unsere Medienserver an alle Zuschauer. Unabhängig von der Zuschauerzahl sendet die Kamera nur einen Videostream â die Skalierung übernimmt die RTSP.ME-Infrastruktur. Wir unterstützen bis zu 1 Million gleichzeitige Zuschauer."})}},pr:{suptitle:"Serviço",h2:r.jsxs(r.Fragment,{children:["Como criamos a transmissão ",r.jsx("br",{})," ao vivo na página web"]}),item1:{h3:r.jsxs(r.Fragment,{children:["Sua câmera IP ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["Obtemos o fluxo de vÃdeo da sua câmera IP ou gravador via protocolo RTSP. Para conectar a câmera diretamente via RTSP, é necessário um endereço IP público e a configuração de redirecionamento de portas.",r.jsx("br",{}),"Não tem IP público? Use o"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),", o"," ",r.jsx("a",{href:"streaming-agent.html",children:"agente de software"})," ou o"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"Servidor de mÃdia de RTSP para HLS e WebRTC"}),text:r.jsxs(r.Fragment,{children:["Convertemos o ",r.jsx("a",{href:"what-is-rtsp.html",children:"fluxo RTSP"})," da sua câmera IP em um formato para visualização em navegadores e dispositivos móveis (Android, iOS). Fornecemos um player HTML5 pronto, com suporte a HTTPS, para incorporar a transmissão em seu site. O player suporta HLS (M3U8) e"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," para visualização com baixa latência. Se necessário, é possÃvel ativar um"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"arquivo de vÃdeo na nuvem"})," ","com gravação contÃnua ou por detecção de movimento â até mesmo por apenas um dia."]})},item3:{h3:r.jsx(r.Fragment,{children:"Retransmissão RTSP"}),text:r.jsx(r.Fragment,{children:"Recebemos um único fluxo RTSP da sua câmera IP e o retransmitimos a todos os espectadores através dos nossos servidores de mÃdia. Independentemente do número de espectadores, a câmera envia apenas um fluxo de vÃdeo â a escalabilidade da transmissão fica por conta da infraestrutura do RTSP.ME. Suportamos até 1 milhão de espectadores simultâneos."})}},fr:{suptitle:"Service",h2:r.jsxs(r.Fragment,{children:["Comment nous créons la diffusion ",r.jsx("br",{})," en direct sur la page web"]}),item1:{h3:r.jsxs(r.Fragment,{children:["Votre caméra IP ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["Nous obtenons le flux vidéo de votre caméra IP ou de votre enregistreur via le protocole RTSP. La connexion directe de la caméra en RTSP nécessite une adresse IP publique et la configuration du transfert de port.",r.jsx("br",{}),"Pas dâIP publique ? Utilisez"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),", lâ",r.jsx("a",{href:"streaming-agent.html",children:"agent logiciel"})," ou"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"Serveur multimédia de RTSP vers HLS et WebRTC"}
67),text:r.jsxs(r.Fragment,{children:["Nous convertissons le ",r.jsx("a",{href:"what-is-rtsp.html",children:"flux RTSP"})," de votre caméra IP en un format lisible dans les navigateurs et sur les appareils mobiles (Android, iOS). Nous fournissons un lecteur HTML5 prêt à lâemploi avec prise en charge HTTPS pour intégrer la diffusion sur votre site. Le lecteur prend en charge HLS (M3U8) et"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," pour une lecture à faible latence. Si nécessaire, vous pouvez activer une"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"archive vidéo cloud"})," avec enregistrement continu ou sur détection â même pour un seul jour."]})},item3:{h3:r.jsx(r.Fragment,{children:"Retransmission RTSP"}),text:r.jsx(r.Fragment,{children:"Nous recevons un seul flux RTSP de votre caméra IP et le retransmettons à tous les spectateurs via nos serveurs multimédias. Quel que soit le nombre de spectateurs, la caméra nâenvoie quâun seul flux vidéo â la montée en charge est assurée par lâinfrastructure RTSP.ME. Nous prenons en charge jusquâà 1 million de spectateurs simultanés."})}},es:{suptitle:"Servicio",h2:r.jsxs(r.Fragment,{children:["Cómo creamos la ",r.jsx("br",{})," transmisión en vivo en la página web"]}),item1:{h3:r.jsxs(r.Fragment,{children:["Tu cámara IP ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["Obtenemos la señal de video de tu cámara IP o grabadora a través del protocolo RTSP. Para conectar la cámara directamente por RTSP se necesita una dirección IP pública y la configuración del mapeo de puertos.",r.jsx("br",{}),"¿No tienes IP pública? Usa"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),", el"," ",r.jsx("a",{href:"streaming-agent.html",children:"agente de software"})," o"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"Servidor multimedia de RTSP a HLS y WebRTC"}),text:r.jsxs(r.Fragment,{children:["Convertimos el ",r.jsx("a",{href:"what-is-rtsp.html",children:"flujo RTSP"})," de tu cámara IP a un formato visible en navegadores y dispositivos móviles (Android, iOS). Proporcionamos un reproductor HTML5 listo para usar, con soporte HTTPS, para insertar la transmisión en tu sitio web. El reproductor admite HLS (M3U8) y"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," para una reproducción de baja latencia. Si lo necesitas, puedes activar un"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"archivo de video en la nube"})," ","con grabación continua o por detección â incluso por un solo dÃa."]})},item3:{h3:r.jsx(r.Fragment,{children:"Retransmisión RTSP"}),text:r.jsx(r.Fragment,{children:"Recibimos un único flujo RTSP de tu cámara IP y lo retransmitimos a todos los espectadores a través de nuestros servidores multimedia. Sin importar el número de espectadores, la cámara envÃa un solo flujo de video: del escalado de la transmisión se encarga la infraestructura de RTSP.ME. Admitimos hasta 1 millón de espectadores simultáneos."})}},it:{suptitle:"Servizio",h2:r.jsxs(r.Fragment,{children:["Come creiamo la ",r.jsx("br",{})," trasmissione in diretta sulla pagina web"]}),item1:{h3:r.jsxs(r.Fragment,{children:["La tua telecamera IP ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["Acquisiamo lo stream video dalla tua telecamera IP o dal tuo registratore tramite il protocollo RTSP. Per collegare la telecamera direttamente via RTSP servono un indirizzo IP pubblico e la configurazione del port forwarding.",r.jsx("br",{}),"Non hai un IP pubblico? Usa"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),", lâ",r.jsx("a",{href:"streaming-agent.html",children:"agente software"})," o"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"."]})},item2:{h3:r.jsx(r.Fragment,{children:"Server multimediale da RTSP a HLS e WebRTC"}),text:r.jsxs(r.Fragment,{children:["Convertiamo il ",r.jsx("a",{href:"what-is-rtsp.html",children:"flusso RTSP"})," della tua telecamera IP in un formato visualizzabile nei browser e sui dispositivi mobili (Android, iOS). Forniamo un lettore HTML5 pronto allâuso con supporto HTTPS per inserire la trasmissione sul tuo sito. Il lettore supporta HLS (M3U8) e"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," per la riproduzione a bassa latenza. Se necessario, puoi attivare un"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"archivio video cloud"})," con registrazione continua o su rilevamento â anche per un solo giorno."]})},item3:{h3:r.jsx(r.Fragment,{children:"Ritrasmissione RTSP"}),text:r.jsx(r.Fragment,{children:"Riceviamo un unico flusso RTSP dalla tua telecamera IP e lo ritrasmettiamo a tutti gli spettatori tramite i nostri server multimediali. Indipendentemente dal numero di spettatori, la telecamera invia un solo flusso video: alla scalabilità della trasmissione pensa lâinfrastruttura di RTSP.ME. Supportiamo fino a 1 milione di spettatori simultanei."})}},tr:{suptitle:"Hizmet",h2:r.jsxs(r.Fragment,{children:["Web sayfasında ",r.jsx("br",{})," canlı yayını nasıl oluÅturuyoruz"]}),item1:{h3:r.jsxs(r.Fragment,{children:["IP Kameranız ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["IP kameranızın veya kayıt cihazınızın RTSP protokolü üzerinden saÄladıÄı video akıÅını alıyoruz. Kameranın RTSP ile doÄrudan baÄlanabilmesi için genel (public) bir IP adresi ve port yönlendirme ayarı gerekir.",r.jsx("br",{}),"Genel IP adresiniz yok mu?"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),","," ",r.jsx("a",{href:"streaming-agent.html",children:"yazılım ajanı"})," veya"," ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"})," kullanın."]})},item2:{h3:r.jsx(r.Fragment,{children:"RTSPâden HLS ve WebRTCâye Medya Sunucusu"}),text:r.jsxs(r.Fragment,{children:["IP kameranızın ",r.jsx("a",{href:"what-is-rtsp.html",children:"RTSP akıÅını"})," ","tarayıcılarda ve mobil cihazlarda (Android, iOS) izlenebilecek bir formata dönüÅtürüyoruz. Yayını sitenize yerleÅtirmeniz için HTTPS destekli, kullanıma hazır bir HTML5 oynatıcı sunuyoruz. Oynatıcı, HLS (M3U8) ve düÅük gecikmeli izleme için"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"})," desteÄi sunar. Gerekirse, sürekli veya hareket algılamalı kayıt yapan"," ",r.jsx("a",{href:"cloud-video-surveillance.html",children:"bulut video arÅivini"})," ","etkinleÅtirebilirsiniz â hatta yalnızca bir günlüÄüne."]})},item3:{h3:r.jsx(r.Fragment,{children:"RTSP Yeniden Yayını"}),text:r.jsx(r.Fragment,{children:"IP kameranızdan tek bir RTSP akıÅı alır ve bunu medya sunucularımız üzerinden tüm izleyicilere iletiriz. İzleyici sayısı ne olursa olsun, kamera yalnızca tek bir video akıÅı gönderir â yayının ölçeklendirilmesini RTSP.ME altyapısı üstlenir. Aynı anda 1 milyona kadar izleyiciyi destekliyoruz."})}},zh:{suptitle:"æå¡",h2:r.jsxs(r.Fragment,{children:["æä»¬å¦ä½å¨ç½é¡µä¸ ",r.jsx("br",{})," å建å¨çº¿ç´æ"]}),item1:{h3:r.jsxs(r.Fragment,{children:["ä½ çIPæåæº ",r.jsx("br",{})," (DVR, NVR)"]}),text:r.jsxs(r.Fragment,{children:["æä»¬éè¿RTSPåè®®è·åä½ çIPæåæºæå½åæºï¼DVRãNVRï¼çè§é¢æµãéè¿RTSPç´æ¥è¿æ¥æåæºéè¦å
¬ç½IPå°åå¹¶è®¾ç½®ç«¯å£æ å°ã",r.jsx("br",{}),"没æå
¬ç½IPï¼è¯·ä½¿ç¨",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),"ã",r.jsx("a",{href:"streaming-agent.html",children:"软件代ç"}),"æ",r.jsx("a",{href:"#products",children:"MyVMS Bridge"}),"ã"]})},item2:{h3:r.jsx(r.Fragment,{children:"RTSP转HLSåWebRTCåªä½æå¡å¨"}),text:r.jsxs(r.Fragment,{children:["æä»¬å°IPæåæºç",r.jsx("a",{href:"what-is-rtsp.html",children:"RTSPæµ"}),"转æ¢ä¸ºå¯å¨æµè§å¨åç§»å¨è®¾å¤ï¼AndroidãiOSï¼ä¸è§ççæ ¼å¼ãæä»¬æä¾æ¯æHTTPSçç°æHTML5ææ¾å¨ï¼å¯å°ç´æåµå
¥ä½ çç½ç«ãææ¾å¨æ¯æHLSï¼M3U8ï¼ï¼å¹¶æ¯æéè¿",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC"}),"å®ç°ä½å»¶è¿è§çã妿éè¦ï¼å¯ä»¥å¯ç¨",r.jsx("a",{href:"cloud-video-surveillance.html",children:"äºè§é¢åæ¡£"}),"ï¼æ¯æè¿ç»å½å¶ææ£æµè§¦åå½å¶ââçè³åªå¼éä¸å¤©ã"]})},item3:{h3:r.jsx(r.Fragment,{children:"RTSP转æ"}),text:r.jsx(r.Fragment,{children:"æä»¬ä»IPæåæºæ¥æ¶åè·¯RTSPè§é¢æµï¼å¹¶éè¿æä»¬çåªä½æå¡å¨è½¬åç»ææè§ä¼ãæ 论è§ä¼æ°éå¤å°ï¼æåæºåªä¼ è¾ä¸è·¯è§é¢æµï¼ç´æçæ©å±ç±RTSP.MEåºç¡è®¾æ½æ¿æ
ãæ¯æé«è¾¾1,000,000åè§ä¼åæ¶è§çã"})}}},Iy=()=>{const{lang:e}=V(),t=Cy[e];return r.jsx("section",{className:"service section",id:"service",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"service__top top",children:[r.jsx("span",{className:"service__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"service__h2 h2 anim",children:t.h2})]}),r.jsxs("ul",{className:"service__list list-reset",children:[r.jsxs("li",{className:"service__item",children:[r.jsx("img",{className:"service__icon",loading:"lazy",src:"/landing/img/main/camera.svg",width:36,height:36,alt:"Icon"}),r.jsx("div",{className:"service__grid",style:{gridTemplateColumns:"1fr"},children:r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/01.webp",fallback:"/landing/img/service/01.png",width:185,height:96})})}),r.jsxs("div",{className:"service__content",children:[r.jsx("h3",{className:"service__h3 h3 anim",children:t.item1.h3}),r.jsx("p",{className:"service__text text",children:t.item1.text})]})]}),r.jsxs("li",{className:"service__item",children:[r.jsx("img",{className:"service__icon",loading:"lazy",src:"/landing/img/main/settings.svg",width:36,height:36,alt:"Icon"}),r.jsxs("div",{className:"service__grid",style:{gridTemplateColumns:"1fr 1fr"}
67,children:[r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/02.webp",fallback:"/landing/img/service/02.png",width:395,height:200})}),r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/03.webp",fallback:"/landing/img/service/03.png",width:185,height:96})}),r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/04.webp",fallback:"/landing/img/service/04.png",width:185,height:96})}),r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/05.webp",fallback:"/landing/img/service/05.png",width:185,height:96})})]}),r.jsxs("div",{className:"service__content",children:[r.jsx("h3",{className:"service__h3 h3 anim",children:t.item2.h3}),r.jsx("p",{className:"service__text text",children:t.item2.text})]})]}),r.jsxs("li",{className:"service__item",children:[r.jsx("img",{className:"service__icon",loading:"lazy",src:"/landing/img/main/play.svg",width:36,height:36,alt:"Icon"}),r.jsxs("div",{className:"service__grid",style:{gridTemplateColumns:"1fr 1fr"},children:[r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/01.webp",fallback:"/landing/img/service/01.png",width:185,height:96})}),r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/01.webp",fallback:"/landing/img/service/01.png",width:185,height:96})}),r.jsx("div",{className:"service__img anim-scale"}),r.jsx("div",{className:"service__img anim-scale",children:r.jsx(le,{webp:"/landing/img/service/01.webp",fallback:"/landing/img/service/01.png",width:185,height:96})})]}),r.jsxs("div",{className:"service__content",children:[r.jsx("h3",{className:"service__h3 h3 anim",children:t.item3.h3}),r.jsx("p",{className:"service__text text",children:t.item3.text})]})]})]})]})})},Fy={en:{suptitle:"Statistics",h2:"Over {n} IP cameras stream on websites worldwide with RTSP.ME",users:"Users",cameras:"IP Cameras",views:"Views"},ru:{suptitle:"СÑаÑиÑÑика",h2:"Ðолее {n} IP-ÐºÐ°Ð¼ÐµÑ ÑÑанÑлиÑÑÑÑÑÑ Ð½Ð° ÑайÑаÑ
по вÑÐµÐ¼Ñ Ð¼Ð¸ÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ RTSP.RU",users:"ÐолÑзоваÑелей",cameras:"IP-камеÑ",views:"Ðоказов"},de:{suptitle:"Statistiken",h2:"Ãber {n} IP-Kameras streamen mit RTSP.ME auf Websites weltweit",users:"Nutzer",cameras:"IP-Kameras",views:"Aufrufe"},pr:{suptitle:"EstatÃsticas",h2:"Mais de {n} câmeras IP transmitem em sites de todo o mundo com o RTSP.ME",users:"Usuários",cameras:"Câmeras IP",views:"Visualizações"},fr:{suptitle:"Statistiques",h2:"Plus de {n} caméras IP diffusent sur des sites web du monde entier avec RTSP.ME",users:"Utilisateurs",cameras:"Caméras IP",views:"Vues"},es:{suptitle:"EstadÃsticas",h2:"Más de {n}
67 cámaras IP transmiten en sitios web de todo el mundo con RTSP.ME",users:"Usuarios",cameras:"Cámaras IP",views:"Visualizaciones"},it:{suptitle:"Statistiche",h2:"Oltre {n} telecamere IP trasmettono su siti web di tutto il mondo con RTSP.ME",users:"Utenti",cameras:"Telecamere IP",views:"Visualizzazioni"},tr:{suptitle:"İstatistikler",h2:"{n}'den fazla IP kamera, RTSP.ME ile dünya çapındaki web sitelerinde yayın yapıyor",users:"Kullanıcılar",cameras:"IP Kameralar",views:"Görüntülemeler"},zh:{suptitle:"ç»è®¡",h2:"è¶
è¿ {n} å°IPæåæºéè¿ RTSP.ME å¨å
¨çç½ç«ä¸ç´æ",users:"ç¨æ·",cameras:"IPæåæº",views:"è§ç次æ°"}},Ly={users:115603,cameras:354095,views:1541615514,promoVideoUrl:null},My={en:"en-US",ru:"ru-RU",de:"de-DE",pr:"pt-BR",fr:"fr-FR",es:"es-ES",it:"it-IT",tr:"tr-TR",zh:"zh-CN"},Ay=e=>{x.useEffect(()=>{const t=Array.from(document.querySelectorAll("[data-count]"));if(t.length===0)return;const n=s=>{const i=Number(s.dataset.count??"0"),l=performance.now(),o=2e3,u=c=>{const p=Math.min(1,(c-l)/o);s.textContent=Math.floor(p*i).toLocaleString("ru-RU"),p<1&&requestAnimationFrame(u)};requestAnimationFrame(u)},a=new IntersectionObserver(s=>{for(const i of s)i.isIntersecting&&(n(i.target),a.unobserve(i.target))},{threshold:.4});return t.forEach(s=>a.observe(s)),()=>a.disconnect()},[e])},qy=()=>{const{lang:e}=V(),t=Fy[e],[n,a]=x.useState(Ly);x.useEffect(()=>{let o=!1;return wh().then(u=>{!o&&u&&a(u)}),()=>{o=!0}},[]),Ay(n);const s=Math.floor(n.cameras/1e3)*1e3,i=t.h2.replace("{n}",s.toLocaleString("ru-RU")),l=new Date().toLocaleDateString(My[e]);return r.jsx("section",{className:"statistics section",id:"statistics",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"statistics__top top",children:[r.jsxs("span",{className:"statistics__suptitle suptitle",children:[t.suptitle," ",l]}),r.jsx("h2",{className:"statistics__h2 h2 anim",children:i})]}),r.jsxs("ul",{className:"statistics__list list-reset",children:[r.jsxs("li",{className:"statistics__item",children:[r.jsx("h3",{className:"statistics__h3 h2","data-count":n.users,children:n.users.toLocaleString("ru-RU")}),r.jsx("p",{className:"statistics__text text",children:t.users})]}),r.jsxs("li",{className:"statistics__item",children:[r.jsx("h3",{className:"statistics__h3 h2","data-count":n.cameras,children:n.cameras.toLocaleString("ru-RU")}),r.jsx("p",{className:"statistics__text text",children:t.cameras})]}),r.jsxs("li",{className:"statistics__item",children:[r.jsx("h3",{className:"statistics__h3 h2","data-count":n.views,children:n.views.toLocaleString("ru-RU")}),r.jsx("p",{className:"statistics__text text",children:t.views})]})]})]})})},Dy=e=>{const t=Vt(e)?e:{},n=Vt(t.input)?t.input:{},a=Vt(t.compute)?t.compute:{},s=Vt(t.storage)?t.storage:{},i=Vt(t.total)?t.total:{},l=n.storageMode==="continuous"?"continuous":"detection";return{compute:{daily:vt(a.daily)},storage:{dailyGb:vt(s.dailyGb),totalGb:vt(s.totalGb),dailyCost:vt(s.dailyCost),totalCost:vt(s.totalCost)},total:{perDay:vt(i.perDay),perMonth:vt(i.perMonth)},currency:typeof t.currency=="string"?t.currency:"",storageMode:l,retentionDays:vt(n.retentionDays),cameras:vt(n.count5)}},Oy=e=>{if(Array.isArray(e))return{items:e,total:null};if(Vt(e)){const t=e.items??e.data??e.containers,n=Vt(e.pagination)?e.pagination:void 0,a=e.total??e.count??(n==null?void 0:n.total);return{items:Array.isArray(t)?t:[],total:typeof a=="number"?a:null}}return{items:[],total:null}},Hy={list:async e=>{var a,s;const t=new URLSearchParams,n=e.limit??50;return t.set("limit",String(n)),t.set("offset",String(((e.page??1)-1)*n)),(a=e.search)!=null&&a.trim()&&t.set("search",e.search.trim()),(s=e.fatherDevices)!=null&&s.trim()&&t.set("father_devices",e.fatherDevices.trim()),Oy(await H.get(`/lc-containers?${t.toString()}`))},create:e=>H.post("/lc-containers/create-on-server",e),update:(e,t)=>H.put(`/lc-containers/${e}/update-on-server`,t),remove:e=>H.delete(`/lc-containers/${e}/delete-on-server`),setPublicAccess:(e,t)=>H.patch(`/lc-containers/${e}`,{ezhd:t?1:0}),pricing:async e=>{const t=new URLSearchParams({m5:String(e.cameras),mode:e.mode,days:String(e.days),lang:e.lang});return Dy(await H.get(`/lc-containers/pricing?${t.toString()}`))}},Uy=(e,t,n)=>{const a=ah(n),s=t.toUpperCase();try{return new Intl.NumberFormat(a,{style:"currency",currency:s}).format(e)}
67catch{return`${e.toLocaleString(a)} ${s}`}},Vy=[3,7,14,30,90,180],By={en:{suptitle:"Cloud",title:"Cloud Video Surveillance",subtitle:"Record RTSP streams from IP cameras to the cloud, store video archives, and view recordings online in an HTML5 player on any device.",lead:"Record your streams to the cloud and estimate the cost in seconds.",cameras:"Number of cameras",mode:"Recording mode",detection:"On detection",continuous:"Continuous",retention:"Storage period",cost:"Cost",perMonth:"Per month",perDay:"Per day",storage:"Storage",gb:"GB",days:e=>`${e} days`},ru:{suptitle:"Ðблако",title:"ÐблаÑное видеонаблÑдение",subtitle:"ÐапиÑÑ RTSP-поÑока Ñ IP-ÐºÐ°Ð¼ÐµÑ Ð² облако, Ñ
Ñанение видеоаÑÑ
ива и пÑоÑмоÑÑ Ð·Ð°Ð¿Ð¸Ñей ÑеÑез инÑеÑÐ½ÐµÑ Ð² HTML5-плееÑе на лÑбом ÑÑÑÑойÑÑве.",lead:"ÐапиÑÑвайÑе ÑÑанÑлÑÑии в облако и оÑениÑе ÑÑоимоÑÑÑ Ð·Ð° ÑекÑндÑ.",cameras:"ÐолиÑеÑÑво камеÑ",mode:"Режим запиÑи",detection:"Ðо деÑекÑии",continuous:"ÐепÑеÑÑвно",retention:"СÑок Ñ
ÑанениÑ",cost:"СÑоимоÑÑÑ",perMonth:"РмеÑÑÑ",perDay:"РденÑ",storage:"Ð¥ÑанилиÑе",gb:"ÐÐ",days:e=>`${e} дн.`},de:{suptitle:"Cloud",title:"Cloud-Videoüberwachung",subtitle:"Zeichnen Sie RTSP-Streams von IP-Kameras in der Cloud auf, speichern Sie Videoarchive und sehen Sie Aufnahmen online in einem HTML5-Player auf jedem Gerät an.",lead:"Zeichnen Sie Ihre Streams in der Cloud auf und berechnen Sie die Kosten in Sekunden.",cameras:"Anzahl der Kameras",mode:"Aufnahmemodus",detection:"Bei Bewegung",continuous:"Kontinuierlich",retention:"Speicherdauer",cost:"Kosten",perMonth:"Pro Monat",perDay:"Pro Tag",storage:"Speicher",gb:"GB",days:e=>`${e} Tage`},pr:{suptitle:"Nuvem",title:"Videovigilância em nuvem",subtitle:"Grave streams RTSP de câmeras IP na nuvem, armazene arquivos de vÃdeo e veja as gravações online em um player HTML5 em qualquer dispositivo.",lead:"Grave suas transmissões na nuvem e calcule o custo em segundos.",cameras:"Número de câmeras",mode:"Modo de gravação",detection:"Por detecção",continuous:"ContÃnuo",retention:"PerÃodo de armazenamento",cost:"Custo",perMonth:"Por mês",perDay:"Por dia",storage:"Armazenamento",gb:"GB",days:e=>`${e} dias`},fr:{suptitle:"Cloud",title:"Vidéosurveillance dans le cloud",subtitle:"Enregistrez les flux RTSP de caméras IP dans le cloud, stockez les archives vidéo et visionnez les enregistrements en ligne dans un lecteur HTML5 sur nâimporte quel appareil.",lead:"Enregistrez vos flux dans le cloud et estimez le coût en quelques secondes.",cameras:"Nombre de caméras",mode:"Mode dâenregistrement",detection:"Sur détection",continuous:"En continu",retention:"Durée de conservation",cost:"Coût",perMonth:"Par mois",perDay:"Par jour",storage:"Stockage",gb:"GB",days:e=>`${e} jours`},es:{suptitle:"Nube",title:"Videovigilancia en la nube",subtitle:"Graba transmisiones RTSP de cámaras IP en la nube, almacena archivos de vÃdeo y mira las grabaciones online en un reproductor HTML5 desde cualquier dispositivo.",lead:"Graba tus transmisiones en la nube y calcula el costo en segundos.",cameras:"Número de cámaras",mode:"Modo de grabación",detection:"Por detección",continuous:"Continuo",retention:"PerÃodo de almacenamiento",cost:"Costo",perMonth:"Por mes",perDay:"Por dÃa",storage:"Almacenamiento",gb:"GB",days:e=>`${e} dÃas`},it:{suptitle:"Cloud",title:"Videosorveglianza nel cloud",subtitle:"Registra i flussi RTSP delle telecamere IP nel cloud, archivia i video e guarda le registrazioni online con un lettore HTML5 su qualsiasi dispositivo.",lead:"Registra le tue trasmissioni nel cloud e calcola il costo in pochi secondi.",cameras:"Numero di telecamere",mode:"Modalità di registrazione",detection:"Al rilevamento",continuous:"Continuo",retention:"Periodo di conservazione",cost:"Costo",perMonth:"Al mese",perDay:"Al giorno",storage:"Archiviazione",gb:"GB",days:e=>`${e} giorni`},tr:{suptitle:"Bulut",title:"Bulut Video Gözetimi",subtitle:"IP kameralardan gelen RTSP akıÅlarını buluta kaydedin, video arÅivlerini saklayın ve kayıtları herhangi bir cihazda HTML5 oynatıcıyla çevrimiçi izleyin.",lead:"Yayınlarınızı buluta kaydedin ve maliyeti saniyeler içinde hesaplayın.",cameras:"Kamera sayısı",mode:"Kayıt modu",detection:"Algılamada",continuous:"Sürekli",retention:"Saklama süresi",cost:"Maliyet",perMonth:"Aylık",perDay:"Günlük",storage:"Depolama",gb:"GB",days:e=>`${e} gün`},zh:{suptitle:"äºç«¯",title:"äºè§é¢çæ§",subtitle:"å° IP æåæºç RTSP è§é¢æµå½å¶å°äºç«¯ï¼åå¨è§é¢æ¡£æ¡ï¼å¹¶éè¿ä»»æè®¾å¤ä¸ç HTML5 ææ¾å¨å¨çº¿è§çå½åã",lead:"å°æ¨çç´æå½å¶å°äºç«¯ï¼å ç§éå
ä¼°ç®è´¹ç¨ã",cameras:"æåæºæ°é",mode:"å½å¶æ¨¡å¼",detection:"æ£æµæ¶",continuous:"è¿ç»",retention:"å卿é",cost:"è´¹ç¨",perMonth:"æ¯æ",perDay:"æ¯å¤©",storage:"åå¨",gb:"GB",days:e=>`${e} 天`}},Zc={ru:"https://rtsp.ru/embed/KPbwo57M/",other:"https://rtsp.me/embed/WKZb7jUsUw5T9N4f/"},no="#f93822",Wy="#f2f2f0",Eh="#e2e2df",js="#8b8b8c",Xc=({label:e,children:t,containerStyle:n})=>r.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[r.jsx("span",{style:{fontFamily:"var(--second-family)",fontWeight:500,fontSize:14,color:js},children:e}),r.jsx("div",{style:{display:"flex",flexWrap:"wrap",gap:8,...n},children:t})]}),tl=({active:e,onClick:t,children:n,style:a})=>r.jsx("button",{type:"button",onClick:t,style:{appearance:"none",cursor:"pointer",border:`1px solid ${e?no:Eh}`,background:e?no:"#fff",color:e?"#fff":"var(--black)",borderRadius:999,padding:"9px 16px",fontFamily:"var(--second-family)",fontWeight:500,fontSize:15,lineHeight:1,transition:"all .15s ease-in-out",...a},children:n}),$y=()=>{const{lang:e}=V(),t=By[e],[n,a]=x.useState("detection"),[s,i]=x.useState(3),[l,o]=x.useState(null),[u,c]=x.useState(!1);x.useEffect(()=>{let v=!0;c(!1);const j=window.setTimeout(()=>{Hy.pricing({cameras:1,mode:n,days:s,lang:e}).then(b=>v&&o(b)).catch(()=>v&&c(!0))},250);return()=>{v=!1,window.clearTimeout(j)}},[n,s,e]);const p=(l==null?void 0:l.currency)||(e==="ru"?"RUB":"EUR"),m=x.useMemo(()=>v=>Uy(v,p,e),[p,e]),h=e==="ru"?Zc.ru:Zc.other;return r.jsx("section",{className:"section",id:"cloud",style:{background:"#fff"},children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"top",children:[r.jsx("span",{className:"suptitle",children:t.suptitle}),r.jsx("h2",{className:"h2 anim",children:t.title}),r.jsx("h3",{className:"h3 anim",style:{gridColumn:"1 / -1",width:"100%",maxWidth:"none"},children:t.subtitle})]}),r.jsxs("div",{style:{display:"flex",flexWrap:"wrap",gap:24,alignItems:"stretch"},children:[r.jsxs("div",{style:{flex:"1 1 380px",minWidth:300,background:Wy,borderRadius:16,padding:24,display:"flex",flexDirection:"column",gap:22},children:[r.jsx("p",{className:"text",style:{margin:0,color:"var(--black)",fontSize:16},children:t.lead}),r.jsxs(Xc,{label:t.mode,children:[r.jsx(tl,{active:n==="detection",onClick:()=>a("detection"),children:t.detection}),r.jsx(tl,{active:n==="continuous",onClick:()=>a("continuous"),children:t.continuous})]}),r.jsx(Xc,{label:t.retention,containerStyle:{gap:"8px 0",marginLeft:-12,marginRight:-12},children:Vy.map(v=>r.jsx(tl,{active:s===v,onClick:()=>i(v),style:{marginLeft:6,marginRight:6,paddingLeft:12,paddingRight:12},children:t.days(v)},v))}),r.jsxs("div",{style:{borderTop:`1px solid ${Eh}`,paddingTop:18,display:"flex",flexDirection:"column",gap:10},children:[r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[r.jsx("span",{style:{color:js,fontSize:15},children:t.perDay}),r.jsx("span",{style:{fontWeight:700,fontSize:30,color:no},children:u?"â":l?m(l.total.perDay):"â¦"})]}),r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[r.jsx("span",{style:{color:js,fontSize:14},children:t.perMonth}),r.jsx("span",{style:{fontWeight:600,fontSize:16},children:u?"â":l?m(l.total.perMonth):"â¦"})]}),l&&!u&&r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",color:js,fontSize:13},children:[r.jsx("span",{children:`${t.storage} · ${Gv(l.storage.totalGb,e)} ${t.gb}`}),r.jsx("span",{children:m(l.storage.totalCost)})]})]})]}),r.jsx("div",{style:{flex:"1 1 480px",minWidth:300,minHeight:280,display:"flex",borderRadius:16,overflow:"hidden",background:"#000"},children:r.jsx("iframe",{src:h,title:"cloud-demo",allowFullScreen:!0,style:{flex:1,width:"100%",height:"100%",border:0}})})]})]})})},Ky={en:{suptitle:"Benefits",h2:r.jsxs(r.Fragment,{children:["Why choose ",r.jsx("br",{})," our streaming service?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Ease ",r.jsx("br",{})," of use"]}),text:r.jsx(r.Fragment,{children:"A user-friendly and intuitive interface allows you to set up streams without any experience or technical knowledge. Simply insert the RTSP link on the streaming creation page and get the HTML5 video player code."})},{h3:r.jsxs(r.Fragment,{children:["Low-latency ",r.jsx("br",{})," streaming"]}),text:r.jsxs(r.Fragment,{children:["Our player supports WebRTC for low-latency video viewing. Watch what is happening and communicate with your viewers in near real time. Learn more about the"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"difference between WebRTC and HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Security ",r.jsx("br",{})," and privacy"]}),text:r.jsx(r.Fragment,{children:"We prioritize the security of your data. Our service reliably protects user information and ensures the confidentiality of their materials. Real IP addresses of your RTSP links and authorization data from your IP cameras or recorders remain hidden from unauthorized access."})},{h3:r.jsx(r.Fragment,{children:"Broadcast working hours"}),text:r.jsx(r.Fragment,{children:"You can set up a schedule for each broadcast in the service settings, specifying the days of the week and times when it will be available to viewers."})},{h3:r.jsxs(r.Fragment,{children:["Flexible pricing ",r.jsx("br",{})," policy"]}),text:r.jsxs(r.Fragment,{children:["For your convenience, we ",r.jsx("b",{children:"offer post-payment"}),": you can stream the camera throughout the month and receive an invoice afterward. Up to 100 views per month are free. The cost for additional cameras starts from 5 Euro per month."]})},{h3:r.jsxs(r.Fragment,{children:["Recording ",r.jsx("br",{})," and storage"]}),text:r.jsx(r.Fragment,{children:"Our service provides the ability to record streams, allowing you to save videos to an archive for later viewing. We offer archive storage in a reliable data center for up to 360 days."})},{h3:r.jsxs(r.Fragment,{children:["Audio stream ",r.jsx("br",{})," support"]}),text:r.jsx(r.Fragment,{children:"You can transmit audio along with the video stream from your camera for free. Audio support can be enabled in the streaming settings."})},{h3:r.jsxs(r.Fragment,{children:["Stream copy ",r.jsx("br",{})," protection"]}),text:r.jsxs(r.Fragment,{children:["We offer several free ways to protect your stream. Restrict the player to your own domain so the embed code will not work on other websites, set a password (PIN) for viewing, or generate unique per-viewer links with a small PHP snippet. Learn more about"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"stream protection"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Our ",r.jsx("br",{})," data centers"]}
67),text:r.jsx(r.Fragment,{children:"Our data centers are located in North and South America, Europe, Asia, and Australia, ensuring the fastest possible video content delivery to your users. Outbound channels with bandwidth of up to 10 Tb/s are available."})},{h3:r.jsxs(r.Fragment,{children:["Embeddable HTML5 ",r.jsx("br",{})," video player"]}),text:r.jsx(r.Fragment,{children:"On all plans, without exception, you can embed the HTML5 player into your website at no extra cost. Many competitors charge for this feature â with us it is always included. Viewers can watch on computers, tablets, and smartphones."})},{h3:r.jsxs(r.Fragment,{children:["Free camera ",r.jsx("br",{})," availability monitoring"]}),text:r.jsx(r.Fragment,{children:"We check your camera availability every 10 minutes at no extra cost. If the camera goes offline, we notify the owner by email, so a prolonged outage will not go unnoticed. A green or red indicator next to each camera in your dashboard shows its current status at a glance."})},{h3:r.jsxs(r.Fragment,{children:["Pricing without ",r.jsx("br",{})," hidden limits"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"Your price does not depend on viewing duration, bandwidth usage, camera resolution, or the number of viewers."})," Unlike many competitors, we do not limit your audience or charge extra when viewers watch longer or your camera streams in higher quality."]})},{h3:r.jsxs(r.Fragment,{children:["Interactive ",r.jsx("br",{})," live chat"]}),text:r.jsx(r.Fragment,{children:"Enable chat in the player settings and communicate with your viewers in real time. Every message is published only after your approval, giving you full control over the conversation."})},{h3:r.jsxs(r.Fragment,{children:["Any resolution ",r.jsx("br",{})," and bitrate"]}),text:r.jsxs(r.Fragment,{children:["We do not limit camera resolution or bitrate. You can use any settings, but remember that many viewers use mobile internet. For a stable stream, we recommend ",r.jsx("b",{children:"1280Ã720 at 1 Mbps"})," or"," ",r.jsx("b",{children:"1920Ã1080 at 3 Mbps"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Stream ",r.jsx("br",{})," monetization"]}),text:r.jsxs(r.Fragment,{children:["We offer two ways to monetize your streams. Add an active donation link to the player and receive ",r.jsx("b",{children:"100% of every payment"}),", or sell access to a stream by setting the price and the number of days it remains available after payment."]})}]},ru:{suptitle:"ÐÑеимÑÑеÑÑва",h2:r.jsxs(r.Fragment,{children:["ÐоÑÐµÐ¼Ñ Ð²ÑбиÑаÑÑ Ð¸Ð¼ÐµÐ½Ð½Ð¾ ",r.jsx("br",{}),"Ð½Ð°Ñ ÑеÑÐ²Ð¸Ñ Ð²Ð¸Ð´ÐµÐ¾ÑÑÑиминга?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["пÑоÑÑоÑа ",r.jsx("br",{})," иÑполÑзованиÑ"]}),text:r.jsx(r.Fragment,{children:"УдобнÑй и понÑÑнÑй инÑеÑÑÐµÐ¹Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð½Ð°ÑÑÑоиÑÑ ÑÑанÑлÑÑии без опÑÑа и ÑеÑ
ниÑеÑкиÑ
знаний. ÐÑоÑÑо вÑÑавÑÑе RTSP-ÑÑÑÐ»ÐºÑ Ð½Ð° ÑÑÑаниÑе ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑÑанÑлÑÑии и полÑÑиÑе HTML5-код видеоплееÑа."})},{h3:r.jsxs(r.Fragment,{children:["ТÑанÑлÑÑии ",r.jsx("br",{})," Ñ Ð½Ð¸Ð·ÐºÐ¾Ð¹ задеÑжкой"]}),text:r.jsxs(r.Fragment,{children:["ÐÐ°Ñ Ð¿Ð»ÐµÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶Ð¸Ð²Ð°ÐµÑ WebRTC Ð´Ð»Ñ Ð¿ÑоÑмоÑÑа видео Ñ Ð½Ð¸Ð·ÐºÐ¾Ð¹ задеÑжкой. ÐаблÑдайÑе за пÑоиÑÑ
одÑÑим и обÑайÑеÑÑ Ñо зÑиÑелÑми пÑакÑиÑеÑки в ÑеалÑном вÑемени. ÐодÑобнее о"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"ÑазниÑе Ð¼ÐµÐ¶Ð´Ñ WebRTC и HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["ÐезопаÑноÑÑÑ ",r.jsx("br",{})," и конÑиденÑиалÑноÑÑÑ"]}),text:r.jsx(r.Fragment,{children:"ÐÑ ÑделÑем оÑобое внимание безопаÑноÑÑи ваÑиÑ
даннÑÑ
. ÐÐ°Ñ ÑеÑÐ²Ð¸Ñ Ð½Ð°Ð´ÐµÐ¶Ð½Ð¾ заÑиÑÐ°ÐµÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¿Ð¾Ð»ÑзоваÑелей и гаÑанÑиÑÑÐµÑ ÐºÐ¾Ð½ÑиденÑиалÑноÑÑÑ Ð¸Ñ
маÑеÑиалов. РеалÑнÑе IP-адÑеÑа ваÑиÑ
RTSP-ÑÑÑлок, а Ñакже даннÑе авÑоÑизаÑии Ñ Ð²Ð°ÑиÑ
IP-ÐºÐ°Ð¼ÐµÑ Ð¸Ð»Ð¸ ÑегиÑÑÑаÑоÑов оÑÑаÑÑÑÑ ÑкÑÑÑÑми Ð¾Ñ Ð¿Ð¾ÑÑоÑонниÑ
."})},{h3:r.jsx(r.Fragment,{children:"ÐÑÐµÐ¼Ñ ÑабоÑÑ ÑÑанÑлÑÑии"}),text:r.jsx(r.Fragment,{children:"РнаÑÑÑойкаÑ
ÑеÑвиÑа Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе задаÑÑ ÑаÑпиÑание Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ ÑÑанÑлÑÑии, вÑбÑав дни недели и вÑемÑ, в коÑоÑÑе она бÑÐ´ÐµÑ Ð´Ð¾ÑÑÑпна Ð´Ð»Ñ Ð¿Ð¾Ð»ÑзоваÑелей."})},{h3:r.jsxs(r.Fragment,{children:["ÐÐ¸Ð±ÐºÐ°Ñ ÑÐµÐ½Ð¾Ð²Ð°Ñ ",r.jsx("br",{})," полиÑика"]}),text:r.jsxs(r.Fragment,{children:["ÐÐ»Ñ Ð²Ð°Ñего ÑдобÑÑва Ð¼Ñ ",r.jsx("b",{children:" пÑедлагаем поÑÑ Ð¾Ð¿Ð»Ð°ÑÑ "}),": Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе веÑÑи ÑÑанÑлÑÑÐ¸Ñ ÐºÐ°Ð¼ÐµÑÑ Ð² ÑеÑение меÑÑÑа, а ÑаÑÑÐµÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð² ÑледÑÑÑем. Ðо 100 показов в меÑÑÑ â беÑплаÑно. Цена за ÑÑанÑлÑÑÐ¸Ñ ÐºÐ°Ð¼ÐµÑ Ð½Ð°ÑинаеÑÑÑ Ð¾Ñ 360 ⽠в меÑÑÑ."," "]})},{h3:r.jsxs(r.Fragment,{children:["ÐапиÑÑ ",r.jsx("br",{})," и Ñ
Ñанение"]}),text:r.jsx(r.Fragment,{children:"ÐÐ°Ñ ÑеÑÐ²Ð¸Ñ Ð¿ÑедоÑÑавлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð·Ð°Ð¿Ð¸Ñи ÑÑанÑлÑÑий, позволÑÑ ÑоÑ
ÑанÑÑÑ Ð²Ð¸Ð´ÐµÐ¾ в аÑÑ
ив Ð´Ð»Ñ Ð¿Ð¾ÑледÑÑÑего пÑоÑмоÑÑа. ÐÑ Ð¿Ñедлагаем Ñ
Ñанение аÑÑ
ива в надежном даÑа-ÑенÑÑе ÑÑоком до 360 дней."})},{h3:r.jsxs(r.Fragment,{children:["ÐоддеÑжка ",r.jsx("br",{}),"аÑдио поÑока"]}),text:r.jsx(r.Fragment,{children:"ÐÑ Ð¼Ð¾Ð¶ÐµÑе беÑплаÑно пеÑедаваÑÑ Ð·Ð²Ñк вмеÑÑе Ñ Ð²Ð¸Ð´ÐµÐ¾Ð¿Ð¾Ñоком Ñ Ð²Ð°Ñей камеÑÑ. ÐклÑÑиÑÑ Ð¿Ð¾Ð´Ð´ÐµÑÐ¶ÐºÑ Ð·Ð²Ñка можно в наÑÑÑойкаÑ
ÑÑанÑлÑÑии."})},{h3:r.jsxs(r.Fragment,{children:["ÐаÑиÑа ",r.jsx("br",{}),"ÑÑанÑлÑÑий Ð¾Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ"]}),text:r.jsxs(r.Fragment,{children:["ÐÑ Ð±ÐµÑплаÑно пÑедлагаем неÑколÑко ÑпоÑобов заÑиÑÑ ÑÑанÑлÑÑий. РазÑеÑиÑе ÑабоÑÑ Ð¿Ð»ÐµÐµÑа ÑолÑко на ваÑем домене â и ÑкопиÑованнÑй код не бÑÐ´ÐµÑ Ð²Ð¾ÑпÑоизводиÑÑÑÑ Ð½Ð° ÑÑжиÑ
ÑайÑаÑ
, ÑÑÑановиÑе паÑÐ¾Ð»Ñ (PIN-код) Ð´Ð»Ñ Ð´Ð¾ÑÑÑпа к ÑÑанÑлÑÑии или генеÑиÑÑйÑе ÑникалÑнÑе ÑÑÑлки Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ зÑиÑÐµÐ»Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð½ÐµÐ±Ð¾Ð»ÑÑого PHP-кода. ÐодÑобнее о"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"заÑиÑе ÑÑанÑлÑÑии"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["ÐаÑи даÑа-ÑенÑÑÑ ",r.jsx("br",{})," в РоÑÑии и СÐÐ"]}),text:r.jsx(r.Fragment,{children:"ÐаÑи даÑа-ÑенÑÑÑ ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ñ Ð² РоÑÑии и ÑÑÑанаÑ
СÐÐ, вклÑÑÐ°Ñ ÐоÑквÑ, СанкÑ-ÐеÑеÑбÑÑг, ÐкаÑеÑинбÑÑг, ÐовоÑибиÑÑк, ÐÑаÑноÑÑÑк, ÐладивоÑÑок, ÐÑаÑÐ½Ð¾Ð´Ð°Ñ Ð¸ ÐÑÑанÑ, ÑÑо гаÑанÑиÑÑÐµÑ Ð¼Ð°ÐºÑималÑно бÑÑÑÑÑÑ Ð¿ÐµÑедаÑÑ Ð²Ð¸Ð´ÐµÐ¾ÐºÐ¾Ð½ÑенÑа ваÑим полÑзоваÑелÑм. ÐоÑÑÑÐ¿Ð½Ñ Ð¸ÑÑ
одÑÑие ÐºÐ°Ð½Ð°Ð»Ñ Ñ Ð¿ÑопÑÑкной ÑпоÑобноÑÑÑÑ Ð´Ð¾ 10 ТбиÑ/Ñ."})},{h3:r.jsxs(r.Fragment,{children:["ÐÑÑÑаиваемÑй HTML5 ",r.jsx("br",{})," видеоплееÑ"]}
67),text:r.jsx(r.Fragment,{children:"Ðа вÑеÑ
ÑаÑиÑаÑ
без иÑклÑÑÐµÐ½Ð¸Ñ Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе вÑÑÑоиÑÑ HTML5-Ð¿Ð»ÐµÐµÑ Ð½Ð° Ñвой ÑÐ°Ð¹Ñ Ð±ÐµÐ· какиÑ
-либо доплаÑ. У многиÑ
конкÑÑенÑов ÑÑо плаÑÐ½Ð°Ñ ÑÑнкÑÐ¸Ñ â Ñ Ð½Ð°Ñ Ð¾Ð½Ð° вÑегда вклÑÑена. Ðидео можно ÑмоÑÑеÑÑ Ð½Ð° компÑÑÑеÑаÑ
, планÑеÑаÑ
и ÑмаÑÑÑонаÑ
."})},{h3:r.jsxs(r.Fragment,{children:["ÐеÑплаÑнÑй мониÑоÑинг ",r.jsx("br",{})," доÑÑÑпноÑÑи камеÑÑ"]}),text:r.jsx(r.Fragment,{children:"ÐÑ Ð±ÐµÑплаÑно пÑовеÑÑем доÑÑÑпноÑÑÑ Ð²Ð°Ñей камеÑÑ ÐºÐ°Ð¶Ð´Ñе 10 минÑÑ. ÐÑли камеÑа пеÑеÑÑÐ°ÐµÑ Ð¾ÑвеÑаÑÑ, оÑпÑавлÑем владелÑÑÑ Ñведомление по email, поÑÑÐ¾Ð¼Ñ Ð´Ð»Ð¸ÑелÑное оÑклÑÑение не оÑÑанеÑÑÑ Ð½ÐµÐ·Ð°Ð¼ÐµÑеннÑм. РлиÑном кабинеÑе ÑÑдом Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ камеÑой оÑобÑажаеÑÑÑ Ð·ÐµÐ»ÐµÐ½Ñй или кÑаÑнÑй индикаÑоÑ, ÑÑÐ¾Ð±Ñ ÐµÐµ ÑÑаÑÑÑ Ð±Ñл понÑÑен ÑÑазÑ."})},{h3:r.jsxs(r.Fragment,{children:["ТаÑÐ¸Ñ Ð±ÐµÐ· ÑкÑÑÑÑÑ
",r.jsx("br",{})," огÑаниÑений"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"СÑоимоÑÑÑ Ð½Ðµ завиÑÐ¸Ñ Ð¾Ñ Ð´Ð»Ð¸ÑелÑноÑÑи пÑоÑмоÑÑа, обÑема ÑÑаÑика, ÑазÑеÑÐµÐ½Ð¸Ñ ÐºÐ°Ð¼ÐµÑÑ Ð¸Ð»Ð¸ колиÑеÑÑва зÑиÑелей."})," РоÑлиÑие Ð¾Ñ Ð¼Ð½Ð¾Ð³Ð¸Ñ
конкÑÑенÑов, Ð¼Ñ Ð½Ðµ огÑаниÑиваем аÑдиÑоÑÐ¸Ñ Ð¸ не беÑем дополниÑелÑнÑÑ Ð¿Ð»Ð°ÑÑ Ð·Ð° долгий пÑоÑмоÑÑ Ð¸Ð»Ð¸ вÑÑокое каÑеÑÑво видео."]})},{h3:r.jsxs(r.Fragment,{children:["ÐнÑеÑакÑивнÑй ",r.jsx("br",{})," онлайн-ÑаÑ"]}),text:r.jsx(r.Fragment,{children:"ÐклÑÑиÑе ÑÐ°Ñ Ð² наÑÑÑойкаÑ
плееÑа и обÑайÑеÑÑ Ñо зÑиÑелÑми в Ñежиме ÑеалÑного вÑемени. Ðаждое ÑообÑение пÑбликÑеÑÑÑ ÑолÑко поÑле ваÑей пÑовеÑки и одобÑениÑ, поÑÑÐ¾Ð¼Ñ Ð²Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÐºÐ¾Ð½ÑÑолиÑÑеÑе обÑение."})},{h3:r.jsxs(r.Fragment,{children:["ÐÑбое ÑазÑеÑение ",r.jsx("br",{})," и биÑÑейÑ"]}),text:r.jsxs(r.Fragment,{children:["ÐÑ Ð½Ðµ огÑаниÑиваем ÑазÑеÑение камеÑÑ Ð¸ биÑÑейÑ: Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ð»ÑбÑе наÑÑÑойки. Ðо многие зÑиÑели подклÑÑаÑÑÑÑ ÑеÑез мобилÑнÑй инÑеÑнеÑ, поÑÑÐ¾Ð¼Ñ Ð´Ð»Ñ ÑÑабилÑной ÑÑанÑлÑÑии ÑекомендÑем"," ",r.jsx("b",{children:"1280Ã720 пÑи 1 ÐбиÑ/Ñ"}),", а Ð´Ð»Ñ Full HD â"," ",r.jsx("b",{children:"1920Ã1080 пÑи 3 ÐбиÑ/Ñ"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["ÐонеÑизаÑÐ¸Ñ ",r.jsx("br",{})," ÑÑанÑлÑÑий"]}),text:r.jsxs(r.Fragment,{children:["ÐÑ Ð¿Ñедлагаем два ÑпоÑоба монеÑизаÑии. ÐобавÑÑе в Ð¿Ð»ÐµÐµÑ Ð°ÐºÑивнÑÑ ÑÑÑÐ»ÐºÑ Ð´Ð»Ñ Ð´Ð¾Ð½Ð°Ñов и полÑÑайÑе ",r.jsx("b",{children:"100% каждого плаÑежа"})," или пÑодавайÑе доÑÑÑп к ÑÑанÑлÑÑии, Ñказав в наÑÑÑойкаÑ
его ÑÑоимоÑÑÑ Ð¸ колиÑеÑÑво дней, в ÑеÑение коÑоÑÑÑ
он бÑÐ´ÐµÑ Ð¾ÑкÑÑÑ Ð¿Ð¾Ñле оплаÑÑ."]})}]},de:{suptitle:"Vorteile",h2:r.jsxs(r.Fragment,{children:["Warum sollten Sie ",r.jsx("br",{})," unseren Streaming-Service wählen?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Einfache ",r.jsx("br",{})," Bedienung"]}),text:r.jsx(r.Fragment,{children:"Eine benutzerfreundliche und intuitive Oberfläche ermöglicht das Einrichten von Streams ohne Vorkenntnisse oder technisches Know-how. Sie müssen lediglich den RTSP-Link auf der Seite zur Stream-Erstellung einfügen und erhalten sofort den HTML5-Videoplayer-Code."})},{h3:r.jsxs(r.Fragment,{children:["Streaming ",r.jsx("br",{})," mit geringer Latenz"]}),text:r.jsxs(r.Fragment,{children:["Unser Player unterstützt WebRTC für die Videowiedergabe mit geringer Latenz. Verfolgen Sie das Geschehen und kommunizieren Sie mit Ihren Zuschauern nahezu in Echtzeit. Mehr über den"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"Unterschied zwischen WebRTC und HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Sicherheit ",r.jsx("br",{})," und Datenschutz"]}),text:r.jsx(r.Fragment,{children:"Wir legen groÃen Wert auf die Sicherheit Ihrer Daten. Unser Service schützt Benutzerinformationen zuverlässig und garantiert die Vertraulichkeit Ihrer Inhalte. Die realen IP-Adressen Ihrer RTSP-Links und die Zugangsdaten zu Ihren IP-Kameras oder Rekordern bleiben vor unbefugtem Zugriff geschützt."})},{h3:r.jsx(r.Fragment,{children:"Streaming-Zeitplan"}),text:r.jsx(r.Fragment,{children:"In den Service-Einstellungen können Sie einen Zeitplan für jede Ãbertragung festlegen, in dem Sie die Wochentage und Zeiten bestimmen, zu denen der Stream für Zuschauer verfügbar ist."})},{h3:r.jsxs(r.Fragment,{children:["Flexible ",r.jsx("br",{})," Preisgestaltung"]}),text:r.jsxs(r.Fragment,{children:["Zu Ihrer Bequemlichkeit bieten wir"," ",r.jsx("b",{children:"eine Zahlung auf Rechnung"})," an: Sie können den gesamten Monat über streamen und erhalten im Anschluss eine Rechnung. Bis zu 100 Aufrufe pro Monat sind kostenlos. Die Kosten für zusätzliche Kameras beginnen bei 5 Euro pro Monat."]})},{h3:r.jsxs(r.Fragment,{children:["Aufnahme ",r.jsx("br",{})," und Speicherung"]}),text:r.jsx(r.Fragment,{children:"Unser Service ermöglicht die Aufzeichnung von Streams, sodass Sie Ihre Videos in einem Archiv für die spätere Wiedergabe speichern können. Wir bieten eine Archivspeicherung in einem zuverlässigen Rechenzentrum für bis zu 360 Tage."})},{h3:r.jsxs(r.Fragment,{children:["Unterstützung ",r.jsx("br",{})," für Audiostream"]}),text:r.jsx(r.Fragment,{children:"Sie können den Audiostream Ihrer Kamera kostenlos zusammen mit dem Videostream übertragen. Die Audio-Unterstützung können Sie in den Ãbertragungseinstellungen aktivieren."})},{h3:r.jsxs(r.Fragment,{children:["Kopierschutz ",r.jsx("br",{})," für Streams"]}
67),text:r.jsxs(r.Fragment,{children:["Wir bieten mehrere kostenlose Möglichkeiten zum Schutz Ihrer Streams. Beschränken Sie den Player auf Ihre eigene Domain, damit der kopierte Einbettungscode auf fremden Websites nicht funktioniert, legen Sie ein Passwort (PIN) für den Zugriff fest oder erzeugen Sie mit einem kurzen PHP-Skript einzigartige Links für jeden Zuschauer. Mehr zum"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"Schutz von Streams"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Unsere ",r.jsx("br",{})," Rechenzentren"]}),text:r.jsx(r.Fragment,{children:"Unsere Rechenzentren befinden sich in Nord- und Südamerika, Europa, Asien und Australien und sorgen für eine möglichst schnelle Bereitstellung der Videoinhalte für Ihre Zuschauer. Ausgehende Verbindungen mit einer Bandbreite von bis zu 10 Tbit/s sind verfügbar."})},{h3:r.jsxs(r.Fragment,{children:["Einbettbarer HTML5 ",r.jsx("br",{})," Videoplayer"]}),text:r.jsx(r.Fragment,{children:"In allen Tarifen können Sie den HTML5-Player ohne Aufpreis in Ihre Website einbetten. Bei vielen Wettbewerbern ist dies eine kostenpflichtige Funktion â bei uns ist sie immer inklusive. Zuschauer können Videos auf Computern, Tablets und Smartphones ansehen."})},{h3:r.jsxs(r.Fragment,{children:["Kostenlose Ãberwachung ",r.jsx("br",{})," der Kameraverfügbarkeit"]}),text:r.jsx(r.Fragment,{children:"Wir prüfen die Verfügbarkeit Ihrer Kamera alle 10 Minuten kostenlos. Ist die Kamera nicht erreichbar, benachrichtigen wir den Eigentümer per E-Mail, damit ein längerer Ausfall nicht unbemerkt bleibt. Eine grüne oder rote Anzeige neben jeder Kamera im Benutzerkonto zeigt ihren aktuellen Status auf einen Blick."})},{h3:r.jsxs(r.Fragment,{children:["Preise ohne ",r.jsx("br",{})," versteckte Grenzen"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"Ihr Preis hängt weder von der Wiedergabedauer noch vom Datenverkehr, der Kameraauflösung oder der Zuschauerzahl ab."}),"Anders als viele Wettbewerber begrenzen wir Ihr Publikum nicht und berechnen keinen Aufpreis für längeres Ansehen oder höhere Qualität."]})},{h3:r.jsxs(r.Fragment,{children:["Interaktiver ",r.jsx("br",{})," Live-Chat"]}),text:r.jsx(r.Fragment,{children:"Aktivieren Sie den Chat in den Player-Einstellungen und kommunizieren Sie in Echtzeit mit Ihren Zuschauern. Jede Nachricht wird erst nach Ihrer Prüfung und Freigabe veröffentlicht, sodass Sie die Unterhaltung vollständig kontrollieren."})},{h3:r.jsxs(r.Fragment,{children:["Beliebige Auflösung ",r.jsx("br",{})," und Bitrate"]}),text:r.jsxs(r.Fragment,{children:["Wir begrenzen weder Kameraauflösung noch Bitrate. Sie können beliebige Einstellungen verwenden, sollten aber Zuschauer mit mobilem Internet berücksichtigen. Wir empfehlen"," ",r.jsx("b",{children:"1280Ã720 bei 1 Mbit/s"})," oder"," ",r.jsx("b",{children:"1920Ã1080 bei 3 Mbit/s"})," für Full HD."]})},{h3:r.jsxs(r.Fragment,{children:["Monetarisierung ",r.jsx("br",{})," von Streams"]}),text:r.jsxs(r.Fragment,{children:["Wir bieten zwei Möglichkeiten zur Monetarisierung. Fügen Sie dem Player einen aktiven Spendenlink hinzu und erhalten Sie"," ",r.jsx("b",{children:"100 % jeder Zahlung"}),", oder verkaufen Sie den Zugang zum Stream, indem Sie Preis und Gültigkeitsdauer in Tagen festlegen."]})}]},pr:{suptitle:"Vantagens",h2:r.jsxs(r.Fragment,{children:["Por que escolher ",r.jsx("br",{})," nosso serviço de streaming?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Facilidade ",r.jsx("br",{})," de uso"]}),text:r.jsx(r.Fragment,{children:"Uma interface simples e intuitiva permite configurar transmissões sem experiência ou conhecimento técnico. Basta inserir o link RTSP na página de criação da transmissão e obter o código do player de vÃdeo em HTML5."})},{h3:r.jsxs(r.Fragment,{children:["Transmissões ",r.jsx("br",{})," com baixa latência"]}),text:r.jsxs(r.Fragment,{children:["Nosso player suporta WebRTC para assistir a vÃdeos com baixa latência. Acompanhe o que está acontecendo e converse com seus espectadores praticamente em tempo real. Saiba mais sobre a"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"diferença entre WebRTC e HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Segurança ",r.jsx("br",{})," e privacidade"]}),text:r.jsx(r.Fragment,{children:"Damos prioridade à segurança dos seus dados. Nosso serviço protege de forma confiável as informações dos usuários e garante a confidencialidade dos seus conteúdos. Os endereços IP reais dos seus links RTSP e os dados de autenticação das câmeras ou gravadores permanecem ocultos contra acessos não autorizados."})},{h3:r.jsx(r.Fragment,{children:"Horário de transmissão"}),text:r.jsx(r.Fragment,{children:"Você pode configurar uma programação para cada transmissão nos ajustes do serviço, especificando os dias da semana e horários em que estará disponÃvel aos espectadores."})},{h3:r.jsxs(r.Fragment,{children:["PolÃtica de preços ",r.jsx("br",{})," flexÃvel"]}),text:r.jsxs(r.Fragment,{children:["Para sua conveniência, oferecemos"," ",r.jsx("b",{children:"um sistema de pós-pagamento"}),": você pode transmitir a câmera ao longo do mês e receber a fatura posteriormente. Até 100 visualizações por mês são gratuitas. O custo para câmeras adicionais começa a partir de 5 euros por mês."]})},{h3:r.jsxs(r.Fragment,{children:["Gravação ",r.jsx("br",{})," e armazenamento"]}),text:r.jsx(r.Fragment,{children:"Nosso serviço oferece a possibilidade de gravar as transmissões, permitindo que você salve os vÃdeos em um arquivo para visualização posterior. Oferecemos armazenamento em um data center seguro por até 360 dias."})},{h3:r.jsxs(r.Fragment,{children:["Suporte ",r.jsx("br",{})," a áudio"]}),text:r.jsx(r.Fragment,{children:"Você pode transmitir áudio juntamente com o vÃdeo da sua câmera sem custo adicional. O suporte a áudio pode ser habilitado nas configurações de transmissão."})},{h3:r.jsxs(r.Fragment,{children:["Proteção contra ",r.jsx("br",{})," cópia de transmissão"]}),text:r.jsxs(r.Fragment,{children:["Oferecemos várias formas gratuitas de proteger sua transmissão. Restrinja o player ao seu próprio domÃnio para que o código copiado não funcione em outros sites, defina uma senha (PIN) para o acesso ou gere links únicos para cada espectador com um pequeno código PHP. Saiba mais sobre a"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"proteção da transmissão"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Nossos ",r.jsx("br",{})," data centers"]}
67),text:r.jsx(r.Fragment,{children:"Nossos data centers estão localizados na América do Norte, América do Sul, Europa, Ãsia e Austrália, garantindo a entrega mais rápida possÃvel do seu conteúdo de vÃdeo aos usuários. Estão disponÃveis canais de saÃda com largura de banda de até 10 Tb/s."})},{h3:r.jsxs(r.Fragment,{children:["Player de vÃdeo HTML5 ",r.jsx("br",{})," incorporável"]}),text:r.jsx(r.Fragment,{children:"Em todos os planos, sem exceção, você pode incorporar o player HTML5 ao seu site sem custos adicionais. Em muitos concorrentes essa função é paga â conosco ela está sempre incluÃda. Os espectadores podem assistir em computadores, tablets e smartphones."})},{h3:r.jsxs(r.Fragment,{children:["Monitoramento gratuito ",r.jsx("br",{})," da câmera"]}),text:r.jsx(r.Fragment,{children:"Verificamos gratuitamente a disponibilidade da sua câmera a cada 10 minutos. Se ela ficar inacessÃvel, notificamos o proprietário por email, evitando que uma interrupção prolongada passe despercebida. No painel, um indicador verde ou vermelho ao lado de cada câmera mostra imediatamente seu status atual."})},{h3:r.jsxs(r.Fragment,{children:["Preços sem ",r.jsx("br",{})," limites ocultos"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"O preço não depende do tempo de visualização, do uso de banda, da resolução da câmera ou do número de espectadores."})," Ao contrário de muitos concorrentes, não limitamos o público nem cobramos mais por transmissões mais longas ou em alta qualidade."]})},{h3:r.jsxs(r.Fragment,{children:["Chat interativo ",r.jsx("br",{})," ao vivo"]}),text:r.jsx(r.Fragment,{children:"Ative o chat nas configurações do player e converse com seus espectadores em tempo real. Cada mensagem só é publicada após sua análise e aprovação, dando a você controle total da conversa."})},{h3:r.jsxs(r.Fragment,{children:["Qualquer resolução ",r.jsx("br",{})," e bitrate"]}),text:r.jsxs(r.Fragment,{children:["Não limitamos a resolução nem o bitrate da câmera. Você pode usar qualquer configuração, mas lembre-se de que muitos espectadores usam internet móvel. Recomendamos ",r.jsx("b",{children:"1280Ã720 a 1 Mbps"})," ou"," ",r.jsx("b",{children:"1920Ã1080 a 3 Mbps"})," para Full HD."]})},{h3:r.jsxs(r.Fragment,{children:["Monetização ",r.jsx("br",{})," de transmissões"]}),text:r.jsxs(r.Fragment,{children:["Oferecemos duas formas de monetização. Adicione ao player um link ativo para doações e receba ",r.jsx("b",{children:"100% de cada pagamento"}),", ou venda o acesso à transmissão definindo o preço e por quantos dias ele ficará disponÃvel após o pagamento."]})}]},fr:{suptitle:"Avantages",h2:r.jsxs(r.Fragment,{children:["Pourquoi choisir ",r.jsx("br",{})," notre service de streaming ?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Facilité ",r.jsx("br",{})," dâutilisation"]}),text:r.jsx(r.Fragment,{children:"Une interface conviviale et intuitive vous permet de configurer les diffusions sans expérience ni connaissances techniques. Il vous suffit dâentrer le lien RTSP sur la page de création de la diffusion et dâobtenir le code du lecteur vidéo HTML5."})},{h3:r.jsxs(r.Fragment,{children:["Diffusion ",r.jsx("br",{})," à faible latence"]}),text:r.jsxs(r.Fragment,{children:["Notre lecteur prend en charge WebRTC pour visionner des vidéos à faible latence. Suivez ce qui se passe et échangez avec vos spectateurs quasiment en temps réel. En savoir plus sur la"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"différence entre WebRTC et HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Sécurité ",r.jsx("br",{})," et confidentialité"]}),text:r.jsx(r.Fragment,{children:"Nous accordons la plus grande importance à la sécurité de vos données. Notre service protège efficacement les informations des utilisateurs et assure la confidentialité de leurs contenus. Les adresses IP réelles de vos liens RTSP et les données dâauthentification de vos caméras IP ou enregistreurs restent cachées contre tout accès non autorisé."})},{h3:r.jsx(r.Fragment,{children:"Heures de fonctionnement de la diffusion"}),text:r.jsx(r.Fragment,{children:"Vous pouvez configurer un horaire de diffusion pour chaque caméra dans les paramètres du service, en précisant les jours de la semaine et les heures auxquels la diffusion sera accessible aux spectateurs."})},{h3:r.jsxs(r.Fragment,{children:["Tarification ",r.jsx("br",{})," flexible"]}),text:r.jsxs(r.Fragment,{children:["Pour votre confort, nous"," ",r.jsx("b",{children:"proposons un système de post-paiement"})," : vous pouvez diffuser votre caméra tout au long du mois et recevoir la facture ensuite. Jusquâà 100 vues par mois sont gratuites. Pour les caméras supplémentaires, les tarifs commencent à partir de 5 euros par mois."]})},{h3:r.jsxs(r.Fragment,{children:["Enregistrement ",r.jsx("br",{})," et stockage"]}),text:r.jsx(r.Fragment,{children:"Notre service offre la possibilité dâenregistrer les flux, vous permettant de conserver les vidéos dans un archivage pour les visionner plus tard. Nous proposons un stockage dâarchives dans un centre de données sécurisé, pouvant aller jusquâà 360 jours."})},{h3:r.jsxs(r.Fragment,{children:["Prise en charge ",r.jsx("br",{})," de lâaudio"]}),text:r.jsx(r.Fragment,{children:"Vous pouvez transmettre lâaudio en même temps que la vidéo de votre caméra, sans frais supplémentaires. Lâoption dâaudio peut être activée dans les paramètres de votre diffusion."})},{h3:r.jsxs(r.Fragment,{children:["Protection ",r.jsx("br",{})," contre la copie du flux"]}),text:r.jsxs(r.Fragment,{children:["Nous proposons plusieurs moyens gratuits de protéger votre flux. Limitez le lecteur à votre propre domaine afin que le code copié ne fonctionne pas sur dâautres sites, définissez un mot de passe (code PIN) pour lâaccè
67s ou générez des liens uniques pour chaque spectateur à lâaide dâun petit code PHP. En savoir plus sur la"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"protection du flux"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Nos ",r.jsx("br",{})," centres de données"]}),text:r.jsx(r.Fragment,{children:"Nos centres de données sont répartis en Amérique du Nord et du Sud, en Europe, en Asie et en Australie, assurant la livraison la plus rapide possible de votre contenu vidéo à vos utilisateurs. Des liaisons sortantes offrant une bande passante allant jusquâà 10 Tbit/s sont disponibles."})},{h3:r.jsxs(r.Fragment,{children:["Lecteur vidéo HTML5 ",r.jsx("br",{})," intégrable"]}),text:r.jsx(r.Fragment,{children:"Quel que soit votre forfait, vous pouvez intégrer le lecteur HTML5 sur votre site sans frais supplémentaires. Chez de nombreux concurrents, cette fonctionnalité est payante â chez nous, elle est toujours incluse. Les spectateurs peuvent regarder les vidéos sur ordinateur, tablette et smartphone."})},{h3:r.jsxs(r.Fragment,{children:["Surveillance gratuite ",r.jsx("br",{})," de la caméra"]}),text:r.jsx(r.Fragment,{children:"Nous vérifions gratuitement la disponibilité de votre caméra toutes les 10 minutes. Si elle devient inaccessible, nous avertissons son propriétaire par e-mail afin quâune panne prolongée ne passe pas inaperçue. Dans votre espace personnel, un indicateur vert ou rouge à côté de chaque caméra affiche immédiatement son état actuel."})},{h3:r.jsxs(r.Fragment,{children:["Tarification sans ",r.jsx("br",{})," limites cachées"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"Le prix ne dépend ni de la durée de visionnage, ni de la bande passante, ni de la résolution de la caméra, ni du nombre de spectateurs."})," Contrairement à de nombreux concurrents, nous ne limitons pas votre audience et ne facturons pas davantage pour une diffusion plus longue ou de meilleure qualité."]})},{h3:r.jsxs(r.Fragment,{children:["Chat interactif ",r.jsx("br",{})," en direct"]}),text:r.jsx(r.Fragment,{children:"Activez le chat dans les paramètres du lecteur et échangez avec vos spectateurs en temps réel. Chaque message nâest publié quâaprès votre vérification et votre approbation, vous gardez ainsi le contrôle total de la conversation."})},{h3:r.jsxs(r.Fragment,{children:["Résolution et débit ",r.jsx("br",{})," sans limites"]}),text:r.jsxs(r.Fragment,{children:["Nous ne limitons ni la résolution ni le débit de la caméra. Vous pouvez choisir librement vos réglages, mais de nombreux spectateurs utilisent une connexion mobile. Nous recommandons"," ",r.jsx("b",{children:"1280Ã720 à 1 Mbit/s"})," ou ",r.jsx("b",{children:"1920Ã1080 à 3 Mbit/s"})," en Full HD."]})},{h3:r.jsxs(r.Fragment,{children:["Monétisation ",r.jsx("br",{})," des diffusions"]}),text:r.jsxs(r.Fragment,{children:["Nous proposons deux modes de monétisation. Ajoutez au lecteur un lien de don actif et recevez ",r.jsx("b",{children:"100 % de chaque paiement"}),", ou vendez lâaccès à la diffusion en définissant son prix et le nombre de jours dâaccès après le paiement."]})}]},es:{suptitle:"Ventajas",h2:r.jsxs(r.Fragment,{children:["¿Por qué elegir ",r.jsx("br",{})," nuestro servicio de streaming?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Facilidad ",r.jsx("br",{})," de uso"]}),text:r.jsx(r.Fragment,{children:"Una interfaz sencilla e intuitiva te permite configurar transmisiones sin experiencia ni conocimientos técnicos. Solo necesitas pegar el enlace RTSP en la página de creación de la transmisión y obtendrás el código del reproductor de video HTML5."})},{h3:r.jsxs(r.Fragment,{children:["Transmisiones ",r.jsx("br",{})," de baja latencia"]}),text:r.jsxs(r.Fragment,{children:["Nuestro reproductor admite WebRTC para ver videos con baja latencia. Observa lo que está sucediendo y comunÃcate con tus espectadores prácticamente en tiempo real. Más sobre la"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"diferencia entre WebRTC y HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Seguridad ",r.jsx("br",{})," y privacidad"]}),text:r.jsx(r.Fragment,{children:"Damos prioridad a la seguridad de tus datos. Nuestro servicio protege de forma fiable la información de los usuarios y garantiza la confidencialidad de sus contenidos. Las direcciones IP reales de tus enlaces RTSP y los datos de autenticación de tus cámaras o grabadoras permanecen ocultos ante accesos no autorizados."})},{h3:r.jsx(r.Fragment,{children:"Horario de transmisión"}),text:r.jsx(r.Fragment,{children:"Puedes configurar un horario para cada transmisión en los ajustes del servicio, indicando los dÃas de la semana y horarios en los que estará disponible para los espectadores."})},{h3:r.jsxs(r.Fragment,{children:["PolÃtica de precios ",r.jsx("br",{})," flexible"]}),text:r.jsxs(r.Fragment,{children:["Para tu comodidad, ofrecemos ",r.jsx("b",{children:"un sistema de pospago"}),": puedes transmitir la cámara durante todo el mes y recibir la factura posteriormente. Hasta 100 visualizaciones al mes s
67on gratuitas. El costo de las cámaras adicionales empieza a partir de 5 euros al mes."]})},{h3:r.jsxs(r.Fragment,{children:["Grabación ",r.jsx("br",{})," y almacenamiento"]}),text:r.jsx(r.Fragment,{children:"Nuestro servicio ofrece la posibilidad de grabar transmisiones, lo que te permite guardar los videos en un archivo para verlos más tarde. Ofrecemos un almacenamiento seguro en un centro de datos hasta por 360 dÃas."})},{h3:r.jsxs(r.Fragment,{children:["Compatibilidad ",r.jsx("br",{})," con audio"]}),text:r.jsx(r.Fragment,{children:"Puedes transmitir audio junto con el video de tu cámara de forma gratuita. La compatibilidad con audio puede habilitarse en la configuración de la transmisión."})},{h3:r.jsxs(r.Fragment,{children:["Protección contra ",r.jsx("br",{})," la copia de la transmisión"]}),text:r.jsxs(r.Fragment,{children:["Ofrecemos varias formas gratuitas de proteger tu transmisión. Limita el reproductor a tu propio dominio para que el código copiado no funcione en otros sitios, establece una contraseña (PIN) para el acceso o genera enlaces únicos para cada espectador con un pequeño código PHP. Más sobre la"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"protección de la transmisión"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Nuestros ",r.jsx("br",{})," centros de datos"]}),text:r.jsx(r.Fragment,{children:"Nuestros centros de datos se encuentran en América del Norte, América del Sur, Europa, Asia y Australia, lo que garantiza la entrega más rápida posible de tu contenido de video a tus usuarios. Hay canales de salida disponibles con un ancho de banda de hasta 10 Tb/s."})},{h3:r.jsxs(r.Fragment,{children:["Reproductor de vÃdeo HTML5 ",r.jsx("br",{})," integrable"]}),text:r.jsx(r.Fragment,{children:"En todos los planes, sin excepción, puedes insertar el reproductor HTML5 en tu sitio web sin costo adicional. En muchos competidores esta función es de pago; con nosotros siempre está incluida. Los espectadores pueden ver los videos en ordenadores, tabletas y teléfonos inteligentes."})},{h3:r.jsxs(r.Fragment,{children:["Monitorización gratuita ",r.jsx("br",{})," de la cámara"]}),text:r.jsx(r.Fragment,{children:"Comprobamos gratis la disponibilidad de tu cámara cada 10 minutos. Si deja de estar accesible, avisamos al propietario por email para que una interrupción prolongada no pase desapercibida. En el panel, un indicador verde o rojo junto a cada cámara muestra su estado actual de un vistazo."})},{h3:r.jsxs(r.Fragment,{children:["Precios sin ",r.jsx("br",{})," lÃmites ocultos"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"El precio no depende del tiempo de visualización, del ancho de banda, de la resolución de la cámara ni del número de espectadores."}),"A diferencia de muchos competidores, no limitamos la audiencia ni cobramos más por transmisiones más largas o de mayor calidad."]})},{h3:r.jsxs(r.Fragment,{children:["Chat interactivo ",r.jsx("br",{})," en directo"]}),text:r.jsx(r.Fragment,{children:"Activa el chat en la configuración del reproductor y comunÃcate con tus espectadores en tiempo real. Cada mensaje se publica únicamente después de que lo revises y apruebes, para que mantengas el control total de la conversación."})},{h3:r.jsxs(r.Fragment,{children:["Cualquier resolución ",r.jsx("br",{})," y bitrate"]}),text:r.jsxs(r.Fragment,{children:["No limitamos la resolución ni el bitrate de la cámara. Puedes usar cualquier configuración, pero recuerda que muchos espectadores se conectan mediante internet móvil. Recomendamos"," ",r.jsx("b",{children:"1280Ã720 a 1 Mbps"})," o ",r.jsx("b",{children:"1920Ã1080 a 3 Mbps"})," para Full HD."]})},{h3:r.jsxs(r.Fragment,{children:["Monetización ",r.jsx("br",{})," de transmisiones"]}),text:r.jsxs(r.Fragment,{children:["Ofrecemos dos formas de monetización. Añade al reproductor un enlace activo para donaciones y recibe ",r.jsx("b",{children:"el 100% de cada pago"}),", o vende acceso a la transmisión indicando el precio y durante cuántos dÃas estará disponible después del pago."]})}]},it:{suptitle:"Vantaggi",h2:r.jsxs(r.Fragment,{children:["Perché scegliere ",r.jsx("br",{}
67)," il nostro servizio di streaming?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Facilità ",r.jsx("br",{})," dâuso"]}),text:r.jsx(r.Fragment,{children:"Unâinterfaccia intuitiva e facile da usare permette di configurare le trasmissioni senza esperienza o conoscenze tecniche. Inserisci semplicemente il link RTSP nella pagina di creazione dello streaming e ottieni il codice del lettore video HTML5."})},{h3:r.jsxs(r.Fragment,{children:["Streaming ",r.jsx("br",{})," a bassa latenza"]}),text:r.jsxs(r.Fragment,{children:["Il nostro lettore supporta WebRTC per guardare video a bassa latenza. Segui ciò che accade e comunica con i tuoi spettatori praticamente in tempo reale. Scopri di più sulla"," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"differenza tra WebRTC e HLS"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["Sicurezza ",r.jsx("br",{})," e privacy"]}),text:r.jsx(r.Fragment,{children:"Poniamo la massima attenzione alla sicurezza dei tuoi dati. Il nostro servizio protegge in modo affidabile le informazioni degli utenti e ne garantisce la riservatezza. Gli indirizzi IP reali dei link RTSP e i dati di autenticazione delle tue telecamere o registratori restano protetti da accessi non autorizzati."})},{h3:r.jsx(r.Fragment,{children:"Orari di trasmissione"}),text:r.jsx(r.Fragment,{children:"Puoi impostare un programma per ogni trasmissione nelle impostazioni del servizio, specificando i giorni della settimana e gli orari in cui la trasmissione sarà disponibile per gli spettatori."})},{h3:r.jsxs(r.Fragment,{children:["Politica dei prezzi ",r.jsx("br",{})," flessibile"]}),text:r.jsxs(r.Fragment,{children:["Per agevolarti, offriamo un ",r.jsx("b",{children:"sistema di post-pagamento"}),": puoi trasmettere la tua telecamera per lâintero mese e ricevere la fattura successivamente. Fino a 100 visualizzazioni al mese sono gratuite. Il costo delle telecamere aggiuntive parte da 5 euro al mese."]})},{h3:r.jsxs(r.Fragment,{children:["Registrazione ",r.jsx("br",{})," e archiviazione"]}),text:r.jsx(r.Fragment,{children:"Il nostro servizio offre la possibilità di registrare le trasmissioni, consentendoti di salvare i video in un archivio per la visione successiva. Forniamo lâarchiviazione in un data center sicuro fino a 360 giorni."})},{h3:r.jsxs(r.Fragment,{children:["Supporto ",r.jsx("br",{})," audio"]}),text:r.jsx(r.Fragment,{children:"Puoi trasmettere lâaudio insieme al video della tua telecamera senza costi aggiuntivi. Il supporto audio può essere abilitato nelle impostazioni della trasmissione."})},{h3:r.jsxs(r.Fragment,{children:["Protezione ",r.jsx("br",{})," contro la copia della trasmissione"]}),text:r.jsxs(r.Fragment,{children:["Offriamo diversi modi gratuiti per proteggere la tua trasmissione. Limita il lettore al tuo dominio, così il codice copiato non funzionerà su altri siti, imposta una password (PIN) per lâaccesso oppure genera link unici per ogni spettatore con un piccolo codice PHP. Scopri di più sulla"," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"protezione della trasmissione"}),"."]})},{h3:r.jsxs(r.Fragment,{children:["I nostri ",r.jsx("br",{})," data center"]}),text:r.jsx(r.Fragment,{children:"I nostri data center si trovano in Nord e Sud America, Europa, Asia e Australia, garantendo la consegna più rapida possibile del tuo contenuto video agli utenti. Sono disponibili canali in uscita con una larghezza di banda fino a 10 Tbit/s."})},{h3:r.jsxs(r.Fragment,{children:["Lettore video HTML5 ",r.jsx("br",{})," incorporabile"]}),text:r.jsx(r.Fragment,{children:"Con tutti i piani, senza eccezioni, puoi incorporare il lettore HTML5 nel tuo sito senza costi aggiuntivi. Presso molti concorrenti questa è una funzione a pagamento â da noi è sempre inclusa. Gli spettatori possono guardare i video su computer, tablet e smartphone."})},{h3:r.jsxs(r.Fragment,{children:["Monitoraggio gratuito ",r.jsx("br",{})," della telecamera"]}),text:r.jsx(r.Fragment,{children:"Controlliamo gratuitamente la disponibilità della tua telecamera ogni 10 minuti. Se non è raggiungibile, avvisiamo il proprietario via email, così unâinterruzione prolungata non passerà inosservata. Nellâarea personale, un indicatore verde o rosso accanto a ogni telecamera ne mostra subito lo stato attuale."})},{h3:r.jsxs(r.Fragment,{children:["Prezzi senza ",r.jsx("br",{})," limiti nascosti"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"Il prezzo non dipende dalla durata della visualizzazione, dal traffico, dalla risoluzione della telecamera o dal numero di spettatori."})," A differenza di molti concorrenti, non limitiamo il pubblico e non applichiamo costi aggiuntivi per visioni più lunghe o di qualità superiore."]})},{h3:r.jsxs(r.Fragment,{children:["Chat interattiva ",r.jsx("br",{})," in tempo reale"]}),text:r.jsx(r.Fragment,{children:"Attiva la chat nelle impostazioni del lettore e comunica con i tuoi spettatori in tempo reale. Ogni messaggio viene pubblicato solo dopo la tua verifica e approvazione, così mantieni il pieno controllo della conversazione."})},{h3:r.jsxs(r.Fragment,{children:["Qualsiasi risoluzione ",r.jsx("br",{})," e bitrate"]}),text:r.jsxs(r.Fragment,{children:["Non limitiamo la risoluzione o il bitrate della telecamera. Puoi usare qualsiasi impostazione, ma ricorda che molti spettatori usano la rete mobile. Consigliamo ",r.jsx("b",{children:"1280Ã720 a 1 Mbps"})," oppure"," ",r.jsx("b",{children:"1920Ã1080 a 3 Mbps"})," per il Full HD."]})},{h3:r.jsxs(r.Fragment,{children:["Monetizzazione ",r.jsx("br",{})," delle trasmissioni"]}),text:r.jsxs(r.Fragment,{children:["Offriamo due modalità di monetizzazione. Aggiungi al lettore un link attivo per le donazioni e ricevi ",r.jsx("b",{children:"il 100% di ogni pagamento"}),", oppure vendi lâaccesso alla trasmissione impostando il prezzo e il numero di giorni di validità dopo il pagamento."]})}]},tr:{suptitle:"Avantajlar",h2:r.jsxs(r.Fragment,{children:["Yayın hizmetimizi ",r.jsx("br",{})," neden tercih etmelisiniz?"]}),items:[{h3:r.jsxs(r.Fragment,{children:["Kullanım ",r.jsx("br",{})," kolaylıÄı"]}),text:r.jsx(r.Fragment,{children:"Kullanıcı dostu ve sezgisel arayüzü sayesinde herhangi bir deneyim veya teknik bilgiye gerek kalmadan yayınları yapılandırabilirsiniz. Yayın oluÅturma sayfasında RTSP baÄlantısını girin ve HTML5 video oynatıcısının kodunu alın."})},{h3:r.jsxs(r.Fragment,{children:["DüÅük gecikmeli ",r.jsx("br",{})," yayınlar"]}),text:r.jsxs(r.Fragment,{children:["Oynatıcımız, videoları düÅük gecikmeyle izlemek için WebRTC desteÄi sunar. Olan biteni takip edin ve izleyicilerinizle neredeyse gerçek zamanlı iletiÅim kurun."," ",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTC ile HLS arasındaki fark"})," ","hakkında daha fazla bilgi edinin."]})},{h3:r.jsxs(r.Fragment,{children:["Güvenlik ",r.jsx("br",{})," ve gizlilik"]}),text:r.jsx(r.Fragment,{children:"Veri güvenliÄini en yüksek öncelikte tutuyoruz. Hizmetimiz, kullanıcı bilgilerini ve içeriklerini güvenle korur. Kameralarınıza veya kayıt cihazınıza ait gerçek RTSP baÄlantıları ve kimlik bilgileri yetkisiz eriÅimden gizli kalır."})},{h3:r.jsx(r.Fragment,{children:"Yayın çalıÅma saatleri"}),text:r.jsx(r.Fragment,{children:"Hizmet ayarları bölümünde, her yayın için haftanın hangi günleri ve hangi saatlerde izlenebileceÄini belirleyerek bir zamanlama oluÅturabilirsiniz."})},{h3:r.jsxs(r.Fragment,{children:["Esnek ",r.jsx("br",{})," fiyat politikası"]}),text:r.jsxs(r.Fragment,{children:["Kolaylık saÄlaması adına, ",r.jsx("b",{children:"ödemeyi sonradan yapma"})," sistemi sunuyoruz: Kameranızı bir ay boyunca yayınlayabilir, ardından faturayı alabilirsiniz. Aylık 100 görüntülemeye kadar ücretsizdir. Ek kameralar için fiyatlar aylık 5 Euro'dan baÅlar."]})},{h3:r.jsxs(r.Fragment,{children:["Kayıt ",r.jsx("br",{})," ve depolama"]}),text:r.jsx(r.Fragment,{children:"Yayınlarınızı kaydetme imkanı sunuyoruz; böylece videoları arÅivde saklayabilir ve daha sonra izleyebilirsiniz. 360 güne kadar güvenli bir veri merkezinde arÅiv depolama imkanı saÄlıyoruz."})},{h3:r.jsxs(r.Fragment,{children:["Ses akıÅı ",r.jsx("br",{})," desteÄi"]}),text:r.jsx(r.Fragment,{children:"Kameranızdan gelen video ile birlikte ses de yayınlayabilirsiniz, üstelik ekstra bir ücret olmadan. Yayın ayarlarında ses özelliÄini etkinleÅtirebilirsiniz."})},{h3:r.jsxs(r.Fragment,{children:["Yayının ",r.jsx("br",{})," kopyalanmasına karÅı koruma"]}),text:r.jsxs(r.Fragment,{children:["Yayınınızı korumak için birkaç ücretsiz yöntem sunuyoruz. Oynatıcıyı yalnızca kendi alan adınızla sınırlayın;
67 böylece kopyalanan kod baÅka sitelerde çalıÅmaz. EriÅim için parola (PIN) belirleyin veya ufak bir PHP koduyla her izleyici için benzersiz baÄlantılar oluÅturun."," ",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"Yayın koruması"})," ","hakkında daha fazla bilgi edinin."]})},{h3:r.jsxs(r.Fragment,{children:["Veri ",r.jsx("br",{})," merkezlerimiz"]}),text:r.jsx(r.Fragment,{children:"Veri merkezlerimiz Kuzey ve Güney Amerika, Avrupa, Asya ve Avustralya'da bulunur. Bu sayede video içeriÄiniz, kullanıcılarınıza mümkün olan en hızlı Åekilde ulaÅtırılır. 10 Tbit/s'ye kadar bant geniÅliÄine sahip çıkıŠkanalları mevcuttur."})},{h3:r.jsxs(r.Fragment,{children:["Gömülebilir HTML5 ",r.jsx("br",{})," video oynatıcı"]}),text:r.jsx(r.Fragment,{children:"İstisnasız tüm tarifelerde HTML5 oynatıcıyı ek ücret ödemeden web sitenize gömebilirsiniz. Birçok rakipte bu özellik ücretlidir â bizde her zaman dahildir. İzleyiciler videoları bilgisayar, tablet ve akıllı telefonlarda izleyebilir."})},{h3:r.jsxs(r.Fragment,{children:["Ãcretsiz kamera ",r.jsx("br",{})," eriÅilebilirlik takibi"]}),text:r.jsx(r.Fragment,{children:"Kameranızın eriÅilebilirliÄini her 10 dakikada bir ücretsiz kontrol ederiz. Kamera çevrimdıÅı olursa sahibine e-posta göndeririz; böylece uzun süreli bir kesinti gözden kaçmaz. Kullanıcı panelinde her kameranın yanındaki yeÅil veya kırmızı gösterge, mevcut durumu anında görmenizi saÄlar."})},{h3:r.jsxs(r.Fragment,{children:["Gizli sınırlamalar ",r.jsx("br",{})," olmadan fiyatlandırma"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"Fiyat; izleme süresine, bant geniÅliÄine, kamera çözünürlüÄüne veya izleyici sayısına baÄlı deÄildir."})," Birçok rakibin aksine, izleyici sayısını sınırlamayız ve daha uzun ya da daha yüksek kaliteli yayınlar için ek ücret almayız."]})},{h3:r.jsxs(r.Fragment,{children:["EtkileÅimli ",r.jsx("br",{})," canlı sohbet"]}),text:r.jsx(r.Fragment,{children:"Oynatıcı ayarlarından sohbeti açarak izleyicilerinizle gerçek zamanlı iletiÅim kurabilirsiniz. Her mesaj yalnızca sizin kontrol edip onaylamanızdan sonra yayınlanır; böylece sohbet tamamen sizin denetiminizde kalır."})},{h3:r.jsxs(r.Fragment,{children:["Sınırsız çözünürlük ",r.jsx("br",{})," ve bit hızı"]}),text:r.jsxs(r.Fragment,{children:["Kamera çözünürlüÄünü veya bit hızını sınırlamıyoruz. İstediÄiniz ayarı kullanabilirsiniz; ancak birçok izleyicinin mobil internet kullandıÄını unutmayın. ",r.jsx("b",{children:"1280Ã720 için 1 Mbps"}),", Full HD içinse"," ",r.jsx("b",{children:"1920Ã1080 ve 3 Mbps"})," öneriyoruz."]})},{h3:r.jsxs(r.Fragment,{children:["Yayınlardan ",r.jsx("br",{})," gelir elde etme"]}),text:r.jsxs(r.Fragment,{children:["İki farklı gelir modeli sunuyoruz. Oynatıcıya aktif bir baÄıŠbaÄlantısı ekleyip ",r.jsx("b",{children:"her ödemenin %100âünü"})," alabilir veya fiyatı ve ödeme sonrası eriÅim süresini gün olarak belirleyerek yayına ücretli eriÅim satabilirsiniz."]})}]},zh:{suptitle:"ä¼å¿",h2:r.jsxs(r.Fragment,{children:["为ä»ä¹è¦éæ© ",r.jsx("br",{})," æä»¬çæµåªä½æå¡ï¼"]}),items:[{h3:r.jsxs(r.Fragment,{children:["æäº ",r.jsx("br",{})," 使ç¨"]}),text:r.jsx(r.Fragment,{children:"æä»¬æä¾å好ç´è§ççé¢ï¼å³ä½¿ä½ 没æä»»ä½ææ¯èæ¯ï¼ä¹è½è½»æ¾å®æç´æé
ç½®ãåªéå¨âåå»ºç´æâ页é¢ç²è´´RTSP龿¥ï¼å³å¯è·å¾HTML5è§é¢ææ¾å¨ä»£ç ã"})},{h3:r.jsxs(r.Fragment,{children:["ä½å»¶è¿ ",r.jsx("br",{})," ç´æ"]}),text:r.jsxs(r.Fragment,{children:["æä»¬çææ¾å¨æ¯æWebRTCï¼å¯ä½å»¶è¿è§çè§é¢ãä½ å¯ä»¥è¿ä¹å®æ¶å°è§å¯æ£å¨åççäºæ
ï¼å¹¶ä¸è§ä¼äº¤æµãäºè§£",r.jsx("a",{href:"webrtc-vs-hls.html",children:"WebRTCä¸HLSçåºå«"}),"ã"]})},{h3:r.jsxs(r.Fragment,{children:["å®å
¨ ",r.jsx("br",{})," åéç§"]}),text:r.jsx(r.Fragment,{children:"æä»¬é常éè§ä½ çæ°æ®å®å
¨ãæä»¬çæå¡ä¼ä¿æ¤ç¨æ·ä¿¡æ¯å¹¶ç¡®ä¿ä»ä»¬å
容çç§å¯æ§ãä½ çRTSP龿¥çå®IPå°å以åIPæåæºæå½åæºçç»å½åæ®é½ä¸ä¼å¯¹å
67¤å
¬å¼ï¼é²æ¢æªç»ææç访é®ã"})},{h3:r.jsx(r.Fragment,{children:"ç´ææ¶æ®µ"}),text:r.jsx(r.Fragment,{children:"ä½ å¯ä»¥å¨æå¡è®¾ç½®ä¸ä¸ºæ¯è·¯ç´æé
ç½®æ¥ç¨ï¼æå®ä¸å¨ä¸çåªå 天ãä»ä¹æ¶é´æ®µå¯¹è§ä¼å¼æ¾ã"})},{h3:r.jsxs(r.Fragment,{children:["çµæ´» ",r.jsx("br",{})," ä»·æ ¼æ¿ç"]}),text:r.jsxs(r.Fragment,{children:["ä¸ºäºæ¹ä¾¿ä½ ï¼æä»¬æä¾",r.jsx("b",{children:"åä»è´¹"}),"å¶åº¦ï¼ä½ å¯ä»¥å¨æ´ä¸ªæä»½è¿è¡ç´æï¼ç¶åå¨ææ«æ¶å°è´¦åãæ¯æ100次以å
çè§çå
è´¹ãå
¶ä»æåæºçæ¶è´¹æ å仿¯æ5欧å
èµ·ã"]})},{h3:r.jsxs(r.Fragment,{children:["å½å ",r.jsx("br",{})," ååå¨"]}),text:r.jsx(r.Fragment,{children:"æä»¬çæå¡æ¯æå½å¶è§é¢æµï¼ä½ å¯ä»¥å°è§é¢ä¿åå¨åæ¡£ä¸ï¼æ¥ååè§çãæä»¬æä¾æé¿æéå¯è¾¾360天çå®å
¨æ°æ®ä¸å¿è§é¢åæ¡£æå¡ã"})},{h3:r.jsxs(r.Fragment,{children:["é³é¢ ",r.jsx("br",{})," æ¯æ"]}),text:r.jsx(r.Fragment,{children:"ä½ å¯ä»¥åè§é¢æµä¸èµ·ä¼ è¾é³é¢ï¼ä¸ä¸æ¶åé¢å¤è´¹ç¨ãå¯å¨ç´æè®¾ç½®ä¸å¯ç¨é³é¢åè½ã"})},{h3:r.jsxs(r.Fragment,{children:["ç´ææ·è´ ",r.jsx("br",{})," 鲿¤"]}),text:r.jsxs(r.Fragment,{children:["æä»¬æä¾å¤ç§å
è´¹çç´æä¿æ¤æ¹å¼ãå°ææ¾å¨éå¶å¨ä½ èªå·±çååä¸ï¼å¤å¶ç代ç å¨å
¶ä»ç½ç«ä¸å°æ æ³ææ¾ï¼ä¸ºè§ç设置å¯ç ï¼PIN ç ï¼ï¼æéè¿ä¸å°æ®µ PHP 代ç 为æ¯ä½è§ä¼çæå¯ä¸é¾æ¥ãäºè§£æ´å¤",r.jsx("a",{href:"how-to-protect-stream-from-copying.html",children:"ç´æä¿æ¤"}),"æ¹å¼ã"]})},{h3:r.jsxs(r.Fragment,{children:["æä»¬ç ",r.jsx("br",{})," æ°æ®ä¸å¿"]}),text:r.jsx(r.Fragment,{children:"æä»¬çæ°æ®ä¸å¿éå¸åç¾ãåç¾ã欧洲ãäºæ´²å澳大å©äºï¼å¯ä»¥å°½å¯è½å¿«å°å°è§é¢å
å®¹ä¼ è¾ç»ä½ çç¨æ·ã æä¾å¸¦å®½é«è¾¾ 10 Tb/s çåºç«é¾è·¯ã"})},{h3:r.jsxs(r.Fragment,{children:["å¯åµå
¥çHTML5 ",r.jsx("br",{})," è§é¢ææ¾å¨"]}),text:r.jsx(r.Fragment,{children:"ææå¥é¤åæ¯æå°HTML5ææ¾å¨å
è´¹åµå
¥ä½ çç½ç«ï¼æ éä»»ä½é¢å¤è´¹ç¨ã许å¤ç«äºå¯¹æå¯¹æ¤åè½æ¶è´¹ï¼èæä»¬å§ç»å
è´¹æä¾ã è§ä¼å¯ä»¥å¨çµèãå¹³æ¿çµèåæºè½ææºä¸è§çè§é¢ã"})},{h3:r.jsxs(r.Fragment,{children:["å
è´¹æåæº ",r.jsx("br",{})," å¯ç¨æ§çæ§"]}),text:r.jsx(r.Fragment,{children:"æä»¬æ¯10åéå
è´¹æ£æ¥ä¸æ¬¡æåæºæ¯å¦å¯ç¨ã妿æåæºç¦»çº¿ï¼æä»¬ä¼éè¿çµåé®ä»¶éç¥ææè
ï¼é¿å
é¿æ¶é´ä¸æå´æ 人å¯è§ã个人æ§å¶é¢æ¿ä¸æ¯å°æåæºæçç»¿è²æçº¢è²æç¤ºç¯å¯è®©ä½ ç«å³äºè§£å
¶å½åç¶æã"})},{h3:r.jsxs(r.Fragment,{children:["æ éèéå¶ç ",r.jsx("br",{})," å®ä»·"]}),text:r.jsxs(r.Fragment,{children:[r.jsx("b",{children:"ä»·æ ¼ä¸åå³äºè§çæ¶é¿ã带宽ç¨éãæåæºå辨çæè§ä¼äººæ°ã"}),"ä¸è®¸å¤ç«äºå¯¹æä¸åï¼æä»¬ä¸éå¶è§ä¼äººæ°ï¼ä¹ä¸ä¼å è§çæ¶é´æ´é¿æç»è´¨æ´é«èé¢å¤æ¶è´¹ã"]})},{h3:r.jsxs(r.Fragment,{children:["äºå¨ ",r.jsx("br",{})," 宿¶è天"]}),text:r.jsx(r.Fragment,{children:"ä½ å¯ä»¥å¨ææ¾å¨è®¾ç½®ä¸å¯ç¨è天ï¼ä¸è§ä¼å®æ¶äº¤æµãæ¯æ¡æ¶æ¯å
67ªæå¨ä½ å®¡æ ¸å¹¶æ¹ååæä¼åå¸ï¼è®©ä½ å¯ä»¥å®å
¨ææ§è天å
容ã"})},{h3:r.jsxs(r.Fragment,{children:["å辨çåç ç ",r.jsx("br",{})," ä¸åéå¶"]}),text:r.jsxs(r.Fragment,{children:["æä»¬ä¸éå¶æåæºçå辨çæç çï¼ä½ å¯ä»¥ä½¿ç¨ä»»æè®¾ç½®ãä½è¯·è®°ä½ï¼è®¸å¤è§ä¼ä½¿ç¨ç§»å¨ç½ç»ã为ä¿è¯ç¨³å®ææ¾ï¼æä»¬å»ºè®®ä½¿ç¨",r.jsx("b",{children:"1280Ã720ã1 Mbps"}),"ï¼Full HDå建议使ç¨",r.jsx("b",{children:"1920Ã1080ã3 Mbps"}),"ã"]})},{h3:r.jsxs(r.Fragment,{children:["ç´æ ",r.jsx("br",{})," åç°"]}),text:r.jsxs(r.Fragment,{children:["æä»¬æä¾ä¸¤ç§ç´æåç°æ¹å¼ãä½ å¯ä»¥å¨ææ¾å¨ä¸æ·»å ææçèµå©é¾æ¥å¹¶è·å¾",r.jsx("b",{children:"æ¯ç¬ä»æ¬¾ç100%"}),"ï¼ä¹å¯ä»¥åºå®ç´æè§çæéï¼å¨è®¾ç½®ä¸æå®ä»·æ ¼ä»¥å仿¬¾åå¯è§çç天æ°ã"]})}]}},Jc=["01","06","03","04","05","06","07","08","09","06","04","05","01","01","01"],Gy=[0,1,2,7,8,9,10,11,13],Yy=()=>{const{lang:e}=V(),t=Ky[e],[n,a]=x.useState(null);return r.jsx("section",{className:"benefits section",id:"benefits",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"benefits__top top",children:[r.jsx("span",{className:"benefits__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"benefits__h2 h2 anim",children:t.h2})]}),r.jsx("ul",{className:"benefits__list list-reset",children:Gy.map(s=>{const i=t.items[s];return r.jsxs("li",{className:`benefits__item${n===s?" active":""}`,onMouseEnter:()=>a(s),onMouseLeave:()=>a(null),children:[r.jsx("div",{className:"benefits__img",children:r.jsx(le,{webp:`/landing/img/benefits/${Jc[s]}.webp`,fallback:`/landing/img/benefits/${Jc[s]}.png`,width:120,height:120})}),r.jsxs("div",{className:"benefits__content",children:[r.jsx("h3",{className:"benefits__h3 h3 anim",children:i.h3}),r.jsx("p",{className:"benefits__text text",children:i.text})]})]},s)})})]})})},Qy={textDecoration:"underline",textUnderlineOffset:"3px"},Zy=[["Hikvision / HiWatch","hikvision"],["Dahua","dahua"],["Axis","axis"],["Tiandy","tiandy"],["Uniview","uniview"],["Hanwha Vision","hanwha"],["Bosch","bosch"]],bt=({lang:e})=>r.jsx(r.Fragment,{children:Zy.map(([t,n],a)=>r.jsxs("span",{children:[a>0&&", ",r.jsx("a",{style:Qy,href:`/${e}/how-to-stream-${n}-camera-on-website.html`,children:t})]},n))}),Xy={en:{h2:r.jsxs(r.Fragment,{children:["Live streaming from IP cameras ",r.jsx("br",{})," of any manufacturer"]}),text:r.jsxs(r.Fragment,{children:["RTSP.ME works with IP cameras and video recorders from any manufacturer that supports RTSP. Connect"," ",r.jsx(bt,{lang:"en"}),", MyVMS, and other equipment to stream live video on your website."]}),btn:"Create account"},ru:{h2:r.jsxs(r.Fragment,{children:["Ðнлайн-ÑÑанÑлÑÑÐ¸Ñ Ñ IP-ÐºÐ°Ð¼ÐµÑ ",r.jsx("br",{})," лÑбÑÑ
пÑоизводиÑелей"]}),text:r.jsxs(r.Fragment,{children:["RTSP.RU ÑабоÑÐ°ÐµÑ Ñ IP-камеÑами и видеоÑегиÑÑÑаÑоÑами лÑбÑÑ
пÑоизводиÑелей, поддеÑживаÑÑими пÑоÑокол RTSP. ÐодклÑÑайÑе ",r.jsx(bt,{lang:"ru"}),", ÐÐ¸Ð½Ð¸Ñ Ð¸ дÑÑгое обоÑÑдование Ð´Ð»Ñ Ð¾Ð½Ð»Ð°Ð¹Ð½-ÑÑанÑлÑÑии видео на ÑайÑе."]}),btn:"СоздаÑÑ Ð°ÐºÐºÐ°ÑнÑ"},de:{h2:r.jsxs(r.Fragment,{children:["Online-Streaming mit IP-Kameras ",r.jsx("br",{})," aller Hersteller"]}),text:r.jsxs(r.Fragment,{children:["RTSP.ME unterstützt IP-Kameras und Videorekorder aller Hersteller, die das RTSP-Protokoll verwenden. Verbinden Sie ",r.jsx(bt,{lang:"de"}),", MyVMS und andere Geräte, um Live-Video auf Ihrer Website zu übertragen."]}),btn:"Konto erstellen"},pr:{h2:r.jsxs(r.Fragment,{children:["Transmissão ao vivo com câmeras IP ",r.jsx("br",{})," de qualquer fabricante"]}),text:r.jsxs(r.Fragment,{children:["A RTSP.ME funciona com câmeras IP e gravadores de vÃdeo de qualquer fabricante compatÃvel com RTSP. Conecte ",r.jsx(bt,{lang:"pr"}),", MyVMS e outros equipamentos para transmitir vÃdeo ao vivo no seu site."]}),btn:"Criar conta"},fr:{h2:r.jsxs(r.Fragment,{children:["Diffusion en direct avec des caméras IP ",r.jsx("br",{})," de toutes marques"]}),text:r.jsxs(r.Fragment,{children:["RTSP.ME fonctionne avec les caméras IP et les enregistreurs vidéo de toutes marques compatibles avec le protocole RTSP. Connectez ",r.jsx(bt,{lang:"fr"}),", MyVMS et dâautres équipements pour diffuser de la vidéo en direct sur votre site."]}),btn:"Créer un compte"},es:{h2:r.jsxs(r.Fragment,{children:["Transmisión en vivo con cámaras IP ",r.jsx("br",{})," de cualquier fabricante"]}),text:r.jsxs(r.Fragment,{children:["RTSP.ME funciona con cámaras IP y grabadores de vÃdeo de cualquier fabricante compatible con RTSP. Conecta ",r.jsx(bt,{lang:"es"}),", MyVMS y otros equipos para transmitir vÃdeo en vivo en tu sitio web."]}),btn:"Crear cuenta"},it:{h2:r.jsxs(r.Fragment,{children:["Streaming live con telecamere IP ",r.jsx("br",{})," di qualsiasi produttore"]}),text:r.jsxs(r.Fragment,{children:["RTSP.ME funziona con telecamere IP e videoregistratori di qualsiasi produttore compatibile con RTSP. Collega ",r.jsx(bt,{lang:"it"}),", MyVMS e altre apparecchiature per trasmettere video in diretta sul tuo sito web."]}),btn:"Crea account"},tr:{h2:r.jsxs(r.Fragment,{children:["Tüm markaların IP kameralarıyla ",r.jsx("br",{})," canlı yayın"]}),text:r.jsxs(r.Fragment,{children:["RTSP.ME, RTSP protokolünü destekleyen tüm üreticiler
67in IP kameraları ve video kayıt cihazlarıyla çalıÅır. Web sitenizde canlı video yayını yapmak için ",r.jsx(bt,{lang:"tr"}),", MyVMS ve diÄer ekipmanları baÄlayabilirsiniz."]}),btn:"Hesap OluÅtur"},zh:{h2:r.jsxs(r.Fragment,{children:["æ¯æä»»æåçIPæåæºç ",r.jsx("br",{})," å¨çº¿è§é¢ç´æ"]}),text:r.jsxs(r.Fragment,{children:["RTSP.MEæ¯æä»»ä½éç¨RTSPåè®®çIPæåæºåç½ç»å½åæºãè¿æ¥",r.jsx(bt,{lang:"zh"}),"ãMyVMSåå
¶ä»è®¾å¤ï¼å³å¯å¨ç½ç«ä¸è¿è¡å®æ¶è§é¢ç´æã"]}),btn:"å建账æ·"}},Jy=()=>{const{lang:e,openPopup:t}=V(),n=Xy[e];return r.jsx("section",{className:"film section",children:r.jsx("div",{className:"container",children:r.jsxs("div",{className:"film__inner",children:[r.jsxs("div",{className:"film__content",children:[r.jsxs("div",{className:"film__top",children:[r.jsx("h2",{className:"film__h2 h2 anim",children:n.h2}),r.jsx("p",{className:"film__text text",children:n.text})]}),r.jsx("button",{className:"film__btn btn btn--white popup-link auth btn-reset",onClick:()=>t("popup-registration"),children:n.btn})]}),r.jsx("div",{className:"film__img",children:r.jsx(le,{webp:"/landing/img/main/camera-bg.webp",fallback:"/landing/img/main/camera-bg.png",width:564,height:428})})]})})})},ej={en:{suptitle:"WHAT?",h2:r.jsxs(r.Fragment,{children:["Requirements for creating ",r.jsx("br",{})," RTSP broadcasting on the website"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME supports connecting IP cameras both with and without a static IP address. For a direct RTSP connection you will need:"}),slide1List:["IP camera, DVR, NVR, XVR (RTSP, h264).","Unlimited internet.","Static IP address (for direct connection only).","Access to modem settings."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"How to set up a direct connection",slide2List:["Find out your static IP address","Find the RTSP link for your camera","Configure port forwarding, e.g. from external port 10554 to camera port 554 (TCP/UDP). Avoid using external port 554 because it is frequently scanned and targeted by automated attacks","Create a separate camera user for streaming with view-only access and no administrative privileges","If your camera supports IP filtering, restrict access to our service IP addresses only. Request the current IP list from technical support","Create broadcast"],slide3H3:"How to connect a camera without a static IP",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," for compatible cameras â the camera sends the video stream to the RTSP.ME server itself. No static IP or port forwarding required"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," for existing cameras â connects one or more RTSP cameras to RTSP.ME without a static IP or open external ports"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," ","for new installations â just plug the camera into the network and enter its ID in the RTSP link"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"Software agent"})," for ordinary RTSP cameras â a free program for Windows, Linux and ARM sends the camera stream to the service. No static IP or open ports required"]})],learnMore:"Learn more"},ru:{suptitle:"ЧТÐ?",h2:r.jsxs(r.Fragment,{children:["ТÑÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ",r.jsx("br",{})," RTSP-веÑÐ°Ð½Ð¸Ñ Ð½Ð° ÑайÑе"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑение IP-ÐºÐ°Ð¼ÐµÑ ÐºÐ°Ðº Ñо ÑÑаÑиÑеÑким IP-адÑеÑом, Ñак и без него. ÐÐ»Ñ Ð¿ÑÑмого RTSP-подклÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾ÑÑебÑеÑÑÑ:"}),slide1List:["IP-камеÑа, DVR, NVR, XVR (RTSP, h264).","ÐезлимиÑнÑй инÑеÑнеÑ.","СÑаÑиÑеÑкий IP-адÑÐµÑ (ÑолÑко Ð´Ð»Ñ Ð¿ÑÑмого подклÑÑениÑ).","ÐоÑÑÑп к наÑÑÑойкам модема."],video:"https://vkvideo.ru/video_ext.php?oid=-33129364&id=456239313",slide2H3:"Ðак наÑÑÑоиÑÑ Ð¿ÑÑмое подклÑÑение",slide2List:["УзнайÑе Ð²Ð°Ñ ÑÑаÑиÑеÑкий IP-адÑеÑ","ÐайдиÑе RTSP-ÑÑÑÐ»ÐºÑ Ð´Ð»Ñ Ð²Ð°Ñей камеÑÑ","ÐаÑÑÑойÑе пеÑенапÑавление, напÑимеÑ, Ñ Ð²Ð½ÐµÑнего поÑÑа 10554 на поÑÑ 5
6754 камеÑÑ (TCP/UDP). Ðе иÑполÑзÑйÑе внеÑний поÑÑ 554: его ÑаÑÑо ÑканиÑÑÑÑ Ð¸ аÑакÑÑÑ Ð°Ð²ÑомаÑиÑеÑкие ÑиÑÑемÑ","СоздайÑе в наÑÑÑойкаÑ
камеÑÑ Ð¾ÑделÑного полÑзоваÑÐµÐ»Ñ Ð´Ð»Ñ ÑÑанÑлÑÑии â ÑолÑко Ñ Ð´Ð¾ÑÑÑпом к пÑоÑмоÑÑÑ, без пÑав админиÑÑÑаÑоÑа","ÐÑли камеÑа поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ ÑилÑÑÑаÑÐ¸Ñ Ð¿Ð¾ IP, огÑаниÑÑÑе доÑÑÑп ÑолÑко IP-адÑеÑами наÑего ÑеÑвиÑа. ÐкÑÑалÑнÑй ÑпиÑок IP-адÑеÑов запÑоÑиÑе Ñ ÑеÑ
поддеÑжки","СоздайÑе ÑÑанÑлÑÑиÑ"],slide3H3:"Ðак подклÑÑиÑÑ ÐºÐ°Ð¼ÐµÑÑ Ð±ÐµÐ· ÑÑаÑиÑеÑкого IP",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," Ð´Ð»Ñ ÑовмеÑÑимÑÑ
ÐºÐ°Ð¼ÐµÑ â камеÑа Ñама оÑпÑавлÑÐµÑ Ð²Ð¸Ð´ÐµÐ¾Ð¿Ð¾Ñок на ÑеÑÐ²ÐµÑ RTSP.ME. СÑаÑиÑеÑкий IP и пеÑенапÑавление поÑÑов не ÑÑебÑÑÑÑÑ"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"ÐÐ¸Ð½Ð¸Ñ Bridge"})," Ð´Ð»Ñ ÑÑÑеÑÑвÑÑÑиÑ
ÐºÐ°Ð¼ÐµÑ â подклÑÑÐ°ÐµÑ Ð¾Ð´Ð½Ñ Ð¸Ð»Ð¸ неÑколÑко RTSP-ÐºÐ°Ð¼ÐµÑ Ðº ÑеÑвиÑÑ Ð±ÐµÐ· ÑÑаÑиÑеÑкого IP и оÑкÑÑÑÐ¸Ñ Ð²Ð½ÐµÑниÑ
поÑÑов"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"ÐÐ¸Ð½Ð¸Ñ 4MP OEM Agent Bullet"})," ","Ð´Ð»Ñ Ð½Ð¾Ð²ÑÑ
ÑÑÑановок â пÑоÑÑо вклÑÑиÑе камеÑÑ Ð² ÑеÑÑ Ð¸ введиÑе ÐµÑ ID в RTSP-ÑÑÑлкÑ"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"ÐÑогÑаммнÑй агенÑ"})," Ð´Ð»Ñ Ð¾Ð±ÑÑнÑÑ
RTSP-ÐºÐ°Ð¼ÐµÑ â беÑплаÑÐ½Ð°Ñ Ð¿ÑогÑамма Ð´Ð»Ñ Windows, Linux и ARM оÑпÑавлÑÐµÑ Ð¿Ð¾Ñок камеÑÑ Ð½Ð° ÑеÑвиÑ. Ðез ÑÑаÑиÑеÑкого IP и оÑкÑÑÑÑÑ
поÑÑов"]})],learnMore:"УзнаÑÑ Ð±Ð¾Ð»ÑÑе"},de:{suptitle:"WAS?",h2:r.jsxs(r.Fragment,{children:["Anforderungen für die Erstellung von ",r.jsx("br",{})," RTSP-Streams auf einer Website"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME unterstützt die Anbindung von IP-Kameras mit und ohne statische IP-Adresse. Für die direkte RTSP-Verbindung benötigen Sie:"}),slide1List:["IP-Kamera, DVR, NVR, XVR (RTSP, h264).","Unbegrenztes Internet.","Statische IP-Adresse (nur für die direkte Verbindung).","Zugriff auf die Router-Einstellungen."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"So richten Sie die direkte Verbindung ein",slide2List:["Ermitteln Sie Ihre statische IP-Adresse","Finden Sie den RTSP-Link Ihrer Kamera","Richten Sie eine Portweiterleitung ein, z. B. vom externen Port 10554 auf Kameraport 554 (TCP/UDP). Vermeiden Sie den externen Port 554, da er häufig gescannt und automatisiert angegriffen wird","Erstellen Sie in der Kamera ein separates Benutzerkonto für das Streaming â nur mit Anzeigerechten und ohne Administratorrechte","Wenn Ihre Kamera IP-Filterung unterstützt, beschränken Sie den Zugriff auf die IP-Adressen unseres Die
67nstes. Die aktuelle IP-Liste erhalten Sie vom technischen Support","Erstellen Sie den Stream"],slide3H3:"So verbinden Sie eine Kamera ohne statische IP",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," für kompatible Kameras â die Kamera sendet den Videostream selbst an den RTSP.ME-Server. Keine statische IP und kein Port-Forwarding nötig"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," für vorhandene Kameras â verbindet eine oder mehrere RTSP-Kameras ohne statische IP und ohne offene externe Ports mit RTSP.ME"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," ","für neue Installationen â einfach ans Netzwerk anschlieÃen und die Kamera-ID in den RTSP-Link eintragen"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"Software-Agent"})," für gewöhnliche RTSP-Kameras â ein kostenloses Programm für Windows, Linux und ARM sendet den Kamerastream an den Dienst. Keine statische IP, keine offenen Ports"]})],learnMore:"Mehr erfahren"},pr:{suptitle:"O QUÃ?",h2:r.jsxs(r.Fragment,{children:["Requisitos para criar ",r.jsx("br",{})," transmissão RTSP em um site"]}),slide1H3:r.jsx(r.Fragment,{children:"O RTSP.ME permite conectar câmeras IP com ou sem endereço IP estático. Para a conexão RTSP direta, você vai precisar de:"}),slide1List:["Câmera IP, DVR, NVR, XVR (RTSP, h264).","Internet ilimitada.","Endereço IP estático (apenas para conexão direta).","Acesso à s configurações do roteador."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"Como configurar a conexão direta",slide2List:["Descubra seu endereço IP estático","Encontre o link RTSP da sua câmera","Configure o redirecionamento, por exemplo, da porta externa 10554 para a porta 554 da câmera (TCP/UDP). Evite usar a porta externa 554, pois ela é frequentemente varrida e alvo de ataques automatizados","Crie na câmera um usuário separado para a transmissão â apenas com permissão de visualização e sem privilégios de administrador","Se a câmera oferecer filtragem por IP, restrinja o acesso apenas aos endereços IP do nosso serviço. Solicite a lista atualizada ao suporte técnico","Crie a transmissão"],slide3H3:"Como conectar uma câmera sem IP estático",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," para câmeras compatÃveis â a câmera envia o fluxo de vÃdeo diretamente ao servidor RTSP.ME. Não é preciso IP estático nem redirecionamento de portas"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," para câmeras existentes â conecta uma ou mais câmeras RTSP ao RTSP.ME sem IP estático e sem abrir portas externas"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," ","para novas instalações â basta conectar a câmera à rede e inserir o ID dela no link RTSP"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"Agente de software"})," para câmeras RTSP comuns â um programa gratuito para Windows, Linux e ARM envia o fluxo da câmera ao serviço. Sem IP estático e sem portas abertas"]})],learnMore:"Saiba mais"},fr:{suptitle:"QUOI ?",h2:r.jsxs(r.Fragment,{children:["Exigences pour la création ",r.jsx("br",{})," dâune diffusion RTSP sur un site web"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME permet de connecter des caméras IP avec ou sans adresse IP statique. Pour la connexion RTSP directe, vous aurez besoin de :"}),slide1List:["Caméra IP, DVR, NVR, XVR (RTSP, h264).","Internet illimité.","Adresse IP statique (uniquement pour la connexion directe).","Accès aux paramètres du modem/routeur."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"Comment configurer la connexion directe",slide2List:["Trouver votre adresse IP statique","Trouver le lien RTSP de votre caméra","Configurer une redirection, par exemple du port externe 10554 vers le port 554 de la caméra (TCP/UDP). Ãviter le port externe 554, car il est souvent analysé et visé par des attaques automatisées","Créer dans la caméra un utilisateur distinct pour la diffusion â avec un accès en lecture seule et sans droits dâadministration","Si la caméra prend en charge le filtrage IP, limiter lâaccè
67s aux seules adresses IP de notre service. Demander la liste actualisée au support technique","Créer la diffusion"],slide3H3:"Comment connecter une caméra sans IP statique",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," pour les caméras compatibles â la caméra envoie elle-même le flux vidéo au serveur RTSP.ME. Aucune IP statique ni redirection de port nécessaire"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," pour les caméras existantes â connecte une ou plusieurs caméras RTSP à RTSP.ME sans IP statique ni ports externes ouverts"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," ","pour les nouvelles installations â branchez la caméra au réseau et saisissez son ID dans le lien RTSP"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"Agent logiciel"})," pour les caméras RTSP ordinaires â un programme gratuit pour Windows, Linux et ARM envoie le flux de la caméra au service. Sans IP statique ni ports ouverts"]})],learnMore:"En savoir plus"},es:{suptitle:"¿QUÃ?",h2:r.jsxs(r.Fragment,{children:["Requisitos para crear ",r.jsx("br",{})," transmisión RTSP en un sitio web"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME permite conectar cámaras IP con o sin dirección IP estática. Para la conexión RTSP directa necesitas:"}),slide1List:["Cámara IP, DVR, NVR, XVR (RTSP, h264).","Internet ilimitado.","Dirección IP estática (solo para la conexión directa).","Acceso a la configuración del módem/router."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"Cómo configurar la conexión directa",slide2List:["Averigua tu dirección IP estática","Encuentra el enlace RTSP de tu cámara","Configura el reenvÃo, por ejemplo, del puerto externo 10554 al puerto 554 de la cámara (TCP/UDP). Evita usar el puerto externo 554, ya que se escanea con frecuencia y es objetivo de ataques automatizados","Crea en la cámara un usuario independiente para la transmisión â solo con acceso de visualización y sin privilegios de administrador","Si la cámara admite filtrado por IP, limita el acceso únicamente a las direcciones IP de nuestro servicio. Solicita la lista actualizada al soporte técnico","Crea la transmisión"],slide3H3:"Cómo conectar una cámara sin IP estática",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," para cámaras compatibles â la cámara envÃa el flujo de vÃdeo por sà misma al servidor RTSP.ME. No se necesita IP estática ni reenvÃo de puertos"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," para cámaras existentes â conecta una o varias cámaras RTSP a RTSP.ME sin IP estática ni puertos externos abiertos"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," ","para nuevas instalaciones â solo conecta la cámara a la red e introduce su ID en el enlace RTSP"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"Agente de software"})," para cámaras RTSP comunes â un programa gratuito para Windows, Linux y ARM envÃa el flujo de la cámara al servicio. Sin IP estática ni puertos abiertos"]})],learnMore:"Más información"},it:{suptitle:"CHE COSA?",h2:r.jsxs(r.Fragment,{children:["Requisiti per creare ",r.jsx("br",{})," una trasmissione RTSP sul sito web"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME consente di collegare telecamere IP con o senza indirizzo IP statico. Per la connessione RTSP diretta occorrono:"}),slide1List:["Telecamera IP, DVR, NVR, XVR (RTSP, h264).","Connessione internet illimitata.","Indirizzo IP statico (solo per la connessione diretta).","Accesso alle impostazioni del modem/router."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"Come configurare la connessione diretta",slide2List:["Scopri il tuo indirizzo IP statico","Trova il link RTSP della tua telecamera","Configura lâinoltro, ad esempio dalla porta esterna 10554 alla porta 554 della telecamera (TCP/UDP). Evita la porta esterna 554, perché viene spesso scansionata e presa di mira da attacchi automatizzati","Crea nella telecamera un utente separato per la trasmissione â con il solo accesso alla visualizzazione e senza privilegi di amministratore","Se la telecamera supporta il filtro IP, limita lâaccesso ai soli indirizzi IP del nostro
67servizio. Richiedi lâelenco aggiornato allâassistenza tecnica","Crea la trasmissione"],slide3H3:"Come collegare una telecamera senza IP statico",slide3List:[r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," per telecamere compatibili â la telecamera invia da sola il flusso video al server RTSP.ME. Non servono IP statico e port forwarding"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," per telecamere esistenti â collega una o più telecamere RTSP a RTSP.ME senza IP statico e senza porte esterne aperte"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," ","per nuove installazioni â collega la telecamera alla rete e inserisci il suo ID nel link RTSP"]}),r.jsxs(r.Fragment,{children:[r.jsx("a",{href:"streaming-agent.html",children:"Agente software"})," per telecamere RTSP comuni â un programma gratuito per Windows, Linux e ARM invia il flusso della telecamera al servizio. Senza IP statico e porte aperte"]})],learnMore:"Scopri di più"},tr:{suptitle:"NE?",h2:r.jsxs(r.Fragment,{children:["Web sitesinde ",r.jsx("br",{})," RTSP yayını oluÅturmak için gerekenler"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.ME, IP kameraları sabit IP adresiyle veya sabit IP olmadan baÄlamayı destekler. DoÄrudan RTSP baÄlantısı için gerekenler:"}),slide1List:["IP kamera, DVR, NVR, XVR (RTSP, h264).","Sınırsız internet.","Sabit IP adresi (yalnızca doÄrudan baÄlantı için).","Modem/router ayarlarına eriÅim."],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"DoÄrudan baÄlantı nasıl kurulur",slide2List:["Sabit IP adresinizi öÄrenin","Kameranızın RTSP baÄlantısını bulun","Port yönlendirmesini, örneÄin harici 10554 portundan kameranın 554 portuna (TCP/UDP) yapın. Sıkça tarandıÄı ve otomatik saldırıların hedefi olduÄu için harici 554 portunu kullanmayın","Kamerada yayın için ayrı bir kullanıcı oluÅturun â yalnızca görüntüleme izni verin, yönetici yetkisi vermeyin","Kamera IP filtrelemeyi destekliyorsa eriÅimi yalnızca hizmetimizin IP adresleriyle sınırlayın. Güncel IP listesini teknik destekten isteyin","Yayını oluÅturun"],slide3H3:"Sabit IP olmadan kamera nasıl baÄlanır",slide3List:[r.jsxs(r.Fragment,{children:["Uyumlu kameralar için"," ",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"})," â kamera video akıÅını RTSP.ME sunucusuna kendisi gönderir. Sabit IP ve port yönlendirme gerekmez"]}),r.jsxs(r.Fragment,{children:["Mevcut kameralar için"," ",r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"})," â bir veya birden fazla RTSP kamerayı sabit IP ve açık harici port olmadan RTSP.ME'ye baÄlar"]}),r.jsxs(r.Fragment,{children:["Yeni kurulumlar için"," ",r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"})," â kamerayı aÄa baÄlayın ve ID'sini RTSP baÄlantısına girin"]}),r.jsxs(r.Fragment,{children:["Sıradan RTSP kameralar için"," ",r.jsx("a",{href:"streaming-agent.html",children:"Yazılım ajanı"})," â Windows, Linux ve ARM için ücretsiz program kamera akıÅını hizmete gönderir. Sabit IP ve açık port gerekmez"]})],learnMore:"Daha fazla bilgi"},zh:{suptitle:"ä»ä¹ï¼",h2:r.jsxs(r.Fragment,{children:["å¨ç½ç«ä¸å建 ",r.jsx("br",{})," RTSPç´æçè¦æ±"]}),slide1H3:r.jsx(r.Fragment,{children:"RTSP.MEæ¯æè¿æ¥æåºå®IPåæ åºå®IPçæåæºãè¥è¦ç´æ¥éè¿RTSPè¿æ¥ï¼ä½ éè¦ï¼"}),slide1List:["IPæåæºãDVRãNVRãXVRï¼RTSP, h264ï¼ã","ä¸éæµéçç½ç»ã","åºå®IPå°åï¼ä»
ç´æ¥è¿æ¥éè¦ï¼ã","å¯è®¿é®è·¯ç±å¨é
ç½®ã"],video:"https://www.youtube.com/embed/YXjZI8DQyj4",slide2H3:"å¦ä½é
ç½®ç´æ¥è¿æ¥",slide2List:["ç¡®è®¤ä½ çåºå®IPå°å","è·åæåæºçRTSP龿¥","é
置端å£è½¬åï¼ä¾å¦å°å¤é¨ç«¯å£10554转åå°æåæºç554端å£ï¼TCP/UDPï¼ã请å¿ä½¿ç¨å¤é¨ç«¯å£554ï¼å 为该端å£ç»å¸¸è¢«æ«æå¹¶æä¸ºèªå¨æ»å»çç®æ ","å
67¨æåæºä¸ä¸ºç´æå建ç¬ç«ç¨æ·ï¼ä»
æäºæ¥çæéï¼ä¸æäºç®¡çåæé","妿æåæºæ¯æIPè¿æ»¤ï¼è¯·ä»
å
许æä»¬æå¡çIPå°å访é®ãè¯·åææ¯æ¯æç´¢åææ°çIPå°åå表","åå»ºç´æ"],slide3H3:"å¦ä½å¨æ²¡æåºå®IPçæ
åµä¸è¿æ¥æåæº",slide3List:[r.jsxs(r.Fragment,{children:["å
¼å®¹æåæºä½¿ç¨",r.jsx("a",{href:"rtmp-push-without-static-ip.html",children:"RTMP Push"}),"ââæåæºèªè¡å°è§é¢æµæ¨éå°RTSP.MEæå¡å¨ï¼æ éåºå®IPå端å£è½¬å"]}),r.jsxs(r.Fragment,{children:["ç°ææåæºä½¿ç¨",r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS Bridge"}),"ââæ éåºå®IPå弿¾å¤é¨ç«¯å£å³å¯å°ä¸å°æå¤å°RTSPæåæºæ¥å
¥RTSP.ME"]}),r.jsxs(r.Fragment,{children:["æ°è£
æåæºéæ©",r.jsx("a",{href:"our-streaming-equipment.html",children:"MyVMS 4MP OEM Agent Bullet"}),"ââåªéå°æåæºæ¥å
¥ç½ç»ï¼å¹¶å¨RTSP龿¥ä¸è¾å
¥æåæºID"]}),r.jsxs(r.Fragment,{children:["æ®éRTSPæåæºä½¿ç¨",r.jsx("a",{href:"streaming-agent.html",children:"软件代ç"}),"ââéç¨äºWindowsãLinuxåARMçå
è´¹ç¨åºï¼å°æåæºè§é¢æµåéå°æå¡å¨ï¼æ éåºå®IPå弿¾ç«¯å£"]})],learnMore:"äºè§£æ´å¤"}},as=3,tj=()=>{const{lang:e}=V(),t=ej[e],[n,a]=x.useState(0),s=()=>a(l=>Math.max(0,l-1)),i=()=>a(l=>Math.min(as-1,l+1));return r.jsx("section",{className:"requirements section",id:"requirements",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"requirements__top top",children:[r.jsx("span",{className:"requirements__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"requirements__h2 h2 anim",children:t.h2})]}),r.jsxs("div",{className:"requirements__swiper swiper",children:[r.jsxs("div",{className:"swiper-wrapper",style:{display:"flex",flexDirection:"row",transform:`translateX(-${n*100}%)`,transition:"transform 0.3s ease-in-out"},children:[r.jsxs("div",{className:"requirements__slide swiper-slide",style:{flex:"0 0 100%",width:"100%"},children:[r.jsxs("div",{className:"requirements__content",children:[r.jsx("h3",{className:"requirements__h3 h3 anim",children:t.slide1H3}),r.jsx("ol",{className:"requirements__list",children:t.slide1List.map(l=>r.jsx("li",{className:"requirements__item text",children:l},l))})]}),r.jsx("div",{className:"requirements__img",children:r.jsx("iframe",{width:"928",height:"522",src:t.video,title:"RTSP.ME",frameBorder:"0",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share",referrerPolicy:"strict-origin-when-cross-origin",allowFullScreen:!0})})]}),r.jsxs("div",{className:"requirements__slide swiper-slide",style:{flex:"0 0 100%",width:"100%"},children:[r.jsxs("div",{className:"requirements__content",children:[r.jsx("h3",{className:"requirements__h3 h3 anim",children:t.slide2H3}),r.jsx("ol",{className:"requirements__list",children:t.slide2List.map(l=>r.jsx("li",{className:"requirements__item text",children:l},l))})]}),r.jsx("div",{className:"requirements__img",children:r.jsx(le,{webp:"/landing/img/requirements/02.webp",fallback:"/landing/img/requirements/02.png",width:869,height:480,style:{display:"block",width:"100%",height:"100%"},imgStyle:{objectFit:"cover"}})})]}),r.jsxs("div",{className:"requirements__slide swiper-slide",style:{flex:"0 0 100%",width:"100%"},children:[r.jsxs("div",{className:"requirements__content",children:[r.jsx("h3",{className:"requirements__h3 h3 anim",children:t.slide3H3}),r.jsx("ol",{className:"requirements__list",children:t.slide3List.map((l,o)=>r.jsx("li",{className:"requirements__item text",children:l},o))})]}),r.jsxs("div",{className:"requirements__img",children:[r.jsx(le,{webp:"/landing/img/requirements/03.webp",fallback:"/landing/img/requirements/03.png",width:869,height:480,style:{display:"block",width:"100%",height:"100%"},imgStyle:{objectFit:"cover"}}),r.jsx("a",{className:"requirements__btn btn btn--red",href:"how-to-stream-without-static-ip.html",children:t.learnMore})]})]})]}),r.jsx("div",{className:"requirements__bottom",children:r.jsxs("div",{className:"requirements__row",children:[r.jsxs("div",{className:"requirements__buttons",children:[r.jsx("button",{className:`requirements__button btn-reset${n===0?" swiper-button-disabled":""}`,id:"btn-prev",onClick:s,disabled:n===0,"aria-label":"Previous slide",children:r.jsx("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M14 16L10 12L14 8",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})}),r.jsx("button",{className:`requirements__button btn-reset${n===as-1?" swiper-button-disabled":""}`,id:"btn-next",onClick:i,disabled:n===as-1,"aria-label":"Next slide",children:r.jsx("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M10 8L14 12L10 16",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),r.jsxs("div",{className:"requirements__counter counter",children:[n+1," / ",as]})]})})]})]})})},rj={ru:{suptitle:"ÐонеÑизаÑиÑ",h2:"ÐонеÑизаÑÐ¸Ñ ÑÑанÑлÑÑий",subtitle:"ÐолÑÑайÑе поддеÑÐ¶ÐºÑ Ð¾Ñ Ð·ÑиÑелей или пÑодавайÑе доÑÑÑп к пÑоÑмоÑÑÑ Ð¿ÑÑмо ÑеÑез плееÑ",donateH3:"ÐоддеÑжка ÑÑанÑлÑÑии зÑиÑелÑми",donateP:["ÐонеÑизиÑÑйÑе ÑÑанÑлÑÑÐ¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð´Ð¾Ð±ÑоволÑнÑÑ
пожеÑÑвований Ð¾Ñ Ð·ÑиÑелей.","РплееÑе поÑвиÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ° «ÐоддеÑжаÑÑ ÑÑанÑлÑÑиÑ», ÑеÑез коÑоÑÑÑ Ð·ÑиÑели ÑмогÑÑ Ð¾ÑпÑавиÑÑ Ð»ÑбÑÑ ÑÑÐ¼Ð¼Ñ Ð² знак поддеÑжки авÑоÑа или пÑоекÑа.","100% полÑÑенной ÑÑÐ¼Ð¼Ñ Ð·Ð°ÑиÑлÑеÑÑÑ Ð½Ð° Ð²Ð°Ñ Ð±Ð°Ð»Ð°Ð½Ñ Ð¸ Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð¾Ð¿Ð»Ð°ÑÑ ÑÑлÑг {d}.","ÐодÑ
Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ Ð¿ÑблиÑнÑÑ
веб-камеÑ, ÑÑанÑлÑÑий меÑопÑиÑÑий, ÑÑÑиÑÑиÑеÑкиÑ
обÑекÑов, пÑиÑÑов, пÑиÑоднÑÑ
и дÑÑгиÑ
онлайн-пÑоекÑов."],paidH3:"ÐÑодавайÑе доÑÑÑп к ÑÑанÑлÑÑии",paidP:["СделайÑе пÑоÑмоÑÑ Ð²Ð°Ñей ÑÑанÑлÑÑии плаÑнÑм и ÑамоÑÑоÑÑелÑно опÑеделиÑе ÑÑоимоÑÑÑ Ð¸ ÑÑок доÑÑÑпа.","ÐÑиÑÐµÐ»Ñ Ð¾Ð¿Ð»Ð°ÑÐ¸Ð²Ð°ÐµÑ Ð¿ÑоÑмоÑÑ Ð½Ð° вÑбÑаннÑй пеÑиод и полÑÑÐ°ÐµÑ Ð¿ÐµÑÑоналÑнÑй код доÑÑÑпа на ÑлекÑÑоннÑÑ Ð¿Ð¾ÑÑÑ. ÐоÑле ввода кода ÑÑанÑлÑÑÐ¸Ñ ÑÑановиÑÑÑ Ð´Ð¾ÑÑÑпна на веÑÑ Ð¾Ð¿Ð»Ð°ÑеннÑй ÑÑок.","РлиÑном кабинеÑе доÑÑÑпен ÑпиÑок вÑеÑ
зÑиÑелей, кÑпивÑиÑ
доÑÑÑп, Ñ Ð¸Ð½ÑоÑмаÑией о ÑÑоке дейÑÑÐ²Ð¸Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ подпиÑки и даÑе ÐµÑ Ð¾ÐºÐ¾Ð½ÑаниÑ.","Ðока плаÑнÑй доÑÑÑп вклÑÑÑн, Ð¿Ð»ÐµÐµÑ Ð·Ð°Ð¿ÑаÑÐ¸Ð²Ð°ÐµÑ ÐºÐ¾Ð´ Ñ Ð²ÑеÑ
зÑиÑелей.","ÐодÑ
Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ Ð·Ð°ÐºÑÑÑÑÑ
меÑопÑиÑÑий, обÑÑаÑÑиÑ
ÑÑанÑлÑÑий, ÑпоÑÑивнÑÑ
ÑобÑÑий, пÑоÑеÑÑионалÑнÑÑ
ÐºÐ°Ð¼ÐµÑ Ð¸ дÑÑгого ÑкÑклÑзивного конÑенÑа."]},en:{suptitle:"Monetization",h2:"Monetize your broadcasts",subtitle:"Get support from your viewers or sell access to the stream right in the player",donateH3:"Viewer support for your stream",donateP:["Monetize your broadcast through voluntary contributions from viewers.","A âSupport this streamâ button appears in the player, letting viewers send any amount to back the author or the project.","100% of what you receive is credited to your balance and can be spent on {d} services.","A good fit for public webcams, event broadcasts, tourist landmarks, animal shelters, nature and other online projects."],paidH3:"Sell access to your broadcast",paidP:["Make watching your stream paid and set the price and the access period yourself.","The viewer pays for the peri
67od they choose and receives a personal access code by email. Once the code is entered, the stream stays open for the whole paid period.","Your account lists every viewer who bought access, with the duration of each subscription and its end date.","While paid access is on, the player asks every viewer for a code.","A good fit for closed events, training broadcasts, sports events, professional cameras and other exclusive content."]},de:{suptitle:"Monetarisierung",h2:"Monetarisierung von Ãbertragungen",subtitle:"Erhalten Sie Unterstützung von Zuschauern oder verkaufen Sie den Zugang zum Stream direkt im Player",donateH3:"Unterstützung des Streams durch Zuschauer",donateP:["Monetarisieren Sie Ihre Ãbertragung durch freiwillige Spenden der Zuschauer.","Im Player erscheint die Schaltfläche âDiesen Stream unterstützenâ, über die Zuschauer einen beliebigen Betrag zur Unterstützung des Autors oder des Projekts senden können.","100 % des erhaltenen Betrags werden Ihrem Guthaben zugebucht und können für {d}-Leistungen verwendet werden.","Geeignet für öffentliche Webcams, Veranstaltungsübertragungen, Sehenswürdigkeiten, Tierheime, Natur- und andere Online-Projekte."],paidH3:"Verkaufen Sie den Zugang zur Ãbertragung",paidP:["Machen Sie Ihren Stream kostenpflichtig und bestimmen Sie Preis und Zugangsdauer selbst.","Der Zuschauer bezahlt den gewählten Zeitraum und erhält einen persönlichen Zugangscode per E-Mail. Nach Eingabe des Codes bleibt der Stream für den gesamten bezahlten Zeitraum verfügbar.","Im Konto sehen Sie alle Zuschauer, die Zugang gekauft haben, samt Laufzeit und Enddatum jedes Zugangs.","Solange der kostenpflichtige Zugang aktiv ist, fragt der Player bei jedem Zuschauer den Code ab.","Geeignet für geschlossene Veranstaltungen, Schulungsübertragungen, Sportevents, professionelle Kameras und andere exklusive Inhalte."]},pr:{suptitle:"Monetização",h2:"Monetização de transmissões",subtitle:"Receba apoio dos espectadores ou venda o acesso à transmissão diretamente no player",donateH3:"Apoio dos espectadores à transmissão",donateP:["Monetize sua transmissão com doações voluntárias dos espectadores.","No player aparece o botão âApoiar esta transmissãoâ, pelo qual os espectadores podem enviar qualquer valor em apoio ao autor ou ao projeto.","100% do valor recebido é creditado no seu saldo e pode ser usado para pagar os serviços do {d}.","Ideal para webcams públicas, transmissões de eventos, pontos turÃsticos, abrigos de animais, natureza e outros projetos online."],paidH3:"Venda o acesso à sua transmissão",paidP:["Torne sua transmissão paga e defina você mesmo o preço e o prazo de acesso.","O espectador paga pelo perÃodo escolhido e recebe um código de acesso pessoal por e-mail. Depois de inserir o código, a transmissão fica disponÃvel por todo o perÃodo pago.","Na sua conta há a lista de todos os espectadores que compraram acesso, com a duração de cada assinatura e a data de término.","Enquanto o acesso pago estiver ativo, o player pede o código a todos os espectadores.","Ideal para eventos fechados, transmissões de treinamento, eventos esportivos, câmeras profissionais e outros conteúdos exclusivos."]},fr:{suptitle:"Monétisation",h2:"Monétisation des diffusions",subtitle:"Recevez le soutien de vos spectateurs ou vendez lâaccès à la diffusion directement dans le lecteur",donateH3:"Le soutien des spectateurs à votre diffusion",donateP:["Monétisez votre diffusion grâce aux dons volontaires des spectateurs.","Un bouton « Soutenir cette diffusion » apparaît dans le lecteur : les spectateurs peuvent envoyer le montant de leur choix pour soutenir lâauteur ou le projet.","100 % du montant reçu est crédité sur votre solde et peut servir à payer les services {d}.","Convient aux webcams publiques, aux diffusions dâévénements, aux sites touristiques, aux refuges pour animaux, à la nature et à dâautres projets en ligne."],paidH3:"Vendez lâaccès à votre diffusion",paidP:["Rendez votre diffusion payante et fixez vous-même le prix et la durée dâaccès.","Le spectateur paie la période choisie et reçoit un code dâaccès personnel par e-mail. Une fois le code saisi, la diffusion reste ouverte pendant toute la période payée.","Votre espace personnel liste tous les spectateurs ayant acheté un accès, avec la durée de chaque abonnement et sa date de fin.","Tant que lâaccè
67s payant est activé, le lecteur demande le code à chaque spectateur.","Convient aux événements privés, aux diffusions de formation, aux événements sportifs, aux caméras professionnelles et à dâautres contenus exclusifs."]},es:{suptitle:"Monetización",h2:"Monetización de transmisiones",subtitle:"Recibe el apoyo de tus espectadores o vende el acceso a la transmisión directamente en el reproductor",donateH3:"Apoyo de los espectadores a la transmisión",donateP:["Monetiza tu transmisión con aportaciones voluntarias de los espectadores.","En el reproductor aparece el botón «Apoyar esta transmisión», con el que los espectadores pueden enviar cualquier cantidad en apoyo del autor o del proyecto.","El 100 % de lo recibido se abona en tu saldo y puede usarse para pagar los servicios de {d}.","Ideal para webcams públicas, transmisiones de eventos, lugares turÃsticos, refugios de animales, naturaleza y otros proyectos en lÃnea."],paidH3:"Vende el acceso a tu transmisión",paidP:["Haz que ver tu transmisión sea de pago y define tú mismo el precio y el plazo de acceso.","El espectador paga el periodo que elija y recibe un código de acceso personal por correo. Tras introducir el código, la transmisión queda disponible durante todo el periodo pagado.","En tu cuenta tienes la lista de todos los espectadores que compraron acceso, con la duración de cada suscripción y su fecha de fin.","Mientras el acceso de pago esté activo, el reproductor pide el código a todos los espectadores.","Ideal para eventos cerrados, transmisiones formativas, eventos deportivos, cámaras profesionales y otro contenido exclusivo."]},it:{suptitle:"Monetizzazione",h2:"Monetizzazione delle trasmissioni",subtitle:"Ricevi il sostegno degli spettatori o vendi lâaccesso alla trasmissione direttamente nel player",donateH3:"Il sostegno degli spettatori alla trasmissione",donateP:["Monetizza la tua trasmissione con donazioni volontarie degli spettatori.","Nel player compare il pulsante «Sostieni questa trasmissione», con cui gli spettatori possono inviare qualsiasi importo a sostegno dellâautore o del progetto.","Il 100% dellâimporto ricevuto viene accreditato sul tuo saldo e può essere usato per pagare i servizi {d}.","Adatto a webcam pubbliche, trasmissioni di eventi, luoghi turistici, rifugi per animali, natura e altri progetti online."],paidH3:"Vendi lâaccesso alla trasmissione",paidP:["Rendi la visione della tua trasmissione a pagamento e stabilisci tu prezzo e durata dellâaccesso.","Lo spettatore paga il periodo scelto e riceve un codice di accesso personale via e-mail. Dopo lâinserimento del codice la trasmissione resta disponibile per tutto il periodo pagato.","Nellâarea personale trovi lâelenco di tutti gli spettatori che hanno acquistato lâaccesso, con la durata di ogni abbonamento e la data di scadenza.","Finché lâaccesso a pagamento è attivo, il player chiede il codice a tutti gli spettatori.","Adatto a eventi privati, trasmissioni formative, eventi sportivi, telecamere professionali e altri contenuti esclusivi."]},tr:{suptitle:"Gelir elde etme",h2:"Yayınlardan gelir elde etme",subtitle:"İzleyicilerinizden destek alın veya yayına eriÅimi doÄrudan oynatıcı üzerinden satın",donateH3:"İzleyicilerin yayına desteÄi",donateP:["Yayınınızı izleyicilerin gönüllü baÄıÅlarıyla gelire dönüÅtürün.","Oynatıcıda âBu yayını destekleâ düÄmesi görünür; izleyiciler yazarı veya projeyi desteklemek için istedikleri tutarı gönderebilir.","Gelen tutarın %100âü bakiyenize eklenir ve {d} hizmetlerinin ödemesinde kullanılabilir.","Halka açık kameralar, etkinlik yayınları, turistik yerler, hayvan barınakları, doÄa ve diÄer çevrimiçi projeler için uygundur."],paidH3:"Yayına eriÅimi satın",paidP:["Yayınınızın izlenmesini ücretli hâle getirin, fiyatı ve eriÅim süresini kendiniz belirleyin.","İzleyici seçtiÄi dönem için ödeme yapar ve e-postayla kiÅisel bir eriÅim kodu alır. Kod girildikten sonra yayın, ödenen sürenin tamamı boyunca açık kalır.","Hesabınızda eriÅim satın alan tüm izleyicilerin listesi, her aboneliÄin süresi ve bitiÅ tarihiyle birlikte yer alır.","Ãcretli eriÅim açık olduÄu sürece oynatıcı her izleyiciden kod ister.","Kapalı etkinlikler, eÄitim yayınları, spor organizasyonları, profesyonel kameralar ve diÄer özel içerikler için uygundur."]},zh:{suptitle:"åç°",h2:"ç´æåç°",subtitle:"卿æ¾å¨ä¸ç´æ¥è·å¾è§ä¼æ¯æï¼æåºå®è§çæé",donateH3:"è§ä¼å¯¹ç´æçæ¯æ",donateP:["éè¿è§ä¼çèªæ¿æèµä¸ºä½ çç´æå¸¦æ¥æ¶å
¥ã","ææ¾å¨ä¸ä¼åºç°âæ¯æè¿ä¸ªç´æâ
67æé®ï¼è§ä¼å¯ä»¥åéä»»æéé¢ï¼ä»¥æ¯æä½è
æé¡¹ç®ã","æ¶å°çéé¢100%计å
¥ä½ çä½é¢ï¼å¯ç¨äºæ¯ä» {d} çæå¡è´¹ç¨ã","éç¨äºå
Œ
±ç½ç»æåå¤´ãæ´»å¨ç´æãæ
游æ¯ç¹ãå¨ç©æå©ç«ãèªç¶æ¯è§çå¨çº¿é¡¹ç®ã"],paidH3:"åºå®ç´æè§çæé",paidP:["æä½ çç´æè®¾ä¸ºä»è´¹è§çï¼ä»·æ ¼åè®¿é®æéç±ä½ èªå·±å³å®ã","è§ä¼ä¸ºæé卿ä»è´¹ï¼å¹¶éè¿çµåé®ä»¶æ¶å°ä¸ªäººè®¿é®ç ãè¾å
¥è®¿é®ç åï¼å¨æ´ä¸ªä»è´¹å¨æå
é½å¯ä»¥è§çã","å¨ä¸ªäººåå°å¯ä»¥æ¥çææè´ä¹°äºè®¿é®æéçè§ä¼å表ï¼ä»¥åæ¯ä»½è®¢é
çæææåå°ææ¥æã","åªè¦ä»è´¹è®¿é®å¤äºå¼å¯ç¶æï¼ææ¾å¨ä¼åææè§ä¼ç´¢å访é®ç ã","éç¨äºå°éæ´»å¨ãå¹è®ç´æãä½è²èµäºãä¸ä¸æå头以åå
¶ä»ç¬å®¶å
容ã"]}},ss=(e,t)=>`/landing/img/monetization/${t}-${e==="ru"?"ru":"en"}`,ed=({items:e})=>r.jsx("p",{className:"broadcast__text text",children:e.map((t,n)=>r.jsxs("span",{children:[n>0&&r.jsxs(r.Fragment,{children:[r.jsx("br",{}),r.jsx("br",{})]}),t]},n))}),nj=()=>{const{lang:e}=V(),t=rj[e],n=cu(e),a=s=>s.map(i=>i.replace("{d}",n));return r.jsx("section",{className:"broadcast section",id:"monetization",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"broadcast__top top",children:[r.jsx("span",{className:"broadcast__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"broadcast__h2 h2 anim",children:t.h2}),r.jsx("h3",{className:"h3 anim",style:{gridColumn:"1 / -1",width:"100%",maxWidth:"none"},children:t.subtitle})]}),r.jsxs("ul",{className:"broadcast__list list-reset",children:[r.jsxs("li",{className:"broadcast__item mblock",children:[r.jsxs("div",{className:"broadcast__content mblock__content",children:[r.jsx("h3",{className:"broadcast__h3 h3 anim show",children:t.donateH3}),r.jsx(ed,{items:a(t.donateP)})]}),r.jsx("div",{className:"broadcast__img anim-scale mblock__img",children:r.jsx(le,{webp:`${ss(e,"donate")}.webp`,fallback:`${ss(e,"donate")}.png`,width:727,height:410,alt:t.donateH3,imgClassName:"img"})})]}),r.jsxs("li",{className:"broadcast__item mblock",children:[r.jsxs("div",{className:"broadcast__content mblock__content",children:[r.jsx("h3",{className:"broadcast__h3 h3 anim",children:t.paidH3}),r.jsx(ed,{items:a(t.paidP)})]}),r.jsx("div",{className:"broadcast__img anim-scale mblock__img",children:r.jsx(le,{webp:`${ss(e,"paid")}.webp`,fallback:`${ss(e,"paid")}.png`,width:727,height:410,alt:t.paidH3,imgClassName:"img"})})]})]})]})})},aj={youtube:{color:"#FF0000",path:"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"},facebook:{color:"#0866FF",path:"M9.101 23.691v-7.98H6.627v-3.667h2.474v-1.58c0-4.085 1.848-5.978 5.858-5.978.401 0 .955.042 1.468.103a8.68 8.68 0 0 1 1.141.195v3.325a8.623 8.623 0 0 0-.653-.036 26.805 26.805 0 0 0-.733-.009c-.707 0-1.259.096-1.675.309a1.686 1.686 0 0 0-.679.622c-.258.42-.374.995-.374 1.752v1.297h3.919l-.386 2.103-.287 1.564h-3.246v8.245C19.396 23.238 24 18.179 24 12.044c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.628 3.874 10.35 9.101 11.647Z"},twitch:{color:"#9146FF",path:"M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"},vkvideo:{color:"#0077FF",path:"m9.489.004.729-.003h3.564l.73.003.914.01.433.007.418.011.403.014.388.016.374.021.36.025.345.03.333.033c1.74.196 2.933.616 3.833 1.516.9.9 1.32 2.092 1.516 3.833l.034.333.029.346.025.36.02.373.025.588.012.41.013.644.009.915.004.98-.001 3.313-.003.73-.01.914-.007.433-.011.418-.014.403-.016.388-.021.374-.025.36-.03.345-.033.333c-.196 1.74-.616 2.933-1.516 3.833-.9.9-2.092 1.32-3.833 1.516l-.333.034-.346.029-.36.025-.373.02-.588.025-.41.012-.644.013-.915.009-.98.004-3.313-.001-.73-.003-.914-.01-.433-.007-.418
67-.011-.403-.014-.388-.016-.374-.021-.36-.025-.345-.03-.333-.033c-1.74-.196-2.933-.616-3.833-1.516-.9-.9-1.32-2.092-1.516-3.833l-.034-.333-.029-.346-.025-.36-.02-.373-.025-.588-.012-.41-.013-.644-.009-.915-.004-.98.001-3.313.003-.73.01-.914.007-.433.011-.418.014-.403.016-.388.021-.374.025-.36.03-.345.033-.333c.196-1.74.616-2.933 1.516-3.833.9-.9 2.092-1.32 3.833-1.516l.333-.034.346-.029.36-.025.373-.02.588-.025.41-.012.644-.013.915-.009ZM6.79 7.3H4.05c.13 6.24 3.25 9.99 8.72 9.99h.31v-3.57c2.01.2 3.53 1.67 4.14 3.57h2.84c-.78-2.84-2.83-4.41-4.11-5.01 1.28-.74 3.08-2.54 3.51-4.98h-2.58c-.56 1.98-2.22 3.78-3.8 3.95V7.3H10.5v6.92c-1.6-.4-3.62-2.34-3.71-6.92Z"}},sj=({platform:e,size:t=22,color:n})=>{const a=aj[e];return r.jsx("svg",{viewBox:"0 0 24 24",width:t,height:t,fill:n??a.color,"aria-hidden":"true",focusable:"false",children:r.jsx("path",{d:a.path})})},ij={ru:{suptitle:"РеÑÑанÑлÑÑиÑ",h2:r.jsxs(r.Fragment,{children:["РеÑÑанÑлÑÑÐ¸Ñ Ð½Ð° YouTube, ",r.jsx("br",{})," Facebook, Twitch и VK Ðидео"]}),lead:"ÐеÑедавайÑе видео Ñ IP-камеÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ð½Ð° попÑлÑÑнÑе ÑÑÑиминговÑе плаÑÑоÑÐ¼Ñ ÑеÑез {d}.",points:["ÐодклÑÑиÑе камеÑÑ Ð¾Ð´Ð¸Ð½ Ñаз и наÑÑÑойÑе ÑеÑÑанÑлÑÑÐ¸Ñ Ð½Ð° YouTube Live, Facebook Live, Twitch или VK Ðидео.","{d} полÑÑÐ°ÐµÑ RTSP-поÑок Ñ ÐºÐ°Ð¼ÐµÑÑ Ð¸ авÑомаÑиÑеÑки пеÑедаÑÑ ÐµÐ³Ð¾ на вÑбÑаннÑÑ Ð¿Ð»Ð°ÑÑоÑÐ¼Ñ â без компÑÑÑеÑа, дополниÑелÑного пÑогÑаммного обеÑпеÑÐµÐ½Ð¸Ñ Ð¸ поÑÑоÑнно запÑÑенного ÑнкодеÑа.","РабоÑÐ°ÐµÑ Ð½Ð° ÑеÑвеÑаÑ
{d} кÑÑглоÑÑÑоÑно и авÑомаÑиÑеÑки воÑÑÑанавливаеÑÑÑ Ð¿Ð¾Ñле вÑеменной поÑеÑи ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ ÐºÐ°Ð¼ÐµÑой."],price:"СÑоимоÑÑÑ â Ð¾Ñ 360 ⽠в меÑÑÑ.",fit:"ÐодÑ
Ð¾Ð´Ð¸Ñ Ð´Ð»Ñ Ð²ÐµÐ±-камеÑ, ÑÑÑиÑÑиÑеÑкиÑ
обÑекÑов, ÑÑÑоек, меÑопÑиÑÑий, пÑиÑоднÑÑ
ÑÑанÑлÑÑий и дÑÑгиÑ
пÑоекÑов, коÑоÑÑм нÑжен поÑÑоÑннÑй ÑÑÐ¸Ñ Ð½Ð° YouTube, Facebook, Twitch или VK Ðидео.",btn:"СоздаÑÑ Ð°ÐºÐºÐ°ÑнÑ"},en:{suptitle:"Restreaming",h2:r.jsxs(r.Fragment,{children:["Restreaming to YouTube, ",r.jsx("br",{})," Facebook, Twitch and VK Video"]}),lead:"Send video from an IP camera straight to the popular streaming platforms through {d}.",points:["Connect the camera once and set up restreaming to YouTube Live, Facebook Live, Twitch or VK Video.","{d} pulls the RTSP stream from the camera and forwards it to the platform you picked â with no computer, no extra software and no encoder left running.","It runs on {d} servers around the clock and recovers by itself after a temporary loss of connection to the camera."],price:"From â¬10 per month.",fit:"A good fit for webcams, tourist landmarks, construction sites, events, nature streams and any other project that needs to stay on air on YouTube, Facebook, Twitch or VK Video.",btn:"Create account"},de:{suptitle:"Weiterleitung",h2:r.jsxs(r.Fragment,{children:["Weiterleitung an YouTube, ",r.jsx("br",{})," Facebook, Twitch und VK Video"]}),lead:"Ãbertragen Sie das Video einer IP-Kamera über {d} direkt an die bekannten Streaming-Plattformen.",points:["Kamera einmal anbinden und die Weiterleitung an YouTube Live, Facebook Live, Twitch oder VK Video einrichten.","{d} holt den RTSP-Stream von der Kamera und überträgt ihn automatisch an die gewählte Plattform â ohne Computer, ohne Zusatzsoftware und ohne dauerhaft laufenden Encoder.","Läuft rund um die Uhr auf den Servern von {d} und stellt sich nach einem kurzzeitigen Verbindungsverlust zur Kamera selbst wieder her."],price:"Ab 10 ⬠pro Monat.",fit:"Geeignet für Webcams, Sehenswürdigkeiten, Baustellen, Veranstaltungen, Naturübertragungen und andere Projekte, die dauerhaft auf YouTube, Facebook, Twitch oder VK Video senden möchten.",btn:"Konto erstellen"},pr:{suptitle:"Retransmissão",h2:r.jsxs(r.Fragment,{children:["Retransmissão para YouTube, ",r.jsx("br",{})," Facebook, Twitch e VK Video"]}),lead:"Envie o vÃdeo de uma câmera IP diretamente para as principais plataformas de streaming através do {d}.",points:["Conecte a câmera uma vez e configure a retransmissão para YouTube Live, Facebook Live, Twitch ou VK Video.","O {d} recebe o fluxo RTSP da câmera e o envia automaticamente para a plataforma escolhida â sem computador, sem software adicional e sem encoder ligado o tempo todo.","Funciona nos servidores do {d} 24 horas por dia e se restabelece sozinho após uma perda temporária de conexão com a câmera."],price:"A partir de 10 ⬠por mês.",fit:"Ideal para webcams, pontos turÃsticos, obras, eventos, transmissões da natureza e outros projetos que precisam ficar no ar no YouTube, Facebook, Twitch ou VK Video.",btn:"Criar conta"},fr:{suptitle:"Rediffusion",h2:r.jsxs(r.Fragment,{children:["Rediffusion vers YouTube, ",r.jsx("br",{})," Facebook, Twitch et VK Video"]}),lead:"Envoyez la vidéo dâune caméra IP directement vers les grandes plateformes de streaming via {d}.",points:["Connectez la caméra une seule fois et configurez la rediffusion vers YouTube Live, Facebook Live, Twitch ou VK Video.","{d} récupère le flux RTSP de la caméra et le transmet automatiquement à la plateforme choisie â sans ordinateur, sans logiciel supplémentaire et sans encodeur allum
67é en permanence.","Tourne sur les serveurs {d} 24 h/24 et se rétablit de lui-même après une perte de connexion temporaire avec la caméra."],price:"à partir de 10 ⬠par mois.",fit:"Convient aux webcams, aux sites touristiques, aux chantiers, aux événements, aux diffusions nature et à tout projet qui doit rester en direct sur YouTube, Facebook, Twitch ou VK Video.",btn:"Créer un compte"},es:{suptitle:"Retransmisión",h2:r.jsxs(r.Fragment,{children:["Retransmisión a YouTube, ",r.jsx("br",{})," Facebook, Twitch y VK Video"]}),lead:"EnvÃa el vÃdeo de una cámara IP directamente a las principales plataformas de streaming a través de {d}.",points:["Conecta la cámara una vez y configura la retransmisión a YouTube Live, Facebook Live, Twitch o VK Video.","{d} recibe el flujo RTSP de la cámara y lo envÃa automáticamente a la plataforma elegida: sin ordenador, sin software adicional y sin un codificador funcionando todo el tiempo.","Funciona en los servidores de {d} las 24 horas y se restablece por sà solo tras una pérdida temporal de conexión con la cámara."],price:"Desde 10 ⬠al mes.",fit:"Ideal para webcams, lugares turÃsticos, obras, eventos, transmisiones de naturaleza y cualquier otro proyecto que necesite estar siempre en directo en YouTube, Facebook, Twitch o VK Video.",btn:"Crear cuenta"},it:{suptitle:"Ritrasmissione",h2:r.jsxs(r.Fragment,{children:["Ritrasmissione su YouTube, ",r.jsx("br",{})," Facebook, Twitch e VK Video"]}),lead:"Invia il video di una telecamera IP direttamente alle principali piattaforme di streaming tramite {d}.",points:["Collega la telecamera una volta e configura la ritrasmissione su YouTube Live, Facebook Live, Twitch o VK Video.","{d} riceve il flusso RTSP dalla telecamera e lo inoltra automaticamente alla piattaforma scelta, senza computer, senza software aggiuntivo e senza un encoder sempre acceso.","Funziona sui server {d} 24 ore su 24 e si ripristina da solo dopo una perdita temporanea di connessione con la telecamera."],price:"Da 10 ⬠al mese.",fit:"Adatto a webcam, luoghi turistici, cantieri, eventi, trasmissioni dalla natura e ad altri progetti che devono restare in onda su YouTube, Facebook, Twitch o VK Video.",btn:"Crea account"},tr:{suptitle:"Yeniden yayın",h2:r.jsxs(r.Fragment,{children:["YouTube, Facebook, Twitch ",r.jsx("br",{})," ve VK Videoâya yeniden yayın"]}),lead:"IP kameradan gelen görüntüyü {d} üzerinden doÄrudan popüler yayın platformlarına gönderin.",points:["Kamerayı bir kez baÄlayın ve YouTube Live, Facebook Live, Twitch veya VK Videoâya yeniden yayını ayarlayın.","{d}, kameradan RTSP akıÅını alır ve seçtiÄiniz platforma otomatik olarak iletir â bilgisayar, ek yazılım ve sürekli açık bir kodlayıcı olmadan.","{d} sunucularında kesintisiz çalıÅır ve kamerayla baÄlantı geçici olarak koptuÄunda kendiliÄinden yeniden kurulur."],price:"Ayda 10 â¬âdan baÅlayan fiyatlarla.",fit:"Web kameraları, turistik yerler, Åantiyeler, etkinlikler, doÄa yayınları ve YouTube, Facebook, Twitch ya da VK Videoâda sürekli yayında kalması gereken diÄer projeler için uygundur.",btn:"Hesap OluÅtur"},zh:{suptitle:"转æ¨",h2:r.jsxs(r.Fragment,{children:["转æ¨å° YouTubeãFacebookã ",r.jsx("br",{})," Twitch å VK Video"]}),lead:"éè¿ {d} æ IP æåæºçè§é¢ç´æ¥æ¨éå°ä¸»æµç´æå¹³å°ã",points:["æåæºåªéæ¥å
¥ä¸æ¬¡ï¼å³å¯è®¾ç½®å° YouTube LiveãFacebook LiveãTwitch æ VK Video ç转æ¨ã","{d} è·åæåæºç RTSP æµå¹¶èªå¨è½¬æ¨å°ä½ éæ©çå¹³å°ââæ éçµèãæ éé¢å¤è½¯ä»¶ï¼ä¹ä¸å¿
ä¸ç´è¿è¡ç¼ç å¨ã","转æ¨å¨ {d} çæå¡å¨ä¸å
¨å¤©åè¿è¡ï¼ä¸æåæºçè¿æ¥çæä¸æåä¼èªå¨æ¢å¤ã"],price:"æ¯æ 10 ⬠起ã",fit:"éç¨äºç½ç»æå头ãæ
游æ¯ç¹ãæ½å·¥ç°åºãæ´»å¨ãèªç¶æ¯è§ç´æï¼ä»¥åå
¶ä»éè¦å¨ YouTubeãFacebookãTwitch æ VK Video 䏿ç»å¼æç项ç®ã",btn:"å建账æ·"}},lj=[{id:"youtube",label:"YouTube Live"},{id:"facebook",label:"Facebook Live"},{id:"twitch",label:"Twitch"},{id:"vkvideo",label:"VK Video"}],oj=()=>{const{lang:e,openPopup:t}=V(),n=ij[e],a=cu(e),s=i=>i.split("{d}
67").join(a);return r.jsx("section",{className:"film section",id:"restream",children:r.jsx("div",{className:"container",children:r.jsx("div",{className:"film__inner restream",children:r.jsxs("div",{className:"restream__grid",children:[r.jsxs("div",{className:"restream__content",children:[r.jsx("span",{className:"restream__suptitle",children:n.suptitle}),r.jsx("h2",{className:"film__h2 h2 anim",children:n.h2}),r.jsx("p",{className:"restream__lead",children:s(n.lead)}),r.jsx("ul",{className:"restream__list",children:n.points.map(i=>r.jsx("li",{className:"restream__item",children:s(i)},i))}),r.jsx("p",{className:"restream__price",children:n.price}),r.jsx("p",{className:"restream__fit",children:n.fit}),r.jsx("button",{className:"restream__btn btn btn--white popup-link auth btn-reset",onClick:()=>t("popup-registration"),children:n.btn})]}),r.jsx("ul",{className:"restream__marks",children:lj.map(i=>r.jsxs("li",{className:"restream__mark",children:[r.jsx(sj,{platform:i.id,size:44,color:"#fff"}),r.jsx("span",{children:i.label})]},i.id))})]})})})})},uj={en:{suptitle:r.jsxs(r.Fragment,{children:["1st camera free ",r.jsx("br",{})," (up to 1,000 views per month)"]}),h2:r.jsxs(r.Fragment,{children:["Our tariffs ",r.jsx("br",{})," for using the service"]}),postpayLabel:"Post-payment",postpayTitle:"Start streaming now. Pay later.",postpayText:"No upfront payment: use the service throughout the month and receive an invoice at the end based on actual views. Or activate an annual subscription and forget about view-based charges entirely.",thViews:"Views per month",thPrice:"Price",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( First Camera )",r.jsx("br",{})," 0 - 100 ( Each additional camera )"]}),free:"Free",price5:"5 Euro",price20:"20 Euro",price100:"100 Euro",conditions:"Conditions",p1:"The price is indicated for a monthly subscription for each camera.",p2:"We operate on a post-payment system: on the last day of the month, we calculate the views and send an invoice via email.",p3:"If payment is not made within 20 days, the broadcast will be blocked.",p4:"The first camera is free for up to 1,000 views per month, for others â up to 100.",p
675:"A view is counted when our HTML player, which provides live streaming, is launched. Views are not counted only if the broadcast is turned off.",p6:"Payment can be made via bank card or company invoice.",p7:"Up to 100 views per month are free (except RTMP Push).",extrasTitle:"Additional services",extrasIntro:"Enable the options you need separately for each camera.",extras:[{title:"Hide the logo",price:"20 Euro",period:"per month / camera",text:"Remove the RTSP.ME logo from the player for a fully branded viewing experience."},{title:"H.265 support",price:"20 Euro",period:"per month / camera",text:"Support is enabled automatically when we detect that the camera is streaming with the H.265 (HEVC) codec."},{title:"Annual subscription",price:"180 Euro",period:"per year / camera",text:"Includes unlimited views, H.265 support, and logo hiding with no additional view charges.",badge:"Best value"}]},ru:{suptitle:r.jsxs(r.Fragment,{children:["1-Ñ ÐºÐ°Ð¼ÐµÑа беÑплаÑно ",r.jsx("br",{})," (до 1 000 пÑоÑмоÑÑов в меÑÑÑ)"]}),h2:r.jsxs(r.Fragment,{children:["ÐаÑи ТаÑиÑÑ ",r.jsx("br",{})," на иÑполÑзование ÑеÑвиÑа"]}),postpayLabel:"ÐоÑÑоплаÑа",postpayTitle:"ÐапÑÑкайÑе ÑейÑÐ°Ñ â плаÑиÑе поÑом",postpayText:"Ðикакой пÑедоплаÑÑ: полÑзÑйÑеÑÑ ÑеÑвиÑом веÑÑ Ð¼ÐµÑÑÑ, а в конÑе полÑÑиÑе ÑÑÐµÑ ÑолÑко за ÑакÑиÑеÑкие пÑоÑмоÑÑÑ. Ðли подклÑÑиÑе годовÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÐºÑ Ð¸ вообÑе не пеÑеживайÑе о ÑаÑÑеÑаÑ
и оплаÑе за пÑоÑмоÑÑÑ.",thViews:"ÐÑоÑмоÑÑÑ Ð² меÑÑÑ",thPrice:"Цена за камеÑÑ",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( ÐеÑÐ²Ð°Ñ ÐºÐ°Ð¼ÐµÑа )",r.jsx("br",{})," 0 - 100 ( ÐÐ°Ð¶Ð´Ð°Ñ ÑледÑÑÑÐ°Ñ ÐºÐ°Ð¼ÐµÑа )"]}),free:"ÐеÑплаÑно",price5:"360 ÑÑб",price20:"1 200 ÑÑб",price100:"9 600 ÑÑб",conditions:"УÑловиÑ",p1:"СÑоимоÑÑÑ Ñказана за ежемеÑÑÑнÑÑ Ð¿Ð¾Ð´Ð¿Ð¸ÑÐºÑ Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ камеÑÑ.",p2:"ÐÑ ÑабоÑаем по ÑиÑÑеме поÑÑоплаÑÑ: в поÑледний Ð´ÐµÐ½Ñ Ð¼ÐµÑÑÑа Ð¼Ñ Ð¿Ð¾Ð´ÑÑиÑÑваем Ð¿Ð¾ÐºÐ°Ð·Ñ Ð¸ вÑÑÑавлÑем ÑÑÐµÑ Ð½Ð° email.",p3:"ÐÑли оплаÑа не бÑÐ´ÐµÑ Ð¿Ñоизведена в ÑеÑение 20 дней, ÑÑанÑлÑÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñована.",p4:"ÐеÑÐ²Ð°Ñ ÐºÐ°Ð¼ÐµÑа беÑплаÑна до 1 000 пÑоÑмоÑÑов в меÑÑÑ, Ð´Ð»Ñ Ð¾ÑÑалÑнÑÑ
â до 100.",p5:"ÐÑоÑмоÑÑом ÑÑиÑаеÑÑÑ Ð·Ð°Ð¿ÑÑк наÑего HTML-плееÑа, коÑоÑÑй обеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð¾Ð½Ð»Ð°Ð¹Ð½-ÑÑанÑлÑÑиÑ. ÐÐ¾ÐºÐ°Ð·Ñ Ð½Ðµ ÑÑиÑÑваÑÑÑÑ ÑолÑко в ÑлÑÑае, еÑли ÑÑанÑлÑÑÐ¸Ñ Ð²ÑклÑÑена в лиÑном кабинеÑе rtsp.ru.",p6:"ÐплаÑиÑÑ Ð¼Ð¾Ð¶Ð½Ð¾ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð±Ð°Ð½ÐºÐ¾Ð²Ñкой каÑÑÑ Ð¸Ð»Ð¸ по ÑÑеÑÑ Ð´Ð»Ñ Ð¾ÑганизаÑий.",p7:"Ðо 100 показов в меÑÑÑ â беÑплаÑно (кÑоме RTMP Push).",extrasTitle:"ÐополниÑелÑнÑе ÑÑлÑги",extrasIntro:"ÐодклÑÑайÑе нÑжнÑе возможноÑÑи оÑделÑно Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð¹ камеÑÑ.",extras:[{title:"СкÑÑÑие логоÑипа",price:"1 200 â½",period:"в меÑÑÑ / камеÑа",text:"УбеÑиÑе логоÑип RTSP.ME из плееÑа, ÑÑÐ¾Ð±Ñ ÑÑанÑлÑÑÐ¸Ñ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ ÑооÑвеÑÑÑвовала ваÑÐµÐ¼Ñ Ð±ÑендÑ."},{title:"ÐоддеÑжка H.265",price:"1 200 â½",period:"в меÑÑÑ / камеÑа",text:"ÐоддеÑжка акÑивиÑÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки, когда Ð¼Ñ Ð¾Ð¿ÑеделÑем, ÑÑо камеÑа пеÑÐµÐ´Ð°ÐµÑ Ð¿Ð¾Ñок в ÑоÑмаÑе H.265 (HEVC)."},{title:"ÐÐ¾Ð´Ð¾Ð²Ð°Ñ Ð¿Ð¾Ð´Ð¿Ð¸Ñка",price:"9 600 â½",period:"в год / камеÑа",text:"ÐклÑÑÐ°ÐµÑ Ð±ÐµÐ·Ð»Ð¸Ð¼Ð¸ÑнÑе пÑоÑмоÑÑÑ, поддеÑÐ¶ÐºÑ H.265 и ÑкÑÑÑие логоÑипа без Ð´Ð¾Ð¿Ð»Ð°Ñ Ð·Ð° показÑ.",badge:"ÐÑгоднÑй вÑбоÑ"}]},de:{suptitle:r.jsxs(r.Fragment,{children:["1. Kamera kostenlos ",r.jsx("br",{})," (bis zu 1.000 Aufrufe pro Monat)"]}),h2:r.jsxs(r.Fragment,{children:["Unsere Tarife ",r.jsx("br",{})," für die Nutzung des Service"]}),postpayLabel:"Nachträgliche Zahlung",postpayTitle:"Jetzt streamen. Später bezahlen.",postpayText:"Keine Vorauszahlung: Nutzen Sie den Service den ganzen Monat und erhalten Sie am Ende eine Rechnung nach den tatsächlichen Aufrufen. Oder aktivieren Sie ein Jahresabonnement und vergessen Sie die aufrufbasierte Abrechnung vollständig.",thViews:"Aufrufe pro Monat",thPrice:"Preis",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( Erste Kamera )",r.jsx("br",{})," 0 - 100 ( Jede zusätzliche Kamera )"]}),free:"Kostenlos",price5:"5 Euro",price20:"20 Euro",price100:"100 Euro",conditions:"Bedingungen",p1:"Die angegebenen Preise gelten pro Monat und pro Kamera.",p2:"Wir arbeiten mit einer nachträglichen Abrechnung: Am letzten Tag des Monats berechnen wir die Aufrufe und senden eine Rechnung per E-Mail.",p3:"Bei Nichtzahlung innerhalb von 20 Tagen wird der Stream deaktiviert.",p4:"Die erste Kamera ist bis zu 1.000 Aufrufe pro Monat kostenlos, für weitere Kameras â bis zu 100 Aufrufe.",p5:"Ein Aufruf wird gezählt, wenn unser HTML-Player zum Live-Streaming gestartet wird. Aufrufe werden nicht gezählt, wenn die Ãbertragung ausgeschaltet ist.",p6:"Die Bezahlung kann per Kreditkarte oder Firmenrechnung erfolgen.",p7:"Bis zu 100 Aufrufe pro Monat sind kostenlos (auÃer RTMP Push).",extrasTitle:"Zusätzliche Leistungen",extrasIntro:"Aktivieren Sie die gewünschten Optionen für jede Kamera einzeln.",extras:[{title:"Logo ausblenden",price:"20 Euro",period:"pro Monat / Kamera",text:"Entfernen Sie das RTSP.ME-Logo aus dem Player für einen vollständig gebrandeten Auftritt."},{title:"H.265-Unterstützung",price:"20 Euro",period:"pro Monat / Kamera",text:"Die Unterstützung wird automatisch aktiviert, sobald wir erkennen, dass die Kamera mit dem Codec H.265 (HEVC) streamt."},{title:"Jahresabonnement",price:"180 Euro",period:"pro Jahr / Kamera",text:"Enthält unbegrenzte Aufrufe, H.265-Unterstützung und das Ausblenden des Logos ohne zusätzliche Aufrufkosten.",badge:"Beste Wahl"}]},pr:{suptitle:r.jsxs(r.Fragment,{children:["1ª câmera grátis ",r.jsx("br",{})," (até 1.000 visualizações mensais)"]}),h2:r.jsxs(r.Fragment,{children:["Nossas tarifas ",r.jsx("br",{})," para o uso do serviço"]}),postpayLabel:"Pós-pagamento",postpayTitle:"Comece agora. Pague depois.",postpayText:"Sem pagamento antecipado: use o serviço durante todo o mês e receba no final uma fatura baseada n
67as visualizações reais. Ou ative uma assinatura anual e esqueça de vez as cobranças por visualizações.",thViews:"Visualizações mensais",thPrice:"Preço",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( Primeira câmera )",r.jsx("br",{})," 0 - 100 ( Cada câmera adicional )"]}),free:"Grátis",price5:"5 euros",price20:"20 euros",price100:"100 euros",conditions:"Condições",p1:"O preço é referente à assinatura mensal para cada câmera.",p2:"Trabalhamos com um sistema de pós-pagamento: no último dia do mês, contabilizamos as visualizações e enviamos a fatura por e-mail.",p3:"Se o pagamento não for efetuado em até 20 dias, a transmissão será bloqueada.",p4:"A primeira câmera é gratuita até 1.000 visualizações ao mês; para as demais â até 100.",p5:"Uma visualização é contabilizada quando nosso player HTML, que fornece a transmissão ao vivo, é iniciado. As visualizações não são contabilizadas somente se a transmissão estiver desativada.",p6:"O pagamento pode ser feito por cartão de crédito ou via fatura empresarial.",p7:"Até 100 visualizações por mês são gratuitas (exceto RTMP Push).",extrasTitle:"Serviços adicionais",extrasIntro:"Ative as opções necessárias separadamente para cada câmera.",extras:[{title:"Ocultar o logotipo",price:"20 euros",period:"por mês / câmera",text:"Remova o logotipo RTSP.ME do player para personalizar totalmente a transmissão."},{title:"Suporte a H.265",price:"20 euros",period:"por mês / câmera",text:"O suporte é ativado automaticamente quando detectamos que a câmera transmite com o codec H.265 (HEVC)."},{title:"Assinatura anual",price:"180 euros",period:"por ano / câmera",text:"Inclui visualizações ilimitadas, suporte a H.265 e ocultação do logotipo sem cobranças adicionais por visualizações.",badge:"Melhor escolha"}]},fr:{suptitle:r.jsxs(r.Fragment,{children:["1re caméra gratuite ",r.jsx("br",{})," (jusquâà 1 000 vues par mois)"]}),h2:r.jsxs(r.Fragment,{children:["Nos tarifs ",r.jsx("br",{})," pour lâutilisation du service"]}),postpayLabel:"Post-paiement",postpayTitle:"Diffusez maintenant. Payez plus tard.",postpayText:"Aucun paiement anticipé : utilisez le service tout le mois et recevez ensuite une facture basée sur les vues réelles. Ou activez un abonnement annuel et oubliez complètement la facturation liée aux vues.",thViews:"Vues par mois",thPrice:"Prix",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( Première caméra )",r.jsx("br",{})," 0 - 100 ( Chaque caméra supplémentaire )"]}),free:"Gratuit",price5:"5 euros",price20:"20 euros",price100:"100 euros",conditions:"Conditions",p1:"Le prix est indiqué pour un abonnement mensuel et pour chaque caméra.",p2:"Nous travaillons avec un système de post-paiement : le dernier jour du mois, nous comptons les vues et vous envoyons une facture par e-mail.",p3:"Si le paiement nâest pas effectué dans les 20 jours, la diffusion sera bloquée.",p4:"La première caméra est gratuite jusquâà 1 000 vues par mois, pour les autres â jusquâà 100.",p5:"Une vue est comptabilisée lorsque notre lecteur HTML, qui fournit la diffusion en direct, est lancé. Les vues ne sont pas comptabilisées uniquement si la diffusion est désactivée.",p6:"Le paiement peut être effectué par carte bancaire ou par facture entreprise.",p7:"Jusquâà 100 vues par mois sont gratuites (sauf RTMP Push).",extrasTitle:"Services supplémentaires",extrasIntro:"Activez les options souhaitées séparément pour chaque caméra.",extras:[{title:"Masquer le logo",price:"20 euros",period:"par mois / caméra",text:"Retirez le logo RTSP.ME du lecteur pour une diffusion entièrement à votre image."},{title:"Prise en charge H.265",price:"20 euros",period:"par mois / caméra",text:"La prise en charge est activée automatiquement dès que nous détectons que la caméra diffuse avec le codec H.265 (HEVC)."},{title:"Abonnement annuel",price:"180 euros",period:"par an / caméra",text:"Comprend les vues illimitées, la prise en charge H.265 et le masquage du logo, sans frais supplémentaires par vue.",badge:"Meilleur choix"}]},es:{suptitle:r.jsxs(r.Fragment,{children:["1ª cámara gratis ",r.jsx("br",{})," (hasta 1.000 visualizaciones al mes)"]}),h2:r.jsxs(r.Fragment,{children:["Nuestras tarifas ",r.jsx("br",{})," para utilizar el servicio"]}),postpayLabel:"Pospago",postpayTitle:"Empieza ahora. Paga después.",postpayText:"Sin pago por adelantado: utiliza el servicio durante todo el mes y recibe al final una factura basada en las visualizaciones reales. O activa una suscripción anual y olvÃdate por completo de los cargos por visualizaciones.",thViews:"Visualizaciones al mes",thPrice:"Precio",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( Primera cámara )",r.jsx("br",{})," 0 - 100 ( Cada cámara adicional )"]}),free:"Gratis",price5:"5 euros",price20:"20 euros",price100:"100 euros",conditions:"Condiciones",p1:"El precio indicado corresponde a la suscripción mensual por cada cámara.",p2:"Trabajamos con un sistema de pospago: el último dÃa del mes contamos las visualizaciones y enviamos la factura por correo electrónico.",p3:"Si el pago no se realiza en un plazo de 20 dÃas, la transmisión se bloqueará.",p4:"La primera cámara es gratis hasta 1,000 visualizaciones al mes, para las demás â hasta 100.",p
675:"Una visualización se cuenta cuando se inicia nuestro reproductor HTML, que proporciona la transmisión en vivo. Las visualizaciones no se contabilizan únicamente si la transmisión está desactivada.",p6:"El pago puede realizarse con tarjeta bancaria o factura empresarial.",p7:"Hasta 100 visualizaciones al mes son gratuitas (excepto RTMP Push).",extrasTitle:"Servicios adicionales",extrasIntro:"Activa las opciones que necesites por separado para cada cámara.",extras:[{title:"Ocultar el logotipo",price:"20 euros",period:"al mes / cámara",text:"Elimina el logotipo de RTSP.ME del reproductor para adaptar completamente la transmisión a tu marca."},{title:"Compatibilidad con H.265",price:"20 euros",period:"al mes / cámara",text:"La compatibilidad se activa automáticamente cuando detectamos que la cámara transmite con el códec H.265 (HEVC)."},{title:"Suscripción anual",price:"180 euros",period:"al año / cámara",text:"Incluye visualizaciones ilimitadas, H.265 y ocultación del logotipo sin cargos adicionales por visualizaciones.",badge:"Mejor opción"}]},it:{suptitle:r.jsxs(r.Fragment,{children:["1ª telecamera gratuita ",r.jsx("br",{})," (fino a 1.000 visualizzazioni al mese)"]}),h2:r.jsxs(r.Fragment,{children:["Le nostre tariffe ",r.jsx("br",{})," per lâutilizzo del servizio"]}),postpayLabel:"Pagamento posticipato",postpayTitle:"Inizia ora. Paga dopo.",postpayText:"Nessun pagamento anticipato: usa il servizio per tutto il mese e ricevi alla fine una fattura basata sulle visualizzazioni effettive. Oppure attiva un abbonamento annuale e dimentica del tutto i costi legati alle visualizzazioni.",thViews:"Visualizzazioni al mese",thPrice:"Prezzo",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( Prima telecamera )",r.jsx("br",{})," 0 - 100 ( Ogni telecamera aggiuntiva )"]}),free:"Gratuito",price5:"5 euro",price20:"20 euro",price100:"100 euro",conditions:"Condizioni",p1:"Il prezzo indicato si riferisce allâabbonamento mensile per ogni telecamera.",p2:"Lavoriamo con un sistema di post-pagamento: lâultimo giorno del mese conteggiamo le visualizzazioni e inviamo la fattura via e-mail.",p3:"Se il pagamento non viene effettuato entro 20 giorni, la trasmissione sarà bloccata.",p4:"La prima telecamera è gratuita fino a 1.000 visualizzazioni al mese, per le altre â fino a 100.",p5:"Una visualizzazione viene conteggiata quando si avvia il nostro lettore HTML che fornisce la diretta. Le visualizzazioni non vengono conteggiate solo se la trasmissione è disattivata.",p6:"Il pagamento può essere effettuato con carta di credito o tramite fattura aziendale.",p7:"Fino a 100 visualizzazioni al mese sono gratuite (eccetto RTMP Push).",extrasTitle:"Servizi aggiuntivi",extrasIntro:"Attiva le opzioni desiderate separatamente per ogni telecamera.",extras:[{title:"Nascondere il logo",price:"20 euro",period:"al mese / telecamera",text:"Rimuovi il logo RTSP.ME dal lettore per una trasmissione completamente personalizzata."},{title:"Supporto H.265",price:"20 euro",period:"al mese / telecamera",text:"Il supporto si attiva automaticamente quando rileviamo che la telecamera trasmette con il codec H.265 (HEVC)."},{title:"Abbonamento annuale",price:"180 euro",period:"allâanno / telecamera",text:"Include visualizzazioni illimitate, supporto H.265 e logo nascosto senza costi aggiuntivi per le visualizzazioni.",badge:"Scelta migliore"}]},tr:{suptitle:r.jsxs(r.Fragment,{children:["1. kamera ücretsiz ",r.jsx("br",{})," (ayda 1.000 görüntülemeye kadar)"]}),h2:r.jsxs(r.Fragment,{children:["Hizmet kullanımına iliÅkin ",r.jsx("br",{})," tarifelerimiz"]}),postpayLabel:"Sonradan ödeme",postpayTitle:"Åimdi yayına baÅlayın. Sonra ödeyin.",postpayText:"Ãn ödeme yok: hizmeti ay boyunca kullanın ve ay sonunda yalnızca gerçekleÅen izlenmelere göre fatura alın. Ya da yıllık aboneliÄi etkinleÅtirerek izlenme bazlı ücretleri tamamen unutun.",thViews:"Aylık görüntüleme",thPrice:"Fiyat",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( İlk Kamera )",r.jsx("br",{})," 0 - 100 ( Her ek kamera )"]}),free:"Ãcretsiz",price5:"5 Euro",price20:"20 Euro",price100:"100 Euro",conditions:"KoÅullar",p1:"Belirtilen fiyat, her kamera için aylık abonelik bedelidir.",p2:"Yayın süresince pos-ödeme sistemiyle çalıÅıyoruz: Ayın son günü, toplam görüntülemeyi hesaplayıp faturayı e-posta yoluyla iletiyoruz.",p3:"Ãdeme 20 gün içinde yapılmadıÄında, yayın engellenir.",p4:"İlk kamera, ayda 1.000 görüntülemeye kadar ücretsizdir, diÄerleri için â 100 görüntülemeye kadar.",p5:"Görüntüleme, canlı yayını saÄlayan HTML oynatıcımız baÅlatıldıÄında sayılır. Sadece yayın kapalıyken görüntüleme sayılmaz.",p6:"Ãdeme kredi kartı veya firma faturası aracılıÄıyla yapılabilir.",p7:"Ayda 100 görüntülemeye kadar ücretsizdir (RTMP Push hariç).",extrasTitle:"Ek hizmetler",extrasIntro:"İhtiyacınız olan seçenekleri her kamera için ayrı ayrı etkinleÅtirin.",extras:[{title:"Logoyu gizleme",price:"20 Euro",period:"aylık / kamera",text:"Yayını tamamen markanıza uyarlamak için RTSP.ME logosunu oynatıcıdan kaldırın."},{title:"H.265 desteÄi",price:"20 Euro",period:"aylık / kamera",text:"Kameranın H.265 (HEVC) codec bileÅeniyle yayın yaptıÄını algıladıÄımızda destek otomatik olarak etkinleÅtirilir."},{title:"Yıllık abonelik",price:"180 Euro",period:"yıllık / kamera",text:"Sınırsız izleme, H.265 desteÄi ve ek izleme ücreti olmadan logo gizlemeyi içerir.",badge:"En avantajlı"}]},zh:{suptitle:r.jsxs(r.Fragment,{children:["第ä¸å°æåæºå
è´¹ ",r.jsx("br",{})," (æ¯ææå¤ 1 000 次è§ç)"]}),h2:r.jsxs(r.Fragment,{children:["ä½¿ç¨æå¡ç ",r.jsx("br",{})," èµè´¹æ¹æ¡"]}),postpayLabel:"åä»è´¹",postpayTitle:"ç°å¨å¼å§ç´æï¼ä»¥åå仿¬¾ã",postpayText:"æ éé¢ä»æ¬¾ï¼æ´æä½¿ç¨æå¡ï¼æåºä»
æå®é
è§çæ¬¡æ°æ¶å°è´¦åãä½ ä¹å¯ä»¥å¼é年度订é
ï¼å®å
¨æ éåæ
å¿æè§ç次æ°è®¡è´¹ã",thViews:"æ¯æè§ç次æ°",thPrice:"ä»·æ ¼",freeViews:r.jsxs(r.Fragment,{children:["0 - 1 000 ( 第ä¸å°æåæº )",r.jsx("br",{})," 0 - 100 ( æ¯ä¸ªé¢å¤çæå头 )"]}),free:"å
è´¹",price5:"5欧å
",price20:"20欧å
",price100:"100欧å
",conditions:"ä½¿ç¨æ¡æ¬¾",p1:"æ¤ä»·æ ¼ä¸ºæ¯è·¯æåæºçæåº¦è®¢é
è´¹ã",p2:"æä»¬éç¨åä»è´¹æ¨¡å¼ï¼å¨æ¯ä¸ªæçæåä¸å¤©ç»è®¡è§ç次æ°ï¼ç¶åç»ä½ åéè´¦åã",p3:"è¥å¨20天å
æªä»æ¬¾ï¼åç´æå°
67被æåã",p4:"第ä¸è·¯æåæºå
è´¹ï¼æ¯æè§ç次æ°ä¸é为1000ã对äºå
¶ä»æåæºï¼æè§çä¸é为100次ã",p5:"彿们çHTMLææ¾å¨ï¼æä¾å®æ¶ç´æï¼å¼å§ææ¾æ¶ï¼å³ä¼è®¡ä¸ºä¸æ¬¡è§çãå¦æç´æå·²å
³éï¼åä¸ä¼è®¡è´¹ã",p6:"ä½ å¯ä»¥ä½¿ç¨é¶è¡å¡æå¯¹å
¬è´¦æ·è½¬è´¦è¿è¡æ¯ä»ã",p7:"æ¯ææå¤ 100 次è§çå
è´¹ï¼RTMP Push é¤å¤ï¼ã",extrasTitle:"éå æå¡",extrasIntro:"å¯ä»¥ä¸ºæ¯å°æåæºåç¬å¯ç¨æéåè½ã",extras:[{title:"éèæ å¿",price:"20欧å
",period:"æ¯æ / æ¯å°æåæº",text:"仿æ¾å¨ä¸ç§»é¤RTSP.MEæ å¿ï¼è®©ç´æå®æ´åç°ä½ çåçã"},{title:"æ¯æH.265",price:"20欧å
",period:"æ¯æ / æ¯å°æåæº",text:"å½æä»¬æ£æµå°æåæºä½¿ç¨H.265ï¼HEVCï¼ç¼ç ä¼ è¾æ¶ï¼æ¯æåè½ä¼èªå¨å¯ç¨ã"},{title:"年度订é
",price:"180欧å
",period:"æ¯å¹´ / æ¯å°æåæº",text:"å
å«ä¸éè§ç次æ°ãH.265æ¯æåéèæ å¿ï¼è®¢é
æå
ä¸åæ¶åè§çè´¹ç¨ã",badge:"æè¶
å¼"}]}},cj=()=>{const{lang:e}=V(),t=uj[e];return r.jsx("section",{className:"tariffs section",id:"tariffs",children:r.jsxs("div",{className:"container",children:[r.jsx("div",{className:"tariffs__top top",children:r.jsx("h2",{className:"tariffs__h2 h2 anim",children:t.h2})}),r.jsxs("div",{className:"tariffs-postpay",children:[r.jsx("span",{className:"tariffs-postpay__label",children:t.postpayLabel}),r.jsx("h3",{className:"tariffs-postpay__title",children:t.postpayTitle}),r.jsx("p",{className:"tariffs-postpay__text",children:t.postpayText})]}),r.jsxs("div",{className:"tariffs__inner",children:[r.jsx("table",{className:"tariffs__table",children:r.jsxs("tbody",{children:[r.jsxs("tr",{className:"tariffs__tr",children:[r.jsx("td",{className:"tariffs__td h3",children:t.thViews}),r.jsx("td",{className:"tariffs__td h3",children:t.thPrice})]}),r.jsxs("tr",{className:"tariffs__tr",children:[r.jsx("td",{className:"tariffs__td text",children:"100 - 10 000"}),r.jsx("td",{className:"tariffs__td text",children:t.price5})]}),r.jsxs("tr",{className:"tariffs__tr",children:[r.jsx("td",{className:"tariffs__td text",children:"10 000 - 100 000"}),r.jsx("td",{className:"tariffs__td text",children:t.price20})]}),r.jsxs("tr",{className:"tariffs__tr",children:[r.jsx("td",{className:"tariffs__td text",children:"100 000 - 1 000 000"}),r.jsx("td",{className:"tariffs__td text",children:t.price100})]})]})}),r.jsxs("div",{className:"tariffs__content",children:[r.jsx("h3",{className:"tariffs__h3 h3 anim",children:t.conditions}),r.jsxs("div",{className:"tariffs__text text",children:[r.jsx("p",{children:t.p1}),r.jsx("p",{children:t.p2}),r.jsx("p",{children:t.p3}),r.jsx("p",{children:t.p7}),r.jsx("p",{children:t.p5}),r.jsx("p",{children:t.p6})]})]})]}),r.jsxs("div",{className:"tariffs-extras",children:[r.jsxs("div",{className:"tariffs-extras__intro",children:[r.jsx("span",{className:"tariffs-extras__eyebrow",children:"RTSP.ME / OPTIONS"}),r.jsx("h3",{className:"tariffs-extras__title h3 anim",children:t.extrasTitle}),r.jsx("p",{className:"tariffs-extras__lead text",children:t.extrasIntro})]}),r.jsx("div",{className:"tariffs-extras__list",children:t.extras.map((n,a)=>r.jsxs("article",{className:`tariffs-extras__item${"badge"in n?" tariffs-extras__item--featured":""}`,children:[r.jsxs("div",{className:"tariffs-extras__meta",children:[r.jsx("span",{className:"tariffs-extras__number",children:String(a+1).padStart(2,"0")}),"badge"in n&&r.jsx("span",{className:"tariffs-extras__badge",children:n.badge})]}),r.jsx("h4",{className:"tariffs-extras__item-title",children:n.title}),r.jsx("div",{className:"tariffs-extras__price",children:n.price}),r.jsx("div",{className:"tariffs-extras__period",children:n.period}),r.jsx("p",{className:"tariffs-extras__description",children:n.text})]},n.title))})]})]})})},dj={en:{suptitle:"HOW?",h2:r.jsxs(r.Fragment,{children:["HOW TO WATCH ",r.jsx("br",{})," on your web page"]}),item1h3:r.jsxs(r.Fragment,{children:["Add BROADCASTING ",r.jsx("br",{})," to your online platform"]}),item1p1:"Online broadcasting on a website helps attract new visitors and strengthen the loyalty of existing clients.",item1p2:"After successfully creating an online stream, you will receive an HTML code for the video player",item1p3:"that you can add to your website.",item2h3:"Share links on social networks",item2text:"Send links to your video streams to friends and colleagues via messengers like Viber, WhatsApp, and Telegram to expand your audience and increase viewership.",item3h3
67:"Want more?",item3text:"Use access to our streams via API! This allows you to create your own monetization and access control system. Basic knowledge of PHP is required:",item3desc:"*If ID is absent, a list of all cameras will be displayed.",item3btn:"Example in PHP"},ru:{suptitle:"ÐÐÐ?",h2:r.jsxs(r.Fragment,{children:["ÐÐРСÐÐТРÐТЬ ",r.jsx("br",{})," на Ñвоей веб-ÑÑÑаниÑе"]}),item1h3:r.jsxs(r.Fragment,{children:["ÐобавÑÑе ТРÐÐСÐЯЦÐЮ ",r.jsx("br",{})," на ÑÐ²Ð¾Ñ Ð¸Ð½ÑеÑнеÑ-плаÑÑоÑмÑ"]}),item1p1:"Ðнлайн-веÑание на ÑайÑе Ð¿Ð¾Ð¼Ð¾Ð³Ð°ÐµÑ Ð¿ÑивлекаÑÑ Ð½Ð¾Ð²ÑÑ
поÑеÑиÑелей и ÑкÑеплÑÑÑ Ð»Ð¾ÑлÑноÑÑÑ ÑекÑÑиÑ
клиенÑов.",item1p2:"ÐоÑле ÑÑпеÑного ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð½Ð»Ð°Ð¹Ð½-ÑÑанÑлÑÑии Ð²Ñ Ð¿Ð¾Ð»ÑÑиÑе HTML-код видеоплееÑа",item1p3:"коÑоÑÑй ÑможеÑе добавиÑÑ Ð½Ð° Ð²Ð°Ñ web-ÑайÑ",item2h3:"ÐелиÑеÑÑ ÑÑÑлкой в ÑоÑиалÑнÑÑ
ÑеÑÑÑ
",item2text:"ÐÑпÑавлÑйÑе ÑÑÑлки на ваÑи видеопоÑоки дÑÑзÑÑм и коллегам ÑеÑез меÑÑенджеÑÑ, Ñакие как Viber, WhatsApp и Telegram, ÑÑÐ¾Ð±Ñ ÑвелиÑиÑÑ Ð°ÑдиÑоÑÐ¸Ñ Ð¸ повÑÑиÑÑ ÑиÑло пÑоÑмоÑÑов.",item3h3:"ХоÑиÑе болÑÑего?",item3text:"ÐÑполÑзÑйÑе доÑÑÑп к наÑим поÑокам ÑеÑез API ! ÐÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð²Ð°Ð¼ ÑоздаÑÑ ÑобÑÑвеннÑÑ ÑиÑÑÐµÐ¼Ñ Ð¼Ð¾Ð½ÐµÑизаÑии и огÑаниÑÐµÐ½Ð¸Ñ Ð´Ð¾ÑÑÑпа. ÐÐ»Ñ ÑабоÑÑ Ð¿Ð¾ÑÑебÑеÑÑÑ Ð±Ð°Ð·Ð¾Ð²Ð¾Ðµ знание PHP:",item3desc:"*If ID is absent, a list of all cameras will be displayed.",item3btn:"Example in PHP"},de:{suptitle:"WIE?",h2:r.jsxs(r.Fragment,{children:["WIE ",r.jsx("br",{})," auf Ihrer Website ansehen"]}),item1h3:r.jsxs(r.Fragment,{children:["Fügen Sie den ",r.jsx("br",{})," STREAM zu Ihrer Website hinzu"]}),item1p1:"Online-Streaming auf einer Website hilft, neue Besucher anzulocken und die Loyalität bestehender Kunden zu erhöhen.",item1p2:"Nachdem Sie erfolgreich einen Online-Stream erstellt haben, erhalten Sie einen HTML-Code für den Videoplayer",item1p3:"Diesen Code können Sie auf Ihrer Website einbetten.",item2h3:"Links in sozialen Netzwerken teilen",item2text:"Senden Sie die Links zu Ihren Videostreams an Freunde und Kollegen über Messenger wie Viber, WhatsApp oder Telegram, um Ihr Publikum zu erweitern und die Zuschauerzahlen zu erhöhen.",item3h3:"Noch mehr Möglichkeiten?",item3text:"Nutzen Sie den Zugriff auf unsere Streams über eine API! Damit können Sie Ihr eigenes Monetarisierungs- und Zugriffskontrollsystem entwickeln. Grundkenntnisse in PHP sind erforderlich:",item3desc:"*Wenn kein ID-Parameter übergeben wird, wird eine Liste aller Kameras zurückgegeben.",item3btn:"PHP-Beispiel"},pr:{suptitle:"COMO?",h2:r.jsxs(r.Fragment,{children:["COMO ASSISTIR ",r.jsx("br",{})," em sua página web"]}),item1h3:r.jsxs(r.Fragment,{children:["Adicionar a TRANSMISSÃO ",r.jsx("br",{})," à sua plataforma online"]}),item1p1:"A transmissão ao vivo em um site ajuda a atrair novos visitantes e a fortalecer a fidelidade dos clientes existentes.",item1p2:"Após criar com sucesso a sua transmissão ao vivo, você receberá um código HTML para o player de vÃdeo",item1p3:"que você poderá adicionar ao seu site.",item2h3:"Compartilhe links em redes sociais",item2text:"Envie os links das suas transmissões de vÃdeo para amigos e colegas via aplicativos como Viber, WhatsApp ou Telegram para expandir seu público e aumentar as visualizações.",item3h3:"Quer mais?",item3text:"Use nosso acesso à s transmissões via API! Isso permite criar seu próprio sistema de monetização e controle de acesso. São necessários conhecimentos básicos em PHP:",item3desc:"*Se o ID estiver ausente, será exibida a lista de todas as câmeras.",item3btn:"Exemplo em PHP"},fr:{suptitle:"COMMENT ?",h2:r.jsxs(r.Fragment,{children:["COMMENT REGARDER ",r.jsx("br",{})," sur votre page web"]}),item1h3:r.jsxs(r.Fragment,{children:["Ajouter la DIFFUSION ",r.jsx("br",{})," à votre plateforme en ligne"]}),item1p1:"La diffusion en direct sur un site web permet dâattirer de nouveaux visiteurs et de renforcer la fidélité de vos clients existants.",item1p2:"Après avoir créé avec succès votre flux en direct, vous recevrez un code HTML pour le lecteur vidéo",item1p3:"que vous pourrez ajouter à votre site.",item2h3:"Partagez des liens sur les réseaux sociaux",item2text:"Partagez les liens de vos diffusions vidéo avec vos amis et collègues via des messageries comme Viber, WhatsApp ou Telegram pour élargir votre audience et augmenter le nombre de vues.",item3h3
67:"Vous en voulez plus ?",item3text:"Utilisez lâaccès à nos flux via lâAPI ! Cela vous permettra de créer votre propre système de monétisation et de contrôle dâaccès. Vous aurez besoin de connaissances de base en PHP :",item3desc:"*Si lâID est absent, la liste de toutes les caméras sera affichée.",item3btn:"Exemple en PHP"},es:{suptitle:"¿CÃMO?",h2:r.jsxs(r.Fragment,{children:["CÃMO VER ",r.jsx("br",{})," en tu página web"]}),item1h3:r.jsxs(r.Fragment,{children:["Añade la TRANSMISIÃN ",r.jsx("br",{})," a tu plataforma en lÃnea"]}),item1p1:"La transmisión en vivo en un sitio web te ayuda a atraer nuevos visitantes y fortalecer la lealtad de tus clientes actuales.",item1p2:"Tras crear tu transmisión en vivo con éxito, recibirás un código HTML para el reproductor de video",item1p3:"que podrás agregar en tu sitio.",item2h3:"Comparte enlaces en redes sociales",item2text:"EnvÃa los enlaces de tus transmisiones de video a amigos y colegas mediante aplicaciones como Viber, WhatsApp o Telegram para ampliar tu audiencia y aumentar las visualizaciones.",item3h3:"¿Quieres más?",item3text:"¡Utiliza nuestro acceso a las transmisiones mediante la API! Esto te permitirá crear tu propio sistema de monetización y control de acceso. Se requieren conocimientos básicos de PHP:",item3desc:"*Si falta la ID, se mostrará la lista de todas las cámaras.",item3btn:"Ejemplo en PHP"},it:{suptitle:"COME?",h2:r.jsxs(r.Fragment,{children:["COME GUARDARE ",r.jsx("br",{})," sulla tua pagina web"]}),item1h3:r.jsxs(r.Fragment,{children:["Aggiungi la TRASMISSIONE ",r.jsx("br",{})," alla tua piattaforma online"]}),item1p1:"La trasmissione in diretta su un sito aiuta ad attirare nuovi visitatori e a rafforzare la fidelizzazione dei clienti già esistenti.",item1p2:"Dopo aver creato con successo la tua trasmissione in diretta, riceverai un codice HTML per il lettore video",item1p3:"che puoi aggiungere al tuo sito.",item2h3:"Condividi i link sui social network",item2text:"Invia i link delle tue trasmissioni video ad amici e colleghi tramite applicazioni come Viber, WhatsApp o Telegram per ampliare il tuo pubblico e aumentare le visualizzazioni.",item3h3:"Vuoi di più?",item3text:"Utilizza il nostro accesso alle trasmissioni tramite API! Potrai così creare il tuo sistema di monetizzazione e controllo degli accessi. Sono richieste conoscenze di base in PHP:",item3desc:"*Se lâID non è specificato, verrà mostrato lâelenco di tutte le telecamere.",item3btn:"Esempio in PHP"},tr:{suptitle:"NASIL?",h2:r.jsxs(r.Fragment,{children:["SİTENİZDE ",r.jsx("br",{})," NASIL İZLENİR"]}),item1h3:r.jsxs(r.Fragment,{children:["ÃEVRİMİÃİ PLATFORMUNUZA ",r.jsx("br",{})," YAYIN EKLEYİN"]}),item1p1:"Bir web sitesine canlı yayın eklemek, yeni ziyaretçileri çekmenin ve mevcut müÅterilerin sadakatini artırmanın mükemmel bir yoludur.",item1p2:"BaÅarılı bir canlı yayın oluÅturduktan sonra, video oynatıcıya ait HTML kodunu alırsınız",item1p3:"ve bu kodu web sitenize ekleyebilirsiniz.",item2h3:"Sosyal aÄlarda baÄlantılarınızı paylaÅın",item2text:"Video yayınlarınızın baÄlantılarını arkadaÅlarınızla ve meslektaÅlarınızla Viber, WhatsApp veya Telegram gibi uygulamalar üzerinden paylaÅarak kitlenizi geniÅletebilir ve görüntülemelerinizi artırabilirsiniz.",item3h3:"Daha fazlasını ister misiniz?",item3text:"API üzerinden yayın eriÅimimizi kullanın! Böylece kendi ücretlendirme ve eriÅim kontrol sisteminizi geliÅtirebilirsiniz. Temel PHP bilgisi gereklidir:",item3desc:"*ID belirtilmezse, tüm kameraların listesi gösterilir.",item3btn:"PHP ÃrneÄi"},zh:{suptitle:"æä¹åï¼",h2:r.jsxs(r.Fragment,{children:["å¦ä½å¨ ",r.jsx("br",{})," ä½ çç½ç«ä¸è§ç"]}),item1h3:r.jsxs(r.Fragment,{children:["å¨ä½ çç½ç«ä¸æ·»å ",r.jsx("br",{})," ç´æåè½"]}),item1p1:"å¨ç½ç«ä¸è¿è¡å®æ¶ç´æï¼è½å¸å¼æ´å¤è®¿å®¢ï¼å¹¶å¢å¼ºç°æå®¢æ·çå¿ è¯åº¦ã",item1p2:"å½ä½ æååå»ºç´æåï¼ä¼çæHTML代ç ä¾ä½ åµå
¥å°èªå·±çç½ç«ï¼HTMLææ¾å¨ï¼",item1p3:"è¿æ ·ä½ å°±å¯ä»¥æç´æçªå£åµå
¥å¨ç½ç«çä»»ä½é¡µé¢ä¸ã",item2h3:"å¨ç¤¾äº¤ç½ç»ä¸åäº«é¾æ¥",item2text:"éè¿å¾®ä¿¡ãWhatsAppæTelegramç峿¶éè®¯è½¯ä»¶ï¼æä½ çç´æé¾æ¥åäº«ç»æåãåäºï¼ å¸å¼æ´å¤è§ä¼å¹¶æåè§ç次æ°ã",item3h3
67:"è¿æ³è¦æ´å¤ï¼",item3text:"ä½¿ç¨æä»¬çAPI访é®ä½ çç´æï¼è¿æ ·ä½ å°±å¯ä»¥æå»ºèªå·±ç æ¶è´¹ç³»ç»æè®¿é®æ§å¶ç³»ç»ãéè¦å
·å¤åºæ¬çPHPç¥è¯ï¼",item3desc:"*å¦ææ²¡ææä¾IDï¼åä¼è¿åæææåæºå表ã",item3btn:"PHP示ä¾"}},td={ru:"https://rtsp.ru/embed/9rSrnrEz/",other:"https://rtsp.me/embed/474NtQT5/"},mj=()=>{const{lang:e}=V(),t=dj[e],n=e==="ru"?td.ru:td.other;return r.jsx("section",{className:"broadcast section",id:"broadcast",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"broadcast__top top",children:[r.jsx("span",{className:"broadcast__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"broadcast__h2 h2 anim",children:t.h2})]}),r.jsxs("ul",{className:"broadcast__list list-reset",children:[r.jsxs("li",{className:"broadcast__item",children:[r.jsxs("div",{className:"broadcast__content",children:[r.jsx("h3",{className:"broadcast__h3 h3 anim show",children:t.item1h3}),r.jsxs("p",{className:"broadcast__text text",children:[t.item1p1," ",r.jsx("br",{}),r.jsx("br",{})," ",t.item1p2," ",r.jsx("br",{})," ",r.jsx("br",{}),r.jsx("code",{children:`<iframe src="${n}" style="width:100%; aspect-ratio:4/3; border:0;" allow="fullscreen; autoplay" allowfullscreen></iframe>`}),r.jsx("br",{})," ",r.jsx("br",{})," ",t.item1p3]})]}),r.jsxs("div",{className:"broadcast__img anim-scale",children:[r.jsx("iframe",{width:"640",height:"480",src:n,frameBorder:"0",allowFullScreen:!0,title:"broadcast"}),r.jsxs("p",{style:{textAlign:"right"},children:["powered by"," ",r.jsx("a",{href:"https://rtsp.me",title:"RTSP.ME - Free website RTSP video steaming service",target:"_blank",children:"rtsp.me"})]})]})]}),r.jsxs("li",{className:"broadcast__item",children:[r.jsxs("div",{className:"broadcast__content",children:[r.jsx("h3",{className:"broadcast__h3 h3 anim",children:t.item2h3}),r.jsx("p",{className:"broadcast__text text",children:t.item2text}),r.jsx("h4",{className:"broadcast__h4 h4 anim show",children:n})]}),r.jsx("div",{className:"broadcast__img anim-scale",children:r.jsx(le,{webp:"/landing/img/broadcast/02.webp",fallback:"/landing/img/broadcast/02.png",width:869,height:480,imgClassName:"img"})})]}),r.jsxs("li",{className:"broadcast__item",children:[r.jsxs("div",{className:"broadcast__content",children:[r.jsx("h3",{className:"broadcast__h3 h3 anim",children:t.item3h3}),r.jsx("p",{className:"broadcast__text text",children:t.item3text}),r.jsx("br",{}),r.jsxs("ol",{className:"broadcast__ol",children:[r.jsx("li",{className:"broadcast__li text",children:"Method: POST"}),r.jsx("li",{className:"broadcast__li text",children:"API url: https://rtsp.me/api/"}),r.jsx("li",{className:"broadcast__li text",children:"Params:"})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"email - current email"}),r.jsx("li",{className:"broadcast__li text",children:"password - current password"}),r.jsx("li",{className:"broadcast__li text",children:"id - Unique"}),r.jsx("li",{className:"broadcast__li text",children:"broadcast ID"})]}),r.jsx("p",{className:"broadcast__desc text",children:t.item3desc}),r.jsx("a",{className:"broadcast__btn btn btn--red",href:"https://github.com/infoqrakz/rtsp.me/blob/master/api_PrivateCams_php_example",children:t.item3btn})]}),r.jsx("div",{className:"broadcast__img anim-scale",children:r.jsx(le,{webp:"/landing/img/broadcast/03.webp",fallback:"/landing/img/broadcast/03.png",width:869,height:480,imgClassName:"img"})})]})]})]})})},pj={en:r.jsxs(r.Fragment,{children:["ANSWERS ",r.jsx("br",{})," TO FREQUENT QUESTIONS"]}),ru:r.jsxs(r.Fragment,{children:["ÐТÐÐТЫ ",r.jsx("br",{})," ÐРЧÐСТЫРÐÐÐÐ ÐСЫ"]}),de:r.jsxs(r.Fragment,{children:["ANTWORTEN ",r.jsx("br",{})," AUF HÃUFIG GESTELLTE FRAGEN"]}),pr:r.jsxs(r.Fragment,{children:["RESPOSTAS ",r.jsx("br",{})," A PERGUNTAS FREQUENTES"]}),fr:r.jsxs(r.Fragment,{children:["RÃPONSES ",r.jsx("br",{})," AUX QUESTIONS FRÃQUENTES"]}),es:r.jsxs(r.Fragment,{children:["RESPUESTAS ",r.jsx("br",{})," A PREGUNTAS FRECUENTES"]}),it:r.jsxs(r.Fragment,{children:["RISPOSTE ",r.jsx("br",{})," ALLE DOMANDE FREQUENTI"]}),tr:r.jsxs(r.Fragment,{children:["SIK SORULAN ",r.jsx("br",{})," SORULARA CEVAPLAR"]}
67),zh:r.jsxs(r.Fragment,{children:["常è§é®é¢ ",r.jsx("br",{})," åè§£ç"]})},rd=[{id:"faq-what_my_rtsp_link",q:{en:"How do I find my RTSP link?",ru:"Ðак ÑзнаÑÑ ÐºÐ°ÐºÐ°Ñ Ñ Ð¼ÐµÐ½Ñ RTSP-ÑÑÑлка?",de:"Wie finde ich meinen RTSP-Link?",pr:"Como encontro meu link RTSP?",fr:"Comment trouver mon lien RTSP ?",es:"¿Cómo encuentro mi enlace RTSP?",it:"Come trovo il mio link RTSP?",tr:"RTSP baÄlantımı nasıl bulurum?",zh:"å¦ä½è·åæçRTSP龿¥ï¼"},body:{en:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["You can find the RTSP link on the manufacturerâs website of your camera or request it from our technical support. ",r.jsx("br",{}),"Typically, a few standard parameters are changed in the example link: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠IP address"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Port"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Login"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Password"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Stream name"})]}),r.jsxs("p",{className:"faq__text text",children:["Simply replace your data in the example link.",r.jsx("br",{}),"Below are ready-made templates for popular IP camera manufacturers:",r.jsx("br",{}),r.jsx("br",{}),"Example: login - admin, password - pass, IP - 8.8.8.8, port â 554, stream 1 or main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["RTSP URLs for cameras from other manufacturers are available in the"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"guide"}),"."]})]}),ru:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["RTSP-ÑÑÑÐ»ÐºÑ Ð¼Ð¾Ð¶Ð½Ð¾ найÑи на ÑайÑе пÑоизводиÑÐµÐ»Ñ Ð²Ð°Ñей камеÑÑ Ð¸Ð»Ð¸ запÑоÑиÑÑ Ñ Ð½Ð°Ñей ÑеÑ
ниÑеÑкой поддеÑжки.",r.jsx("br",{}),"РпÑимеÑе ÑÑÑлки, как пÑавило, менÑÑÑÑÑ Ð½ÐµÑколÑко ÑиповÑÑ
паÑамеÑÑов: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠IP-адÑеÑ"}),r.jsx("li",{className:"broadcast__li text",children:"⢠ÐоÑÑ"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Ðогин"}),r.jsx("li",{className:"broadcast__li text",children:"⢠ÐаÑолÑ"}),r.jsx("li",{className:"broadcast__li text",children:"⢠ÐÐ¼Ñ Ð¿Ð¾Ñока"})]}),r.jsxs("p",{className:"faq__text text",children:["ÐÑоÑÑо подÑÑавÑÑе Ñвои даннÑе в пÑÐ¸Ð¼ÐµÑ ÑÑÑлки.",r.jsx("br",{}),"Ðиже Ð¼Ñ Ð¿Ñиводим гоÑовÑе ÑÐ°Ð±Ð»Ð¾Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ð¿ÑлÑÑнÑÑ
пÑоизводиÑелей IP-камеÑ:",r.jsx("br",{}),r.jsx("br",{}),"напÑимеÑ: login - admin, password - pass , ip - 8.8.8.8 , port â 554, поÑок 1 или main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["RTSP-ÑÑÑлки Ð´Ð»Ñ ÐºÐ°Ð¼ÐµÑ Ð´ÑÑгиÑ
пÑоизводиÑелей доÑÑÑÐ¿Ð½Ñ Ð²"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"ÑÑководÑÑве"}),"."]})]}),de:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["Sie können Ihren RTSP-Link in der Anleitung des Kamera-Herstellers finden oder unseren technischen Support kontaktieren. ",r.jsx("br",{}),"In der Regel werden bei einem Beispiel-Link nur wenige Standardparameter geändert: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠IP-Adresse"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Port"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Login"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Passwort"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Stream-Name"})]}),r.jsxs("p",{className:"faq__text text",children:["Ersetzen Sie Ihre Daten einfach im Beispiel-Link.",r.jsx("br",{}),"Unten finden Sie Vorlagen für gängige IP-Kamera-Hersteller:",r.jsx("br",{}),r.jsx("br",{}),"Beispiel: Login â admin, Passwort â pass, IP â 8.8.8.8, Port â 554, Stream 1 oder main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["RTSP-URLs für Kameras anderer Hersteller finden Sie in der"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"Anleitung"}),"."]})]}),pr:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["Você pode encontrar o link RTSP no site do fabricante da sua câmera ou solicitá-lo ao n
67osso suporte técnico."," ",r.jsx("br",{}),"Normalmente, em um link de exemplo, alguns parâmetros padrão são alterados: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Endereço IP"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Porta"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Usuário"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Senha"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Nome do fluxo"})]}),r.jsxs("p",{className:"faq__text text",children:["Basta substituir seus dados no link de exemplo.",r.jsx("br",{}),"A seguir, apresentamos modelos prontos para os principais fabricantes de câmeras IP:",r.jsx("br",{}),r.jsx("br",{}),"Exemplo: usuário - admin, senha - pass, IP - 8.8.8.8, porta â 554, fluxo 1 ou main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["Os URLs RTSP para câmeras de outros fabricantes estão disponÃveis no"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"guia"}),"."]})]}),fr:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["Vous pouvez trouver le lien RTSP sur le site du fabricant de votre caméra ou le demander à notre support technique. ",r.jsx("br",{}),"En général, quelques paramètres standards sont à adapter dans lâexemple de lien : ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Adresse IP"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Port"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Identifiant"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Mot de passe"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Nom du flux"})]}),r.jsxs("p",{className:"faq__text text",children:["Il vous suffit de remplacer vos informations dans le lien exemple.",r.jsx("br",{}),"Ci-dessous se trouvent des modèles prêts à lâemploi pour les principaux fabricants de caméras IP :",r.jsx("br",{}),r.jsx("br",{}),"Exemple : identifiant - admin, mot de passe - pass, IP - 8.8.8.8, port â 554, flux 1 ou main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["Les URL RTSP des caméras dâautres fabricants sont disponibles dans le"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"guide"}),"."]})]}),es:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["Puedes encontrar el enlace RTSP en el sitio web del fabricante de tu cámara o solicitarlo a nuestro soporte técnico. ",r.jsx("br",{}),"Por lo general, en el enlace de ejemplo solo cambian algunos parámetros estándar: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Dirección IP"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Puerto"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Usuario"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Contraseña"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Nombre del flujo"})]}),r.jsxs("p",{className:"faq__text text",children:["Simplemente reemplaza tus datos en el enlace de ejemplo.",r.jsx("br",{}),"A continuación, presentamos plantillas listas para los principales fabricantes de cámaras IP:",r.jsx("br",{}),r.jsx("br",{}),"Ejemplo: usuario - admin, contraseña - pass, IP - 8.8.8.8, puerto â 554, flujo 1 o main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["Las URL RTSP para cámaras de otros fabricantes están disponibles en la"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"guÃa"}),"."]})]}),it:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["Puoi trovare il link RTSP sul sito del produttore della tua telecamera oppure richiederlo al nostro
67supporto tecnico. ",r.jsx("br",{}),"In genere, nel link di esempio occorre modificare solo alcuni parametri standard: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Indirizzo IP"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Porta"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Utente"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Password"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Nome dello stream"})]}),r.jsxs("p",{className:"faq__text text",children:["Ti basta sostituire i tuoi dati nellâesempio di link.",r.jsx("br",{}),"Di seguito, alcuni modelli pronti per i principali produttori di telecamere IP:",r.jsx("br",{}),r.jsx("br",{}),"Esempio: utente - admin, password - pass, IP - 8.8.8.8, porta â 554, stream 1 o main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["Gli URL RTSP per le telecamere di altri produttori sono disponibili nella"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"guida"}),"."]})]}),tr:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["RTSP baÄlantısını, kameranızın üretici sitesinden veya teknik destek ekibimizden öÄrenebilirsiniz. ",r.jsx("br",{}),"Genellikle örnek baÄlantıda yalnızca birkaç standart parametre deÄiÅtirilir: ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠IP adresi"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Port"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Kullanıcı adı"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Parola"}),r.jsx("li",{className:"broadcast__li text",children:"⢠Yayın adı (stream name)"})]}),r.jsxs("p",{className:"faq__text text",children:["Kendi verilerinizi bu örnek baÄlantıdaki ilgili kısımlara yerleÅtirmeniz yeterlidir.",r.jsx("br",{}),"AÅaÄıda popüler IP kamera üreticileri için örnek baÄlantılar yer alıyor:",r.jsx("br",{}),r.jsx("br",{}),"Ãrnek: kullanıcı adı - admin, parola - pass, IP - 8.8.8.8, port â 554, yayın 1 veya main"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["DiÄer üreticilerin kameralarına ait RTSP URLâleri"," ",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"kılavuzda"})," bulunabilir."]})]}),zh:r.jsxs(r.Fragment,{children:[r.jsxs("p",{className:"faq__text text",children:["ä½ å¯ä»¥å¨æåæºç产ååå®ç½ä¸æ¾å°RTSP龿¥ï¼ä¹å¯ä»¥åæä»¬çææ¯æ¯æå¨è¯¢ã ",r.jsx("br",{}),"ä¸è¬æ¥è¯´ï¼åªéæ´æ¹é¾æ¥ä¸çä¸äºå¸¸ç¨åæ°ï¼ ",r.jsx("br",{})]}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠IPå°å"}),r.jsx("li",{className:"broadcast__li text",children:"⢠端å£"}),r.jsx("li",{className:"broadcast__li text",children:"â¢ ç¨æ·å"}),r.jsx("li",{className:"broadcast__li text",children:"⢠å¯ç "}),r.jsx("li",{className:"broadcast__li text",children:"â¢ ç´ææµåç§°"})]}),r.jsxs("p",{className:"faq__text text",children:["ä½ åªéå¨ç¤ºä¾é¾æ¥ä¸æ¿æ¢æèªå·±çä¿¡æ¯å³å¯ã",r.jsx("br",{}),"以ä¸ä¸ºå¸¸è§çIPæåæºåççRTSP龿¥ç¤ºä¾ï¼",r.jsx("br",{}),r.jsx("br",{}),"示ä¾ï¼ç¨æ·å - adminï¼å¯ç - passï¼IP - 8.8.8.8ï¼ç«¯å£ - 554ï¼
67ç´ææµ - 1æmain"]}),r.jsx("b",{children:"Hikvision "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/Streaming/Channels/101 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/Streaming/Channels/102"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsx("b",{children:"Dahua "}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("em",{children:["rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0 ",r.jsx("br",{}),"rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1"," "]}),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("p",{className:"faq__text text",children:["å
¶ä»å¶é åæåæºçRTSP URLå¯å¨",r.jsx("a",{href:"where-to-find-rtsp-url.html",children:"æå"}),"䏿¾å°ã"]})]})}},{id:"faq-what_my_static_ip",q:{en:"How do I find my static IP address?",ru:"Ðак ÑзнаÑÑ Ñвой ÑÑаÑиÑеÑкий IP-адÑеÑ?",de:"Wie finde ich meine statische IP-Adresse?",pr:"Como descubro meu endereço IP estático?",fr:"Comment trouver mon adresse IP statique ?",es:"¿Cómo encuentro mi dirección IP estática?",it:"Come trovo il mio indirizzo IP statico?",tr:"Sabit IP adresimi nasıl bulabilirim?",zh:"å¦ä½æ¥è¯¢æçåºå®IPå°åï¼"},body:{en:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"A static IP address is a permanent unique address assigned to a device in the internet. Example - 78.78.78.78."}),r.jsx("p",{className:"faq__text text",children:"It is required for remote access to devices such as IP cameras or recorders. You can obtain it from your ISP."})]}),de:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Eine statische IP-Adresse ist eine dauerhafte, eindeutige Adresse, die einem Gerät im Internet zugewiesen wird (z.B. 78.78.78.78)."}),r.jsx("p",{className:"faq__text text",children:"Sie wird benötigt, um Geräte wie IP-Kameras oder Rekorder von auÃen zu erreichen. Ihre statische IP erhalten Sie bei Ihrem Internetanbieter."})]}),pr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Um endereço IP estático é um endereço permanente e exclusivo atribuÃdo a um dispositivo na internet. Exemplo: 78.78.78.78."}),r.jsx("p",{className:"faq__text text",children:"Ele é necessário para acesso remoto a dispositivos como câmeras IP ou gravadores. Você pode solicitar isso ao seu provedor de internet."})]}),fr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Une adresse IP statique est une adresse unique et permanente attribuée à un équipement sur internet. Exemple - 78.78.78.78."}),r.jsx("p",{className:"faq__text text",children:"Elle est nécessaire pour un accès à distance à des appareils tels que des caméras IP ou des enregistreurs. Vous pouvez lâobtenir auprès de votre fournisseur dâaccès internet."})]}),es:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Una dirección IP estática es una dirección única y permanente asignada a un dispositivo en internet. Por ejemplo, 78.78.78.78."}),r.jsx("p",{className:"faq__text text",children:"Es necesaria para acceder de forma remota a dispositivos como cámaras IP o grabadoras. Puedes solicitarla a tu proveedor de internet."})]}),it:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Un indirizzo IP statico è un indirizzo univoco e permanente assegnato a un dispositivo su Internet. Ad esempio, 78.78.78.78."}),r.jsx("p",{className:"faq__text text",children:"à necessario per accedere in remoto a dispositivi come telecamere IP o registratori. Puoi richiederlo al tuo provider Internet."})]}),tr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Sabit IP adresi, internet ortamında bir cihaza atanan kalıcı ve benzersiz bir adrestir. Ãrnek: 78.78.78.78."}),r.jsx("p",{className:"faq__text text",children:"Bu adres, IP kameralar veya kayıt cihazları gibi ekipmanlara uzaktan eriÅebilmek için gereklidir. İnternet saÄlayıcınızdan talep edebilirsiniz."})]}),zh:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"åºå®IPå°åæ¯è¿è¥åä¸ºä½ ç设å¤åé
çæ°¸ä¸åæ´çå¯ä¸å°åãä¾å¦ï¼78.78.78.78ã"}),r.jsx("p",{className:"faq__text text",children:"妿éè¦è¿ç¨è®¿é®è®¾å¤ï¼å¦IPæåæºãå½åæºï¼ï¼å°±å¿
é¡»ç¨å°åºå®IPãä½ å¯ä»¥åç½ç»æå¡æä¾åç³è¯·ã"})]}),ru:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"СÑаÑиÑеÑкий IP-адÑÐµÑ â ÑÑо поÑÑоÑннÑй ÑникалÑнÑй адÑеÑ, пÑиÑвоеннÑй ÑÑÑÑойÑÑÐ²Ñ Ð² ÑеÑи инÑеÑнеÑ. ÐÑÐ¸Ð¼ÐµÑ - 78.78.78.78 ."}),r.jsx("p",{className:"faq__text text",children:"Ðн необÑ
одим Ð´Ð»Ñ Ñдаленного доÑÑÑпа к ÑÑÑÑойÑÑвам, Ñаким как IP-камеÑÑ Ð¸Ð»Ð¸ видеоÑегиÑÑÑаÑоÑÑ. ÐолÑÑиÑÑ ÐµÐ³Ð¾ можно Ñ ÐаÑего инÑеÑнеÑ-пÑовайдеÑа."})]})}},{id:"faq-how_can_use_dynamic_ip",q:{en:"I have a dynamic IP address. Can I set up streaming?",ru:"У Ð¼ÐµÐ½Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑкий IP-адÑеÑ. ÐÐ¾Ð³Ñ Ð»Ð¸ Ñ Ð¾ÑганизоваÑÑ Ð¿Ð¾Ñоковое веÑание? ",de:"Ich habe eine dynamische IP-Adresse. Kann ich trotzdem streamen?",pr:"Tenho um endereço IP dinâmico. Posso configurar a transmissão?",fr:"Jâai une adresse IP dynamique. Puis-je configurer une diffusion ?",es:"Tengo una dirección IP dinámica. ¿Puedo configurar la transmisión?",it:"Ho un indirizzo IP dinamico. Posso configurare la trasmissione?",tr:"Dinamik IP adresim var. Yine de yayın yapabilir miyim?",zh:"妿æçIPå°åæ¯å¨æçï¼è½å¦é
ç½®ç´æï¼"},body:{en:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Yes. rtsp.me can stream without a static IP, DDNS, or port forwarding via RTMP Push, the free software agent, Bridge, or a ready-made camera with an ID. All four options use an outbound connection."}),r.jsxs("p",{className:"faq__text text",children:["The ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"detailed guide"})," will help you choose an option and provides setup instructions."]})]}),de:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Ja. Mit rtsp.me können Sie ohne statische IP-Adresse, DDNS oder Portweiterleitung streamen: per RTMP Push, kostenlosem Software-Agenten, Bridge oder einer vorkonfigurierten Kamera mit ID. Alle vier Optionen nutzen eine ausgehende Verbindung."}),r.jsxs("p",{className:"faq__text text",children:["Die ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"ausführliche Anleitung"})," hilft Ihnen bei der Auswahl einer Option und enthält Anweisungen zur Einrichtung."]})]}),pr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Sim. O rtsp.me permite transmitir sem IP estático, DDNS ou redirecionamento de portas usando RTMP Push, o agente de softw
67are gratuito, o Bridge ou uma câmera pronta com ID. As quatro opções usam uma conexão de saÃda."}),r.jsxs("p",{className:"faq__text text",children:["O ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guia detalhado"})," ajuda você a escolher uma opção e fornece instruções de configuração."]})]}),fr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Oui. rtsp.me permet de diffuser sans adresse IP statique, DDNS ni redirection de ports avec RTMP Push, lâagent logiciel gratuit, Bridge ou une caméra prête à lâemploi avec un identifiant. Ces quatre options utilisent une connexion sortante."}),r.jsxs("p",{className:"faq__text text",children:["Le ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guide détaillé"})," vous aide à choisir une option et fournit les instructions de configuration."]})]}),es:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"SÃ. rtsp.me permite transmitir sin IP estática, DDNS ni redirección de puertos mediante RTMP Push, el agente de software gratuito, Bridge o una cámara lista para usar con ID. Las cuatro opciones utilizan una conexión saliente."}),r.jsxs("p",{className:"faq__text text",children:["La ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guÃa detallada"})," te ayuda a elegir una opción y ofrece instrucciones de configuración."]})]}),it:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Sì. rtsp.me consente di trasmettere senza IP statico, DDNS o port forwarding tramite RTMP Push, lâagente software gratuito, Bridge o una telecamera pronta allâuso con ID. Tutte e quattro le opzioni utilizzano una connessione in uscita."}),r.jsxs("p",{className:"faq__text text",children:["La ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guida dettagliata"})," ti aiuta a scegliere unâopzione e fornisce le istruzioni di configurazione."]})]}),tr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Evet. rtsp.me; RTMP Push, ücretsiz yazılım aracısı, Bridge veya kimlikli, kullanıma hazır bir kamera ile statik IP, DDNS ya da port yönlendirme olmadan yayın yapabilir. Dört seçeneÄin tümü dıÅarı doÄru baÄlantı kullanır."}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"Ayrıntılı kılavuz"}),", bir seçenek belirlemenize yardımcı olur ve kurulum talimatlarını sunar."]})]}),zh:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"å¯ä»¥ãrtsp.me å¯éè¿ RTMP Pushãå
费软件代çãBridge æå¸¦ ID çå³ç¨åæåæºï¼å¨æ²¡æéæ IPãDDNS æç«¯å£è½¬åçæ
åµä¸è¿è¡ç´æãè¿åç§æ¹å¼é½ä½¿ç¨åºç«è¿æ¥ã"}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"è¯¦ç»æå"}),"å¯å¸®å©ä½ éæ©åéçæ¹å¼ï¼å¹¶æä¾è®¾ç½®è¯´æã"]})]}),ru:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Ðа. rtsp.ru позволÑÐµÑ Ð²ÐµÑÑи ÑÑанÑлÑÑÐ¸Ñ Ð±ÐµÐ· ÑÑаÑиÑеÑкого IP-адÑеÑа, DDNS и пÑобÑоÑа поÑÑов Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ RTMP Push, беÑплаÑного пÑогÑаммного агенÑа, Bridge или гоÑовой камеÑÑ Ñ ID. ÐÑе ÑеÑÑÑе ваÑианÑа иÑполÑзÑÑÑ Ð¸ÑÑ
одÑÑее Ñоединение."}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"ÐодÑобное ÑÑководÑÑво"})," Ð¿Ð¾Ð¼Ð¾Ð¶ÐµÑ Ð²ÑбÑаÑÑ Ð¿Ð¾Ð´Ñ
одÑÑий ваÑÐ¸Ð°Ð½Ñ Ð¸ ÑодеÑÐ¶Ð¸Ñ Ð¸Ð½ÑÑÑÑкÑии по наÑÑÑойке."]})]})}},{id:"faq-i_have_grey_ip",q:{en:"What to do if I have a private IP address?",ru:'ЧÑо делаÑÑ ÐµÑли Ñ Ð¼ÐµÐ½Ñ "ÑеÑÑй" IP-адÑеÑ?',de:"Was tun, wenn ich eine âgraueâ IP-Adresse habe?",pr:'O que fazer se eu tiver um endereço IP "cinza"?',fr:"Que faire si jâai une adresse IP « grise » ?",es:'¿
67Qué hago si tengo una dirección IP "gris"?',it:"Cosa fare se ho un indirizzo IP âgrigioâ?",tr:'"Gri" (NATâli) bir IP adresim var, ne yapmalıyım?',zh:"妿æä½¿ç¨âç°IPâï¼å
ç½IPï¼æä¹åï¼"},body:{en:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"A private or CGNAT WAN IP cannot accept inbound connections from the internet. rtsp.me can connect your camera using outbound methods without opening router ports."}),r.jsxs("p",{className:"faq__text text",children:["The ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"detailed guide"})," describes RTMP Push, the free software agent, Bridge, and other available connection options."]})]}),de:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Eine private oder per CGNAT vergebene WAN-IP kann keine eingehenden Internetverbindungen annehmen. rtsp.me verbindet Ihre Kamera über ausgehende Methoden, ohne Router-Ports zu öffnen."}),r.jsxs("p",{className:"faq__text text",children:["Die ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"ausführliche Anleitung"})," beschreibt RTMP Push, den kostenlosen Software-Agenten, Bridge und weitere verfügbare Verbindungsoptionen."]})]}),pr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Um IP WAN privado ou com CGNAT não aceita conexões de entrada da internet. O rtsp.me conecta sua câmera por métodos de saÃda, sem abrir portas no roteador."}),r.jsxs("p",{className:"faq__text text",children:["O ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guia detalhado"})," descreve RTMP Push, o agente de software gratuito, Bridge e outras opções de conexão disponÃveis."]})]}),fr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Une adresse IP WAN privée ou sous CGNAT ne peut pas accepter de connexions Internet entrantes. rtsp.me connecte votre caméra par des méthodes sortantes, sans ouvrir de ports sur le routeur."}),r.jsxs("p",{className:"faq__text text",children:["Le ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guide détaillé"})," décrit RTMP Push, lâagent logiciel gratuit, Bridge et les autres options de connexion disponibles."]})]}),es:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Una IP WAN privada o con CGNAT no puede aceptar conexiones entrantes de internet. rtsp.me conecta tu cámara mediante métodos salientes sin abrir puertos en el router."}),r.jsxs("p",{className:"faq__text text",children:["La ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guÃa detallada"})," describe RTMP Push, el agente de software gratuito, Bridge y otras opciones de conexión disponibles."]})]}),it:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Un IP WAN privato o sotto CGNAT non può accettare connessioni Internet in ingresso. rtsp.me collega la telecamera tramite metodi in uscita senza aprire porte sul router."}),r.jsxs("p",{className:"faq__text text",children:["La ",r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"guida dettagliata"})," descrive RTMP Push, lâagente software gratuito, Bridge e le altre opzioni di connessione disponibili."]})]}),tr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Ãzel veya CGNAT arkasındaki bir WAN IP adresi internetten gelen baÄlantıları kabul edemez. rtsp.me, router portlarını açmadan kameranızı dıÅarı yönlü yöntemlerle baÄlayabilir."}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"Ayrıntılı kılavuz"}),"; RTMP Push, ücretsiz yazılım aracısı, Bridge ve kullanılabilen diÄer baÄlantı seçeneklerini açıklar."]})]}),zh:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"ç§ææCGNATç¯å¢ä¸çWAN IPæ æ³æ¥åæ¥èªäºèç½çå
¥ç«è¿æ¥ãrtsp.meå¯éè¿åºç«æ¹å¼è¿æ¥æåæºï¼æ é弿¾è·¯ç±å¨ç«¯å£ã"}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"è¯¦ç»æå"}),"ä»ç»äºRTMP Pushãå
费软件代çãBridge以åå
¶ä»å¯ç¨çè¿æ¥æ¹å¼ã"]}
67)]}),ru:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"ЧаÑÑнÑй WAN-адÑÐµÑ Ð¸Ð»Ð¸ адÑÐµÑ Ð·Ð° CGNAT не Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑинимаÑÑ Ð²Ñ
одÑÑие подклÑÑÐµÐ½Ð¸Ñ Ð¸Ð· инÑеÑнеÑа. rtsp.ru подклÑÑÐ°ÐµÑ ÐºÐ°Ð¼ÐµÑÑ Ð¸ÑÑ
одÑÑими ÑпоÑобами без оÑкÑÑÑÐ¸Ñ Ð¿Ð¾ÑÑов на ÑоÑÑеÑе."}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-stream-without-static-ip.html",children:"ÐодÑобное ÑÑководÑÑво"})," опиÑÑÐ²Ð°ÐµÑ RTMP Push, беÑплаÑнÑй пÑогÑаммнÑй агенÑ, Bridge и дÑÑгие доÑÑÑпнÑе ваÑианÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ."]})]})}},{id:"faq-how_set_pot_mapping",q:{en:"How to set up port mapping?",ru:"Ðак наÑÑÑоиÑÑ Ð¿Ð¾ÑÑ-маппинг?",de:"Wie richte ich das Port-Forwarding ein?",pr:"Como configuro o redirecionamento de portas (port mapping)?",fr:"Comment configurer le transfert de port ?",es:"¿Cómo configuro el reenvÃo de puertos (port mapping)?",it:"Come configuro il port mapping?",tr:"Port yönlendirmeyi (port mapping) nasıl ayarlarım?",zh:"å¦ä½é
ç½®ç«¯å£æ å°ï¼Port Mappingï¼ï¼"},body:{en:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Port forwarding is a router rule that sends incoming internet traffic to a specific device and port on your local network."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Reserve a fixed local IP address for the camera."}),r.jsx("li",{className:"broadcast__li text",children:"Choose a unique external TCP port and forward it to the camera's internal RTSP port, usually 554."}),r.jsx("li",{className:"broadcast__li text",children:"Permit the rule in the router and firewall without exposing the camera through DMZ."}),r.jsx("li",{className:"broadcast__li text",children:"Test the connection from outside the local network."})]}),r.jsx("p",{className:"faq__text text",children:"A public IP address is required. If your connection uses CGNAT or a private WAN address, use an alternative connection method."}),r.jsxs("p",{className:"faq__text text",children:["The ",r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"detailed guide"})," contains step-by-step setup and examples for different router models."]})]}),de:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Port-Forwarding ist eine Router-Regel, die eingehenden Internetverkehr an ein bestimmtes Gerät und einen Port im lokalen Netzwerk weiterleitet."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Reservieren Sie eine feste lokale IP-Adresse für die Kamera."}),r.jsx("li",{className:"broadcast__li text",children:"Wählen Sie einen eindeutigen externen TCP-Port und leiten Sie ihn an den internen RTSP-Port der Kamera, normalerweise 554, weiter."}),r.jsx("li",{className:"broadcast__li text",children:"Erlauben Sie die Regel im Router und in der Firewall, ohne die Kamera über DMZ freizugeben."}),r.jsx("li",{className:"broadcast__li text",children:"Testen Sie die Verbindung auÃerhalb des lokalen Netzwerks."})]}),r.jsx("p",{className:"faq__text text",children:"Eine öffentliche IP-Adresse ist erforderlich. Nutzen Sie bei CGNAT oder einer privaten WAN-Adresse eine alternative Verbindungsmethode."}),r.jsxs("p",{className:"faq__text text",children:["Die ",r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"ausführliche Anleitung"})," enthält eine schrittweise Einrichtung und Beispiele für verschiedene Routermodelle."]})]}),pr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"O redirecionamento de portas é uma regra do roteador que envia o tráfego recebido da internet para um dispositivo e uma porta especÃficos da rede local."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Reserve um endereço IP local fixo para a câmera."}),r.jsx("li",{className:"broadcast__li text",children:"Escolha uma porta TCP externa exclusiva e encaminhe-a para a porta RTSP interna da câmera, geralmente 554."}),r.jsx("li",{className:"broadcast__li text",children:"Permita a regra no roteador e no firewall sem expor a câmera por DMZ."}),r.jsx("li",{className:"broadcast__li text",children:"Teste a conexão fora da rede local."})]}),r.jsx("p",{className:"faq__text text",children:"à necessário ter um endereço IP público. Se a conexão usar CGNAT ou um endereço WAN privado, use um método de conexão alternativo."}),r.jsxs("p",{className:"faq__text text",children:["O ",r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"guia detalhado"})," contém a configuração passo a passo e exemplos para diferentes modelos de roteador."]})]}),fr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Le transfert de port est une règle du routeur qui dirige le trafic Internet entrant vers un appareil et un port précis du réseau local."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Réservez une adresse IP locale fixe pour la caméra."}),r.jsx("li",{className:"broadcast__li text",children:"Choisissez un port TCP externe unique et redirigez-le vers le port RTSP interne de la caméra, généralement 554."}),r.jsx("li",{className:"broadcast__li text",children:"Autorisez la règle dans le routeur et le pare-feu sans exposer la caméra via la DMZ."}),r.jsx("li",{className:"broadcast__li text",children:"Testez la connexion depuis lâextérieur du réseau local."})]}),r.jsx("p",{className:"faq__text text",children:"Une adresse IP publique est requise. Si votre connexion utilise le CGNAT ou une adresse WAN privée, utilisez une autre méthode de connexion."}),r.jsxs("p",{className:"faq__text text",children:["Le ",r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"guide détaillé"})," contient une configuration pas à pas et des exemples pour différents modèles de routeurs."]})]}),es:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"El reenvÃo de puertos es una regla del router que dirige el tráfico entrante de internet a un dispositivo y puerto especÃficos de la red local."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Reserva una dirección IP local fija para la cámara."}),r.jsx("li",{className:"broadcast__li text",children:"Elige un puerto TCP externo único y reenvÃalo al puerto RTSP interno de la cámara, normalmente el 554."}),r.jsx("li",{className:"broadcast__li text",children:"Permite la regla en el router y el firewall sin exponer la cámara mediante DMZ."}),r.jsx("li",{className:"broadcast__li text",children:"Prueba la conexión desde fuera de la red local."})]}),r.jsx("p",{className:"faq__text text",children:"Se requiere una dirección IP pública. Si tu conexión usa CGNAT o una dirección WAN privada, utiliza un método de conexión alternativo."}),r.jsxs("p",{className:"faq__text text",children:["La ",r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"guÃa detallada"})," contiene la configuración paso a paso y ejemplos para distintos modelos de router."]})]}),it:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Il port forwarding è una regola del router che inoltra il traffico Internet in ingresso a un dispositivo e a una porta specifici della rete locale."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Riserva un indirizzo IP locale fisso per la telecamera."}),r.jsx("li",{className:"broadcast__li text",children:"Scegli una porta TCP esterna univoca e inoltrala alla porta RTSP interna della telecamera, in genere 554."}),r.jsx("li",{className:"broadcast__li text",children:"Consenti la regola nel router e nel firewall senza esporre la telecamera tramite DMZ."}),r.jsx("li",{className:"broadcast__li text",children:"Verifica la connessione dallâesterno della rete locale."})]}),r.jsx("p",{className:"faq__text text",children:"à richiesto un indirizzo IP pubblico. Se la connessione usa CGNAT o un indirizzo WAN privato, utilizza un metodo di connessione alternativo."}),r.jsxs("p",{className:"faq__text text",children:["La ",r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"guida dettagliata"})," contiene la configurazione passo per passo ed esempi per diversi modelli di router."]})]}),tr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Port yönlendirme, internetten gelen trafiÄi yerel aÄdaki belirli bir cihaza ve porta aktaran bir router kuralıdır."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"Kamera için sabit bir yerel IP adresi ayırın."}),r.jsx("li",{className:"broadcast__li text",children:"Benzersiz bir harici TCP portu seçin ve kameranın dahil
67i RTSP portuna, genellikle 554, yönlendirin."}),r.jsx("li",{className:"broadcast__li text",children:"Kamerayı DMZ üzerinden açıÄa çıkarmadan router ve güvenlik duvarında kurala izin verin."}),r.jsx("li",{className:"broadcast__li text",children:"BaÄlantıyı yerel aÄın dıÅından test edin."})]}),r.jsx("p",{className:"faq__text text",children:"Genel bir IP adresi gereklidir. BaÄlantınız CGNAT veya özel bir WAN adresi kullanıyorsa alternatif bir baÄlantı yöntemi kullanın."}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"Ayrıntılı kılavuz"}),", adım adım kurulumu ve farklı router modelleri için örnekleri içerir."]})]}),zh:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"端å£è½¬åæ¯å°äºèç½ä¼ å
¥æµéåéå°å±åç½ä¸ç¹å®è®¾å¤å端å£çè·¯ç±å¨è§åã"}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"为æåæºä¿çä¸ä¸ªåºå®çæ¬å°IPå°åã"}),r.jsx("li",{className:"broadcast__li text",children:"éæ©ä¸ä¸ªå¯ä¸çå¤é¨TCP端å£ï¼å¹¶å°å
¶è½¬åå°æåæºçå
é¨RTSP端å£ï¼é常为554ã"}),r.jsx("li",{className:"broadcast__li text",children:"å¨è·¯ç±å¨åé²ç«å¢ä¸å
许该è§åï¼ä½ä¸è¦éè¿DMZæ´é²æåæºã"}),r.jsx("li",{className:"broadcast__li text",children:"仿¬å°ç½ç»å¤é¨æµè¯è¿æ¥ã"})]}),r.jsx("p",{className:"faq__text text",children:"å¿
须使ç¨å
¬ç½IPå°åãå¦æè¿æ¥ä½¿ç¨CGNATæç§æWANå°åï¼è¯·æ¹ç¨å
¶ä»è¿æ¥æ¹å¼ã"}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"è¯¦ç»æå"}),"å
å«åæ¥è®¾ç½®è¯´æä»¥åéç¨äºä¸åè·¯ç±å¨åå·ç示ä¾ã"]})]}),ru:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"ÐÑобÑÐ¾Ñ Ð¿Ð¾ÑÑов â ÑÑо пÑавило ÑоÑÑеÑа, коÑоÑое напÑавлÑÐµÑ Ð²Ñ
одÑÑий инÑеÑнеÑ-ÑÑаÑик на опÑеделÑнное ÑÑÑÑойÑÑво и поÑÑ Ð² локалÑной ÑеÑи."}),r.jsxs("ol",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"ÐаÑезеÑвиÑÑйÑе Ð´Ð»Ñ ÐºÐ°Ð¼ÐµÑÑ Ð¿Ð¾ÑÑоÑннÑй локалÑнÑй IP-адÑеÑ."}),r.jsx("li",{className:"broadcast__li text",children:"ÐÑбеÑиÑе ÑникалÑнÑй внеÑний TCP-поÑÑ Ð¸ напÑавÑÑе его на внÑÑÑенний RTSP-поÑÑ ÐºÐ°Ð¼ÐµÑÑ, обÑÑно 554."}),r.jsx("li",{className:"broadcast__li text",children:"РазÑеÑиÑе пÑавило в ÑоÑÑеÑе и межÑеÑевом ÑкÑане, не оÑкÑÑÐ²Ð°Ñ ÐºÐ°Ð¼ÐµÑÑ ÑеÑез DMZ."}),r.jsx("li",{className:"broadcast__li text",children:"ÐÑовеÑÑÑе подклÑÑение за пÑеделами локалÑной ÑеÑи."})]}),r.jsx("p",{className:"faq__text text",children:"ТÑебÑеÑÑÑ Ð¿ÑблиÑнÑй IP-адÑеÑ. ÐÑли подклÑÑение иÑполÑзÑÐµÑ CGNAT или ÑаÑÑнÑй WAN-адÑеÑ, вÑбеÑиÑе алÑÑеÑнаÑивнÑй ÑпоÑоб подклÑÑениÑ."}),r.jsxs("p",{className:"faq__text text",children:[r.jsx("a",{href:"how-to-configure-port-forwarding.html",children:"ÐодÑобное ÑÑководÑÑво"})," ÑодеÑÐ¶Ð¸Ñ Ð¿Ð¾ÑаговÑÑ Ð½Ð°ÑÑÑÐ¾Ð¹ÐºÑ Ð¸ пÑимеÑÑ Ð´Ð»Ñ ÑазнÑÑ
моделей ÑоÑÑеÑов."]})]})}},{id:"faq-how_requirements",q:{en:"What are the recommended camera settings?",ru:"Ðакие РекомендÑемÑе наÑÑÑойки камеÑÑ?",de:"Welche Kameraeinstellungen werden empfohlen?",pr:"Quais configurações são recomendadas para a câmera?",fr:"Quelles sont les configurations recommandées pour la caméra ?",es:"¿Qué configuración se recomienda para la cámara?",it:"Quali impostazioni si raccomandano per la telecamera?",tr:"Kamera için önerilen ayarlar nelerdir?",zh:"æåæºçæä½³é
置建议æ¯ä»ä¹ï¼"},body:{en:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"â¢Codec â H.264;"}),r.jsx("li",{className:"broadcast__li text",children:"â¢FPS â 25;"}),r.jsx("li",{className:"broadcast__li text",children:"â¢GOP (i-frame) â 50 fps (2 sec);"}),r.jsx("li",{className:"broadcast__li text",children:"â¢SMART codec - off"})]}),de:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Codec â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠FPS â 25"}
67),r.jsx("li",{className:"broadcast__li text",children:"⢠GOP (i-frame) â 50 fps (2 s)"}),r.jsx("li",{className:"broadcast__li text",children:"⢠SMART-Codec â deaktiviert"})]}),pr:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Codec â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠FPS â 25"}),r.jsx("li",{className:"broadcast__li text",children:"⢠GOP (i-frame) â 50 fps (2 s)"}),r.jsx("li",{className:"broadcast__li text",children:"⢠SMART codec â desligado"})]}),fr:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Codec â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠FPS â 25"}),r.jsx("li",{className:"broadcast__li text",children:"⢠GOP (i-frame) â 50 fps (2 s)"}),r.jsx("li",{className:"broadcast__li text",children:"⢠SMART codec â désactivé"})]}),es:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Códec â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠FPS â 25"}),r.jsx("li",{className:"broadcast__li text",children:"⢠GOP (i-frame) â 50 fps (2 s)"}),r.jsx("li",{className:"broadcast__li text",children:"⢠SMART codec â desactivado"})]}),it:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Codec â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠FPS â 25"}),r.jsx("li",{className:"broadcast__li text",children:"⢠GOP (i-frame) â 50 fps (2 s)"}),r.jsx("li",{className:"broadcast__li text",children:"⢠SMART codec â disattivato"})]}),tr:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠Codec â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠FPS â 25"}),r.jsx("li",{className:"broadcast__li text",children:"⢠GOP (i-frame) â 50 fps (2 s)"}),r.jsx("li",{className:"broadcast__li text",children:"⢠SMART codec â kapalı"})]}),zh:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"⢠ç¼è§£ç å¨ â H.264"}),r.jsx("li",{className:"broadcast__li text",children:"⢠帧çï¼FPSï¼â 25"}),r.jsx("li",{className:"broadcast__li text",children:"⢠GOPï¼å
³é®å¸§é´éï¼â 50帧ï¼2ç§ï¼"}),r.jsx("li",{className:"broadcast__li text",children:"⢠å
³éSMARTç¼ç "})]}),ru:r.jsxs("ul",{className:"broadcast__ul list-reset",children:[r.jsx("li",{className:"broadcast__li text",children:"â¢ÐºÐ¾Ð´ÐµÐº â H.264;"}),r.jsx("li",{className:"broadcast__li text",children:"â¢FPS â 25;"}),r.jsx("li",{className:"broadcast__li text",children:"â¢GOP (i-frame) â 50 fps (2 sec);"}),r.jsx("li",{className:"broadcast__li text",children:"â¢SMART кодек - вÑклÑÑен"})]})}},{id:"faq-error_local_ip",q:{en:"Error - Local IP cannot be used",ru:"ÐÑибка - Ðевозможно иÑполÑзоваÑÑ Ð»Ð¾ÐºÐ°Ð»ÑнÑй IP",de:"Fehler â Lokale IP kann nicht verwendet werden",pr:"Erro - Não é possÃvel usar um IP local",fr:"Erreur - Une IP locale ne peut pas être utilisée",es:"Error - No se puede usar una IP local",it:"Errore - Non è possibile utilizzare un IP locale",tr:"Hata - Yerel IP adresi kullanılamaz",zh:"é误 - æ æ³ä½¿ç¨å±åç½IP"},body:{en:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:'Local IP addresses (so-called "private IPs") belong to ranges that are not routable on the global network. These ranges are defined by RFC 1918: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255'}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"Devices with such addresses are only accessible within a local network (e.g., home or office). Exter
67nal devices from the internet cannot directly connect to these IP addresses."})]}),de:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:'Lokale IP-Adressen ("private IPs") sind Adressbereiche, die nicht im öffentlichen Netz geroutet werden können. Diese Bereiche sind in RFC 1918 definiert: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255'}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"Geräte mit solchen Adressen sind nur innerhalb eines lokalen Netzwerks (z.B. zu Hause oder im Büro) zugänglich. Externe Geräte im Internet können auf solche IP-Adressen nicht direkt zugreifen."})]}),pr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:'Endereços IP locais (também chamados de "IPs privados") pertencem a faixas que não são roteáveis pela internet global. Essas faixas são definidas pela RFC 1918: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255'}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"Dispositivos com esses endereços só são acessÃveis dentro de uma rede local (por exemplo, em casa ou no escritório). à impossÃvel que dispositivos externos na internet se conectem diretamente a esses endereços IP."})]}),fr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Les adresses IP locales (dites « privées ») appartiennent à des plages non routables sur le réseau internet mondial. Ces plages sont définies par la RFC 1918 : ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255"}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"Les appareils possédant ces adresses ne sont accessibles quâà lâintérieur dâun réseau local (par exemple, à la maison ou au bureau). Il est impossible pour des appareils externes sur internet de se connecter directement à ces adresses IP."})]}),es:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:'Las direcciones IP locales (también llamadas "IPs privadas") pertenecen a rangos que no son accesibles en la red global. Estos rangos están definidos por la RFC 1918: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255'}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"Los dispositivos con estas direcciones solo son accesibles dentro de una red local (por ejemplo, en casa o en la oficina). Desde internet, es imposible conectarse directamente a esas direcciones IP."})]}),it:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Gli indirizzi IP locali (anche dett
67i âprivatiâ) appartengono a intervalli non instradabili sulla rete globale. Tali intervalli sono definiti dalla RFC 1918: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255"}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"I dispositivi con tali indirizzi sono accessibili solo allâinterno di una rete locale (ad esempio a casa o in ufficio). Dallâesterno, su Internet, non è possibile connettersi direttamente a questi indirizzi IP."})]}),tr:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"Yerel (özel) IP adresleri, küresel aÄ Ã¼zerinden yönlendirilemeyen belirli IP aralıklarına aittir. Bu aralıklar RFC 1918 tarafından tanımlanmıÅtır: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255"}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"Bu IP adreslerine sahip cihazlara sadece yerel aÄ (ev veya ofis) içerisinden eriÅilebilir. İnternet üzerinden bu IPâlere doÄrudan baÄlanmak mümkün deÄildir."})]}),zh:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"å±åç½IPå°åï¼åç§°âç§æIPâï¼å±äºä¸å¯å¨å
¨çäºèç½ä¸è·¯ç±çå°åèå´ãæ ¹æ®RFC 1918ï¼è¿äºèå´ä¸ºï¼ ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255"}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"è¿äºå°åä»
è½å¨å±åç½ï¼å®¶åºæåå
¬å®¤ï¼å
访é®ãæ æ³ä»å
¬ç½ï¼äºèç½ï¼ç´æ¥è®¿é®è¿äºIPå°åã"})]}),ru:r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"faq__text text",children:"ÐокалÑнÑе IP-адÑеÑа (Ñак назÑваемÑе âÑеÑÑе IPâ) пÑÐ¸Ð½Ð°Ð´Ð»ÐµÐ¶Ð°Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð°Ð¼, коÑоÑÑе не маÑÑÑÑÑизиÑÑÑÑÑÑ Ð² глобалÑной ÑеÑи. ÐÑи Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ñ ÑÑандаÑÑом RFC 1918: ⢠10.0.0.0 â 10.255.255.255 ⢠172.16.0.0 â 172.31.255.255 ⢠192.168.0.0 â 192.168.255.255"}),r.jsxs("ul",{className:"broadcast__ul list-reset",style:{paddingTop:"24px"},children:[r.jsx("li",{className:"broadcast__li text",children:"⢠10.0.0.0 â 10.255.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠172.16.0.0 â 172.31.255.255"}),r.jsx("li",{className:"broadcast__li text",children:"⢠192.168.0.0 â 192.168.255.255"})]}),r.jsx("p",{className:"faq__text text",children:"УÑÑÑойÑÑва Ñ Ñакими адÑеÑами доÑÑÑÐ¿Ð½Ñ ÑолÑко внÑÑÑи локалÑной ÑеÑи (напÑимеÑ, домаÑней или оÑиÑной). ÐнеÑние ÑÑÑÑойÑÑва из инÑеÑнеÑа не могÑÑ Ð½Ð°Ð¿ÑÑмÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑиÑÑÑÑ Ðº ÑÑим IP-адÑеÑам."})]})}}],hj=()=>{const{lang:e}=V(),[t,n]=x.useState(rd[0].id);return r.jsx("section",{className:"faq section",id:"faq",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"faq__top top",children:[r.jsx("span",{className:"faq__suptitle suptitle",children:"FAQ"}),r.jsx("h2",{className:"faq__h2 h2 anim",children:pj[e]})]}),r.jsx("ul",{className:"faq__list list-reset _init","data-spollers":"",children:rd.map(a=>{const s=t===a.id;return r.jsxs("li",{id:a.id,className:"faq__item",children:[r.jsx("div",{className:"faq__header",style:{cursor:"pointer"},onClick:()=>n(s?"":a.id),children:r.jsx("h3",{className:`faq__h3 h3 anim${s?" show":""}`,children:a.q[e]})}),r.jsx("button",{className:`faq__btn btn-reset${s?" _active":""}`,"data-spoller":"",onClick:()=>n(s?"":a.id)}),r.jsx("div",{className:"faq__body",hidden:!s,onClick:i=>i.stopPropagation(),children:a.body[e]})]},a.id)})})]})})},fj={en:{suptitle:"Products",h2:r.jsxs(r.Fragment,{children:["Convenient solution for hosting ",r.jsx("br",{})," streaming video"]}),item1:{h3:"MyVMS 5Mp Bullet Surveillance Camera",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Buy",
67webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"No need for a static IP address or port mapping. It has a resolution of 2592 x 1944 at 25 fps, as well as a wide viewing angle. The IP-65 rated cylindrical metal body ensures durability. Mounting kit included. Lens - 2.8."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Buy",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"A device for connecting IP cameras without the need for a public IP address. Supports up to 8 IP cameras. Simply install it in your local network, and our technical support will set up the streaming for you."},item3:{h3:"RTSP Software Agent",price:"Free",discount:"NEW",link:"/en/streaming-agent.html",buy:"Download",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"A free program for Windows, Linux and ARM. It picks up your camera's RTSP stream in the local network and sends it to rtsp.me over RTMP Push â no static IP or open ports required."}},ru:{suptitle:"ÐÑодÑкÑÑ",h2:r.jsxs(r.Fragment,{children:["Удобное ÑеÑение Ð´Ð»Ñ ÑазмеÑÐµÐ½Ð¸Ñ ",r.jsx("br",{})," поÑокового видео"]}),item1:{h3:"IP-камеÑа ÐÐ¸Ð½Ð¸Ñ 4Mp OEM Agent Bullet",price:"5 400 ÑÑб",discount:"NEW",link:"https://ozon.ru/t/dwcYore",buy:"ÐÑпиÑÑ",webp:"/landing/img/ipcam-4mp-agent.webp",fallback:"/landing/img/ipcam-4mp-agent.webp",text:"Ðе нÑжен ÑÑаÑиÑеÑкий IP-адÑÐµÑ Ð¸Ð»Ð¸ наÑÑÑойка поÑÑ-маппинга. ÐÐ±Ð»Ð°Ð´Ð°ÐµÑ ÑазÑеÑением 2688 x 1512 пÑи 25 fps, а Ñакже ÑиÑоким Ñглом обзоÑа. ЦилиндÑиÑеÑкий коÑпÑÑ Ñ Ð·Ð°ÑиÑой IP-65 вÑполнен из меÑалла. ÐонÑажнÑй Ð½Ð°Ð±Ð¾Ñ Ð² комплекÑе. ÐбÑекÑив - 2.8."},item2:{h3:"ÐÐ¸Ð½Ð¸Ñ Bridge POE",price:"3 600 ÑÑб",discount:"NEW",link:"https://ozon.ru/t/zLKbB4j",buy:"ÐÑпиÑÑ",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"УÑÑÑойÑÑво Ð´Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ð¸Ñ IP-ÐºÐ°Ð¼ÐµÑ Ð±ÐµÐ· необÑ
одимоÑÑи иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð±ÐµÐ»Ð¾Ð³Ð¾ IP-адÑеÑа. ÐоддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´Ð¾ 8 IP-камеÑ. ÐÑоÑÑо ÑÑÑановиÑе его в локалÑной ÑеÑи, и наÑа ÑеÑ
ниÑеÑÐºÐ°Ñ Ð¿Ð¾Ð´Ð´ÐµÑжка наÑÑÑÐ¾Ð¸Ñ Ð¿Ð¾Ñоковое веÑание Ð´Ð»Ñ Ð²Ð°Ñ."},item3:{h3:"ÐÑогÑаммнÑй RTSP ÐгенÑ",price:"ÐеÑплаÑно",discount:"NEW",link:"/ru/streaming-agent.html",buy:"СкаÑаÑÑ",webp:"/landing/img/agent4-ru.webp",fallback:"/landing/img/agent4-ru.webp",text:"ÐеÑплаÑÐ½Ð°Ñ Ð¿ÑогÑамма Ð´Ð»Ñ Windows, Linux и ARM. ÐолÑÑÐ°ÐµÑ RTSP-поÑок камеÑÑ Ð² локалÑной ÑеÑи и оÑпÑавлÑÐµÑ ÐµÐ³Ð¾ на rtsp.ru ÑеÑез RTMP Push â без ÑÑаÑиÑеÑкого IP и оÑкÑÑÑÑÑ
поÑÑов."}},de:{suptitle:"Produkte",h2:r.jsxs(r.Fragment,{children:["Praktische Lösung für das Hosting ",r.jsx("br",{})," von Streaming-Video"]}),item1:{h3:"MyVMS 5Mp Bullet-Ãberwachungskamera",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Kaufen",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"Keine statische IP-Adresse oder Portweiterleitung erforderlich. Die Kamera hat eine Auflösung von 2592 à 1944 bei 25 fps und einen groÃen Blickwinkel. Ein IP-65-Metallgehäuse bietet Zuverlässigkeit. Montagezubehör ist im Lieferumfang enthalten. Objektiv â 2,8 mm."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Kaufen",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"Ein Gerät zum Anschluss von IP-Kameras, ohne eine öffentliche IP-Adresse zu benötigen. Unterstützt bis zu 8 IP-Kameras. Einfach in Ihr lokales Netzwerk einbinden, den Rest übernimmt unser technischer Support."},item3:{h3:"RTSP-Software-Agent",price:"Kostenlos",discount:"NEW",link:"/de/streaming-agent.html",buy:"Herunterladen",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"Ein kostenloses Programm für Windows, Linux und ARM. Es empfängt den RTSP-Stream der Kamera im lokalen Netzwerk und sendet ihn per RTMP Push an rtsp.me â ohne statische IP und offene Ports."}},pr:{suptitle:"Produtos",h2:r.jsxs(r.Fragment,{children:["Solução prática para hospedar ",r.jsx("br",{})," transmissões de vÃdeo"]}),item1:{h3:"Câmera de vigilância MyVMS 5Mp Bullet",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Comprar",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"Não é necessário ter um endereço IP estático ou configurar redirecionamento de portas. Apresenta resolução de 2592 x 1944 a 25 fps, além de um ângulo de visão amplo. O corpo cilÃndrico de metal com classificação IP-65 garante durabilidade. O kit de instalação está incluÃdo. Lente de 2.8."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Comprar",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"Um dispositivo para conectar câmeras IP sem a necessidade de um endereço IP público. Suporta até 8 câmeras IP. Basta instalá-lo
67na sua rede local, e nosso suporte técnico configurará a transmissão para você."},item3:{h3:"Agente de software RTSP",price:"Grátis",discount:"NEW",link:"/pr/streaming-agent.html",buy:"Baixar",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"Um programa gratuito para Windows, Linux e ARM. Ele recebe o fluxo RTSP da câmera na rede local e o envia para o rtsp.me via RTMP Push â sem IP estático nem portas abertas."}},fr:{suptitle:"Produits",h2:r.jsxs(r.Fragment,{children:["Solution pratique pour lâhébergement ",r.jsx("br",{})," de flux vidéo"]}),item1:{h3:"Caméra de surveillance MyVMS 5Mp Bullet",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Acheter",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"Aucune nécessité dâune adresse IP statique ni de configurer de transfert de port. Elle offre une résolution de 2592 x 1944 à 25 fps, ainsi quâun large angle de vue. Le boîtier cylindrique en métal est certifié IP-65 et comprend un kit de fixation. Objectif - 2.8."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Acheter",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"Un dispositif pour connecter des caméras IP sans avoir besoin dâune adresse IP publique. Il prend en charge jusquâà 8 caméras IP. Il vous suffit de lâinstaller sur votre réseau local, et notre support technique sâoccupera de la configuration du streaming."},item3:{h3:"Agent logiciel RTSP",price:"Gratuit",discount:"NEW",link:"/fr/streaming-agent.html",buy:"Télécharger",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"Un programme gratuit pour Windows, Linux et ARM. Il récupère le flux RTSP de la caméra sur le réseau local et lâenvoie à rtsp.me via RTMP Push â sans IP statique ni ports ouverts."}},es:{suptitle:"Productos",h2:r.jsxs(r.Fragment,{children:["Solución conveniente para alojar ",r.jsx("br",{})," transmisiones de video"]}),item1:{h3:"Cámara de vigilancia MyVMS 5Mp Bullet",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Comprar",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"No necesitas una dirección IP estática ni configurar el reenvÃo de puertos. Ofrece una resolución de 2592 x 1944 a 25 fps, además de un amplio ángulo de visión. El cuerpo cilÃndrico de metal con clasificación IP-65 garantiza resistencia. Incluye kit de montaje. Lente de 2.8."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Comprar",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"Un dispositivo para conectar cámaras IP sin necesidad de una dirección IP pública. Soporta hasta 8 cámaras IP. Simplemente conéctalo a tu red local y nuestro soporte técnico configurará la transmisión por ti."},item3:{h3:"Agente de software RTSP",price:"Gratis",discount:"NEW",link:"/es/streaming-agent.html",buy:"Descargar",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"Un programa gratuito para Windows, Linux y ARM. Recibe el flujo RTSP de la cámara en la red local y lo envÃa a rtsp.me mediante RTMP Push â sin IP estática ni puertos abiertos."}},it:{suptitle:"Prodotti",h2:r.jsxs(r.Fragment,{children:["Soluzione pratica per ospitare ",r.jsx("br",{})," lo streaming video"]}),item1:{h3:"Telecamera di sorveglianza MyVMS 5Mp Bullet",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Acquista",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"Non serve un indirizzo IP statico né configurare il port forwarding. Ha una risoluzione di 2592 x 1944 a 25 fps e un ampio angolo di visione. Il corpo cilindrico in metallo con rating IP-65 garantisce resistenza. Il kit di montaggio è incluso. Obiettivo da 2.8."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Acquista",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"Un dispositivo per collegare telecamere IP senza necessità di un indirizzo IP pubblico. Supporta fino a 8 telecamere IP. Basta installarlo nella tua rete locale e il nostro
67supporto tecnico configurerà lo streaming per te."},item3:{h3:"Agente software RTSP",price:"Gratuito",discount:"NEW",link:"/it/streaming-agent.html",buy:"Scarica",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"Un programma gratuito per Windows, Linux e ARM. Riceve il flusso RTSP della telecamera nella rete locale e lo invia a rtsp.me tramite RTMP Push â senza IP statico né porte aperte."}},tr:{suptitle:"Ãrünler",h2:r.jsxs(r.Fragment,{children:["Canlı video yayınını ",r.jsx("br",{})," barındırmak için pratik çözüm"]}),item1:{h3:"MyVMS 5Mp Bullet Güvenlik Kamerası",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"Satın Al",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"Sabit IP veya port yönlendirme ihtiyacı olmadan çalıÅır. 2592 x 1944 çözünürlükte 25 fpsâe kadar kayıt, geniÅ açı desteÄi sunar. IP-65 sertifikalı metal silindirik gövdesiyle dayanıklıdır. Montaj kiti dahildir. Lens 2.8."},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"Satın Al",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"IP adresi almadan IP kameraları baÄlamaya yarayan bir cihaz. 8 adede kadar IP kamerayı destekler. Yerel aÄınıza baÄlamanız yeterli, gerisini teknik ekibimiz sizin için ayarlar."},item3:{h3:"RTSP Yazılım Ajanı",price:"Ãcretsiz",discount:"NEW",link:"/tr/streaming-agent.html",buy:"İndir",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"Windows, Linux ve ARM için ücretsiz bir program. Kameranın RTSP akıÅını yerel aÄdan alır ve RTMP Push ile rtsp.me'ye gönderir â sabit IP ve açık port gerekmez."}},zh:{suptitle:"产å",h2:r.jsxs(r.Fragment,{children:["æ¹ä¾¿çè§é¢æµæç®¡ ",r.jsx("br",{})," è§£å³æ¹æ¡"]}),item1:{h3:"MyVMS 5Mp Bulletçæ§æåæº",price:"99 Euro",discount:"NEW",link:"https://buy.stripe.com/9AQfZD3Ng1tN288fZ9",buy:"è´ä¹°",webp:"/landing/img/ipcam.webp",fallback:"/landing/img/ipcam.webp",text:"æ éåºå®IPæç«¯å£æ å°ãå辨çå¯è¾¾2592 x 1944ï¼25帧/ç§ï¼å¹¶æä¾å¹¿è§è§éãååºçéå±åæ±å½¢å¤å£³ï¼IP-65çº§é²æ¤ï¼ãå
å«å®è£
å¥ä»¶ãé头为2.8ã"},item2:{h3:"MyVMS Bridge",price:"50 Euro",discount:"NEW",link:"https://buy.stripe.com/5kA28N5Vo5K30004gx",buy:"è´ä¹°",webp:"/landing/img/bridge.webp",fallback:"/landing/img/bridge.webp",text:"æ¤è®¾å¤å¯å¨æ éå
¬ç½IPçæ
åµä¸è¿æ¥IPæåæºãæ¯ææå¤8è·¯IPæåæºãåªéæå®æ¥å
¥ä½ çå±åç½ï¼æä»¬çææ¯æ¯æä¼ä¸ºä½ å®æç´æé
ç½®ã"},item3:{h3:"RTSP 软件代ç",price:"å
è´¹",discount:"NEW",link:"/zh/streaming-agent.html",buy:"ä¸è½½",webp:"/landing/img/agent4.webp",fallback:"/landing/img/agent4.webp",text:"éç¨äº WindowsãLinux å ARM çå
è´¹ç¨åºãå®å¨å±åç½ä¸è·åæåæºç RTSP æµï¼å¹¶éè¿ RTMP Push åéå° rtsp.meââæ éåºå® IP å弿¾ç«¯å£ã"}}},gj=()=>{const{lang:e}=V(),t=fj[e];return r.jsx("section",{className:"products section",id:"products",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"products__top top",children:[r.jsx("span",{className:"products__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"products__h2 h2 anim",children:t.h2})]}),r.jsxs("ul",{className:"products__list list-reset",children:[r.jsxs("li",{className:"products__item",children:[r.jsxs("div",{className:"products__line",children:[r.jsx("h3",{className:"products__h3 h3 anim",children:t.item1.h3}),r.jsx("span",{className:"products__price text",children:t.item1.price})]}),r.jsxs("div",{className:"products__row",children:[r.jsx("span",{className:"products__discount",children:t.item1.discount}),r.jsx("a",{className:"products__link",href:t.item1.link,children:t.item1.buy})]}),r.jsx("div",{className:"products__img",children:r.jsx(le,{webp:t.item1.webp,fallback:t.item1.fallback,width:395,height:300,imgClassName:"lazy",imgStyle:{margin:"0 auto"}})}),r.jsx("p",{className:"products__text text",children:t.item1.text})]}),r.jsxs("li",{className:"products__item",children:[r.jsxs("div",{className:"products__line",children:[r.jsx("h3",{className:"products__h3 h3 anim",children:t.item2.h3}),r.jsx("span",{className:"products__price text",children:t.item2.price})]}),r.jsxs("div",{className:"products__row",children:[r.jsx("span",{className:"products__discount",children:t.item2.discount}),r.jsx("a",{className:"products__link",href:t.item2.link,children:t.item2.buy})]}),r.jsx("div",{className:"products__img",children:r.jsx(le,{webp:t.item2.webp,fallback:t.item2.fallback,width:395,height:300,imgClassName:"lazy",imgStyle:{margin:"0 auto"}})}),r.jsx("p",{className:"products__text text",children:t.item2.text})]}),r.jsxs("li",{className:"products__item",children:[r.jsxs("div",{className:"products__line",children:[r.jsx("h3",{className:"products__h3 h3 anim",children:t.item3.h3}),r.jsx("span",{className:"products__price text",children:t.item3.price})]}),r.jsxs("div",{className:"products__row",children:[r.jsx("span",{className:"products__discount",children:t.item3.discount}),r.jsx("a",{className:"products__link",href:t.item3.link,children:t.item3.buy})]}),r.jsx("div",{className:"products__img",children:r.jsx(le,{webp:t.item3.webp,fallback:t.item3.fallback,width:395,height:300,imgClassName:"lazy",imgStyle:{margin:"0 auto"}})}),r.jsx("p",{className:"products__text text",children:t.item3.text})]})]})]})})},xj={en:{suptitle:"Feedback form",h2:r.jsxs(r.Fragment,{children:["Contact us ",r.jsx("br",{})," with any questions"]}),emailLabel:"ENTER YOUR EMAIL",messageLabel:"Your message:",messagePlaceholder:"Enter your message",submit:"Send",errEmail:"error email.",errEmailEmpty:"email?",errText:"need text.",errNetwork:"Failed to send. Please try again.",sending:"Sendingâ¦",sent:"Message sent!"},ru:{suptitle:"ÑоÑма обÑаÑной ÑвÑзи",h2:r.jsxs(r.Fragment,{children:["ÑвÑжиÑеÑÑ Ñ Ð½Ð°Ð¼Ð¸ ",r.jsx("br",{})," по лÑбÑм вопÑоÑам"]}),emailLabel:"ÐÐÐÐÐТРÐÐШ EMAIL",messageLabel:"ÐаÑе ÑообÑение:",messagePlaceholder:"ÐведиÑе ваÑе ÑообÑение",submit:"оÑпÑавиÑÑ",errEmail:"невеÑнÑй email",errEmailEmpty:"ÑкажиÑе email",errText:"введиÑе ÑообÑение",errNetwork:"Ðе ÑдалоÑÑ Ð¾ÑпÑавиÑÑ. ÐопÑобÑйÑе еÑÑ Ñаз.",sending:"ÐÑпÑавкаâ¦",sent:"СообÑение оÑпÑавлено!"},de:{suptitle:"Kontaktformular",h2:r.jsxs(r.Fragment,{children:["Kontaktieren Sie uns ",r.jsx("br",{})," bei Fragen"]}),emailLabel:"GEBEN SIE IHRE E-MAIL EIN",messageLabel:"Ihre Nachricht:",messagePlaceholder:"Geben Sie Ihre Nachricht ein",submit:"Senden",errEmail:"ungültige E-Mail",errEmailEmpty:"E-Mail angeben",errText:"Nachricht eingeben",errNetwork:"Senden fehlgeschlagen. Bitte erneut versuchen.",sending:"Wird gesendetâ¦",sent:"Nachricht gesendet!"},pr:{suptitle:"Formulário de contato",h2:r.jsxs(r.Fragment,{children:["Entre em contato ",r.jsx("br",{}
67)," para qualquer dúvida"]}),emailLabel:"INSIRA SEU E-MAIL",messageLabel:"Sua mensagem:",messagePlaceholder:"Digite sua mensagem",submit:"Enviar",errEmail:"e-mail inválido",errEmailEmpty:"informe o e-mail",errText:"digite a mensagem",errNetwork:"Falha ao enviar. Tente novamente.",sending:"Enviandoâ¦",sent:"Mensagem enviada!"},fr:{suptitle:"Formulaire de contact",h2:r.jsxs(r.Fragment,{children:["Contactez-nous ",r.jsx("br",{})," pour toute question"]}),emailLabel:"ENTREZ VOTRE EMAIL",messageLabel:"Votre message :",messagePlaceholder:"Saisissez votre message",submit:"Envoyer",errEmail:"email invalide",errEmailEmpty:"indiquez votre email",errText:"saisissez un message",errNetwork:"Ãchec de l'envoi. Veuillez réessayer.",sending:"Envoiâ¦",sent:"Message envoyé !"},es:{suptitle:"Formulario de contacto",h2:r.jsxs(r.Fragment,{children:["Contáctanos ",r.jsx("br",{})," para cualquier consulta"]}),emailLabel:"INGRESA TU CORREO ELECTRÃNICO",messageLabel:"Tu mensaje:",messagePlaceholder:"Escribe tu mensaje",submit:"Enviar",errEmail:"correo inválido",errEmailEmpty:"indica tu correo",errText:"escribe un mensaje",errNetwork:"No se pudo enviar. Inténtalo de nuevo.",sending:"Enviandoâ¦",sent:"¡Mensaje enviado!"},it:{suptitle:"Modulo di contatto",h2:r.jsxs(r.Fragment,{children:["Contattaci ",r.jsx("br",{})," per qualsiasi domanda"]}),emailLabel:"INSERISCI LA TUA EMAIL",messageLabel:"Il tuo messaggio:",messagePlaceholder:"Inserisci il tuo messaggio",submit:"Invia",errEmail:"email non valida",errEmailEmpty:"inserisci l'email",errText:"inserisci un messaggio",errNetwork:"Invio non riuscito. Riprova.",sending:"Invioâ¦",sent:"Messaggio inviato!"},tr:{suptitle:"İletiÅim Formu",h2:r.jsxs(r.Fragment,{children:["Herhangi bir sorunuz için ",r.jsx("br",{})," bizimle iletiÅime geçin"]}),emailLabel:"E-POSTA ADRESİNİZİ GİRİN",messageLabel:"Mesajınız:",messagePlaceholder:"Mesajınızı girin",submit:"Gönder",errEmail:"geçersiz e-posta",errEmailEmpty:"e-posta girin",errText:"mesaj girin",errNetwork:"Gönderilemedi. Lütfen tekrar deneyin.",sending:"Gönderiliyorâ¦",sent:"Mesaj gönderildi!"},zh:{suptitle:"è系表å",h2:r.jsxs(r.Fragment,{children:["æä»»ä½é®é¢ï¼æ¬¢è¿ ",r.jsx("br",{})," èç³»æä»¬"]}),emailLabel:"è¾å
¥çµåé®ç®±",messageLabel:"ä½ çä¿¡æ¯ï¼",messagePlaceholder:"请è¾å
¥ä½ çä¿¡æ¯",submit:"åé",errEmail:"é®ç®±æ æ",errEmailEmpty:"请è¾å
¥é®ç®±",errText:"请è¾å
¥ä¿¡æ¯",errNetwork:"åé失败ï¼è¯·éè¯ã",sending:"åéä¸â¦",sent:"ä¿¡æ¯å·²åéï¼"}},vj=()=>{const{lang:e}=V(),t=xj[e],[n,a]=x.useState(""),[s,i]=x.useState(""),[l,o]=x.useState(""),[u,c]=x.useState([]),[p,m]=x.useState(!1),[h,v]=x.useState(!1),j=async b=>{if(b.preventDefault(),p)return;const S=[];if(n.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n.trim())||S.push(t.errEmail):S.push(t.errEmailEmpty),s.trim()||S.push(t.errText),c(S),!(S.length>0)){if(l){v(!0),a(""),i("");return}m(!0);try{const f=await fetch(`${Ra.apiUrl}/feedback`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:n.trim(),message:s.trim(),lang:e,website:""})});if(!f.ok)throw new Error(`feedback failed: ${f.status}`);v(!0),a(""),i("")}catch{c([t.errNetwork])}finally{m(!1)}}};return r.jsx("section",{className:"callback section",id:"callback",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"callback__top top",children:[r.jsx("span",{className:"callback__suptitle suptitle",children:t.suptitle}),r.jsx("h2",{className:"callback__h2 h2 anim",children:t.h2})]}),r.jsxs("div",{className:"callback__inner",children:[r.jsx("div",{className:"callback__img anim-scale",children:r.jsx(le,{webp:"/landing/img/main/callback.webp",fallback:"/landing/img/main/callback.png",width:869,height:510,imgClassName:"img lazy",style:{display:"block",width:"100%",height:"100%"},imgStyle:{objectFit:"cover"}})}),r.jsxs("form",{className:"callback__form",onSubmit:j,children:[r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label ",children:t.emailLabel}),r.jsx("input",{className:"form__input input-reset input-name ",type:"email",name:"email",placeholder:"[email protected]",value:n,onChange:b=>{a(b.currentTarget.value),v(!1)}})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:t.messageLabel}),r.jsx("textarea",{className:"form__input form__input--textarea input-reset",name:"text",placeholder:t.messagePlaceholder,value:s,onChange:b=>
67{i(b.currentTarget.value),v(!1)}})]}),r.jsx("div",{"aria-hidden":"true",style:{position:"absolute",left:"-9999px",top:"-9999px",width:"1px",height:"1px",overflow:"hidden"},children:r.jsxs("label",{children:["Website",r.jsx("input",{type:"text",name:"website",tabIndex:-1,autoComplete:"off",value:l,onChange:b=>o(b.currentTarget.value)})]})}),r.jsxs("div",{className:"form__group",children:[u.length>0&&r.jsxs("div",{style:{color:"red"},children:["â ",u.join(" · ")]}),h&&r.jsx("div",{style:{color:"green"},children:t.sent})]}),r.jsx("button",{className:"form__btn btn btn--red btn-reset",type:"submit",disabled:p,children:p?t.sending:t.submit}),r.jsx("h2",{children:r.jsxs("center",{children:["RTSP Streaming Support Team ",r.jsx("br",{}),"[email protected]"]})})]})]})]})})},rl=(e,t)=>`/${e==="pr"?"pt":e}/${t}.html`,bj=new Set(["marina","beach","ski","camping","weather","sports","carwash","autoservice","restaurant","retail","beauty","parking","building","warehouse","factory","logistics","gas-station","server-room","pets","farm","childrengarden","museum","religion","wedding"]),yj={en:{title:"Ready-made solutions",intro:"Proven setups for live streaming, remote monitoring and cloud video archives â for businesses, public spaces and special-purpose sites.",groups:[{title:"Tourism and open venues",items:[{slug:"marina",label:"Marinas and yacht clubs"},{slug:"beach",label:"Seaside hotels and beaches"},{slug:"golf",label:"Golf courses and clubs"},{slug:"ski",label:"Ski resorts"},{slug:"camping",label:"Campgrounds and RV parks"},{slug:"fishing",label:"Fishing lodges"},{slug:"surfing",label:"Surfing and kitesurfing"},{slug:"weather",label:"Weather cameras"},{slug:"sports",label:"Sports events"},{slug:"pool",label:"Swimming pools and water parks"}]},{title:"Customer-facing business",items:[{slug:"carwash",label:"Car washes"},{slug:"autoservice",label:"Auto repair shops"},{slug:"tire",label:"Tire services"},{slug:"fastfood",label:"Fast food outlets"},{slug:"restaurant",label:"Restaurants and cafés"},{slug:"flowers",label:"Flower shops"},{slug:"retail",label:"Shops and supermarkets"},{slug:"beauty",label:"Beauty salons"},{slug:"coworking",label:"Coworking spaces"},{slug:"education",label:"Lectures, classes and conferences"},{slug:"parking",label:"Parking lots"},{slug:"ev-charging",label:"EV charging stations"}]},{title:"Industry and infrastructure",items:[{slug:"city-administration",label:"City administrations"},{slug:"building",label:"Construction sites"},{slug:"warehouse",label:"Warehouses and pickup points"},{slug:"factory",label:"Manufacturing"},{slug:"logistics",label:"Logistics centers"},{slug:"port",label:"Ports and terminals"},{slug:"airport",label:"Airports"},{slug:"machinery",label:"Construction machinery"},{slug:"gas-station",label:"Gas stations"},{slug:"server-room",label:"Server rooms"},{slug:"recycling",label:"Recycling and collection points"}]},{title:"Care, culture and agriculture",items:[{slug:"pets",label:"Pet boarding and grooming"},{slug:"horse",label:"Equestrian clubs"},{slug:"farm",label:"Farms"},{slug:"greenhouse",label:"Greenhouses"},{slug:"childrengarden",label:"Nurseries and kindergartens"},{slug:"pharmacy",label:"Pharmacies"},{slug:"museum",label:"Museums and exhibitions"},{slug:"religion",label:"Services and sermons"},{slug:"wedding",label:"Wedding ceremonies"},{slug:"funeral",label:"Memorial services"}]}],guidesTitle:"Camera setup by manufacturer",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision and HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Frequently asked questions",faq:[{slug:"what-is-rtsp",label:"What the RTSP protocol is"},{slug:"how-to-create-online-stream",label:"How to create a live stream on a website"},{slug:"how-to-create-free-stream",label:"How to create a stream for free"},{slug:"live-streaming-for-company-marketing",label:"How live streams help marketing"},{slug:"how-to-embed-stream-on-website",label:"How to embed a stream on your website"},{slug:"how-to-protect-stream-from-copying",label:"How to protect a stream from copying"},{slug:"where-to-find-rtsp-url",label:"Where to find your camera's RTSP link"},{slug:"how-to-configure-port-forwarding",label:"How to set up port mapping"},{slug:"recommended-ip-camera-settings",label:"Recommended IP camera settings"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push without a static IP"},{slug:"how-to-stream-without-static-ip",label:"Streaming without a static IP"},{slug:"streaming-agent",label:"Agent for streaming without a static IP"},{slug:"cloud-service-vs-own-server",label:"Cloud service or your own server"},{slug:"how-to-stream-ip-camera-to-youtube",label:"How to stream an IP camera to YouTube"},{slug:"personal-account",label:"rtsp.me personal account"},{slug:"our-streaming-equipment",label:"Our streaming equipment"},{slug:"cloud-video-surveillance",label:"Cloud video surveillance from IP cameras"},{slug:"payment-terms",label:"Payment terms"}]},ru:{title:"ТиповÑе ÑеÑениÑ",intro:"ÐоÑовÑе ÑÑенаÑии онлайн-ÑÑанÑлÑÑий, ÑдалÑнного наблÑÐ´ÐµÐ½Ð¸Ñ Ð¸ видеоаÑÑ
ива Ð´Ð»Ñ Ð±Ð¸Ð·Ð½ÐµÑа, обÑеÑÑвеннÑÑ
пÑоÑÑÑанÑÑв и ÑпеÑиалÑнÑÑ
обÑекÑов.",groups:[{title:"ТÑÑизм и оÑкÑÑÑÑе плоÑадки",items:[{slug:"marina",label:"ÐаÑÐ¸Ð½Ñ Ð¸ ÑÑ
Ñ-клÑбÑ"},{slug:"beach",label:"ÐÑели Ñ Ð¼Ð¾ÑÑ Ð¸ плÑжи"},{slug:"golf",label:"ÐолÑÑ-Ð¿Ð¾Ð»Ñ Ð¸ клÑбÑ"},{slug:"ski",label:"ÐоÑнолÑжнÑе кÑÑоÑÑÑ"},{slug:"camping",label:"Ðемпинги и Ð±Ð°Ð·Ñ Ð¾ÑдÑÑ
а"},{slug:"fishing",label:"Ð ÑболовнÑе базÑ"},{slug:"surfing",label:"СеÑÑинг и кайÑÑеÑÑинг"},{slug:"weather",label:"ÐогоднÑе камеÑÑ"},{slug:"sports",label:"СпоÑÑивнÑе меÑопÑиÑÑиÑ"},{slug:"pool",label:"ÐаÑÑÐµÐ¹Ð½Ñ Ð¸ аквапаÑки"}]},{title:"ÐлиенÑÑкий бизнеÑ",items:[{slug:"carwash",label:"ÐвÑомойки"},{slug:"autoservice",label:"ÐвÑоÑеÑвиÑÑ"},{slug:"tire",label:"ШиномонÑажи"},{slug:"fastfood",label:"ÐÐ°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð±ÑÑÑÑого пиÑаниÑ"},{slug:"restaurant",label:"РеÑÑоÑÐ°Ð½Ñ Ð¸ каÑе"},{slug:"flowers",label:"ЦвеÑоÑнÑе магазинÑ"}
67,{slug:"retail",label:"ÐÐ°Ð³Ð°Ð·Ð¸Ð½Ñ Ð¸ ÑÑпеÑмаÑкеÑÑ"},{slug:"beauty",label:"Ð¡Ð°Ð»Ð¾Ð½Ñ ÐºÑаÑоÑÑ"},{slug:"coworking",label:"ÐовоÑкинги"},{slug:"education",label:"ÐекÑии, занÑÑÐ¸Ñ Ð¸ конÑеÑенÑии"},{slug:"parking",label:"ÐаÑковки"},{slug:"ev-charging",label:"ÐаÑÑднÑе ÑÑанÑии"}]},{title:"ÐÑомÑÑленноÑÑÑ Ð¸ инÑÑаÑÑÑÑкÑÑÑа",items:[{slug:"city-administration",label:"ÐдминиÑÑÑаÑии гоÑодов"},{slug:"building",label:"СÑÑоиÑелÑнÑе плоÑадки"},{slug:"warehouse",label:"Ð¡ÐºÐ»Ð°Ð´Ñ Ð¸ пÑнкÑÑ Ð²ÑдаÑи"},{slug:"factory",label:"ÐÑоизводÑÑво"},{slug:"logistics",label:"ÐогиÑÑиÑеÑкие ÑенÑÑÑ"},{slug:"port",label:"ÐоÑÑÑ Ð¸ ÑеÑминалÑ"},{slug:"airport",label:"ÐÑÑопоÑÑÑ"},{slug:"machinery",label:"СÑÑоиÑелÑÐ½Ð°Ñ ÑеÑ
ника"},{slug:"gas-station",label:"ÐÐС"},{slug:"server-room",label:"СеÑвеÑнÑе помеÑениÑ"},{slug:"recycling",label:"ÐеÑеÑабоÑка и пÑнкÑÑ Ð¿ÑиÑма"}]},{title:"ÐабоÑа, кÑлÑÑÑÑа и Ñ
озÑйÑÑво",items:[{slug:"pets",label:"ÐоогоÑÑиниÑÑ Ð¸ гÑÑминг"},{slug:"horse",label:"ÐоннÑе клÑбÑ"},{slug:"farm",label:"ФеÑмÑ"},{slug:"greenhouse",label:"ТеплиÑÑ"},{slug:"childrengarden",label:"ÐеÑÑкие ÑадÑ"},{slug:"pharmacy",label:"ÐпÑеки"},{slug:"museum",label:"ÐÑзеи и вÑÑÑавки"},{slug:"religion",label:"ÐогоÑлÑÐ¶ÐµÐ½Ð¸Ñ Ð¸ пÑоповеди"},{slug:"wedding",label:"СвадебнÑе ÑеÑемонии"},{slug:"funeral",label:"ЦеÑемонии пÑоÑаниÑ"}]}],guidesTitle:"ÐаÑÑÑойка ÐºÐ°Ð¼ÐµÑ Ð¿Ð¾ пÑоизводиÑелÑм",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision и HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"ЧаÑÑо задаваемÑе вопÑоÑÑ",faq:[{slug:"what-is-rtsp",label:"ЧÑо Ñакое пÑоÑокол RTSP"},{slug:"how-to-create-online-stream",label:"Ðак ÑоздаÑÑ Ð¾Ð½Ð»Ð°Ð¹Ð½-ÑÑанÑлÑÑÐ¸Ñ Ð½Ð° ÑайÑе"},{slug:"how-to-create-free-stream",label:"Ðак ÑоздаÑÑ ÑÑанÑлÑÑÐ¸Ñ Ð±ÐµÑплаÑно"},{slug:"live-streaming-for-company-marketing",label:"Чем ÑÑанÑлÑÑии Ð¿Ð¾Ð»ÐµÐ·Ð½Ñ Ð´Ð»Ñ Ð¼Ð°ÑкеÑинга"},{slug:"how-to-embed-stream-on-website",label:"Ðак ÑазмеÑÑиÑÑ ÑÑанÑлÑÑÐ¸Ñ Ð½Ð° ваÑем ÑайÑе"},{slug:"how-to-protect-stream-from-copying",label:"Ðак заÑиÑиÑÑ ÑÑанÑлÑÑÐ¸Ñ Ð¾Ñ ÐºÐ¾Ð¿Ð¸ÑованиÑ"},{slug:"where-to-find-rtsp-url",label:"Ðде найÑи RTSP-ÑÑÑÐ»ÐºÑ ÐºÐ°Ð¼ÐµÑÑ"},{slug:"how-to-configure-port-forwarding",label:"Ðак наÑÑÑоиÑÑ Port Mapping"},{slug:"recommended-ip-camera-settings",label:"РекомендÑемÑе наÑÑÑойки IP-камеÑÑ"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push без ÑÑаÑиÑеÑкого IP"},{slug:"how-to-stream-without-static-ip",label:"ТÑанÑлÑÑÐ¸Ñ Ð±ÐµÐ· ÑÑаÑиÑеÑкого IP"},{slug:"streaming-agent",label:"ÐÐ³ÐµÐ½Ñ Ð´Ð»Ñ ÑÑанÑлÑÑии без ÑÑаÑиÑеÑкого IP"},{slug:"cloud-service-vs-own-server",label:"СеÑÐ²Ð¸Ñ Ð¸Ð»Ð¸ ÑобÑÑвеннÑй ÑеÑвеÑ"},{slug:"how-to-stream-ip-camera-to-youtube",label:"Ðак ÑÑанÑлиÑоваÑÑ IP-камеÑÑ Ð½Ð° YouTube"},{slug:"how-to-stream-ip-camera-to-vk-video",label:"Ðак ÑÑанÑлиÑоваÑÑ IP-камеÑÑ Ð² VK Ðидео"},{slug:"personal-account",label:"ÐиÑнÑй ÐºÐ°Ð±Ð¸Ð½ÐµÑ rtsp.ru"},{slug:"our-streaming-equipment",label:"ÐаÑе обоÑÑдование Ð´Ð»Ñ ÑÑанÑлÑÑии"},{slug:"cloud-video-surveillance",label:"ÐблаÑное видеонаблÑдение Ñ IP-камеÑ"},{slug:"payment-terms",label:"УÑÐ»Ð¾Ð²Ð¸Ñ Ð¾Ð¿Ð»Ð°ÑÑ"}]},de:{title:"Fertige Lösungen",intro:"Bewährte Lösungen für Livestreams, Fernüberwachung und Cloud-Videoarchive â für Unternehmen, öffentliche Räume und Spezialobjekte.",groups:[{title:"Tourismus und Freiflächen",items:[{slug:"marina",label:"Marinas und Yachtclubs"},{slug:"beach",label:"Strandhotels und Strände"},{slug:"golf",label:"Golfplätze und -clubs"},{slug:"ski",label:"Skigebiete"},{slug:"camping",label:"Campingplätze und Wohnmobilstellplätze"},{slug:"fishing",label:"Angelcamps"},{slug:"surfing",label:"Surfen und Kitesurfen"},{slug:"weather",label:"Wetterkameras"},{slug:"sports",label:"Sportveranstaltungen"},{slug:"pool",label:"Schwimmbäder und Wasserparks"}]},{title:"Kundenorientierte Betriebe",items:[{slug:"carwash",label:"Autowaschanlagen"},{slug:"autoservice",label:"Autowerkstätten"},{slug:"tire",label:"Reifendienste"},{slug:"fastfood",label:"Schnellimbisse"},{slug:"restaurant",label:"Restaurants und Cafés"},{slug:"flowers",label:"Blumenläden"},{slug:"retail",label:"Geschäfte und Supermärkte"},{slug:"beauty",label:"Kosmetiksalons"},{slug:"coworking",label:"Coworking-Spaces"},{slug:"education",label:"Vorträge, Kurse und Konferenzen"},{slug:"parking",label:"Parkplätze"},{slug:"ev-charging",label:"Ladestationen für Elektrofahrzeuge"}]},{title:"Industrie und Infrastruktur",items:[{slug:"city-administration",label:"Stadtverwaltungen"},{slug:"building",label:"Baustellen"},{slug:"warehouse",label:"Lagerhäuser und Abholstationen"},{slug:"factory",label:"Fertigung"},{slug:"logistics",label:"Logistikzentren"},{slug:"port",label:"Häfen und Terminals"},{slug:"airport",label:"Flughäfen"},{slug:"machinery",label:"Baumaschinen"},{slug:"gas-station",label:"Tankstellen"},{slug:"server-room",label:"Serverräume"},{slug:"recycling",label:"Recycling- und Sammelstellen"}]},{title:"Betreuung, Kultur und Landwirtschaft",items:[{slug:"pets",label:"Tierpensionen und Tierpflegesalons"},{slug:"horse",label:"Reitställe"},{slug:"farm",label:"Bauernhöfe"},{slug:"greenhouse",label:"Gewächshäuser"},{slug:"childrengarden",label:"Kinderkrippen und Kindergärten"},{slug:"pharmacy",label:"Apotheken"},{slug:"museum",label:"Museen und Ausstellungen"},{slug:"religion",label:"Gottesdienste und Predigten"},{slug:"wedding",label:"Hochzeitszeremonien"},{slug:"funeral",label:"Trauerfeiern"}]}],guidesTitle:"Kameraeinrichtung nach Hersteller",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision und HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Häufig gestellte Fragen",faq:[{slug:"what-is-rtsp",label:"Was das RTSP-Protokoll ist"},{slug:"how-to-create-online-stream",label:"Wie man einen Livestream auf einer Website erstellt"},{slug:"how-to-create-free-stream",label:"Wie man kostenlos einen Stream erstellt"},{slug:"live-streaming-for-company-marketing",label:"Wie Livestreams dem Marketing helfen"},{slug:"how-to-embed-stream-on-website",label:"Wie man einen Stream auf der eigenen Website einbettet"},{slug:"how-to-protect-stream-from-copying",label:"Wie man einen Stream vor dem Kopieren sc
67hützt"},{slug:"where-to-find-rtsp-url",label:"Wo man den RTSP-Link der Kamera findet"},{slug:"how-to-configure-port-forwarding",label:"Wie man die Portweiterleitung einrichtet"},{slug:"recommended-ip-camera-settings",label:"Empfohlene Einstellungen für IP-Kameras"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push ohne statische IP"},{slug:"how-to-stream-without-static-ip",label:"Streaming ohne statische IP-Adresse"},{slug:"streaming-agent",label:"Streaming-Agent ohne statische IP-Adresse"},{slug:"cloud-service-vs-own-server",label:"Cloud-Dienst oder eigener Server"},{slug:"how-to-stream-ip-camera-to-youtube",label:"IP-Kamera auf YouTube streamen"},{slug:"personal-account",label:"Persönliches rtsp.me-Konto"},{slug:"our-streaming-equipment",label:"Unsere Streaming-Ausrüstung"},{slug:"cloud-video-surveillance",label:"Cloud-Videoüberwachung mit IP-Kameras"},{slug:"payment-terms",label:"Zahlungsbedingungen"}]},pr:{title:"Soluções prontas",intro:"Configurações comprovadas para transmissão ao vivo, monitoramento remoto e arquivo de vÃdeo na nuvem â para empresas, espaços públicos e locais especiais.",groups:[{title:"Turismo e espaços abertos",items:[{slug:"marina",label:"Marinas e clubes náuticos"},{slug:"beach",label:"Hotéis à beira-mar e praias"},{slug:"golf",label:"Campos e clubes de golfe"},{slug:"ski",label:"Estações de esqui"},{slug:"camping",label:"Campings e áreas para motorhomes"},{slug:"fishing",label:"Pousadas de pesca"},{slug:"surfing",label:"Surfe e kitesurf"},{slug:"weather",label:"Câmeras meteorológicas"},{slug:"sports",label:"Eventos esportivos"},{slug:"pool",label:"Piscinas e parques aquáticos"}]},{title:"Negócios de atendimento ao público",items:[{slug:"carwash",label:"Lava-rápidos"},{slug:"autoservice",label:"Oficinas mecânicas"},{slug:"tire",label:"Borracharias"},{slug:"fastfood",label:"Estabelecimentos de fast food"},{slug:"restaurant",label:"Restaurantes e cafés"},{slug:"flowers",label:"Floriculturas"},{slug:"retail",label:"Lojas e supermercados"},{slug:"beauty",label:"Salões de beleza"},{slug:"coworking",label:"Espaços de coworking"},{slug:"education",label:"Palestras, aulas e conferências"},{slug:"parking",label:"Estacionamentos"},{slug:"ev-charging",label:"Estações de recarga para veÃculos elétricos"}]},{title:"Indústria e infraestrutura",items:[{slug:"city-administration",label:"Prefeituras"},{slug:"building",label:"Canteiros de obras"},{slug:"warehouse",label:"Armazéns e pontos de retirada"},{slug:"factory",label:"Fábricas"},{slug:"logistics",label:"Centros de logÃstica"},{slug:"port",label:"Portos e terminais"},{slug:"airport",label:"Aeroportos"},{slug:"machinery",label:"Máquinas de construção"},{slug:"gas-station",label:"Postos de combustÃvel"},{slug:"server-room",label:"Salas de servidores"},{slug:"recycling",label:"Reciclagem e pontos de coleta"}]},{title:"Cuidado, cultura e agricultura",items:[{slug:"pets",label:"Hotéis para pets e banho e tosa"},{slug:"horse",label:"Clubes de hipismo"},{slug:"farm",label:"Fazendas"},{slug:"greenhouse",label:"Estufas"},{slug:"childrengarden",label:"Creches e pré-escolas"},{slug:"pharmacy",label:"Farmácias"},{slug:"museum",label:"Museus e exposições"},{slug:"religion",label:"Cultos e sermões"},{slug:"wedding",label:"Cerimônias de casamento"},{slug:"funeral",label:"Cerimônias fúnebres"}]}],guidesTitle:"Configuração de câmeras por fabricante",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision e HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Perguntas frequentes",faq:[{slug:"what-is-rtsp",label:"O que é o protocolo RTSP"},{slug:"how-to-create-online-stream",label:"Como criar uma transmissão ao vivo em um site"},{slug:"how-to-create-free-stream",label:"Como criar uma transmissão gratuitamente"},{slug:"live-streaming-for-company-marketing",label:"Como as transmissões ao vivo ajudam o marketing"},{slug:"how-to-embed-stream-on-website",label:"Como incorporar uma transmissão no seu site"},{slug:"how-to-protect-stream-from-copying",label:"Como proteger uma transmissão contra cópia"},{slug:"where-to-find-rtsp-url",label:"Onde encontrar o link RTSP da sua câmera"},{slug:"how-to-configure-port-forwarding",label:"Como configurar o redirecionamento de portas"},{slug:"recommended-ip-camera-settings",label:"Configurações recomendadas para câmeras IP"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push sem IP fixo"},{slug:"how-to-stream-without-static-ip",label:"Transmissão sem endereço IP fixo"},{slug:"streaming-agent",label:"Agente de transmissão sem endereço IP fixo"},{slug:"cloud-service-vs-own-server",label:"Serviço em nuvem ou servidor próprio"},{slug:"how-to-stream-ip-camera-to-youtube",label:"Como transmitir uma câmera IP para o YouTube"},{slug:"personal-account",label:"Conta pessoal no rtsp.me"},{slug:"our-streaming-equipment",label:"Nosso equipamento de transmissão"},{slug:"cloud-video-surveillance",label:"Videovigilância na nuvem com câmeras IP"},{slug:"payment-terms",label:"Condições de pagamento"}]},fr:{title:"Solutions prêtes à l'emploi",intro:"Des configurations éprouvées pour la diffusion en direct, la surveillance à distance et l'archive dans le cloud â pour les entreprises, les espaces publics et les sites spécialisés.",groups:[{title:"Tourisme et espaces ouverts",
67items:[{slug:"marina",label:"Marinas et clubs nautiques"},{slug:"beach",label:"Hôtels de bord de mer et plages"},{slug:"golf",label:"Golfs et clubs de golf"},{slug:"ski",label:"Stations de ski"},{slug:"camping",label:"Campings et aires pour camping-cars"},{slug:"fishing",label:"Gîtes de pêche"},{slug:"surfing",label:"Surf et kitesurf"},{slug:"weather",label:"Caméras météo"},{slug:"sports",label:"Ãvénements sportifs"},{slug:"pool",label:"Piscines et parcs aquatiques"}]},{title:"Commerces et services clients",items:[{slug:"carwash",label:"Stations de lavage automobile"},{slug:"autoservice",label:"Garages automobiles"},{slug:"tire",label:"Centres de pneumatiques"},{slug:"fastfood",label:"Ãtablissements de restauration rapide"},{slug:"restaurant",label:"Restaurants et cafés"},{slug:"flowers",label:"Fleuristes"},{slug:"retail",label:"Magasins et supermarchés"},{slug:"beauty",label:"Salons de beauté"},{slug:"coworking",label:"Espaces de coworking"},{slug:"education",label:"Cours, formations et conférences"},{slug:"parking",label:"Parkings"},{slug:"ev-charging",label:"Bornes de recharge électrique"}]},{title:"Industrie et infrastructures",items:[{slug:"city-administration",label:"Administrations municipales"},{slug:"building",label:"Chantiers de construction"},{slug:"warehouse",label:"Entrepôts et points de retrait"},{slug:"factory",label:"Sites de fabrication"},{slug:"logistics",label:"Centres logistiques"},{slug:"port",label:"Ports et terminaux"},{slug:"airport",label:"Aéroports"},{slug:"machinery",label:"Engins de chantier"},{slug:"gas-station",label:"Stations-service"},{slug:"server-room",label:"Salles de serveurs"},{slug:"recycling",label:"Centres de recyclage et de collecte"}]},{title:"Soins, culture et agriculture",items:[{slug:"pets",label:"Pensions et toilettage pour animaux"},{slug:"horse",label:"Clubs équestres"},{slug:"farm",label:"Fermes"},{slug:"greenhouse",label:"Serres"},{slug:"childrengarden",label:"Crèches et écoles maternelles"},{slug:"pharmacy",label:"Pharmacies"},{slug:"museum",label:"Musées et expositions"},{slug:"religion",label:"Offices et sermons"},{slug:"wedding",label:"Cérémonies de mariage"},{slug:"funeral",label:"Cérémonies funéraires"}]}],guidesTitle:"Configuration des caméras par fabricant",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision et HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Foire aux questions",faq:[{slug:"what-is-rtsp",label:"Qu'est-ce que le protocole RTSP"},{slug:"how-to-create-online-stream",label:"Comment créer une diffusion en direct sur un site web"},{slug:"how-to-create-free-stream",label:"Comment créer une diffusion gratuitement"},{slug:"live-streaming-for-company-marketing",label:"En quoi les diffusions en direct sont utiles au marketing"},{slug:"how-to-embed-stream-on-website",label:"Comment intégrer une diffusion sur votre site"},{slug:"how-to-protect-stream-from-copying",label:"Comment protéger une diffusion contre la copie"},{slug:"where-to-find-rtsp-url",label:"Où trouver le lien RTSP de votre caméra"},{slug:"how-to-configure-port-forwarding",label:"Comment configurer la redirection de ports"},{slug:"recommended-ip-camera-settings",label:"Paramètres recommandés pour une caméra IP"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push sans IP statique"},{slug:"how-to-stream-without-static-ip",label:"Diffusion sans adresse IP statique"},{slug:"streaming-agent",label:"Agent de diffusion sans adresse IP statique"},{slug:"cloud-service-vs-own-server",label:"Service cloud ou serveur personnel"},{slug:"how-to-stream-ip-camera-to-youtube",label:"Diffuser une caméra IP sur YouTube"},{slug:"personal-account",label:"Compte personnel rtsp.me"},{slug:"our-streaming-equipment",label:"Notre matériel de diffusion"},{slug:"cloud-video-surveillance",label:"Vidéosurveillance dans le cloud depuis des caméras IP"},{slug:"payment-terms",label:"Conditions de paiement"}]},es:{title:"Soluciones listas para usar",intro:"Configuraciones probadas para transmisión en directo, monitorización remota y archivo de vÃdeo en la nube, para empresas, espacios públicos y sitios de uso especial.",groups:[{title:"Turismo y espacios abiertos",items:[{slug:"marina",label:"Marinas y clubes náuticos"},{slug:"beach",label:"Hoteles junto al mar y playas"},{slug:"golf",label:"Campos y clubes de golf"},{slug:"ski",label:"Estaciones de esquÃ"},{slug:"camping",label:"Campings y áreas de autocaravanas"},{slug:"fishing",label:"Albergues de pesca"},{slug:"surfing",label:"Surf y kitesurf"},{slug:"weather",label:"Cámaras meteorológicas"},{slug:"sports",label:"Eventos deportivos"},{slug:"pool",label:"Piscinas y parques acuáticos"}]},{title:"Negocios de cara al cliente",items:[{slug:"carwash",label:"Lavaderos de coches"},{slug:"autoservice",label:"Talleres mecánicos"},{slug:"tire",label:"Talleres de neumáticos"},{slug:"fastfood",label:"Locales de comida rápida"},{slug:"restaurant",label:"Restaurantes y cafeterÃas"},{slug:"flowers",label:"FloristerÃas"},{slug:"retail",label:"Tiendas y supermercados"},{slug:"beauty",label:"Salones de belleza"},{slug:"coworking",label:"Espacios de coworking"},{slug:"education",label:"Clases, cursos y conferencias"},{slug:"parking",label:"Aparcamientos"},{slug:"ev-charging",label:"Estaciones de carga para vehÃculos eléctricos"}]},{title:"Industria e infraestructura",items:[{slug:"city-administration",label:"Administraciones municipales"},{slug:"building",label:"Obras de construcción"},{slug:"warehouse",label:"Almacenes y puntos de recogida"},{slug:"factory",label:"Fabricación"},{slug:"logistics",label:"Centros logÃsticos"},{slug:"port",label:"Puertos y terminales"},{slug:"airport",label:"Aeropuertos"},{slug:"machinery",label:"Maquinaria de construcción"},{slug:"gas-station",label:"Gasolineras"},{slug:"server-room",label:"Salas de servidores"},{slug:"recycling",label:"Puntos de reciclaje y recogida"}]},{title:"Cuidado, cultura y agricultura",items:[{slug:"pets",label:"Residencias y peluquerÃas para mascotas"},{slug:"horse",label:"Clubes hÃpicos"},{slug:"farm",label:"Granjas"},{slug:"greenhouse",label:"Invernaderos"},{slug:"childrengarden",label:"GuarderÃas y jardines de infancia"},{slug:"pharmacy",label:"Farmacias"},{slug:"museum",label:"Museos y exposiciones"},{slug:"religion",label:"Servicios religiosos y sermones"},{slug:"wedding",label:"Ceremonias de boda"},{slug:"funeral",label:"Ceremonias fúnebres"}]}],guidesTitle:"Configuración de cámaras por fabricante",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision y HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Preguntas frecuentes",faq:[{slug:"what-is-rtsp",label:"Qué es el protocolo RTSP"},{slug:"how-to-create-online-stream",label:"Cómo crear una transmisión en directo en un sitio web"},{slug:"how-to-create-free-stream",label:"Cómo crear una transmisión gratis"},{slug:"live-streaming-for-company-marketing",label:"Cómo ayudan las transmisiones en directo al marketing"},{slug:"how-to-embed-stream-on-website",label:"Cómo insertar una transmisión en tu sitio web"},{slug:"how-to-protect-stream-from-copying",label:"Cómo proteger una transmisión de la copia"},{slug:"where-to-find-rtsp-url",label:"Dónde encontrar el enlace RTSP de tu cámara"},{slug:"how-to-configure-port-forwarding",label:"Cómo configurar la redirección de puertos"},{slug:"recommended-ip-camera-settings",label:"Configuración recomendada para cámaras IP"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push sin IP estática"},{slug:"how-to-stream-without-static-ip",label:"Transmisión sin IP estática"},{slug:"streaming-agent",label:"Agente de transmisión sin IP estática"},{slug:"cloud-service-vs-own-server",label:"Servicio en la nube o servidor propio"},{slug:"how-to-stream-ip-camera-to-youtube",label:"Cómo transmitir una cámara IP a YouTube"},{slug:"personal-account",label:"Cuenta personal de rtsp.me"},{slug:"our-streaming-equipment",label:"Nuestro equipo de transmisión"},{slug:"cloud-video-surveillance",label:"Videovigilancia en la nube con cámaras IP"},{slug:"payment-terms",label:"Condiciones de pago"}]},it:{title:"Soluzioni pronte all'uso",intro:"Configurazioni collaudate per diretta streaming, monitoraggio remoto e archivi video nel cloud â per aziende, spazi pubblici e siti speciali.",groups:[{title:"Turismo e spazi aperti",
67items:[{slug:"marina",label:"Marina e yacht club"},{slug:"beach",label:"Hotel e spiagge sul mare"},{slug:"golf",label:"Campi da golf e club"},{slug:"ski",label:"Stazioni sciistiche"},{slug:"camping",label:"Campeggi e aree camper"},{slug:"fishing",label:"Basi di pesca"},{slug:"surfing",label:"Surf e kitesurf"},{slug:"weather",label:"Webcam meteo"},{slug:"sports",label:"Eventi sportivi"},{slug:"pool",label:"Piscine e parchi acquatici"}]},{title:"Attività commerciali con clienti",items:[{slug:"carwash",label:"Autolavaggi"},{slug:"autoservice",label:"Officine meccaniche"},{slug:"tire",label:"Gommisti"},{slug:"fastfood",label:"Fast food"},{slug:"restaurant",label:"Ristoranti e bar"},{slug:"flowers",label:"Negozi di fiori"},{slug:"retail",label:"Negozi e supermercati"},{slug:"beauty",label:"Saloni di bellezza"},{slug:"coworking",label:"Spazi di coworking"},{slug:"education",label:"Lezioni, corsi e conferenze"},{slug:"parking",label:"Parcheggi"},{slug:"ev-charging",label:"Stazioni di ricarica elettrica"}]},{title:"Industria e infrastrutture",items:[{slug:"city-administration",label:"Amministrazioni comunali"},{slug:"building",label:"Cantieri edili"},{slug:"warehouse",label:"Magazzini e punti di ritiro"},{slug:"factory",label:"Produzione industriale"},{slug:"logistics",label:"Centri logistici"},{slug:"port",label:"Porti e terminal"},{slug:"airport",label:"Aeroporti"},{slug:"machinery",label:"Macchine da cantiere"},{slug:"gas-station",label:"Stazioni di servizio"},{slug:"server-room",label:"Sale server"},{slug:"recycling",label:"Punti di raccolta e riciclo"}]},{title:"Cura, cultura e agricoltura",items:[{slug:"pets",label:"Pensioni per animali e toelettatura"},{slug:"horse",label:"Centri ippici"},{slug:"farm",label:"Fattorie"},{slug:"greenhouse",label:"Serre"},{slug:"childrengarden",label:"Asili nido e scuole materne"},{slug:"pharmacy",label:"Farmacie"},{slug:"museum",label:"Musei e mostre"},{slug:"religion",label:"Funzioni religiose e prediche"},{slug:"wedding",label:"Cerimonie nuziali"},{slug:"funeral",label:"Cerimonie funebri"}]}],guidesTitle:"Configurazione delle telecamere per produttore",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision e HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Domande frequenti",faq:[{slug:"what-is-rtsp",label:"Cos'è il protocollo RTSP"},{slug:"how-to-create-online-stream",label:"Come creare una diretta streaming su un sito web"},{slug:"how-to-create-free-stream",label:"Come creare una diretta streaming gratuita"},{slug:"live-streaming-for-company-marketing",label:"Come le dirette streaming aiutano il marketing"},{slug:"how-to-embed-stream-on-website",label:"Come incorporare una diretta streaming nel tuo sito web"},{slug:"how-to-protect-stream-from-copying",label:"Come proteggere una diretta streaming dalla copia"},{slug:"where-to-find-rtsp-url",label:"Dove trovare il link RTSP della tua telecamera"},{slug:"how-to-configure-port-forwarding",label:"Come configurare il port forwarding"},{slug:"recommended-ip-camera-settings",label:"Impostazioni consigliate per la telecamera IP"},{slug:"rtmp-push-without-static-ip",label:"RTMP Push senza IP statico"},{slug:"how-to-stream-without-static-ip",label:"Streaming senza indirizzo IP statico"},{slug:"streaming-agent",label:"Agente di streaming senza indirizzo IP statico"},{slug:"cloud-service-vs-own-server",label:"Servizio cloud o server proprio"},{slug:"how-to-stream-ip-camera-to-youtube",label:"Trasmettere una telecamera IP su YouTube"},{slug:"personal-account",label:"Account personale rtsp.me"},{slug:"our-streaming-equipment",label:"La nostra attrezzatura per lo streaming"},{slug:"cloud-video-surveillance",label:"Videosorveglianza in cloud da telecamere IP"},{slug:"payment-terms",label:"Condizioni di pagamento"}]},tr:{title:"Hazır çözümler",intro:"İÅletmeler, kamuya açık alanlar ve özel amaçlı tesisler için canlı yayın, uzaktan izleme ve bulut video arÅivi konusunda kanıtlanmıŠkurulumlar.",groups:[{title:"Turizm ve açık alanlar",items:[{slug:"marina",label:"Marinalar ve yat kulüpleri"},{slug:"beach",label:"Deniz kenarı oteller ve plajlar"},{slug:"golf",label:"Golf sahaları ve kulüpleri"},{slug:"ski",label:"Kayak merkezleri"},{slug:"camping",label:"Kamp alanları ve karavan parkları"},{slug:"fishing",label:"Balıkçılık kampları"},{slug:"surfing",label:"Sörf ve kitesörf"},{slug:"weather",label:"Hava durumu kameraları"},{slug:"sports",label:"Spor etkinlikleri"},{slug:"pool",label:"Yüzme havuzları ve su parkları"}]},{title:"MüÅteriye yönelik iÅletmeler",items:[{slug:"carwash",label:"Oto yıkamalar"},{slug:"autoservice",label:"Oto tamirhaneleri"},{slug:"tire",label:"Lastik servisleri"},{slug:"fastfood",label:"Fast food restoranları"},{slug:"restaurant",label:"Restoranlar ve kafeler"},{slug:"flowers",label:"Ãiçekçiler"},{slug:"retail",label:"MaÄazalar ve süpermarketler"},{slug:"beauty",label:"Güzellik salonları"},{slug:"coworking",label:"Ortak çalıÅma alanları"},{slug:"education",label:"Dersler, kurslar ve konferanslar"},{slug:"parking",label:"Otoparklar"},{slug:"ev-charging",label:"Elektrikli araç Åarj istasyonları"}]},{title:"Sanayi ve altyapı",items:[{slug:"city-administration",label:"Belediyeler"},{slug:"building",label:"İnÅaat sahaları"},{slug:"warehouse",label:"Depolar ve teslim alma noktaları"},{slug:"factory",label:"Ãretim tesisleri"},{slug:"logistics",label:"Lojistik merkezleri"},{slug:"port",label:"Limanlar ve terminaller"},{slug:"airport",label:"Havalimanları"},{slug:"machinery",label:"İnÅaat makineleri"},{slug:"gas-station",label:"Benzin istasyonları"},{slug:"server-room",label:"Sunucu odaları"},{slug:"recycling",label:"Geri dönüÅüm ve toplama noktaları"}]},{title:"Bakım, kültür ve tarım",items:[{slug:"pets",label:"Evcil hayvan pansiyonları ve bakım salonları"},{slug:"horse",label:"Binicilik kulüpleri"},{slug:"farm",label:"Ãiftlikler"},{slug:"greenhouse",label:"Seralar"},{slug:"childrengarden",label:"KreÅler ve anaokulları"},{slug:"pharmacy",label:"Eczaneler"},{slug:"museum",label:"Müzeler ve sergiler"},{slug:"religion",label:"Dini ayinler ve vaazlar"},{slug:"wedding",label:"DüÄün törenleri"},{slug:"funeral",label:"Anma törenleri"}]}],guidesTitle:"Ãreticiye göre kamera yapılandırma kılavuzları",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision ve HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"Sıkça sorulan sorular",faq:[{slug:"what-is-rtsp",label:"RTSP protokolü nedir"},{slug:"how-to-create-online-stream",label:"Web sitesinde canlı yayın nasıl oluÅturulur"},{slug:"how-to-create-free-stream",label:"Ãcretsiz yayın nasıl oluÅturulur"},{slug:"live-streaming-for-company-marketing",label:"Canlı yayınlar pazarlamaya nasıl yardımcı olur"},{slug:"how-to-embed-stream-on-website",label:"Yayın web sitenize nasıl eklenir"},{slug:"how-to-protect-stream-from-copying",label:"Yayın kopyalanmaya karÅı nasıl korunur"},{slug:"where-to-find-rtsp-url",label:"Kameranızın RTSP baÄlantısı nerede bulunur"},{slug:"how-to-configure-port-forwarding",label:"Port yönlendirme nasıl yapılandırılır"},{slug:"recommended-ip-camera-settings",label:"Ãnerilen IP kamera ayarları"},{slug:"rtmp-push-without-static-ip",label:"Statik IP olmadan RTMP Push"},{slug:"how-to-stream-without-static-ip",label:"Statik IP adresi olmadan yayın"},{slug:"streaming-agent",label:"Statik IP adresi olmadan Streaming Agent"},{slug:"cloud-service-vs-own-server",label:"Bulut hizmeti mi, kendi sunucunuz mu?"},{slug:"how-to-stream-ip-camera-to-youtube",label:"IP kameradan YouTube'a yayın"},{slug:"personal-account",label:"rtsp.me kiÅisel hesabı"},{slug:"our-streaming-equipment",label:"Yayın ekipmanlarımız"},{slug:"cloud-video-surveillance",label:"IP kameralardan bulut video gözetimi"},{slug:"payment-terms",label:"Ãdeme koÅulları"}]},zh:{title:"ç°æè§£å³æ¹æ¡",intro:"é¢åä¼ä¸ãå
Œ
±åºæååç±»ä¸ä¸åºæ¯ï¼æä¾ç»è¿éªè¯çç´æãè¿ç¨çæ§ä¸äºç«¯å½åæ¹æ¡ã",groups:[{title:"æ
游ä¸å¼æ¾åºæ",items:[{slug:"marina",label:"游èç 头䏿¸¸è俱ä¹é¨"},{slug:"beach",label:"海滨é
åºä¸æµ·æ»©"},{slug:"golf",label:"é«å°å¤«çåºä¸ä¿±ä¹é¨"},{slug:"ski",label:"æ»éªåº"},{slug:"camping",label:"é²è¥å°ä¸æ¿è½¦è¥å°"},{slug:"fishing",label:"åéè¥å°"},{slug:"surfing",label:"岿µªä¸é£ç岿µª"},{slug:"weather",label:"å¤©æ°æå头"},{slug:"sports",label:"ä½è²èµäº"},{slug:"pool",label:"æ¸¸æ³³æ± ä¸æ°´ä¸ä¹å"}]},{title:"é¢å顾客çåä¸åºæ",items:[{slug:"carwash",label:"æ´è½¦åº"},{slug:"autoservice",label:"汽车维修åº"},{slug:"tire",label:"è½®èæå¡åº"},{slug:"fastfood",label:"å¿«é¤åº"},{slug:"restaurant",label:"é¤å
ä¸åå¡é¦"},{slug:"flowers",label:"è±åº"},{slug:"retail",label:"ååºä¸è¶
å¸"},{slug:"beauty",label:"ç¾å®¹é¢"},{slug:"coworking",label:"å
±äº«åå
¬ç©ºé´"},{slug:"education",label:"讲座ã课ç¨ä¸ä¼è®®"},{slug:"parking",label:"å车åº"},{slug:"ev-charging",label:"çµå¨è½¦å
çµç«"}]}
67,{title:"å·¥ä¸ä¸åºç¡è®¾æ½",items:[{slug:"city-administration",label:"叿¿æºå
³"},{slug:"building",label:"建çå·¥å°"},{slug:"warehouse",label:"ä»åºä¸èªæç¹"},{slug:"factory",label:"å¶é ä¸"},{slug:"logistics",label:"ç©æµä¸å¿"},{slug:"port",label:"港å£ä¸ç 头"},{slug:"airport",label:"æºåº"},{slug:"machinery",label:"å·¥ç¨æºæ¢°"},{slug:"gas-station",label:"å æ²¹ç«"},{slug:"server-room",label:"æºæ¿"},{slug:"recycling",label:"忶䏿¶éç«ç¹"}]},{title:"æ¤çãæåä¸åä¸",items:[{slug:"pets",label:"å® ç©å¯å
»ä¸ç¾å®¹"},{slug:"horse",label:"马æ¯ä¿±ä¹é¨"},{slug:"farm",label:"ååº"},{slug:"greenhouse",label:"温室"},{slug:"childrengarden",label:"æå¿æä¸å¹¼å¿å"},{slug:"pharmacy",label:"è¯åº"},{slug:"museum",label:"åç©é¦ä¸å±è§"},{slug:"religion",label:"å®æä»ªå¼ä¸ç¤¼æ"},{slug:"wedding",label:"å©ç¤¼ä»ªå¼"},{slug:"funeral",label:"追æ¼ä»ªå¼"}]}],guidesTitle:"æåçæ¥çæåæºé
ç½®æå",guides:[{slug:"how-to-stream-hikvision-camera-on-website",label:"Hikvision ä¸ HiWatch"},{slug:"how-to-stream-dahua-camera-on-website",label:"Dahua"},{slug:"how-to-stream-tiandy-camera-on-website",label:"Tiandy"},{slug:"how-to-stream-uniview-camera-on-website",label:"Uniview"},{slug:"how-to-stream-axis-camera-on-website",label:"Axis"},{slug:"how-to-stream-hanwha-camera-on-website",label:"Hanwha Vision"},{slug:"how-to-stream-bosch-camera-on-website",label:"Bosch"}],faqTitle:"常è§é®é¢",faq:[{slug:"what-is-rtsp",label:"ä»ä¹æ¯ RTSP åè®®"},{slug:"how-to-create-online-stream",label:"å¦ä½å¨ç½ç«ä¸åå»ºå®æ¶ç´æ"},{slug:"how-to-create-free-stream",label:"å¦ä½å
è´¹åå»ºç´æ"},{slug:"live-streaming-for-company-marketing",label:"ç´æå¦ä½å©åè¥é"},{slug:"how-to-embed-stream-on-website",label:"å¦ä½å¨ç½ç«ä¸åµå
¥ç´æ"},{slug:"how-to-protect-stream-from-copying",label:"å¦ä½é²æ¢ç´æè¢«çç¨"},{slug:"where-to-find-rtsp-url",label:"å¨åªéæ¾å°æåæºç RTSP å°å"},{slug:"how-to-configure-port-forwarding",label:"å¦ä½è®¾ç½®ç«¯å£æ å°"},{slug:"recommended-ip-camera-settings",label:"æ¨èç IP æåæºè®¾ç½®"},{slug:"rtmp-push-without-static-ip",label:"æ åºå® IP æ¶ç RTMP æ¨æµ"},{slug:"how-to-stream-without-static-ip",label:"æ åºå® IP ç´æ"},{slug:"streaming-agent",label:"ä½¿ç¨ Streaming Agent ç´æ"},{slug:"cloud-service-vs-own-server",label:"äºæå¡ä¸èªå»ºæå¡å¨å¯¹æ¯"},{slug:"how-to-stream-ip-camera-to-youtube",label:"å° IP æåæºç´æå° YouTube"},{slug:"personal-account",label:"rtsp.me 个人账æ·"},{slug:"our-streaming-equipment",label:"æä»¬çç´æè®¾å¤"},{slug:"cloud-video-surveillance",label:"åºäº IP æåæºçäºçæ§"},{slug:"payment-terms",label:"èµè´¹è¯´æ"}]}},jj=()=>{const{lang:e}=V(),t=yj[e];return r.jsx("section",{className:"solutions-footer","aria-labelledby":"solutions-footer-title",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"solutions-footer__header",children:[r.jsx("h2",{className:"solutions-footer__title",id:"solutions-footer-title",children:t.title}),r.jsx("p",{className:"solutions-footer__intro",children:t.intro})]}),r.jsx("nav",{className:"solutions-footer__groups","aria-label":t.title,children:t.groups.map(n=>r.jsxs("section",{children:[r.jsx("h3",{className:"solutions-footer__group-title",children:n.title}),r.jsx("ul",{className:"solutions-footer__links list-reset",children:n.items.filter(a=>bj.has(a.slug)).map(a=>r.jsx("li",{children:r.jsx("a",{className:"solutions-footer__link",href:rl(e,a.slug),children:a.label})},a.slug))})]},n.title))}),r.jsxs("nav",{className:"solutions-footer__guides","aria-label":t.guidesTitle,children:[r.jsx("h3",{className:"solutions-footer__group-title",children:t.guidesTitle}),r.jsx("ul",{className:"solutions-footer__links list-reset",children:t.guides.map(n=>r.jsx("li",{children:r.jsx("a",{className:"solutions-footer__link",href:rl(e,n.slug),children:n.label})},n.slug))})]}),r.jsxs("nav",{className:"solutions-footer__faq","aria-label":t.faqTitle,children:[r.jsx("h3",{className:"solutions-footer__group-title",children:t.faqTitle}),r.jsx("ul",{className:"solutions-footer__links list-reset",children:t.faq.map(n=>r.jsx("li",{children:r.jsx("a",{className:"solutions-footer__link",href:rl(e,n.slug),children:n.label})},n.slug))})]})]})})},yt=new Date().getFullYear(),wj={en:{logoTld:".ME",createBroadcasting:"Create broadcasting",signUp:"Sign up",benefits:"Benefits",statistics:"Statistics",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Rules"},{href:"/rules.html",text:"Privacy Policy"},{href:"/fp.html",text:"Fulfilment Policy"},{href:"/rules.html",text:""}]},ru:{logoTld:".RU",createBroadcasting:"CоздаÑÑ ÑÑанÑлÑÑиÑ",signUp:"РегиÑÑÑаÑиÑ",benefits:"ÐÑеимÑÑеÑÑва",statistics:"СÑаÑиÑÑика",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.RU ",r.jsx("br",{}),r.jsxs("small",{children:[" ","ÐРЯÑÑÑкин ÐлекÑÐ°Ð½Ð´Ñ Ð
67ладимиÑÐ¾Ð²Ð¸Ñ ÐÐÐ 233001847270 ",r.jsx("br",{})," РоÑÑиÑ, ÐÑаÑнодаÑ, Ñл. ШоÑÑе ÐеÑÑÑников 28, оÑÐ¸Ñ 405 ",r.jsx("br",{}),' ТÐÐ "СÐÐРТÐÐÐ" ÐÐÐ 2310 4002 4551 ',r.jsx("br",{})," ÐазаÑ
ÑÑан, ÐлмаÑÑ, Ñл.Чаплина 71/66 оÑ.422"," "]})]}),links:[{href:"/rules_ru.html",text:"ÐÑавила"},{href:"/rules_ru.html",text:"ÐолиÑика конÑиденÑиалÑноÑÑи"},{href:"/fp_ru.html",text:"ÐÐÐÐÐÐ"},{href:"/offer.html",text:"ÐÑеÑÑа"}]},de:{logoTld:".ME",createBroadcasting:"Streaming erstellen",signUp:"Registrieren",benefits:"Vorteile",statistics:"Statistiken",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Regeln"},{href:"/rules.html",text:"Datenschutzrichtlinie"},{href:"/fp.html",text:"Erfüllungsrichtlinie"},{href:"/rules.html",text:""}]},pr:{logoTld:".ME",createBroadcasting:"Criar transmissão",signUp:"Cadastrar",benefits:"Vantagens",statistics:"EstatÃsticas",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Termos"},{href:"/rules.html",text:"PolÃtica de Privacidade"},{href:"/fp.html",text:"PolÃtica de Atendimento"},{href:"/rules.html",text:""}]},fr:{logoTld:".ME",createBroadcasting:"Créer une diffusion",signUp:"Sâinscrire",benefits:"Avantages",statistics:"Statistiques",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Règles"},{href:"/rules.html",text:"Politique de confidentialité"},{href:"/fp.html",text:"Politique de livraison"},{href:"/rules.html",text:""}]},es:{logoTld:".ME",createBroadcasting:"Crear transmisión",signUp:"Registrarse",benefits:"Ventajas",statistics:"EstadÃsticas",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Términos"},{href:"/rules.html",text:"PolÃtica de privacidad"},{href:"/fp.html",text:"PolÃtica de cumplimiento"},{href:"/rules.html",text:""}]},it:{logoTld:".ME",createBroadcasting:"Crea trasmissione",signUp:"Registrati",benefits:"Vantaggi",statistics:"Statistiche",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Regolamento"},{href:"/rules.html",text:"Informativa sulla privacy"},{href:"/fp.html",text:"Condizioni di servizio"},{href:"/rules.html",text:""}]},tr:{logoTld:".ME",createBroadcasting:"Yayın OluÅtur",signUp:"Kayıt Ol",benefits:"Avantajlar",statistics:"İstatistikler",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"Kurallar"},{href:"/rules.html",text:"Gizlilik Politikası"},{href:"/fp.html",text:"Hizmet Åartları"},{href:"/rules.html",text:""}]},zh:{logoTld:".ME",createBroadcasting:"åå»ºç´æ",signUp:"注å",benefits:"ä¼å¿",statistics:"ç»è®¡",faq:"FAQ",copy:r.jsxs(r.Fragment,{children:["© 2017-",yt," RTSP.ME ",r.jsx("br",{}),r.jsxs("small",{children:[" ","Linecam Inc.",r.jsx("br",{})," 680 S CACHE STREET SUITE 100-7414 Jackson, WY 83001 United States"," "]})]}),links:[{href:"/rules.html",text:"æ¡æ¬¾"},{href:"/rules.html",text:"éç§æ¿ç"},{href:"/fp.html",text:"å±¥è¡æ¿ç"},{href:"/rules.html",text:""}]}},Sj=()=>{const{lang:e,openPopup:t}=V(),n=wj[e];return r.jsx("footer",{className:"footer",children:r.jsxs("div",{className:"container",children:[r.jsxs("div",{className:"footer__inner",children:[r.jsx("div",{className:"footer__logo",children:r.jsxs("a",{className:"header__logo",href:"#hero",children:["RTSP",r.jsx("span",{children:n.logoTld})]})}),r.jsxs("ul",{className:"footer__list list-reset",children:[r.jsx("li",{children:r.jsx("a",{href:"#hero",className:"auth",children:n.createBroadcasting})}),r.jsx("li",{children:r.jsx("a",{className:"auth popup-link",style:{cursor:"pointer"},onClick:()=>t("popup-registration"),children:n.signUp})}),r.jsx("li",{children:r.jsx("a",{href:"#benefits",children:n.benefits})}),r.jsx("li",{children:r.jsx("a",{href:"#statistics",children:n.statistics})}),r.jsx("li",{children:r.jsx("a",{href:"#faq",children:n.faq})})]}),r.jsx("ul",{className:"social list-reset",children:r.jsx("li",{children:r.jsx("a",{href:"mailto:[email protected]",children:r.jsx("img",{loading:"lazy",src:"/landing/img/svg/mail.svg",width:"24",height:"24",alt:"E-mail"})})})})]}),r.jsxs("div",{className:"footer__bottom",children:[r.jsx("p",{className:"footer__c
67opy text",children:n.copy}),r.jsx("ul",{className:"footer__links",children:n.links.map((a,s)=>r.jsx("li",{children:r.jsx("a",{href:a.href,children:a.text})},s))})]})]})})},_j=e=>`https://${encodeURIComponent(e)}.rtsp.me`,Pj={createJob:async(e,t)=>{if(!e)throw new qe(0,"no_check_server","No check server for region");let n;try{n=await fetch(`${_j(e)}/check/jobs`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rtspUrl:t})})}catch{throw new qe(0,"connection_lost","Could not reach check server")}if(!n.ok){let a=null;try{a=await n.json()}catch{}const s=a&&typeof a=="object"&&typeof a.error=="string"?a.error:n.status===429?"too_many_requests":null;throw new qe(n.status,s,s??`Check failed (${n.status})`)}return await n.json()}},ws=["url","ping","port","streamInfo","preview"],kj={url:"url",ping:"ping",port:"port","stream-info":"streamInfo",preview:"preview"},Nj=60,nl=()=>({url:{status:"active",error:null},ping:{status:"pending",error:null},port:{status:"pending",error:null},streamInfo:{status:"pending",error:null},preview:{status:"pending",error:null}}),Tj=e=>{const t=e.streamInfo;return!t||typeof t!="object"?null:t},al=e=>{if(!e||typeof e!="object")return null;const t=e;return{isOpen:t.isOpen===!0,status:typeof t.status=="string"?t.status:null}},Ej=e=>{const t=al(e.tcp),n=al(e.udp);return t||n?{tcp:t,udp:n,overall:null}:typeof e.isOpen=="boolean"||typeof e.status=="string"?{tcp:null,udp:null,overall:al(e)}:null},zj=e=>{const t=e.rttMs;return{avg:t&&typeof t.avg=="number"?t.avg:null,lossPercent:typeof e.lossPercent=="number"?e.lossPercent:null}},Rj=(e,t)=>{const n=t?`https://${t}.rtsp.me`:"";for(const a of["url","previewUrl","preview","image","imageUrl"]){const s=e[a];if(!(typeof s!="string"||!s)){if(/^https?:\/\//.test(s))return s;if(s.startsWith("/")&&n)return n+s}}return null},Cj=(e,t)=>{const[n,a]=x.useState(nl),[s,i]=x.useState("idle"),[l,o]=x.useState(null),[u,c]=x.useState(null),[p,m]=x.useState(null),[h,v]=x.useState(null),[j,b]=x.useState(null),[S,f]=x.useState(null),d=x.useRef(null),g=x.useRef(null),y=x.useRef(0),w=x.useCallback(()=>{var C;(C=d.current)==null||C.close(),d.current=null,g.current!=null&&(clearInterval(g.current),g.current=null)},[]),P=x.useCallback(()=>{f(Nj),g.current=setInterval(()=>f(C=>C==null||C<=0?0:C-1),1e3)},[]),T=x.useCallback(()=>{y.current+=1,w(),i("idle"),a(nl()),o(null),c(null),m(null),v(null),b(null),f(null)},[w]),z=x.useCallback(async C=>{const N=++y.current;w(),a(nl()),i("running"),o(null),c(null),m(null),v(null),b(null),P();let A;try{({eventsUrl:A}=await Pj.createJob(e,C))}catch(ie){if(N!==y.current)return;w(),i("error"),a(Q=>({...Q,url:{status:"pending",error:null}})),o(t(ie instanceof qe&&ie.code?ie.code:"connection_lost"));return}if(N!==y.current)return;const Y=new EventSource(A);d.current=Y;let re=null;const Ze=ie=>{try{return JSON.parse(ie.data)}catch{return{success:!1}}};for(const[ie,Q]of Object.entries(kj))Y.addEventListener(ie,dr=>{const E=Ze(dr);if(!E.success&&Q!=="ping"&&(re={step:Q,hasError:!!E.error}),a(F=>{const M={...F},K=()=>{const ne=ws[ws.indexOf(Q)+1];ne&&M[ne].status==="pending"&&(M[ne]={status:"active",error:null})};return E.success?(M[Q]={status:"ok",error:null},K()):(M[Q]={status:"fail",error:E.error?t(E.error):null},Q==="ping"&&K()),M}),Q==="ping"&&E.success&&v(zj(E)),Q==="port"){const F=Ej(E);F&&b(F)}Q==="streamInfo"&&E.success&&m(Tj(E)),Q==="preview"&&E.success&&c(Rj(E,e))});Y.addEventListener("done",ie=>{const Q=Ze(ie);w(),i(Q.success?"success":"failed"),a(dr=>{const E={...dr};for(const F of ws)E[F].status==="active"&&(E[F]={...E[F],status:"pending"});return re&&!re.hasError&&Q.error&&(E[re.step]={status:"fail",error:t(Q.error)}),E}),!Q.success&&Q.error&&!re&&o(t(Q.error))}),Y.onerror=()=>{d.current===Y&&(w(),i("error"),o(t("connection_lost")))}},[e,w,P,t]);return x.useEffect(()=>w,[w]),{steps:n,phase:s,topError:l,image:u,streamInfo:p,ping:h,port:j,secondsLeft:S,run:z,reset:T,stop:w}},Ij=()=>r.jsx("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M21 21L3 3M21.0001 3L3 21.0001",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),wt=({id:e,children:t,back:n})=>{const{activePopup:a,closePopup:s,openPopup:i}=V(),{lang:l}=V();return r.jsx("div",{className:`popup${a===e?" open":""}`,id:e,children:r.jsx("div",{className:"popup__body",children:r.jsxs("div",{className:"popup__content simplebar",style:{overflowY:"auto"},children:[r.jsx("button",{className:"popup__close btn-reset close-popup",onClick:s,children:r.jsx(Ij,{})}),n&&r.jsxs("a",{className:"popup__back popup-link",onClick:()=>i("popup-broadcast"),children:[r.jsx("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M19 12L5 12M5 12L11 18M5 12L11 6",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})}),r.jsx("span",{children:l==="ru"?"Ðазад":"Back"})]}),t]})})})},Fj={en:{title:r.jsxs(r.Fragment,{children:["Checking ",r.jsx("br",{})," your RTSP stream"]}),steps:{url:"URL check (format and DNS)",ping:"Host ping",port:"Port check",streamInfo:"RTSP stream check",preview:"Capturing a frame from the stream"},success:"The stream works â frame captured.",confirmEmail:"To finish registration, confirm the broadcast via the link we've sent to your email.",failed:"The check did not pass.",timeLeft:"~{s} s left",retry:"Retry",close:"Close",errors:{invalid_rtsp_url:"Invalid RTSP URL format",host_resolve_failed:"Host could not be resolved (DNS)",local_address:"Local/private IP address â the server cannot check such addresses",port_closed:"Port is closed",ffprobe_unavailable:"ffprobe is unavailable on the server",ffmpeg_unavailable:"ffmpeg is unavailable on the server",stream_timeout:"Stream check timed out",unauthorized:"Invalid RTSP credentials (login or password)",connection_timeout:"Connection timed out",connection_refused:"Connection refused",no_route_host:"No route to host",not_found:"RTSP stream not found",no_video:"No video stream found",invali
67d_data:"The stream returned invalid data",unknown_ffprobe_error:"Unknown stream check error",unknown_ffmpeg_error:"Unknown frame capture error",too_many_requests:"Too many requests. Please try again in a minute.",connection_lost:"Connection to the check server was lost. Please try again.",unknown:"Unknown check error"},info:{video:"Video",audio:"Audio",ch:"ch",hz:"Hz",ms:"ms",loss:"loss",fps:"fps",gop:"GOP",sec:"s",frames:"frames",open:"open",closed:"closed",noReply:"no reply",filtered:"filtered"}},ru:{title:r.jsxs(r.Fragment,{children:["ÐÑовеÑÑем ",r.jsx("br",{})," Ð²Ð°Ñ RTSP-поÑок"]}),steps:{url:"ÐÑовеÑка адÑеÑа (ÑоÑÐ¼Ð°Ñ Ð¸ DNS)",ping:"Ðинг Ñ
оÑÑа",port:"ÐÑовеÑка поÑÑа",streamInfo:"ÐÑовеÑка RTSP-поÑока",preview:"ÐолÑÑение кадÑа из поÑока"},success:"ÐоÑок ÑабоÑÐ°ÐµÑ â ÐºÐ°Ð´Ñ Ð¿Ð¾Ð»ÑÑен.",confirmEmail:"ÐÐ»Ñ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ð¸Ñ ÑегиÑÑÑаÑии подÑвеÑдиÑе Ñоздание ÑÑанÑлÑÑии по ÑÑÑлке, оÑпÑавленной на ваÑÑ Ð¿Ð¾ÑÑÑ.",failed:"ÐÑовеÑка не пÑойдена.",timeLeft:"ÐÑÑалоÑÑ ~{s} Ñ",retry:"ÐовÑоÑиÑÑ",close:"ÐакÑÑÑÑ",errors:{invalid_rtsp_url:"ÐевеÑнÑй ÑоÑÐ¼Ð°Ñ RTSP-ÑÑÑлки",host_resolve_failed:"ХоÑÑ Ð½Ðµ найден (не ÑезолвиÑÑÑ DNS)",local_address:"ÐокалÑнÑй/пÑиваÑнÑй IP-адÑÐµÑ â ÑеÑÐ²ÐµÑ Ð½Ðµ пÑовеÑÑÐµÑ Ñакие адÑеÑа",port_closed:"ÐоÑÑ Ð·Ð°ÐºÑÑÑ",ffprobe_unavailable:"Ðа ÑеÑвеÑе недоÑÑÑпен ffprobe",ffmpeg_unavailable:"Ðа ÑеÑвеÑе недоÑÑÑпен ffmpeg",stream_timeout:"Тайм-аÑÑ Ð¿ÑовеÑки поÑока",unauthorized:"ÐевеÑÐ½Ð°Ñ Ð°Ð²ÑоÑизаÑÐ¸Ñ RTSP (логин или паÑолÑ)",connection_timeout:"Тайм-аÑÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑениÑ",connection_refused:"Соединение оÑклонено",no_route_host:"ÐÐµÑ Ð¼Ð°ÑÑÑÑÑа до Ñ
оÑÑа",not_found:"RTSP-поÑок не найден",no_video:"ÐидеопоÑок не найден",invalid_data:"ÐоÑок веÑнÑл некоÑÑекÑнÑе даннÑе",unknown_ffprobe_error:"ÐеизвеÑÑÐ½Ð°Ñ Ð¾Ñибка пÑовеÑки поÑока",unknown_ffmpeg_error:"ÐеизвеÑÑÐ½Ð°Ñ Ð¾Ñибка полÑÑÐµÐ½Ð¸Ñ ÐºÐ°Ð´Ñа",too_many_requests:"СлиÑком много запÑоÑов. ÐопÑобÑйÑе ÑеÑез 1 минÑÑÑ.",connection_lost:"Соединение Ñ ÑеÑвеÑом пÑовеÑки пÑеÑвалоÑÑ. ÐопÑобÑйÑе еÑÑ Ñаз.",unknown:"ÐеизвеÑÑÐ½Ð°Ñ Ð¾Ñибка пÑовеÑки"},info:{video:"Ðидео",audio:"ÐÑдио",ch:"кан.",hz:"ÐÑ",ms:"мÑ",loss:"поÑеÑÑ",fps:"fps",gop:"GOP",sec:"Ñ",frames:"кадÑ.",open:"оÑкÑÑÑ",closed:"закÑÑÑ",noReply:"Ð½ÐµÑ Ð¾ÑвеÑа",filtered:"ÑилÑÑÑÑеÑÑÑ"}},de:{title:r.jsxs(r.Fragment,{children:["Wir prüfen ",r.jsx("br",{})," Ihren RTSP-Stream"]}),steps:{url:"Adressprüfung (Format und DNS)",ping:"Host-Ping",port:"Portprüfung",streamInfo:"RTSP-Stream-Prüfung",preview:"Einzelbild aus dem Stream aufnehmen"},success:"Der Stream funktioniert â Einzelbild aufgenommen.",confirmEmail:"Um die Registrierung abzuschlieÃen, bestätigen Sie die Erstellung über den Link, den wir an Ihre E-Mail gesendet haben.",failed:"Die Prüfung war nicht erfolgreich.",timeLeft:"Noch ~{s} s",retry:"Wiederholen",close:"SchlieÃen",errors:{invalid_rtsp_url:"Ungültiges RTSP-URL-Format",host_resolve_failed:"Host konnte nicht aufgelöst werden (DNS)",local_address:"Lokale/private IP-Adresse â der Server kann solche Adressen nicht prüfen",port_closed:"Port ist geschlossen",ffprobe_unavailable:"ffprobe ist auf dem Server nicht verfügbar",ffmpeg_unavailable:"ffmpeg ist auf dem Server nicht verfügbar",stream_timeout:"Zeitüberschreitung bei der Stream-Prüfung",unauthorized:"Ungültige RTSP-Zugangsdaten (Benutzername oder Passwort)",connection_timeout:"Zeitüberschreitung der Verbindung",connection_refused:"Verbindung abgelehnt",no_route_host:"Keine Route zum Host",not_found:"RTSP-Stream nicht gefunden",no_video:"Kein Videostream gefunden",invali
67d_data:"Der Stream hat ungültige Daten zurückgegeben",unknown_ffprobe_error:"Unbekannter Fehler bei der Stream-Prüfung",unknown_ffmpeg_error:"Unbekannter Fehler bei der Einzelbildaufnahme",too_many_requests:"Zu viele Anfragen. Bitte versuchen Sie es in einer Minute erneut.",connection_lost:"Die Verbindung zum Prüfserver wurde unterbrochen. Bitte versuchen Sie es erneut.",unknown:"Unbekannter Prüffehler"},info:{video:"Video",audio:"Audio",ch:"Kan.",hz:"Hz",ms:"ms",loss:"Verlust",fps:"fps",gop:"GOP",sec:"s",frames:"Frames",open:"offen",closed:"geschlossen",noReply:"keine Antwort",filtered:"gefiltert"}},pr:{title:r.jsxs(r.Fragment,{children:["Verificando ",r.jsx("br",{})," seu fluxo RTSP"]}),steps:{url:"Verificação do endereço (formato e DNS)",ping:"Ping do host",port:"Verificação da porta",streamInfo:"Verificação do fluxo RTSP",preview:"Capturando um quadro do fluxo"},success:"O fluxo funciona â quadro capturado.",confirmEmail:"Para concluir o cadastro, confirme a criação pelo link enviado ao seu e-mail.",failed:"A verificação não foi aprovada.",timeLeft:"Faltam ~{s} s",retry:"Tentar novamente",close:"Fechar",errors:{invalid_rtsp_url:"Formato de URL RTSP inválido",host_resolve_failed:"Não foi possÃvel resolver o host (DNS)",local_address:"Endereço IP local/privado â o servidor não pode verificar esse tipo de endereço",port_closed:"A porta está fechada",ffprobe_unavailable:"O ffprobe não está disponÃvel no servidor",ffmpeg_unavailable:"O ffmpeg não está disponÃvel no servidor",stream_timeout:"Tempo esgotado na verificação do fluxo",unauthorized:"Credenciais RTSP inválidas (login ou senha)",connection_timeout:"Tempo de conexão esgotado",connection_refused:"Conexão recusada",no_route_host:"Sem rota para o host",not_found:"Fluxo RTSP não encontrado",no_video:"Nenhum fluxo de vÃdeo encontrado",invalid_data:"O fluxo retornou dados inválidos",unknown_ffprobe_error:"Erro desconhecido na verificação do fluxo",unknown_ffmpeg_error:"Erro desconhecido na captura do quadro",too_many_requests:"Muitas solicitações. Tente novamente em um minuto.",connection_lost:"A conexão com o servidor de verificação foi perdida. Tente novamente.",unknown:"Erro de verificação desconhecido"},info:{video:"VÃdeo",audio:"Ãudio",ch:"can.",hz:"Hz",ms:"ms",loss:"perda",fps:"fps",gop:"GOP",sec:"s",frames:"quadros",open:"aberta",closed:"fechada",noReply:"sem resposta",filtered:"filtrada"}},fr:{title:r.jsxs(r.Fragment,{children:["Vérification ",r.jsx("br",{})," de votre flux RTSP"]}),steps:{url:"Vérification de l'adresse (format et DNS)",ping:"Ping de l'hôte",port:"Vérification du port",streamInfo:"Vérification du flux RTSP",preview:"Capture d'une image du flux"},success:"Le flux fonctionne â image capturée.",confirmEmail:"Pour finaliser l'inscription, confirmez la création via le lien envoyé à votre adresse e-mail.",failed:"La vérification a échoué.",timeLeft:"Encore ~{s} s",retry:"Réessayer",close:"Fermer",errors:{invalid_rtsp_url:"Format d'URL RTSP invalide",host_resolve_failed:"L'hôte n'a pas pu être résolu (DNS)",local_address:"Adresse IP locale/privée â le serveur ne peut pas vérifier ce type d'adresse",port_closed:"Le port est fermé",ffprobe_unavailable:"ffprobe n'est pas disponible sur le serveur",ffmpeg_unavailable:"ffmpeg n'est pas disponible sur le serveur",stream_timeout:"Délai de vérification du flux dépassé",unauthorized:"Identifiants RTSP invalides (identifiant ou mot de passe)",connection_timeout:"Délai de connexion dépassé",connection_refused:"Connexion refusée",no_route_host:"Aucune route vers l'hôte",not_found:"Flux RTSP introuvable",no_video:"Aucun flux vidéo trouvé",invalid_data:"Le flux a renvoyé des données invalides",unknown_ffprobe_error:"Erreur inconnue lors de la vérification du flux",unknown_ffmpeg_error:"Erreur inconnue lors de la capture de l'image",too_many_requests:"Trop de requêtes. Veuillez réessayer dans une minute.",connection_lost:"La connexion au serveur de vérification a été perdue. Veuillez réessayer.",unknown:"Erreur de vérification inconnue"},info:{video:"Vidéo",audio:"Audio",ch:"can.",hz:"Hz",ms:"ms",loss:"perte",fps:"fps",gop:"GOP",sec:"s",frames:"images",open:"ouvert",closed:"fermé",noReply:"pas de réponse",filtered:"filtré"}},es:{title:r.jsxs(r.Fragment,{children:["Verificando ",r.jsx("br",{})," tu flujo RTSP"]}),steps:{url:"Verificación de la dirección (formato y DNS)",ping:"Ping al host",port:"Verificación del puerto",streamInfo:"Verificación del flujo RTSP",preview:"Capturando un fotograma del flujo"},success:"El flujo funciona â fotograma capturado.",confirmEmail:"Para completar el registro, c
67onfirma la creación mediante el enlace enviado a tu correo electrónico.",failed:"La verificación no se ha superado.",timeLeft:"Quedan ~{s} s",retry:"Reintentar",close:"Cerrar",errors:{invalid_rtsp_url:"Formato de URL RTSP no válido",host_resolve_failed:"No se pudo resolver el host (DNS)",local_address:"Dirección IP local/privada â el servidor no puede verificar este tipo de direcciones",port_closed:"El puerto está cerrado",ffprobe_unavailable:"ffprobe no está disponible en el servidor",ffmpeg_unavailable:"ffmpeg no está disponible en el servidor",stream_timeout:"Se agotó el tiempo de verificación del flujo",unauthorized:"Credenciales RTSP no válidas (usuario o contraseña)",connection_timeout:"Se agotó el tiempo de conexión",connection_refused:"Conexión rechazada",no_route_host:"No hay ruta hacia el host",not_found:"Flujo RTSP no encontrado",no_video:"No se encontró ningún flujo de video",invalid_data:"El flujo devolvió datos no válidos",unknown_ffprobe_error:"Error desconocido en la verificación del flujo",unknown_ffmpeg_error:"Error desconocido al capturar el fotograma",too_many_requests:"Demasiadas solicitudes. Inténtalo de nuevo en un minuto.",connection_lost:"Se perdió la conexión con el servidor de verificación. Inténtalo de nuevo.",unknown:"Error de verificación desconocido"},info:{video:"VÃdeo",audio:"Audio",ch:"can.",hz:"Hz",ms:"ms",loss:"pérdida",fps:"fps",gop:"GOP",sec:"s",frames:"fotogramas",open:"abierto",closed:"cerrado",noReply:"sin respuesta",filtered:"filtrado"}},it:{title:r.jsxs(r.Fragment,{children:["Verifica ",r.jsx("br",{})," del tuo flusso RTSP"]}),steps:{url:"Verifica dell'indirizzo (formato e DNS)",ping:"Ping dell'host",port:"Verifica della porta",streamInfo:"Verifica del flusso RTSP",preview:"Acquisizione di un fotogramma dal flusso"},success:"Il flusso funziona â fotogramma acquisito.",confirmEmail:"Per completare la registrazione, conferma la creazione tramite il link inviato alla tua email.",failed:"La verifica non è stata superata.",timeLeft:"Ancora ~{s} s",retry:"Riprova",close:"Chiudi",errors:{invalid_rtsp_url:"Formato URL RTSP non valido",host_resolve_failed:"Impossibile risolvere l'host (DNS)",local_address:"Indirizzo IP locale/privato â il server non può verificare questo tipo di indirizzi",port_closed:"La porta è chiusa",ffprobe_unavailable:"ffprobe non è disponibile sul server",ffmpeg_unavailable:"ffmpeg non è disponibile sul server",stream_timeout:"Timeout della verifica del flusso",unauthorized:"Credenziali RTSP non valide (nome utente o password)",connection_timeout:"Timeout della connessione",connection_refused:"Connessione rifiutata",no_route_host:"Nessuna route verso l'host",not_found:"Flusso RTSP non trovato",no_video:"Nessun flusso video trovato",invalid_data:"Il flusso ha restituito dati non validi",unknown_ffprobe_error:"Errore sconosciuto durante la verifica del flusso",unknown_ffmpeg_error:"Errore sconosciuto durante l'acquisizione del fotogramma",too_many_requests:"Troppe richieste. Riprova tra un minuto.",connection_lost:"La connessione al server di verifica è stata persa. Riprova.",unknown:"Errore di verifica sconosciuto"},info:{video:"Video",audio:"Audio",ch:"can.",hz:"Hz",ms:"ms",loss:"persi",fps:"fps",gop:"GOP",sec:"s",frames:"fotogrammi",open:"aperta",closed:"chiusa",noReply:"nessuna risposta",filtered:"filtrata"}},tr:{title:r.jsxs(r.Fragment,{children:["RTSP yayınınız ",r.jsx("br",{})," kontrol ediliyor"]}),steps:{url:"Adres kontrolü (format ve DNS)",ping:"Host ping'i",port:"Port kontrolü",streamInfo:"RTSP yayın kontrolü",preview:"Yayından bir kare yakalanıyor"},success:"Yayın çalıÅıyor â kare yakalandı.",confirmEmail:"Kaydı tamamlamak için e-postanıza gönderilen baÄlantıdan oluÅturmayı onaylayın.",failed:"Kontrol geçilemedi.",timeLeft:"Kalan süre ~{s} sn",retry:"Tekrar dene",close:"Kapat",errors:{invalid_rtsp_url:"Geçersiz RTSP URL biçimi",host_resolve_failed:"Host çözümlenemedi (DNS)",local_address:"Yerel/özel IP adresi â sunucu bu tür adresleri kontrol edemez",port_closed:"Port kapalı",ffprobe_unavailable:"Sunucuda ffprobe kullanılamıyor",ffmpeg_unavailable:"Sunucuda ffmpeg kullanılamıyor",stream_timeout:"Yayın kontrolü zaman aÅımına uÄradı",unauthorized:"Geçersiz RTSP kimlik bilgileri (kullanıcı adı veya parola)",connection_timeout:"BaÄlantı zaman aÅımına uÄradı",connection_refused:"BaÄlantı reddedildi",no_route_host:"Host'a yol yok",not_found:"RTSP yayını bulunamadı",no_video:"Video akıÅı bulunamadı",invali
67d_data:"Yayın geçersiz veri döndürdü",unknown_ffprobe_error:"Bilinmeyen yayın kontrol hatası",unknown_ffmpeg_error:"Bilinmeyen kare yakalama hatası",too_many_requests:"Ãok fazla istek. Lütfen bir dakika sonra tekrar deneyin.",connection_lost:"Kontrol sunucusuyla baÄlantı koptu. Lütfen tekrar deneyin.",unknown:"Bilinmeyen kontrol hatası"},info:{video:"Video",audio:"Ses",ch:"kanal",hz:"Hz",ms:"ms",loss:"kayıp",fps:"fps",gop:"GOP",sec:"sn",frames:"kare",open:"açık",closed:"kapalı",noReply:"yanıt yok",filtered:"filtreleniyor"}},zh:{title:r.jsxs(r.Fragment,{children:["æ£å¨æ£æµ ",r.jsx("br",{})," ä½ çRTSPæµ"]}),steps:{url:"å°åæ£æ¥ï¼æ ¼å¼åDNSï¼",ping:"主æºPing",port:"ç«¯å£æ£æ¥",streamInfo:"RTSPæµæ£æ¥",preview:"æ£å¨ä»æµä¸æè·ä¸å¸§ç»é¢"},success:"æµæ£å¸¸ â å·²æè·ç»é¢ã",confirmEmail:"ä¸ºå®ææ³¨åï¼è¯·éè¿æä»¬åéå°æ¨é®ç®±ç龿¥ç¡®è®¤å建ã",failed:"æ£æµæªéè¿ã",timeLeft:"å©ä½çº¦ {s} ç§",retry:"éè¯",close:"å
³é",errors:{invalid_rtsp_url:"RTSP URLæ ¼å¼æ æ",host_resolve_failed:"æ æ³è§£æä¸»æºï¼DNSï¼",local_address:"æ¬å°/ç§æIPå°å â æå¡å¨æ æ³æ£æ¥æ¤ç±»å°å",port_closed:"端å£å·²å
³é",ffprobe_unavailable:"æå¡å¨ä¸æ æ³ä½¿ç¨ffprobe",ffmpeg_unavailable:"æå¡å¨ä¸æ æ³ä½¿ç¨ffmpeg",stream_timeout:"æµæ£æ¥è¶
æ¶",unauthorized:"RTSPåæ®æ æï¼ç¨æ·åæå¯ç ï¼",connection_timeout:"è¿æ¥è¶
æ¶",connection_refused:"è¿æ¥è¢«æç»",no_route_host:"æ æ³è·¯ç±å°ä¸»æº",not_found:"æªæ¾å°RTSPæµ",no_video:"æªæ¾å°è§é¢æµ",invalid_data:"æµè¿åäºæ ææ°æ®",unknown_ffprobe_error:"æªç¥çæµæ£æ¥é误",unknown_ffmpeg_error:"æªç¥çç»é¢æè·é误",too_many_requests:"请æ±è¿å¤ï¼è¯·ä¸åéåéè¯ã",connection_lost:"䏿£æ¥æå¡å¨çè¿æ¥å·²æå¼ï¼è¯·éè¯ã",unknown:"æªç¥çæ£æ¥é误"},info:{video:"è§é¢",audio:"é³é¢",ch:"声é",hz:"Hz",ms:"毫ç§",loss:"丢å
",fps:"fps",gop:"GOP",sec:"ç§",frames:"帧",open:"弿¾",closed:"å
³é",noReply:"æ ååº",filtered:"è¢«è¿æ»¤"}}},Bn="#6b6b6b",nd=e=>String(Math.round(e*100)/100),Lj=({status:e})=>e==="active"?r.jsx("span",{style:{display:"inline-block",width:14,height:14,border:"2px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"landing-check-spin .8s linear infinite"}}):e==="ok"?r.jsx("span",{style:{color:"var(--success)"},children:"â"}):e==="fail"?r.jsx("span",{style:{color:"var(--error)"},children:"â"}):r.jsx("span",{style:{color:Bn},children:"â"}),Mj=()=>{const{lang:e,activePopup:t,checkTarget:n,closePopup:a}=V(),s=Fj[e],i=x.useCallback(N=>s.errors[N??"unknown"]??s.errors.unknown,[s]),{steps:l,phase:o,topError:u,image:c,streamInfo:p,ping:m,port:h,secondsLeft:v,run:j,reset:b}=Cj((n==null?void 0:n.node)??"",i),[S,f]=x.useState(!1),d=x.useRef(null),g=x.useCallback(()=>{var A;const N=(A=d.current)==null?void 0:A.closest(".popup__content");N&&N.scrollTo({top:N.scrollHeight,behavior:"smooth"})},[]),y={display:"block",marginTop:2,color:Bn,fontSize:13},w=()=>{if(!m||m.avg==null)return null;const N=[`${Math.round(m.avg)} ${s.info.ms}`];return m.lossPercent!=null&&N.push(`${m.lossPercent}% ${s.info.loss}`),r.jsx("span",{style:y,children:N.join(" · ")})},P=N=>N.isOpen?s.info.open:N.status==="no_reply"?s.info.noReply:N.status==="filtered"?s.info.filtered:s.info.closed,T=()=>{if(!h)return null;const N=[];return h.tcp&&N.push(["TCP",h.tcp]),h.udp&&N.push(["UDP",h.udp]),!N.length&&h.overall?r.jsx("span",{style:y,children:r.jsx("span",{style:{color:h.overall.isOpen?"var(--success)":"var(--error)"},children:P(h.overall)})}):N.length?r.jsx("span",{style:y,children:N.map(([A,Y],re)=>r.jsxs("span",{children:[re>0&&" · ",A,":"," ",r.jsx("span",{style:{color:Y.isOpen?"var(--success)":"var(--error)"},children:P(Y)})]},A))}):null},z=()=>{if(!p)return null;const N=[],{video:A,audio:Y}=p;if(A){const re=[A.gopSec!=null?`${nd(A.gopSec)} ${s.info.sec}`:null,A.gopFrames!=null?`${A.gopFrames} ${s.info.frames}`:null].filter(Boolean),Ze=[A.codec,A.width&&A.height?`${A.width}Ã${A.height}`:null,A.fps!=null?`${nd(A.fps)} ${s.info.fps}`:null,re.length?`${s.info.gop} ${re.join(" / ")}
67`:null].filter(Boolean);Ze.length&&N.push(r.jsxs("span",{style:y,children:[s.info.video,": ",Ze.join(" · ")]},"v"))}if(Y){const re=[Y.codec,Y.channels!=null?`${Y.channels} ${s.info.ch}`:null,Y.sample_rate!=null?`${Y.sample_rate} ${s.info.hz}`:null].filter(Boolean);re.length&&N.push(r.jsxs("span",{style:y,children:[s.info.audio,": ",re.join(" · ")]},"a"))}return N.length?r.jsx(r.Fragment,{children:N}):null};x.useEffect(()=>{(o==="success"||o==="failed"||o==="error")&&g()},[o,g]);const C=t==="popup-check";return x.useEffect(()=>{f(!1),C&&n?j(n.rtspUrl):b()},[C,n]),r.jsxs(wt,{id:"popup-check",children:[r.jsx("style",{children:"@keyframes landing-check-spin{to{transform:rotate(360deg)}}"}),r.jsx("h2",{className:"popup__h2 h2",children:s.title}),r.jsxs("div",{className:"popup__form form",children:[r.jsx("p",{className:"text",style:{wordBreak:"break-all",color:Bn},children:n==null?void 0:n.rtspUrl}),r.jsx("div",{style:{display:"grid",gap:12},children:ws.map(N=>r.jsxs("div",{style:{display:"flex",gap:10,alignItems:"baseline"},children:[r.jsx("span",{style:{width:16,flexShrink:0,textAlign:"center"},children:r.jsx(Lj,{status:l[N].status})}),r.jsxs("span",{className:"text",style:l[N].status==="pending"?{color:Bn}:void 0,children:[s.steps[N],l[N].error&&r.jsx("span",{className:"form__error",style:{display:"block"},children:l[N].error}),N==="ping"&&w(),N==="port"&&T(),N==="streamInfo"&&z()]})]},N))}),o==="running"&&v!=null&&r.jsx("p",{className:"text",style:{color:Bn,fontSize:13},children:s.timeLeft.replace("{s}",String(v))}),c&&!S&&r.jsx("img",{src:c,alt:s.steps.preview,style:{width:"100%",borderRadius:16,display:"block"},onError:()=>f(!0),onLoad:g}),o==="success"&&r.jsxs(r.Fragment,{children:[r.jsx("p",{className:"form__error",style:{color:"var(--success)"},children:s.success}),r.jsx("div",{style:{display:"flex",gap:12,alignItems:"flex-start",padding:16,borderRadius:16,background:"rgba(25, 135, 84, .08)",border:"1px solid rgba(25, 135, 84, .35)"},children:r.jsx("p",{className:"text",style:{fontWeight:600},children:s.confirmEmail})})]}),(o==="failed"||o==="error")&&r.jsx("p",{className:"form__error",children:u??s.failed}),o!=="running"&&n&&r.jsx("button",{ref:d,className:"form__btn btn btn--red btn-reset",type:"button",onClick:o==="success"?a:()=>void j(n.rtspUrl),children:o==="success"?s.close:s.retry})]})]})},I={emailLabel:{en:"ENTER YOUR EMAIL",ru:"ÐÐÐÐÐТРÐÐШ EMAIL",de:"GEBEN SIE IHRE E-MAIL EIN",pr:"INSIRA SEU E-MAIL",fr:"ENTREZ VOTRE EMAIL",es:"INGRESA TU CORREO ELECTRÃNICO",it:"INSERISCI LA TUA EMAIL",tr:"E-POSTA ADRESİNİZİ GİRİN",zh:"è¾å
¥çµåé®ç®±"},fillAll:{en:"Fill in all fields",ru:"ÐаполниÑе вÑе полÑ",de:"Bitte füllen Sie alle Felder aus",pr:"Preencha todos os campos",fr:"Remplissez tous les champs",es:"Rellena todos los campos",it:"Compila tutti i campi",tr:"Tüm alanları doldurun",zh:"è¯·å¡«åææåæ®µ"},invalidCredentials:{en:"Invalid email or password",ru:"ÐевеÑнÑй email или паÑолÑ",de:"Ungültige E-Mail oder ungültiges Passwort",pr:"E-mail ou senha inválidos",fr:"E-mail ou mot de passe invalide",es:"Correo electrónico o contraseña incorrectos",it:"E-mail o password non validi",tr:"Geçersiz e-posta veya Åifre",zh:"é®ç®±æå¯ç é误"},generic:{en:"Something went wrong. Please try again.",ru:"ЧÑо-Ñо поÑло не Ñак. ÐопÑобÑйÑе еÑÑ Ñаз.",de:"Etwas ist schiefgelaufen. Bitte versuchen Sie es erneut.",pr:"Algo deu errado. Tente novamente.",fr:"Une erreur est survenue. Veuillez réessayer.",es:"Algo salió mal. Inténtalo de nuevo.",it:"Qualcosa è andato storto. Riprova.",tr:"Bir Åeyler ters gitti. Lütfen tekrar deneyin.",zh:"åºç°é®é¢ï¼è¯·éè¯ã"},tooManyRequests:{en:"Too many requests. Please try again in {sec}s.",ru:"СлиÑком много запÑоÑов. ÐопÑобÑйÑе ÑеÑез {sec} Ñек.",de:"Zu viele Anfragen. Bitte versuchen Sie es in {sec} Sek. erneut.",pr:"Muitas solicitações. Tente novamente em {sec}s.",fr:"Trop de requêtes. Veuillez réessayer dans {sec}s.",es:"Demasiadas solicitudes. Inténtalo de nuevo en {sec}s.",it:"Troppe richieste. Riprova tra {sec}s.",tr:"Ãok fazla istek. Lütfen {sec} sn. sonra tekrar deneyin.",zh:"请æ±è¿å¤ï¼è¯·å¨ {sec} ç§åéè¯ã"},tooManyRequestsNoSec:{en:"Too many requests. Please try again later.",ru:"СлиÑком много запÑоÑов. ÐопÑобÑйÑе позже.",de:"Zu viele Anfragen. Bitte versuchen Sie es später erneut.",pr:"Muitas solicitações. Tente novamente mais tarde.",fr:"Trop de requêtes. Veuillez réessayer plus tard.",es:"Demasiadas solicitudes. Inténtalo de nuevo más tarde.",it:"Troppe richieste. Riprova più tardi.",tr:"Ãok fazla istek. Lütfen daha sonra tekrar deneyin.",zh:"请æ±è¿å¤ï¼è¯·ç¨åéè¯ã"},passwordLabel:{en:"ENTER YOUR PASSWORD",ru:"ÐÐÐÐÐТРÐÐШ паÑолÑ",de
67:"GEBEN SIE IHR PASSWORT EIN",pr:"INSIRA SUA SENHA",fr:"ENTREZ VOTRE MOT DE PASSE",es:"INGRESA TU CONTRASEÃA",it:"INSERISCI LA TUA PASSWORD",tr:"ÅİFRENİZİ GİRİN",zh:"è¾å
¥ä½ çå¯ç "},loginBtn:{en:"Log In",ru:"ÐойÑи",de:"Anmelden",pr:"Entrar",fr:"Connexion",es:"Iniciar sesión",it:"Accedi",tr:"GiriÅ Yap",zh:"ç»å½"},loginBtnLoading:{en:"Logging inâ¦",ru:"ÐÑ
одâ¦",de:"Anmeldungâ¦",pr:"Entrandoâ¦",fr:"Connexionâ¦",es:"Iniciando sesiónâ¦",it:"Accessoâ¦",tr:"GiriÅ yapılıyorâ¦",zh:"ç»å½ä¸â¦"},resetSubmitted:{en:"If that email is registered, we've sent a password reset link to it.",ru:"ÐÑли Ñакой email заÑегиÑÑÑиÑован, Ð¼Ñ Ð¾ÑпÑавили на него ÑÑÑÐ»ÐºÑ Ð´Ð»Ñ ÑбÑоÑа паÑолÑ.",de:"Falls diese E-Mail registriert ist, haben wir einen Link zum Zurücksetzen des Passworts an sie gesendet.",pr:"Se esse e-mail estiver cadastrado, enviamos um link para redefinir a senha.",fr:"Si cette adresse e-mail est enregistrée, nous y avons envoyé un lien de réinitialisation du mot de passe.",es:"Si ese correo electrónico está registrado, te hemos enviado un enlace para restablecer la contraseña.",it:"Se questa e-mail è registrata, ti abbiamo inviato un link per reimpostare la password.",tr:"Bu e-posta kayıtlıysa, Åifre sıfırlama baÄlantısını e-posta adresinize gönderdik.",zh:"å¦æè¯¥é®ç®±å·²æ³¨åï¼æä»¬å·²åå
¶åéäºå¯ç éç½®é¾æ¥ã"},resetBtn:{en:"Send",ru:"оÑпÑавиÑÑ",de:"Senden",pr:"Enviar",fr:"Envoyer",es:"Enviar",it:"Invia",tr:"Gönder",zh:"åé"},resetBtnLoading:{en:"Sendingâ¦",ru:"ÐÑпÑавкаâ¦",de:"Sendenâ¦",pr:"Enviandoâ¦",fr:"Envoiâ¦",es:"Enviandoâ¦",it:"Invioâ¦",tr:"Gönderiliyorâ¦",zh:"åéä¸â¦"},rtspLabel:{en:"YOUR RTSP LINK (H.264/H.265)",ru:"ÐÐШРRTSP-ССЫÐÐÐ (H.264/H.265)",de:"IHRE RTSP-URL (H.264/H.265)",pr:"SEU LINK RTSP (H.264/H.265)",fr:"VOTRE LIEN RTSP (H.264/H.265)",es:"TU ENLACE RTSP (H.264/H.265)",it:"IL TUO LINK RTSP (H.264/H.265)",tr:"RTSP LİNKİNİZ (H.264/H.265)",zh:"è¾å
¥RTSP龿¥ï¼H.264/H.265ï¼"},dcLabel:{en:"Nearest data center",ru:"ÐлижайÑий даÑа ÑенÑÑ",de:"Nächstgelegenes Rechenzentrum",pr:"Data center mais próximo",fr:"Centre de données le plus proche",es:"Centro de datos más cercano",it:"Data center più vicino",tr:"En yakın veri merkezi",zh:"æè¿çæ°æ®ä¸å¿"},loginTitle:{en:"Log In",ru:"ÐойÑи",de:"Anmelden",pr:"Entrar",fr:"Connexion",es:"Iniciar sesión",it:"Accedi",tr:"GiriÅ Yap",zh:"ç»å½"},loginSubtitle:{en:r.jsxs(r.Fragment,{children:["Log in to access ",r.jsx("br",{})," your personal account"]}),ru:r.jsxs(r.Fragment,{children:["ÐойдиÑе в аккаÑнÑ, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð»ÑÑиÑÑ ",r.jsx("br",{})," доÑÑÑп к лиÑÐ½Ð¾Ð¼Ñ ÐºÐ°Ð±Ð¸Ð½ÐµÑÑ"]}),de:r.jsxs(r.Fragment,{children:["Melden Sie sich an, ",r.jsx("br",{})," um auf Ihr persönliches Konto zuzugreifen"]}),pr:r.jsxs(r.Fragment,{children:["Faça login para acessar ",r.jsx("br",{})," sua conta pessoal"]}),fr:r.jsxs(r.Fragment,{children:["Connectez-vous pour accéder ",r.jsx("br",{})," à votre compte personnel"]}),es:r.jsxs(r.Fragment,{children:["Inicia sesión para acceder ",r.jsx("br",{})," a tu cuenta personal"]}),it:r.jsxs(r.Fragment,{children:["Accedi per ",r.jsx("br",{})," entrare nel tuo account personale"]}),tr:r.jsxs(r.Fragment,{children:["KiÅisel hesabınıza ",r.jsx("br",{})," eriÅmek için giriÅ yapın"]}),zh:r.jsxs(r.Fragment,{children:["ç»å½ä½ ç ",r.jsx("br",{})," 个人账æ·"]})},resetLink:{en:"RESET PASSWORD",ru:"СÐÐ ÐСÐТЬ ÐÐÐ ÐÐЬ",de:"PASSWORT ZURÃCKSETZEN",pr:"REDEFINIR SENHA",fr:"RÃINITIALISER LE MOT DE PASSE",es:"RESTABLECER CONTRASEÃA",it:"REIMPOSTA PASSWORD",tr:"ÅİFREYİ SIFIRLA",zh:"éç½®å¯ç "},noAccount:{en:"No account? ",ru:"ÐÐµÑ Ð°ÐºÐºÐ°ÑнÑа? ",de:"Noch kein Konto? ",pr:"Não tem conta? ",fr:"Pas de compte ? ",es:"¿No tienes cuenta? ",it:"Non hai un account? ",tr:"Hesabınız yok mu? ",zh:"è¿æ²¡æè´¦æ·ï¼ "},signUp:{en:" Sign up",ru:" РегиÑÑÑаÑиÑ",de:" Registrieren",pr:" Cadastrar",fr:" Sâinscrire",es:" Registrarse",it:" Registrati",tr:" Kayıt Ol",zh:" 注å"},signUpTitle:{en:"Sign up",ru:"РегиÑÑÑаÑиÑ",de:"Registrieren",pr:"Cadastrar",fr:"Sâinscrire",es:"Registrarse",it:"Registrati",tr:"Kayıt Ol",zh:"注å"},signUpSubtitle:{en:r.jsxs(r.Fragment,{children:["Enter your email and create a password ",r.jsx("br",{})," to access your personal account"]}),ru:r.jsxs(r.Fragment,{children:["ÐведиÑе email и пÑидÑмайÑе паÑÐ¾Ð»Ñ ",r.jsx("br",{})," Ð´Ð»Ñ Ð²Ñ
ода в лиÑнÑй кабинеÑ"]}),de:r.jsxs(r.Fragment,{children:["Geben Sie Ihre E-Mail ein und erstellen Sie ein Passwort ",r.jsx("br",{})," für den Zugang zu Ihrem persönlichen Konto"]}),pr:r.jsxs(r.Fragment,{children:["Insira seu e-mail e crie uma senha ",r.jsx("br",{})," para acessar sua conta pessoal"]}),fr:r.jsxs(r.Fragment,{children:["Saisissez votre e-mail et créez un mot de passe ",r.jsx("br",{})," pour accéder à votre compte personnel"]}),es:r.jsxs(r.Fragment,{children:["Introduce tu correo y crea una contraseña ",r.jsx("br",{})," para acceder a tu cuenta personal"]}),it:r.jsxs(r.Fragment,{children:["Inserisci la tua email e crea una password ",r.jsx("br",{})," per accedere al tuo account personale"]}),tr:r.jsxs(r.Fragment,{children:["E-postanızı girin ve kiÅisel hesabınıza ",r.jsx("br",{})," eriÅmek için bir Åifre oluÅturun"]}
67),zh:r.jsxs(r.Fragment,{children:["è¾å
¥é®ç®±å¹¶å建å¯ç ",r.jsx("br",{})," 以访é®ä½ ç个人账æ·"]})},confirmPasswordLabel:{en:"CONFIRM PASSWORD",ru:"ÐÐÐТÐÐ ÐТРÐÐÐ ÐÐЬ",de:"PASSWORT BESTÃTIGEN",pr:"CONFIRME A SENHA",fr:"CONFIRMEZ LE MOT DE PASSE",es:"CONFIRMA LA CONTRASEÃA",it:"CONFERMA LA PASSWORD",tr:"ÅİFREYİ ONAYLAYIN",zh:"确认å¯ç "},passwordMin:{en:"Password must be at least 8 characters",ru:"ÐаÑÐ¾Ð»Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ ÑодеÑжаÑÑ Ð½Ðµ менее 8 Ñимволов",de:"Das Passwort muss mindestens 8 Zeichen lang sein",pr:"A senha deve ter pelo menos 8 caracteres",fr:"Le mot de passe doit contenir au moins 8 caractères",es:"La contraseña debe tener al menos 8 caracteres",it:"La password deve contenere almeno 8 caratteri",tr:"Åifre en az 8 karakter olmalıdır",zh:"å¯ç è³å°éè¦8个å符"},passwordsDontMatch:{en:"Passwords do not match",ru:"ÐаÑоли не ÑовпадаÑÑ",de:"Die Passwörter stimmen nicht überein",pr:"As senhas não coincidem",fr:"Les mots de passe ne correspondent pas",es:"Las contraseñas no coinciden",it:"Le password non coincidono",tr:"Åifreler eÅleÅmiyor",zh:"两次è¾å
¥çå¯ç ä¸ä¸è´"},registerSuccess:{en:"Almost there! Check your email and confirm your account via the link we've sent.",ru:"ÐоÑÑи гоÑово! ÐÑовеÑÑÑе поÑÑÑ Ð¸ подÑвеÑдиÑе аккаÑÐ½Ñ Ð¿Ð¾ ÑÑÑлке из пиÑÑма.",de:"Fast fertig! Prüfen Sie Ihre E-Mails und bestätigen Sie Ihr Konto über den gesendeten Link.",pr:"Quase lá! Verifique seu e-mail e confirme sua conta pelo link que enviamos.",fr:"Presque terminé ! Vérifiez votre e-mail et confirmez votre compte via le lien envoyé.",es:"¡Casi listo! Revisa tu correo y confirma tu cuenta con el enlace que te enviamos.",it:"Ci siamo quasi! Controlla la tua email e conferma l'account tramite il link inviato.",tr:"Neredeyse tamam! E-postanızı kontrol edin ve gönderdiÄimiz baÄlantıyla hesabınızı onaylayın.",zh:"å°±å¿«å®æäºï¼è¯·æ¥æ¶é®ä»¶å¹¶éè¿æä»¬åéç龿¥ç¡®è®¤ä½ çè´¦æ·ã"},emailTaken:{en:"This email is already registered",ru:"ÐÑÐ¾Ñ email Ñже заÑегиÑÑÑиÑован",de:"Diese E-Mail ist bereits registriert",pr:"Este e-mail já está cadastrado",fr:"Cet e-mail est déjà enregistré",es:"Este correo electrónico ya está registrado",it:"Questa email è già registrata",tr:"Bu e-posta zaten kayıtlı",zh:"该é®ç®±å·²æ³¨å"},signUpSubmitting:{en:"Signing upâ¦",ru:"РегиÑÑÑаÑиÑâ¦",de:"Registrierungâ¦",pr:"Cadastrandoâ¦",fr:"Inscriptionâ¦",es:"Registrandoâ¦",it:"Registrazioneâ¦",tr:"Kayıt olunuyorâ¦",zh:"注åä¸â¦"},haveAccount:{en:"Have an account? ",ru:"ÐÑÑÑ Ð°ÐºÐºÐ°ÑнÑ? ",de:"Bereits ein Konto? ",pr:"Já tem conta? ",fr:"Vous avez déjà un compte ? ",es:"¿Ya tienes una cuenta? ",it:"Hai già un account? ",tr:"Zaten bir hesabınız var mı? ",zh:"å·²ç»æè´¦æ·ï¼ "},resetTitle:{en:"RESET PASSWORD",ru:"СÐÐ ÐСÐТЬ ÐÐÐ ÐÐЬ",de:"PASSWORT ZURÃCKSETZEN",pr:"REDEFINIR SENHA",fr:"RÃINITIALISER LE MOT DE PASSE",es:"RESTABLECER CONTRASEÃA",it:"REIMPOSTA PASSWORD",tr:"ÅİFREYİ SIFIRLA",zh:"éç½®å¯ç "},resetSubtitle:{en:"A password reset link will be sent to the email you provided during registration.",ru:"СÑÑлка Ð´Ð»Ñ ÑбÑоÑа паÑÐ¾Ð»Ñ Ð±ÑÐ´ÐµÑ Ð²ÑÑлана на ваÑÑ Ð¿Ð¾ÑÑÑ, ÑказаннÑÑ Ð¿Ñи ÑегиÑÑÑаÑии",de:"Ein Link zum Zurücksetzen des Passworts wird an die bei der Registrierung angegebene E-Mail gesendet.",pr:"Um link para redefinir a senha será enviado ao e-mail fornecido no cadastro.",fr:"Un lien de réinitialisation du mot de passe sera envoyé à lâadresse e-mail que vous avez renseignée lors de lâinscription.",es:"Se enviará un enlace para restablecer la contraseña al correo electrónico que proporcionaste durante el registro.",it:"Un link per reimpostare la password verrà inviato allâindirizzo e-mail che hai fornito in fase di registrazione.",tr:"Kayıt sırasında belirttiÄiniz e-posta adresine bir Åifre sıfırlama baÄlantısı gönderilecektir.",zh:"å°ä¼åä½ æ³¨åæ¶å¡«åçé®ç®±åéå¯ç éç½®é¾æ¥ã"},broadcastTitle:{en:r.jsxs(r.Fragment,{children:["Create ",r.jsx("br",{})," RTSP Broadcast"]}),ru:r.jsxs(r.Fragment,{children:["СоздаÑÑ ",r.jsx("br",{})," RTSP-ÑÑанÑлÑÑиÑ"]}),de:r.jsxs(r.Fragment,{children:["RTSP-Ãbertragung ",r.jsx("br",{})," erstellen"]}),pr:r.jsxs(r.Fragment,{children:["Criar ",r.jsx("br",{})," transmissão RTSP"]}),fr:r.jsxs(r.Fragment,{children:["Créer ",r.jsx("br",{})," une diffusion RTSP"]}),es:r.jsxs(r.Fragment,{children:["Crear ",r.jsx("br",{})," transmisión RTSP"]}),it:r.jsxs(r.Fragment,{children:["Crea ",r.jsx("br",{})," trasmissione RTSP"]}),tr:r.jsxs(r.Fragment,{children:["RTSP Yayını ",r.jsx("br",{})," OluÅtur"]}
67),zh:r.jsxs(r.Fragment,{children:["å建 ",r.jsx("br",{})," RTSPç´æ"]})},agreePrefix:{en:"By clicking the button, you agree to the ",ru:"ÐÐ°Ð¶Ð¸Ð¼Ð°Ñ ÐºÐ½Ð¾Ð¿ÐºÑ, Ð²Ñ ÑоглаÑаеÑеÑÑ Ñ ",de:"Mit dem Klick auf den Button akzeptieren Sie die ",pr:"Ao clicar no botão, você concorda com ",fr:"En cliquant sur le bouton, vous acceptez ",es:"Al hacer clic en el botón, aceptas ",it:"Cliccando sul pulsante, accetti ",tr:"Hizmet kurallarını ",zh:"ç¹å»æé®è¡¨ç¤ºä½ åæ "},serviceRules:{en:"service rules",ru:"пÑавилами ÑеÑвиÑа",de:"Nutzungsbedingungen",pr:"os termos do serviço",fr:"les règles du service",es:"los términos del servicio",it:"i termini del servizio",tr:"kabul etmiÅ olursunuz",zh:"æå¡æ¡æ¬¾"},videoTitle:{en:r.jsxs(r.Fragment,{children:["Your ",r.jsx("br",{})," RTSP broadcast"]}),ru:r.jsxs(r.Fragment,{children:["ваÑа ",r.jsx("br",{})," RTSP ÑÑанÑлÑÑиÑ"]}),de:r.jsxs(r.Fragment,{children:["Ihr ",r.jsx("br",{})," RTSP-Stream"]}),pr:r.jsxs(r.Fragment,{children:["Sua ",r.jsx("br",{})," transmissão RTSP"]}),fr:r.jsxs(r.Fragment,{children:["Votre ",r.jsx("br",{})," diffusion RTSP"]}),es:r.jsxs(r.Fragment,{children:["Tu ",r.jsx("br",{})," transmisión RTSP"]}),it:r.jsxs(r.Fragment,{children:["La tua ",r.jsx("br",{})," trasmissione RTSP"]}),tr:r.jsxs(r.Fragment,{children:["RTSP ",r.jsx("br",{})," Yayınınız"]}),zh:r.jsxs(r.Fragment,{children:["ä½ ç ",r.jsx("br",{})," RTSPç´æ"]})},videoPlayerLabel:{en:"HTML5 Video Player",ru:"HTML5 Ðидео плееÑ",de:"HTML5-Videoplayer",pr:"Player de vÃdeo HTML5",fr:"Lecteur vidéo HTML5",es:"Reproductor de video HTML5",it:"Lettore video HTML5",tr:"HTML5 Video Oynatıcı",zh:"HTML5è§é¢ææ¾å¨"},htmlCodeLabel:{en:"HTML CODE",ru:"HTML ÐÐÐ",de:"HTML-CODE",pr:"CÃDIGO HTML",fr:"CODE HTML",es:"CÃDIGO HTML",it:"CODICE HTML",tr:"HTML KODU",zh:"HTML代ç "},permanentLinkLabel:{en:"Permanent Link",ru:"поÑÑоÑÐ½Ð½Ð°Ñ ÑÑÑлка",de:"Permanenter Link",pr:"Link permanente",fr:"Lien permanent",es:"Enlace permanente",it:"Link permanente",tr:"Kalıcı BaÄlantı",zh:"æ°¸ä¹
龿¥"},copied:{en:"Copied!",ru:"СкопиÑовано!",de:"Kopiert!",pr:"Copiado!",fr:"Copié !",es:"¡Copiado!",it:"Copiato!",tr:"Kopyalandı!",zh:"å·²å¤å¶ï¼"},contactSupport:{en:"Contact Support",ru:"ÐапиÑаÑÑ Ð² поддеÑжкÑ",de:"Support kontaktieren",pr:"Entrar em contato com suporte",fr:"Contacter le support",es:"Contactar al soporte",it:"Contatta il supporto",tr:"Destek ile İletiÅime Geçin",zh:"èç³»ææ¯æ¯æ"},thanksTitle:{en:"Thank you!",ru:"СпаÑибо!",de:"Danke!",pr:"Obrigado!",fr:"Merci !",es:"¡Gracias!",it:"Grazie!",tr:"TeÅekkürler!",zh:"谢谢ï¼"},thanksText:{en:"We will contact you shortly",ru:"ÐÑ ÑвÑжемÑÑ Ñ Ð²Ð°Ð¼Ð¸ в ближайÑее вÑемÑ",de:"Wir werden uns in Kürze bei Ihnen melden.",pr:"Entraremos em contato em breve",fr:"Nous vous contacterons prochainement",es:"Nos pondremos en contacto contigo pronto",it:"Ti contatteremo al più presto",tr:"En kısa zamanda sizinle iletiÅime geçeceÄiz",zh:"æä»¬ä¼å°½å¿«èç³»ä½ "},localIpError:{en:"Creating a broadcast with a local IP is not possible.",ru:"Создание ÑÑанÑлÑÑии Ñ Ð»Ð¾ÐºÐ°Ð»Ñного IP невозможно.",de:"Ein Stream mit lokaler IP kann nicht erstellt werden.",pr:"Não é possÃvel criar uma transmissão com IP local.",fr:"Impossible de créer une diffusion avec une IP locale.",es:"No se puede crear una transmisión con una IP local.",it:"Non è possibile creare una trasmissione con un IP locale.",tr:"Yerel IP adresiyle yayın oluÅturulamaz.",zh:"æ æ³ä½¿ç¨å±åç½IPæ¥åå»ºç´æã"},close:{en:"Close",ru:"ÐакÑÑÑÑ",de:"SchlieÃen",pr:"Fechar",fr:"Fermer",es:"Cerrar",it:"Chiudi",tr:"Kapat",zh:"å
³é"},button:{en:"Button",ru:"Ðнопка",de:"Button",pr:"Botão",fr:"Bouton",es:"Botón",it:"Pulsante",tr:"DüÄme",zh:"æé®"}},zh=(e,t)=>{const n=e instanceof qe?e.retryAfterSec:null;return n&&n>0?I.tooManyRequests[t].replace("{sec}",String(Math.ceil(n))):I.tooManyRequestsNoSec[t]}
67,ao=({value:e,onChange:t,name:n,autoComplete:a,placeholder:s})=>{const[i,l]=x.useState(!1);return r.jsxs("div",{className:"form__wrap",children:[r.jsx("input",{className:"form__input input-reset input-password",type:i?"text":"password",name:n,autoComplete:a,placeholder:s,value:e,onChange:o=>t(o.currentTarget.value)}),r.jsx("button",{type:"button",className:"form__password","aria-label":i?"Hide password":"Show password",onClick:()=>l(o=>!o),style:{border:"none",padding:0,backgroundColor:"transparent",backgroundImage:`url(/landing/img/svg/${i?"no-view":"view"}.svg)`,backgroundRepeat:"no-repeat",backgroundPosition:"center",backgroundSize:"contain"}})]})},Aj=()=>{const{lang:e}=V(),t=Ft(p=>p.login),n=Ft(p=>p.isLoading),[a,s]=x.useState(""),[i,l]=x.useState(""),[o,u]=x.useState(null),c=async p=>{if(p.preventDefault(),u(null),!a.trim()||!i){u(I.fillAll[e]);return}try{await t(a.trim(),i),window.location.assign(uu(e,"/cameras"))}catch(m){const h=m instanceof qe&&(m.code==="invalid_credentials"||m.status===401);u(h?I.invalidCredentials[e]:I.generic[e])}};return r.jsxs("form",{className:"popup__form form",onSubmit:c,children:[r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.emailLabel[e]}),r.jsx("input",{className:"form__input input-reset input-email login-modal-email",type:"email",name:"email",placeholder:"[email protected]",value:a,onChange:p=>s(p.currentTarget.value),autoComplete:"email"})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.passwordLabel[e]}),r.jsx(ao,{value:i,onChange:l,name:"password",autoComplete:"current-password"})]}),o&&r.jsx("p",{className:"form__error",children:o}),r.jsx("button",{className:"form__btn btn btn--red btn-reset",type:"submit",disabled:n,children:n?I.loginBtnLoading[e]:I.loginBtn[e]})]})},qj=()=>{const{lang:e}=V(),t=Ft(p=>p.requestPasswordReset),n=Ft(p=>p.isLoading),[a,s]=x.useState(""),[i,l]=x.useState(null),[o,u]=x.useState(!1),c=async p=>{if(p.preventDefault(),l(null),!a.trim()){l(I.fillAll[e]);return}try{await t(a.trim(),e),u(!0)}catch(m){Xs(m)?l(zh(m,e)):u(!0)}};return o?r.jsx("p",{className:"popup__text text",children:I.resetSubmitted[e]}):r.jsxs("form",{className:"popup__form form",onSubmit:c,children:[r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.emailLabel[e]}),r.jsx("input",{className:"form__input input-reset input-email",type:"email",name:"email",placeholder:"[email protected]",value:a,onChange:p=>s(p.currentTarget.value),autoComplete:"email"})]}),i&&r.jsx("p",{className:"form__error",children:i}),r.jsx("button",{className:"form__btn btn btn--red btn-reset",type:"submit",disabled:n,children:n?I.resetBtnLoading[e]:I.resetBtn[e]})]})},Dj=()=>{const{lang:e,openPopup:t}=V(),n=Ft(S=>S.register),a=Ft(S=>S.isLoading),[s,i]=x.useState(""),[l,o]=x.useState(""),[u,c]=x.useState(""),[p,m]=x.useState(null),[h,v]=x.useState(!1),j=async S=>{if(S.preventDefault(),m(null),!s.trim()||!l||!u){m(I.fillAll[e]);return}if(l.length<8){m(I.passwordMin[e]);return}if(l!==u){m(I.passwordsDontMatch[e]);return}try{await n(s.trim(),l,e),v(!0)}catch(f){Ph(f)?m(I.emailTaken[e]):Xs(f)?m(zh(f,e)):m(I.generic[e])}},b=r.jsx("div",{className:"popup__bottom",children:r.jsxs("p",{className:"popup__desc text",children:[I.haveAccount[e],r.jsx("a",{className:"popup-link",onClick:()=>t("popup-login"),children:I.loginTitle[e]})]})});return h?r.jsxs("div",{style:{marginTop:120,textAlign:"center"},children:[r.jsx("p",{className:"popup__text text",children:I.registerSuccess[e]}),b]}):r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"popup__top",children:[r.jsx("h2",{className:"popup__h2 h2 anim",children:I.signUpTitle[e]}),r.jsx("p",{className:"popup__text text",children:I.signUpSubtitle[e]})]}),r.jsxs("form",{className:"popup__form form",onSubmit:j,children:[r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.emailLabel[e]}),r.jsx("input",{className:"form__input input-reset input-email",type:"email",name:"email",placeholder:"[email protected]",value:s,onChange:S=>i(S.currentTarget.value),autoComplete:"email"})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.passwordLabel[e]}
67),r.jsx(ao,{value:l,onChange:o,name:"password",autoComplete:"new-password"})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.confirmPasswordLabel[e]}),r.jsx(ao,{value:u,onChange:c,name:"confirmPassword",autoComplete:"new-password"})]}),p&&r.jsx("p",{className:"form__error",children:p}),r.jsx("button",{className:"form__btn btn btn--red btn-reset",type:"submit",disabled:a,children:a?I.signUpSubmitting[e]:I.signUpTitle[e]})]}),b]})},Oj=()=>{const{lang:e}=V(),{m:t,dc:n,setDc:a,rtspLink:s,setRtspLink:i,email:l,setEmail:o,submitting:u,notice:c,handleSubmit:p,handleTest:m}=Nh();return r.jsxs("form",{className:"popup__form form form--broadcast",onSubmit:p,children:[r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.rtspLabel[e]}),r.jsxs("div",{style:{display:"flex",gap:8,alignItems:"stretch"},children:[r.jsx("input",{className:"form__input input-reset input-link",style:{flex:1,minWidth:0},type:"text",name:"rtspLink",placeholder:"rtsp://admin:[email protected]:554/main",value:s,onChange:h=>i(h.currentTarget.value)}),r.jsx("button",{className:"btn btn-reset",type:"button",style:{flex:"0 0 auto",width:"auto",padding:"0 22px",whiteSpace:"nowrap",border:"1px solid var(--accent)",background:"transparent",color:"var(--accent)"},onClick:m,children:t.test})]})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.emailLabel[e]}),r.jsx("input",{className:"form__input input-reset input-email",type:"email",name:"rtspEmail",placeholder:"[email protected]",value:l,onChange:h=>o(h.currentTarget.value),autoComplete:"email"})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.dcLabel[e]}),r.jsx(_h,{value:n,onChange:a})]}),r.jsx(Th,{notice:c}),r.jsx("button",{className:"form__btn btn btn--red btn-reset",type:"submit",disabled:u,children:u?t.submitting:t.submit})]})},Hj=()=>{const{lang:e,openPopup:t}=V();return r.jsxs(r.Fragment,{children:[r.jsxs(wt,{id:"popup-login",children:[r.jsxs("div",{className:"popup__top",children:[r.jsxs("h2",{className:"popup__h2 h2 anim",children:[I.loginTitle[e]," "]}),r.jsx("p",{className:"popup__text text",children:I.loginSubtitle[e]})]}),r.jsx(Aj,{}),r.jsxs("div",{className:"popup__bottom",children:[r.jsx("a",{className:"popup__reset popup-link",onClick:()=>t("popup-reset-password"),children:I.resetLink[e]}),r.jsxs("p",{className:"popup__desc text",children:[I.noAccount[e],r.jsx("a",{className:"popup-link",onClick:()=>t("popup-registration"),children:I.signUp[e]})]})]})]}),r.jsx(wt,{id:"popup-registration",children:r.jsx(Dj,{})}),r.jsxs(wt,{id:"popup-reset-password",children:[r.jsxs("div",{className:"popup__top",children:[r.jsx("h2",{className:"popup__h2 h2 anim",children:I.resetTitle[e]}),r.jsx("p",{className:"popup__text text",children:I.resetSubtitle[e]})]}),r.jsx(qj,{})]}),r.jsxs(wt,{id:"popup-broadcast",children:[r.jsx("h2",{className:"popup__h2 h2 anim",children:I.broadcastTitle[e]}),r.jsx(Oj,{}),r.jsx("div",{className:"popup__bottom",children:r.jsxs("p",{className:"popup__desc text",children:[I.agreePrefix[e],r.jsx("a",{href:"#!",children:I.serviceRules[e]})]})})]}),r.jsxs(wt,{id:"popup-video",back:!0,children:[r.jsx("h2",{className:"popup__h2 h2 anim",children:I.videoTitle[e]}),r.jsxs("form",{className:"popup__form form",onSubmit:n=>n.preventDefault(),children:[r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.videoPlayerLabel[e]}),r.jsx("div",{className:"form__video",children:r.jsx("div",{className:"modal-video-iframe",children:r.jsx("iframe",{width:"640",height:"480",frameBorder:"0",allowFullScreen:!0,title:"player"})})})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.htmlCodeLabel[e]}),r.jsxs("div",{className:"copy",children:[r.jsx("input",{className:"copy__input input-reset modal-video-iframe-input",type:"text",value:'<iframe src="https://rtsp.me/embed/waiting/" style="width:100%; aspect-ratio:4/3; border:0;" title="RTSP streaming player" allow="fullscreen; autoplay" allowfullscreen></iframe><p align="right">powered by <a href="https://rtsp.me" title="RTSP.ME - Free website RTSP video steaming service" target="_blank">rtsp.me</a></p>',readOnly:!0}),r.jsx("button",{className:"copy__btn btn-reset",type:"button"}),r.jsx("span",{className:"copy__message text",children:I.copied[e]})]})]}),r.jsxs("div",{className:"form__group",children:[r.jsx("label",{className:"form__label",children:I.permanentLinkLabel[e]}),r.jsxs("div",{className:"copy",children:[r.jsx("input",{className:"copy__input input-reset modal-video-link-input",type:"text",value:"rtsp://example.rtsp.me:9784/cameras/6/streaming/sub?authorization=Basic%20YWRtaW46&audio=0",readOnly:!0}),r.jsx("button",{className:"copy__btn btn-reset",type:"button"}),r.jsx("span",{className:"copy__message text",children:I.copied[e]})]})]}),r.jsx("a",{className:"form__btn btn btn--red",href:"#!",children:I.contactSupport[e]})]})]}),r.jsx(wt,{id:"popup-thanks",children:r.jsxs("div",{className:"popup__top",children:[r.jsx("h2",{className:"popup__h2 h2 anim",children:I.thanksTitle[e]}),r.jsx("p",{className:"popup__text text",children:I.thanksText[e]})]})}),r.jsxs(wt,{id:"popup-error",children:[r.jsx("div",{className:"popup__top popup__top--space",children:r.jsx("p",{className:"popup__text text modal-error-text",children:I.localIpError[e]})}),r.jsx("div",{className:"modal-error-btns",children:r.jsx("button",{className:"popup__btn btn btn--red close-popup modal
67-error-button",onClick:()=>t("popup-broadcast"),children:I.close[e]})})]}),r.jsx(Mj,{}),r.jsx(wt,{id:"popup-empty",children:r.jsx("a",{className:"popup__btn btn btn--red popup-link",onClick:()=>t("popup-broadcast"),children:I.button[e]})})]})},Uj=()=>{const[e,t]=x.useState(!1);return x.useEffect(()=>{const n=()=>t(window.scrollY>400);return window.addEventListener("scroll",n,{passive:!0}),n(),()=>window.removeEventListener("scroll",n)},[]),r.jsx("button",{className:`scrolltop btn-reset${e?" active":""}`,onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),"aria-label":"Scroll to top",children:r.jsx("svg",{width:"48",height:"48",viewBox:"0 0 48 48",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:r.jsx("path",{d:"M23.9997 21.5999L17.9853 27.1247C17.7555 27.3508 17.4461 27.4774 17.1237 27.4774C16.8014 27.4774 16.492 27.3508 16.2621 27.1247C16.1497 27.0132 16.0604 26.8805 15.9995 26.7342C15.9385 26.588 15.9072 26.4311 15.9072 26.2727C15.9072 26.1143 15.9385 25.9575 15.9995 25.8112C16.0604 25.665 16.1497 25.5323 16.2621 25.4207L23.1357 18.6839C23.3649 18.4575 23.674 18.3305 23.9961 18.3305C24.3183 18.3305 24.6274 18.4575 24.8565 18.6839L31.7301 25.4207C31.8432 25.532 31.933 25.6646 31.9943 25.8109C32.0556 25.9571 32.0871 26.1141 32.0871 26.2727C32.0871 26.4313 32.0556 26.5883 31.9943 26.7346C31.933 26.8809 31.8432 27.0135 31.7301 27.1247C31.501 27.3512 31.1919 27.4782 30.8697 27.4782C30.5476 27.4782 30.2385 27.3512 30.0093 27.1247L23.9997 21.5999ZM0.959717 23.9999C0.959717 20.9743 1.55571 17.9783 2.71361 15.1829C3.87141 12.3876 5.56852 9.84769 7.70802 7.70822C9.84752 5.56875 12.3874 3.87164 15.1827 2.71377C17.9781 1.5559 20.9741 0.959961 23.9997 0.959961C36.7269 0.95996 47.0398 11.2751 47.0398 23.9999C47.0398 36.7247 36.7269 47.0399 23.9997 47.0399C17.8892 47.0399 12.0288 44.6125 7.70802 40.2917C3.38721 35.9708 0.959717 30.1105 0.959717 23.9999ZM44.0494 23.9999C44.0494 18.6821 41.9369 13.5821 38.1766 9.82191C34.4163 6.06164 29.3163 3.94916 23.9985 3.94916C18.6807 3.94916 13.5807 6.06164 9.82052 9.82191C6.06021 13.5821 3.94772 18.6821 3.94772 23.9999C3.94772 29.3177 6.06021 34.4177 9.82052 38.178C13.5807 41.9382 18.6807 44.0507 23.9985 44.0507C29.3163 44.0507 34.4163 41.9382 38.1766 38.178C41.9369 34.4177 44.0494 29.3177 44.0494 23.9999Z"})})})},Vj=()=>{x.useEffect(()=>{const e=Array.from(document.querySelectorAll(".anim:not(.show)"));if(e.length===0)return;const t=new IntersectionObserver(n=>{for(const a of n)a.isIntersecting&&(a.target.classList.add("show"),t.unobserve(a.target))},{threshold:.05,rootMargin:"0px 0px -5% 0px"});return e.forEach(n=>t.observe(n)),()=>t.disconnect()},[])},Bj=()=>(Vj(),r.jsxs("div",{className:"wrapper",children:[r.jsx(fy,{}),r.jsxs("main",{className:"main",children:[r.jsx(Ry,{}),r.jsx(Iy,{}),r.jsx(qy,{}),r.jsx($y,{}),r.jsx(nj,{}),r.jsx(oj,{}),r.jsx(Yy,{}),r.jsx(Jy,{}),r.jsx(tj,{}),r.jsx(cj,{}),r.jsx(mj,{}),r.jsx(hj,{}),r.jsx(gj,{}),r.jsx(vj,{})]}),r.jsx(jj,{}),r.jsx(Sj,{}),r.jsx(Hj,{}),r.jsx(Uj,{})]})),Wj=()=>r.jsx(Kv,{children:r.jsx(Bj,{})}),Ss=document.getElementById("root");if(!Ss)throw new Error('Root element with id "root" not found');const ad=r.jsx(Pd.StrictMode,{children:r.jsx(Rv,{children:r.jsx(lv,{children:r.jsx(Zp,{path:":lang",element:r.jsx(Wj,{})})})})});Ss.hasChildNodes()?Tp(Ss,ad):Ep(Ss).render(ad);
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.