@vkontakte/videoplayer-statistics 1.0.94 → 1.0.95-dev.0c91b20c.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esnext.esm.js CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
- * @vkontakte/videoplayer-statistics v1.0.94
3
- * Thu, 04 Dec 2025 16:00:00 GMT
4
- * https://st.mycdn.me/static/vkontakte-videoplayer/1-0-94/doc/
2
+ * @vkontakte/videoplayer-statistics v1.0.95-dev.0c91b20c.0
3
+ * Fri, 12 Dec 2025 13:56:52 GMT
4
+ * https://st.mycdn.me/static/vkontakte-videoplayer/1-0-95/doc/
5
5
  */
6
- var af=Object.create;var pr=Object.defineProperty;var sf=Object.getOwnPropertyDescriptor;var uf=Object.getOwnPropertyNames;var cf=Object.getPrototypeOf,lf=Object.prototype.hasOwnProperty;var a=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),df=(t,e)=>{for(var r in e)pr(t,r,{get:e[r],enumerable:!0})},ff=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of uf(e))!lf.call(t,o)&&o!==r&&pr(t,o,{get:()=>e[o],enumerable:!(i=sf(e,o))||i.enumerable});return t};var E=(t,e,r)=>(r=t!=null?af(cf(t)):{},ff(e||!t||!t.__esModule?pr(r,"default",{value:t,enumerable:!0}):r,t));var S=a((hr,Do)=>{"use strict";var Ne=function(t){return t&&t.Math===Math&&t};Do.exports=Ne(typeof globalThis=="object"&&globalThis)||Ne(typeof window=="object"&&window)||Ne(typeof self=="object"&&self)||Ne(typeof global=="object"&&global)||Ne(typeof hr=="object"&&hr)||function(){return this}()||Function("return this")()});var w=a((sS,Mo)=>{"use strict";Mo.exports=function(t){try{return!!t()}catch{return!0}}});var $e=a((uS,Vo)=>{"use strict";var pf=w();Vo.exports=!pf(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})});var vr=a((cS,jo)=>{"use strict";var hf=$e(),Uo=Function.prototype,Fo=Uo.apply,Bo=Uo.call;jo.exports=typeof Reflect=="object"&&Reflect.apply||(hf?Bo.bind(Fo):function(){return Bo.apply(Fo,arguments)})});var x=a((lS,Ko)=>{"use strict";var Ho=$e(),Wo=Function.prototype,gr=Wo.call,vf=Ho&&Wo.bind.bind(gr,gr);Ko.exports=Ho?vf:function(t){return function(){return gr.apply(t,arguments)}}});var De=a((dS,Qo)=>{"use strict";var Go=x(),gf=Go({}.toString),mf=Go("".slice);Qo.exports=function(t){return mf(gf(t),8,-1)}});var mr=a((fS,zo)=>{"use strict";var bf=De(),yf=x();zo.exports=function(t){if(bf(t)==="Function")return yf(t)}});var _=a((pS,Yo)=>{"use strict";var br=typeof document=="object"&&document.all;Yo.exports=typeof br>"u"&&br!==void 0?function(t){return typeof t=="function"||t===br}:function(t){return typeof t=="function"}});var A=a((hS,Jo)=>{"use strict";var If=w();Jo.exports=!If(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var L=a((vS,Xo)=>{"use strict";var Sf=$e(),lt=Function.prototype.call;Xo.exports=Sf?lt.bind(lt):function(){return lt.apply(lt,arguments)}});var yr=a(tn=>{"use strict";var Zo={}.propertyIsEnumerable,en=Object.getOwnPropertyDescriptor,_f=en&&!Zo.call({1:2},1);tn.f=_f?function(e){var r=en(this,e);return!!r&&r.enumerable}:Zo});var Me=a((mS,rn)=>{"use strict";rn.exports=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}}});var nn=a((bS,on)=>{"use strict";var Pf=x(),Ef=w(),Tf=De(),Ir=Object,wf=Pf("".split);on.exports=Ef(function(){return!Ir("z").propertyIsEnumerable(0)})?function(t){return Tf(t)==="String"?wf(t,""):Ir(t)}:Ir});var Ve=a((yS,an)=>{"use strict";an.exports=function(t){return t==null}});var de=a((IS,sn)=>{"use strict";var xf=Ve(),Af=TypeError;sn.exports=function(t){if(xf(t))throw new Af("Can't call method on "+t);return t}});var te=a((SS,un)=>{"use strict";var Of=nn(),qf=de();un.exports=function(t){return Of(qf(t))}});var N=a((_S,cn)=>{"use strict";var Rf=_();cn.exports=function(t){return typeof t=="object"?t!==null:Rf(t)}});var fe=a((PS,ln)=>{"use strict";ln.exports={}});var K=a((ES,fn)=>{"use strict";var Sr=fe(),_r=S(),Cf=_(),dn=function(t){return Cf(t)?t:void 0};fn.exports=function(t,e){return arguments.length<2?dn(Sr[t])||dn(_r[t]):Sr[t]&&Sr[t][e]||_r[t]&&_r[t][e]}});var dt=a((TS,pn)=>{"use strict";var kf=x();pn.exports=kf({}.isPrototypeOf)});var re=a((wS,gn)=>{"use strict";var Lf=S(),hn=Lf.navigator,vn=hn&&hn.userAgent;gn.exports=vn?String(vn):""});var Er=a((xS,_n)=>{"use strict";var Sn=S(),Pr=re(),mn=Sn.process,bn=Sn.Deno,yn=mn&&mn.versions||bn&&bn.version,In=yn&&yn.v8,$,ft;In&&($=In.split("."),ft=$[0]>0&&$[0]<4?1:+($[0]+$[1]));!ft&&Pr&&($=Pr.match(/Edge\/(\d+)/),(!$||$[1]>=74)&&($=Pr.match(/Chrome\/(\d+)/),$&&(ft=+$[1])));_n.exports=ft});var Tr=a((AS,En)=>{"use strict";var Pn=Er(),Nf=w(),$f=S(),Df=$f.String;En.exports=!!Object.getOwnPropertySymbols&&!Nf(function(){var t=Symbol("symbol detection");return!Df(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&Pn&&Pn<41})});var wr=a((OS,Tn)=>{"use strict";var Mf=Tr();Tn.exports=Mf&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var xr=a((qS,wn)=>{"use strict";var Vf=K(),Ff=_(),Bf=dt(),Uf=wr(),jf=Object;wn.exports=Uf?function(t){return typeof t=="symbol"}:function(t){var e=Vf("Symbol");return Ff(e)&&Bf(e.prototype,jf(t))}});var Fe=a((RS,xn)=>{"use strict";var Hf=String;xn.exports=function(t){try{return Hf(t)}catch{return"Object"}}});var G=a((CS,An)=>{"use strict";var Wf=_(),Kf=Fe(),Gf=TypeError;An.exports=function(t){if(Wf(t))return t;throw new Gf(Kf(t)+" is not a function")}});var pt=a((kS,On)=>{"use strict";var Qf=G(),zf=Ve();On.exports=function(t,e){var r=t[e];return zf(r)?void 0:Qf(r)}});var Rn=a((LS,qn)=>{"use strict";var Ar=L(),Or=_(),qr=N(),Yf=TypeError;qn.exports=function(t,e){var r,i;if(e==="string"&&Or(r=t.toString)&&!qr(i=Ar(r,t))||Or(r=t.valueOf)&&!qr(i=Ar(r,t))||e!=="string"&&Or(r=t.toString)&&!qr(i=Ar(r,t)))return i;throw new Yf("Can't convert object to primitive value")}});var U=a((NS,Cn)=>{"use strict";Cn.exports=!0});var Nn=a(($S,Ln)=>{"use strict";var kn=S(),Jf=Object.defineProperty;Ln.exports=function(t,e){try{Jf(kn,t,{value:e,configurable:!0,writable:!0})}catch{kn[t]=e}return e}});var Be=a((DS,Mn)=>{"use strict";var Xf=U(),Zf=S(),ep=Nn(),$n="__core-js_shared__",Dn=Mn.exports=Zf[$n]||ep($n,{});(Dn.versions||(Dn.versions=[])).push({version:"3.43.0",mode:Xf?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var Rr=a((MS,Fn)=>{"use strict";var Vn=Be();Fn.exports=function(t,e){return Vn[t]||(Vn[t]=e||{})}});var Cr=a((VS,Bn)=>{"use strict";var tp=de(),rp=Object;Bn.exports=function(t){return rp(tp(t))}});var j=a((FS,Un)=>{"use strict";var ip=x(),op=Cr(),np=ip({}.hasOwnProperty);Un.exports=Object.hasOwn||function(e,r){return np(op(e),r)}});var kr=a((BS,jn)=>{"use strict";var ap=x(),sp=0,up=Math.random(),cp=ap(1.1.toString);jn.exports=function(t){return"Symbol("+(t===void 0?"":t)+")_"+cp(++sp+up,36)}});var O=a((US,Wn)=>{"use strict";var lp=S(),dp=Rr(),Hn=j(),fp=kr(),pp=Tr(),hp=wr(),pe=lp.Symbol,Lr=dp("wks"),vp=hp?pe.for||pe:pe&&pe.withoutSetter||fp;Wn.exports=function(t){return Hn(Lr,t)||(Lr[t]=pp&&Hn(pe,t)?pe[t]:vp("Symbol."+t)),Lr[t]}});var zn=a((jS,Qn)=>{"use strict";var gp=L(),Kn=N(),Gn=xr(),mp=pt(),bp=Rn(),yp=O(),Ip=TypeError,Sp=yp("toPrimitive");Qn.exports=function(t,e){if(!Kn(t)||Gn(t))return t;var r=mp(t,Sp),i;if(r){if(e===void 0&&(e="default"),i=gp(r,t,e),!Kn(i)||Gn(i))return i;throw new Ip("Can't convert object to primitive value")}return e===void 0&&(e="number"),bp(t,e)}});var Nr=a((HS,Yn)=>{"use strict";var _p=zn(),Pp=xr();Yn.exports=function(t){var e=_p(t,"string");return Pp(e)?e:e+""}});var ht=a((WS,Xn)=>{"use strict";var Ep=S(),Jn=N(),$r=Ep.document,Tp=Jn($r)&&Jn($r.createElement);Xn.exports=function(t){return Tp?$r.createElement(t):{}}});var Dr=a((KS,Zn)=>{"use strict";var wp=A(),xp=w(),Ap=ht();Zn.exports=!wp&&!xp(function(){return Object.defineProperty(Ap("div"),"a",{get:function(){return 7}}).a!==7})});var ra=a(ta=>{"use strict";var Op=A(),qp=L(),Rp=yr(),Cp=Me(),kp=te(),Lp=Nr(),Np=j(),$p=Dr(),ea=Object.getOwnPropertyDescriptor;ta.f=Op?ea:function(e,r){if(e=kp(e),r=Lp(r),$p)try{return ea(e,r)}catch{}if(Np(e,r))return Cp(!qp(Rp.f,e,r),e[r])}});var Mr=a((QS,ia)=>{"use strict";var Dp=w(),Mp=_(),Vp=/#|\.prototype\./,Ue=function(t,e){var r=Bp[Fp(t)];return r===jp?!0:r===Up?!1:Mp(e)?Dp(e):!!e},Fp=Ue.normalize=function(t){return String(t).replace(Vp,".").toLowerCase()},Bp=Ue.data={},Up=Ue.NATIVE="N",jp=Ue.POLYFILL="P";ia.exports=Ue});var je=a((zS,na)=>{"use strict";var oa=mr(),Hp=G(),Wp=$e(),Kp=oa(oa.bind);na.exports=function(t,e){return Hp(t),e===void 0?t:Wp?Kp(t,e):function(){return t.apply(e,arguments)}}});var Vr=a((YS,aa)=>{"use strict";var Gp=A(),Qp=w();aa.exports=Gp&&Qp(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Q=a((JS,sa)=>{"use strict";var zp=N(),Yp=String,Jp=TypeError;sa.exports=function(t){if(zp(t))return t;throw new Jp(Yp(t)+" is not an object")}});var ie=a(ca=>{"use strict";var Xp=A(),Zp=Dr(),eh=Vr(),vt=Q(),ua=Nr(),th=TypeError,Fr=Object.defineProperty,rh=Object.getOwnPropertyDescriptor,Br="enumerable",Ur="configurable",jr="writable";ca.f=Xp?eh?function(e,r,i){if(vt(e),r=ua(r),vt(i),typeof e=="function"&&r==="prototype"&&"value"in i&&jr in i&&!i[jr]){var o=rh(e,r);o&&o[jr]&&(e[r]=i.value,i={configurable:Ur in i?i[Ur]:o[Ur],enumerable:Br in i?i[Br]:o[Br],writable:!1})}return Fr(e,r,i)}:Fr:function(e,r,i){if(vt(e),r=ua(r),vt(i),Zp)try{return Fr(e,r,i)}catch{}if("get"in i||"set"in i)throw new th("Accessors not supported");return"value"in i&&(e[r]=i.value),e}});var he=a((ZS,la)=>{"use strict";var ih=A(),oh=ie(),nh=Me();la.exports=ih?function(t,e,r){return oh.f(t,e,nh(1,r))}:function(t,e,r){return t[e]=r,t}});var q=a((e_,fa)=>{"use strict";var He=S(),ah=vr(),sh=mr(),uh=_(),ch=ra().f,lh=Mr(),ve=fe(),dh=je(),ge=he(),da=j();Be();var fh=function(t){var e=function(r,i,o){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,o)}return ah(t,this,arguments)};return e.prototype=t.prototype,e};fa.exports=function(t,e){var r=t.target,i=t.global,o=t.stat,n=t.proto,u=i?He:o?He[r]:He[r]&&He[r].prototype,l=i?ve:ve[r]||ge(ve,r,{})[r],s=l.prototype,c,f,p,d,h,v,g,m,b;for(d in e)c=lh(i?d:r+(o?".":"#")+d,t.forced),f=!c&&u&&da(u,d),v=l[d],f&&(t.dontCallGetSet?(b=ch(u,d),g=b&&b.value):g=u[d]),h=f&&g?g:e[d],!(!c&&!n&&typeof v==typeof h)&&(t.bind&&f?m=dh(h,He):t.wrap&&f?m=fh(h):n&&uh(h)?m=sh(h):m=h,(t.sham||h&&h.sham||v&&v.sham)&&ge(m,"sham",!0),ge(l,d,m),n&&(p=r+"Prototype",da(ve,p)||ge(ve,p,{}),ge(ve[p],d,h),t.real&&s&&(c||!s[d])&&ge(s,d,h)))}});var ha=a((t_,pa)=>{"use strict";var ph=Math.ceil,hh=Math.floor;pa.exports=Math.trunc||function(e){var r=+e;return(r>0?hh:ph)(r)}});var gt=a((r_,va)=>{"use strict";var vh=ha();va.exports=function(t){var e=+t;return e!==e||e===0?0:vh(e)}});var ma=a((i_,ga)=>{"use strict";var gh=gt(),mh=Math.max,bh=Math.min;ga.exports=function(t,e){var r=gh(t);return r<0?mh(r+e,0):bh(r,e)}});var Hr=a((o_,ba)=>{"use strict";var yh=gt(),Ih=Math.min;ba.exports=function(t){var e=yh(t);return e>0?Ih(e,9007199254740991):0}});var Wr=a((n_,ya)=>{"use strict";var Sh=Hr();ya.exports=function(t){return Sh(t.length)}});var Kr=a((a_,Sa)=>{"use strict";var _h=te(),Ph=ma(),Eh=Wr(),Ia=function(t){return function(e,r,i){var o=_h(e),n=Eh(o);if(n===0)return!t&&-1;var u=Ph(i,n),l;if(t&&r!==r){for(;n>u;)if(l=o[u++],l!==l)return!0}else for(;n>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}};Sa.exports={includes:Ia(!0),indexOf:Ia(!1)}});var Gr=a((s_,_a)=>{"use strict";_a.exports=function(){}});var Pa=a(()=>{"use strict";var Th=q(),wh=Kr().includes,xh=w(),Ah=Gr(),Oh=xh(function(){return!Array(1).includes()});Th({target:"Array",proto:!0,forced:Oh},{includes:function(e){return wh(this,e,arguments.length>1?arguments[1]:void 0)}});Ah("includes")});var mt=a((l_,Ea)=>{"use strict";var qh=K();Ea.exports=qh});var wa=a((d_,Ta)=>{"use strict";Pa();var Rh=mt();Ta.exports=Rh("Array","includes")});var Aa=a((f_,xa)=>{"use strict";var Ch=wa();xa.exports=Ch});var me=a((p_,Oa)=>{"use strict";var kh=Aa();Oa.exports=kh});var bt=a((T_,Va)=>{"use strict";var Dh=O(),Mh=Dh("toStringTag"),Ma={};Ma[Mh]="z";Va.exports=String(Ma)==="[object z]"});var Ke=a((w_,Fa)=>{"use strict";var Vh=bt(),Fh=_(),yt=De(),Bh=O(),Uh=Bh("toStringTag"),jh=Object,Hh=yt(function(){return arguments}())==="Arguments",Wh=function(t,e){try{return t[e]}catch{}};Fa.exports=Vh?yt:function(t){var e,r,i;return t===void 0?"Undefined":t===null?"Null":typeof(r=Wh(e=jh(t),Uh))=="string"?r:Hh?yt(e):(i=yt(e))==="Object"&&Fh(e.callee)?"Arguments":i}});var ei=a((x_,Ba)=>{"use strict";var Kh=Ke(),Gh=String;Ba.exports=function(t){if(Kh(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return Gh(t)}});var ja=a((A_,Ua)=>{"use strict";var Qh=gt(),zh=ei(),Yh=de(),Jh=RangeError;Ua.exports=function(e){var r=zh(Yh(this)),i="",o=Qh(e);if(o<0||o===1/0)throw new Jh("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(r+=r))o&1&&(i+=r);return i}});var Qa=a((O_,Ga)=>{"use strict";var Ka=x(),Xh=Hr(),Ha=ei(),Zh=ja(),ev=de(),tv=Ka(Zh),rv=Ka("".slice),iv=Math.ceil,Wa=function(t){return function(e,r,i){var o=Ha(ev(e)),n=Xh(r),u=o.length,l=i===void 0?" ":Ha(i),s,c;return n<=u||l===""?o:(s=n-u,c=tv(l,iv(s/l.length)),c.length>s&&(c=rv(c,0,s)),t?o+c:c+o)}};Ga.exports={start:Wa(!1),end:Wa(!0)}});var Ya=a((q_,za)=>{"use strict";var ov=re();za.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(ov)});var Ja=a(()=>{"use strict";var nv=q(),av=Qa().start,sv=Ya();nv({target:"String",proto:!0,forced:sv},{padStart:function(e){return av(this,e,arguments.length>1?arguments[1]:void 0)}})});var Za=a((k_,Xa)=>{"use strict";Ja();var uv=mt();Xa.exports=uv("String","padStart")});var ts=a((L_,es)=>{"use strict";var cv=Za();es.exports=cv});var It=a((N_,rs)=>{"use strict";var lv=ts();rs.exports=lv});var os=a(()=>{"use strict"});var ti=a((V_,ns)=>{"use strict";var Ge=S(),fv=re(),pv=De(),St=function(t){return fv.slice(0,t.length)===t};ns.exports=function(){return St("Bun/")?"BUN":St("Cloudflare-Workers")?"CLOUDFLARE":St("Deno/")?"DENO":St("Node.js/")?"NODE":Ge.Bun&&typeof Bun.version=="string"?"BUN":Ge.Deno&&typeof Deno.version=="object"?"DENO":pv(Ge.process)==="process"?"NODE":Ge.window&&Ge.document?"BROWSER":"REST"}()});var _t=a((F_,as)=>{"use strict";var hv=ti();as.exports=hv==="NODE"});var be=a((B_,ss)=>{"use strict";var vv=he();ss.exports=function(t,e,r,i){return i&&i.enumerable?t[e]=r:vv(t,e,r),t}});var cs=a((U_,us)=>{"use strict";var gv=x(),mv=G();us.exports=function(t,e,r){try{return gv(mv(Object.getOwnPropertyDescriptor(t,e)[r]))}catch{}}});var ds=a((j_,ls)=>{"use strict";var bv=N();ls.exports=function(t){return bv(t)||t===null}});var ps=a((H_,fs)=>{"use strict";var yv=ds(),Iv=String,Sv=TypeError;fs.exports=function(t){if(yv(t))return t;throw new Sv("Can't set "+Iv(t)+" as a prototype")}});var ri=a((W_,hs)=>{"use strict";var _v=cs(),Pv=N(),Ev=de(),Tv=ps();hs.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t=!1,e={},r;try{r=_v(Object.prototype,"__proto__","set"),r(e,[]),t=e instanceof Array}catch{}return function(o,n){return Ev(o),Tv(n),Pv(o)&&(t?r(o,n):o.__proto__=n),o}}():void 0)});var gs=a((K_,vs)=>{"use strict";var wv=bt(),xv=Ke();vs.exports=wv?{}.toString:function(){return"[object "+xv(this)+"]"}});var Qe=a((G_,bs)=>{"use strict";var Av=bt(),Ov=ie().f,qv=he(),Rv=j(),Cv=gs(),kv=O(),ms=kv("toStringTag");bs.exports=function(t,e,r,i){var o=r?t:t&&t.prototype;o&&(Rv(o,ms)||Ov(o,ms,{configurable:!0,value:e}),i&&!Av&&qv(o,"toString",Cv))}});var Is=a((Q_,ys)=>{"use strict";var Lv=ie();ys.exports=function(t,e,r){return Lv.f(t,e,r)}});var Ps=a((z_,_s)=>{"use strict";var Nv=K(),$v=Is(),Dv=O(),Mv=A(),Ss=Dv("species");_s.exports=function(t){var e=Nv(t);Mv&&e&&!e[Ss]&&$v(e,Ss,{configurable:!0,get:function(){return this}})}});var Ts=a((Y_,Es)=>{"use strict";var Vv=dt(),Fv=TypeError;Es.exports=function(t,e){if(Vv(e,t))return t;throw new Fv("Incorrect invocation")}});var oi=a((J_,ws)=>{"use strict";var Bv=x(),Uv=_(),ii=Be(),jv=Bv(Function.toString);Uv(ii.inspectSource)||(ii.inspectSource=function(t){return jv(t)});ws.exports=ii.inspectSource});var Cs=a((X_,Rs)=>{"use strict";var Hv=x(),Wv=w(),xs=_(),Kv=Ke(),Gv=K(),Qv=oi(),As=function(){},Os=Gv("Reflect","construct"),ni=/^\s*(?:class|function)\b/,zv=Hv(ni.exec),Yv=!ni.test(As),ze=function(e){if(!xs(e))return!1;try{return Os(As,[],e),!0}catch{return!1}},qs=function(e){if(!xs(e))return!1;switch(Kv(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Yv||!!zv(ni,Qv(e))}catch{return!0}};qs.sham=!0;Rs.exports=!Os||Wv(function(){var t;return ze(ze.call)||!ze(Object)||!ze(function(){t=!0})||t})?qs:ze});var Ls=a((Z_,ks)=>{"use strict";var Jv=Cs(),Xv=Fe(),Zv=TypeError;ks.exports=function(t){if(Jv(t))return t;throw new Zv(Xv(t)+" is not a constructor")}});var ai=a((eP,$s)=>{"use strict";var Ns=Q(),eg=Ls(),tg=Ve(),rg=O(),ig=rg("species");$s.exports=function(t,e){var r=Ns(t).constructor,i;return r===void 0||tg(i=Ns(r)[ig])?e:eg(i)}});var si=a((tP,Ds)=>{"use strict";var og=K();Ds.exports=og("document","documentElement")});var Vs=a((rP,Ms)=>{"use strict";var ng=x();Ms.exports=ng([].slice)});var Bs=a((iP,Fs)=>{"use strict";var ag=TypeError;Fs.exports=function(t,e){if(t<e)throw new ag("Not enough arguments");return t}});var ui=a((oP,Us)=>{"use strict";var sg=re();Us.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(sg)});var mi=a((nP,Js)=>{"use strict";var R=S(),ug=vr(),cg=je(),js=_(),lg=j(),Ys=w(),Hs=si(),dg=Vs(),Ws=ht(),fg=Bs(),pg=ui(),hg=_t(),hi=R.setImmediate,vi=R.clearImmediate,vg=R.process,ci=R.Dispatch,gg=R.Function,Ks=R.MessageChannel,mg=R.String,li=0,Ye={},Gs="onreadystatechange",Je,oe,di,fi;Ys(function(){Je=R.location});var gi=function(t){if(lg(Ye,t)){var e=Ye[t];delete Ye[t],e()}},pi=function(t){return function(){gi(t)}},Qs=function(t){gi(t.data)},zs=function(t){R.postMessage(mg(t),Je.protocol+"//"+Je.host)};(!hi||!vi)&&(hi=function(e){fg(arguments.length,1);var r=js(e)?e:gg(e),i=dg(arguments,1);return Ye[++li]=function(){ug(r,void 0,i)},oe(li),li},vi=function(e){delete Ye[e]},hg?oe=function(t){vg.nextTick(pi(t))}:ci&&ci.now?oe=function(t){ci.now(pi(t))}:Ks&&!pg?(di=new Ks,fi=di.port2,di.port1.onmessage=Qs,oe=cg(fi.postMessage,fi)):R.addEventListener&&js(R.postMessage)&&!R.importScripts&&Je&&Je.protocol!=="file:"&&!Ys(zs)?(oe=zs,R.addEventListener("message",Qs,!1)):Gs in Ws("script")?oe=function(t){Hs.appendChild(Ws("script"))[Gs]=function(){Hs.removeChild(this),gi(t)}}:oe=function(t){setTimeout(pi(t),0)});Js.exports={set:hi,clear:vi}});var eu=a((aP,Zs)=>{"use strict";var Xs=S(),bg=A(),yg=Object.getOwnPropertyDescriptor;Zs.exports=function(t){if(!bg)return Xs[t];var e=yg(Xs,t);return e&&e.value}});var bi=a((sP,ru)=>{"use strict";var tu=function(){this.head=null,this.tail=null};tu.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t){var e=this.head=t.next;return e===null&&(this.tail=null),t.item}}};ru.exports=tu});var ou=a((uP,iu)=>{"use strict";var Ig=re();iu.exports=/ipad|iphone|ipod/i.test(Ig)&&typeof Pebble<"u"});var au=a((cP,nu)=>{"use strict";var Sg=re();nu.exports=/web0s(?!.*chrome)/i.test(Sg)});var pu=a((lP,fu)=>{"use strict";var Ie=S(),_g=eu(),su=je(),yi=mi().set,Pg=bi(),Eg=ui(),Tg=ou(),wg=au(),Ii=_t(),uu=Ie.MutationObserver||Ie.WebKitMutationObserver,cu=Ie.document,lu=Ie.process,Pt=Ie.Promise,Pi=_g("queueMicrotask"),ye,Si,_i,Et,du;Pi||(Xe=new Pg,Ze=function(){var t,e;for(Ii&&(t=lu.domain)&&t.exit();e=Xe.get();)try{e()}catch(r){throw Xe.head&&ye(),r}t&&t.enter()},!Eg&&!Ii&&!wg&&uu&&cu?(Si=!0,_i=cu.createTextNode(""),new uu(Ze).observe(_i,{characterData:!0}),ye=function(){_i.data=Si=!Si}):!Tg&&Pt&&Pt.resolve?(Et=Pt.resolve(void 0),Et.constructor=Pt,du=su(Et.then,Et),ye=function(){du(Ze)}):Ii?ye=function(){lu.nextTick(Ze)}:(yi=su(yi,Ie),ye=function(){yi(Ze)}),Pi=function(t){Xe.head||ye(),Xe.add(t)});var Xe,Ze;fu.exports=Pi});var vu=a((dP,hu)=>{"use strict";hu.exports=function(t,e){try{arguments.length===1?console.error(t):console.error(t,e)}catch{}}});var Tt=a((fP,gu)=>{"use strict";gu.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}});var yu=a((pP,bu)=>{"use strict";var xg=S(),Ag=_(),mu=xg.WeakMap;bu.exports=Ag(mu)&&/native code/.test(String(mu))});var wt=a((hP,Su)=>{"use strict";var Og=Rr(),qg=kr(),Iu=Og("keys");Su.exports=function(t){return Iu[t]||(Iu[t]=qg(t))}});var xt=a((vP,_u)=>{"use strict";_u.exports={}});var xi=a((gP,Tu)=>{"use strict";var Rg=yu(),Eu=S(),Cg=N(),kg=he(),Ei=j(),Ti=Be(),Lg=wt(),Ng=xt(),Pu="Object already initialized",wi=Eu.TypeError,$g=Eu.WeakMap,At,et,Ot,Dg=function(t){return Ot(t)?et(t):At(t,{})},Mg=function(t){return function(e){var r;if(!Cg(e)||(r=et(e)).type!==t)throw new wi("Incompatible receiver, "+t+" required");return r}};Rg||Ti.state?(D=Ti.state||(Ti.state=new $g),D.get=D.get,D.has=D.has,D.set=D.set,At=function(t,e){if(D.has(t))throw new wi(Pu);return e.facade=t,D.set(t,e),e},et=function(t){return D.get(t)||{}},Ot=function(t){return D.has(t)}):(ne=Lg("state"),Ng[ne]=!0,At=function(t,e){if(Ei(t,ne))throw new wi(Pu);return e.facade=t,kg(t,ne,e),e},et=function(t){return Ei(t,ne)?t[ne]:{}},Ot=function(t){return Ei(t,ne)});var D,ne;Tu.exports={set:At,get:et,has:Ot,enforce:Dg,getterFor:Mg}});var ae=a((mP,wu)=>{"use strict";var Vg=S();wu.exports=Vg.Promise});var Se=a((bP,qu)=>{"use strict";var Fg=S(),tt=ae(),Bg=_(),Ug=Mr(),jg=oi(),Hg=O(),xu=ti(),Wg=U(),Ai=Er(),Au=tt&&tt.prototype,Kg=Hg("species"),Oi=!1,Ou=Bg(Fg.PromiseRejectionEvent),Gg=Ug("Promise",function(){var t=jg(tt),e=t!==String(tt);if(!e&&Ai===66||Wg&&!(Au.catch&&Au.finally))return!0;if(!Ai||Ai<51||!/native code/.test(t)){var r=new tt(function(n){n(1)}),i=function(n){n(function(){},function(){})},o=r.constructor={};if(o[Kg]=i,Oi=r.then(function(){})instanceof i,!Oi)return!0}return!e&&(xu==="BROWSER"||xu==="DENO")&&!Ou});qu.exports={CONSTRUCTOR:Gg,REJECTION_EVENT:Ou,SUBCLASSING:Oi}});var _e=a((yP,Cu)=>{"use strict";var Ru=G(),Qg=TypeError,zg=function(t){var e,r;this.promise=new t(function(i,o){if(e!==void 0||r!==void 0)throw new Qg("Bad Promise constructor");e=i,r=o}),this.resolve=Ru(e),this.reject=Ru(r)};Cu.exports.f=function(t){return new zg(t)}});var Xu=a(()=>{"use strict";var Yg=q(),Jg=U(),kt=_t(),X=S(),Xg=fe(),we=L(),ku=be(),Lu=ri(),Zg=Qe(),em=Ps(),tm=G(),Ct=_(),rm=N(),im=Ts(),om=ai(),Vu=mi().set,Li=pu(),nm=vu(),am=Tt(),sm=bi(),Fu=xi(),Lt=ae(),Ni=Se(),Bu=_e(),Nt="Promise",Uu=Ni.CONSTRUCTOR,um=Ni.REJECTION_EVENT,cm=Ni.SUBCLASSING,qi=Fu.getterFor(Nt),lm=Fu.set,Pe=Lt&&Lt.prototype,se=Lt,qt=Pe,ju=X.TypeError,Ri=X.document,$i=X.process,Ci=Bu.f,dm=Ci,fm=!!(Ri&&Ri.createEvent&&X.dispatchEvent),Hu="unhandledrejection",pm="rejectionhandled",Nu=0,Wu=1,hm=2,Di=1,Ku=2,Rt,$u,Gu,Du,Qu=function(t){var e;return rm(t)&&Ct(e=t.then)?e:!1},zu=function(t,e){var r=e.value,i=e.state===Wu,o=i?t.ok:t.fail,n=t.resolve,u=t.reject,l=t.domain,s,c,f;try{o?(i||(e.rejection===Ku&&gm(e),e.rejection=Di),o===!0?s=r:(l&&l.enter(),s=o(r),l&&(l.exit(),f=!0)),s===t.promise?u(new ju("Promise-chain cycle")):(c=Qu(s))?we(c,s,n,u):n(s)):u(r)}catch(p){l&&!f&&l.exit(),u(p)}},Yu=function(t,e){t.notified||(t.notified=!0,Li(function(){for(var r=t.reactions,i;i=r.get();)zu(i,t);t.notified=!1,e&&!t.rejection&&vm(t)}))},Ju=function(t,e,r){var i,o;fm?(i=Ri.createEvent("Event"),i.promise=e,i.reason=r,i.initEvent(t,!1,!0),X.dispatchEvent(i)):i={promise:e,reason:r},!um&&(o=X["on"+t])?o(i):t===Hu&&nm("Unhandled promise rejection",r)},vm=function(t){we(Vu,X,function(){var e=t.facade,r=t.value,i=Mu(t),o;if(i&&(o=am(function(){kt?$i.emit("unhandledRejection",r,e):Ju(Hu,e,r)}),t.rejection=kt||Mu(t)?Ku:Di,o.error))throw o.value})},Mu=function(t){return t.rejection!==Di&&!t.parent},gm=function(t){we(Vu,X,function(){var e=t.facade;kt?$i.emit("rejectionHandled",e):Ju(pm,e,t.value)})},Ee=function(t,e,r){return function(i){t(e,i,r)}},Te=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=hm,Yu(t,!0))},ki=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new ju("Promise can't be resolved itself");var i=Qu(e);i?Li(function(){var o={done:!1};try{we(i,e,Ee(ki,o,t),Ee(Te,o,t))}catch(n){Te(o,n,t)}}):(t.value=e,t.state=Wu,Yu(t,!1))}catch(o){Te({done:!1},o,t)}}};if(Uu&&(se=function(e){im(this,qt),tm(e),we(Rt,this);var r=qi(this);try{e(Ee(ki,r),Ee(Te,r))}catch(i){Te(r,i)}},qt=se.prototype,Rt=function(e){lm(this,{type:Nt,done:!1,notified:!1,parent:!1,reactions:new sm,rejection:!1,state:Nu,value:null})},Rt.prototype=ku(qt,"then",function(e,r){var i=qi(this),o=Ci(om(this,se));return i.parent=!0,o.ok=Ct(e)?e:!0,o.fail=Ct(r)&&r,o.domain=kt?$i.domain:void 0,i.state===Nu?i.reactions.add(o):Li(function(){zu(o,i)}),o.promise}),$u=function(){var t=new Rt,e=qi(t);this.promise=t,this.resolve=Ee(ki,e),this.reject=Ee(Te,e)},Bu.f=Ci=function(t){return t===se||t===Gu?new $u(t):dm(t)},!Jg&&Ct(Lt)&&Pe!==Object.prototype)){Du=Pe.then,cm||ku(Pe,"then",function(e,r){var i=this;return new se(function(o,n){we(Du,i,o,n)}).then(e,r)},{unsafe:!0});try{delete Pe.constructor}catch{}Lu&&Lu(Pe,qt)}Yg({global:!0,constructor:!0,wrap:!0,forced:Uu},{Promise:se});Gu=Xg.Promise;Zg(se,Nt,!1,!0);em(Nt)});var ue=a((_P,Zu)=>{"use strict";Zu.exports={}});var tc=a((PP,ec)=>{"use strict";var mm=O(),bm=ue(),ym=mm("iterator"),Im=Array.prototype;ec.exports=function(t){return t!==void 0&&(bm.Array===t||Im[ym]===t)}});var Mi=a((EP,ic)=>{"use strict";var Sm=Ke(),rc=pt(),_m=Ve(),Pm=ue(),Em=O(),Tm=Em("iterator");ic.exports=function(t){if(!_m(t))return rc(t,Tm)||rc(t,"@@iterator")||Pm[Sm(t)]}});var nc=a((TP,oc)=>{"use strict";var wm=L(),xm=G(),Am=Q(),Om=Fe(),qm=Mi(),Rm=TypeError;oc.exports=function(t,e){var r=arguments.length<2?qm(t):e;if(xm(r))return Am(wm(r,t));throw new Rm(Om(t)+" is not iterable")}});var uc=a((wP,sc)=>{"use strict";var Cm=L(),ac=Q(),km=pt();sc.exports=function(t,e,r){var i,o;ac(t);try{if(i=km(t,"return"),!i){if(e==="throw")throw r;return r}i=Cm(i,t)}catch(n){o=!0,i=n}if(e==="throw")throw r;if(o)throw i;return ac(i),r}});var Dt=a((xP,fc)=>{"use strict";var Lm=je(),Nm=L(),$m=Q(),Dm=Fe(),Mm=tc(),Vm=Wr(),cc=dt(),Fm=nc(),Bm=Mi(),lc=uc(),Um=TypeError,$t=function(t,e){this.stopped=t,this.result=e},dc=$t.prototype;fc.exports=function(t,e,r){var i=r&&r.that,o=!!(r&&r.AS_ENTRIES),n=!!(r&&r.IS_RECORD),u=!!(r&&r.IS_ITERATOR),l=!!(r&&r.INTERRUPTED),s=Lm(e,i),c,f,p,d,h,v,g,m=function(y){return c&&lc(c,"normal"),new $t(!0,y)},b=function(y){return o?($m(y),l?s(y[0],y[1],m):s(y[0],y[1])):l?s(y,m):s(y)};if(n)c=t.iterator;else if(u)c=t;else{if(f=Bm(t),!f)throw new Um(Dm(t)+" is not iterable");if(Mm(f)){for(p=0,d=Vm(t);d>p;p++)if(h=b(t[p]),h&&cc(dc,h))return h;return new $t(!1)}c=Fm(t,f)}for(v=n?t.next:c.next;!(g=Nm(v,c)).done;){try{h=b(g.value)}catch(y){lc(c,"throw",y)}if(typeof h=="object"&&h&&cc(dc,h))return h}return new $t(!1)}});var mc=a((AP,gc)=>{"use strict";var jm=O(),hc=jm("iterator"),vc=!1;try{pc=0,Vi={next:function(){return{done:!!pc++}},return:function(){vc=!0}},Vi[hc]=function(){return this},Array.from(Vi,function(){throw 2})}catch{}var pc,Vi;gc.exports=function(t,e){try{if(!e&&!vc)return!1}catch{return!1}var r=!1;try{var i={};i[hc]=function(){return{next:function(){return{done:r=!0}}}},t(i)}catch{}return r}});var Fi=a((OP,bc)=>{"use strict";var Hm=ae(),Wm=mc(),Km=Se().CONSTRUCTOR;bc.exports=Km||!Wm(function(t){Hm.all(t).then(void 0,function(){})})});var yc=a(()=>{"use strict";var Gm=q(),Qm=L(),zm=G(),Ym=_e(),Jm=Tt(),Xm=Dt(),Zm=Fi();Gm({target:"Promise",stat:!0,forced:Zm},{all:function(e){var r=this,i=Ym.f(r),o=i.resolve,n=i.reject,u=Jm(function(){var l=zm(r.resolve),s=[],c=0,f=1;Xm(e,function(p){var d=c++,h=!1;f++,Qm(l,r,p).then(function(v){h||(h=!0,s[d]=v,--f||o(s))},n)}),--f||o(s)});return u.error&&n(u.value),i.promise}})});var Sc=a(()=>{"use strict";var eb=q(),tb=U(),rb=Se().CONSTRUCTOR,Ui=ae(),ib=K(),ob=_(),nb=be(),Ic=Ui&&Ui.prototype;eb({target:"Promise",proto:!0,forced:rb,real:!0},{catch:function(t){return this.then(void 0,t)}});!tb&&ob(Ui)&&(Bi=ib("Promise").prototype.catch,Ic.catch!==Bi&&nb(Ic,"catch",Bi,{unsafe:!0}));var Bi});var _c=a(()=>{"use strict";var ab=q(),sb=L(),ub=G(),cb=_e(),lb=Tt(),db=Dt(),fb=Fi();ab({target:"Promise",stat:!0,forced:fb},{race:function(e){var r=this,i=cb.f(r),o=i.reject,n=lb(function(){var u=ub(r.resolve);db(e,function(l){sb(u,r,l).then(i.resolve,o)})});return n.error&&o(n.value),i.promise}})});var Pc=a(()=>{"use strict";var pb=q(),hb=_e(),vb=Se().CONSTRUCTOR;pb({target:"Promise",stat:!0,forced:vb},{reject:function(e){var r=hb.f(this),i=r.reject;return i(e),r.promise}})});var ji=a((MP,Ec)=>{"use strict";var gb=Q(),mb=N(),bb=_e();Ec.exports=function(t,e){if(gb(t),mb(e)&&e.constructor===t)return e;var r=bb.f(t),i=r.resolve;return i(e),r.promise}});var xc=a(()=>{"use strict";var yb=q(),Ib=K(),Tc=U(),Sb=ae(),wc=Se().CONSTRUCTOR,_b=ji(),Pb=Ib("Promise"),Eb=Tc&&!wc;yb({target:"Promise",stat:!0,forced:Tc||wc},{resolve:function(e){return _b(Eb&&this===Pb?Sb:this,e)}})});var Ac=a(()=>{"use strict";Xu();yc();Sc();_c();Pc();xc()});var Cc=a(()=>{"use strict";var Tb=q(),wb=U(),Mt=ae(),xb=w(),qc=K(),Rc=_(),Ab=ai(),Oc=ji(),Ob=be(),Wi=Mt&&Mt.prototype,qb=!!Mt&&xb(function(){Wi.finally.call({then:function(){}},function(){})});Tb({target:"Promise",proto:!0,real:!0,forced:qb},{finally:function(t){var e=Ab(this,qc("Promise")),r=Rc(t);return this.then(r?function(i){return Oc(e,t()).then(function(){return i})}:t,r?function(i){return Oc(e,t()).then(function(){throw i})}:t)}});!wb&&Rc(Mt)&&(Hi=qc("Promise").prototype.finally,Wi.finally!==Hi&&Ob(Wi,"finally",Hi,{unsafe:!0}));var Hi});var Lc=a((WP,kc)=>{"use strict";os();Ac();Cc();var Rb=mt();kc.exports=Rb("Promise","finally")});var $c=a((KP,Nc)=>{"use strict";var Cb=Lc();Nc.exports=Cb});var Ki=a((GP,Dc)=>{"use strict";var kb=$c();Dc.exports=kb});var Vc=a((QP,Mc)=>{"use strict";var Lb=w();Mc.exports=!Lb(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})});var Vt=a((zP,Bc)=>{"use strict";var Nb=j(),$b=_(),Db=Cr(),Mb=wt(),Vb=Vc(),Fc=Mb("IE_PROTO"),Gi=Object,Fb=Gi.prototype;Bc.exports=Vb?Gi.getPrototypeOf:function(t){var e=Db(t);if(Nb(e,Fc))return e[Fc];var r=e.constructor;return $b(r)&&e instanceof r?r.prototype:e instanceof Gi?Fb:null}});var Hc=a((YP,jc)=>{"use strict";var Bb=x(),Qi=j(),Ub=te(),jb=Kr().indexOf,Hb=xt(),Uc=Bb([].push);jc.exports=function(t,e){var r=Ub(t),i=0,o=[],n;for(n in r)!Qi(Hb,n)&&Qi(r,n)&&Uc(o,n);for(;e.length>i;)Qi(r,n=e[i++])&&(~jb(o,n)||Uc(o,n));return o}});var zi=a((JP,Wc)=>{"use strict";Wc.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Yi=a((XP,Kc)=>{"use strict";var Wb=Hc(),Kb=zi();Kc.exports=Object.keys||function(e){return Wb(e,Kb)}});var Xc=a((ZP,Jc)=>{"use strict";var Qc=A(),Gb=w(),zc=x(),Qb=Vt(),zb=Yi(),Yb=te(),Jb=yr().f,Yc=zc(Jb),Xb=zc([].push),Zb=Qc&&Gb(function(){var t=Object.create(null);return t[2]=2,!Yc(t,2)}),Gc=function(t){return function(e){for(var r=Yb(e),i=zb(r),o=Zb&&Qb(r)===null,n=i.length,u=0,l=[],s;n>u;)s=i[u++],(!Qc||(o?s in r:Yc(r,s)))&&Xb(l,t?[s,r[s]]:r[s]);return l}};Jc.exports={entries:Gc(!0),values:Gc(!1)}});var Zc=a(()=>{"use strict";var ey=q(),ty=Xc().entries;ey({target:"Object",stat:!0},{entries:function(e){return ty(e)}})});var tl=a((rE,el)=>{"use strict";Zc();var ry=fe();el.exports=ry.Object.entries});var il=a((iE,rl)=>{"use strict";var iy=tl();rl.exports=iy});var xe=a((oE,ol)=>{"use strict";var oy=il();ol.exports=oy});var sl=a((nE,al)=>{"use strict";var Ji=A(),ny=j(),nl=Function.prototype,ay=Ji&&Object.getOwnPropertyDescriptor,Xi=ny(nl,"name"),sy=Xi&&function(){}.name==="something",uy=Xi&&(!Ji||Ji&&ay(nl,"name").configurable);al.exports={EXISTS:Xi,PROPER:sy,CONFIGURABLE:uy}});var cl=a(ul=>{"use strict";var cy=A(),ly=Vr(),dy=ie(),fy=Q(),py=te(),hy=Yi();ul.f=cy&&!ly?Object.defineProperties:function(e,r){fy(e);for(var i=py(r),o=hy(r),n=o.length,u=0,l;n>u;)dy.f(e,l=o[u++],i[l]);return e}});var ro=a((sE,gl)=>{"use strict";var vy=Q(),gy=cl(),ll=zi(),my=xt(),by=si(),yy=ht(),Iy=wt(),dl=">",fl="<",eo="prototype",to="script",hl=Iy("IE_PROTO"),Zi=function(){},vl=function(t){return fl+to+dl+t+fl+"/"+to+dl},pl=function(t){t.write(vl("")),t.close();var e=t.parentWindow.Object;return t=null,e},Sy=function(){var t=yy("iframe"),e="java"+to+":",r;return t.style.display="none",by.appendChild(t),t.src=String(e),r=t.contentWindow.document,r.open(),r.write(vl("document.F=Object")),r.close(),r.F},Ft,Bt=function(){try{Ft=new ActiveXObject("htmlfile")}catch{}Bt=typeof document<"u"?document.domain&&Ft?pl(Ft):Sy():pl(Ft);for(var t=ll.length;t--;)delete Bt[eo][ll[t]];return Bt()};my[hl]=!0;gl.exports=Object.create||function(e,r){var i;return e!==null?(Zi[eo]=vy(e),i=new Zi,Zi[eo]=null,i[hl]=e):i=Bt(),r===void 0?i:gy.f(i,r)}});var ao=a((uE,yl)=>{"use strict";var _y=w(),Py=_(),Ey=N(),Ty=ro(),ml=Vt(),wy=be(),xy=O(),Ay=U(),no=xy("iterator"),bl=!1,z,io,oo;[].keys&&(oo=[].keys(),"next"in oo?(io=ml(ml(oo)),io!==Object.prototype&&(z=io)):bl=!0);var Oy=!Ey(z)||_y(function(){var t={};return z[no].call(t)!==t});Oy?z={}:Ay&&(z=Ty(z));Py(z[no])||wy(z,no,function(){return this});yl.exports={IteratorPrototype:z,BUGGY_SAFARI_ITERATORS:bl}});var Sl=a((cE,Il)=>{"use strict";var qy=ao().IteratorPrototype,Ry=ro(),Cy=Me(),ky=Qe(),Ly=ue(),Ny=function(){return this};Il.exports=function(t,e,r,i){var o=e+" Iterator";return t.prototype=Ry(qy,{next:Cy(+!i,r)}),ky(t,o,!1,!0),Ly[o]=Ny,t}});var Cl=a((lE,Rl)=>{"use strict";var $y=q(),Dy=L(),Ut=U(),Ol=sl(),My=_(),Vy=Sl(),_l=Vt(),Pl=ri(),Fy=Qe(),By=he(),so=be(),Uy=O(),El=ue(),ql=ao(),jy=Ol.PROPER,Hy=Ol.CONFIGURABLE,Tl=ql.IteratorPrototype,jt=ql.BUGGY_SAFARI_ITERATORS,rt=Uy("iterator"),wl="keys",it="values",xl="entries",Al=function(){return this};Rl.exports=function(t,e,r,i,o,n,u){Vy(r,e,i);var l=function(b){if(b===o&&d)return d;if(!jt&&b&&b in f)return f[b];switch(b){case wl:return function(){return new r(this,b)};case it:return function(){return new r(this,b)};case xl:return function(){return new r(this,b)}}return function(){return new r(this)}},s=e+" Iterator",c=!1,f=t.prototype,p=f[rt]||f["@@iterator"]||o&&f[o],d=!jt&&p||l(o),h=e==="Array"&&f.entries||p,v,g,m;if(h&&(v=_l(h.call(new t)),v!==Object.prototype&&v.next&&(!Ut&&_l(v)!==Tl&&(Pl?Pl(v,Tl):My(v[rt])||so(v,rt,Al)),Fy(v,s,!0,!0),Ut&&(El[s]=Al))),jy&&o===it&&p&&p.name!==it&&(!Ut&&Hy?By(f,"name",it):(c=!0,d=function(){return Dy(p,this)})),o)if(g={values:l(it),keys:n?d:l(wl),entries:l(xl)},u)for(m in g)(jt||c||!(m in f))&&so(f,m,g[m]);else $y({target:e,proto:!0,forced:jt||c},g);return(!Ut||u)&&f[rt]!==d&&so(f,rt,d,{name:o}),El[e]=d,g}});var Ll=a((dE,kl)=>{"use strict";kl.exports=function(t,e){return{value:t,done:e}}});var co=a((fE,Vl)=>{"use strict";var Wy=te(),uo=Gr(),Nl=ue(),Dl=xi(),Ky=ie().f,Gy=Cl(),Ht=Ll(),Qy=U(),zy=A(),Ml="Array Iterator",Yy=Dl.set,Jy=Dl.getterFor(Ml);Vl.exports=Gy(Array,"Array",function(t,e){Yy(this,{type:Ml,target:Wy(t),index:0,kind:e})},function(){var t=Jy(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Ht(void 0,!0);switch(t.kind){case"keys":return Ht(r,!1);case"values":return Ht(e[r],!1)}return Ht([r,e[r]],!1)},"values");var $l=Nl.Arguments=Nl.Array;uo("keys");uo("values");uo("entries");if(!Qy&&zy&&$l.name!=="values")try{Ky($l,"name",{value:"values"})}catch{}});var Bl=a((pE,Fl)=>{"use strict";var Xy=A(),Zy=ie(),eI=Me();Fl.exports=function(t,e,r){Xy?Zy.f(t,e,eI(0,r)):t[e]=r}});var Ul=a(()=>{"use strict";var tI=q(),rI=Dt(),iI=Bl();tI({target:"Object",stat:!0},{fromEntries:function(e){var r={};return rI(e,function(i,o){iI(r,i,o)},{AS_ENTRIES:!0}),r}})});var Hl=a((gE,jl)=>{"use strict";co();Ul();var oI=fe();jl.exports=oI.Object.fromEntries});var Kl=a((mE,Wl)=>{"use strict";Wl.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var Ql=a(()=>{"use strict";co();var nI=Kl(),aI=S(),sI=Qe(),Gl=ue();for(Wt in nI)sI(aI[Wt],Wt),Gl[Wt]=Gl.Array;var Wt});var Yl=a((IE,zl)=>{"use strict";var uI=Hl();Ql();zl.exports=uI});var Xl=a((SE,Jl)=>{"use strict";var cI=Yl();Jl.exports=cI});var Io=E(me(),1);var Lh=(t,e,r)=>{if(typeof t.canParse=="function")return t.canParse(e,r);try{return new t(e,r),!0}catch{return!1}},qa=Lh;var We=(u=>(u.PROD="prod",u.VK_ALIAS="vk_alias",u.VIDEOTEST="videotest",u.TEST="test",u.OKCDN="okcdn",u.AUTO="auto",u))(We||{}),Qr=(c=>(c.Q144P="mobile",c.Q240P="lowest",c.Q360P="low",c.Q480P="medium",c.Q720P="high",c.Q1080P="fullhd",c.Q1440P="quadhd",c.Q2160P="ultrahd",c.UNKNOWN="unknown",c))(Qr||{}),zr=(v=>(v.MP4="mp4",v.DASH="dash",v.DASH_SEP="dash_sep",v.ONDEMAND_DASH="ondemand_dash",v.HLS="hls",v.HLS_FMP4="hls_fmp4",v.ONDEMAND_HLS="ondemand_hls",v.WEBM="webm",v.AV1="av1",v.ONDEMAND_DASH_LIVE="ondemand_dash_live",v.ONDEMAND_HLS_LIVE="ondemand_hls_live",v.WEBRTC="webrtc",v.UNKNOWN="unknown",v.RTMP="rtmp",v))(zr||{});var Yr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(Yr||{});var Jr=(l=>(l.SLIDER="slider",l.DOUBLE_TAP="double_tap",l.TIME_CODE="time_code",l.EPISODE="episode",l.REWIND="rewind",l.LIVE="live",l.UNKNOWN="unknown",l))(Jr||{}),Ra=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))(Ra||{}),Ca={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo",quality:"qt"},ka={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},La={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Na={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv",minimal:"minimal"};import{fillWithDefault as Nh}from"@vkontakte/videoplayer-shared";var $a="CIOPGQJGDIHBABABA",Xr={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var $h={apiEnv:"vk_alias",apiKey:$a,apiBaseUrl:null,requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:["quality"],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,clearStorageAtUnload:!0,useVKComIsMobileLogic:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1},useKeepalive:!1,watchCoverageTimeoutFix:!1},Da=t=>Nh(t,$h);function Zr(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as TI,combine as Id,fromEvent as Sd,isNonNullable as Ce,isNullable as _d,merge as wI,now as Y,observableFrom as xI,once as AI,safeStorage as Pd,Subject as OI,Subscription as So,ValueSubject as er}from"@vkontakte/videoplayer-shared";import{Logger as qI,detectEmbed as RI}from"@vkontakte/videoplayer-shared";var is=E(It(),1),dv=()=>(0,is.default)(Math.floor(Math.random()*2**32).toString(36),13,"0"),J=class t{static getVSID(){return t.vsid}static generateVSID(){return t.vsid=dv(),t.vsid}};var Kt=E(Ki(),1);var Zl=E(xe(),1),ed=E(Xl(),1);var td=t=>{let{operation:e,custom:r}=t,i=(0,ed.default)((0,Zl.default)(r).map(([o,n])=>{let u=ka[o]??o,l=n;return n&&(o==="mode"?l=Na[n]??n:o==="quality"&&(l=La[n]??n)),[u,l]}));return{...t,operation:Ca[e]??e,custom:i}};var C="1.0.94";import{ValueSubject as lI,getExponentialDelay as dI,ErrorCategory as Ae}from"@vkontakte/videoplayer-shared";var fI=/Mobile|mini|Fennec|Android|iP(ad|od|hone)|opera (mini|mobi)/i,ot=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new lI(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(u,l=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,o)}catch(s){if(!s||!("error_code"in s)){this.params.error$.next({id:"logRequestUnknown",category:Ae.NETWORK,message:`Unknown ${r} error`,thrown:s});return}let c=s?.error_code;switch(c){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),l>0?n(u,l-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),l>0?n(u,l-1):void 0;default:{this.params.error$.next({id:`LogRequest#${c}`,category:Ae.EXTERNAL_API,message:`${r} error`,data:s});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Kt.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){let r="WEB",i=!1,o=`@vkontakte/videoplayer-statistics:${C}`;if(this.params.config.useVKComIsMobileLogic){let{appVersion:n}=window.navigator;i=fI.test(n)}else this.params.mobile&&(i=!0);return i&&(r="M_WEB"),this.params.vktvVersion&&(r="SMART_TV",o=this.params.vktvVersion),{collector:"ok.mobile.apps.video",data:JSON.stringify({application:o,platform:r,items:this.params.config.shorten?e.map(td):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=dI(this.consequentAuthErrors,this.params.config.backoff);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,Kt.default)(this._authorize().then(r).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:Ae.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})),()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:C.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Kt.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:Ae.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:Ae.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:Ae.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var{NativeAbortSignal:LE,NativeAbortController:NE}=function(t){return{NativeAbortSignal:t.AbortSignal,NativeAbortController:t.AbortController}}(typeof self<"u"?self:global);function rd(t){let e;try{e=new Event("abort")}catch{typeof document<"u"?document.createEvent?(e=document.createEvent("Event"),e.initEvent("abort",!1,!1)):(e=document.createEventObject(),e.type="abort"):e={type:"abort",bubbles:!1,cancelable:!1}}return e.reason=t,e}function id(t){if(t===void 0)if(typeof document>"u")t=new Error("This operation was aborted"),t.name="AbortError";else try{t=new DOMException("signal is aborted without reason"),Object.defineProperty(t,"name",{value:"AbortError"})}catch{t=new Error("This operation was aborted"),t.name="AbortError"}return t}var Gt=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,r,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:r,options:i})}removeEventListener(e,r){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,n=i.length;o<n;o++)if(i[o].callback===r){i.splice(o,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let o=0,n=i.length;o<n;o++){let u=i[o];try{u.callback.call(this,e)}catch(l){Promise.resolve().then(()=>{throw l})}u.options&&u.options.once&&this.removeEventListener(e.type,u.callback)}return!e.defaultPrevented}},Oe=class extends Gt{constructor(){super(),this.listeners||Gt.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}throwIfAborted(){let{aborted:e,reason:r="Aborted"}=this;if(e)throw r}static timeout(e){let r=new ce;return setTimeout(()=>r.abort(new DOMException(`This signal is timeout in ${e}ms`,"TimeoutError")),e),r.signal}static any(e){let r=new ce;function i(){r.abort(this.reason),o()}function o(){for(let n of e)n.removeEventListener("abort",i)}for(let n of e)if(n.aborted){r.abort(n.reason);break}else n.addEventListener("abort",i);return r.signal}},ce=class{constructor(){Object.defineProperty(this,"signal",{value:new Oe,writable:!0,configurable:!0})}abort(e){let r=id(e),i=rd(r);this.signal.reason=r,this.signal.dispatchEvent(i)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(ce.prototype[Symbol.toStringTag]="AbortController",Oe.prototype[Symbol.toStringTag]="AbortSignal");function Qt(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function lo(t){typeof t=="function"&&(t={fetch:t});let{fetch:e,Request:r=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=t;if(!Qt({fetch:e,Request:r,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:n};let n=r;(n&&!n.prototype.hasOwnProperty("signal")||o)&&(n=function(c,f){let p;f&&f.signal&&(p=f.signal,delete f.signal);let d=new r(c,f);return p&&Object.defineProperty(d,"signal",{writable:!1,enumerable:!1,configurable:!0,value:p}),d},n.prototype=r.prototype);let u=e;return{fetch:(s,c)=>{let f=n&&n.prototype.isPrototypeOf(s)?s.signal:c?c.signal:void 0;if(f){let p;try{p=new DOMException("Aborted","AbortError")}catch{p=new Error("Aborted"),p.name="AbortError"}if(f.aborted)return Promise.reject(p);let d=new Promise((h,v)=>{f.addEventListener("abort",()=>v(p),{once:!0})});return c&&c.signal&&delete c.signal,Promise.race([d,u(s,c)])}return u(s,c)},Request:n}}var pI=()=>"fetch"in window,nt=pI()&&Qt({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),od=nt?lo({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,qe=nt?od.fetch:window.fetch,WE=nt?od.Request:window.Request,KE=nt?ce:window.AbortController,GE=nt?Oe:window.AbortSignal;var nd=E(me(),1),ad=E(xe(),1);import{ErrorCategory as zt,now as fo}from"@vkontakte/videoplayer-shared";var at=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=e.config.apiBaseUrl??Xr[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:zt.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Xr.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:zt.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i){let o=fo(),n=l=>{if(l instanceof TypeError&&(0,nd.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],l.message)){this.params.error$.next({id:"Network",category:zt.NETWORK,message:"Request failed",thrown:l});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:zt.NETWORK,message:"Unhandled request error",thrown:l,data:{method:e,params:r,sessionKey:i,time:fo()-o}})};this.apiBaseUrl=await this.resolveApiBaseUrl();let u={method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:r,sessionKey:i})};return this.params.config.useKeepalive&&(u.keepalive=!0),qe(`${this.apiBaseUrl}/fb.do`,u).then(l=>{let s=Number(l.headers.get("content-length"))===0,c=new Date(l.headers.get("date")??"").getTime(),f=fo()-o;if(isFinite(c)&&this.timeSynchronisation?.addServerTime(c,f),!s)return l.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,n)},n)}_prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,ad.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var ud=E(me(),1),cd=E(xe(),1);import{ErrorCategory as hI,now as vI,safeStorage as st,debounceFn as sd}from"@vkontakte/videoplayer-shared";var Yt="onestat_events",po=t=>e=>e.timestamp+t>=vI(),Jt=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:r}=e;return(0,ud.default)(["action_play","watch_coverage_record","watch_coverage_live"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=sd(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=st.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=sd(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:hI.WTF,message:e?String(e):"Unknown logger error",thrown:e})}}readFromStorage(){let e=st.get(Yt);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(po(this.params.config.storageExpiration));st.set(Yt,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(po(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],st.set(Yt,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,cd.default)(e)){let o=i.filter(po(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}st.set(Yt,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as ho,Surface as Re,VideoFormat as T,VideoQuality as M}from"@vkontakte/videoplayer-core";import{assertNever as ld}from"@vkontakte/videoplayer-shared";var dd=t=>t&&{[M.INVARIANT]:"unknown",[M.Q_144P]:"mobile",[M.Q_240P]:"lowest",[M.Q_360P]:"low",[M.Q_480P]:"medium",[M.Q_576P]:"unknown",[M.Q_720P]:"high",[M.Q_1080P]:"fullhd",[M.Q_1440P]:"quadhd",[M.Q_2160P]:"ultrahd",[M.Q_4320P]:"unknown"}[t],vo=t=>t&&{[ho.HTTP1]:"http1",[ho.HTTP2]:"http2",[ho.QUIC]:"http3"}[t],fd=t=>{if(t!==void 0)switch(t){case T.MPEG:return"mp4";case T.DASH:case T.DASH_LIVE:case T.DASH_STREAMS:return"dash";case T.DASH_SEP:return"dash_sep";case T.DASH_ONDEMAND:return"ondemand_dash";case T.DASH_WEBM:case T.DASH_LIVE_WEBM:return"webm";case T.DASH_WEBM_AV1:return"av1";case T.DASH_LIVE_CMAF:return"ondemand_dash_live";case T.HLS:case T.HLS_LIVE:return"hls";case T.HLS_FMP4:return"hls_fmp4";case T.HLS_ONDEMAND:return"ondemand_hls";case T.HLS_LIVE_CMAF:return"ondemand_hls_live";case T.WEB_RTC_LIVE:return"webrtc";default:return ld(t)}},go=(t,e)=>{if(e)return"minimal";switch(t){case void 0:case Re.NONE:case Re.INLINE:return;case Re.FULLSCREEN:return"fullscreen";case Re.SECOND_SCREEN:return"chromecast";case Re.PIP:return"pip";case Re.INVISIBLE:return"invisible";default:return ld(t)}},pd=t=>{switch(t){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var Xt=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var hd=E(It(),1);var vd=()=>(0,hd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");import{PlaybackState as gd}from"@vkontakte/videoplayer-core";import{filter as md,filterChanged as gI,fromEvent as mI,isNullable as bd,map as bI,merge as mo,Observable as yI,Subject as bo,Subscription as II,ValueSubject as SI}from"@vkontakte/videoplayer-shared";var yd=(t,e)=>new yI(r=>{let i=new II,o=mo(mI(window,"beforeunload"),t.events.willDestruct$),n=new SI(void 0),u;i.add(t.info.isLive$.pipe(gI()).subscribe(I=>{u&&(u.unsubscribe(),n.next(void 0)),I?u=t.info.liveTime$.pipe(bI(B=>B&&B/1e3)).subscribe(n):u=t.info.position$.subscribe(n),i.add(u)}));let{playing$:l,paused$:s}=t.events,c=t.events.willSeek$.pipe(md(()=>t.info.playbackState$.getValue()===gd.PLAYING)),f=t.events.seeked$.pipe(md(()=>t.info.playbackState$.getValue()===gd.PLAYING)),p=!1,d=new bo;i.add(c.subscribe(()=>{p||d.next(),p=!0})),i.add(f.subscribe(()=>p=!1));let h=new bo,v=new bo,g=mo(l,f,h),m=mo(s,d,o,t.events.looped$,v),b,y=()=>b=n.getValue(),k=()=>{let I=n.getValue();bd(b)||b===I||bd(I)||(r.next({from:b,to:I}),b=void 0)},F=()=>{v.next(),h.next()};if(i.add(g.subscribe(y)),i.add(m.subscribe(k)),e.forceInterval&&isFinite(e.forceInterval))if(e.watchCoverageTimeoutFix){let I,B=()=>{I!==void 0&&(window.clearTimeout(I),I=void 0)};i.add(g.subscribe(()=>{B(),I=window.setTimeout(F,e.forceInterval)})),i.add(m.subscribe(()=>B())),i.add(()=>B())}else{let I=0;i.add(g.subscribe(()=>I=window.setTimeout(F,e.forceInterval))),i.add(m.subscribe(()=>window.clearTimeout(I)))}return i});import{Surface as H}from"@vkontakte/videoplayer-core";import{debounce as _I,filterChanged as PI,Subject as EI}from"@vkontakte/videoplayer-shared";var Zt=(t,e,r)=>{let i=new EI,o=i.pipe(_I(0),PI()),n=!1,u=!1,l=!1;return e(t.inPiP$,s=>{n=s,i.next(s?H.PIP:u?H.FULLSCREEN:l?H.INLINE:void 0)}),e(t.inFullscreen$,s=>{u=s,i.next(s?H.FULLSCREEN:n?H.PIP:l?H.INLINE:void 0)}),r&&e(r.info.surface$,s=>{switch(s){case H.SECOND_SCREEN:case H.NONE:case H.INLINE:{!u&&!n&&(s===H.INLINE&&(l=!0),i.next(s));break}}}),{surface$:o}};var CI="_one-stat_",Ed=`${CI}deviceId`,yo=()=>{let t=new So;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},_o=class{constructor(e,r){this.subscription=new So;this.debugLogger=new qI;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.isid$=new er(void 0);this.zenUid$=new er(void 0);this.seekAction$=new er("unknown");this.statContext=e,this.config=Da(r.config??{}),Ce(r.apiEnv)&&(this.config.apiEnv=r.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new Xt);let i=new OI;this.experimental={error$:i};let o=Pd.get(Ed);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=Zr(),Pd.set(Ed,this.deviceId)),this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??vd()),this.zenUid$.next(r.zenUid);let n=new at({config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new ot({config:this.config,apiTransport:n,refreshAuthToken:r.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i,vktvVersion:r.vktvVersion}),this.logger=new Jt({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:u,topOrigin:l}=RI();this.isEmbed=u,this.embedParent=l?new URL(l).hostname:void 0,this.subscribe()}get vsid$(){return new er(J.getVSID())}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let r=new So,i=(d,h)=>r.add(d.subscribe(h));i(e.events.willStart$,()=>{let d=e.info.position$.getValue();this.logActionPlay({position:d}),this.statContext.projectId&&this.logActionPlayInteractive()}),i(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),i(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),i(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),i(e.events.willResume$,()=>{this.logPlay()}),i(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),i(e.events.playing$,()=>{this.logPlaying()}),i(yd(e,{forceInterval:this.config.watchCoverageInterval,watchCoverageTimeoutFix:this.config.watchCoverageTimeoutFix}),d=>{let h=e.info.isLive$.getValue(),v=e.info.atLiveEdge$.getValue(),g={start:parseFloat(d.from.toFixed(3)),end:parseFloat(d.to.toFixed(3))};if(v){let m=e.info.liveLatency$.getValue()??0,b=e.info.currentBuffer$.getValue()?.end??0,y=e.info.liveBufferTime$.getValue()??0,k=Math.round((m-(b-y))*1e3),F=Math.round(m*1e3);k&&F&&(g.latency=k,g.bufferLatency=F)}h?this.logWatchCoverageLive(g):this.logWatchCoverageRecord(g)});let o;i(e.info.isStalled$,d=>{d?o=Y():(Ce(o)&&this.logEmptyBuffer({duration:Y()-o}),o=void 0)});let n=!1;r.add(e.events.fatalError$.pipe(AI()).subscribe(()=>n=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let h=Ce(o)?Y()-o:void 0;this.logCloseAtEmptyBuffer({duration:h??0}),o=void 0}else n||this.logActionStop()}),i(e.events.managedError$,({id:d})=>{this.logError({fatal:!1,errorType:d})}),i(e.events.fatalError$,({id:d})=>{this.logError({fatal:!0,errorType:d})});let u,l,s=!1;i(e.events.firstBytes$,d=>{u=Y(),this.logFirstBytes({time:d})}),i(e.events.willStart$,()=>l=Y()),i(e.info.currentBuffer$,d=>{!s&&d&&d.end-d.start>0&&Ce(u)&&(this.logPlayerReady({duration:Y()-u}),s=!0)}),i(e.events.firstFrame$,()=>{Ce(u)&&!s&&(this.logPlayerReady({duration:Y()-u}),s=!0),Ce(l)&&this.logFirstFrame({time:Y()-l})});let c;i(e.info.currentVideoStream$,d=>{d&&(c&&d.id!==c&&this.logTrackSwitch(d),c=d.id)});let f;i(e.info.currentAudioStream$,d=>{d&&(f&&d.id!==f&&this.logTrackSwitch(d),f=d.id)}),i(e.info.atLiveEdge$,d=>this.updateContext({liveEdge:d})),i(Id({muted:e.info.muted$,volume:e.info.volume$}),({muted:d,volume:h})=>this.updateContext({audible:!d&&h>0})),i(e.info.currentQuality$,d=>{let h=dd(d);this.updateContext({quality:h}),h&&this.logQuality(h)}),i(e.info.isAutoQualityEnabled$,d=>this.updateContext({autoQuality:d})),i(e.info.currentFormat$,d=>this.updateContext({contentType:fd(d)})),i(e.info.currentPlaybackRate$,d=>this.updateContext({rate:d})),i(e.info.is3DVideo$,d=>this.updateContext({is3d:d}));let p;return i(e.info.hostname$,d=>{let h=p!==void 0&&p!==d;this.updateContext({cdnHostname:d,failover:h}),h&&this.logFailover(d),p=d}),i(e.info.throughputEstimation$,d=>this.updateContext({downloadSpeed:d})),i(e.info.httpConnectionType$,d=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:vo(d)}),this.updateContext({connectionType:vo(d)})}),i(e.info.httpConnectionReused$,d=>{_d(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:d}),this.updateContext({connectionReused:d})}),i(e.info.surface$,d=>{this.uiEvents||this.updateContext({mode:go(d,this.statContext.isPreviewPlayerView)})}),i(Id({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:d,available:h})=>{let v=h.find(({id:m})=>m===d),g=v&&(v.isAuto?`${v.language}_auto`:v.language);this.updateContext({subtitles:g?.split(".")[0]})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToUi(e){this.uiEvents=e;let{subscription:r,subscribe:i}=yo();if(!this.player)return r;i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$);let{surface$:o}=Zt(this.uiEvents,i,this.player);return i(o,n=>{this.updateContext({mode:go(n,this.statContext.isPreviewPlayerView)})}),i(e.actionSetSubtitle$,n=>this.updateContext({subtitles:n?.split(".")[0]})),i(e.nextMovie$,n=>this.logNextMovie(n)),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToAds(e){let{subscription:r,subscribe:i}=yo();return i(e.slotRequested$,()=>this.logAdSlotRequest()),i(e.started$,o=>this.logAdStarted(o)),i(e.paused$,()=>this.logAdPaused()),i(e.resumed$,()=>this.logAdResumed()),i(e.ended$,()=>this.logAdEnded()),i(e.skipped$,()=>this.logAdSkipped()),i(e.clicked$,()=>this.logAdClicked()),i(e.error$,o=>this.logError({errorType:o,fatal:!1})),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToInteractive(e){let{subscription:r,subscribe:i}=yo();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(r),r}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),J.generateVSID()}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let r=this.timeSynchronisation?.getOffset()??0,i=e.start+r,o=e.end+r;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0,latency:e.latency,buffer_latency:e.bufferLatency})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(wI(Sd(e,"change"),xI(["init"])).subscribe(()=>this.updateContext({network:pd(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(r=>{console.debug("%c stat ","background:#fa6470;",`component: ${r.component}.`,r.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Sd(window,"beforeunload").subscribe(()=>this.logger.flush({wantBeacon:!0,clearStorage:this.config.clearStorageAtUnload})),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}logQuality(e){this.log({operation:"quality",param:e})}log(e,r={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if((0,Io.default)(this.config.disabledOperations,e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let i=this.createLogItem(e,r);this.logger.log(i)}createLogItem({operation:e,param:r,time:i},o={}){let n=this.timeSynchronisation?.now()??Y(),u=this.vsid$.getValue();TI(u);let l=this.isid$.getValue(),s=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,c=this.statContext.firstConnectionReused,f,p;if(this.isEmbed||this.statContext.place==="embed"){f=this.embedParent;let h=[...new URLSearchParams(location.search).entries()].filter(([v,g])=>(0,Io.default)(this.config.embedUrlParams,v));p=new URLSearchParams(h).toString()}else if(this.statContext.place==="direct"){let h=this.statContext.refDomain||document.referrer;h&&qa(URL,h)?f=new URL(h).hostname:f=h,p=location.href.substring(0,1024)}let d={vsid:u,isid:l,vid:this.statContext.movieId,uid:this.zenUid$.getValue(),ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:r,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:s,connection_reused:c===!0?1:c===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:f,direct_url:p,rate:this.statContext.rate===1||_d(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let h of this.config.disabledCustomFields)delete d[h];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:n,custom:d}}};var Yd={};df(Yd,{SeekType:()=>tr,ThinOneStat:()=>lr,VERSION:()=>C});import{assertNonNullable as GI,detectEmbed as QI,fromEvent as zI,Logger as YI,merge as Ro,combine as Kd,filter as JI,filterChanged as XI,safeStorage as Gd,Subject as ZI,Subscription as ko,ValueSubject as Co}from"@vkontakte/videoplayer-shared";import{clientChecker as le}from"@vkontakte/videoplayer-core";import{fillWithDefault as kI}from"@vkontakte/videoplayer-shared";var tr=(l=>(l.SLIDER="slider",l.DOUBLE_TAP="double_tap",l.TIME_CODE="time_code",l.EPISODE="episode",l.REWIND="rewind",l.LIVE="live",l.UNKNOWN="unknown",l))(tr||{});var wd="CIOPGQJGDIHBABABA",Po={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var LI={apiKey:wd,apiEnv:"okcdn",apiBaseUrl:null,requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageHeartbeatInterval:30,synchronizeTime:!0,useBeacon:!1,alwaysSendDesktop:!1,watchedNFirstTvtLog:1e3,watchedNDefaultTargetDuration:1e4},xd=t=>kI(t,LI);var Eo=E(Ki(),1);import{getExponentialDelay as NI,ErrorCategory as ke,ValueSubject as $I}from"@vkontakte/videoplayer-shared";var rr=class{constructor(e){this.params=e,this.authorized$=new $I(!1),this.consequentAuthErrors=0}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this.authorizeWithBackoff()}logBeacon(e){let r="log.logUvStat",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.logUvStat",i=this.createLogParams(e),o={},n=this.sessionKey??await this.authorizeWithBackoff();if(!n)return;let u=async(l,s=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,n,o)}catch(c){if(!c||!("error_code"in c)){this.params.error$.next({id:"logRequestUnknown",category:ke.NETWORK,message:`Unknown ${r} error`,thrown:c});return}let f=c?.error_code;switch(f){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this.authorizeWithBackoff(),s>0?u(l,s-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this.authorizeWithBackoff(),s>0?u(l,s-1):void 0;default:{this.params.error$.next({id:`LogRequest#${f}`,category:ke.EXTERNAL_API,message:`${r} error`,data:c});return}}}};return u(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Eo.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",uv_stat_data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${C}`,platform:e[0].platform,product:e[0].product,events:e})}}authorizeWithBackoff(){if(!this.consequentAuthErrors)return this.doAuthorize();let e=NI(this.consequentAuthErrors);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(async()=>{try{let i=await this.doAuthorize();r(i)}catch(i){this.params.error$.next({id:"AuthorizeBackoff",category:ke.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})}finally{this.backoffTimeoutId=0}},e))})}doAuthorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:C.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Eo.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:ke.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this.authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:ke.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:ke.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var Ad=E(me(),1);var Od=E(xe(),1);import{now as To,ErrorCategory as ir}from"@vkontakte/videoplayer-shared";var or=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=e.config.apiBaseUrl??Po[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this.prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(u){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:ir.NETWORK,message:"Unhandled beacon error",thrown:u,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i,o){let n=To(),u=l=>{if(l instanceof TypeError&&(0,Ad.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],l.message)){this.params.error$.next({id:"Network",category:ir.NETWORK,message:"Request failed",thrown:l});return}this.params.error$.next({id:"ThinOneStat:ApiTransport:sendRequest",category:ir.NETWORK,message:"Unhandled request error",thrown:l,data:{method:e,params:r,sessionKey:i,time:To()-n}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),qe(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded",...o},body:this.prepareQueryParams({method:e,queryParams:r,sessionKey:i})}).then(l=>{let s=Number(l.headers.get("content-length"))===0,c=new Date(l.headers.get("date")??"").getTime(),f=To()-n;if(isFinite(c)&&this.timeSynchronisation?.addServerTime(c,f),!s)return l.json().then(p=>Object.prototype.hasOwnProperty.call(p,"error_msg")?Promise.reject(p):p,u)},u)}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"ThinOneStat:ApiTransport:resolveApiBaseUrl",category:ir.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Po.vk_alias}finally{this.isApiBaseUrlFetched=!0}}prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,Od.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var Rd=E(me(),1),Cd=E(xe(),1);import{ErrorCategory as DI,now as MI,safeStorage as ut,debounceFn as qd}from"@vkontakte/videoplayer-shared";var nr="thinonestat_events",wo=t=>e=>e.client_time+t>=MI(),ar=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{event_name:r}=e;return(0,Rd.default)(["watch_coverage","watch_coverage_live","watched_n","playback_started"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=qd(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=ut.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=qd(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:DI.WTF,message:String(e)||"Unknown logger error",thrown:e})}}readFromStorage(){let e=ut.get(nr);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(wo(this.params.config.storageExpiration));ut.set(nr,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(wo(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],ut.set(nr,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,Cd.default)(e)){let o=i.filter(wo(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}ut.set(nr,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};function xo(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}var sr=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};import{PlaybackState as kd}from"@vkontakte/videoplayer-core";import{Observable as VI,Subscription as FI,ValueSubject as BI,Subject as Ao,fromEvent as UI,isNullable as Ld,merge as ct,filter as Nd,filterChanged as $d}from"@vkontakte/videoplayer-shared";var Dd=(t,e,r)=>new VI(i=>{let o=new FI,n=new BI(void 0),u;o.add(t.info.isLive$.pipe($d()).subscribe(W=>{u&&(u.unsubscribe(),n.next(void 0)),W?u=t.info.liveTime$.pipe($d()).subscribe(n):u=t.info.position$.subscribe(n),o.add(u)}));let{playing$:l,paused$:s,ended$:c,looped$:f}=t.events,p=t.events.willSeek$.pipe(Nd(()=>t.info.playbackState$.getValue()===kd.PLAYING)),d=t.events.seeked$.pipe(Nd(()=>t.info.playbackState$.getValue()===kd.PLAYING)),h=!1,v=new Ao;o.add(p.subscribe(()=>{h||v.next(),h=!0})).add(d.subscribe(()=>h=!1));let g=ct(UI(window,"beforeunload"),t.events.willDestruct$),m,b=()=>m=n.getValue(),y=()=>{let W=n.getValue();Ld(m)||Ld(W)||m===W||(i.next({from:m,to:W}),m=void 0)},k=new Ao,F=new Ao,I=ct(l,v,k),B=ct(s,d,g,c,f,F),No=e.started$&&e.ended$?ct(I,e.ended$):I,$o=e.started$&&e.ended$?ct(B,e.started$):B;if(o.add(No.subscribe(b)).add($o.subscribe(y)),r.heartbeatInterval&&isFinite(r.heartbeatInterval)){let W=[],of=r.heartbeatInterval*1e3,nf=()=>{F.next(),k.next()};o.add(No.subscribe(()=>{let fr=window.setTimeout(nf,of);W.push(fr)})).add($o.subscribe(()=>{W.forEach(fr=>{window.clearTimeout(fr)}),W=[]}))}return o});import{Subscription as jI}from"@vkontakte/videoplayer-core";import{Observable as HI}from"@vkontakte/videoplayer-shared";var Md=(t,e)=>new HI(r=>{let i=new jI,o=0;return i.add(t.info.position$.subscribe(()=>{let n=e.getTotalViewTime()*1e3;n>o&&(n===e.firstTvtLog||n%e.targetDuration===0)&&(o=n,r.next({target_duration:e.targetDuration,current_tvt:n}))})),i});import{Observable as WI,Subscription as KI,merge as Vd}from"@vkontakte/videoplayer-shared";var Fd=t=>new WI(e=>{let r=new KI,i=0,o=1,n=0,u=!1,l=!1,s=()=>{if(!u)return;let I=Date.now();n+=(I-i)*o,i=I},c=()=>{(!u||l)&&(i=Date.now(),u=!0,l=!1)},f=()=>{u&&(s(),u=!1)},p=()=>{u&&(s(),u=!1,l=!0)},d=I=>{u&&s(),o=I,i=Date.now()},{started$:h,playing$:v,paused$:g,willSeek$:m,ended$:b,willDestruct$:y}=t.events,{currentPlaybackRate$:k}=t.info;r.add(m.subscribe(p)).add(Vd(h,v).subscribe(c)).add(Vd(g,b,y).subscribe(f)).add(k.subscribe(d));let F=()=>{let I=n;return u&&(I+=(Date.now()-i)*o),I};return e.next(F),r});import{assertNever as Bd}from"@vkontakte/videoplayer-shared";import{HttpConnectionType as Oo,Surface as Le,VideoFormat as P,VideoQuality as V}from"@vkontakte/videoplayer-core";var Ud=t=>t&&{[Oo.HTTP1]:"http1",[Oo.HTTP2]:"http2",[Oo.QUIC]:"http3"}[t],qo=t=>{if(t!==void 0)switch(t){case P.MPEG:return"MP4";case P.DASH:case P.DASH_LIVE:return"DASH";case P.DASH_SEP:return"DASH_SEP";case P.DASH_ONDEMAND:return"ONDEMAND_DASH";case P.HLS_ONDEMAND:return"ONDEMAND_HLS";case P.HLS:case P.HLS_LIVE:return"HLS";case P.HLS_FMP4:return"HLS_FMP4";case P.DASH_WEBM:case P.DASH_LIVE_WEBM:return"WEBM";case P.DASH_LIVE_CMAF:return"ONDEMAND_DASH_LIVE";case P.HLS_LIVE_CMAF:return"ONDEMAND_HLS_LIVE";case P.WEB_RTC_LIVE:return"WEBRTC";case P.DASH_WEBM_AV1:return"AV1";case P.DASH_STREAMS:return"MULTI_DASH";default:return Bd(t)}},Z=t=>{if(t!==void 0)switch(t){case V.Q_144P:return"144p";case V.Q_240P:return"240p";case V.Q_360P:return"360p";case V.Q_480P:return"480p";case V.Q_720P:return"720p";case V.Q_1080P:return"1080p";case V.Q_1440P:return"1440p";case V.Q_2160P:return"2160p";case V.INVARIANT:case V.Q_576P:case V.Q_4320P:return"UNKNOWN";default:return Bd(t)}},jd=t=>{if(t!==void 0)switch(t){case"MP4":case"ONDEMAND_DASH":case"ONDEMAND_DASH_LIVE":case"ONDEMAND_HLS":case"ONDEMAND_HLS_LIVE":case"MULTI_DASH":case"WEBM":case"AV1":return"vod";case"DASH":case"HLS":case"HLS_FMP4":case"WEBRTC":return"live";default:return}},ee=(t,e,r)=>{if(t&&e)switch(t){case P.MPEG:return r&&e[t]&&e[t][r];default:return e[t]?.url}},ur=(t,e=!1)=>{if(e)return"minimal";switch(t){case void 0:case Le.NONE:return;case Le.INLINE:return"inline";case Le.FULLSCREEN:return"fullscreen";case Le.SECOND_SCREEN:return"chromecast";case Le.PIP:return"pip_external"}},cr=t=>{switch(t){case void 0:return;case Le.INVISIBLE:return"background";default:return"foreground"}};var Hd=E(It(),1);var Wd=()=>(0,Hd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");var eS="_thin-one-stat_",Qd=`${eS}deviceId`,zd=()=>{let t=new ko;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},lr=class{constructor(e,r){this.debugLogger=new YI;this.thinOneStatDebugLog=this.debugLogger.createComponentLog("ThinOneStat");this.eventNumber=1;this.playerSize={width:0,height:0};this.seekAction$=new Co("unknown");this.isid$=new Co(void 0);this.statContext=e,this.config=xd(r.config??{}),this.subscription=new ko,this.config.synchronizeTime&&(this.timeSynchronisation=new sr);let i=new ZI,o=Gd.get(Qd);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=xo(),Gd.set(Qd,this.deviceId)),this.statContext.targetDuration?this.targetDuration=this.statContext.targetDuration:this.targetDuration=this.config.watchedNDefaultTargetDuration,this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??Wd());let n=new or({error$:i,config:this.config,timeSynchronisation:this.timeSynchronisation});this.api=new rr({config:this.config,apiTransport:n,error$:i,deviceId:this.deviceId,refreshAuthToken:r.refreshAuthToken}),this.logger=new ar({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:u,topOrigin:l}=QI();this.isEmbed=u,this.embedHostname=l?new URL(l).hostname:void 0}get vsid$(){return new Co(J.getVSID())}authorize(e){return this.api.authorize(e)}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e,r){let i=new ko,o=(s,c)=>i.add(s.subscribe(c));o(Fd(e),s=>{this.getTotalViewTime=s}),o(e.info.isLive$,s=>this.isLive=s);let n;o(e.info.hostname$,s=>{n!==void 0&&n!==s&&this.logFailover({cdn_host:s}),this.cdnHostname=n=s}),o(e.info.httpConnectionType$,s=>{this.connectionType=Ud(s)}),o(e.info.httpConnectionReused$,s=>{this.connectionReused=s}),o(Dd(e,r,{heartbeatInterval:this.config.watchCoverageHeartbeatInterval}),s=>{let c=Math.round(s.from*1e3),f=Math.round(s.to*1e3),p={watch_interval:`${c}-${f}`,in_history:!!this.statContext.inHistory,content_type:qo(e.info.currentFormat$.getValue()),playback_quality:Z(e.info.currentQuality$.getValue()),recom_info:this.statContext.recomInfo};if(!e.info.isLive$.getValue())this.logWatchCoverage(p);else{let h=e.info.atLiveEdge$.getValue();this.logWatchCoverageLive({...p,live:!!h})}}),o(Md(e,{targetDuration:this.targetDuration,firstTvtLog:this.config.watchedNFirstTvtLog,getTotalViewTime:this.getTotalViewTime}),s=>{this.logWatchedN(s)}),o(e.events.willReady$,()=>{if(this.statContext.preload){let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentBuffer$.getValue(),p=e.info.currentQuality$.getValue(),d={target_buffer_time:this.calcBufferTime(f),playback_url:ee(s,c,p),playback_quality:Z(p)};this.logPreloadStarted(d)}}),o(e.events.ready$,()=>{let s=e.info.currentBuffer$.getValue();if(this.statContext.preload){let c={buffer_time:this.calcBufferTime(s)};this.logPreloadEnded(c)}this.logReady({buffer_time:this.calcBufferTime(s)})}),o(e.events.manifestRequested$,()=>{let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ee(s,c,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestRequest(p)}),o(e.events.firstBytesManifest$,()=>{let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ee(s,c,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstByteManifest(p)}),o(e.events.manifestReceived$,()=>{let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ee(s,c,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestReceived(p)}),o(e.events.firstBytesRequested$,()=>{let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ee(s,c,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstMediaRequest(p)}),o(e.events.firstBytesReceived$,()=>{let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p={playback_url:ee(s,c,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstByteMedia(p)}),o(Ro(e.events.willStart$,e.events.looped$),s=>{s&&this.resetViewSession();let c={isid:this.isid$.getValue(),stream_profile:jd(qo(e.info.currentFormat$.getValue())),dpi:le.display.pixelRatio,web_layout:this.statContext.isMobile||le.device.isMobile?"mobile":"desktop",preloaded:this.statContext.preload,navigation:this.statContext.navigation,recom_info:this.statContext.recomInfo};this.isEmbed&&(c.iframe_host=this.embedHostname??"unknown"),this.logStartSession(c)}),o(e.events.started$,()=>{this.isStarted=!0;let s=e.info.currentBuffer$.getValue(),c=e.info.currentQuality$.getValue(),f=e.info.isAutoQualityEnabled$.getValue(),p=e.info.muted$.getValue(),d=e.info.volume$.getValue(),h=e.info.surface$.getValue(),v=e.info.availableTextTracks$.getValue(),g=e.info.currentTextTrack$.getValue(),m=e.info.currentAudioStream$.getValue(),b=e.info.currentPlaybackRate$.getValue(),y={playback_quality:Z(c),user_quality:f?"auto":Z(c),player_width:this.playerSize.width,player_height:this.playerSize.height,muted:p,sound_volume:Math.round(d*100),buffer_time:this.calcBufferTime(s),mode:ur(h,this.statContext.isPreviewPlayerView),visibility:cr(h),subtitles_enabled:g?!!g:this.currentSubtitle?.enabled,auto_subtitles:v.find(({id:k})=>k===g)?.isAuto??this.currentSubtitle?.auto,audio_track_lang:m?.language,playback_rate:b,recom_info:this.statContext.recomInfo};this.logPlaybackStarted(y)}),o(Ro(e.events.willStart$,e.events.willResume$),()=>{this.logPlay()}),o(e.events.playing$,()=>{let s=e.info.currentBuffer$.getValue(),c={buffer_time:this.calcBufferTime(s)};this.wasPaused&&this.logResume(),this.logPlaying(c)}),o(e.events.paused$,()=>{this.wasPaused=!0,this.logPause()}),o(e.events.willStop$,()=>{this.logStop()}),o(Ro(e.events.fetcherRecoverableError$,e.events.fatalError$),()=>{this.statContext.preload&&this.logPreloadError()}),o(Kd({connectionType:e.info.httpConnectionType$,connectionReused:e.info.httpConnectionReused$}).pipe(JI(({connectionReused:s})=>s!==void 0),XI((s,c)=>s.connectionType===c.connectionType)),()=>{let s=e.info.currentFormat$.getValue(),c=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),p=e.info.rttEstimation$.getValue(),d={playback_url:ee(s,c,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused,rtt:p?Math.round(p):void 0};this.logConnectionEstablished(d)}),o(e.events.firstFrame$,()=>{this.logFirstVideoFrameDecoded()}),o(e.events.willSeek$,()=>{let s={seek_type:this.seekAction$.getValue()};this.logSeeking(s)}),o(e.events.seeked$,()=>{let s={seek_type:this.seekAction$.getValue()};this.logSeeked(s),this.seekAction$.next("unknown")}),o(e.info.isStalled$,s=>{let c=e.info.currentBuffer$.getValue(),f=this.calcBufferTime(c);s&&f&&f>0&&this.logBufferStarvation({buffer_time:f})}),o(e.info.currentQuality$,s=>{if(s){let c=e.info.isAutoQualityEnabled$.getValue(),f=e.info.currentVideoStream$.getValue()?.codec,p=e.info.currentAudioStream$.getValue()?.codec,d={user_quality:c?"auto":Z(s),playback_quality:Z(s),download_quality:Z(s),codec_info:f&&p?`${f},${p}`:void 0,manual_switch:!c};this.logQualityChanged(d)}});let u,l;return o(e.info.surface$,s=>{let c=ur(s,this.statContext.isPreviewPlayerView);c&&!this.uiEvents&&this.isStarted&&this.logModeChanged({mode:c}),l=cr(s),u!==l&&this.isStarted&&(u=cr(s),this.logVisibilityChanged({visibility:l}))}),o(Kd({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:c})=>{if(this.isStarted){let f={muted:s,sound_volume:Math.round(c*100)};this.logSoundChanged(f)}}),this.player=e,this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscribe:r,subscription:i}=zd();r(e.actionSeek$,this.seekAction$),r(e.playerSize$,({width:n,height:u})=>{n&&u&&(this.playerSize={width:n,height:u},this.logViewPortChanged({player_width:n,player_height:u}))}),r(e.isLoaderVisible$,n=>{n&&this.isStarted&&this.logShowLoader()}),r(e.actionSubtitlesSwitched$,n=>{if(this.currentSubtitle={...n},this.isStarted){let u={subtitles_enabled:n.enabled,subtitles_track_lang:n.lang,auto_subtitles:n.auto};this.logSubtitlesSwitched(u)}});let{surface$:o}=Zt(this.uiEvents,r,this.player);return r(o,n=>this.logModeChanged({mode:ur(n)})),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToAds(e){let{subscription:r,subscribe:i}=zd();return i(e.init$,o=>{let n={slot:o};this.logAdvConfiguration(n)}),i(e.slotRequested$,()=>{this.logAdvRequest()}),i(e.started$,o=>{let n={adv_section:o};this.logAdvBreakStarted(n)}),i(e.ended$,o=>{let n={adv_section:o};this.logAdvBreakEnded(n)}),i(e.error$,o=>{let n={error_message:o};this.logAdvError(n)}),this.resubscribeBeforeunload(),this.subscription.add(r),r}getDeviceId(){return this.deviceId}resetViewSession(){this.thinOneStatDebugLog({message:"VSID reset"}),J.generateVSID(),this.eventNumber=0}destroy(){this.api.destroy()}calcBufferTime(e){return e?Math.round((e.end??0)-(e.start??0))*1e3:void 0}createRequiredParams(e){let r=this.vsid$.getValue();GI(r);let i=this.eventNumber++,o=((this.isLive?this.player?.info.liveTime$.getValue():this.player?.info.position$.getValue())??0)*1e3;return{vsid:r,uv_movie_id:this.statContext.movieId,event_name:e,client_time:Date.now(),application:this.statContext.application??`@vkontakte/videoplayer-statistics:${C}`,platform:this.statContext.platform??`web:${this.statContext.isMobile||le.device.isMobile?"mobile":"desktop"}`,product:this.statContext.product,event_number:i,playback_position:o,current_tvt:this.getTotalViewTime(),cdn_host:this.cdnHostname}}createRequiredFatParams(){return{stats_version:"2.1.1",browser:this.statContext.browser??le.browser.current,browser_version:this.statContext.browserVersion??String(le.browser.currentVersion),os:this.statContext.os??le.device.current,os_version:this.statContext.osVersion??"",device_type:this.statContext.deviceType??(this.statContext.isMobile||le.device.isMobile?"mobile":"desktop"),device_manufacturer:this.statContext.deviceManufacturer??"",device_model:this.statContext.deviceModel??"",navigation:this.statContext.navigation}}log(e,r,i=!1){let o=this.createRequiredParams(e),n={};i&&(n=this.createRequiredFatParams()),this.logger.log({...o,...n,...r})}logWatchCoverage(e){this.log("watch_coverage",e,!0)}logWatchCoverageLive(e){this.log("watch_coverage_live",e,!0)}logWatchedN(e){this.log("watched_n",e,!0)}logStartSession(e){this.log("start_session",e,!0)}logPreloadStarted(e){this.log("preload_started",e)}logPreloadEnded(e){this.log("preload_ended",e)}logPreloadError(){this.log("preload_error")}logPlaybackStarted(e){this.log("playback_started",e,!0)}logPlay(){this.log("play")}logManifestRequest(e){this.log("manifest_request",e)}logFirstByteManifest(e){this.log("first_byte_manifest",e)}logFirstMediaRequest(e){this.log("first_media_request",e)}logFirstByteMedia(e){this.log("first_byte_media",e)}logManifestReceived(e){this.log("manifest_received",e)}logConnectionEstablished(e){this.log("connection_established",e)}logFirstVideoFrameDecoded(){this.log("first_video_frame_decoded")}logReady(e){this.log("ready",e)}logPlaying(e){this.log("playing",e)}logPause(){this.log("pause")}logResume(){this.log("resume")}logSeeking(e){this.log("seeking",e)}logSeeked(e){this.log("seeked",e)}logStop(){this.log("stop")}logBufferStarvation(e){this.log("buffer_starvation",e)}logShowLoader(){this.log("show_loader")}logQualityChanged(e){this.log("quality_changed",e)}logCdnHostChanged(e){this.log("cdn_host_changed",e)}logViewPortChanged(e){this.log("view_port_changed",e)}logModeChanged(e){this.log("mode_changed",e)}logVisibilityChanged(e){this.log("visibility_changed",e)}logSubtitlesSwitched(e){this.log("subtitles_switched",e)}logSoundChanged(e){this.log("sound_changed",e)}logFailover(e){this.log("failover",e)}logAdvConfiguration(e){this.log("adv_configuration",e)}logAdvRequest(){this.log("adv_request")}logAdvBreakStarted(e){this.log("adv_break_started",e)}logAdvBreakEnded(e){this.log("adv_break_ended",e)}logAdvError(e){this.log("adv_error",e)}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=zI(window,"beforeunload").subscribe(()=>{}),this.subscription.add(this.beforeunloadSubscription)}};var tS={};var rS=(t,e={})=>{let i=e.timeout||1,o=performance.now();return window.setTimeout(()=>{t({get didTimeout(){return e.timeout?!1:performance.now()-o-1>i},timeRemaining(){return Math.max(0,1+(performance.now()-o))}})},1)},iS=t=>window.clearTimeout(t),Jd=t=>typeof t=="function"&&t?.toString().endsWith("{ [native code] }"),Xd=!Jd(window.requestIdleCallback)||!Jd(window.cancelIdleCallback),Zd=Xd?rS:window.requestIdleCallback,ef=Xd?iS:window.cancelIdleCallback;import{PlaybackState as rf,Subscription as oS}from"@vkontakte/videoplayer-core";import{Logger as nS}from"@vkontakte/videoplayer-shared";var dr=class{constructor(){this.startTime=null;this.stopTime=null;this.accumulatedTime=0}get time(){return Math.floor(this.timeMs/1e3)}get timeMs(){return this.startTime===null?0:(this.stopTime??this.now())-this.startTime-this.accumulatedTime}get isRunning(){return this.startTime!==null&&this.stopTime===null}start(){this.isRunning||(this.stopTime!==null?(this.accumulatedTime+=this.now()-this.stopTime,this.stopTime=null):this.startTime=this.now())}stop(){this.isRunning&&(this.stopTime=this.now())}reset(){this.startTime=null,this.stopTime=null,this.accumulatedTime=0}now(){return Date.now()}};var tf=()=>window.Image?new Image:document.createElement("img");var Lo=class{constructor(e){this.position=0;this.started=!1;this.heartbeatPixels=[];this.heartbeatLastTimeSent={};this.idleCallbackIds=[];this.stopwatch=new dr;this.subscription=new oS;this.params=e;let r=new nS;this.log=r.createComponentLog("MediascopePixel")}attachTo(e){this.subscription.add(e.info.playbackState$.subscribe(r=>this.onPlaybackState(r))).add(e.info.position$.subscribe(r=>this.onPosition(r))).add(e.info.atLiveEdge$.subscribe(r=>this.isActiveLive=r)),this.subscription.add(e.events.willSeek$.subscribe(()=>this.onWillSeek())).add(e.events.seeked$.subscribe(()=>this.onSeeked())).add(e.events.ended$.subscribe(()=>this.onEnded()))}destroy(){this.stopwatch.reset(),this.subscription.unsubscribe(),window.clearTimeout(this.heartbeatFirstTimeoutId),this.idleCallbackIds.forEach(e=>ef(e)),this.send("stop")}onPlaybackState(e){e===rf.PLAYING?this.started?this.play():this.start():e===rf.PAUSED&&this.pause()}start(){this.started=!0,this.stopwatch.start(),this.send("start"),this.heartbeatPixels=this.prepareHeartbeatPixels(),this.heartbeatInterval=this.heartbeatPixels[0]?.interval;let e=this.heartbeatPixels[0]?.url,r=this.heartbeatPixels[0]?.delay;if(r!==void 0&&e)try{this.heartbeatFirstTimeoutId=window.setTimeout(()=>{this.sendHeartbeat(e)},r*1e3)}catch(i){this.log({message:i.message})}}play(){this.stopwatch.start(),this.send("resume")}pause(){this.stopwatch.stop(),this.send("pause")}onPosition(e){if(this.position=e,this.heartbeatInterval&&this.stopwatch.time!==0&&this.stopwatch.time%this.heartbeatInterval===0)for(let[r,{url:i}]of this.heartbeatPixels.entries())this.heartbeatLastTimeSent[r]!==this.stopwatch.time&&(this.heartbeatLastTimeSent[r]=this.stopwatch.time,this.sendHeartbeat(i))}onWillSeek(){this.started&&this.send("stop")}onSeeked(){this.started&&this.send("start")}onEnded(){this.stopwatch.stop(),this.send("stop")}validatePixels(e,r){return e?.filter(i=>i.event===r.event&&r.keys.every(o=>!!i[o]))}getFrameTimestamp(){let e;if(this.isActiveLive){let r=Math.floor(Math.random()*25)+5;e=Date.now()/1e3-r}else e=this.position||0;return Math.floor(e)}getUTC(){return Math.floor(Date.now()/1e3)}prepareUrl(e){return e.replace("{@fts_fake_sec}",String(this.getFrameTimestamp())).replace("{@utc_sec}",String(this.getUTC())).split("&").filter(r=>!/={@[a-zA-Z_]+}/.test(r)).join("&")}preparePixels(e){return this.validatePixels(this.params.pixels,{event:e,keys:["url"]})}prepareHeartbeatPixels(){return this.validatePixels(this.params.pixels,{event:"heartbeat",keys:["url","interval"]})}call(e){try{this.idleCallbackIds.push(Zd(()=>tf().src=this.prepareUrl(e)))}catch(r){this.log({message:r.message})}}send(e){let r=this.preparePixels(e);for(let{url:i}of r)this.call(i)}sendHeartbeat(e){this.call(e)}};export{We as ApiEnv,Yr as ConnectionType,zr as ContentType,Ra as InteractiveInterfaceClick,Lo as MediascopePixel,tS as MediascopePixelTypes,_o as OneStat,Qr as Quality,Jr as SeekAction,Yd as ThinOneStat,C as VERSION};
6
+ var mf=Object.create;var gr=Object.defineProperty;var bf=Object.getOwnPropertyDescriptor;var yf=Object.getOwnPropertyNames;var If=Object.getPrototypeOf,Sf=Object.prototype.hasOwnProperty;var a=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),_f=(t,e)=>{for(var r in e)gr(t,r,{get:e[r],enumerable:!0})},Pf=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of yf(e))!Sf.call(t,o)&&o!==r&&gr(t,o,{get:()=>e[o],enumerable:!(i=bf(e,o))||i.enumerable});return t};var P=(t,e,r)=>(r=t!=null?mf(If(t)):{},Pf(e||!t||!t.__esModule?gr(r,"default",{value:t,enumerable:!0}):r,t));var S=a((mr,Uo)=>{"use strict";var $e=function(t){return t&&t.Math===Math&&t};Uo.exports=$e(typeof globalThis=="object"&&globalThis)||$e(typeof window=="object"&&window)||$e(typeof self=="object"&&self)||$e(typeof global=="object"&&global)||$e(typeof mr=="object"&&mr)||function(){return this}()||Function("return this")()});var w=a((_S,jo)=>{"use strict";jo.exports=function(t){try{return!!t()}catch{return!0}}});var De=a((PS,Ho)=>{"use strict";var Ef=w();Ho.exports=!Ef(function(){var t=function(){}.bind();return typeof t!="function"||t.hasOwnProperty("prototype")})});var br=a((ES,Go)=>{"use strict";var Tf=De(),Qo=Function.prototype,Wo=Qo.apply,Ko=Qo.call;Go.exports=typeof Reflect=="object"&&Reflect.apply||(Tf?Ko.bind(Wo):function(){return Ko.apply(Wo,arguments)})});var x=a((TS,Jo)=>{"use strict";var zo=De(),Yo=Function.prototype,yr=Yo.call,wf=zo&&Yo.bind.bind(yr,yr);Jo.exports=zo?wf:function(t){return function(){return yr.apply(t,arguments)}}});var Me=a((wS,Zo)=>{"use strict";var Xo=x(),xf=Xo({}.toString),Af=Xo("".slice);Zo.exports=function(t){return Af(xf(t),8,-1)}});var Ir=a((xS,en)=>{"use strict";var Of=Me(),qf=x();en.exports=function(t){if(Of(t)==="Function")return qf(t)}});var _=a((AS,tn)=>{"use strict";var Sr=typeof document=="object"&&document.all;tn.exports=typeof Sr>"u"&&Sr!==void 0?function(t){return typeof t=="function"||t===Sr}:function(t){return typeof t=="function"}});var O=a((OS,rn)=>{"use strict";var Cf=w();rn.exports=!Cf(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7})});var N=a((qS,on)=>{"use strict";var Rf=De(),dt=Function.prototype.call;on.exports=Rf?dt.bind(dt):function(){return dt.apply(dt,arguments)}});var _r=a(sn=>{"use strict";var nn={}.propertyIsEnumerable,an=Object.getOwnPropertyDescriptor,Lf=an&&!nn.call({1:2},1);sn.f=Lf?function(e){var r=an(this,e);return!!r&&r.enumerable}:nn});var Ve=a((RS,un)=>{"use strict";un.exports=function(t,e){return{enumerable:!(t&1),configurable:!(t&2),writable:!(t&4),value:e}}});var ln=a((LS,cn)=>{"use strict";var kf=x(),Nf=w(),$f=Me(),Pr=Object,Df=kf("".split);cn.exports=Nf(function(){return!Pr("z").propertyIsEnumerable(0)})?function(t){return $f(t)==="String"?Df(t,""):Pr(t)}:Pr});var Fe=a((kS,dn)=>{"use strict";dn.exports=function(t){return t==null}});var pe=a((NS,fn)=>{"use strict";var Mf=Fe(),Vf=TypeError;fn.exports=function(t){if(Mf(t))throw new Vf("Can't call method on "+t);return t}});var re=a(($S,pn)=>{"use strict";var Ff=ln(),Bf=pe();pn.exports=function(t){return Ff(Bf(t))}});var $=a((DS,hn)=>{"use strict";var Uf=_();hn.exports=function(t){return typeof t=="object"?t!==null:Uf(t)}});var ie=a((MS,vn)=>{"use strict";vn.exports={}});var G=a((VS,mn)=>{"use strict";var Er=ie(),Tr=S(),jf=_(),gn=function(t){return jf(t)?t:void 0};mn.exports=function(t,e){return arguments.length<2?gn(Er[t])||gn(Tr[t]):Er[t]&&Er[t][e]||Tr[t]&&Tr[t][e]}});var ft=a((FS,bn)=>{"use strict";var Hf=x();bn.exports=Hf({}.isPrototypeOf)});var oe=a((BS,Sn)=>{"use strict";var Wf=S(),yn=Wf.navigator,In=yn&&yn.userAgent;Sn.exports=In?String(In):""});var xr=a((US,xn)=>{"use strict";var wn=S(),wr=oe(),_n=wn.process,Pn=wn.Deno,En=_n&&_n.versions||Pn&&Pn.version,Tn=En&&En.v8,D,pt;Tn&&(D=Tn.split("."),pt=D[0]>0&&D[0]<4?1:+(D[0]+D[1]));!pt&&wr&&(D=wr.match(/Edge\/(\d+)/),(!D||D[1]>=74)&&(D=wr.match(/Chrome\/(\d+)/),D&&(pt=+D[1])));xn.exports=pt});var Ar=a((jS,On)=>{"use strict";var An=xr(),Kf=w(),Qf=S(),Gf=Qf.String;On.exports=!!Object.getOwnPropertySymbols&&!Kf(function(){var t=Symbol("symbol detection");return!Gf(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&An&&An<41})});var Or=a((HS,qn)=>{"use strict";var zf=Ar();qn.exports=zf&&!Symbol.sham&&typeof Symbol.iterator=="symbol"});var qr=a((WS,Cn)=>{"use strict";var Yf=G(),Jf=_(),Xf=ft(),Zf=Or(),ep=Object;Cn.exports=Zf?function(t){return typeof t=="symbol"}:function(t){var e=Yf("Symbol");return Jf(e)&&Xf(e.prototype,ep(t))}});var Be=a((KS,Rn)=>{"use strict";var tp=String;Rn.exports=function(t){try{return tp(t)}catch{return"Object"}}});var z=a((QS,Ln)=>{"use strict";var rp=_(),ip=Be(),op=TypeError;Ln.exports=function(t){if(rp(t))return t;throw new op(ip(t)+" is not a function")}});var ht=a((GS,kn)=>{"use strict";var np=z(),ap=Fe();kn.exports=function(t,e){var r=t[e];return ap(r)?void 0:np(r)}});var $n=a((zS,Nn)=>{"use strict";var Cr=N(),Rr=_(),Lr=$(),sp=TypeError;Nn.exports=function(t,e){var r,i;if(e==="string"&&Rr(r=t.toString)&&!Lr(i=Cr(r,t))||Rr(r=t.valueOf)&&!Lr(i=Cr(r,t))||e!=="string"&&Rr(r=t.toString)&&!Lr(i=Cr(r,t)))return i;throw new sp("Can't convert object to primitive value")}});var j=a((YS,Dn)=>{"use strict";Dn.exports=!0});var Fn=a((JS,Vn)=>{"use strict";var Mn=S(),up=Object.defineProperty;Vn.exports=function(t,e){try{up(Mn,t,{value:e,configurable:!0,writable:!0})}catch{Mn[t]=e}return e}});var Ue=a((XS,jn)=>{"use strict";var cp=j(),lp=S(),dp=Fn(),Bn="__core-js_shared__",Un=jn.exports=lp[Bn]||dp(Bn,{});(Un.versions||(Un.versions=[])).push({version:"3.43.0",mode:cp?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.43.0/LICENSE",source:"https://github.com/zloirock/core-js"})});var kr=a((ZS,Wn)=>{"use strict";var Hn=Ue();Wn.exports=function(t,e){return Hn[t]||(Hn[t]=e||{})}});var Nr=a((e_,Kn)=>{"use strict";var fp=pe(),pp=Object;Kn.exports=function(t){return pp(fp(t))}});var H=a((t_,Qn)=>{"use strict";var hp=x(),vp=Nr(),gp=hp({}.hasOwnProperty);Qn.exports=Object.hasOwn||function(e,r){return gp(vp(e),r)}});var $r=a((r_,Gn)=>{"use strict";var mp=x(),bp=0,yp=Math.random(),Ip=mp(1.1.toString);Gn.exports=function(t){return"Symbol("+(t===void 0?"":t)+")_"+Ip(++bp+yp,36)}});var q=a((i_,Yn)=>{"use strict";var Sp=S(),_p=kr(),zn=H(),Pp=$r(),Ep=Ar(),Tp=Or(),he=Sp.Symbol,Dr=_p("wks"),wp=Tp?he.for||he:he&&he.withoutSetter||Pp;Yn.exports=function(t){return zn(Dr,t)||(Dr[t]=Ep&&zn(he,t)?he[t]:wp("Symbol."+t)),Dr[t]}});var ea=a((o_,Zn)=>{"use strict";var xp=N(),Jn=$(),Xn=qr(),Ap=ht(),Op=$n(),qp=q(),Cp=TypeError,Rp=qp("toPrimitive");Zn.exports=function(t,e){if(!Jn(t)||Xn(t))return t;var r=Ap(t,Rp),i;if(r){if(e===void 0&&(e="default"),i=xp(r,t,e),!Jn(i)||Xn(i))return i;throw new Cp("Can't convert object to primitive value")}return e===void 0&&(e="number"),Op(t,e)}});var Mr=a((n_,ta)=>{"use strict";var Lp=ea(),kp=qr();ta.exports=function(t){var e=Lp(t,"string");return kp(e)?e:e+""}});var vt=a((a_,ia)=>{"use strict";var Np=S(),ra=$(),Vr=Np.document,$p=ra(Vr)&&ra(Vr.createElement);ia.exports=function(t){return $p?Vr.createElement(t):{}}});var Fr=a((s_,oa)=>{"use strict";var Dp=O(),Mp=w(),Vp=vt();oa.exports=!Dp&&!Mp(function(){return Object.defineProperty(Vp("div"),"a",{get:function(){return 7}}).a!==7})});var sa=a(aa=>{"use strict";var Fp=O(),Bp=N(),Up=_r(),jp=Ve(),Hp=re(),Wp=Mr(),Kp=H(),Qp=Fr(),na=Object.getOwnPropertyDescriptor;aa.f=Fp?na:function(e,r){if(e=Hp(e),r=Wp(r),Qp)try{return na(e,r)}catch{}if(Kp(e,r))return jp(!Bp(Up.f,e,r),e[r])}});var Br=a((c_,ua)=>{"use strict";var Gp=w(),zp=_(),Yp=/#|\.prototype\./,je=function(t,e){var r=Xp[Jp(t)];return r===eh?!0:r===Zp?!1:zp(e)?Gp(e):!!e},Jp=je.normalize=function(t){return String(t).replace(Yp,".").toLowerCase()},Xp=je.data={},Zp=je.NATIVE="N",eh=je.POLYFILL="P";ua.exports=je});var He=a((l_,la)=>{"use strict";var ca=Ir(),th=z(),rh=De(),ih=ca(ca.bind);la.exports=function(t,e){return th(t),e===void 0?t:rh?ih(t,e):function(){return t.apply(e,arguments)}}});var Ur=a((d_,da)=>{"use strict";var oh=O(),nh=w();da.exports=oh&&nh(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42})});var Y=a((f_,fa)=>{"use strict";var ah=$(),sh=String,uh=TypeError;fa.exports=function(t){if(ah(t))return t;throw new uh(sh(t)+" is not an object")}});var ne=a(ha=>{"use strict";var ch=O(),lh=Fr(),dh=Ur(),gt=Y(),pa=Mr(),fh=TypeError,jr=Object.defineProperty,ph=Object.getOwnPropertyDescriptor,Hr="enumerable",Wr="configurable",Kr="writable";ha.f=ch?dh?function(e,r,i){if(gt(e),r=pa(r),gt(i),typeof e=="function"&&r==="prototype"&&"value"in i&&Kr in i&&!i[Kr]){var o=ph(e,r);o&&o[Kr]&&(e[r]=i.value,i={configurable:Wr in i?i[Wr]:o[Wr],enumerable:Hr in i?i[Hr]:o[Hr],writable:!1})}return jr(e,r,i)}:jr:function(e,r,i){if(gt(e),r=pa(r),gt(i),lh)try{return jr(e,r,i)}catch{}if("get"in i||"set"in i)throw new fh("Accessors not supported");return"value"in i&&(e[r]=i.value),e}});var ve=a((h_,va)=>{"use strict";var hh=O(),vh=ne(),gh=Ve();va.exports=hh?function(t,e,r){return vh.f(t,e,gh(1,r))}:function(t,e,r){return t[e]=r,t}});var A=a((v_,ma)=>{"use strict";var We=S(),mh=br(),bh=Ir(),yh=_(),Ih=sa().f,Sh=Br(),ge=ie(),_h=He(),me=ve(),ga=H();Ue();var Ph=function(t){var e=function(r,i,o){if(this instanceof e){switch(arguments.length){case 0:return new t;case 1:return new t(r);case 2:return new t(r,i)}return new t(r,i,o)}return mh(t,this,arguments)};return e.prototype=t.prototype,e};ma.exports=function(t,e){var r=t.target,i=t.global,o=t.stat,n=t.proto,c=i?We:o?We[r]:We[r]&&We[r].prototype,l=i?ge:ge[r]||me(ge,r,{})[r],p=l.prototype,s,d,f,u,h,v,m,g,b;for(u in e)s=Sh(i?u:r+(o?".":"#")+u,t.forced),d=!s&&c&&ga(c,u),v=l[u],d&&(t.dontCallGetSet?(b=Ih(c,u),m=b&&b.value):m=c[u]),h=d&&m?m:e[u],!(!s&&!n&&typeof v==typeof h)&&(t.bind&&d?g=_h(h,We):t.wrap&&d?g=Ph(h):n&&yh(h)?g=bh(h):g=h,(t.sham||h&&h.sham||v&&v.sham)&&me(g,"sham",!0),me(l,u,g),n&&(f=r+"Prototype",ga(ge,f)||me(ge,f,{}),me(ge[f],u,h),t.real&&p&&(s||!p[u])&&me(p,u,h)))}});var ya=a((g_,ba)=>{"use strict";var Eh=Math.ceil,Th=Math.floor;ba.exports=Math.trunc||function(e){var r=+e;return(r>0?Th:Eh)(r)}});var mt=a((m_,Ia)=>{"use strict";var wh=ya();Ia.exports=function(t){var e=+t;return e!==e||e===0?0:wh(e)}});var _a=a((b_,Sa)=>{"use strict";var xh=mt(),Ah=Math.max,Oh=Math.min;Sa.exports=function(t,e){var r=xh(t);return r<0?Ah(r+e,0):Oh(r,e)}});var Qr=a((y_,Pa)=>{"use strict";var qh=mt(),Ch=Math.min;Pa.exports=function(t){var e=qh(t);return e>0?Ch(e,9007199254740991):0}});var Gr=a((I_,Ea)=>{"use strict";var Rh=Qr();Ea.exports=function(t){return Rh(t.length)}});var zr=a((S_,wa)=>{"use strict";var Lh=re(),kh=_a(),Nh=Gr(),Ta=function(t){return function(e,r,i){var o=Lh(e),n=Nh(o);if(n===0)return!t&&-1;var c=kh(i,n),l;if(t&&r!==r){for(;n>c;)if(l=o[c++],l!==l)return!0}else for(;n>c;c++)if((t||c in o)&&o[c]===r)return t||c||0;return!t&&-1}};wa.exports={includes:Ta(!0),indexOf:Ta(!1)}});var Yr=a((__,xa)=>{"use strict";xa.exports=function(){}});var Aa=a(()=>{"use strict";var $h=A(),Dh=zr().includes,Mh=w(),Vh=Yr(),Fh=Mh(function(){return!Array(1).includes()});$h({target:"Array",proto:!0,forced:Fh},{includes:function(e){return Dh(this,e,arguments.length>1?arguments[1]:void 0)}});Vh("includes")});var bt=a((T_,Oa)=>{"use strict";var Bh=G();Oa.exports=Bh});var Ca=a((w_,qa)=>{"use strict";Aa();var Uh=bt();qa.exports=Uh("Array","includes")});var La=a((x_,Ra)=>{"use strict";var jh=Ca();Ra.exports=jh});var ae=a((A_,ka)=>{"use strict";var Hh=La();ka.exports=Hh});var yt=a((F_,Ha)=>{"use strict";var Gh=q(),zh=Gh("toStringTag"),ja={};ja[zh]="z";Ha.exports=String(ja)==="[object z]"});var Qe=a((B_,Wa)=>{"use strict";var Yh=yt(),Jh=_(),It=Me(),Xh=q(),Zh=Xh("toStringTag"),ev=Object,tv=It(function(){return arguments}())==="Arguments",rv=function(t,e){try{return t[e]}catch{}};Wa.exports=Yh?It:function(t){var e,r,i;return t===void 0?"Undefined":t===null?"Null":typeof(r=rv(e=ev(t),Zh))=="string"?r:tv?It(e):(i=It(e))==="Object"&&Jh(e.callee)?"Arguments":i}});var ii=a((U_,Ka)=>{"use strict";var iv=Qe(),ov=String;Ka.exports=function(t){if(iv(t)==="Symbol")throw new TypeError("Cannot convert a Symbol value to a string");return ov(t)}});var Ga=a((j_,Qa)=>{"use strict";var nv=mt(),av=ii(),sv=pe(),uv=RangeError;Qa.exports=function(e){var r=av(sv(this)),i="",o=nv(e);if(o<0||o===1/0)throw new uv("Wrong number of repetitions");for(;o>0;(o>>>=1)&&(r+=r))o&1&&(i+=r);return i}});var Za=a((H_,Xa)=>{"use strict";var Ja=x(),cv=Qr(),za=ii(),lv=Ga(),dv=pe(),fv=Ja(lv),pv=Ja("".slice),hv=Math.ceil,Ya=function(t){return function(e,r,i){var o=za(dv(e)),n=cv(r),c=o.length,l=i===void 0?" ":za(i),p,s;return n<=c||l===""?o:(p=n-c,s=fv(l,hv(p/l.length)),s.length>p&&(s=pv(s,0,p)),t?o+s:s+o)}};Xa.exports={start:Ya(!1),end:Ya(!0)}});var ts=a((W_,es)=>{"use strict";var vv=oe();es.exports=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(vv)});var rs=a(()=>{"use strict";var gv=A(),mv=Za().start,bv=ts();gv({target:"String",proto:!0,forced:bv},{padStart:function(e){return mv(this,e,arguments.length>1?arguments[1]:void 0)}})});var os=a((G_,is)=>{"use strict";rs();var yv=bt();is.exports=yv("String","padStart")});var as=a((z_,ns)=>{"use strict";var Iv=os();ns.exports=Iv});var St=a((Y_,ss)=>{"use strict";var Sv=as();ss.exports=Sv});var cs=a(()=>{"use strict"});var oi=a((eP,ls)=>{"use strict";var Ge=S(),Pv=oe(),Ev=Me(),_t=function(t){return Pv.slice(0,t.length)===t};ls.exports=function(){return _t("Bun/")?"BUN":_t("Cloudflare-Workers")?"CLOUDFLARE":_t("Deno/")?"DENO":_t("Node.js/")?"NODE":Ge.Bun&&typeof Bun.version=="string"?"BUN":Ge.Deno&&typeof Deno.version=="object"?"DENO":Ev(Ge.process)==="process"?"NODE":Ge.window&&Ge.document?"BROWSER":"REST"}()});var Pt=a((tP,ds)=>{"use strict";var Tv=oi();ds.exports=Tv==="NODE"});var be=a((rP,fs)=>{"use strict";var wv=ve();fs.exports=function(t,e,r,i){return i&&i.enumerable?t[e]=r:wv(t,e,r),t}});var hs=a((iP,ps)=>{"use strict";var xv=x(),Av=z();ps.exports=function(t,e,r){try{return xv(Av(Object.getOwnPropertyDescriptor(t,e)[r]))}catch{}}});var gs=a((oP,vs)=>{"use strict";var Ov=$();vs.exports=function(t){return Ov(t)||t===null}});var bs=a((nP,ms)=>{"use strict";var qv=gs(),Cv=String,Rv=TypeError;ms.exports=function(t){if(qv(t))return t;throw new Rv("Can't set "+Cv(t)+" as a prototype")}});var ni=a((aP,ys)=>{"use strict";var Lv=hs(),kv=$(),Nv=pe(),$v=bs();ys.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t=!1,e={},r;try{r=Lv(Object.prototype,"__proto__","set"),r(e,[]),t=e instanceof Array}catch{}return function(o,n){return Nv(o),$v(n),kv(o)&&(t?r(o,n):o.__proto__=n),o}}():void 0)});var Ss=a((sP,Is)=>{"use strict";var Dv=yt(),Mv=Qe();Is.exports=Dv?{}.toString:function(){return"[object "+Mv(this)+"]"}});var ze=a((uP,Ps)=>{"use strict";var Vv=yt(),Fv=ne().f,Bv=ve(),Uv=H(),jv=Ss(),Hv=q(),_s=Hv("toStringTag");Ps.exports=function(t,e,r,i){var o=r?t:t&&t.prototype;o&&(Uv(o,_s)||Fv(o,_s,{configurable:!0,value:e}),i&&!Vv&&Bv(o,"toString",jv))}});var Ts=a((cP,Es)=>{"use strict";var Wv=ne();Es.exports=function(t,e,r){return Wv.f(t,e,r)}});var As=a((lP,xs)=>{"use strict";var Kv=G(),Qv=Ts(),Gv=q(),zv=O(),ws=Gv("species");xs.exports=function(t){var e=Kv(t);zv&&e&&!e[ws]&&Qv(e,ws,{configurable:!0,get:function(){return this}})}});var qs=a((dP,Os)=>{"use strict";var Yv=ft(),Jv=TypeError;Os.exports=function(t,e){if(Yv(e,t))return t;throw new Jv("Incorrect invocation")}});var si=a((fP,Cs)=>{"use strict";var Xv=x(),Zv=_(),ai=Ue(),eg=Xv(Function.toString);Zv(ai.inspectSource)||(ai.inspectSource=function(t){return eg(t)});Cs.exports=ai.inspectSource});var Ds=a((pP,$s)=>{"use strict";var tg=x(),rg=w(),Rs=_(),ig=Qe(),og=G(),ng=si(),Ls=function(){},ks=og("Reflect","construct"),ui=/^\s*(?:class|function)\b/,ag=tg(ui.exec),sg=!ui.test(Ls),Ye=function(e){if(!Rs(e))return!1;try{return ks(Ls,[],e),!0}catch{return!1}},Ns=function(e){if(!Rs(e))return!1;switch(ig(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return sg||!!ag(ui,ng(e))}catch{return!0}};Ns.sham=!0;$s.exports=!ks||rg(function(){var t;return Ye(Ye.call)||!Ye(Object)||!Ye(function(){t=!0})||t})?Ns:Ye});var Vs=a((hP,Ms)=>{"use strict";var ug=Ds(),cg=Be(),lg=TypeError;Ms.exports=function(t){if(ug(t))return t;throw new lg(cg(t)+" is not a constructor")}});var ci=a((vP,Bs)=>{"use strict";var Fs=Y(),dg=Vs(),fg=Fe(),pg=q(),hg=pg("species");Bs.exports=function(t,e){var r=Fs(t).constructor,i;return r===void 0||fg(i=Fs(r)[hg])?e:dg(i)}});var li=a((gP,Us)=>{"use strict";var vg=G();Us.exports=vg("document","documentElement")});var Hs=a((mP,js)=>{"use strict";var gg=x();js.exports=gg([].slice)});var Ks=a((bP,Ws)=>{"use strict";var mg=TypeError;Ws.exports=function(t,e){if(t<e)throw new mg("Not enough arguments");return t}});var di=a((yP,Qs)=>{"use strict";var bg=oe();Qs.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(bg)});var Ii=a((IP,ru)=>{"use strict";var C=S(),yg=br(),Ig=He(),Gs=_(),Sg=H(),tu=w(),zs=li(),_g=Hs(),Ys=vt(),Pg=Ks(),Eg=di(),Tg=Pt(),mi=C.setImmediate,bi=C.clearImmediate,wg=C.process,fi=C.Dispatch,xg=C.Function,Js=C.MessageChannel,Ag=C.String,pi=0,Je={},Xs="onreadystatechange",Xe,se,hi,vi;tu(function(){Xe=C.location});var yi=function(t){if(Sg(Je,t)){var e=Je[t];delete Je[t],e()}},gi=function(t){return function(){yi(t)}},Zs=function(t){yi(t.data)},eu=function(t){C.postMessage(Ag(t),Xe.protocol+"//"+Xe.host)};(!mi||!bi)&&(mi=function(e){Pg(arguments.length,1);var r=Gs(e)?e:xg(e),i=_g(arguments,1);return Je[++pi]=function(){yg(r,void 0,i)},se(pi),pi},bi=function(e){delete Je[e]},Tg?se=function(t){wg.nextTick(gi(t))}:fi&&fi.now?se=function(t){fi.now(gi(t))}:Js&&!Eg?(hi=new Js,vi=hi.port2,hi.port1.onmessage=Zs,se=Ig(vi.postMessage,vi)):C.addEventListener&&Gs(C.postMessage)&&!C.importScripts&&Xe&&Xe.protocol!=="file:"&&!tu(eu)?(se=eu,C.addEventListener("message",Zs,!1)):Xs in Ys("script")?se=function(t){zs.appendChild(Ys("script"))[Xs]=function(){zs.removeChild(this),yi(t)}}:se=function(t){setTimeout(gi(t),0)});ru.exports={set:mi,clear:bi}});var nu=a((SP,ou)=>{"use strict";var iu=S(),Og=O(),qg=Object.getOwnPropertyDescriptor;ou.exports=function(t){if(!Og)return iu[t];var e=qg(iu,t);return e&&e.value}});var Si=a((_P,su)=>{"use strict";var au=function(){this.head=null,this.tail=null};au.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t){var e=this.head=t.next;return e===null&&(this.tail=null),t.item}}};su.exports=au});var cu=a((PP,uu)=>{"use strict";var Cg=oe();uu.exports=/ipad|iphone|ipod/i.test(Cg)&&typeof Pebble<"u"});var du=a((EP,lu)=>{"use strict";var Rg=oe();lu.exports=/web0s(?!.*chrome)/i.test(Rg)});var bu=a((TP,mu)=>{"use strict";var Ie=S(),Lg=nu(),fu=He(),_i=Ii().set,kg=Si(),Ng=di(),$g=cu(),Dg=du(),Pi=Pt(),pu=Ie.MutationObserver||Ie.WebKitMutationObserver,hu=Ie.document,vu=Ie.process,Et=Ie.Promise,wi=Lg("queueMicrotask"),ye,Ei,Ti,Tt,gu;wi||(Ze=new kg,et=function(){var t,e;for(Pi&&(t=vu.domain)&&t.exit();e=Ze.get();)try{e()}catch(r){throw Ze.head&&ye(),r}t&&t.enter()},!Ng&&!Pi&&!Dg&&pu&&hu?(Ei=!0,Ti=hu.createTextNode(""),new pu(et).observe(Ti,{characterData:!0}),ye=function(){Ti.data=Ei=!Ei}):!$g&&Et&&Et.resolve?(Tt=Et.resolve(void 0),Tt.constructor=Et,gu=fu(Tt.then,Tt),ye=function(){gu(et)}):Pi?ye=function(){vu.nextTick(et)}:(_i=fu(_i,Ie),ye=function(){_i(et)}),wi=function(t){Ze.head||ye(),Ze.add(t)});var Ze,et;mu.exports=wi});var Iu=a((wP,yu)=>{"use strict";yu.exports=function(t,e){try{arguments.length===1?console.error(t):console.error(t,e)}catch{}}});var wt=a((xP,Su)=>{"use strict";Su.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}});var Eu=a((AP,Pu)=>{"use strict";var Mg=S(),Vg=_(),_u=Mg.WeakMap;Pu.exports=Vg(_u)&&/native code/.test(String(_u))});var xt=a((OP,wu)=>{"use strict";var Fg=kr(),Bg=$r(),Tu=Fg("keys");wu.exports=function(t){return Tu[t]||(Tu[t]=Bg(t))}});var At=a((qP,xu)=>{"use strict";xu.exports={}});var qi=a((CP,qu)=>{"use strict";var Ug=Eu(),Ou=S(),jg=$(),Hg=ve(),xi=H(),Ai=Ue(),Wg=xt(),Kg=At(),Au="Object already initialized",Oi=Ou.TypeError,Qg=Ou.WeakMap,Ot,tt,qt,Gg=function(t){return qt(t)?tt(t):Ot(t,{})},zg=function(t){return function(e){var r;if(!jg(e)||(r=tt(e)).type!==t)throw new Oi("Incompatible receiver, "+t+" required");return r}};Ug||Ai.state?(M=Ai.state||(Ai.state=new Qg),M.get=M.get,M.has=M.has,M.set=M.set,Ot=function(t,e){if(M.has(t))throw new Oi(Au);return e.facade=t,M.set(t,e),e},tt=function(t){return M.get(t)||{}},qt=function(t){return M.has(t)}):(ue=Wg("state"),Kg[ue]=!0,Ot=function(t,e){if(xi(t,ue))throw new Oi(Au);return e.facade=t,Hg(t,ue,e),e},tt=function(t){return xi(t,ue)?t[ue]:{}},qt=function(t){return xi(t,ue)});var M,ue;qu.exports={set:Ot,get:tt,has:qt,enforce:Gg,getterFor:zg}});var ce=a((RP,Cu)=>{"use strict";var Yg=S();Cu.exports=Yg.Promise});var Se=a((LP,Nu)=>{"use strict";var Jg=S(),rt=ce(),Xg=_(),Zg=Br(),em=si(),tm=q(),Ru=oi(),rm=j(),Ci=xr(),Lu=rt&&rt.prototype,im=tm("species"),Ri=!1,ku=Xg(Jg.PromiseRejectionEvent),om=Zg("Promise",function(){var t=em(rt),e=t!==String(rt);if(!e&&Ci===66||rm&&!(Lu.catch&&Lu.finally))return!0;if(!Ci||Ci<51||!/native code/.test(t)){var r=new rt(function(n){n(1)}),i=function(n){n(function(){},function(){})},o=r.constructor={};if(o[im]=i,Ri=r.then(function(){})instanceof i,!Ri)return!0}return!e&&(Ru==="BROWSER"||Ru==="DENO")&&!ku});Nu.exports={CONSTRUCTOR:om,REJECTION_EVENT:ku,SUBCLASSING:Ri}});var _e=a((kP,Du)=>{"use strict";var $u=z(),nm=TypeError,am=function(t){var e,r;this.promise=new t(function(i,o){if(e!==void 0||r!==void 0)throw new nm("Bad Promise constructor");e=i,r=o}),this.resolve=$u(e),this.reject=$u(r)};Du.exports.f=function(t){return new am(t)}});var ic=a(()=>{"use strict";var sm=A(),um=j(),kt=Pt(),ee=S(),cm=ie(),we=N(),Mu=be(),Vu=ni(),lm=ze(),dm=As(),fm=z(),Lt=_(),pm=$(),hm=qs(),vm=ci(),Hu=Ii().set,Di=bu(),gm=Iu(),mm=wt(),bm=Si(),Wu=qi(),Nt=ce(),Mi=Se(),Ku=_e(),$t="Promise",Qu=Mi.CONSTRUCTOR,ym=Mi.REJECTION_EVENT,Im=Mi.SUBCLASSING,Li=Wu.getterFor($t),Sm=Wu.set,Pe=Nt&&Nt.prototype,le=Nt,Ct=Pe,Gu=ee.TypeError,ki=ee.document,Vi=ee.process,Ni=Ku.f,_m=Ni,Pm=!!(ki&&ki.createEvent&&ee.dispatchEvent),zu="unhandledrejection",Em="rejectionhandled",Fu=0,Yu=1,Tm=2,Fi=1,Ju=2,Rt,Bu,Xu,Uu,Zu=function(t){var e;return pm(t)&&Lt(e=t.then)?e:!1},ec=function(t,e){var r=e.value,i=e.state===Yu,o=i?t.ok:t.fail,n=t.resolve,c=t.reject,l=t.domain,p,s,d;try{o?(i||(e.rejection===Ju&&xm(e),e.rejection=Fi),o===!0?p=r:(l&&l.enter(),p=o(r),l&&(l.exit(),d=!0)),p===t.promise?c(new Gu("Promise-chain cycle")):(s=Zu(p))?we(s,p,n,c):n(p)):c(r)}catch(f){l&&!d&&l.exit(),c(f)}},tc=function(t,e){t.notified||(t.notified=!0,Di(function(){for(var r=t.reactions,i;i=r.get();)ec(i,t);t.notified=!1,e&&!t.rejection&&wm(t)}))},rc=function(t,e,r){var i,o;Pm?(i=ki.createEvent("Event"),i.promise=e,i.reason=r,i.initEvent(t,!1,!0),ee.dispatchEvent(i)):i={promise:e,reason:r},!ym&&(o=ee["on"+t])?o(i):t===zu&&gm("Unhandled promise rejection",r)},wm=function(t){we(Hu,ee,function(){var e=t.facade,r=t.value,i=ju(t),o;if(i&&(o=mm(function(){kt?Vi.emit("unhandledRejection",r,e):rc(zu,e,r)}),t.rejection=kt||ju(t)?Ju:Fi,o.error))throw o.value})},ju=function(t){return t.rejection!==Fi&&!t.parent},xm=function(t){we(Hu,ee,function(){var e=t.facade;kt?Vi.emit("rejectionHandled",e):rc(Em,e,t.value)})},Ee=function(t,e,r){return function(i){t(e,i,r)}},Te=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=Tm,tc(t,!0))},$i=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new Gu("Promise can't be resolved itself");var i=Zu(e);i?Di(function(){var o={done:!1};try{we(i,e,Ee($i,o,t),Ee(Te,o,t))}catch(n){Te(o,n,t)}}):(t.value=e,t.state=Yu,tc(t,!1))}catch(o){Te({done:!1},o,t)}}};if(Qu&&(le=function(e){hm(this,Ct),fm(e),we(Rt,this);var r=Li(this);try{e(Ee($i,r),Ee(Te,r))}catch(i){Te(r,i)}},Ct=le.prototype,Rt=function(e){Sm(this,{type:$t,done:!1,notified:!1,parent:!1,reactions:new bm,rejection:!1,state:Fu,value:null})},Rt.prototype=Mu(Ct,"then",function(e,r){var i=Li(this),o=Ni(vm(this,le));return i.parent=!0,o.ok=Lt(e)?e:!0,o.fail=Lt(r)&&r,o.domain=kt?Vi.domain:void 0,i.state===Fu?i.reactions.add(o):Di(function(){ec(o,i)}),o.promise}),Bu=function(){var t=new Rt,e=Li(t);this.promise=t,this.resolve=Ee($i,e),this.reject=Ee(Te,e)},Ku.f=Ni=function(t){return t===le||t===Xu?new Bu(t):_m(t)},!um&&Lt(Nt)&&Pe!==Object.prototype)){Uu=Pe.then,Im||Mu(Pe,"then",function(e,r){var i=this;return new le(function(o,n){we(Uu,i,o,n)}).then(e,r)},{unsafe:!0});try{delete Pe.constructor}catch{}Vu&&Vu(Pe,Ct)}sm({global:!0,constructor:!0,wrap:!0,forced:Qu},{Promise:le});Xu=cm.Promise;lm(le,$t,!1,!0);dm($t)});var de=a((DP,oc)=>{"use strict";oc.exports={}});var ac=a((MP,nc)=>{"use strict";var Am=q(),Om=de(),qm=Am("iterator"),Cm=Array.prototype;nc.exports=function(t){return t!==void 0&&(Om.Array===t||Cm[qm]===t)}});var Bi=a((VP,uc)=>{"use strict";var Rm=Qe(),sc=ht(),Lm=Fe(),km=de(),Nm=q(),$m=Nm("iterator");uc.exports=function(t){if(!Lm(t))return sc(t,$m)||sc(t,"@@iterator")||km[Rm(t)]}});var lc=a((FP,cc)=>{"use strict";var Dm=N(),Mm=z(),Vm=Y(),Fm=Be(),Bm=Bi(),Um=TypeError;cc.exports=function(t,e){var r=arguments.length<2?Bm(t):e;if(Mm(r))return Vm(Dm(r,t));throw new Um(Fm(t)+" is not iterable")}});var pc=a((BP,fc)=>{"use strict";var jm=N(),dc=Y(),Hm=ht();fc.exports=function(t,e,r){var i,o;dc(t);try{if(i=Hm(t,"return"),!i){if(e==="throw")throw r;return r}i=jm(i,t)}catch(n){o=!0,i=n}if(e==="throw")throw r;if(o)throw i;return dc(i),r}});var Mt=a((UP,mc)=>{"use strict";var Wm=He(),Km=N(),Qm=Y(),Gm=Be(),zm=ac(),Ym=Gr(),hc=ft(),Jm=lc(),Xm=Bi(),vc=pc(),Zm=TypeError,Dt=function(t,e){this.stopped=t,this.result=e},gc=Dt.prototype;mc.exports=function(t,e,r){var i=r&&r.that,o=!!(r&&r.AS_ENTRIES),n=!!(r&&r.IS_RECORD),c=!!(r&&r.IS_ITERATOR),l=!!(r&&r.INTERRUPTED),p=Wm(e,i),s,d,f,u,h,v,m,g=function(y){return s&&vc(s,"normal"),new Dt(!0,y)},b=function(y){return o?(Qm(y),l?p(y[0],y[1],g):p(y[0],y[1])):l?p(y,g):p(y)};if(n)s=t.iterator;else if(c)s=t;else{if(d=Xm(t),!d)throw new Zm(Gm(t)+" is not iterable");if(zm(d)){for(f=0,u=Ym(t);u>f;f++)if(h=b(t[f]),h&&hc(gc,h))return h;return new Dt(!1)}s=Jm(t,d)}for(v=n?t.next:s.next;!(m=Km(v,s)).done;){try{h=b(m.value)}catch(y){vc(s,"throw",y)}if(typeof h=="object"&&h&&hc(gc,h))return h}return new Dt(!1)}});var _c=a((jP,Sc)=>{"use strict";var eb=q(),yc=eb("iterator"),Ic=!1;try{bc=0,Ui={next:function(){return{done:!!bc++}},return:function(){Ic=!0}},Ui[yc]=function(){return this},Array.from(Ui,function(){throw 2})}catch{}var bc,Ui;Sc.exports=function(t,e){try{if(!e&&!Ic)return!1}catch{return!1}var r=!1;try{var i={};i[yc]=function(){return{next:function(){return{done:r=!0}}}},t(i)}catch{}return r}});var ji=a((HP,Pc)=>{"use strict";var tb=ce(),rb=_c(),ib=Se().CONSTRUCTOR;Pc.exports=ib||!rb(function(t){tb.all(t).then(void 0,function(){})})});var Ec=a(()=>{"use strict";var ob=A(),nb=N(),ab=z(),sb=_e(),ub=wt(),cb=Mt(),lb=ji();ob({target:"Promise",stat:!0,forced:lb},{all:function(e){var r=this,i=sb.f(r),o=i.resolve,n=i.reject,c=ub(function(){var l=ab(r.resolve),p=[],s=0,d=1;cb(e,function(f){var u=s++,h=!1;d++,nb(l,r,f).then(function(v){h||(h=!0,p[u]=v,--d||o(p))},n)}),--d||o(p)});return c.error&&n(c.value),i.promise}})});var wc=a(()=>{"use strict";var db=A(),fb=j(),pb=Se().CONSTRUCTOR,Wi=ce(),hb=G(),vb=_(),gb=be(),Tc=Wi&&Wi.prototype;db({target:"Promise",proto:!0,forced:pb,real:!0},{catch:function(t){return this.then(void 0,t)}});!fb&&vb(Wi)&&(Hi=hb("Promise").prototype.catch,Tc.catch!==Hi&&gb(Tc,"catch",Hi,{unsafe:!0}));var Hi});var xc=a(()=>{"use strict";var mb=A(),bb=N(),yb=z(),Ib=_e(),Sb=wt(),_b=Mt(),Pb=ji();mb({target:"Promise",stat:!0,forced:Pb},{race:function(e){var r=this,i=Ib.f(r),o=i.reject,n=Sb(function(){var c=yb(r.resolve);_b(e,function(l){bb(c,r,l).then(i.resolve,o)})});return n.error&&o(n.value),i.promise}})});var Ac=a(()=>{"use strict";var Eb=A(),Tb=_e(),wb=Se().CONSTRUCTOR;Eb({target:"Promise",stat:!0,forced:wb},{reject:function(e){var r=Tb.f(this),i=r.reject;return i(e),r.promise}})});var Ki=a((ZP,Oc)=>{"use strict";var xb=Y(),Ab=$(),Ob=_e();Oc.exports=function(t,e){if(xb(t),Ab(e)&&e.constructor===t)return e;var r=Ob.f(t),i=r.resolve;return i(e),r.promise}});var Rc=a(()=>{"use strict";var qb=A(),Cb=G(),qc=j(),Rb=ce(),Cc=Se().CONSTRUCTOR,Lb=Ki(),kb=Cb("Promise"),Nb=qc&&!Cc;qb({target:"Promise",stat:!0,forced:qc||Cc},{resolve:function(e){return Lb(Nb&&this===kb?Rb:this,e)}})});var Lc=a(()=>{"use strict";ic();Ec();wc();xc();Ac();Rc()});var Dc=a(()=>{"use strict";var $b=A(),Db=j(),Vt=ce(),Mb=w(),Nc=G(),$c=_(),Vb=ci(),kc=Ki(),Fb=be(),Gi=Vt&&Vt.prototype,Bb=!!Vt&&Mb(function(){Gi.finally.call({then:function(){}},function(){})});$b({target:"Promise",proto:!0,real:!0,forced:Bb},{finally:function(t){var e=Vb(this,Nc("Promise")),r=$c(t);return this.then(r?function(i){return kc(e,t()).then(function(){return i})}:t,r?function(i){return kc(e,t()).then(function(){throw i})}:t)}});!Db&&$c(Vt)&&(Qi=Nc("Promise").prototype.finally,Gi.finally!==Qi&&Fb(Gi,"finally",Qi,{unsafe:!0}));var Qi});var Vc=a((aE,Mc)=>{"use strict";cs();Lc();Dc();var Ub=bt();Mc.exports=Ub("Promise","finally")});var Bc=a((sE,Fc)=>{"use strict";var jb=Vc();Fc.exports=jb});var zi=a((uE,Uc)=>{"use strict";var Hb=Bc();Uc.exports=Hb});var Hc=a((cE,jc)=>{"use strict";var Wb=w();jc.exports=!Wb(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype})});var Ft=a((lE,Kc)=>{"use strict";var Kb=H(),Qb=_(),Gb=Nr(),zb=xt(),Yb=Hc(),Wc=zb("IE_PROTO"),Yi=Object,Jb=Yi.prototype;Kc.exports=Yb?Yi.getPrototypeOf:function(t){var e=Gb(t);if(Kb(e,Wc))return e[Wc];var r=e.constructor;return Qb(r)&&e instanceof r?r.prototype:e instanceof Yi?Jb:null}});var zc=a((dE,Gc)=>{"use strict";var Xb=x(),Ji=H(),Zb=re(),ey=zr().indexOf,ty=At(),Qc=Xb([].push);Gc.exports=function(t,e){var r=Zb(t),i=0,o=[],n;for(n in r)!Ji(ty,n)&&Ji(r,n)&&Qc(o,n);for(;e.length>i;)Ji(r,n=e[i++])&&(~ey(o,n)||Qc(o,n));return o}});var Xi=a((fE,Yc)=>{"use strict";Yc.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]});var Zi=a((pE,Jc)=>{"use strict";var ry=zc(),iy=Xi();Jc.exports=Object.keys||function(e){return ry(e,iy)}});var eo=a((hE,rl)=>{"use strict";var Zc=O(),oy=w(),el=x(),ny=Ft(),ay=Zi(),sy=re(),uy=_r().f,tl=el(uy),cy=el([].push),ly=Zc&&oy(function(){var t=Object.create(null);return t[2]=2,!tl(t,2)}),Xc=function(t){return function(e){for(var r=sy(e),i=ay(r),o=ly&&ny(r)===null,n=i.length,c=0,l=[],p;n>c;)p=i[c++],(!Zc||(o?p in r:tl(r,p)))&&cy(l,t?[p,r[p]]:r[p]);return l}};rl.exports={entries:Xc(!0),values:Xc(!1)}});var il=a(()=>{"use strict";var dy=A(),fy=eo().entries;dy({target:"Object",stat:!0},{entries:function(e){return fy(e)}})});var nl=a((mE,ol)=>{"use strict";il();var py=ie();ol.exports=py.Object.entries});var sl=a((bE,al)=>{"use strict";var hy=nl();al.exports=hy});var xe=a((yE,ul)=>{"use strict";var vy=sl();ul.exports=vy});var dl=a((IE,ll)=>{"use strict";var to=O(),gy=H(),cl=Function.prototype,my=to&&Object.getOwnPropertyDescriptor,ro=gy(cl,"name"),by=ro&&function(){}.name==="something",yy=ro&&(!to||to&&my(cl,"name").configurable);ll.exports={EXISTS:ro,PROPER:by,CONFIGURABLE:yy}});var pl=a(fl=>{"use strict";var Iy=O(),Sy=Ur(),_y=ne(),Py=Y(),Ey=re(),Ty=Zi();fl.f=Iy&&!Sy?Object.defineProperties:function(e,r){Py(e);for(var i=Ey(r),o=Ty(r),n=o.length,c=0,l;n>c;)_y.f(e,l=o[c++],i[l]);return e}});var ao=a((_E,Il)=>{"use strict";var wy=Y(),xy=pl(),hl=Xi(),Ay=At(),Oy=li(),qy=vt(),Cy=xt(),vl=">",gl="<",oo="prototype",no="script",bl=Cy("IE_PROTO"),io=function(){},yl=function(t){return gl+no+vl+t+gl+"/"+no+vl},ml=function(t){t.write(yl("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ry=function(){var t=qy("iframe"),e="java"+no+":",r;return t.style.display="none",Oy.appendChild(t),t.src=String(e),r=t.contentWindow.document,r.open(),r.write(yl("document.F=Object")),r.close(),r.F},Bt,Ut=function(){try{Bt=new ActiveXObject("htmlfile")}catch{}Ut=typeof document<"u"?document.domain&&Bt?ml(Bt):Ry():ml(Bt);for(var t=hl.length;t--;)delete Ut[oo][hl[t]];return Ut()};Ay[bl]=!0;Il.exports=Object.create||function(e,r){var i;return e!==null?(io[oo]=wy(e),i=new io,io[oo]=null,i[bl]=e):i=Ut(),r===void 0?i:xy.f(i,r)}});var lo=a((PE,Pl)=>{"use strict";var Ly=w(),ky=_(),Ny=$(),$y=ao(),Sl=Ft(),Dy=be(),My=q(),Vy=j(),co=My("iterator"),_l=!1,J,so,uo;[].keys&&(uo=[].keys(),"next"in uo?(so=Sl(Sl(uo)),so!==Object.prototype&&(J=so)):_l=!0);var Fy=!Ny(J)||Ly(function(){var t={};return J[co].call(t)!==t});Fy?J={}:Vy&&(J=$y(J));ky(J[co])||Dy(J,co,function(){return this});Pl.exports={IteratorPrototype:J,BUGGY_SAFARI_ITERATORS:_l}});var Tl=a((EE,El)=>{"use strict";var By=lo().IteratorPrototype,Uy=ao(),jy=Ve(),Hy=ze(),Wy=de(),Ky=function(){return this};El.exports=function(t,e,r,i){var o=e+" Iterator";return t.prototype=Uy(By,{next:jy(+!i,r)}),Hy(t,o,!1,!0),Wy[o]=Ky,t}});var $l=a((TE,Nl)=>{"use strict";var Qy=A(),Gy=N(),jt=j(),Ll=dl(),zy=_(),Yy=Tl(),wl=Ft(),xl=ni(),Jy=ze(),Xy=ve(),fo=be(),Zy=q(),Al=de(),kl=lo(),eI=Ll.PROPER,tI=Ll.CONFIGURABLE,Ol=kl.IteratorPrototype,Ht=kl.BUGGY_SAFARI_ITERATORS,it=Zy("iterator"),ql="keys",ot="values",Cl="entries",Rl=function(){return this};Nl.exports=function(t,e,r,i,o,n,c){Yy(r,e,i);var l=function(b){if(b===o&&u)return u;if(!Ht&&b&&b in d)return d[b];switch(b){case ql:return function(){return new r(this,b)};case ot:return function(){return new r(this,b)};case Cl:return function(){return new r(this,b)}}return function(){return new r(this)}},p=e+" Iterator",s=!1,d=t.prototype,f=d[it]||d["@@iterator"]||o&&d[o],u=!Ht&&f||l(o),h=e==="Array"&&d.entries||f,v,m,g;if(h&&(v=wl(h.call(new t)),v!==Object.prototype&&v.next&&(!jt&&wl(v)!==Ol&&(xl?xl(v,Ol):zy(v[it])||fo(v,it,Rl)),Jy(v,p,!0,!0),jt&&(Al[p]=Rl))),eI&&o===ot&&f&&f.name!==ot&&(!jt&&tI?Xy(d,"name",ot):(s=!0,u=function(){return Gy(f,this)})),o)if(m={values:l(ot),keys:n?u:l(ql),entries:l(Cl)},c)for(g in m)(Ht||s||!(g in d))&&fo(d,g,m[g]);else Qy({target:e,proto:!0,forced:Ht||s},m);return(!jt||c)&&d[it]!==u&&fo(d,it,u,{name:o}),Al[e]=u,m}});var Ml=a((wE,Dl)=>{"use strict";Dl.exports=function(t,e){return{value:t,done:e}}});var ho=a((xE,jl)=>{"use strict";var rI=re(),po=Yr(),Vl=de(),Bl=qi(),iI=ne().f,oI=$l(),Wt=Ml(),nI=j(),aI=O(),Ul="Array Iterator",sI=Bl.set,uI=Bl.getterFor(Ul);jl.exports=oI(Array,"Array",function(t,e){sI(this,{type:Ul,target:rI(t),index:0,kind:e})},function(){var t=uI(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Wt(void 0,!0);switch(t.kind){case"keys":return Wt(r,!1);case"values":return Wt(e[r],!1)}return Wt([r,e[r]],!1)},"values");var Fl=Vl.Arguments=Vl.Array;po("keys");po("values");po("entries");if(!nI&&aI&&Fl.name!=="values")try{iI(Fl,"name",{value:"values"})}catch{}});var Wl=a((AE,Hl)=>{"use strict";var cI=O(),lI=ne(),dI=Ve();Hl.exports=function(t,e,r){cI?lI.f(t,e,dI(0,r)):t[e]=r}});var Kl=a(()=>{"use strict";var fI=A(),pI=Mt(),hI=Wl();fI({target:"Object",stat:!0},{fromEntries:function(e){var r={};return pI(e,function(i,o){hI(r,i,o)},{AS_ENTRIES:!0}),r}})});var Gl=a((CE,Ql)=>{"use strict";ho();Kl();var vI=ie();Ql.exports=vI.Object.fromEntries});var Yl=a((RE,zl)=>{"use strict";zl.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}});var Xl=a(()=>{"use strict";ho();var gI=Yl(),mI=S(),bI=ze(),Jl=de();for(Kt in gI)bI(mI[Kt],Kt),Jl[Kt]=Jl.Array;var Kt});var ed=a((NE,Zl)=>{"use strict";var yI=Gl();Xl();Zl.exports=yI});var rd=a(($E,td)=>{"use strict";var II=ed();td.exports=II});var Od=a(()=>{"use strict";var HI=A(),WI=eo().values;HI({target:"Object",stat:!0},{values:function(e){return WI(e)}})});var Cd=a((Hw,qd)=>{"use strict";Od();var KI=ie();qd.exports=KI.Object.values});var Ld=a((Ww,Rd)=>{"use strict";var QI=Cd();Rd.exports=QI});var Nd=a((Kw,kd)=>{"use strict";var GI=Ld();kd.exports=GI});var Eo=P(ae(),1);var Wh=(t,e,r)=>{if(typeof t.canParse=="function")return t.canParse(e,r);try{return new t(e,r),!0}catch{return!1}},Na=Wh;var Ke=(c=>(c.PROD="prod",c.VK_ALIAS="vk_alias",c.VIDEOTEST="videotest",c.TEST="test",c.OKCDN="okcdn",c.AUTO="auto",c))(Ke||{}),Jr=(s=>(s.Q144P="mobile",s.Q240P="lowest",s.Q360P="low",s.Q480P="medium",s.Q720P="high",s.Q1080P="fullhd",s.Q1440P="quadhd",s.Q2160P="ultrahd",s.UNKNOWN="unknown",s))(Jr||{}),Xr=(v=>(v.MP4="mp4",v.DASH="dash",v.DASH_SEP="dash_sep",v.ONDEMAND_DASH="ondemand_dash",v.HLS="hls",v.HLS_FMP4="hls_fmp4",v.ONDEMAND_HLS="ondemand_hls",v.WEBM="webm",v.AV1="av1",v.ONDEMAND_DASH_LIVE="ondemand_dash_live",v.ONDEMAND_HLS_LIVE="ondemand_hls_live",v.WEBRTC="webrtc",v.UNKNOWN="unknown",v.RTMP="rtmp",v))(Xr||{});var Zr=(i=>(i.HTTP1="http1",i.HTTP2="http2",i.HTTP3="http3",i))(Zr||{});var ei=(l=>(l.SLIDER="slider",l.DOUBLE_TAP="double_tap",l.TIME_CODE="time_code",l.EPISODE="episode",l.REWIND="rewind",l.LIVE="live",l.UNKNOWN="unknown",l))(ei||{}),$a=(n=>(n.GRAPH_SHOW="iGraphShow",n.GRAPH_HIDE="iGraphHide",n.NEXT_AREA="iNextChapterArea",n.NEXT_BUTTON="iNextChapterBtn",n.WATCH_AGAIN="iWatchAgainBtn",n))($a||{}),Da={action_play:"ap",action_play_interactive:"api",first_bytes:"fb",player_ready:"pr",first_frame:"ff",seek:"sk",watch_coverage_record:"wr",watch_coverage_live:"wl",empty_buffer:"eb",action_stop:"as",close_at_empty_buffer:"cb",content_error:"er",player_interface_click:"pc",next_movie:"nm",track_switch:"ts",failover:"fo",quality:"qt"},Ma={vsid:"si",isid:"is",vid:"vi",place:"pl",quality:"qt",cdn_host:"ch",stat_type:"st",param:"pm",vk_app_id:"va",track_code:"tc",connection_type:"cnt",connection_reused:"cr",cached_data:"cd",live:"lv",muted:"mu",mode:"mo",subtitles:"sb",failover:"fo",download_speed:"ds",manual_quality:"mq",ref_domain:"rd",direct_url:"du"},Va={unknown:"un",mobile:"m",lowest:"ls",low:"l",medium:"md",high:"h",fullhd:"f",quadhd:"q",ultrahd:"u"},Fa={pip:"pi",fullscreen:"fs",external:"ex",prefetch:"pr",airplay:"ap",chromecast:"cc",invisible:"iv",minimal:"minimal"};import{fillWithDefault as Kh}from"@vkontakte/videoplayer-shared";var Ba="CIOPGQJGDIHBABABA",ti={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var Qh={apiEnv:"vk_alias",apiKey:Ba,apiBaseUrl:null,requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageInterval:15e3,disabledOperations:["quality"],disabledCustomFields:[],shorten:!0,maxLoops:100,embedUrlParams:[],useBeacon:!0,synchronizeTime:!0,debugLog:!1,clearStorageAtUnload:!0,useVKComIsMobileLogic:!1,backoff:{start:1e3,factor:1.5,max:5*60*1e3,random:.1},useKeepalive:!1,watchCoverageTimeoutFix:!1},Ua=t=>Kh(t,Qh);function ri(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}import{assertNonNullable as $I,combine as Ed,fromEvent as Td,isNonNullable as Re,isNullable as wd,merge as DI,now as X,observableFrom as MI,once as VI,safeStorage as xd,Subject as FI,Subscription as To,ValueSubject as tr}from"@vkontakte/videoplayer-shared";import{Logger as BI,detectEmbed as UI}from"@vkontakte/videoplayer-shared";var us=P(St(),1),_v=()=>(0,us.default)(Math.floor(Math.random()*2**32).toString(36),13,"0"),Z=class t{static getVSID(){return t.vsid}static generateVSID(){return t.vsid=_v(),t.vsid}};var Qt=P(zi(),1);var id=P(xe(),1),od=P(rd(),1);var nd=t=>{let{operation:e,custom:r}=t,i=(0,od.default)((0,id.default)(r).map(([o,n])=>{let c=Ma[o]??o,l=n;return n&&(o==="mode"?l=Fa[n]??n:o==="quality"&&(l=Va[n]??n)),[c,l]}));return{...t,operation:Da[e]??e,custom:i}};var L="1.0.95-dev.0c91b20c.0";import{ValueSubject as SI,getExponentialDelay as _I,ErrorCategory as Ae}from"@vkontakte/videoplayer-shared";var PI=/Mobile|mini|Fennec|Android|iP(ad|od|hone)|opera (mini|mobi)/i,nt=class{constructor(e){this.consequentAuthErrors=0;this.authorized$=new SI(!1);this.params=e}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this._authorizeWithBackoff()}logBeacon(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.externalLog",i=this.createLogParams(e),o=this.sessionKey??await this._authorizeWithBackoff();if(!o)return;let n=async(c,l=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,o)}catch(p){if(!p||!("error_code"in p)){this.params.error$.next({id:"logRequestUnknown",category:Ae.NETWORK,message:`Unknown ${r} error`,thrown:p});return}let s=p?.error_code;switch(s){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this._authorizeWithBackoff(),l>0?n(c,l-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this._authorizeWithBackoff(),l>0?n(c,l-1):void 0;default:{this.params.error$.next({id:`LogRequest#${s}`,category:Ae.EXTERNAL_API,message:`${r} error`,data:p});return}}}};return n(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Qt.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){let r="WEB",i=!1,o=`@vkontakte/videoplayer-statistics:${L}`;if(this.params.config.useVKComIsMobileLogic){let{appVersion:n}=window.navigator;i=PI.test(n)}else this.params.mobile&&(i=!0);return i&&(r="M_WEB"),this.params.vktvVersion&&(r="SMART_TV",o=this.params.vktvVersion),{collector:"ok.mobile.apps.video",data:JSON.stringify({application:o,platform:r,items:this.params.config.shorten?e.map(nd):e})}}_authorizeWithBackoff(){if(!this.consequentAuthErrors)return this._authorize();let e=_I(this.consequentAuthErrors,this.params.config.backoff);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(()=>{(0,Qt.default)(this._authorize().then(r).catch(i=>this.params.error$.next({id:"AuthorizeBackoff",category:Ae.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})),()=>this.backoffTimeoutId=0)},e))})}async _authorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:L.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Qt.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:Ae.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this._authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:Ae.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:Ae.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var{NativeAbortSignal:zE,NativeAbortController:YE}=function(t){return{NativeAbortSignal:t.AbortSignal,NativeAbortController:t.AbortController}}(typeof self<"u"?self:global);function ad(t){let e;try{e=new Event("abort")}catch{typeof document<"u"?document.createEvent?(e=document.createEvent("Event"),e.initEvent("abort",!1,!1)):(e=document.createEventObject(),e.type="abort"):e={type:"abort",bubbles:!1,cancelable:!1}}return e.reason=t,e}function sd(t){if(t===void 0)if(typeof document>"u")t=new Error("This operation was aborted"),t.name="AbortError";else try{t=new DOMException("signal is aborted without reason"),Object.defineProperty(t,"name",{value:"AbortError"})}catch{t=new Error("This operation was aborted"),t.name="AbortError"}return t}var Gt=class{constructor(){Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}addEventListener(e,r,i){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push({callback:r,options:i})}removeEventListener(e,r){if(!(e in this.listeners))return;let i=this.listeners[e];for(let o=0,n=i.length;o<n;o++)if(i[o].callback===r){i.splice(o,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return;let i=this.listeners[e.type].slice();for(let o=0,n=i.length;o<n;o++){let c=i[o];try{c.callback.call(this,e)}catch(l){Promise.resolve().then(()=>{throw l})}c.options&&c.options.once&&this.removeEventListener(e.type,c.callback)}return!e.defaultPrevented}},Oe=class extends Gt{constructor(){super(),this.listeners||Gt.call(this),Object.defineProperty(this,"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(this,"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(this,"reason",{value:void 0,writable:!0,configurable:!0})}toString(){return"[object AbortSignal]"}dispatchEvent(e){e.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,e)),super.dispatchEvent(e)}throwIfAborted(){let{aborted:e,reason:r="Aborted"}=this;if(e)throw r}static timeout(e){let r=new fe;return setTimeout(()=>r.abort(new DOMException(`This signal is timeout in ${e}ms`,"TimeoutError")),e),r.signal}static any(e){let r=new fe;function i(){r.abort(this.reason),o()}function o(){for(let n of e)n.removeEventListener("abort",i)}for(let n of e)if(n.aborted){r.abort(n.reason);break}else n.addEventListener("abort",i);return r.signal}},fe=class{constructor(){Object.defineProperty(this,"signal",{value:new Oe,writable:!0,configurable:!0})}abort(e){let r=sd(e),i=ad(r);this.signal.reason=r,this.signal.dispatchEvent(i)}toString(){return"[object AbortController]"}};typeof Symbol<"u"&&Symbol.toStringTag&&(fe.prototype[Symbol.toStringTag]="AbortController",Oe.prototype[Symbol.toStringTag]="AbortSignal");function zt(t){return t.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL?(console.log("__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL=true is set, will force install polyfill"),!0):typeof t.Request=="function"&&!t.Request.prototype.hasOwnProperty("signal")||!t.AbortController}function vo(t){typeof t=="function"&&(t={fetch:t});let{fetch:e,Request:r=e.Request,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o=!1}=t;if(!zt({fetch:e,Request:r,AbortController:i,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:o}))return{fetch:e,Request:n};let n=r;(n&&!n.prototype.hasOwnProperty("signal")||o)&&(n=function(s,d){let f;d&&d.signal&&(f=d.signal,delete d.signal);let u=new r(s,d);return f&&Object.defineProperty(u,"signal",{writable:!1,enumerable:!1,configurable:!0,value:f}),u},n.prototype=r.prototype);let c=e;return{fetch:(p,s)=>{let d=n&&n.prototype.isPrototypeOf(p)?p.signal:s?s.signal:void 0;if(d){let f;try{f=new DOMException("Aborted","AbortError")}catch{f=new Error("Aborted"),f.name="AbortError"}if(d.aborted)return Promise.reject(f);let u=new Promise((h,v)=>{d.addEventListener("abort",()=>v(f),{once:!0})});return s&&s.signal&&delete s.signal,Promise.race([u,c(p,s)])}return c(p,s)},Request:n}}var EI=()=>"fetch"in window,at=EI()&&zt({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}),ud=at?vo({fetch:window.fetch,Request:window.Request,AbortController:window.AbortController}):void 0,qe=at?ud.fetch:window.fetch,aT=at?ud.Request:window.Request,sT=at?fe:window.AbortController,uT=at?Oe:window.AbortSignal;var cd=P(ae(),1),ld=P(xe(),1);import{ErrorCategory as Yt,now as go}from"@vkontakte/videoplayer-shared";var st=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=e.config.apiBaseUrl??ti[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"OneStat:ApiTransport:resolveApiBaseUrl",category:Yt.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),ti.vk_alias}finally{this.isApiBaseUrlFetched=!0}}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this._prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(c){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:Yt.NETWORK,message:"Unhandled beacon error",thrown:c,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i){let o=go(),n=l=>{if(l instanceof TypeError&&(0,cd.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],l.message)){this.params.error$.next({id:"Network",category:Yt.NETWORK,message:"Request failed",thrown:l});return}this.params.error$.next({id:"OneStat:ApiTransport:sendRequest",category:Yt.NETWORK,message:"Unhandled request error",thrown:l,data:{method:e,params:r,sessionKey:i,time:go()-o}})};this.apiBaseUrl=await this.resolveApiBaseUrl();let c={method:"post",headers:{"Content-type":"application/x-www-form-urlencoded"},body:this._prepareQueryParams({method:e,queryParams:r,sessionKey:i})};return this.params.config.useKeepalive&&(c.keepalive=!0),qe(`${this.apiBaseUrl}/fb.do`,c).then(l=>{let p=Number(l.headers.get("content-length"))===0,s=new Date(l.headers.get("date")??"").getTime(),d=go()-o;if(isFinite(s)&&this.timeSynchronisation?.addServerTime(s,d),!p)return l.json().then(f=>Object.prototype.hasOwnProperty.call(f,"error_msg")?Promise.reject(f):f,n)},n)}_prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,ld.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var fd=P(ae(),1),pd=P(xe(),1);import{ErrorCategory as TI,now as wI,safeStorage as ut,debounceFn as dd}from"@vkontakte/videoplayer-shared";var Jt="onestat_events",mo=t=>e=>e.timestamp+t>=wI(),Xt=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{operation:r}=e;return(0,fd.default)(["action_play","watch_coverage_record","watch_coverage_live"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=dd(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=ut.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=dd(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:TI.WTF,message:e?String(e):"Unknown logger error",thrown:e})}}readFromStorage(){let e=ut.get(Jt);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(mo(this.params.config.storageExpiration));ut.set(Jt,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(mo(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],ut.set(Jt,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,pd.default)(e)){let o=i.filter(mo(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}ut.set(Jt,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.custom.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.custom.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};import{HttpConnectionType as bo,Surface as Ce,VideoFormat as T,VideoQuality as V}from"@vkontakte/videoplayer-core";import{assertNever as hd}from"@vkontakte/videoplayer-shared";var vd=t=>t&&{[V.INVARIANT]:"unknown",[V.Q_144P]:"mobile",[V.Q_240P]:"lowest",[V.Q_360P]:"low",[V.Q_480P]:"medium",[V.Q_576P]:"unknown",[V.Q_720P]:"high",[V.Q_1080P]:"fullhd",[V.Q_1440P]:"quadhd",[V.Q_2160P]:"ultrahd",[V.Q_4320P]:"unknown"}[t],yo=t=>t&&{[bo.HTTP1]:"http1",[bo.HTTP2]:"http2",[bo.QUIC]:"http3"}[t],gd=t=>{if(t!==void 0)switch(t){case T.MPEG:return"mp4";case T.DASH:case T.DASH_LIVE:case T.DASH_STREAMS:return"dash";case T.DASH_SEP:return"dash_sep";case T.DASH_ONDEMAND:return"ondemand_dash";case T.DASH_WEBM:case T.DASH_LIVE_WEBM:return"webm";case T.DASH_WEBM_AV1:return"av1";case T.DASH_LIVE_CMAF:return"ondemand_dash_live";case T.HLS:case T.HLS_LIVE:return"hls";case T.HLS_FMP4:return"hls_fmp4";case T.HLS_ONDEMAND:return"ondemand_hls";case T.HLS_LIVE_CMAF:return"ondemand_hls_live";case T.WEB_RTC_LIVE:return"webrtc";default:return hd(t)}},Io=(t,e)=>{if(e)return"minimal";switch(t){case void 0:case Ce.NONE:case Ce.INLINE:return;case Ce.FULLSCREEN:return"fullscreen";case Ce.SECOND_SCREEN:return"chromecast";case Ce.PIP:return"pip";case Ce.INVISIBLE:return"invisible";default:return hd(t)}},md=t=>{switch(t){case"slow-2g":return"poor";case"2g":return"poor";case"3g":return"good";case"4g":return"excellent"}};var Zt=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};var bd=P(St(),1);var yd=()=>(0,bd.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");import{PlaybackState as Id}from"@vkontakte/videoplayer-core";import{filter as Sd,filterChanged as xI,fromEvent as AI,isNullable as _d,map as OI,merge as So,Observable as qI,Subject as _o,Subscription as CI,ValueSubject as RI}from"@vkontakte/videoplayer-shared";var Pd=(t,e)=>new qI(r=>{let i=new CI,o=So(AI(window,"beforeunload"),t.events.willDestruct$),n=new RI(void 0),c;i.add(t.info.isLive$.pipe(xI()).subscribe(I=>{c&&(c.unsubscribe(),n.next(void 0)),I?c=t.info.liveTime$.pipe(OI(U=>U&&U/1e3)).subscribe(n):c=t.info.position$.subscribe(n),i.add(c)}));let{playing$:l,paused$:p}=t.events,s=t.events.willSeek$.pipe(Sd(()=>t.info.playbackState$.getValue()===Id.PLAYING)),d=t.events.seeked$.pipe(Sd(()=>t.info.playbackState$.getValue()===Id.PLAYING)),f=!1,u=new _o;i.add(s.subscribe(()=>{f||u.next(),f=!0})),i.add(d.subscribe(()=>f=!1));let h=new _o,v=new _o,m=So(l,d,h),g=So(p,u,o,t.events.looped$,v),b,y=()=>b=n.getValue(),k=()=>{let I=n.getValue();_d(b)||b===I||_d(I)||(r.next({from:b,to:I}),b=void 0)},R=()=>{v.next(),h.next()};if(i.add(m.subscribe(y)),i.add(g.subscribe(k)),e.forceInterval&&isFinite(e.forceInterval))if(e.watchCoverageTimeoutFix){let I,U=()=>{I!==void 0&&(window.clearTimeout(I),I=void 0)};i.add(m.subscribe(()=>{U(),I=window.setTimeout(R,e.forceInterval)})),i.add(g.subscribe(()=>U())),i.add(()=>U())}else{let I=0;i.add(m.subscribe(()=>I=window.setTimeout(R,e.forceInterval))),i.add(g.subscribe(()=>window.clearTimeout(I)))}return i});import{Surface as W}from"@vkontakte/videoplayer-core";import{debounce as LI,filterChanged as kI,Subject as NI}from"@vkontakte/videoplayer-shared";var er=(t,e,r)=>{let i=new NI,o=i.pipe(LI(0),kI()),n=!1,c=!1,l=!1;return e(t.inPiP$,p=>{n=p,i.next(p?W.PIP:c?W.FULLSCREEN:l?W.INLINE:void 0)}),e(t.inFullscreen$,p=>{c=p,i.next(p?W.FULLSCREEN:n?W.PIP:l?W.INLINE:void 0)}),r&&e(r.info.surface$,p=>{switch(p){case W.SECOND_SCREEN:case W.NONE:case W.INLINE:{!c&&!n&&(p===W.INLINE&&(l=!0),i.next(p));break}}}),{surface$:o}};var jI="_one-stat_",Ad=`${jI}deviceId`,Po=()=>{let t=new To;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},wo=class{constructor(e,r){this.subscription=new To;this.debugLogger=new BI;this.oneStatDebugLog=this.debugLogger.createComponentLog("onestat");this.loopCounter=0;this.disabled=!1;this.isid$=new tr(void 0);this.zenUid$=new tr(void 0);this.seekAction$=new tr("unknown");this.statContext=e,this.config=Ua(r.config??{}),Re(r.apiEnv)&&(this.config.apiEnv=r.apiEnv),this.config.synchronizeTime&&(this.timeSynchronisation=new Zt);let i=new FI;this.experimental={error$:i};let o=xd.get(Ad);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=ri(),xd.set(Ad,this.deviceId)),this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??yd()),this.zenUid$.next(r.zenUid);let n=new st({config:this.config,error$:i,timeSynchronisation:this.timeSynchronisation});this.api=new nt({config:this.config,apiTransport:n,refreshAuthToken:r.refreshAuthToken,mobile:this.statContext.mobile??!1,deviceId:this.deviceId,error$:i,vktvVersion:r.vktvVersion}),this.logger=new Xt({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:c,topOrigin:l}=UI();this.isEmbed=c,this.embedParent=l?new URL(l).hostname:void 0,this.subscribe()}get vsid$(){return new tr(Z.getVSID())}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e){let r=new To,i=(u,h)=>r.add(u.subscribe(h));i(e.events.willStart$,()=>{let u=e.info.position$.getValue();this.logActionPlay({position:u}),this.statContext.projectId&&this.logActionPlayInteractive()}),i(e.events.looped$,()=>{this.resetViewSession(),++this.loopCounter>this.config.maxLoops&&(this.disabled=!0),this.logActionPlay({position:e.info.position$.getValue()})}),i(e.events.seeked$,()=>{this.logSeek({action:this.seekAction$.getValue(),time:e.info.position$.getValue()}),this.seekAction$.next("unknown")}),i(e.events.paused$,()=>{this.logPause({position:e.info.position$.getValue()})}),i(e.events.willResume$,()=>{this.logPlay()}),i(e.events.started$,()=>{this.statContext.clip&&this.logWatchCoverageRecord({start:0,end:0})}),i(e.events.playing$,()=>{this.logPlaying()}),i(Pd(e,{forceInterval:this.config.watchCoverageInterval,watchCoverageTimeoutFix:this.config.watchCoverageTimeoutFix}),u=>{let h=e.info.isLive$.getValue(),v=e.info.atLiveEdge$.getValue(),m={start:parseFloat(u.from.toFixed(3)),end:parseFloat(u.to.toFixed(3))};if(v){let g=e.info.liveLatency$.getValue()??0,b=e.info.currentBuffer$.getValue()?.end??0,y=e.info.liveBufferTime$.getValue()??0,k=Math.round((g-(b-y))*1e3),R=Math.round(g*1e3);k&&R&&(m.latency=k,m.bufferLatency=R)}h?this.logWatchCoverageLive(m):this.logWatchCoverageRecord(m)});let o;i(e.info.isStalled$,u=>{u?o=X():(Re(o)&&this.logEmptyBuffer({duration:X()-o}),o=void 0)});let n=!1;r.add(e.events.fatalError$.pipe(VI()).subscribe(()=>n=!0)),i(e.events.willStop$,()=>{if(e.info.isStalled$.getValue()){let h=Re(o)?X()-o:void 0;this.logCloseAtEmptyBuffer({duration:h??0}),o=void 0}else n||this.logActionStop()}),i(e.events.managedError$,({id:u})=>{this.logError({fatal:!1,errorType:u})}),i(e.events.fatalError$,({id:u})=>{this.logError({fatal:!0,errorType:u})});let c,l,p=!1;i(e.events.firstBytes$,u=>{c=X(),this.logFirstBytes({time:u})}),i(e.events.willStart$,()=>l=X()),i(e.info.currentBuffer$,u=>{!p&&u&&u.end-u.start>0&&Re(c)&&(this.logPlayerReady({duration:X()-c}),p=!0)}),i(e.events.firstFrame$,()=>{Re(c)&&!p&&(this.logPlayerReady({duration:X()-c}),p=!0),Re(l)&&this.logFirstFrame({time:X()-l})});let s;i(e.info.currentVideoStream$,u=>{u&&(s&&u.id!==s&&this.logTrackSwitch(u),s=u.id)});let d;i(e.info.currentAudioStream$,u=>{u&&(d&&u.id!==d&&this.logTrackSwitch(u),d=u.id)}),i(e.info.atLiveEdge$,u=>this.updateContext({liveEdge:u})),i(Ed({muted:e.info.muted$,volume:e.info.volume$}),({muted:u,volume:h})=>this.updateContext({audible:!u&&h>0})),i(e.info.currentQuality$,u=>{let h=vd(u);this.updateContext({quality:h}),h&&this.logQuality(h)}),i(e.info.isAutoQualityEnabled$,u=>this.updateContext({autoQuality:u})),i(e.info.currentFormat$,u=>this.updateContext({contentType:gd(u)})),i(e.info.currentPlaybackRate$,u=>this.updateContext({rate:u})),i(e.info.is3DVideo$,u=>this.updateContext({is3d:u}));let f;return i(e.info.hostname$,u=>{let h=f!==void 0&&f!==u;this.updateContext({cdnHostname:u,failover:h}),h&&this.logFailover(u),f=u}),i(e.info.throughputEstimation$,u=>this.updateContext({downloadSpeed:u})),i(e.info.httpConnectionType$,u=>{this.statContext.firstConnectionType||this.updateContext({firstConnectionType:yo(u)}),this.updateContext({connectionType:yo(u)})}),i(e.info.httpConnectionReused$,u=>{wd(this.statContext.firstConnectionReused)&&this.updateContext({firstConnectionReused:u}),this.updateContext({connectionReused:u})}),i(e.info.surface$,u=>{this.uiEvents||this.updateContext({mode:Io(u,this.statContext.isPreviewPlayerView)})}),i(Ed({current:e.info.currentTextTrack$,available:e.info.availableTextTracks$}),({current:u,available:h})=>{let v=h.find(({id:g})=>g===u),m=v&&(v.isAuto?`${v.language}_auto`:v.language);this.updateContext({subtitles:m?.split(".")[0]})}),this.player=e,this.uiEvents&&this.attachToUi(this.uiEvents),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToUi(e){this.uiEvents=e;let{subscription:r,subscribe:i}=Po();if(!this.player)return r;i(e.actionRewind$,()=>{this.player&&(this.resetViewSession(),this.logActionPlay({position:this.player.info.position$.getValue()}))}),i(e.actionSeek$,this.seekAction$);let{surface$:o}=er(this.uiEvents,i,this.player);return i(o,n=>{this.updateContext({mode:Io(n,this.statContext.isPreviewPlayerView)})}),i(e.actionSetSubtitle$,n=>this.updateContext({subtitles:n?.split(".")[0]})),i(e.nextMovie$,n=>this.logNextMovie(n)),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToAds(e){let{subscription:r,subscribe:i}=Po();return i(e.slotRequested$,()=>this.logAdSlotRequest()),i(e.started$,o=>this.logAdStarted(o)),i(e.paused$,()=>this.logAdPaused()),i(e.resumed$,()=>this.logAdResumed()),i(e.ended$,()=>this.logAdEnded()),i(e.skipped$,()=>this.logAdSkipped()),i(e.clicked$,()=>this.logAdClicked()),i(e.error$,o=>this.logError({errorType:o,fatal:!1})),this.resubscribeBeforeunload(),this.subscription.add(r),r}attachToInteractive(e){let{subscription:r,subscribe:i}=Po();return i(e.click$,o=>this.logInterfaceClick(o)),i(e.nextMovie$,o=>this.logNextMovie(o)),this.resubscribeBeforeunload(),this.subscription.add(r),r}authorize(e){return this.api.authorize(e)}pause(){this.logger.pause(),this.oneStatDebugLog({message:"paused"})}resume(){this.logger.resume(),this.oneStatDebugLog({message:"resumed"})}destroy(){this.logger.flush(),this.subscription.unsubscribe(),this.api.destroy(),this.logger.destroy()}resetViewSession(){this.oneStatDebugLog({message:"VSID reset"}),Z.generateVSID()}getDeviceId(){return this.deviceId}setFieldBlacklist(){}logInited(){}logReady(e){this.log({operation:"player_ready",param:String(e.time)})}logStarted(...e){this.logActionPlay(...e)}logPlay(){this.log({operation:"play_toggle"})}logPlaying(){this.log({operation:"playing"})}logPause(e){this.log({operation:"pause",param:String(Math.round(e.position))})}logSeek(e){this.log({operation:"seek",param:e.action,time:e.time})}logFirstBytes(e){this.log({operation:"first_bytes",param:String(e.time)})}logFirstFrame(e){this.log({operation:"first_frame",param:String(e.time)})}logError(e){this.log({operation:"content_error",param:`${e.fatal?"fatal":"recoverable"}_${e.errorType}`})}logWatchCoverageRecord(e){this.log({operation:"watch_coverage_record",param:`${e.start}-${e.end}`},{in_history:this.statContext.inHistory?1:void 0})}logWatchCoverageLive(e){let r=this.timeSynchronisation?.getOffset()??0,i=e.start+r,o=e.end+r;this.log({operation:"watch_coverage_live",param:`${i}-${o}`},{in_history:this.statContext.inHistory?1:void 0,latency:e.latency,buffer_latency:e.bufferLatency})}logEmptyBuffer(e){this.log({operation:"empty_buffer",param:String(e.duration)})}logDownloadSpeed(){}logAdSlotRequest(){this.log({operation:"adv",param:"slot_request"})}logAdStarted(e){this.log({operation:"adv",param:e})}logAdPaused(){this.log({operation:"adv",param:"pause"})}logAdResumed(){this.log({operation:"adv",param:"resume"})}logAdEnded(){this.log({operation:"adv",param:"ended"})}logAdSkipped(){this.log({operation:"adv",param:"skip"})}logAdClicked(){this.log({operation:"adv",param:"click"})}logInterfaceClick(e){this.log({operation:"player_interface_click",param:e})}logNextMovie(e){this.log({operation:"next_movie",param:String(e)})}subscribe(){this.resubscribeBeforeunload();let e=window.navigator.connection;e&&"onchange"in e&&"effectiveType"in e&&this.subscription.add(DI(Td(e,"change"),MI(["init"])).subscribe(()=>this.updateContext({network:md(e.effectiveType)}))),this.config.debugLog&&this.debugLogger.log$.subscribe(r=>{console.debug("%c stat ","background:#fa6470;",`component: ${r.component}.`,r.message)})}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=Td(window,"beforeunload").subscribe(()=>this.logger.flush({wantBeacon:!0,clearStorage:this.config.clearStorageAtUnload})),this.subscription.add(this.beforeunloadSubscription)}logPlayerReady(e){this.log({operation:"player_ready",param:String(Math.round(e.duration))})}logActionPlay(e){this.log({operation:"action_play",param:String(Math.round(e.position))})}logActionPlayInteractive(){this.statContext.projectId&&this.log({operation:"action_play_interactive",param:String(this.statContext.movieId)},{vid:this.statContext.projectId})}logFailover(e){this.log({operation:"failover",param:e})}logCloseAtEmptyBuffer(e){this.log({operation:"close_at_empty_buffer",param:String(Math.round(e.duration))})}logActionStop(){this.log({operation:"action_stop"})}logTrackSwitch(e){this.log({operation:"track_switch",param:e.id})}logQuality(e){this.log({operation:"quality",param:e})}log(e,r={}){if(this.disabled){this.oneStatDebugLog({message:`operation ${e.operation} but statistics is disabled`});return}if((0,Eo.default)(this.config.disabledOperations,e.operation)){this.oneStatDebugLog({message:`operation ${e.operation} but it is disabled`});return}this.oneStatDebugLog({message:`operation ${e.operation} ${e.param}`});let i=this.createLogItem(e,r);this.logger.log(i)}createLogItem({operation:e,param:r,time:i},o={}){let n=this.timeSynchronisation?.now()??X(),c=this.vsid$.getValue();$I(c);let l=this.isid$.getValue(),p=e==="empty_buffer"||e==="close_at_empty_buffer"?this.statContext.connectionType:this.statContext.firstConnectionType,s=this.statContext.firstConnectionReused,d,f;if(this.isEmbed||this.statContext.place==="embed"){d=this.embedParent;let h=[...new URLSearchParams(location.search).entries()].filter(([v,m])=>(0,Eo.default)(this.config.embedUrlParams,v));f=new URLSearchParams(h).toString()}else if(this.statContext.place==="direct"){let h=this.statContext.refDomain||document.referrer;h&&Na(URL,h)?d=new URL(h).hostname:d=h,f=location.href.substring(0,1024)}let u={vsid:c,isid:l,vid:this.statContext.movieId,uid:this.zenUid$.getValue(),ct:this.statContext.contentType,place:this.isEmbed?"embed":this.statContext.place,quality:this.statContext.quality,cdn_host:this.statContext.cdnHostname,stat_type:this.statContext.autoplay===!0?"auto":this.statContext.autoplay===!1?"":void 0,param:r,vk_app_id:this.statContext.vkAppId,track_code:this.statContext.trackCode,connection_type:p,connection_reused:s===!0?1:s===!1?0:void 0,cached_data:this.statContext.cached===!0?1:this.statContext.cached===!1?0:void 0,live:this.statContext.liveEdge?1:void 0,muted:this.statContext.audible===!1?1:void 0,mode:this.statContext.mode,subtitles:this.statContext.subtitles,download_speed:this.statContext.downloadSpeed,manual_quality:this.statContext.autoQuality?void 0:1,ref_domain:d,direct_url:f,rate:this.statContext.rate===1||wd(this.statContext.rate)?void 0:this.statContext.rate.toFixed(2),view_360:this.statContext.is3d?1:void 0,aid:this.statContext.albumId,vk_playlist_id:this.statContext.vkPlaylistId,...o};for(let h of this.config.disabledCustomFields)delete u[h];return{operation:e,type:1,time:i,network:this.statContext.network,timestamp:n,custom:u}}};var uf={};_f(uf,{ActionSeekType:()=>rr,ThinOneStat:()=>pr,VERSION:()=>L});var af=P(Nd(),1),sf=P(ae(),1);import{assertNonNullable as cS,detectEmbed as lS,fromEvent as dS,Logger as fS,merge as $o,combine as fr,filter as Ne,filterChanged as pS,safeStorage as rf,Subject as hS,Subscription as Mo,ValueSubject as Do}from"@vkontakte/videoplayer-shared";import{clientChecker as K}from"@vkontakte/videoplayer-core";import{fillWithDefault as zI}from"@vkontakte/videoplayer-shared";var xo=(i=>(i.AUTO="auto",i.AUTO_POOR="auto_poor",i.AUTO_RICH="auto_rich",i))(xo||{});var rr=(l=>(l.SLIDER="slider",l.DOUBLE_TAP="double_tap",l.TIME_CODE="time_code",l.EPISODE="episode",l.REWIND="rewind",l.LIVE="live",l.UNKNOWN="unknown",l))(rr||{});var Dd="CIOPGQJGDIHBABABA",Ao={prod:"https://api.ok.ru",vk_alias:"https://api.mycdn.me",videotest:"https://videotestapi.ok.ru/api",test:"https://apitest.ok.ru",okcdn:"https://api.okcdn.ru",auto:""};var YI={apiKey:Dd,apiEnv:"okcdn",apiBaseUrl:null,requestRetryCount:1,firstFlushTime:5e3,flushDebounceTime:1e4,flushMaxWait:6e4,storageExpiration:36*60*60*1e3,watchCoverageHeartbeatInterval:30,synchronizeTime:!0,useBeacon:!1,alwaysSendDesktop:!1,watchedNFirstTvtLog:1e3,watchedNDefaultTargetDuration:1e4},Md=t=>zI(t,YI);var Oo=P(zi(),1);import{getExponentialDelay as JI,ErrorCategory as Le,ValueSubject as XI}from"@vkontakte/videoplayer-shared";var ir=class{constructor(e){this.params=e,this.authorized$=new XI(!1),this.consequentAuthErrors=0}async authorize(e){return this.authToken=e??await this.refreshAuthToken(),this.authorizeWithBackoff()}logBeacon(e){let r="log.logUvStat",i=this.createLogParams(e),o=this.sessionKey;if(!o)return;this.params.apiTransport.sendBeacon(r,i,o)||this.logRequest(e).catch(()=>{})}async logRequest(e){let r="log.logUvStat",i=this.createLogParams(e),o={},n=this.sessionKey??await this.authorizeWithBackoff();if(!n)return;let c=async(l,p=this.params.config.requestRetryCount)=>{try{return await this.params.apiTransport.sendRequest(r,i,n,o)}catch(s){if(!s||!("error_code"in s)){this.params.error$.next({id:"logRequestUnknown",category:Le.NETWORK,message:`Unknown ${r} error`,thrown:s});return}let d=s?.error_code;switch(d){case 102:case 103:case 104:return this.authorized$.next(!1),this.sessionKey=await this.authorizeWithBackoff(),p>0?c(l,p-1):void 0;case 401:return this.authorized$.next(!1),this.authToken=await this.refreshAuthToken(),this.sessionKey=await this.authorizeWithBackoff(),p>0?c(l,p-1):void 0;default:{this.params.error$.next({id:`LogRequest#${d}`,category:Le.EXTERNAL_API,message:`${r} error`,data:s});return}}}};return c(e)}destroy(){window.clearTimeout(this.backoffTimeoutId),this.backoffTimeoutId=0}async refreshAuthToken(){if(this.params.refreshAuthToken)return this.refreshAuthTokenPromise||(this.refreshAuthTokenPromise=(0,Oo.default)(this.params.refreshAuthToken(),()=>{this.refreshAuthTokenPromise=void 0})),this.refreshAuthTokenPromise}createLogParams(e){return{collector:"ok.mobile.apps.video",uv_stat_data:JSON.stringify({application:`@vkontakte/videoplayer-statistics:${L}`,platform:e[0].platform,product:e[0].product,events:e})}}authorizeWithBackoff(){if(!this.consequentAuthErrors)return this.doAuthorize();let e=JI(this.consequentAuthErrors);return new Promise(r=>{this.backoffTimeoutId||(this.backoffTimeoutId=window.setTimeout(async()=>{try{let i=await this.doAuthorize();r(i)}catch(i){this.params.error$.next({id:"AuthorizeBackoff",category:Le.NETWORK,message:"Otherwise unhandled error in authorization",thrown:i})}finally{this.backoffTimeoutId=0}},e))})}doAuthorize(){if(this.authorizePromise)return this.authorizePromise;this.sessionKey=void 0,this.authorized$.next(!1);let e="auth.anonymLogin",r={session_data:{version:2,device_id:this.params.deviceId,client_version:L.split("-")[0],client_type:"SDK_JS"}};return this.authToken!==void 0&&(r.session_data.auth_token=this.authToken,r.session_data.version=3),this.authorizePromise=(0,Oo.default)(this.params.apiTransport.sendRequest(e,r).then(i=>((!i||!i.session_key)&&this.params.error$.next({id:"AuthorizeFailed",category:Le.EXTERNAL_API,message:"No session key",data:i}),this.sessionKey=i?.session_key??void 0,this.sessionKey)).catch(async i=>{this.sessionKey=void 0;let o=i?.error_code;switch(o){case 401:return this.authToken=await this.refreshAuthToken(),this.authorizeWithBackoff()}o?this.params.error$.next({id:`Authorize#${o}`,category:Le.EXTERNAL_API,message:"authorize error",data:i}):this.params.error$.next({id:"AuthorizeUnknown",category:Le.NETWORK,message:"authorize error",thrown:i})}),()=>{this.authorizePromise=void 0,this.consequentAuthErrors=this.sessionKey?0:this.consequentAuthErrors+1,this.authorized$.next(this.sessionKey!==void 0)}),this.authorizePromise}};var Vd=P(ae(),1);var Fd=P(xe(),1);import{now as qo,ErrorCategory as or}from"@vkontakte/videoplayer-shared";var nr=class{constructor(e){this.params=e,this.apiKey=e.config.apiKey,this.apiEnv=e.config.apiEnv,this.apiBaseUrl=e.config.apiBaseUrl??Ao[this.apiEnv],this.timeSynchronisation=e.timeSynchronisation,this.isApiBaseUrlFetched=!1}sendBeacon(e,r,i){if(!window.Blob||!window.navigator.sendBeacon)return!1;let o=this.prepareQueryParams({method:e,queryParams:r,sessionKey:i}),n=new window.Blob([o.toString()],{type:"application/x-www-form-urlencoded"});try{return window.navigator.sendBeacon(`${this.apiBaseUrl}/fb.do`,n)}catch(c){this.params.error$.next({id:"OneStat:ApiTransport:sendBeacon",category:or.NETWORK,message:"Unhandled beacon error",thrown:c,data:{method:e,params:r}})}return!1}async sendRequest(e,r,i,o){let n=qo(),c=l=>{if(l instanceof TypeError&&(0,Vd.default)(["Failed to fetch","NetworkError when attempting to fetch resource."],l.message)){this.params.error$.next({id:"Network",category:or.NETWORK,message:"Request failed",thrown:l});return}this.params.error$.next({id:"ThinOneStat:ApiTransport:sendRequest",category:or.NETWORK,message:"Unhandled request error",thrown:l,data:{method:e,params:r,sessionKey:i,time:qo()-n}})};return this.apiBaseUrl=await this.resolveApiBaseUrl(),qe(`${this.apiBaseUrl}/fb.do`,{method:"post",headers:{"Content-type":"application/x-www-form-urlencoded",...o},body:this.prepareQueryParams({method:e,queryParams:r,sessionKey:i})}).then(l=>{let p=Number(l.headers.get("content-length"))===0,s=new Date(l.headers.get("date")??"").getTime(),d=qo()-n;if(isFinite(s)&&this.timeSynchronisation?.addServerTime(s,d),!p)return l.json().then(f=>Object.prototype.hasOwnProperty.call(f,"error_msg")?Promise.reject(f):f,c)},c)}async resolveApiBaseUrl(){if(this.apiEnv!=="auto"||this.isApiBaseUrlFetched)return this.apiBaseUrl;try{let e=atob("aHR0cHM6Ly9kbnMuZ29vZ2xlL3Jlc29sdmU/bmFtZT12aWRlby5fZW5kcG9pbnQub2sucnUmdHlwZT1UWFQ="),o=(await(await qe(e,{method:"GET",mode:"cors",cache:"no-cache"})).json())?.Answer[0]?.data;if(!o)throw new Error("Wrong DNS response");return o}catch(e){return this.params.error$.next({id:"ThinOneStat:ApiTransport:resolveApiBaseUrl",category:or.NETWORK,message:"Unhandled resolve api base url error",thrown:e}),Ao.vk_alias}finally{this.isApiBaseUrlFetched=!0}}prepareQueryParams(e){let r=new URLSearchParams({format:"JSON",method:e.method,application_key:this.apiKey});return e.sessionKey!==void 0&&r.append("session_key",e.sessionKey),(0,Fd.default)(e.queryParams).forEach(([i,o])=>r.append(i,typeof o=="string"?o:JSON.stringify(o))),r}};var Ud=P(ae(),1),jd=P(xe(),1);import{ErrorCategory as ZI,now as eS,safeStorage as ct,debounceFn as Bd}from"@vkontakte/videoplayer-shared";var ar="thinonestat_events",Co=t=>e=>e.client_time+t>=eS(),sr=class{constructor(e){this.unsaltedStorage=[];this.isPaused=!1;this.isUrgent=e=>{let{event_name:r}=e;return(0,Ud.default)(["watch_coverage","watch_coverage_live","watched_n","playback_started"],r)};this.params=e,this.api=e.api,this.error$=e.error$,this.userSalt=e.userSalt,this.loggerDebugLog=e.debugLogger.createComponentLog("stat logger"),this.firstFlush=Bd(()=>this.safeFlush(),this.params.config.firstFlushTime,{maxWait:this.params.config.firstFlushTime});let r=ct.isPersistent()?this.params.config.flushMaxWait:0;this.debouncedFlush=Bd(()=>this.safeFlush(),this.params.config.flushDebounceTime,{maxWait:r}),this.subscription=this.api.authorized$.subscribe(i=>{i&&this.debouncedFlush()}),this.housekeepStorage()}safeFlush(){try{this.flush()}catch(e){this.error$.next({id:"LoggerError",category:ZI.WTF,message:String(e)||"Unknown logger error",thrown:e})}}readFromStorage(){let e=ct.get(ar);try{return e?JSON.parse(e):{}}catch{}return{}}addToStorage(e){if(!this.userSalt){this.unsaltedStorage.push(e);return}let r=this.readFromStorage(),o=(r[this.userSalt]??[]).filter(Co(this.params.config.storageExpiration));ct.set(ar,JSON.stringify({...r,[this.userSalt]:[...o,e]}))}getFromStorage(){return this.userSalt?(this.readFromStorage()[this.userSalt]??[]).filter(Co(this.params.config.storageExpiration)):this.unsaltedStorage}markStorageSent(){if(!this.userSalt){this.unsaltedStorage=[];return}let e=this.readFromStorage();delete e[this.userSalt],ct.set(ar,JSON.stringify(e))}housekeepStorage(){let e=this.readFromStorage();for(let[r,i]of(0,jd.default)(e)){let o=i.filter(Co(this.params.config.storageExpiration));o.length?e[r]=o:delete e[r],this.loggerDebugLog({message:`${i.length} retrieved from storage, ${o.length} of them actual`})}ct.set(ar,JSON.stringify(e))}log(e){this.addToStorage(e),!this.isPaused&&(this.isUrgent(e)?this.flush():this.lastVsid!==e.vsid?this.firstFlush():this.debouncedFlush(),this.lastVsid=e.vsid)}flush({wantBeacon:e,clearStorage:r}={wantBeacon:!1,clearStorage:!0}){let i=this.getFromStorage();i.length!==0&&(this.api.authorized$.getValue()?(e&&this.params.config.useBeacon?(this.loggerDebugLog({message:`Flushing ${i.length} events through beacon`}),this.api.logBeacon(i)):(this.loggerDebugLog({message:`Flushing ${i.length} events`}),this.api.logRequest(i)),r&&this.markStorageSent()):this.api.authorize(),this.firstFlush.cancel(),this.debouncedFlush.cancel())}pause(){this.isPaused=!0,this.debouncedFlush.cancel()}resume(){this.isPaused=!1,this.debouncedFlush()}destroy(){this.subscription.unsubscribe(),this.firstFlush.cancel(),this.debouncedFlush.cancel()}};function Ro(){let t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),e=new Array(36),r=0,i,o;for(o=0;o<36;o++)o===8||o===13||o===18||o===23?e[o]="-":o===14?e[o]="4":(r<=2&&(r=33554432+Math.random()*16777216|0),i=r&15,r=r>>4,e[o]=t[o===19?i&3|8:i]);return e.join("")}var ur=class{constructor(e){this.offset=void 0;this.offset=e}getOffset(){return this.offset??0}setOffset(e){this.offset=e}now(){return Date.now()+(this.offset??0)}date(e=new Date){return e.setTime(e.getTime()+(this.offset??0)),e}addServerTime(e,r){let i=Date.now(),o=e-i-r/2;if(Math.abs(o)<1e3){this.offset=0;return}this.offset===void 0?this.offset=Math.round(o):this.offset=Math.round(.2*o+(1-.2)*this.offset)}};import{PlaybackState as Hd}from"@vkontakte/videoplayer-core";import{Observable as tS,Subscription as rS,ValueSubject as iS,Subject as Lo,fromEvent as oS,isNullable as Wd,merge as lt,filter as Kd,filterChanged as Qd}from"@vkontakte/videoplayer-shared";var Gd=(t,e,r)=>new tS(i=>{let o=new rS,n=new iS(void 0),c;o.add(t.info.isLive$.pipe(Qd()).subscribe(Q=>{c&&(c.unsubscribe(),n.next(void 0)),Q?c=t.info.liveTime$.pipe(Qd()).subscribe(n):c=t.info.position$.subscribe(n),o.add(c)}));let{playing$:l,paused$:p,ended$:s,looped$:d}=t.events,f=t.events.willSeek$.pipe(Kd(()=>t.info.playbackState$.getValue()===Hd.PLAYING)),u=t.events.seeked$.pipe(Kd(()=>t.info.playbackState$.getValue()===Hd.PLAYING)),h=!1,v=new Lo;o.add(f.subscribe(()=>{h||v.next(),h=!0})).add(u.subscribe(()=>h=!1));let m=lt(oS(window,"beforeunload"),t.events.willDestruct$),g,b=()=>g=n.getValue(),y=()=>{let Q=n.getValue();Wd(g)||Wd(Q)||g===Q||(i.next({from:g,to:Q}),g=void 0)},k=new Lo,R=new Lo,I=lt(l,v,k),U=lt(p,u,m,s,d,R),Fo=e.started$&&e.ended$?lt(I,e.ended$):I,Bo=e.started$&&e.ended$?lt(U,e.started$):U;if(o.add(Fo.subscribe(b)).add(Bo.subscribe(y)),r.heartbeatInterval&&isFinite(r.heartbeatInterval)){let Q=[],vf=r.heartbeatInterval*1e3,gf=()=>{R.next(),k.next()};o.add(Fo.subscribe(()=>{let vr=window.setTimeout(gf,vf);Q.push(vr)})).add(Bo.subscribe(()=>{Q.forEach(vr=>{window.clearTimeout(vr)}),Q=[]}))}return o});import{Subscription as nS}from"@vkontakte/videoplayer-core";import{Observable as aS}from"@vkontakte/videoplayer-shared";var zd=(t,e)=>new aS(r=>{let i=new nS,o=0;return i.add(t.info.position$.subscribe(()=>{let n=e.getTotalViewTime()*1e3;n>o&&(n===e.firstTvtLog||n%e.targetDuration===0)&&(o=n,r.next({target_duration:e.targetDuration,current_tvt:n}))})),i});import{Observable as sS,Subscription as uS,merge as Yd}from"@vkontakte/videoplayer-shared";var Jd=t=>new sS(e=>{let r=new uS,i=0,o=1,n=0,c=!1,l=!1,p=()=>{if(!c)return;let I=Date.now();n+=(I-i)*o,i=I},s=()=>{(!c||l)&&(i=Date.now(),c=!0,l=!1)},d=()=>{c&&(p(),c=!1)},f=()=>{c&&(p(),c=!1,l=!0)},u=I=>{c&&p(),o=I,i=Date.now()},{started$:h,playing$:v,paused$:m,willSeek$:g,ended$:b,willDestruct$:y}=t.events,{currentPlaybackRate$:k}=t.info;r.add(g.subscribe(f)).add(Yd(h,v).subscribe(s)).add(Yd(m,b,y).subscribe(d)).add(k.subscribe(u));let R=()=>{let I=n;return c&&(I+=(Date.now()-i)*o),I};return e.next(R),r});import{assertNever as Xd}from"@vkontakte/videoplayer-shared";import{HttpConnectionType as ko,Surface as ke,VideoFormat as E,VideoQuality as F}from"@vkontakte/videoplayer-core";var No=t=>t&&{[ko.HTTP1]:"http1",[ko.HTTP2]:"http2",[ko.QUIC]:"http3"}[t],cr=t=>{if(t!==void 0)switch(t){case E.MPEG:return"MP4";case E.DASH:case E.DASH_LIVE:return"DASH";case E.DASH_SEP:return"DASH_SEP";case E.DASH_ONDEMAND:return"ONDEMAND_DASH";case E.HLS_ONDEMAND:return"ONDEMAND_HLS";case E.HLS:case E.HLS_LIVE:return"HLS";case E.HLS_FMP4:return"HLS_FMP4";case E.DASH_WEBM:case E.DASH_LIVE_WEBM:return"WEBM";case E.DASH_LIVE_CMAF:return"ONDEMAND_DASH_LIVE";case E.HLS_LIVE_CMAF:return"ONDEMAND_HLS_LIVE";case E.WEB_RTC_LIVE:return"WEBRTC";case E.DASH_WEBM_AV1:return"AV1";case E.DASH_STREAMS:return"MULTI_DASH";default:return Xd(t)}},B=t=>{if(t!==void 0)switch(t){case F.Q_144P:return"144p";case F.Q_240P:return"240p";case F.Q_360P:return"360p";case F.Q_480P:return"480p";case F.Q_720P:return"720p";case F.Q_1080P:return"1080p";case F.Q_1440P:return"1440p";case F.Q_2160P:return"2160p";case F.INVARIANT:case F.Q_576P:case F.Q_4320P:return"UNKNOWN";default:return Xd(t)}},Zd=t=>{if(t!==void 0)switch(t){case"MP4":case"ONDEMAND_DASH":case"ONDEMAND_DASH_LIVE":case"ONDEMAND_HLS":case"ONDEMAND_HLS_LIVE":case"MULTI_DASH":case"WEBM":case"AV1":return"vod";case"DASH":case"HLS":case"HLS_FMP4":case"WEBRTC":return"live";default:return}},te=(t,e,r)=>{if(t&&e)switch(t){case E.MPEG:return r&&e[t]&&e[t][r];default:return e[t]?.url}},lr=(t,e=!1)=>{if(e)return"minimal";switch(t){case void 0:case ke.NONE:return;case ke.INLINE:return"inline";case ke.FULLSCREEN:return"fullscreen";case ke.SECOND_SCREEN:return"chromecast";case ke.PIP:return"pip_external"}},dr=t=>{switch(t){case void 0:return;case ke.INVISIBLE:return"background";default:return"foreground"}};var ef=P(St(),1);var tf=()=>(0,ef.default)(Math.floor(Math.random()*2**64).toString(36),13,"0");var vS="_thin-one-stat_",of=`${vS}deviceId`,nf=()=>{let t=new Mo;return{subscription:t,subscribe:(e,r)=>{e&&t.add(e.subscribe(r))}}},pr=class{constructor(e,r){this.debugLogger=new fS;this.thinOneStatDebugLog=this.debugLogger.createComponentLog("ThinOneStat");this.eventNumber=1;this.playerSize={width:0,height:0};this.seekAction$=new Do("unknown");this.isid$=new Do(void 0);this.statContext=e,this.config=Md(r.config??{}),this.subscription=new Mo,this.config.synchronizeTime&&(this.timeSynchronisation=new ur);let i=new hS,o=rf.get(of);this.statContext.deviceId?this.deviceId=this.statContext.deviceId:o?this.deviceId=o:(this.deviceId=Ro(),rf.set(of,this.deviceId)),this.statContext.targetDuration?this.targetDuration=this.statContext.targetDuration:this.targetDuration=this.config.watchedNDefaultTargetDuration,this.resetViewSession(),r.useIsid&&this.isid$.next(r.isid??tf());let n=new nr({error$:i,config:this.config,timeSynchronisation:this.timeSynchronisation});this.api=new ir({config:this.config,apiTransport:n,error$:i,deviceId:this.deviceId,refreshAuthToken:r.refreshAuthToken}),this.logger=new sr({config:this.config,debugLogger:this.debugLogger,api:this.api,error$:i,userSalt:r.userSalt});let{isEmbed:c,topOrigin:l}=lS();this.isEmbed=c,this.embedHostname=l?new URL(l).hostname:void 0}get vsid$(){return new Do(Z.getVSID())}authorize(e){return this.api.authorize(e)}updateContext(e){this.statContext={...this.statContext,...e}}attachTo(e,r){let i=new Mo,o=(s,d)=>i.add(s.subscribe(d));o(Jd(e),s=>{this.getTotalViewTime=s}),o(e.info.isLive$,s=>this.isLive=s);let n;o(fr({hostname:e.info.hostname$,connectionType:e.info.httpConnectionType$,connectionReused:e.info.httpConnectionReused$}).pipe(Ne(({hostname:s})=>s!==void 0),Ne(({connectionType:s})=>s!==void 0),Ne(({connectionReused:s})=>s!==void 0)),({hostname:s,connectionType:d,connectionReused:f})=>{if(n!==void 0&&n!==s){let h={cdn_host:s,connection_type:No(d),connection_reused:f,content_type:cr(e.info.currentFormat$.getValue())};this.logFailover(h)}this.cdnHostname=n=s}),o(e.info.httpConnectionType$,s=>{this.connectionType=No(s)}),o(e.info.httpConnectionReused$,s=>{this.connectionReused=s}),o(Gd(e,r,{heartbeatInterval:this.config.watchCoverageHeartbeatInterval}),s=>{let d=Math.round(s.from*1e3),f=Math.round(s.to*1e3),u={watch_interval:`${d}-${f}`,in_history:!!this.statContext.inHistory,content_type:cr(e.info.currentFormat$.getValue()),playback_quality:B(e.info.currentQuality$.getValue()),recom_info:this.statContext.recomInfo};if(!e.info.isLive$.getValue())this.logWatchCoverage(u);else{let v=e.info.atLiveEdge$.getValue();this.logWatchCoverageLive({...u,live:!!v})}}),o(zd(e,{targetDuration:this.targetDuration,firstTvtLog:this.config.watchedNFirstTvtLog,getTotalViewTime:this.getTotalViewTime}),s=>{this.logWatchedN(s)}),o(e.events.willReady$,()=>{if(this.statContext.preload){let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentBuffer$.getValue(),u=e.info.currentQuality$.getValue(),h={target_buffer_time:this.calcBufferTime(f),playback_url:te(s,d,u),playback_quality:B(u)};this.logPreloadStarted(h)}}),o(e.events.ready$,()=>{let s=e.info.currentBuffer$.getValue();if(this.statContext.preload){let d={buffer_time:this.calcBufferTime(s)};this.logPreloadEnded(d)}this.logReady({buffer_time:this.calcBufferTime(s)})}),o(e.events.manifestRequested$,()=>{let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),u={playback_url:te(s,d,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestRequest(u)}),o(e.events.firstBytesManifest$,()=>{let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),u={playback_url:te(s,d,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstByteManifest(u)}),o(e.events.manifestReceived$,()=>{let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),u={playback_url:te(s,d,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logManifestReceived(u)}),o(e.events.firstBytesRequested$,()=>{let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),u={playback_url:te(s,d,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstMediaRequest(u)}),o(e.events.firstBytesReceived$,()=>{let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),u={playback_url:te(s,d,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused};this.logFirstByteMedia(u)}),o($o(e.events.willStart$,e.events.looped$),s=>{s&&this.resetViewSession();let f={isid:this.isid$.getValue(),stream_profile:Zd(cr(e.info.currentFormat$.getValue())),dpi:96*K.display.pixelRatio,web_layout:this.statContext.isMobile||K.device.isMobile?"mobile":"desktop",preloaded:this.statContext.preload,navigation:this.statContext.navigation,recom_info:this.statContext.recomInfo};this.isEmbed&&(f.iframe_host=this.embedHostname??"unknown"),this.logStartSession(f)}),o(e.events.started$,()=>{this.isStarted=!0;let s=e.info.currentBuffer$.getValue(),d=e.info.currentQuality$.getValue(),f=e.info.isAutoQualityEnabled$.getValue(),u=e.info.muted$.getValue(),h=e.info.volume$.getValue(),v=e.info.surface$.getValue(),m=e.info.availableTextTracks$.getValue(),g=e.info.currentTextTrack$.getValue(),b=e.info.currentAudioStream$.getValue(),y=e.info.currentPlaybackRate$.getValue(),k={playback_quality:B(d),user_quality:f?"auto":B(d),player_width:this.playerSize.width,player_height:this.playerSize.height,muted:u,sound_volume:Math.round(h*100),buffer_time:this.calcBufferTime(s),mode:lr(v,this.statContext.isPreviewPlayerView),visibility:dr(v),subtitles_enabled:g?!!g:this.currentSubtitle?.enabled,auto_subtitles:m.find(({id:R})=>R===g)?.isAuto??this.currentSubtitle?.auto,audio_track_lang:b?.language,playback_rate:y,recom_info:this.statContext.recomInfo};this.logPlaybackStarted(k)}),o($o(e.events.willStart$,e.events.willResume$),()=>{this.logPlay()}),o(e.events.playing$,()=>{let s=e.info.currentBuffer$.getValue(),d={buffer_time:this.calcBufferTime(s)};this.logPlaying(d),this.wasPaused&&this.logResume()}),o(e.events.paused$,()=>{this.wasPaused=!0,this.logPause()}),o(e.events.willStop$,()=>{this.logStop()}),o($o(e.events.fetcherRecoverableError$,e.events.fatalError$),()=>{this.statContext.preload&&this.logPreloadError()}),o(fr({connectionType:e.info.httpConnectionType$,connectionReused:e.info.httpConnectionReused$}).pipe(Ne(({connectionReused:s})=>s!==void 0),pS((s,d)=>s.connectionType===d.connectionType)),()=>{let s=e.info.currentFormat$.getValue(),d=e.info.availableSources$.getValue(),f=e.info.currentQuality$.getValue(),u=e.info.rttEstimation$.getValue(),h={playback_url:te(s,d,f),cdn_host:this.cdnHostname,connection_type:this.connectionType,connection_reused:this.connectionReused,rtt:u?Math.round(u):void 0};this.logConnectionEstablished(h)}),o(e.events.firstFrame$,()=>{this.logFirstVideoFrameDecoded()}),o(e.events.willSeek$,()=>{let s={seek_type:this.seekAction$.getValue()};this.logSeeking(s)}),o(e.events.seeked$,()=>{let s={seek_type:this.seekAction$.getValue()};this.logSeeked(s),this.seekAction$.next("unknown")}),o(e.info.isStalled$,s=>{let d=e.info.currentBuffer$.getValue(),f=this.calcBufferTime(d);s&&f&&f>0&&this.logBufferStarvation({buffer_time:f})});let c;o(fr({videoStream:e.info.currentVideoStream$,audioStream:e.info.currentAudioStream$,quality:e.info.currentQuality$}).pipe(Ne(({videoStream:s,audioStream:d})=>s!==void 0&&d!==void 0),Ne(({quality:s})=>s!==void 0)),({videoStream:s,audioStream:d,quality:f})=>{if(c!==f){let u=e.info.isAutoQualityEnabled$.getValue(),h=s?.codec,v=d?.codec,m={user_quality:u?"auto":B(f),playback_quality:B(f),download_quality:B(f),codec_info:h&&v?`${h},${v}`:void 0};c=f,this.logQualityChanged(m)}});let l,p;return o(e.info.surface$,s=>{let d=lr(s,this.statContext.isPreviewPlayerView);d&&!this.uiEvents&&this.isStarted&&this.logModeChanged({mode:d}),p=dr(s),l!==p&&this.isStarted&&(l=dr(s),this.logVisibilityChanged({visibility:p}))}),o(fr({muted:e.info.muted$,volume:e.info.volume$}),({muted:s,volume:d})=>{if(this.isStarted){let f={muted:s,sound_volume:Math.round(d*100)};this.logSoundChanged(f)}}),this.player=e,this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToUi(e){this.uiEvents=e;let{subscribe:r,subscription:i}=nf();r(e.actionSeek$,this.seekAction$),r(e.playerSize$,({width:n,height:c})=>{n&&c&&(this.playerSize={width:n,height:c},this.logViewPortChanged({player_width:n,player_height:c}))}),r(e.isLoaderVisible$,n=>{n&&this.isStarted&&this.logShowLoader()}),r(e.actionSubtitlesSwitched$,n=>{if(this.currentSubtitle={...n},this.isStarted){let c={subtitles_enabled:n.enabled,subtitles_track_lang:n.lang,auto_subtitles:n.auto};this.logSubtitlesSwitched(c)}});let{surface$:o}=er(this.uiEvents,r,this.player);return r(o,n=>{this.isStarted&&this.logModeChanged({mode:lr(n)})}),r(e.actionQuality$,n=>{let c=d=>(0,sf.default)((0,af.default)(xo),d),l=this.player?.info.currentVideoStream$.getValue()?.codec,p=this.player?.info.currentAudioStream$.getValue()?.codec,s={user_quality:c(n)?"auto":B(n),playback_quality:B(this.player?.info.currentQuality$.getValue()),download_quality:B(this.player?.info.currentQuality$.getValue()),codec_info:l&&p?`${l},${p}`:void 0};this.logQualityChangeRequested(s)}),this.resubscribeBeforeunload(),this.subscription.add(i),i}attachToAds(e){let{subscription:r,subscribe:i}=nf();return i(e.init$,o=>{let n={slot:o};this.logAdvConfiguration(n)}),i(e.slotRequested$,()=>{this.logAdvRequest()}),i(e.started$,o=>{let n={adv_section:o};this.logAdvBreakStarted(n)}),i(e.ended$,o=>{let n={adv_section:o};this.logAdvBreakEnded(n)}),i(e.error$,o=>{let n={error_message:o};this.logAdvError(n)}),this.resubscribeBeforeunload(),this.subscription.add(r),r}getDeviceId(){return this.deviceId}resetViewSession(){this.thinOneStatDebugLog({message:"VSID reset"}),Z.generateVSID(),this.eventNumber=0}destroy(){this.api.destroy()}calcBufferTime(e){return e?Math.round((e.end??0)-(e.start??0))*1e3:void 0}createRequiredParams(e){let r=this.vsid$.getValue();cS(r);let i=this.eventNumber++,o=((this.isLive?this.player?.info.liveTime$.getValue():this.player?.info.position$.getValue())??0)*1e3;return{vsid:r,uv_movie_id:this.statContext.movieId,event_name:e,client_time:Date.now(),application:this.statContext.application??`@vkontakte/videoplayer-statistics:${L}`,platform:this.statContext.platform??`web:${this.statContext.isMobile||K.device.isMobile?"mobile":"desktop"}`,product:this.statContext.product,event_number:i,playback_position:o,current_tvt:this.getTotalViewTime(),cdn_host:this.cdnHostname}}createRequiredFatParams(){return{stats_version:"2.1.1",browser:this.statContext.browser??K.browser.current,browser_version:this.statContext.browserVersion??String(K.browser.currentVersion),os:this.statContext.os??K.device.os.name,os_version:this.statContext.osVersion??K.device.os.version,device_type:this.statContext.deviceType??(this.statContext.isMobile||K.device.isMobile?"mobile":"desktop"),device_manufacturer:this.statContext.deviceManufacturer??K.device.details.vendor,device_model:this.statContext.deviceModel??K.device.details.model,navigation:this.statContext.navigation}}log(e,r,i=!1){let o=this.createRequiredParams(e),n={};i&&(n=this.createRequiredFatParams()),this.logger.log({...o,...n,...r})}logWatchCoverage(e){this.log("watch_coverage",e,!0)}logWatchCoverageLive(e){this.log("watch_coverage_live",e,!0)}logWatchedN(e){this.log("watched_n",e,!0)}logStartSession(e){this.log("start_session",e,!0)}logPreloadStarted(e){this.log("preload_started",e)}logPreloadEnded(e){this.log("preload_ended",e)}logPreloadError(){this.log("preload_error")}logPlaybackStarted(e){this.log("playback_started",e,!0)}logPlay(){this.log("play")}logManifestRequest(e){this.log("manifest_request",e)}logFirstByteManifest(e){this.log("first_byte_manifest",e)}logFirstMediaRequest(e){this.log("first_media_request",e)}logFirstByteMedia(e){this.log("first_byte_media",e)}logManifestReceived(e){this.log("manifest_received",e)}logConnectionEstablished(e){this.log("connection_established",e)}logFirstVideoFrameDecoded(){this.log("first_video_frame_decoded")}logReady(e){this.log("ready",e)}logPlaying(e){this.log("playing",e)}logPause(){this.log("pause")}logResume(){this.log("resume")}logSeeking(e){this.log("seeking",e)}logSeeked(e){this.log("seeked",e)}logStop(){this.log("stop")}logBufferStarvation(e){this.log("buffer_starvation",e)}logShowLoader(){this.log("show_loader")}logQualityChangeRequested(e){this.log("quality_change_requested",e)}logQualityChanged(e){this.log("quality_changed",e)}logCdnHostChanged(e){this.log("cdn_host_changed",e)}logViewPortChanged(e){this.log("view_port_changed",e)}logModeChanged(e){this.log("mode_changed",e)}logVisibilityChanged(e){this.log("visibility_changed",e)}logSubtitlesSwitched(e){this.log("subtitles_switched",e)}logSoundChanged(e){this.log("sound_changed",e)}logFailover(e){this.log("failover",e)}logAdvConfiguration(e){this.log("adv_configuration",e)}logAdvRequest(){this.log("adv_request")}logAdvBreakStarted(e){this.log("adv_break_started",e)}logAdvBreakEnded(e){this.log("adv_break_ended",e)}logAdvError(e){this.log("adv_error",e)}resubscribeBeforeunload(){this.beforeunloadSubscription?.unsubscribe(),this.beforeunloadSubscription=dS(window,"beforeunload").subscribe(()=>{}),this.subscription.add(this.beforeunloadSubscription)}};var gS={};var mS=(t,e={})=>{let i=e.timeout||1,o=performance.now();return window.setTimeout(()=>{t({get didTimeout(){return e.timeout?!1:performance.now()-o-1>i},timeRemaining(){return Math.max(0,1+(performance.now()-o))}})},1)},bS=t=>window.clearTimeout(t),cf=t=>typeof t=="function"&&t?.toString().endsWith("{ [native code] }"),lf=!cf(window.requestIdleCallback)||!cf(window.cancelIdleCallback),df=lf?mS:window.requestIdleCallback,ff=lf?bS:window.cancelIdleCallback;import{PlaybackState as hf,Subscription as yS}from"@vkontakte/videoplayer-core";import{Logger as IS}from"@vkontakte/videoplayer-shared";var hr=class{constructor(){this.startTime=null;this.stopTime=null;this.accumulatedTime=0}get time(){return Math.floor(this.timeMs/1e3)}get timeMs(){return this.startTime===null?0:(this.stopTime??this.now())-this.startTime-this.accumulatedTime}get isRunning(){return this.startTime!==null&&this.stopTime===null}start(){this.isRunning||(this.stopTime!==null?(this.accumulatedTime+=this.now()-this.stopTime,this.stopTime=null):this.startTime=this.now())}stop(){this.isRunning&&(this.stopTime=this.now())}reset(){this.startTime=null,this.stopTime=null,this.accumulatedTime=0}now(){return Date.now()}};var pf=()=>window.Image?new Image:document.createElement("img");var Vo=class{constructor(e){this.position=0;this.started=!1;this.heartbeatPixels=[];this.heartbeatLastTimeSent={};this.idleCallbackIds=[];this.stopwatch=new hr;this.subscription=new yS;this.params=e;let r=new IS;this.log=r.createComponentLog("MediascopePixel")}attachTo(e){this.subscription.add(e.info.playbackState$.subscribe(r=>this.onPlaybackState(r))).add(e.info.position$.subscribe(r=>this.onPosition(r))).add(e.info.atLiveEdge$.subscribe(r=>this.isActiveLive=r)),this.subscription.add(e.events.willSeek$.subscribe(()=>this.onWillSeek())).add(e.events.seeked$.subscribe(()=>this.onSeeked())).add(e.events.ended$.subscribe(()=>this.onEnded()))}destroy(){this.stopwatch.reset(),this.subscription.unsubscribe(),window.clearTimeout(this.heartbeatFirstTimeoutId),this.idleCallbackIds.forEach(e=>ff(e)),this.send("stop")}onPlaybackState(e){e===hf.PLAYING?this.started?this.play():this.start():e===hf.PAUSED&&this.pause()}start(){this.started=!0,this.stopwatch.start(),this.send("start"),this.heartbeatPixels=this.prepareHeartbeatPixels(),this.heartbeatInterval=this.heartbeatPixels[0]?.interval;let e=this.heartbeatPixels[0]?.url,r=this.heartbeatPixels[0]?.delay;if(r!==void 0&&e)try{this.heartbeatFirstTimeoutId=window.setTimeout(()=>{this.sendHeartbeat(e)},r*1e3)}catch(i){this.log({message:i.message})}}play(){this.stopwatch.start(),this.send("resume")}pause(){this.stopwatch.stop(),this.send("pause")}onPosition(e){if(this.position=e,this.heartbeatInterval&&this.stopwatch.time!==0&&this.stopwatch.time%this.heartbeatInterval===0)for(let[r,{url:i}]of this.heartbeatPixels.entries())this.heartbeatLastTimeSent[r]!==this.stopwatch.time&&(this.heartbeatLastTimeSent[r]=this.stopwatch.time,this.sendHeartbeat(i))}onWillSeek(){this.started&&this.send("stop")}onSeeked(){this.started&&this.send("start")}onEnded(){this.stopwatch.stop(),this.send("stop")}validatePixels(e,r){return e?.filter(i=>i.event===r.event&&r.keys.every(o=>!!i[o]))}getFrameTimestamp(){let e;if(this.isActiveLive){let r=Math.floor(Math.random()*25)+5;e=Date.now()/1e3-r}else e=this.position||0;return Math.floor(e)}getUTC(){return Math.floor(Date.now()/1e3)}prepareUrl(e){return e.replace("{@fts_fake_sec}",String(this.getFrameTimestamp())).replace("{@utc_sec}",String(this.getUTC())).split("&").filter(r=>!/={@[a-zA-Z_]+}/.test(r)).join("&")}preparePixels(e){return this.validatePixels(this.params.pixels,{event:e,keys:["url"]})}prepareHeartbeatPixels(){return this.validatePixels(this.params.pixels,{event:"heartbeat",keys:["url","interval"]})}call(e){try{this.idleCallbackIds.push(df(()=>pf().src=this.prepareUrl(e)))}catch(r){this.log({message:r.message})}}send(e){let r=this.preparePixels(e);for(let{url:i}of r)this.call(i)}sendHeartbeat(e){this.call(e)}};export{Ke as ApiEnv,Zr as ConnectionType,Xr as ContentType,$a as InteractiveInterfaceClick,Vo as MediascopePixel,gS as MediascopePixelTypes,wo as OneStat,Jr as Quality,ei as SeekAction,uf as ThinOneStat,L as VERSION};